Hacker News new | ask | show | jobs
by reddit_clone 2637 days ago
Is Julia used for general purpose programming? I hear of it only in the context of Data Science.
5 comments

I'm generally interested in programming languages and have taken a look at hundreds, if not thousands in the past decades. Based on that experience, I'd say that almost no language is a general purpose programming language, because that would include cross-platform GUI programming. Except for C, C++, and Python, every binding to GUI toolkits I've seen was incomplete, buggy and not fully tested, not ready for prime time, eternally promising without ever getting there, lagging behind the toolkit versions, hard to setup and compile, and so forth. There is always something about the glue code, versioning, or portability that gets in your way.

Typical example: I've decided to make a little GUI application in gtk3 for Go and encountered the first show-stopper already after two weeks. Yes, in theory this can be fixed by adding bindings yourself and submitting pull requests, but once you start with this it kind of defeats the purpose of using another language in the first place. (And there is a second issue of this kind already waiting in line...)

The same is true for Julia, which I have evaluated for this purpose, too. The GUI bindings are not yet complete, and experience has told me that if bindings are not yet complete, there is a high chance they will never be complete. Once they are completed, they are already outdated.

So if you include GUI applications into "general purpose", the answer is practically always "No". If you exclude GUI applications, on the other hand, then almost every programming language on earth is sufficiently general purpose.

I used it recently to write something at work that would count as "an application", and it was so much more pleasant than writing the equivalent in Python would have been. Having a proper type system and multiple dispatch really makes a huge difference, and immutability by default and rejection of OO makes for code that's really easy to reason about.
Julia's "niche" is essentially an improved, free Matlab. At least, that certainly seems to have been its initial impetus.

Now it's grown far beyond that, and is acknowledged by its creators as a true, general-purpose language.

One example is its use in real-time robotics:

http://www.juliarobotics.org/

Yes.

see this as an example: http://genieframework.com/

Julia attracts people that are interested in data science, but it's also a very capable language outside of that field.