Welcome, Guest: Register On Nairaland / LOGIN! / Trending / Recent / New
Stats: 3,150,728 members, 7,809,776 topics. Date: Friday, 26 April 2024 at 02:43 PM

Does Any Functional Programmer Here Use Julia? - Programming - Nairaland

Nairaland Forum / Science/Technology / Programming / Does Any Functional Programmer Here Use Julia? (2088 Views)

Is There Any Programmer Here Who Can Do This? Paid Job / MicroFuse Is Actually the dumbest Programmer here / Any Female Python Programmer Here?? (2) (3) (4)

(1) (Reply) (Go Down)

Does Any Functional Programmer Here Use Julia? by InesQor(m): 1:07am On May 13, 2016
Any Julia users on Nairaland?
Re: Does Any Functional Programmer Here Use Julia? by Nobody: 5:41am On May 13, 2016
Sonoflucifer, your attention is needed. smiley
Re: Does Any Functional Programmer Here Use Julia? by InesQor(m): 7:07pm On May 13, 2016
I have recently been delving further into it, and I was wondering if anyone has comments about their own experiences with Julia. I don't have a particularly structured question at this time so I won't be taking this to StackOverflow yet. In all, it's a very beautiful language and if you do any computational or functional programming you will enjoy it!
Re: Does Any Functional Programmer Here Use Julia? by omohayek: 11:25pm On May 13, 2016
What exactly are you using Julia for? It's not as if there is a shortage of functional programming languages out there, so why does Julia interest you ahead of the likes of Clojure, F#, Haskell or Scala?

1 Like

Re: Does Any Functional Programmer Here Use Julia? by Nobody: 3:57pm On May 14, 2016
Juliana!!
Re: Does Any Functional Programmer Here Use Julia? by InesQor(m): 12:51am On May 15, 2016
omohayek:
What exactly are you using Julia for? It's not as if there is a shortage of functional programming languages out there, so why does Julia interest you ahead of the likes of Clojure, F#, Haskell or Scala?

Caveat: I am an engineer & programmer in the worlds of numeric / scientific computing, and that's why this matters. Sometimes speed really matters. You don't want to wait for many months to run various simulations to see if that adjustment you made to an engine will be a disaster. You can't tell a medical patient with a blocked artery to wait for a couple of weeks while simulations of your numerical code run. Some processes are time-critical and computationally expensive and you have to deal with that.

Usually there are three steps to do numeric computing:
- Prototype it
- Make it Faster
- Make it Blaze. i.e.

First you develop the work in a prototyping language: like MATLAB, Python or Ruby. This will be an easy to read language and generally accessible. Once your code is WORKING, then you begin to rewrite it in something faster like C or C++, paying attention to the parts of the code that run slowly. After this, you begin the awkwardness of rewriting the still-slow parts of your code using OpenCL, CUDA or even Assembler. This third step is where the insanity usually is!

Some languages like Fortran skip the first part essentially. Fortran is more or less "unreadable" but it gets the job done to almost C or F# level.

Some functional languages like Haskell and F# combine the first two steps but if you are doing something that is really computationally expensive (e.g. solving billions of equations at once, which is something that could happen when you are studying PDES - for instance, dealing with fluids numerically, which occurs often in engineering and medicine) then even these ones stutter and cough really bad. When you really need speed, you have to go way down to Assembly for some parts of your code. e.g. where the crazy iterations, loops, switches and IF/ELSE statements are wearing away at your machine.

Switching between the layers of abstraction from rapid prototyping of an algorithm, to making faster and less readable code, to making bleeding-edge fast code that will not collapse on you when it matters most, is a lot of mental pain and waste of time and programming resources.

Julia, with inspiration from LISP, bridges that gap. It breaks down that wall between your high level code and the native assembly. It is built from the ground up to cope with the rigor of scientific computing, and at any time you can peek beneath the curtain and view (and even manipulate) the LLVM representation as well as even the assembler code that runs directly under your high-level functional code.

It is no wonder that Julia is the numerical and functional language of choice currently being taught at all the world's top universities today, from Brown to Stanford to MIT in the USA, as well as others all over the world, since as far back as 2013.

1 Like

Re: Does Any Functional Programmer Here Use Julia? by jayriginal: 3:57am On May 15, 2016
Decided to look in at the programming section (haven't done that in a while) and guess who I found?

Hello Inesqor!!!

How are you my brother it's been ages. Glad to see your post.

On topic, I never heard of Julia until now. I'll look it up. Is Julia object oriented? You didn't mention that.
Re: Does Any Functional Programmer Here Use Julia? by InesQor(m): 4:52am On May 15, 2016
jayriginal:
Decided to look in at the programming section (haven't done that in a while) and guess who I found?

Hello Inesqor!!!

How are you my brother it's been ages. Glad to see your post.

On topic, I never heard of Julia until now. I'll look it up. Is Julia object oriented? You didn't mention that.
Hahaha bros man! Yes oh it's been ages upon ages! Really good to see you here. How body? I followed a link from google the other day and landed on Nairaland then logged in again! Hehe.

Yes Julia is object-oriented!
Re: Does Any Functional Programmer Here Use Julia? by omohayek: 2:20pm On May 15, 2016
Actually, I have plenty of experience with numerical computing myself, so the lengthy explanation you provided is unnecessary. What's not clear to me is what problem Julia will solve for you that can't be solved using, say, good old Numpy/C, or even plain C++14? The reality of Julia isn't necessarily as rosy as you seem to think it is, either; read the following.

http://zverovich.net/2016/05/13/giving-up-on-julia.html

As for the idea that Julia is being taught at "all the world's top universities today", that is manifestly not true. I actually went to one of those top universities myself, and have friends and co-workers from most of the others; Julia has nowhere near the amount of mindshare that even Haskell does, let alone Python.

InesQor:


Caveat: I am an engineer & programmer in the worlds of numeric / scientific computing, and that's why this matters. Sometimes speed really matters. You don't want to wait for many months to run various simulations to see if that adjustment you made to an engine will be a disaster. You can't tell a medical patient with a blocked artery to wait for a couple of weeks while simulations of your numerical code run. Some processes are time-critical and computationally expensive and you have to deal with that.

Usually there are three steps to do numeric computing:
- Prototype it
- Make it Faster
- Make it Blaze. i.e.

First you develop the work in a prototyping language: like MATLAB, Python or Ruby. This will be an easy to read language and generally accessible. Once your code is WORKING, then you begin to rewrite it in something faster like C or C++, paying attention to the parts of the code that run slowly. After this, you begin the awkwardness of rewriting the still-slow parts of your code using OpenCL, CUDA or even Assembler. This third step is where the insanity usually is!

Some languages like Fortran skip the first part essentially. Fortran is more or less "unreadable" but it gets the job done to almost C or F# level.

Some functional languages like Haskell and F# combine the first two steps but if you are doing something that is really computationally expensive (e.g. solving billions of equations at once, which is something that could happen when you are studying PDES - for instance, dealing with fluids numerically, which occurs often in engineering and medicine) then even these ones stutter and cough really bad. When you really need speed, you have to go way down to Assembly for some parts of your code. e.g. where the crazy iterations, loops, switches and IF/ELSE statements are wearing away at your machine.

Switching between the layers of abstraction from rapid prototyping of an algorithm, to making faster and less readable code, to making bleeding-edge fast code that will not collapse on you when it matters most, is a lot of mental pain and waste of time and programming resources.

Julia, with inspiration from LISP, bridges that gap. It breaks down that wall between your high level code and the native assembly. It is built from the ground up to cope with the rigor of scientific computing, and at any time you can peek beneath the curtain and view (and even manipulate) the LLVM representation as well as even the assembler code that runs directly under your high-level functional code.

It is no wonder that Julia is the numerical and functional language of choice currently being taught at all the world's top universities today, from Brown to Stanford to MIT in the USA, as well as others all over the world, since as far back as 2013.
Re: Does Any Functional Programmer Here Use Julia? by InesQor(m): 10:59pm On May 15, 2016
omohayek:
Actually, I have plenty of experience with numerical computing myself, so the lengthy explanation you provided is unnecessary.
Na wa oh. And here was I thinking I was giving a detailed response rather than simply hand-waving the topic. You were mentioning Clojure, Scala (I wonder why?) so I figured you are not into scientific computing.

omohayek:

What's not clear to me is what problem Julia will solve for you that can't be solved using, say, good old Numpy/C, or even plain C++14?
I already explained this above (not sure if you read it). And I can't believe you are still mentioning NumPy/SciPy (which are at best for prototyping) after all my explanation! shocked shocked

omohayek:

The reality of Julia isn't necessarily as rosy as you seem to think it is, either; read the following.

http://zverovich.net/2016/05/13/giving-up-on-julia.html
There will always be nay-sayers. Pointing me to a link does not demonstrate anything tangible. That's one story.

omohayek:

As for the idea that Julia is being taught at "all the world's top universities today", that is manifestly not true.
Oh? Can you give any background to this statement?

omohayek:

I actually went to one of those top universities myself, and have friends and co-workers from most of the others;
Not saying you didn't attend one of those top universities, but when? Your information may be outdated. When was this, and what is your field of numerical research? This is my own daily bread and butter so I am more than willing to delve as deep as you want into the topic. I am currently working at one of these universities, in fact.

And here is an official but inexhaustive list of universities all over the world using Julia: http://julialang.org/teaching/

omohayek:

Julia has nowhere near the amount of mindshare that even Haskell does, let alone Python.
Julia is about freaking 2 years old and in active development, man. It is a developing answer to a problem in the numerical world. I never said it is the be-all or that it has marketshare (not mindshare) as Haskell or Python that have been around for ages.

The point of this thread was to create some awareness. I am not trying to ask anyone to drop the tools they already use, but Julia has bright prospects for its age. For instance, for my own daily numerical work I use C, MATLAB, Mathematica, FORTRAN, Python with NumPy and SciPy, and FreeFem++ in no particular order. I am just beginning to add Julia into it all because when I did my own graduate course in Scientific Computing, Julia hadn't emerged. Maybe it was the same for you (assuming you are referring to a graduate course and not an undergrad one).
Re: Does Any Functional Programmer Here Use Julia? by omohayek: 7:59am On May 16, 2016
InesQor:

Na wa oh. And here was I thinking I was giving a detailed response rather than simply hand-waving the topic. You were mentioning Clojure, Scala (I wonder why?) so I figured you are not into scientific computing.

If you don't know why I mentioned Scala, you obviously know a lot less about functional programming than you think you do.


I already explained this above (not sure if you read it). And I can't believe you are still mentioning NumPy/SciPy (which are at best for prototyping) after all my explanation! shocked shocked

This is a meaningless response. Why are they just for prototyping? I and many others use them for serious numerical work that is actually paid for, which is one more reason why I found your long response utterly pointless.


There will always be nay-sayers. Pointing me to a link does not demonstrate anything tangible. That's one story.

Another content-free response. You say I pointed you to a link, but you don't bother to actually refute any of the points raised on the link.



Oh? Can you give any background to this statement?


Not saying you didn't attend one of those top universities, but when? Your information may be outdated. When was this, and what is your field of numerical research? This is my own daily bread and butter so I am more than willing to delve as deep as you want into the topic. I am currently working at one of these universities, in fact.

And here is an official but inexhaustive list of universities all over the world using Julia: http://julialang.org/teaching/

You tell me the university you're working at, and I'll tell you the one I went to. Meanwhile, having looked at the list on the page you provide, the only Ivy League universities there are Cornell and Brown, and at Brown Julia is listed only for one course in molecular biology (i.e. not in the CS department). Neither Cambridge nor Oxford appear, nor do University College London or Imperial College. Needless to say, not one of the top Asian schools (e.g. Tokyo or Kyoto University) is listed either. Admit it, your far-reaching claims for Julia's usage in the "top universities" was merely hyperbole.


Julia is about freaking 2 years old and in active development, man. It is a developing answer to a problem in the numerical world. I never said it is the be-all or that it has marketshare (not mindshare) as Haskell or Python that have been around for ages.

The point of this thread was to create some awareness. I am not trying to ask anyone to drop the tools they already use, but Julia has bright prospects for its age. For instance, for my own daily numerical work I use C, MATLAB, Mathematica, FORTRAN, Python with NumPy and SciPy, and FreeFem++ in no particular order. I am just beginning to add Julia into it all because when I did my own graduate course in Scientific Computing, Julia hadn't emerged. Maybe it was the same for you (assuming you are referring to a graduate course and not an undergrad one).

I'd assumed you were just curious about Julia's takeup with other developers interested in functional programming. If you'd said upfront that you were actually engaging in advocacy, I wouldn't have bothered even responding to your initial post.
Re: Does Any Functional Programmer Here Use Julia? by InesQor(m): 7:35pm On May 16, 2016
omohayek:

If you don't know why I mentioned Scala, you obviously know a lot less about functional programming than you think you do.
Why are you mentioning Scala in a conversation about scientific computing? Scala is a functional language but is it used in scientific computing for industrial problems (not toy ones. Every functional programming language can be used in scientific computing, if we want to be that way about it)?

omohayek:

This is a meaningless response. Why are they just for prototyping? I and many others use them for serious numerical work that is actually paid for, which is one more reason why I found your long response utterly pointless.
Meaningless responses? Did you read where I said that I use Python and NumPy/SciPy for my paid job? Or did you gloss over that too? I said for extremely difficult problems, you can't get enough performance from them! Not that they are useless, but they are useful for an initial prototype. If you have a problem that for instance generates matrices of an order of hundreds of thousands, NumPy and SciPy will begin to cough whereas they will work beautifully for smaller problems. THUS they are best for an initial prototype.

omohayek:

Another content-free response. You say I pointed you to a link, but you don't bother to actually refute any of the points raised on the link.
Guy you are taking this thing personally and I don't even know why. There are enough refutals on the same blog itself. Why should I bother rehashing someone's gripes? You googled and pasted a link showing what SOMEONE doesn't like about Julia, but you didn't present your own thoughts so why should I reply the blogger's gripes here? This thread is about awareness, and again I never asked anyone to stop using their everyday tools.

omohayek:
You tell me the university you're working at, and I'll tell you the one I went to. Meanwhile, having looked at the list on the page you provide, the only Ivy League universities there are Cornell and Brown, and at Brown Julia is listed only for one course in molecular biology (i.e. not in the CS department). Neither Cambridge nor Oxford appear, nor do University College London or Imperial College. Needless to say, not one of the top Asian schools (e.g. Tokyo or Kyoto University) is listed either. Admit it, your far-reaching claims for Julia's usage in the "top universities" was merely hyperbole.
Nah I work in the intersection of engineering, programming and applied mathematics but I don't need to tell you the university that I am working at, just like it is your prerogative to tell the one you attended, or not. Mentioning "only molecular biology" shows how much you really work in the fields of scientific computing. Mathematical and molecular biology has some of the greatest problems in scientific computing today, about as many as fluid mechanics & ocean engineering and other fields in applied partial differentiation equations. And saying that it is taught at some of the top schools in the world does not mean that ALL the top schools in the world will be listed there, or that they are all computer science programs. Geez isn't that ridiculous? Scientific computing by far transcends computer science. If I have to explain that, then you are certainly not working in the fields neither did you study in any of them. Plus, being IVY LEAGUE has to do with sports, and doesn't necessarily mean that a school not listed in Ivy League is not a top school in the US especially in graduate study. Some IVY league schools can't hold a torch towards MIT in some fields, but that's another story.

I don't even care if you went to any of those schools or not. My question was WHEN did you attend it, and yet you never heard of or attempted to try out, Julia?

If you want to discuss scientific computing and not the school you attended, I am more than glad to converse with someone who knows what he is saying and not someone throwing Scala and Clojure into the mix JUST because they are also functional.

omohayek:
I'd assumed you were just curious about Julia's takeup with other developers interested in functional programming. If you'd said upfront that you were actually engaging in advocacy, I wouldn't have bothered even responding to your initial post.
I was explaining why Julia is more useful for scientific computing. Yes it is a functional programming language and there are other functional ones, but Julia is a functional one that brings the best of the worlds together.

I agree you probably shouldn't have bothered responding to my post, if you didn't understand what the thread is about and weren't willing to ask.
Re: Does Any Functional Programmer Here Use Julia? by omohayek: 8:05pm On May 16, 2016
InesQor:

Why are you mentioning Scala in a conversation about scientific computing? Scala is a functional language but is it used in scientific computing for industrial problems (not toy ones. Every functional programming language can be used in scientific computing, if we want to be that way about it)?
Stop being ridiculous: you make a post with almost no information, and I ask you why a language like Scala isn't suitable; you then suggest that Scala isn't a functional language, and now you're trying to ask what it's doing in a conversation about scientific computing? In any case, where have you been for the last few years not to have heard of Apache Spark?


Meaningless responses? Did you read where I said that I use Python and NumPy/SciPy for my paid job? Or did you gloss over that too? I said for extremely difficult problems, you can't get enough performance from them! Not that they are useless, but they are useful for an initial prototype. If you have a problem that for instance generates matrices of an order of hundreds of thousands, NumPy and SciPy will begin to cough whereas they will work beautifully for smaller problems. THUS they are best for an initial prototype.
Show me just one benchmark where Julia is faster than calling into a C library from Python.


Guy you are taking this thing personally and I don't even know why. There are enough refutals on the same blog itself. Why should I bother rehashing someone's gripes? You googled and pasted a link showing what SOMEONE doesn't like about Julia, but you didn't present your own thoughts so why should I reply the blogger's gripes here? This thread is about awareness, and again I never asked anyone to stop using their everyday tools.
You make insulting statements like "you googled and pasted a link showing what SOMEONE doesn't like about Julia", as if you were here with me looking over my shoulder when I made my response, and then go on to suggest "you are taking this thing personally and I don't even know why"! I'll grant you this much though: nice attempt at avoiding any discussion of the content of the post I provided a link to - just close your eyes and pretend none of it is there, because I didn't simply copy and paste the page in response to your silly blatherings.

I suggest you step back for a second and look how you're coming across. From your very first response to my enquiry, you've come across as pompous and pretentious in the extreme.


Nah I work in the intersection of engineering, programming and applied mathematics but I don't need to tell you the university that I am working at, just like it is your prerogative to tell the one you attended, or not. Mentioning "only molecular biology" shows how much you really work in the fields of scientific computing. Mathematical and molecular biology has some of the greatest problems in scientific computing today, about as many as fluid mechanics & ocean engineering and other fields in applied partial differentiation equations. And saying that it is taught at some of the top schools in the world does not mean that ALL the top schools in the world will be listed there, or that they are all computer science programs. Geez isn't that ridiculous? Scientific computing by far transcends computer science. If I have to explain that, then you are certainly not working in the fields neither did you study in any of them.
You really have no idea just how ridiculous you sound to me, given that I actually work in biotechnology. Go ahead, tell me what shotgun sequencing is all about, and how you might go about doing it. Or maybe you'd like to explain how you'd look for epistatic effects in a GWAS (if you even know what that is)? How about giving me an update on the most recent developments in using Crispr-Cas9? Or why don't we switch the conversation to discussing approximate solutions for the Navier-Stokes equations, or new techniques for simulating the 4-body problem? As I'm a generous guy, I'll let you pick the subject, and we can get down to details. Be my guest!

You're clearly out of your depth, and lack the humility to admit as much, or maybe even the insight required to realize it. I suggest you look up Dunning-Kruger and engage in some self-scrutiny.


If you want to discuss scientific computing and not the school you attended, I am more than glad to converse with someone who knows what he is saying and not someone throwing Scala and Clojure into the mix JUST because they are also functional.
Maybe you should have tried making clear in your initial post that you were interested in Julia for the purpose of scientific computing, instead of merely mentioning functional programming and expecting others to read your mind about why other languages weren't suitable. Don't blame others for your inability to properly articulate yourself.


I was explaining why Julia is more useful for scientific computing. Yes it is a functional programming language and there are other functional ones, but Julia is a functional one that brings the best of the worlds together.

I agree you probably shouldn't have bothered responding to my post, if you didn't understand what the thread is about and weren't willing to ask.

I'm sorry, but this is utterly inane. What exactly did I initially do if not ask why you were curious about Julia? Are you really that lacking in reading comprehension, or is your memory so bad that you can't even look back that far into the past? I'm sorry for not realizing straight away that I was dealing with someone of limited intellect combined with extreme self-regard.
Re: Does Any Functional Programmer Here Use Julia? by InesQor(m): 9:45pm On May 16, 2016
@omohayek

My apologies for sounding pompous, I got quite exasperated. You did ask "Why Julia"? And I answered that clearly. Obviously you disagreed with my submission, and that is okay. You needed not call me names.


You really have no idea just how ridiculous you sound to me, given that I actually work in biotechnology. Go ahead, tell me what shotgun sequencing is all about, and how you might go about doing it. Or maybe you'd like to explain how you'd look for epistatic effects in a GWAS (if you even know what that is)? How about giving me an update on the most recent developments in using Crispr-Cas9? Or why don't we switch the conversation to discussing approximate solutions for the Navier-Stokes equations, or new techniques for simulating the 4-body problem? As I'm a generous guy, I'll let you pick the subject, and we can get down to details. Be my guest!
Of all these topics, I would have been glad to discuss numerical methods for the Navier-Stokes equations with you, as that was very much in line with my PhD thesis, but considering how our conversation has gone, I think I am done here. The other topics are out of my scope, since I don't work in biotechnology. I already told you I work in Engineering, so asking me about topics in bio fields is really odd. All I said was that you sounded as if you were looking down on Brown's use-case because "Julia is only being used in bio at Brown, and not even computer science". And I pointed out that bio-math requires a lot of scientific computing.

I'm sorry, but this is utterly inane. What exactly did I initially do if not ask why you were curious about Julia? Are you really that lacking in reading comprehension, or is your memory so bad that you can't even look back that far into the past? I'm sorry for not realizing straight away that I was dealing with someone of limited intellect combined with extreme self-regard.
You asked why I was curious about Julia. I answered in detail. You disagreed with WHY I was curious about Julia and you began to put it down. How does that even make sense, disagreeing with someone's preferences?

In any case, no vex sir. I apologize.

(1) (Reply)

Which Is A Better Title: Software Developer Or Software Engineer / What Are Alogrithms? / SMS Gateway For Implementing OTP

(Go Up)

Sections: politics (1) business autos (1) jobs (1) career education (1) romance computers phones travel sports fashion health
religion celebs tv-movies music-radio literature webmasters programming techmarket

Links: (1) (2) (3) (4) (5) (6) (7) (8) (9) (10)

Nairaland - Copyright © 2005 - 2024 Oluwaseun Osewa. All rights reserved. See How To Advertise. 96
Disclaimer: Every Nairaland member is solely responsible for anything that he/she posts or uploads on Nairaland.