3 ms·
1. Racket is a multi-paradigm programming language. It has Java-style class/object system, a CLOS-like object system(swindle) and a prototype object system (li
by spdegabrielle 10y ago
1. Racket is a multi-paradigm programming language. It has Java-style class/object system, a CLOS-like object system(swindle) and a prototype object system (like self and JavaScript).
2. The macro system is arguably the most sophisticated available.
3. Functionsl programming! including '(purely)Functional Data Structures'.
4. Parallelism (futures)
5. concurrency
6. Contracts
7. Typed Racket
8. Pattern matching
9. Modules
10. Units
12. Pattern Matching
13. Exception, continuations
14. Reflection
15. arguably the most sophisticated tools for creating full languages and DSLs
16. Datalog language (like in datomic)
17.an amazing IDE - it has a tool to debug macros! (but you can also use Emacs)
18. Typed Racket
19. Functional pictures (pict)
20. OpenGL
21 cross platform (win, mac, Unix, Linux) it will even run on a raspberry pi
22. Amazing community
23. Math library (and plot library)
24. Scribble/@-expressions (like markdown but much more powerful)
26. Quite a few libraries
- lispm 10y ago> Racket is a multi-paradigm programming language and its only implementation. 1. I use LispWorks, a multi-paradigm programming language (and its implementation) based on Common Lisp. It has CLOS and can use multiple other object-systems. 2. uses procedural macros 3. procedural functions, 3. concurrency, 6 assertions, 7 type declarations, 8 unification 9 systems, 10 conditions 11 reflection 12 arguably excellent tools for creating languages and dsls, 13 prolog 14 rule system 15 database interface 16 OpenGL 17 cross platform and will run on the raspberry pi 18 nice community 19 interface builder 20 delivery as shared libraries and applications, ... and a long list of other features... It's commercial and closed software, though.
- PuercoPop 10y agoThe question was how do they compare. 90% of your list applies to CL as well. (CL has sheeple as its prototype based Object system). The statement about macros is more nuanced that you let on, language decisions like being a Lisp-1 w/o a symbol namespace (CL packages) make hygiene a necessity which in turn complicates writing macros. One thing I do like about racket is that it comes with support for writing pattern directed macros, that although possible to write in CL has no built in tools for it. Another point for racket is that it has support for macros with better error reporting (ej the elipsis). 15 is really the main selling point for racket. It is a Language creating toolbox (I forget the term they use for it). It's module system stands out in that regard compared to CL, which has read tables as a way to customize the reader. Racket's solution is more general and extensible in that regard. 16 is not true when compared to CL. The IDE of racket is way behind slime/sly, however it doesn't require setup. The other big difference is that CL is image based and suited for interactive development while Racket is batch oriented, 'python-style' of interactivity. If you come from Python you will think racket is interactive, but if you come from smalltalk you'll know what you are missing. As Aiden said, both are great languages, flip a coin.
- slmyers 10y ago> 17.an amazing IDE - it has a tool to debug macros! This may be true for an experienced user, but I've mainly used VS Code/Atom/Sublime etc, and I did not enjoy DrRacket -- I'm assuming that's what you're talking about. Some of the dropdown menus didn't render for me, and while this may sound stupid, I had the damnedest time figuring out that half my screen was a REPL and the other half a file.
- peatmoss 10y agoHow long ago did you try it / what platform are you running on? It was a few years ago now, but they rewrote the GUI libs to be native rather than whatever x-platform lib they used. DrRacket seemed to get... better then. I mostly use emacs, but was playing with paredit for DrRacket with emacs keybindings the other day and decided that I could get to like some of the other creature comforts of DrRacket.