4 ms·
Smalltalk and Racket are two languages I recomend to anyone wanting to learn a new language just for self-education sake. Now running Smalltalk on JVM I can't t
by baldfat 8y ago
Smalltalk and Racket are two languages I recomend to anyone wanting to learn a new language just for self-education sake. Now running Smalltalk on JVM I can't think why I would go down that road.
- uhoreg 8y agoWhy do you recommend Racket over one of the other lisps?
- chriswarbo 8y agoI'm not the parent, but "lisps" covers a very large part of the language design space, including languages which have almost nothing in common with each other (e.g. Dylan doesn't use s-expressions, Carp uses static types and manual memory management, etc.). I would narrow this down to the "major" Lisp languages/standards, which pretty much means Common Lisp, Clojure, Scheme and Racket. Out of these Scheme has a history of use for teaching (e.g. SICP) and Racket has a history of use in research (Racket used to be called Programming Language Theory Scheme, AKA PLT Scheme). Personally I'd recommend those wanting to learn "a lisp" to try a Scheme implementation, and Racket is a particularly good Scheme implementation (with lots of other good stuff built on top too, like support for creating custom languages).
- baldfat 8y agoRacket has a few big things going for it. 1) It was designed to teach and the "How to Design Programs 2md Edition" is the best book I have ever gone through for programming. (Also the most dense). 2) Racket is usable. I am now using Racket as a first choice. It is a joy to use. I can make my program and make it an executable in one line of code. So simple and its strongest reason to use the language. 3) The mind trust. It has the who's who of the academic Scheme and Lisp world. It is also the most practical. Racket is special because it is so well thought out. 4) It is plain old fun. It reminded me of when I first learned Python but with so much easier ways to share your program.
- lispm 8y ago> I can make my program and make it an executable in one line of code. Many Lisp implementations do that - even native. Personally I think the Racket IDE sucks. Big. It's slow and buggy. On my Mac it is barely usable. The interactive response is extremely poor.
- tonyg 8y agoLots of people who hack on and hack with Racket (including me) use Greg Hendershott's racket-mode [0] in Emacs. It's good. Greg also wrote a blog post about it recently [1] which might be of interest. [0] https://github.com/greghendershott/racket-mode https://github.com/greghendershott/racket-mode [1] https://www.greghendershott.com/2018/10/racket-mode.html https://www.greghendershott.com/2018/10/racket-mode.html
- lispm 8y agoBut when you want to write applications with a GUI, then you either need to use their toolkit or provide an GNU Emacs interface. Neither is attractive, especially since both UIs suck.
- baldfat 8y agoJust use VS Code or Atom. Vi Works well also.
- tonyg 8y agoWeren't you talking about the IDE? I feel like this is shifting the goal posts. Which IDE one uses is at most weakly connected to the toolkit one uses for GUI work.
- lispm 8y agoThe Racket IDE uses Racket's UI toolkit. As such the IDE an example how bad the UI toolkit is. Given that I'd write UI code on a Mac using a Mac-based IDE - both suck. The IDE look&feel is directly influenced by the UI toolkit.
- fractallyte 8y agoWell, I once worked at a games company that used Java. One of my colleagues coded up a small application that could run 'live' and provide detailed information about running code. The kind of stuff that I, as a Smalltalker new to the Java ecosystem, assumed was normal. This is when I realized that a proper Smalltalk running on the JVM would have revolutionized development in this company. Imagine developing your games in a 'live' environment, without all the lengthy recompiles and elusive errors. In other words, game development within the game itself. Much smoother, less stress, and a 'finger on the pulse' of running code.