D$Web

Help, I'm trapped in an ugly website...
2009 11 12 - an asymptote of programming evolution

There was a recent Hacker News discussion on whether yet another programming language (in this case, Google Go) was really needed. I'm going to quote a comment I made, because I want to put more mental energy into this idea:


Writing a program is maybe 10% what you want it to do, and 90% telling the computer how to do it. So I think the question of when we won't need another programming language can be answered as: when the default programming language of the day has libraries and/or syntax that grow to include every "how" that's been done before. This way you only have to specify the "what" unless you're doing something nobody's figured out how to do.

So I guess my idea of the limit programming language/environment would be that it's automatic (or at least trivially easy) to make 90% of every new program into a gem, and then automatic/trivial to find the gem that does exactly what you need, as well as to debug it. (maybe rubygems are already this good, i haven't looked into them).


The comment was here.

This oversimplifies a bit. First, I used the word "gem", but I'm not necessarily talking about Ruby, although Ruby's gems are a good place to start: in other words, you add the gem name to your program, and the library is automatically downloaded for your use.

Second, a library with no documentation is almost as good as no library at all. But if you're gemifying 90% of the program as you create it, presumably you're also commenting it.

Third, most libraries are going to have bugs the first couple hundred times around. So when somebody uses a library, they need the source code and their fixes need to be able to make it upstream.

Fourth, at least today, different programming languages suit different purposes. Sometimes you need to talk directly to the hardware, and sometimes you want syntax for GUI stuff. Sometimes garbage collection makes sense, and sometimes it makes more sense. Sometimes concurrency is important, sometimes it's not. The syntax of the limit language would need to be able to change to fit all these uses. You may think I'm describing Lisp here, but you may need a bit more syntactic sugar than what Lisps of today provide (or not? I have much to learn in the Lisp department).

Some of what I'm describing might already exist, and maybe if it became codified in a language it would be syntactic sugar for gems plus github plus google. I need to look into this more. The guiding philosophy for the search is this:

If something's already been done it should be trivial to do again.

blog comments powered by Disqus
To contact me, e-mail cathodion at gmail.com.