Log in

No account? Create an account

Previous Entry | Next Entry

Moving On

Reg Braithwaite was writing not long ago about how we can be the biggest obstacle to our own growth. It made me realize how I've dropped things that I was once a staunch supporter of.

I was once a Borland Pascal programmer, and I believed that it was better than C or even C++. I believed that the flexibility of runtime typing would win over the static typing of C++ templates, as computers got faster. I belived that RPC were a great idea, and even worked on an RPC system that would work over dial-up connections (because that's what I had back then). I put in a lot of time working on object persistence and databases. I thought that exceptions were fundamentally bad. I believed that threads were bad, and that event-driven was the way to go.

Now, I believe in message-passing and in letting the OS kernel manage concurrency (but I don't necessarily believe in threads, it's just what I happen to need in order to get efficient message-passing inside a concurrent application that lets the kernel do its work). I wonder when that will become wrong? And what is going to become right?

I like to think I had some vision, occasionally. For example, I once worked on an email processing system for FidoNet (thanks to Tom Jennings, a beacon of awesome!), and my friends called me a nutjob when I told them that I was designing the thing so that it was possible to send messages larger than two gigabytes. What I believed was that we'd get fantastic bandwidth someday where messages this large were feasible (we did! but that was an easy call), and that you'd be able to subscribe to television shows for some small sum, where they would send it to you by email and you'd watch it to your convenience. That's never gonna happen, they said! Ha! HTTP (which I think is used in the iTunes Store) uses the very same chunked encoding that I put in my design back then...

Note that in some cases, I was partly right, but the world changed, and what was right became wrong. For example, the 32-bit variant of Borland Pascal, Delphi, is actually a pretty nice language (ask apenwarr!), and while it isn't going to beat C++ in system programming, like I believed it could, it's giving it a really hard time in Windows application programming, and that level of success despite being an almost entirely proprietary platform is quite amazing. Even Microsoft is buckling under the reality that openness is good for language platforms, trying to have as many people from the outside contributing to .NET (another thing to note: C# was mainly designed by some of the Delphi designers). Imagine what could happen if Borland came to its sense and spat out a Delphi GCC front-end (and use it in their products, making it "the real one", not some afterthought)?

I doubt that's going to happen, though. For application development, I think it's more likely that "scripting languages" like Ruby, Python and JavaScript are going to reach up and take this away from insanely annoying compiled languages like C++ (and maybe even Java).

But hey, what do I know? I once thought RPC was going to be the future!


May. 28th, 2008 09:48 pm (UTC)
For those time critical applications you talk about, usually the C++ compiler will compile the C code to just about the same as the C compiler would have done. What people often forget is that it's not because you're in C++ that you suddenly have to start using classes, templates and exceptions (although if I don't have to implement another bloody linked list in my life, that'd be fine by me!). C++ is very much "pay for what you use", so if you don't use a feature, you don't pay for it.

If your platform doesn't have a C++ compiler, well, that's pretty sad, I suppose. Hmm, their source code is available, due to GCC being GPL... I wonder how hard it would be to wire their code generator to a more capable GCC (consider that GCC translates code to an intermediate language, and that adding targets is separate from adding front-ends)...

Stackless Python is pretty damned sweet, that's for sure. :-)
May. 28th, 2008 10:27 pm (UTC)
The thing with OpenTV is that while we develop for their middleware we're actually competitors so there's no way we can do anything that risks. We just got out of a $1 billion damage claim from someone else and while I wouldn't want the suits in Legal to get bored I can think of better things to occupy them with than another law suit... okay, actually I can't. Guess they'll just have to get bored ;)

I've never looked more than a little at Stackless but wouldn't mind finding an excuse for spending some time looking at it.
May. 28th, 2008 10:52 pm (UTC)
Well, really, if the compiler's under the GPL... But hey, you probably have better things to do with your time than splice in a backend for their wacky platform into a more sensible compiler. ;-)