5 ms·
Language-oriented programming sounds like metaprogramming with DSL’s just with a new toolkit. Language-oriented programming might be a more approachable term fo
by nickpsecurity 9y ago
Language-oriented programming sounds like metaprogramming with DSL’s just with a new toolkit. Language-oriented programming might be a more approachable term for that, though. If I heard it, the first things I’d think of were tools such as Rascal and Ometa that let one arbitrarily define, operate on, or use languages. That covers language part. Far as integration, a number of techs supporting DSL’s… probably a lot of LISP’s and REBOL… had a powerful language underneath one could drop into.
So, this seems like a new instance of old ideas they’re giving a new name. I do like how they’ve integrated the concept into a general-purpose, GUI-based, programming environment instead of it being it’s own thing like the others. You get best of both worlds.
An old idea I had was researchers should do more experiments in building things like Rascal or Ometa alternatives in Racket leveraging what they already have to see how far one can stretch and improve it.
http://www.rascal-mpl.org/ http://www.rascal-mpl.org/
https://en.wikipedia.org/wiki/OMeta https://en.wikipedia.org/wiki/OMeta
- stevekemp 9y agoIndeed, though I admit my first thought when reading things like this is of FORTH rather than Lisp. I think there's a lot of value in DSL and implementing them in some languages is a lot easier than others.
- gfodor 9y agoLanguage oriented programming is far from a new term. See the history of jetbrains MPS and intentional software. There was a strong meme in the early 2000's this was the future, it never seemed to take off.
- username223 9y agoI even bought into that meme a bit in the early 2000s. It turns out that most "language" designers (including myself) aren't that good at it, and that designing a language that isn't just yet another leaky abstraction takes a lot of work. Your "interface" is the entire syntax and semantics of your "language."
- stevedonovan 9y agoYes - there is definitely a hierarchy of difficulty: user code, library, macros, full syntax extension. The trouble is that designing new languages takes a lot of _taste_ and experience. We don't know the full domain, so DSLs tend to have bits added to them as knowledge of the domain grows - and that's the scary point in language evolution. So, despite these things being tremendous fun, I tend more towards correctness and clarity at the expense of sheer expressiveness. (An example of ad-hoc language design is CMake, which makes my eyes bleed. Kitware should have used an existing language - even tcl would have been better.)