Skip to main content
Welcome guest. | Register | Login | Post

TBuitenh's Laws of Programming Languages

6 replies [Last post]
tbuitenh's picture
Offline
Joined: 2005-12-21

1) The easier it is to learn a language, the more popular it will be.
2) The more popular a language gets, the more it gets extended.
3) The more extensions, the faster the popularity grows.
4) The faster the growth of popularity, the less the extensions fit the original design.
5) (from 1, 2, 3, 4) All good language designs will rot and become useless.
6) The more useless languages exist, the more "new" languages get designed, which are usually stripped down versions of existing languages with some "new" features. This is the same as (4), but on a different level.
7) The newer a language, the bigger the number of abstractions. We'll soon see languages that are compiled for a virtual machine that runs on top of another virtual machine. EDIT: and this is bad.
8 ) The more languages, the smaller the probability two random programmers will like the same language, and the bigger the probability of religious wars.
9) Perl sucks, Python rules. ;-)

supermike's picture
Offline
Joined: 2006-02-17

Your topic here led me to say something I've held back for a long time and chewed on -- the concept of something I call an "alphalanguage", the language that can be used to hatch other languages. And I think the alphalanguage should look a little like Perl because it's fairly simple and seems to be a happy median among languages. However, like anyone, I'm not a fan of Perl's ability to write a completely-unreadable program in the fewest number of characters, so it would have to be Perl-like, not true Perl, and have some sort of mechanism to prevent this kind of silliness from setting in.

When you add something like a common language runtime (made up of an ever-expanding library of modules) that all of these new languages can address, now you can lower the bar and permit even novice programmers to think up a completely new scripting language with innovative ideas. This innovation helps the entire community of languages.

And if you're advanced, you can even do a little GCC work to start tacking on new alphalanguage modules.

And may the best language or language concept win.

tbuitenh's picture
Offline
Joined: 2005-12-21

Um, sorry to rain on your parade, but that is something computer scientists have been trying since the very beginning, and it's now universally accepted as something that can't be done.
A reasonably easy language can't be used to implement ALL other languages because some things get extremely difficult to express or get implemented in a very inefficient way. An "alphalanguage" that looks like perl can only be used to implement languages that resemble (subsets of) perl. Yes you can make up a syntax that looks completely different, but the concepts will be about the same.
It's sad, but if you want to implement a truly new language, you have no choice but to use assembly or maybe C.
Of course there are special languages that can help you write this kind of C code. Have a look at bison. Note that it only generates the parser, nothing else.
A common language runtime doesn't excactly help: either it further restricts what your new languages can do efficiently, or it is just a useless extra layer of crap simulating a complete processor when you already have a much faster REAL processor.

If you really want to stimulate innovation, don't design yet another programming language, and puh-lease don't make others design even more solutions in search of a problem. Write an easy to use C library that solves a real problem instead. In case someone really needs a special shorthand syntax for their problem, they can just use bison and your library and write some glue code to make a language that exactly fits them.
</rant>

tbuitenh's picture
Offline
Joined: 2005-12-21

(in short: please reread laws 6 and 7, and go away Eye )

libervisco's picture
Offline
Joined: 2006-05-04

Hehe nice laws. They're probably true, but the way you put it they sound funny. (and I suspect that was deliberate Eye )

"tbuitenh" wrote:

(in short: please reread laws 6 and 7, and go away Eye )

Go away? No we wont!! Sticking out tongue

tbuitenh's picture
Offline
Joined: 2005-12-21
"libervisco" wrote:

Hehe nice laws. They're probably true, but the way you put it they sound funny. (and I suspect that was deliberate Eye )

"tbuitenh" wrote:

(in short: please reread laws 6 and 7, and go away Eye )

Go away? No we wont!! Sticking out tongue

That was a summary of my rant against supermike's idea, I'm not telling everyone to go away. There are way too many general purpose languages already.

Offline
Joined: 2005-12-20

It would be good if there was one with all of those qualities though, if there is, please point me to it Smiling

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.