5 ms·
>the main difference between those Lisp based languages and Julia in terms of attracting people is the syntax Yes, and this is practically the only thing that
by flavio81 7y ago
>the main difference between those Lisp based languages and Julia in terms of attracting people is the syntax
Yes, and this is practically the only thing that I find wrong with Julia, besides the lack of the interactivity of CL.
It's like populism -- an inferior syntax choice taken just to attract the Pythonistas.
- chrispeel 7y agoI guess you mean you prefer prefix rather than infix notation. Do you have any specific technical reasons for this?
- jacobwilliamroy 7y agoI dislike operator precedence, and I also think that putting all the plus signs in between the addends is a waste time. I like being able to do this: (+ 1 2 3 4 5)
- eigenspace 7y agoGreat news: you never need to use an infix operator in julia. All infix operators are also regular functions, so 1 + 2 + 3 + 4 + 5 is actually the same as +(1, 2, 3, 4, 5) though there's still commas between the arguments.
- jacobwilliamroy 7y agoYeah, those commas are going to drive me crazy. LISP has ruined me.
- eigenspace 7y agoI mostly got used to them, but I do enjoy playing around with https://github.com/swadey/LispSyntax.jl https://github.com/swadey/LispSyntax.jl for more directly lispy sytanx in Julia.
- jacobwilliamroy 7y ago>REPL mode Lisp Mode initialized. >Lisp Mode I wish every language had Lisp Mode, haha
- eigenspace 7y agoAgreed. Not all languages are powerful enough to offer a lisp mode that'd be sufficiently lispy though. The whole point of LispSyntax.jl is that it's lisp syntax while still respecting julia semantics, which are basically just lisp semantics. Of course, LispSyntax.jl still has some glaring omissions that someone should really get around to implementing.
- ddragon 7y agoI agree with you that s-expr is a more powerful syntax (more extensible with less rules), but the social aspect of the syntax is just as important since programming languages target humans, which are just not rational beings. Over the decades many languages "won" against the Lisp family, including a much less mature Python, partially for aesthetic reasons. Even Math could have used a full prefix syntax and have less rules (no need to deal with operator precedence) but people still kept the infix syntax. And Julia, as a math and science focused language, having a syntax that better emulates the tool it covers is objectively a positive point. And secondly, Lisp programmers are also human, and more power means more responsibility. When you have a language to create any language, people are tempted to do it, but a language is also a social construct, not just technical (a language only has value if many people talk it, which means documentation, community, support...), and making it so easy to make your own that you end up ignoring that aspect is the Lisp Curse. Modern languages actually see value in limiting the power, by either removing it completely (like Go), or hiding it/making deviations explicit (like Julia's surface syntax and macro identifier '@' which alerts the user that he is deviating from the "first class" language that everyone is supposed to know).
- pjmlp 7y agoIf Julia succeeds in making Python community taking JIT compilers seriously that is already a big victory.