5 ms·
this reminds me of Lispen of ye olde.. wait untill it clicks, man!
by Keyframe 2y ago
this reminds me of Lispen of ye olde.. wait untill it clicks, man!
- msla 2y agoLisp is pretty normal if you're accustomed to, like, Python: It's a GC'd procedural language.
- kleiba 2y agoHaha, nice one! :-) (can only assume you're joking)
- Pxtl 2y agoSince every other language now has higher order functions and lexical closures and things like that Lisp isn't as special as it used to be. Now it's mostly just a really ugly version of those languages but with a weird emphasis on recursion and a very fancy macro facility. I find I can move between dynamic languages and Scheme pretty easily.
- deleted 2y ago[deleted]
- cultofmetatron 2y agoas someone who writes elixir all day, I really love what lisp is but I feel lisp's major weakness is that it makes everythign unergonomic in order to make macros very ergonomic. You will never find another language in which writing macros is easier. the problem is it comes at the cost of doing everything else a bit of a pain in the ass. I love elixir because it feels like the syntax clojure would have if it had a syntax imho.
- gorjusborg 2y ago> it makes everythign unergonomic in order to make macros very ergonomic I think 'everything is unergonomic' is a too strong of a statement to be true. I'd argue that lisp is very ergonomic for those who work with it regularly (and are into using Emacs). It sounds like you are beefing with the syntax (or lack thereof) and homoiconicity of Lisp. I can understand that. It is a very different language than others currently in the mainstream for that reason. As far as overall ergonomics, I'd say the REPL/image-based development style and the macros that are enabled due to homoiconicity actually make it one of the most ergonomic languages in existence. The biggest thing that prevents Lisp-likes from going mainstream is that it is too ergonomic, specifically, when you start reading a Lisp codebase, you essentially are signing up to learn a new project-specific dialect. Very ergonomic for writing code, but at the cost of understanding how that code operates.
- lispm 2y ago> major weakness is that it makes everythign unergonomic in order to make macros very ergonomic. Generally Lisp has two main goals: * allow code to be data and data to be code * make coding and coding code (let code manipulate code) interactive The s-expression based syntax was found to be useful for both. For the latter it means that code can be manipulated interactively for example by structure editors or in read-eval-print-loops which work with data. That makes interactive code writing very ergonomic.
- kazinator 2y ago> lisp's major weakness is that it makes everythign unergonomic in order to make macros very ergonomic. That is simply false. The ergonomics of editing Lisp is also superb. There is a consistent, logical way to break any Lisp expression into any number of lines of text. The more you break Lisp into multiple lines, the more clearly the tree structure of the code is revealed. The absence of ambiguity helps readability: not having to guess which expressions are children of what operator. Lisp code sometimes makes up for the parentheses by omitting superfluous punctuation like commas and semicolons. To add two terms, we need ( ) and +. But that's all we need to add 17 terms also. Imagine if the Unix shell required commas between arguments: ls, -l, *.c that's how Lisp programmers feel when back in a non-Lisp.
- satvikpendem 2y agoLisp is homoiconic which most other languages are not. This makes it useful for certain applications over others.
- citizen_friend 2y agoYep, but that and the closely related macro system are about the only unique features left. I’ll add “has a spec” and “is reasonably fast” too.
- samatman 2y agoJulia has convinced me that the value of this is limited. It turns out to be enough to have the AST as a first-class value in the language, which can be manipulated and emitted via macros at compile time, or fed to eval at run time. The more usual Lisps (I consider Julia, like Dylan before it, to be a Lisp) give up most of the advantages of syntax in exchange for an admittedly eloquent macro system. Julia gets the advantage of syntax, and a macro system which is of equal expressive power but less easy to use. Also, in Julia, a macro leads with `@`, the way a macro in Rust ends with `!`, meaning you can read the difference between a macro and a function at the call site. I consider that a good thing.
- wbl 2y agoSome jokes are serious some serious statements are jokes. Perlis's epigrams are one example.
- quchen 2y agoInhad to look up what Perlins' (!) Epigrams are. Worth a read! https://iiif.library.cmu.edu/file/Simon_box00075_fld05959_bdl0003_doc0002/Simon_box00075_fld05959_bdl0003_doc0002.pdf https://iiif.library.cmu.edu/file/Simon_box00075_fld05959_bd...
- glonq 2y agoYeah, this hits hard. Despite being proficient in a bunch of languages in college, I could just never wrap my poor brain around Lisp.
- bee_rider 2y agoThat’s sort of different, right? Rust is just another systems language. Lisp is the language that nobody knows but everybody secretly believes is better than their language of choice.
- gwern 2y agoHe mentions Common Lisp as something he did a game in, and you can see the link he praises https://www.youtube.com/watch?v=72y2EC5fkcE https://www.youtube.com/watch?v=72y2EC5fkcE as basically a very well-developed Lisp image approach with timetravel debugging etc aimed at game dev. So the implicit comparison to Lisps is sort of a big undercurrent to this whole article.
- orthecreedence 2y agoA lot of the stuff he mentions he wants I kept thinking "Oh, you want common lisp!" I dabbled in some game dev in CL and loved it. I think the ideal would be low level engine, lisp on top driving it. If you could do it without the FFI barrier slowing things down a crazy amount, it would be the killer combo.