4 ms·
I was always a little confused about the relationship between Scheme->DrScheme->DrRacket. I had always just considered them all interchangable.
by nobleach 6y ago
I was always a little confused about the relationship between Scheme->DrScheme->DrRacket. I had always just considered them all interchangable.
- neilv 6y agoScheme is a (very nice) standardized programming language, with many different implementations and dialects. DrRacket (previously called DrScheme, before rebranding) is a kind of IDE specialized for teaching intro-to-programming. DrRacket primarily supports various dialects of Scheme, including a series of ones that incrementally add language features, as a student progress through a textbook. You can also implement your own programming languages so that they work with DrRacket, and researchers sometimes build other tools on top of DrRacket. One unfortunate thing is that, for decades, many students have been taught using Scheme or DrRacket -- and were given the impression that Scheme is a toy language, suitable only for homework exercises.
- gus_massa 6y agoInside DrRacket you can use the Student languages that are somewhat simplified, or you can use the full version of Racket or even Typed Racket if you like typed languages. I think the main problem is that debugging is enabled by default. You get a nice error exactly in the spot of the error, but the program is much slower. (I usually use DrRacket with debugging disabled, and when some error appears I enable debugging and run the program again.)
- nobleach 6y agoThank you for the thorough explanation.
- anaerobicover 6y agoThere's a very neat blog/book about using Racket for developing other languages at https://beautifulracket.com https://beautifulracket.com Very impressive work; I believe it's been posted to HN at some point.
- agumonkey 6y agodrscheme was a tool made by a groupe of lisp/schemers from academia I believe (felleisen et al.) but with time they started to hold different views on what a good language/good scheme should be, they made racket which is more functional by default (gross simplication). DrScheme thus became DrRacket. But it's vastly the same idea.