23 comments

[ 3.2 ms ] story [ 70.3 ms ] thread
Did this article ever answer the question?
Only on HN is it obvious that "Julia" in the title refers to a programming language :)
Oh yeah interesting observation. If it was posted on reddit I would have assumed Julia is an actress. That or something related to Cowboy Bebop.
For years I’ve seen these hype Julia articles. Yet, out of all the open source, all the companies I’ve worked for, I’ve never come across any valuable system running Julia. I’ve never needed open source and found that only Julia serves the need. I’m kind of tired of programming click bait that ends up on HN. Much like the “front end programming has failed” article that is popular right now. It’s all for clicks. The reality is mainstream programming paradigms are effective and work.
It's really hard for a language to grow mature enough for businesses to use it for valuable systems. You don't just need the programming language, it's also expected you have good editor support, some type checking tools, performance measurement tools and a whole bunch of battle-tested packages for common problems in programming. It's also risky as a business to begin building stuff in Julia when it's still a relatively niche language. That's not management being reactionary, that's just being pragmatic.

Almost by definition, new languages just can't compete with established languages on maturity. They have to compete on other metrics - better language design, a different runtime, new capabilities, etc. and therefore will attract a different crowd - initially

Over time, the bleeding edge first-movers will create basic necessities, which then attracts the programming language afficionados, who build interesting new software and nice-to-have, which attracts ordinary programmers, who then grow the community enough to give it stability and battle-tested packages, which then lets the language become "boring, old and stable". But this whole process takes ages. Look at e.g. Rust. Julia is somewhere between the "afficionado" and "ordinary programmer" stage. Of course you shouldn't use it for mission critical software where maximal stability is key. That doesn't mean the Julia hype isn't warrented.

“Crossing the Chasm” is a classic business book that explores this idea. It’s about technology adoption more generally, but I believe it applies to programming languages too.
Julia 1.0 was released in late 2018. I think it would be irresponsible to design valuable or mission critical systems with a language still undergoing that much change. I expect we’ll start to see the sorts of valuable systems you refer to start to surface in the near future if Julia is getting traction.

Full disclosure: I don’t currently use Julia but I’m interested in spending some time with it this year. I primarily use MATLAB in my day-to-day life. I like Python as a general purpose language but find the syntax of Python+NumPy a little clunky for what I do.

I don’t really feel that Julia falls outside of mainstream programming paradigms anymore than something like MATLAB.

Haha, I switched away from MATLAB to numpy many years ago because MATLAB was so clunky. To each his own, I guess.
do you work on high-performance computing, or more generally with numerical codes for scientific/engineering simulations?

this seems to be the area where Julia is getting the most traction.

it's strong in some other areas too. it's not really being sold as a general purpose tool for building business systems, though.

(not that it's unfit for that purpose -- just it doesn't have a strong advantage. whereas for numerical codes, optimization, and a few other things, it is actually better than most alternatives.)

I tried Julia in 2018 as my new programming language to learn that year. The syntax is clean and simple, and I remember it as a "Pascal for scientific computing" - as easy to read as Python yet faster execution.

I liked the static type checking and compilation, but found it frustrating at the time that the sample code from a book I had purchased didn't work; overall, the language seemed to be still too much in flux to be entrusted with an important project, although I have spoken with fellow scientists who use it as their main language for experimentation and are happy.

Python is clearly winning because most important libraries are C++ under the bonnet - or even Cython (which is used e.g. by SpaCy), and its ecosystem with IPython, Jupyter notebooks and comprehensive data science libraries (pandas, matplotlib, sklearn, numpy, ...).

Python has had a much longer head start, so it's no surprise it's still widely popular. You also bring up a good point regarding Julia's changing syntax and behavior—I've encountered the same issue trying copypasted code from various tutorials online (they didn't work.)

Julia's package ecosystem is rapidly catching up with Python's, at least for the packages you mentioned. I.e. Julia offers DataFrames.jl (its Pandas competitor), Plots and Gadfly (its Matplotlib competitors), and a few different ML libraries (its sklearn competitor). As for Numpy, its functionality is already offered through the base library in Julia, so there's no need for a separate package.

One especially nice feature of Julia is its interoperability with other languages. For example, if you need to use Python-specific functionality, you can do so from Julia through the PyCall library. Likewise for R, MATLAB, Java, etc. (C and Fortran FFIs are already offered through the base library.)

Julia Computing, has a bunch of case studies. It is used in valuable systems. [1]

If you compare Julia to a start-up it is in the growth phase. It isn't making money, but it definitely looks like it can disrupt status quo, and that makes it worth investing in for a lot of people.

[1] https://juliacomputing.com/case-studies/

It is not. There's only this constant spamming done by julia advocates on HN. It is getting annoying TBF
I’ve wondered why Julia hasn’t found more root in places where MATLAB is the primary software used for simulation, just as a way to save on licensing. From what I’ve heard from managers, that cost is not insignificant.
Matlab is extremely expensive. Not just for a single license (thousands of dollars), but critical libraries you may need (Ex: database, GPU, AI, electrical engineering stuff...etc) seem to only be provided as paid add-ons known as "tool-boxes" that costs thousands each. In my experience, Python had all of that for free, and Mathematica had all of that as part of the base language (no tool-boxes) so you pay like $3k and get access to thousands of functions.
Engineers cost money. A LOT of money. A few tens of thousands USD for libraries is not a major investment.
My Python setup is free, Mathematica would be $3k, and Matlab would be ~$25k. I'm not sure what kind of deal a company gets for multiple engineers, but it would still be extremely expensive.
Still pocket change for a large corporation. Throw in vendor lock-in, and the fact that the ~$25k Matlab license includes technical support and it's an easy decision.

Tech support is a big deal. Most companies would rather contract out than build an in-house team. Better to focus on what you do best and let someone else do what they do best.

Not arguing for any technical merit of Matlab (not talking about Simulink, either). Just the business side.

I assume that price is negotiated down per employee for bulk purchases, or else it's not a drop in the bucket even for a large corporation. Just two of those would be a beginning salary for an engineer. Yes, companies do like support.
Julia has julia-computing to provide this type of enterprise support, but it obviously isn't the same.
People who only need "core" Matlab can easily switch, but toolboxes carry tons of validated code, and a lot of additional hardware/software firms expect you to use Matlab to interface with their products.

For example, COMSOL only allows interactive programming via Matlab, and Matlab can interface with Cosworth's Pi Toolbox as long as you have the right license key.