News for hackers. Stuff that matters.
Re:Julia: A Post-Mortem by FridgeSeal on Monday March 08, 2021 @07:03AM (#26384806)
This feels like a very strongly worded title for a fairly lacklustre article.

There’s Python the language and “Python the dsl for tensor frameworks”, the former has arguably lost some ground/mindshare to newer, less “hobbled” languages, and the latter exists not by virtue of its own strengths but as the convenient vehicle for frameworks written by 2 enormous corporations.

Julia hasn’t overtaken Pythons ecosystem yet, but how far its come in relatively little time is the real testament to its community-that which the author decries as lacking.

Using weird outdated rankings and citing “that one package that kind of works in very specific circumstances” (Numba) as proof that all Pythons issues are solved and Julia is over is a weak argument at best, and deceptive at worst.

What Julia could really, really benefit from though is some vocal commercial backing-had google chosen to rewrite Tensorflow in Julia I think 2 things would have happened: 1. the project would have actually succeeded and been finished (in a “this is the tensorflow engine now” sense) 2. It would have done absolute wonders for the Julia ecosystem and mindshare and we wouldn’t be having this taudry discussion. That didn’t happen (unless some tensorflow product managers want a promotion by re-launching a tensorflow rewrite? ;) ) so they need another source of major support IMO.

Re:Julia: A Post-Mortem by dgellow on Monday March 08, 2021 @07:46AM (#26385117)
> What Julia could really, really benefit from though is some vocal commercial backing-had google chosen to rewrite Tensorflow in Julia I think 2 things would have happened

We have the example of "Swift for Tensorflow", which was pitched by Google as the "next-generation platform for machine learning" (that's from their own website) and didn't result in anything meaningful and is now dead as far as I understand. I'm not that convinced that would work better with Julia.

Re:Julia: A Post-Mortem by FridgeSeal on Monday March 08, 2021 @08:17AM (#26385354)
At the time they were “picking” candidates for the Tensorflow rewrite, Julia already had Flux with an early version of Zygote and was doing auto differentiation at the language level. This was literally the killer feature they wanted, and were prepared to re-wore how significant portions of the swift language and compiler functioned to get it.

Had they chosen the language based on actual suitability and not because one of them was Chris Lattners pet-project, they could have automatically been significantly further ahead in far less time and energy.

Re:Julia: A Post-Mortem by yahyaheee on Monday March 08, 2021 @09:22AM (#26386026)
Yeah Google really messed this up, they had a golden opportunity and they went the wrong direction. Julia would have been better but IMO they should have just created a new language from scratch
Re:Julia: A Post-Mortem by fishmaster on Monday March 08, 2021 @05:01PM (#26392258)
> they should have just created a new language from scratch

God, please not another one with new tools, new libraries, etc.

Re:Julia: A Post-Mortem by yahyaheee on Monday March 08, 2021 @05:10PM (#26392355)
Right because there are so many great existing options for ML
Re:Julia: A Post-Mortem by fishmaster on Sunday March 14, 2021 @05:23PM (#26459375)
... yes?
Re:Julia: A Post-Mortem by yahyaheee on Sunday March 14, 2021 @05:37PM (#26459538)
Python — no threads, or built in types

Julia — odd language

R — not a general purpose programming language

Most of the data scientist and ml engineers I work with want a new language. So yeah it’s not a bad idea

Re:Julia: A Post-Mortem by fishmaster on Monday March 15, 2021 @11:10AM (#26466916)
> Julia — odd language

What a profound criticism. If data scientists can't use Julia then they're not great data scientists - you have RCall and PyCall, Flux, Knet, MLJ, plotting libraries, etc. It has built-in and user-defined types, threads, multiple dispatch, ...

"Please don't think that Julia is only useful for 1. custom units 2. custom GPU kernels 3. Custom array types 4. custom bayesian priors. 5. AD through custom types 6. Task based parallelism 7. symbolic gradients with modeling toolkit 8. Agent based modeling 9. physics informed neural networks 10. abstract tables types ..."

Re:Julia: A Post-Mortem by mountainriver on Monday March 15, 2021 @11:16AM (#26466995)
What a great statement, its not that they can't its that they don't want to use it.

I really tried to like Julia, wrote it for months, but it misses the mark. I've been working in analytics for 10 years and of everyone I know who's tried it I only know a couple people who like Julia.

Thats a problem, and you can see it in the adoption numbers. The Julia community keeps wanting to bury their head in the sand and pretend its not which is fun.

Re:Julia: A Post-Mortem by dunefox on Monday March 08, 2021 @07:58AM (#26385199)
The project was pushed by Swifts creator and it failed supposedly because he left Google AFAIK, so for Julia it would most likely have worked out much better.
Re:Julia: A Post-Mortem by bla3 on Monday March 08, 2021 @08:31AM (#26385474)
Are you sure you have cause and effect in the right order?
Re:Julia: A Post-Mortem by dunefox on Monday March 08, 2021 @08:34AM (#26385495)
I'm not certain of what happened, I'm just recalling what I had read some time ago.
Re:Julia: A Post-Mortem by hnews_account_1 on Monday March 08, 2021 @09:01AM (#26385802)
Python's strength is its simplified coding style. People who use these frameworks are not software engineers who want to deal with object passing mechanics in excruciating detail. There are software engineers to do just that. So until something beats Python in simplified writing style or Python becomes incredibly slow, it won't be easy to supplant.
Re:Julia: A Post-Mortem by open-source-ux on Monday March 08, 2021 @10:20AM (#26386649)
"Python's strength is its simplified coding style"

Anyone familiar with Python is unlikely to struggle with the syntax of Julia or with reading straightforward Julia code. In fact, I'd argue that Julia is easier to learn than Python in many aspects.

Python is now a large language, not the small, simple language of years past. Of course, in both languages (Julia and Python) you can ignore complex features.

But what Python also gives you is abundant examples and solutions to problems that are easily found on the Web.

In contrast, new(ish) programming languages suffer from a lack of libraries, examples and tutorials that slows down momentum.

Re:Julia: A Post-Mortem by hnews_account_1 on Monday March 08, 2021 @11:20AM (#26387371)
Yes. First mover advantage and network effects. It is difficult to topple the leader even if your own product is somehow way better.
Re:Julia: A Post-Mortem by tharne on Monday March 08, 2021 @10:07AM (#26386509)
This 100%. A lot of people working with code are folks who code as a means to an end rather than as a craft unto itself, and these folks are important because they often have expertise in a domain other than software engineering. Python hits a sweet spot in terms of power and ease-of-learning/ease-of-use that makes it incredibly well-suited to these types of users.
Re:Julia: A Post-Mortem by Cullinet on Monday March 08, 2021 @11:07AM (#26387193)
I see this reflected as in the DBASE - *gres impedance.

~ the one end Ashton Tate delivering a shallow learning curve declarative language for semi referential data that SOHO novices can create applications with, and at the other, Stonebraker wanting to put the neatness that pure client computing enabled (dedicated cpu time and architecture leading to multimedia inexpensively) together with large system semantics [0] long before capabilities, a curse I believe was academic grant seeking behaviour in origin.

I seriously keep seeing the results of driving forces individually uniquely capable in project conditions which are very difficult to reconcile with the ultimate purpose software is used for. like, before Jim Keller quit Intel, he gave a talk explaining how Tesla was founded on a unique case where reductions to silicon were optimal for CAFÉ and that's a rare case, and how he couldn't see the 22 people in the audience he knew can tune the full performance out of modern silicon software instructions. (probably that should have called out his imminent departure considering the proliferating instruction set at Intel and his unusual call out to a success he thought worthy of mention). it used to be academia thinking about small systems applications and development, eg the Edinburgh AI group up to the 80s and Carl Hewitt thinking about how to make "next use unknown" a good thing in PLANNER. But certainly lately academic prowess has adhered to scale and the apparent needs of the largest computing users. If there's a impedance mismatch here I think it has evolved from putting the solo developer in the employ of hyperscalers without any thought about the effects of that situation.

[0] personally I remember the talk preceded the walk by some 20 years or so) and simultaneously take on the big iron boys at IBM. Oracle drove it's ugly polluting truck thru the middle and created a empire that we're still far from superannuating (not replacing, in the view of this guy seriously targeting openVMS 9.3 with the ability to have workstations join the cluster and run transactions across the system and db against the same native transaction manager and define time series objects using FORTRAN and make the cursor over the resulting blobs addressable from DEC BASIC inside user applications including Excel soon to be patched to the VMS TM via SRV-IO via a switch on the same NIC. All very much old functionality becoming the new. if I'm allowed to write about it, I will probably emphasise just how much innovative design has been enabled by expensive licensing and recount my memories of how nothing ever cropped up to address comparable needs in the FOSS world despite the foundations resting upon some of the most well documented CS and being wonderfully unencumbered by IP inhibitors due to the passing of time.

Re:Julia: A Post-Mortem by yahyaheee on Monday March 08, 2021 @09:25AM (#26386059)
There are a lot of people who are somewhere in between these groups and providing a language that goes up and down the stack well would be super useful.

I agree it needs to be as simple as python on the high level though, or the data science end of the spectrum will just never adopt it.

Re:Julia: A Post-Mortem by hnews_account_1 on Monday March 08, 2021 @11:24AM (#26387438)
That is currently a non issue since software is lagging hardware. So you can join 2 systems together fairly inefficiently and still make a go of it. Sure, a good language for people down the stack can topple python from the top, but it won't be easy. It'd be far easier if we were approaching software limits on current hardware and needed to pull everything into one language and system to make it work together.
Re:Julia: A Post-Mortem by yahyaheee on Monday March 08, 2021 @11:57AM (#26388024)
Its useful for ML in that it requires so much optimization, that being about to drop down in the same language is incredibly handy. For ML software isn't lagging hardware its the other way around.
Re:Julia: A Post-Mortem by Cullinet on Monday March 08, 2021 @11:14AM (#26387293)
foreign function interop ideally at the system (or intermediate) level does so much.

before getting distracted by dot net and mono, I feel I have to lay the blame (and my nineties) at the feet of CORBA and the Object Management Group. Seriously though, what was the OMG but a UNIX consortium trying to break the hold of DEC and VMS over the most complex critical systems..

Re:Julia: A Post-Mortem by snicker7 on Monday March 08, 2021 @08:49AM (#26385652)
"Pitched by Google" == pitched by one dude (Lattner), basically.
Re:Julia: A Post-Mortem by dgellow on Monday March 08, 2021 @09:03AM (#26385830)
If you want to be precise it would be: "Swift for Tensorflow", a project lead by Lattner, while working at Google, as part of the Tensorflow project (published on tensorflow.org and part of the tensorflow github organization, which are two official channels). Presented at Google IO 2019 [0] as "Swift for TensorFlow is a platform for the next generation of machine learning that leverages blablabla...".

I stand with my "pitched by Google" :)

[0]: https://www.youtube.com/watch?v=3fJsqGHhlVA

Re:Julia: A Post-Mortem by pjmlp on Monday March 08, 2021 @06:22PM (#26393033)
With zero presence on the Tensorflow 2020 conference, not even an honourable mention on the overview blog post about the state of nation regarding TensorFlow.
Re:Julia: A Post-Mortem by sjkelly on Monday March 08, 2021 @07:32AM (#26384987)
I think even since 2014 there have been many niche technical computing companies supporting development quite successfully. Bigger players definitely would help, but I think most of that at this time is more public/private research money for scientific computing. Hence Julia has many academic contributors (grad students and post docs a likely majority), many of which are now becoming professors and industry leaders.

The post 1.0 world in Julia has been spectacular for development stability. In the early days it was somewhat tiring trying to develop basic foundational libraries, and keep pace with language changes. 1.0 has stabilized things quite a bit, and the forthcoming LTS (sometime this year maybe) I think will really start to button up some of the major issues people have with package load times and installation.

Re:Julia: A Post-Mortem by veddox on Monday March 08, 2021 @10:05AM (#26386490)
Yes, writing pre-1.0 Julia code was like balancing on a log in the water - the platform kept moving under you :D I'm glad it's gotten a lot stabler now.

And I agree about academics as a key user base. I think Julia's growth is far from over, there's a lot of organic spread yet to come. It may never replace Python in terms of global popularity, but then, why should it have to?

Re:Julia: A Post-Mortem by apples2apples on Monday March 08, 2021 @07:11AM (#26384843)
I'm sorry but deep learning is only a very small part of why Python is preferred by data scientists. The fact that Python was the the preferred language is why the enormous corporations wrote bindings to them. Both of these frameworks exist in the Julia ecosystem.
Re:Julia: A Post-Mortem by FridgeSeal on Monday March 08, 2021 @07:20AM (#26384899)
As someone who does data science, I roll my eyes every time I have to touch Python. It’s ubiquitous, but it actually sucks once you get used to better languages.

It is somewhat circular: it was preferred because your earlier alternatives were Java or C(++) both of which had their shortcomings. SKLearn is still one of the most feature-complete and powerful libraries and it was Python only and thus drew a crowd. A lot of people who write data science code, I would be confident to bet that if you taught them Julia first, they’d prefer that.

Re:Julia: A Post-Mortem by agumonkey on Monday March 08, 2021 @07:26AM (#26384932)
I have a few questions since you have a broader view.

What other languages do you prefer ?

What python traits do you think are weak ? (I'm no python fanatic but I like it as a tiny swiss army knife)

Re:Julia: A Post-Mortem by socialdemocrat on Monday March 08, 2021 @07:58AM (#26385196)
There are lots of little things that add up. Things like expressing multiline closures in Python is clunky compared to almost any other dynamic language whether Ruby, Lua or Julia.

AsyncIO is quite complex in how it works. You use the same patterns for concurrency in Julia, but it is so much easier to grasp and work with.

Multiple-dispatch as used in Julia e.g. makes API design so much cleaner. You can see that almost anywhere. I make some comparison of making REST calls in Python and Julia here. Julia is much cleaner IMHO: https://erik-engheim.medium.com/explore-rest-apis-with-curl-...

The Python problem is that you cannot reuse the same function name easily for different types. Hence instead of creating one abstraction across many different types you need to invent all these different names which can be hard to guess. In Julia there are often far fewer core concepts to learn which can be re-applied in far more ways.

Python insistence on an object-oriented approach often creates problems. I have some observations on that in machine learning, looking at PyTorch compared to Julia's Flux: https://python.plainenglish.io/python-experience-in-machine-...

Out of the box experience is not all that great. The Python REPL is very bare bones. https://erik-engheim.medium.com/python-vs-julia-observations...

Things like calling shell programs is done more elegantly in Julia. Same with calling C functions. String interpolation is more obvious. There are not like 4 different ways of doing it.

Package management and environment management is much simpler and elegantly done.

I agree some of this may seem unfair as Python has baggage from being an older language. But that also counts in its favor with wider selection of libraries. Both should be taken into account when evaluating your choices.

Re:Julia: A Post-Mortem by diarrhea on Monday March 08, 2021 @09:54AM (#26386367)
> The Python problem is that you cannot reuse the same function name easily for different types. Hence instead of creating one abstraction across many different types you need to invent all these different names which can be hard to guess. In Julia there are often far fewer core concepts to learn which can be re-applied in far more ways.

At least there's `functools.singledispatch` in the standard library. There's apparently also multiple dispatch libraries. I've never used either, duck typing with some try/except (and some isinstance) has served me well so far, but I agree it's not as clean.

> There are not like 4 different ways of doing it.

Yet.

> Package management and environment management is much simpler and elegantly done.

Yeah, it's a nightmare in Python. After setting up projects dozens of times now I still don't grok it.

Re:Julia: A Post-Mortem by pjmlp on Monday March 08, 2021 @07:44AM (#26385102)
Not the OP, the community approach to performance, that rather rewrites code into C, still calling it Python (?), instead of being more supportive of ongoing JIT endeavours.

Yes Python is very dynamic, not more than Smalltalk, SELF or Common Lisp, all with quite good JIT engines.

Re:Julia: A Post-Mortem by agumonkey on Monday March 08, 2021 @07:59AM (#26385202)
That's my opinion, and coming from you (from what I get you're seasoned in many area of the computing field) it's not surprising. But the current mainstream is not really aware of all this. There's tiny python cult due to scipy et al.
Re:Julia: A Post-Mortem by pjmlp on Monday March 08, 2021 @08:07AM (#26385273)
Yep same wavelength here.

There is another thing, most of the major libraries where Python is used as DSL, written in a mix of C, C++ and Fortran, can be used in other languages just as well, nothing special about Python there other than lack of awareness of what everyone else is doing.

Re:Julia: A Post-Mortem by johnnycerberus on Monday March 08, 2021 @08:48AM (#26385636)
In the ML, DL world or in the physical simulators, people just compose a task and throw it to a CPU/GPU/TPU or a cluster of these and let it run for a long time. I don't see how Julia will be different for this kind of tasks. I understand that in Julia you solve the 2-language problem and all the goodies that multiple dispatch brings but the Python ecosystem progressed a lot in the past 2 years, now you have Numba JIT, Jax JIT, PyTorch JIT, XLA JIT and many other proprietary JITs that are not open-sourced. Since JAX (as an example) is mostly numpy and Python, you can leverage your existing knowledge instead of having to learn a fundamentally new paradigm. I would say that Python has many "specialised" JIT engines and it seems to work great for the community. Don't get me wrong, Julia is interesting, I can't deny that but I expect a huge adoption period for it. It can find its niche as C++ did for extremely high performance computing or Scala for Big Data (though Java is starting to replace many use cases). If you ask me now, I would say that the world converges around Java, C++ and Python when it comes to data, the old trio and it will remain this way for at least another decade.
Re:Julia: A Post-Mortem by FridgeSeal on Monday March 08, 2021 @04:35PM (#26391950)
> but the Python ecosystem progressed a lot in the past 2 years, now you have Numba JIT, Jax JIT, PyTorch JIT, XLA JIT and many other proprietary JITs that are not open-sourced.

Python has a bunch of specific use-case, non-interoperable limited JIT’s that you have to learn separately.

Not the case with Julia: you write some arbitrary code, it gets optimised, so much simpler. The Julia community did some cool things with Flux where complex and field-specific equations were dropped wholesale into neural-network definitions without having to rewrite anything. That sort of power is invaluable.

Re:Julia: A Post-Mortem by pjmlp on Monday March 08, 2021 @10:05AM (#26386489)
In what concerns my use cases, Java and .NET languages can make use of the same GPGPU libraries just as well.

I follow Python and Julia more as language geek than anything else.

Specially since ecosystems like CUDA have been polyglot since the early days.

Re:Julia: A Post-Mortem by lordgroff on Monday March 08, 2021 @08:39AM (#26385560)
Not OP, but I absolutely prefer R, the Scheme inspiration is obvious and allows for flexibility completely impossible in Python (here's to PEP 638, but there's a ton of hostility to it from what I can tell).

I also really really really (really) like Julia, but don't quite think it's there yet. I'm optimistic though, these things take time.

Re:Julia: A Post-Mortem by prionassembly on Monday March 08, 2021 @08:30AM (#26385468)
> What python traits do you think are weak

It's growing in a sprawling, disorganized fashion. It's developing generics (with horrid ambiguous syntax) for semantic typing that's not generally used outside some applications. The walrus operator is obscene.

Re:Julia: A Post-Mortem by agumonkey on Monday March 08, 2021 @05:51PM (#26392738)
This is the very recent trend. I think it's a global wave, most languages accelerated pace in the last decade. es6, php, heck.. even java went chrome-speed now. Can be a bit messy yeah.
Re:Julia: A Post-Mortem by FridgeSeal on Monday March 08, 2021 @08:10AM (#26385297)
Rust is hands down my favourite language and it’s what I write my personal projects in these days. Julia is second. Rusts philosophy of “the complexity doesn’t go away, so just be aware and pay it up front” and the type system and compiler feel aaaamazing to use once you grasp them: writing some code, knowing exactly how and where the failure points are and having it compile and know that it will be correct is hard to go back from.

I used to be a huge Python fan, and I’d dug through docs and guides for pretty much everything I could, so my frustrations aren’t “outsider criticisms” as such.

My biggest issue is the amount of “magic” that goes on and is actively encouraged; it happily lets you get away with anything, and I’ve read and had to fix too much horrible Python code that technically does what’s required, but in the most torturous and difficult-to-untangle manner possible. I’ve come to resonate with this idea of “what does the language/tooling encourage you to do” and in my experience, Python doesn’t encourage a lot of good things, but it does end up encouraging you to “hack around problems” rather than fixing them at their root, lean on magic wherever possible (which is never backed up by any kind of correctness guarantee) and let the programmer do whatever they want, regardless of how much of a bad or non-idiomatic thing it is. The “type system” leaves a lot to be desired, there’s optional type hints now, but the larger community seems ambivalent at best-uptake is glacial in my observations and mypy is just sort of ok. The performance is pathetic, there’s no getting around that, and the response of “just write it in C if you need speed” is a poor answer. The Python core dev team seems insistent on continually stacking pointless new features in (walrus operator why?) whilst simultaneously not really doing anything about real issues (like the packaging situation). I’ve also come to really dislike exception-based error handling: having no compiler, type-checking and knowing that anything could explode anywhere isn’t a reassuring feeling once your codebase gets big enough. Yeah you can put try-catch, and code defensively to head-off issues, but it doesn’t take much before you’ve spent as much time and energy doing that as it would have taken to write it in a more suitable language but with maybe 1/10th of the guarantees and none of the performance. If you want to write a web API, you’d be better off writing something in Golang, .Net, Typescript on NodeJS, possibly even Swift.

General purpose stuff you could replace with any of those languages + Rust. Admittedly it does still have prime position for ML frameworks, but I’d be using Julia at work if it was up to me.

Edit: a sibling comment mentioned Async in Python - an experience that was so frustrating I’d excised it from memory.

Re:Julia: A Post-Mortem by dunefox on Monday March 08, 2021 @09:29AM (#26386109)
Yeah, I've used Python in university and before, for ML and DL, for scripting, at work... it's very inconsistent and annoying. The package management situation is horrible. Yet it's seen as this magical beginner friendly and clean or even beautiful and elegant language while the reality is quite different.
Re:Julia: A Post-Mortem by mountainriver on Monday March 08, 2021 @09:29AM (#26386107)
I use Rust for ML nowadays and I love it!
Re:Julia: A Post-Mortem by FridgeSeal on Tuesday March 09, 2021 @02:49AM (#26396423)
Oh awesome!

How are you finding it? I’d like to think that with some suitable package evolution/development doing production ML stuff in it would actually be pretty reasonable.

What packages are you using? Linfa looks like it’s developing strong legs and SmartCore seems be ticking away in the background quietly...

Re:Julia: A Post-Mortem by yahyaheee on Tuesday March 09, 2021 @11:36AM (#26400490)
yeah I keep up with the Linfra group, they are making steady progress. I hadn't seen SmartCore yet but that looks promising.

I mainly use tch-rs which are just bindings around libtorch, there are a couple edges wrapping c++ (function overloading) but overall it works great. I've also used ndarray a fair amount which is nice.

Re:Julia: A Post-Mortem by agumonkey on Monday March 08, 2021 @08:42AM (#26385580)
Do you see Rust coming up a lot in your field or is it mostly a personal favorite right now ?
Re:Julia: A Post-Mortem by FridgeSeal on Monday March 08, 2021 @04:42PM (#26392027)
It’s mostly a personal favourite, but once Ballista [1] gets a bit more developed, I expect we’ll tear out our Java/Spark pipelines and replace them with that.

The ML ecosystem in Rust is a bit underdeveloped at the moment, but work is ticking along on packages like Linfa and SmartCore, so maybe it’ll get there? In my field I’m mostly about it’s potential for correct, high-performance data pipelines that are straightforward to write in reasonable time, and hopefully a model-serving framework: I hate that so many of the current tools require annotating and shipping Python when really model-serving shouldn’t really need any Python code.

[1] https://github.com/ballista-compute/ballista

Re:Julia: A Post-Mortem by pjmlp on Monday March 08, 2021 @07:41AM (#26385069)
Some companies I did consulting for, the data scientists would rather use a mix of Excel, Tableau, VBA and VB.NET.

So neither Python not Julia.

Re:Julia: A Post-Mortem by tharne on Monday March 08, 2021 @10:18AM (#26386613)
Excel has proved itself shockingly resilient. We all make fun of it, but man, with smaller data sets it gets the job done.

A lot of people would be horrified to see how many business critical processes depend on a bunch of hacked together excel workbooks.

Re:Julia: A Post-Mortem by galangalalgol on Monday March 08, 2021 @08:43AM (#26385584)
I get the first 3, they are surprisingly powerful for data. But why VB.NET? Its many times alower than VBA.
Re:Julia: A Post-Mortem by pjmlp on Monday March 08, 2021 @10:08AM (#26386514)
Since when is a compiled language with JIT/AOT toolchain slower than an interpreter?

They reach for VB.NET when there is nothing left for VBA.

Re:Julia: A Post-Mortem by rademacher on Monday March 08, 2021 @12:33PM (#26388638)
Julia only hit v1.0 in 2018. It's doing pretty well for being so young in my opinion.

All the arguments against Julia are basically that python has a lot of momentum and it takes time and effort to switch to a new language. I think Julia should really seek to displace MATLAB as a near term goal .

Re:Julia: A Post-Mortem by machinelabo on Monday March 08, 2021 @03:32PM (#26391120)
> I think Julia should really seek to displace MATLAB as a near term goal .

Have you studied MATLAB and its ecosystem? It ranges from real time control to image recognition to sophisticated engineering-specific toolboxes (RF, 5G, LTE, etc.). They also have proprietary algorithms that do things no Julia package can do. Sure, there is PDE solvers and the ecosystem is growing for Julia, but it is at-least an order of magnitude smaller than MATLAB if not more. I urge you to explore the documentation, APIs and toolbox details on MATLAB: https://www.mathworks.com/products.html

Take a look at the LIDAR toolbox for example: https://www.mathworks.com/products/lidar.html

or LTE: https://www.mathworks.com/products/lte.html

and I've used DSP toolbox the most: https://www.mathworks.com/products/dsp-system.html

I am not condoning use of MATLAB, just stating the facts having used Julia and MATLAB extensively. I personally like Julia language FWIW. At work, we use MATLAB and happily pay for it. Their support is absolutely top-notch and for us it is the reason alone to use MATLAB. Julia has support but not even close to MATLAB's direct line to compiler engineers (yes, I've had them fix a bug and do a release in an afternoon).

Re:Julia: A Post-Mortem by vcxy on Monday March 08, 2021 @03:55PM (#26391409)
You're absolutely right. I'll agree with the person you replied to as well though: displacing (at least some portion of) MATLAB use cases really would be a good goal for Julia.

Personally, I managed to switch over 100% and DifferentialEquations.jl is the reason that made sense for my work.

Re:Julia: A Post-Mortem by square_usual on Monday March 08, 2021 @07:59AM (#26385204)
You've used "former" twice in your second paragraph, and I believe you might've intended to use "latter" the second (latter ;)) time.
Re:Julia: A Post-Mortem by FridgeSeal on Monday March 08, 2021 @08:12AM (#26385312)
Aaahh good catch, thank you! :)
Re:Julia: A Post-Mortem by prionassembly on Monday March 08, 2021 @08:17AM (#26385358)
I like the idea of Julia but had a poor time making it work (circa october-november 2020) on my Ubuntu laptop. It also refuses to work in environments like repl.it. I feel like it's quite imature still, and that I'll try to pick it up later when it's better.
Re:Julia: A Post-Mortem by make3 on Monday March 08, 2021 @08:21AM (#26385395)
I'd be very curious to see a source about your claim that Python is slowing down for uses outside of deep learning, I'm pretty sure you just made that up and it's false, not to be blunt
Re:Julia: A Post-Mortem by yahyaheee on Monday March 08, 2021 @09:31AM (#26386132)
It’s pretty ubiquitous among new developers but for working software engineers I think it’s uses are becoming limited.

If you need a web server there are much better choices. Data analysis and scripting are about the only places I see it used successfully nowadays

Re:Julia: A Post-Mortem by make3 on Monday March 08, 2021 @08:20AM (#26385381)
there have been Julia bindings to Tensorflow for a long time, and you can just use the Python ones in Julia with PyCall anyways. People haven't been doing that.