I ended up looking around Racket because it seems to have better libraries.
My problems so far are:
- lack of (loop), (dotimes), etc.
- lack of (restart-case), (invoke-restart), etc.
- REPL feels extremely different from SBCL's one (or emacs + SLIME + SBCL), it is definitely non-Lispy
- inconsistent naming (e.g. see (path-get-extension) and (file-name-from-path) where in other libraries it is "filename" not "file-name" hence the inconsistency, and the "get" in (path-get-extension) seems odd. There is a deprecated (filename-extension), I think sticking to that would be better. I know that backwards-compatibility is the issue but cannot we just issue a warning for a few releases instead?)
- (time) is much less informative than SBCL's (time)
- this is really subjective, but I prefer (progn) over (begin)
In my opinion Racket is better in some regards than Common Lisp, but it still has its warts. Common Lisp has its own warts. I really wish that these issues were to be resolved somehow in Racket so I could have my "perfect" language. :(
Make an issue with regards to the filename inconsistency. I hadn't noticed before - and had to look it up. The confusion stems in the fact that both "file name" and "filename" count as correct spelling (sigh).
My problems so far are:
- lack of (loop), (dotimes), etc.
- lack of (restart-case), (invoke-restart), etc.
- REPL feels extremely different from SBCL's one (or emacs + SLIME + SBCL), it is definitely non-Lispy
- inconsistent naming (e.g. see (path-get-extension) and (file-name-from-path) where in other libraries it is "filename" not "file-name" hence the inconsistency, and the "get" in (path-get-extension) seems odd. There is a deprecated (filename-extension), I think sticking to that would be better. I know that backwards-compatibility is the issue but cannot we just issue a warning for a few releases instead?)
- (time) is much less informative than SBCL's (time)
- this is really subjective, but I prefer (progn) over (begin)
In my opinion Racket is better in some regards than Common Lisp, but it still has its warts. Common Lisp has its own warts. I really wish that these issues were to be resolved somehow in Racket so I could have my "perfect" language. :(