4 ms·
I've been playing with Miranda a little bit since seeing this yesterday, and man, I gotta say, the quality of the REPL environment and documentation is amazing.
by voidhorse 7y ago
I've been playing with Miranda a little bit since seeing this yesterday, and man, I gotta say, the quality of the REPL environment and documentation is amazing.
Everything is laid out plainly, and you can learn how to work with the language in a matter of minutes.
Even the readme was one of the best I've ever encountered. It makes no undue assumptions and leaves no work up to the reader. It even notes that one may need to make certain edits to the Makefile on certain systems and, if needed, how and where one should do so (I've had to make several other programs in the past that require more tweaking and don't document the possibility or guide the user at all).
The language itself seems slim and elegant so far, but, if nothing else, I'm amazed at the level of quality of the compiler documentation, the manageable size of the source, and the REPL's design--it encourages you to write entire programs from the REPL, by allowing you to direct output to a file and to invoke an editor to modify the current scripts loaded into the environment--all this without the need for special plugins on the editor side; instead of having to invoke the REPL from your editor, your REPL invokes your editor--honestly it seems like the right relationship and now I'm fairly confused why other REPL focused languages don't commonly support this.
Everything comes bundled too--you don't need to go through some gitbook based tutorial docs in your browser to get up to speed--it's all available right from the system itself.
A lot of contemporary programming languages I've used don't have nearly as good of an onboarding experience. It makes me wonder to what extent this is just a rare case of quality work by great programmers and to what extent its symptomatic of what one can deliver with licensing and funding, as opposed to purely open-source contributions largely driven by community interest.
- Bytenik 7y agoHmmm...I'm wondering if there's something wrong with my build (Mac OS X) or if I'm just "using it wrong" because the REPL (not the language) seems pretty unusable to me. The up and down arrows just show escape sequences instead of going to previous/next history. Entering `foo = 123` gives the error `UNDEFINED NAME - foo`. Entering `exp foo = 123` gives the same error. Entering the same expression on a line in a file works though (`/f test.m`). Am I doing it wrong?
- sedachv 7y ago> instead of having to invoke the REPL from your editor, your REPL invokes your editor--honestly it seems like the right relationship and now I'm fairly confused why other REPL focused languages don't commonly support this. That is originally how REPLs worked in Lisp and APL systems in the 1960s. In BBN Lisp/Interlisp (see http://www.softwarepreservation.org/projects/LISP/bbnlisp/W-21_LISP_Editor_Apr67.pdf http://www.softwarepreservation.org/projects/LISP/bbnlisp/W-...) and APL\360 you called the built-in editor from the REPL. There were not really any stand-alone interactive editor programs around back then, and the operating systems BBN Lisp and APL ran on mostly did not properly support running multiple processes to run editors anyway. Maclisp on ITS had job control, and you could call external editors: http://www.maclisp.info/pitmanual/edit.html http://www.maclisp.info/pitmanual/edit.html Doing it the other way around is better for projects written in multiple languages, dealing with multiple implementations, running processes on remote systems, and IDE features.
- kick 7y agoI disagree with your last sentence, but thank you for bringing the history here up!
- kick 7y agoI shared this comment with a friend because it made me happy that something I posted was getting more than a surface-level review, and they responded like this to your last paragraph: This is an interesting note to end on, because I'm not sure licensing and funding is one of the main factors that leads to this sort of thing. I think rationally designing environments in a holistic way is just sort of a lost art among programmers in general, in favor of the sort of anarchy and patchwork that characterizes software development in the present day I agree with their view fairly strongly. Modern proprietary languages aren't this good at all in the same areas, either. Thanks for checking this out, it makes me happy that someone's gained something from doing so.
- voidhorse 7y agoThat's great! I think your friend's take is sound and I agree with that being the likely root cause. I do wonder if there's a certain relationship between a closed project, however, and rational, focused design—not a necessary relationship at all, but perhaps a synergistic/convenient one (closed or tight-knit projects lending themselves to singular, disciplined visions, projects that are fundamentally open having a greater tendency to allow less focused design decisions creep in). I would agree on the "lost art" and "anarchy" — this definitely gives me something to think about! And I'm glad you shared this! I had a blast checking it out.