Alas, communicating this insight has been...challenging. One method was branding
Objective-S as "the first general purpose programming language".
This did not always go over well.
This doesn't really sound much like a discussion...
Of course, there is no such thing as bad publicity, but this had a bit too much of a lunatic-fringe
vibe, no matter how correct the insight, and no matter how ill-fitting the moniker "general purpose
language" really is for our call/return-oriented algorithm-DSLs.
As Richard Feynman once put it, "One of the miseries of life is that everyone names everything a litte bit wrong, and so it makes everything a little harder to understand in the world than it would be if it were named differently". Calling our algorithm-DSLs "general purpose" implies that we have solved the problem of
generality, when we have not, and that the only real alternative is to be more specific, hence DSLs.
But DSLs also don't really work that well, because the successful ones almost invariable grow
non-domain-specific features, just in a haphazard way. Or they need to be combined to cover different
fields, so we get language workbenches that allow us to define lots of little DSLs and combine them.
This all points to the fact that our problem is not being too general, but too specific. Our algorithm-DSLs
just aren't very good at covering a lot of the problems programmers have to solve, though of course
they are Turing-complete and can get us there, somehow.
Riffing off those ideas, and leaving aside the minefield of incorrect but entrenched terminology, I
propose the term Domain Agnostic Programming Language. Because any sufficiently powerful
DSL can be bent out of shape sufficiently for any purpose, just like our algorithm-DSLs can. They
just aren't a good fit. And so Objective-S is not the first general purpose language, it is the
first, and almost certainly the worst, DAPL. And hopefully its programming environment will be
dapper.
Or
I understand you're trying to make a fun rhetorical point with the framing, but I have to say it just makes me uninterested in any serious engagement.
Makes it seem like you don't care to even acknowledge existing PL work. =/
Wednesday, January 3, 2024
DAPLs: Domain Agnostic Programming Languages
Every once in a while, you get an insight that hits you like a truck. Or maybe a ton of bricks.
Or a truck carrying a ton of bricks. Developing Objective-S has
delivered a bunch of these, but one of the biggest was that our General Purpose Programming
Languages are nothing of the sort. They are Domain Specific Languages for the domain
of algorithms. See also: ALGOL. To move forward, programming languages will have to support
more than just this one architectural style.