4 ms·
Looks great, but didn’t answer the question for me of why to learn this over TypeScript or Rust. The answer seems to be in the title: this of particular intere
by markstos 3y ago
Looks great, but didn’t answer the question for me of why to learn this over TypeScript or Rust.
The answer seems to be in the title: this of particular interest for those already interested in Lisp or Scheme.
- soulbadguy 3y agoWhat are you looking for in learning a new language ?
- markstos 3y agoTypeScript as a job skill for web work. Rust because it’s the other language I see most often see coders learn to build their own apps. It has a good reputation for developer experience, security and speed. I’ve heard enthusiasm for lisp-based languages for a couple decades and don’t doubt the merits of Racket.
- soulbadguy 3y agoYeah in which case I think you are fine skipping racket or lisp for that matter
- eyelidlessness 3y agoDisclaimer: my lisp experience is largely with Clojure, and not at all with writing Racket, just earnestly reading about it. If you’re picking just one language to learn, and limiting your learning to only that one language for a significant period of time, you’ll probably want to learn Rust. You won’t get all of the benefits of also learning a lisp, but you’ll get a lot of the ones which generalize well. If you’re open to learning 1+N and otherwise lean towards TS, I would say you’re better off learning Racket (or any lisp really) in tandem than learning TS alone. Familiarity with the core concepts and idioms of FP are broadly beneficial in any language, and lisps tend to be a good balance of those with low incidental mental overhead, and reasonable escape hatches to do imperative stuff where it makes sense. Racket is probably a particularly good candidate because its optional typing is another overlapping story between the two. I haven’t written in any lisp for close to a decade now, but I still find that prior experience beneficial every day since. I sometimes miss the simplicity and flexibility of the parentheses. But I can take what I learned—how to reason about state, data flow, data-driven abstractions—anywhere. And those abstractions are particularly useful in a structural type system like TS.
- soulbadguy 3y ago-- You won’t get all of the benefits of also learning a lisp, but you’ll get a lot of the ones which generalize well. Which one ? Rust and lisp in general are quite different beast...
- eyelidlessness 3y agoRust also is functional by default with clearly distinguished imperative mechanisms. In my (admittedly limited) experience, Rust hews more towards the type theory of MLs and generally encourages programming with expressions rather than statements. The syntax is definitely less lispy but not so much that it’s hard to metaprogram.
- aobdev 3y agoI would argue that learning Racket as part of a foundation in CS would make it easier to learn TypeScript and Rust.
- zelphirkalt 3y agoSibling comment already asked the important question to ask yourself, but my answer would be: Language design decisions and the typical benefits of using Scheme dialects or former Scheme dialects, as Racket does not consider itself a Scheme any longer, iirc. For example being able to make good use of recursion, being able to write programs more elegantly. Racket, in contrast to JS or TS, comes with lots of batteries included, therefore not requiring so many third party dependencies. Time and time again I see the Racket docs and think: "Ah Racket has got something for that/got you covered." Also it is rich in programming language concepts. You can write your programm in any of the languages that come with Racket, or you can write it with function contracts or you can use Typed Racket. At its core, it is a much cleaner and better designed language than TS will ever be due to TS' JS legacy.
- mcpackieh 3y ago> Racket does not consider itself a Scheme any longer, iirc. Racket (the language) itself is no longer a Scheme, strictly speaking, but still feels generally "schemey" in the broad scheme of lisps. However, Racket (the software package) does ship with a Scheme or two, namely R5RS and R6RS.
- markstos 3y agoI coded in Perl back when it dominated web development and came to value practical over beautiful in language choices. CPAN made Perl the best choice for many tasks and the same can be said of NPM for choosing TypeScript now, regardless of the elegance of the language. But I’m also a fan of “language tourism”. Even if one language is more practical, visiting other language cultures can make us better developers overall. I studied Haskell for a bit which gave new ideas for how I use Perl. Culturally, Haskell was using a lot of functional programming concepts and recursion. Those were possible in Perl but not popular. I’m sure there is value in studying Lisp languages for those who end working mostly in TypeScript or Rust
- disconcision 3y agoEven the racket teachpack libraries designed for education are very capable; I was able to make this structured editor with only using teachpack content without external deps: https://github.com/disconcision/fructure https://github.com/disconcision/fructure