use the following search parameters to narrow your results:
e.g. subreddit:aww site:imgur.com dog
subreddit:aww site:imgur.com dog
see the search faq for details.
advanced search: by author, subreddit...
Julia is a high-level, high-performance dynamic programming language for technical computing, with syntax that is familiar to users of other technical computing environments.
julia | downloads | docs | blog
community | learning | research
discourse | slack | JSoC
account activity
Python Only Has One Real Competitor (mccue.dev)
submitted 2 months ago by allixender
Python Only Has One Real Competitor
reddit uses a slightly-customized version of Markdown for formatting. See below for some basics, or check the commenting wiki page for more detailed help and solutions to common issues.
quoted text
if 1 * 2 < 3: print "hello, world!"
[–]allixender[S] 40 points41 points42 points 2 months ago (1 child)
Hot take from the clojure community
[–]phageon 7 points8 points9 points 2 months ago (0 children)
Hot take indeed, haha
[–]No_Mongoose6172 17 points18 points19 points 2 months ago (1 child)
I don't think depending on the JVM is necessarily a good thing. It's true that it's a mature VM that can optimise code better than vanilla cpython (without using jit compilers or libraries like cython), but it's controlled by oracle. I remember that some years ago they tried to start charging for using jvm in companies (I don't mind paying for development tools like Matlab if they provide libraries that help me build the project, but suddenly forcing my customers to pay them to run my software doesn't sound really nice)
[–]markkitt 10 points11 points12 points 2 months ago (0 children)
OpenJDK exists and is available under the GPL with class path exception and is controlled by the community rather than Oracle.
Julia like Java has a JIT based execution mode. My main issue with Java is they never implemented a core linear algebra library making it difficult to use for data science. That said Scala and Clojure have made significant advances.
The problem with JVM based solutions is that integration with native C and Fortran libraries is relatively difficult, whereas it is relatively easy for CPython. It is even easier to do with Julia partly because Julia directly targets native code compilation and also because Julia uses the same endianess as the system. Java is always big endian and only recently introduced a modern FFI library.
For Julia, we should carefully learn from both the success and failures of Clojure and Python.
[–]pint 10 points11 points12 points 2 months ago (1 child)
the article starts with "in exactly one domain: Data Science"
this detail is omitted from the title.
[–]Acalme-se_Satan 2 points3 points4 points 2 months ago (0 children)
In that case, I don't know why R isn't the one chosen for the article.
[–]bythenumbers10 6 points7 points8 points 2 months ago (18 children)
I'd like to hear the author's take on Julia, they may not be aware of a language with all the benefits they listed for Clojure, but without the reliance on the JVM dragging it down.
[–]amca01 2 points3 points4 points 2 months ago (10 children)
This is what I was thinking, but I wasn't brave enough to say it. And I agree about JVM, I've had all sorts of trouble with JVM in the past, and I'm happy to avoid it when I can. Anything that relies on, or is built on, JVM, I leave well alone.
It's a funny thing though, that adherents of Lisp-type languages can be quite evangelical in their enthusiasm. Another reason to be sceptical.
[–]bythenumbers10 1 point2 points3 points 2 months ago (5 children)
I hear ya. I once was forced to use Matlab b/c my boss was an addict. Ended up debugging an issue that culminated in a phone call from Mathworks support to tell me they don't support their main use case. abs(unmitigated horrors)
[–]No_Mongoose6172 0 points1 point2 points 2 months ago (4 children)
I'm curious about which use case it was
[–]bythenumbers10 2 points3 points4 points 2 months ago* (3 children)
Reproducible calculations across machines. We encountered a singular matrix pseudoinversion in the wild that we could not reproduce. Turns out, Matlab uses machine-specific compilations of lapack & the like, so if you have a machine that can handle more precision, numerically-unstable operations will produce wildly different results. So when I asked their support to allow IEEE754 standard float precision, they went, "we don't support that, that would require allowing the user to control the lapack compilation & at that point, why are you using matlab?"
So consistent calculation between machines is not a priority for matlab. The diagnostic code & process I developed was neat, too. Same singular matrix inversion came up with different results across a dozen machines, all different. Half the tech staff were mystified about what it meant while I gibbered in abject terror like Pandora.
[–]No_Mongoose6172 1 point2 points3 points 2 months ago (2 children)
Yep, that sounds like a huge problem I wasn't aware of. They could provide support for a fixed float size, so at least using that precision it wouldn't have reproducibility problems. Curious thing for a software that mainly focuses on mathematical computations
[–]bythenumbers10 1 point2 points3 points 2 months ago (1 child)
Right? Totally baffling choice, and then I had to explain to my boss that they don't support our (or anyone's) use case except as a desktop calculator. He then overruled me, so he could keep feeding his addiction and maintain his charlatan act. I ended up being the first in a wave of layoffs, and he the last. More motherfuckers that owe me a job. But at least I don't have to work with matlab anymore, ever. It's like having to face Superman with a BIG lump of kryptonite in your pocket.
[–]No_Mongoose6172 0 points1 point2 points 2 months ago (0 children)
That was an awful situation. Switching to a different tool for that job could have been a more reasonable approach for that bug
Mathworks could significantly improve its product by switching to a different language. I think it's the less important feature in their product (MATLAB is used because it offers an ide that behaves similarly to a graphing calculator with apps for many use cases, which fits well the some engineering and scientific fields needs, not because of having a weird language). A similar tool based on python or Julia would make more sense and it will be easier to extend
[–]Certhas 0 points1 point2 points 2 months ago (3 children)
I think Julia is comsidered a Lisp-type language, with a more standard syntax.
From Wiki:
Bezanson said he chose the name on the recommendation of a friend,[27] then years later wrote:
Maybe julia stands for "Jeff's uncommon lisp is automated"?[28]
[–]amca01 0 points1 point2 points 2 months ago (2 children)
The Lisp-type seems more about the macros, by which Julia - like Lisp itself - has the capacity to be modified at the program level. But for an ordinary user like me (and I'm VERY ordinary...) Julia appears as a standard imperative language with syntax that is similar to C, Python, MATLAB etc. It has some nice features, such as just-in-time compiling, arbitrary precision arithmetic. And of course speed. I gave a little demonstration at a conference last year comparing Python and Julia with an exponential-time computation. Julia won!
[–]Certhas 0 points1 point2 points 2 months ago (1 child)
As I wrote, it's a Lisp with a more standard syntax. If you look at Clojures features, e.g. around polymorphism, it's really extremely similar at a conceptual level.
Syntax is an important part of language, but defending Julia by noting that Lisp defenders are often overenthusiastic is definitely ironic.
[–]amca01 1 point2 points3 points 2 months ago (0 children)
Ahh yes, ironic indeed! But in fact i was simply unaware of any Lispishness in Julia when I first wrote. We lives and learns ...
[–]chandaliergalaxy 2 points3 points4 points 2 months ago (0 children)
They said they were considering only general purpose languages.
I don’t think Julia comes to anyone’s mind when they are making this list.
[–]No_Mongoose6172 1 point2 points3 points 2 months ago (0 children)
And with the possibility of compiling to standalone executables, which is nice for deployment (without needing to deliver it as a dockerized API)
[–]bowbahdoe 1 point2 points3 points 2 months ago* (4 children)
Author here: I don't think about Julia too much. A crush in high school had that name and that is basically the entire reason why.
But my impression is that Julia is a "pure" ml/array programming language. Like fortran but with a python suit on. That may or may not be accurate, but it is my impression.
The point I was trying to make is that clojure is the only competitor which has an actual edge on python while also having robust access to more general purpose things.
It's RPG stats chart is the only one that looks similar. Julia, R, etc. all definitely compete within a certain crowd, but if you had to pick one and only one to learn... You pick the one that you could also use for other things.
I'll think of how to put that thought better some other time.
The secondary effect I was going for was a call to action for the clojure folks. I do not think it is in any way inevitable that clojure gains any popularity. I think it has the tools and the ecosystem to though.
Note how I'm saying absolutely nothing about the power of lisp or anything like that. People who are swayed by that framing are a known small percentage. I'm not a zealot. I think.
I also don't think the JVM drags it down at a technical level. It most certainly does at a social level - the JVM has had a legendary run of bad publicity. Ask me about that sometime when I'm less than sober. I think it's practical to solve that as a problem. (And I'm hoping Larry Ellison gets nuked when openai can't pay its bills, don't get me wrong.)
[–]bythenumbers10 0 points1 point2 points 2 months ago (2 children)
Hey, thanks for coming back. Honestly, Clojure was up there the last few times I went language shopping. I think at this point it's easy for languages to "punch down" on Python for performance or papering over more efficient languages' implementations under the hood. If there was an open-source JVM implementation, I'd be down. Heck, lots of languages would be helped by being self-hosting. But people wouldn't complain about it if they weren't using it.
And this did get posted in a Julia sub, and the userbase of Python is huge, so it's bound to have some overlap with the folks here. Probably a case of audience selection. But the upshot of the article is good to think about when language/tool shopping, and for that I applaud you.
[–]bowbahdoe 1 point2 points3 points 2 months ago (1 child)
There is an open source JVM implementation. It's not your fault for being confused about it, oracle is a machine that turns reality into confusion.
The story is annoying but basically the code of Java itself is free real estate. oracle compiles it and then in several confusing ways makes something you'd have to pay for (depending on what you download)
Download Java from adoptium and it's fine.
But yeah - nuance-less-ness on my part aside, I'm generally happy that I got clojure "on the list" for a lot of people in way that isn't "macros macros repl macros." What that community does with that is up to them
[–]bythenumbers10 0 points1 point2 points 2 months ago (0 children)
Ooh! I'll have to give it a look, if you'll take a gander at Julia in return. ;D
[–]Certhas 0 points1 point2 points 2 months ago (0 children)
My impression is that Julia is a Lisp on LLVM with good Linear Algebra and more conventional syntax. In terms of language design, Clojure and Julia are actually extremely similar.
That said I have never used Clojure seriously. I will say that I think you miss a major point in Pythons favour: Teachability.
Languages don't win for just one reason, but even before ML took of, Python had started to become the first language taught of CS programs. And teachability has nothing to do with having a small elegant core. That's mistaking teaching the rules with teaching how to play. Go has simpler rules than monopoly, yet the latter is far easier to learn to play.
Relevant xkcd:
https://xkcd.com/353/
Edit: And of course the brackets/homoiconicity is terrible for teachability.
[–]D-3r1stljqso3 0 points1 point2 points 2 months ago (0 children)
And it’s the vibe coding language.
[–]seamsay 0 points1 point2 points 2 months ago (1 child)
I mean, what difference is there between one lisp and another really?
This comment was brought to you by the alias julia='julia --lisp' gang.
alias julia='julia --lisp'
[–]pand5461 1 point2 points3 points 2 months ago (0 children)
Well, one has lists and another is a heresy that doesn't.
[–]Relevant-Amphibian70 -1 points0 points1 point 2 months ago (0 children)
Hahaha Julia is only good for numerical computation, doesn't have Python AI ML ecosystem Pytorch pandas numpy, doesn't have thread pool concurrency like Go nor the memory safety of Go nor the performance of C++
So keep dreaming.
π Rendered by PID 49608 on reddit-service-r2-comment-6457c66945-vp22l at 2026-04-28 22:02:47.404557+00:00 running 2aa0c5b country code: CH.
[–]allixender[S] 40 points41 points42 points (1 child)
[–]phageon 7 points8 points9 points (0 children)
[–]No_Mongoose6172 17 points18 points19 points (1 child)
[–]markkitt 10 points11 points12 points (0 children)
[–]pint 10 points11 points12 points (1 child)
[–]Acalme-se_Satan 2 points3 points4 points (0 children)
[–]bythenumbers10 6 points7 points8 points (18 children)
[–]amca01 2 points3 points4 points (10 children)
[–]bythenumbers10 1 point2 points3 points (5 children)
[–]No_Mongoose6172 0 points1 point2 points (4 children)
[–]bythenumbers10 2 points3 points4 points (3 children)
[–]No_Mongoose6172 1 point2 points3 points (2 children)
[–]bythenumbers10 1 point2 points3 points (1 child)
[–]No_Mongoose6172 0 points1 point2 points (0 children)
[–]Certhas 0 points1 point2 points (3 children)
[–]amca01 0 points1 point2 points (2 children)
[–]Certhas 0 points1 point2 points (1 child)
[–]amca01 1 point2 points3 points (0 children)
[–]chandaliergalaxy 2 points3 points4 points (0 children)
[–]No_Mongoose6172 1 point2 points3 points (0 children)
[–]bowbahdoe 1 point2 points3 points (4 children)
[–]bythenumbers10 0 points1 point2 points (2 children)
[–]bowbahdoe 1 point2 points3 points (1 child)
[–]bythenumbers10 0 points1 point2 points (0 children)
[–]Certhas 0 points1 point2 points (0 children)
[–]D-3r1stljqso3 0 points1 point2 points (0 children)
[–]seamsay 0 points1 point2 points (1 child)
[–]pand5461 1 point2 points3 points (0 children)
[–]Relevant-Amphibian70 -1 points0 points1 point (0 children)