11 ms·
Am I the only person who is put off by Elixir by the lack of S-expression syntax? I decided to learn Clojure for my next language.
by nanna 1y ago
Am I the only person who is put off by Elixir by the lack of S-expression syntax?
I decided to learn Clojure for my next language.
- em-bee 1y agowhile i love s-expressions, i am not aware of any language outside the lisp ecosystem that supports it natively. are you saying that you are put off that elixir is not lisp? i am interested in clojure, but i am put off by it using the java run time. ;-)
- iLemming 1y ago> i am interested in clojure, but i am put off by it using the java run time Clojure runs not only on Java - you have Clojurescript, you have babashka and nbb, you have Clojure-Dart — if interested in building Flutter apps, you can even use Clojure with Python libs. If you need to target Lua, there's Fennel, which is similar as it's inspired by Clojure. For me - Clojure is a hands-down best medium for data manipulation - there's just nothing better out there to explore some data - investigate APIs; sort, group, dice and slice any kind of data - CSVs, JSON, etc. Nothing else simply can match the joy how one could incrementally build up complex data transformations, it makes it incredibly productive for the "let me just quickly check this shit" scenarios that can easily turn into full analyses. REPL-driven nature of it makes it so much fun - you feel like you're playing a videogame. I honestly wish every programmer knew at least some Clojure. I lost count of how many times I gave up on figuring out complex jq syntax and reached for Clojure instead. Or the times I'd quickly build a simple Playwright script for reproducible web-app bug trapping or quick data scraping that saved me hours of frustration and manual clicking.
- aeonik 1y agoThere's also Fennel -> Lua Jank -> C++
- Jtsummers 1y agoConsidering the vast majority of languages don't use s-exprs, possibly. There aren't many hardcore lispers who refuse to use anything but s-exprs.
- iLemming 1y ago> Am I the only person No, you're not alone. After learning Lisp, structural editing and REPL-driven-development, I just don't feel like needing to learn new languages no matter how powerful they seem to be. Lisps like Clojure are highly pragmatic and offer something fundamentally different from the endless parade of syntax-heavy languages that dominate the mainstream. Once you've experienced the fluidity of paredit or parinfer, where you're editing the structure of your code rather than wrestling with textual representations, going back to manually balancing brackets, fixing indetnation and carefully placing semicolons feels like reverting to a typewriter after using a word processor. The code becomes malleable in a way that's hard to appreciate until you've lived with it. And the REPL changes everything about how you think and work. Instead of the write-compile-run-debug cycle, you're having a conversation with your running program. You can poke at functions, test hypotheses, build up solutions incrementally, and see immediate feedback. It's exploratory programming in the truest sense - you're not just writing code, you're discovering it. The homoiconicity - code as data - means you're working in a language that can easily reason about and transform itself. Macros aren't just text substitution; they're proper AST transformations. This gives you a kind of expressive power that most languages can't match without tremendous complexity. So when the latest trendy language appears with its new syntax and novel features, it often feels like rearranging deck furniture. Sure, it might have nice type inference or clever concurrency primitives, but you're still stuck in the old paradigm of fighting syntax and losing the conversational flow of development. You've tasted something closer to the pure essence of computation, and it's hard to go back.
- amarsahinovic 1y agoThere is Lisp Flavoured Erlang https://lfe.io/ https://lfe.io/ created by Erlang co-inventor Robert Virding.
- nanna 1y agoBut wouldn't I be right in thinking that the Elixir ecosystem isn't interoperable from it? I guess what I'm hoping for is a Lisp Flavoured Elixir?
- aitchnyu 1y agoI used Clojure and it has same goals as bigger-grammar languages, like overloaded function definitions, casting/type-hinting, method calls etc, it just achieves them in a clunkier way.