5 ms·
Common Lisp has had multiple dispatch for decades. Yet another Lisp feature "taken" by another language - why not just start with a Lisp and improve it (e.g. Ty
by fouric 6y ago
Common Lisp has had multiple dispatch for decades. Yet another Lisp feature "taken" by another language - why not just start with a Lisp and improve it (e.g. Typed Racket, for performance) rather then repeatedly creating new languages and just adding a tiny piece of Lisp to them each time?
- leephillips 6y agoAs I mention in the article. Note that Julia is in a sense lisp-based, and you can easily see the AST of your functions. You can say +(a, b, c) in Julia, for example.
- pmoriarty 6y agoBut unlike Lisp, the Julia language is not homoiconic, so its ASTs don't look like the parent language.
- KenoFischer 6y agoJust swap out the parser ;) -https://github.com/swadey/LispSyntax.jl https://github.com/swadey/LispSyntax.jl
- tokai 6y ago>Yet another Lisp feature "taken" by another language Julia is a Lisp.
- KenoFischer 6y agoThat is how Julia started. In the early days it was a scheme reader macro. You can still run `julia --lisp` to get a scheme prompt since the frontend is still written in it. Obviously lots of improvements have happened since then. Julia itself also feels a lot like a lisp, since Jeff is a huge fan, but of course people get hung up on the syntax.
- pmoriarty 6y agoIt's nice that you can write Julia in a more Lispy way, but if you did that you'd probably be one of the only Julia users did so, and your code would not be readily understandable or accpetable to the rest of Julia's users and if you wanted to integrate other Julia code in to your own you'd be stuck with having to use the more Python-like syntax that the vast majority of Julia code is written in. In short, the Julia ecosystem is not a Lisp ecosystem. If you wanted Lisp, you'd be far better off using a real Lisp to begin with, so you can unreservedly participate in an entire Lisp ecosystem, instead of using a language that hides its Lispyness behind a Python-like syntax.
- KenoFischer 6y agoCreating your own little universe that nobody else using the language can understand sounds exactly like lisp ;).
- ddragon 6y agoHaving a language that hides it's lispness behind a python-like syntax can be good for the lisp community though, even if they don't use them. People do have prejudice against those parenthesis, so having an entry point that is "Python-like" (the most popular language for beginners and non programmers) that can still teach the core features of Lisp (everything is an expression, sort of easy AST manipulation, macros, parts of CLOS like multiple dispatch) will only help people appreciate the languages it was inspired on. And possibly they'll also feel the limitations of non sexp macros and decide to actually move to racket or common lisp to free themselves from those restrictions once they become aware of them. Possibly those people will even do something like Clojure for the Julia compiler (a mature version of [1]), with an entire community around it so you don't have to worry about doing "unacceptably lispy" code (and it will certainly interop much better than Clojure and Java). [1] https://github.com/swadey/LispSyntax.jl https://github.com/swadey/LispSyntax.jl
- ViralBShah 6y agoYes, common lisp has certainly had multiple dispatch for decades. I think what makes Julia interesting is that the Dispatch Ratio and reuse is significantly higher in Julia than in other languages with multiple dispatch. Some of that is certainly attributable to the ways in which Julia differs from a lisp. See Sec 6.2 "Julia: dynamism and performance reconciled by design" in https://dl.acm.org/doi/pdf/10.1145/3276490 https://dl.acm.org/doi/pdf/10.1145/3276490.
- kryptiskt 6y agoThis might sound harsh, but Common Lisp fans should stop whining about what everybody else is doing and start making some killer apps to bring back some life into their language. Hearing all about Lisp's past glories is far less convincing than working code. It's just off-putting to hear complaints about what someone else did. As always in free software, the one who puts in the hours gets to call the shots.
- dpc_pw 6y ago> This might sound harsh, but Common Lisp fans should stop whining about what everybody else is doing and start making some killer apps to bring back some life into their language. They can't. They are all busy implementing another Lisp in Lisp.
- agumonkey 6y agoThere's a psychological paradox at play. Many idealistic lispers want a lot of things but they don't play the current game, they (I can include myself partially) care more about the tool than the product and it just dies a quick death. For this to happen they have to turn their view of lisp from beauty to an effective tool to win on pragmatic points: time to develop, number of bugs, ease of adaptability. CL has a hammer for all this points but you have to see the field that way and produce things.. well basically 'less is more' vs 'perfectionism'
- pmoriarty 6y agoAs a huge Lisp fan (though more of Scheme than Common Lisp), I kind of agree. If a Lisper had come up with Jupyter notebooks before Python did, they could have captured the interest of academia. If they'd come out with a Ruby On Rails framework before Ruby did, they could have made inroads in to the web development community. That is, of course, if you could somehow get developers to embrace all the parenthesis, which seem to be an albatross around Lisp's neck that it can never shake. Lisp does have one killer app, though: Emacs.
- konjin 6y agoThey did. It was called org-babel. It is still superior to notebooks because you can weave the source code and mix a dozen languages.
- agumonkey 6y agoDon't fight the universe, common lisp is too old for the mainstream to care, you can argue the same for es6, python, php .. it was all ridiculously bad and evolved by adding old ideas. If you want to make CL exist in a commercial driven world.. make a successful CL business, that's the only thing this soil understands.
- bitwize 6y agoFun fact: You're commenting on Hackernews, which was made with extra cash belonging to a man whose fortunes came from a successful CL business.
- agumonkey 6y agoAs if I didn't know that. ps: viaweb was ages ago, it was cool and famous and world didn't care. Social structures are odd and people want to belong to their own cult, php, js, python were a 'better' fit for the uneducated people of that time, now they are the world and still only care about their own little world. Until they get a new idea, which they now see the value of and will integrate them shamelessly. CL nowhere to be found. It's a sad fact of life, CL heads don't have the desire to dominate, so their language features will be assimilated silently.
- pmoriarty 6y ago"why not just start with a Lisp and improve it" The reason is pretty clear. Mainstream programmers are just allergic to Lisp syntax. They don't like all the parenthesis, and want a more Algol-like syntax (which, these days, and especially for the users who Julia is trying to attract, means a more Python-like syntax). Lisp for a lot of developers also has an old, stale feel to it. Programming is dominated by fads, and most programmers (especially younger ones) want instead to chase the new shiny. Decades ago, I read that there were already something like 4,000 languages. I expect in another couple of decades there'll be 4,000 more, with every new generation of developers eager to jump on the bandwagon of yet another new language. Python, once the new kid on the block dethroning Perl, is now itself considered to be kind of old and stale, so people are looking for the new thing. Maybe Julia is it!
- andi999 6y agoI believe the bigger problem is that macros are too powerful. This leads to that every project becomes its own DSL, which is not compatible with other projects. So code sharing/ availability of tested libraries is low. This leads to low adoption rate. Of course if you want to build your own (mega-) fortress all by yourself, Lisp is the language to go to. Most people and stakeholder prefer not to.
- leephillips 6y agoThis is an issue for me. Although I find the lisp idea beautiful, my programming usually has some relation to mathematics, to equations. In lisp, math just doesn’t look like math. Julia goes the opposite way: it's use of Unicode for identifiers and such things as allowing juxtaposition for multiplication (when not ambiguous) make math look more like math than in any other language.
- pmoriarty 6y agoI do like the the option of using unicode symbols in Julia, but this need not be thought of as only a language feature. Emacs allows you to substitute any text for any other when viewing a document, so you can pretty much do the same in Emacs for any language. I did this when editing LaTeX papers full of logic symbols, which Emacs would display as the symbols themselves rather than as the underlying LaTeX markup. It could do the same for Lisp or any other language.