4 ms·
Geez someone's a little grumpy. I'd appreciate a little more civility. I don't have any problems with Dr. Racket itself. It's a very useful, very powerful IDE.
by _hardwaregeek 7y ago
Geez someone's a little grumpy. I'd appreciate a little more civility.
I don't have any problems with Dr. Racket itself. It's a very useful, very powerful IDE. But from a marketing perspective Dr. Racket just looks and feels bad to developers. It's a special IDE that you need to boot up, which is reminiscent of Matlab or worse, an educational language like Scratch. In fact, most people I talk to about Racket consider it a language for kids to learn how to code. Dr. Racket certainly doesn't help with that. Especially when the tutorials for Racket ask for you to download Dr. Racket. So yes, Dr. Racket Is A Problem.
Interop may be a problem that developers haven't gotten around to solving. However, I have a distinct memory of sitting in Racket School, hearing someone ask about features that Racket needs to be mainstream ready, and having the creators of Racket shrug and say "we're already mainstream ready". Perhaps they were exaggerating. Perhaps I misheard. But that's the impression I got having gone to Racket School
I'm sorry that I didn't spell out the "very powerful but hard to understand features" part. I mistakenly figured it was pretty clear if you understand Racket's paradigms. The very powerful but hard to understand feature is macros. Macros in Racket are more than a little tricky to understand. You have to get a mental model of syntax objects and compile time vs run time (this is actually harder than it sounds, cause iirc there's like 3 or 4 separate passes). You need to understand how to develop domain specific languages that are well designed and well scoped. You need to understand how to override function application and when that needs to happen. And so on.
I'm not saying get rid of macros. That'd be absurd. But step back from language oriented program and foster a more traditional form of development, while pitching language oriented programming to library developers (like Rails has it's own DSL essentially).