Registered: Sep, 2005
Re: Steve Yegge: What the Next Big Language Will Be
Posted: Feb 15, 2007 2:44 PM
> > > I'm not sure what you mean by "isn't going to cut it"
> > > except for a post of yours referring to the JVM
> > > poor integration with the OS - which I still don't
> > > understand. Do you mean Java (the language) not
> > > something like C#'s pinvoke?
> > I don't want to go into depth but one of the biggest
> > complaints about the JVM is that it only allows for a
> > subset of what an OS allows. A good example is how
> > difficult it is to write an interactive text based
> > application (e.g. vi) with Java. You have to add
> > libraries which generally means compiling them. This
> > means you either don't do these things or you lose some
> > the benefits of a generic VM.
> Are you sure that you don't mean the class libraries and
> not the VM. One of my criticisms of Java is that it
> doesn't have something like pinvoke. I want to be able to
> leverage native libraries and don't expect the standard
> class libraries to have everything under the sun.
> But I still think it's unreasonable to call for some
> universally-supported platform. You're never going to
> have everyone agree on something like that, and if you're
> willing to pony up, then you can have Mono or Java or
> anything else ported to what you consider critical
I'm not calling for anything per se. I'm trying to make a basic logical proposition and looking for people to either say, 'yeah that makes sense' or 'but you are missing...' But I haven't done it well so let me start over again.
There are a core set of features that most mainstream operating systems support. For example, a hierarchal file system. If this is incorrect, then we can stop here because everything else in my argument is based on this. Given that, it should be possible to create a specification that supports this core set of features. If this spec were created and then accepted as a standard, then programming languages and libraries could be targeted at this single platform and not at either many OS platforms or .NET/JVM.
There's nothing revolutionary about this. This is basically what Java and .NET have attempted. I'd argue that in the Java case, they didn't quite hit all the features. .NET/Mono might do it except that as you point out, CLI (like JVM) lacks good support for dynamic languages. In any event, as it stands there is no one instruction set (or bytecodes if you prefer) and/or portable platform that is dominate.
Firstly, I think it's definitely possible to create such a standard. I'm not saying it's feasible but I think it's possible. Does anyone argue that it is not?
Secondly, I think there is a chance that such a platform (if non-proprietary) could become standard. Look at TCP/IP for example. It's the defacto standard. If you don't support TCP/IP, you are cut out of the conversation. Things like this tend to reach a critical mass. It's the bandwagon effect.
Now it could absolutely be the case that Mono/CLI will become a universal platform. And maybe a pinvoke-style approach is the best way to deal with platform differences. It just seems to me that what you can do on one OS isn't really different than any other OS. It's all style. Perhaps what I am proposing here isn't feasible. But something like this would make the 'next big lanugauge' pretty inconsequential in comparison.