4 ms·
It is still fascinating that lisp languages lost to python for AI and data processing and now pretty much everything else. In a perfect world , we would be usin
by anoy8888 3y ago
It is still fascinating that lisp languages lost to python for AI and data processing and now pretty much everything else. In a perfect world , we would be using lisp or lisp like languages for everything
- est 3y agoAnd dialects of Lisp a-likes will fight each other. https://locklessinc.com/articles/why_lisp_failed/ https://locklessinc.com/articles/why_lisp_failed/
- eigenspace 3y agoWhat 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 ago
- dgb23 3y agoFor reference: Julia is basically a Lisp under the hood. From playing around with it, it seems like the REPL experience is up there too.
- sundarurfriend 3y agoThe language is a "reasonable" Lisp, with the caveat that it doesn't have things like reader macros (which is a good thing IMO, and helps avoid the Curse of Lisp). The runtime/REPL is pretty good too, and can be quite dynamic with Revise.jl, but doesn't have the Real REPL-driven Programming Experience™ as defined here: https://mikelevins.github.io/posts/2020-12-18-repl-driven/ https://mikelevins.github.io/posts/2020-12-18-repl-driven/ I'm not sure how much of the "breakloop" functionality Infiltrate.jl provides, but at least the runtime re-definition of types isn't supported in Julia, and is one of the shortcomings of the Revise.jl based workflow. All this is not to take away from the original point, Julia does get you a big chunk of the way to being a Lisp and gives you a lot of expressive power. It's just to say that Julia is not just a reskinning of a Lisp with familiar syntax, it has some important design and implementation differences.
- sva_ 3y agoIn a perfect world, we'd probably all live in some kind of harmonious communistic utopia, but theory and reality are two different things.
- IshKebab 3y agoDoesn't sound very perfect to me. I'm no fan of Python but it is at least readable. Lisp is not.
- dagw 3y agoIt is still fascinating that lisp languages lost to python for AI and data processing To a first approximation, the only people that love lisps are people with a solid computer science background, and most people working with AI and data processing day to day do not have a computer science background. They're scientists, engineers and mathematicians who see programming and programming languages as a tool needed to do their 'real' job and not as an end in itself. Python is the perfect language for people who want to learn as little programming as possible so that they can get on with what actually interests them.
- QuadmasterXLII 3y agoI think the secret is that python is so slow that you have to vectorize and call a library written in C to do any serious math. In 2008 this was a serious downside, but it meant that a whole community got used to slicing, multi-indexing, specialized functions like cumsum, and shared idioms. As a result, when the GPGPU revolution hit, you could write vectorized gpu code in any language, but the shared idioms meant that python programmers had the unique superpower of being able to read each others vectorized gpu code.
- xiaodai 3y agothe other data science language r is also slow