3 ms·
What do you mean by lisp-like? If you mean “primarily uses S-expressions” then I guess I dont really see why that’s so important to you. If you mean a languag
by eigenspace 3y ago
What do you mean by lisp-like?
If you mean “primarily uses S-expressions” then I guess I dont really see why that’s so important to you.
If you mean a language that is semantically similar to lisps and learned a lot of the important lessons that Lisp taught the programming world, I think Julia is one of the Lispiest languages in this space right now.
The syntax may not be S-expression based on the surface, but our Exprs are actually essentially just S-espressions so writing syntactic macros is very easy. The language is about as dynamic as is possible without major performance concessions, and is very heavily influenced by a lot of design ideas from the CLOS, with some features missing but also some cool features CLOS doesnt have.
- dan-robertson 3y agoI think the point the GP is making is that Julia (and other lisps) lost in this space.
- eigenspace 3y agoWhile I consider julia lispy, I do think it's quite a reach to call it a lisp. I also think it's quite a reach to say julia lost in this space. It's still working it's way up. Julia is growing and evolving and finding new users and niches. It certainly hasn't 'won', but it's a bit early to call it a loss.
- Oreb 3y agoI certainly consider Julia to be a Lisp, and I’m pretty sure that’s what the person you responded meant, too. His point remains true: Julia appears to have little chance of overtaking Python, except in some tiny niche areas. And even in these niche areas, I fear that Julia will end up losing to Mojo. I really hope I am wrong. I love Julia and would like to see it succeed everywhere, but it doesn’t seem to be happening.
- msravi 3y ago> I certainly consider Julia to be a Lisp Can you elaborate some more on this? My worldview assumed that a lisp used a list as a primary code/data structure and Julia doesn't seem to be doing that... Of course it does provide a way to manipulate code and data because of its macros. But what makes a lisp a lisp?
- martinsmit 3y agoHere's a meme that might help: https://www.reddit.com/r/LispMemes/comments/irkm5m/nobody_likes_semantical_chaotic/ https://www.reddit.com/r/LispMemes/comments/irkm5m/nobody_li...
- suavesito 3y agoI think the commenter refers to the fact that in Julia, code is data, even if it is not represented as lists. This allows the existence of macros, which are syntactic sugar to functions modifying code. Also that most (all?) lisps have multiple dispatch as a fundamental part of the language, and Julia does too.
- KingMob 3y agoEvery time this pops up, I feel compelled to point out how different Julia macros look like from regular Julia code, especially once the macros get complicated. "Code as data" is not quite the same thing as homoiconicity, which I feel is Julia's missing piece.
- goerz 3y agoI’m not sure I would consider the scientific computing that Julia targets a “tiny” niche. It’s worth remembering that Python is 30 years older than Julia, and Julia has only been in a really usable state for 4 or 5 years. You can’t expect it to displace Numpy/Scipy/etc overnight. Especially if you include machine learning, where there’s just huge momentum with large corporations having massively invested in Python frameworks for at least 10 years. Subjectively, I’m seeing quite a lot of growth in Julia. It’s certainly a much stronger language than the Python/C++ combination that currently has the biggest market share in that area. Also, there’s nothing wrong with niches. Julia is undoubtedly less of a general-purpose language like Python, but it very much shines in its domain.