As someone who managed to write a 30000 like Racket application without using 
macros, I think they are overrated for application development.  Macros are a 
powerful and necessary feature for designing or extending a language, but most 
people are better served by just using existing, well documented languages.

DSLs/minilanguages are, like, kinda a big deal. And Racket has perhaps the best support for them.

I think it should be normal for a Racketeer to spend some time getting comfortable with DSLs/minilanguages, so that they can start to recognize when a DSL/minilanguage is a big win.

Regarding macros, syntax transformation happens to often be a great way to implement DSLs/minilanguages efficiently in Racket. Shifting computation to compile phase is not the only use of macros, but it's relevant here.

I and many other people speak loosely about relative merits of different programming practices, but we don't actually have great metrics for most of that. Lines-of-code (SLOC) metrics, for example, are most useful for saying things like "We refactored, with judicious use of macros and other accepted programming practices, and incidentally cut the million lines down to 200K." and "A hundred million lines of code?! I don't think we can QA that in 3 months." Despite poor metrics, I'm happy to occasionally and generously share my own opinions, and to sniff dismissively at other people's opinions, in the time-honored tradition of programming language forums elsewhere.

--
You received this message because you are subscribed to the Google Groups "Racket 
Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to racket-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to