Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Good point about Java, even though talking to KVMs over the network and displaying a GUI isn't really hardware stuff.

But I think you're forgetting how much code is written to C89. How much of bash, for instance, is ancient, with updates that avoid newer toolchain features so that it can be as portable as possible?

Yes, people don't often write stuff with portability as a goal at the beginning, but once something is relatively portable, it stays that way. Lots of code that wasn't poorly written made it from all-the-world's-a-VAX to i386, from i386 to amd64, and now ARM and aarch64, with a minimum of extra effort. There just had to be a little effort to NOT program like a jerk, which, as funny as it is, is still an issue now.

I'm running Pine as my daily email program, which was written in 1989 and hasn't had any real updates since 2005. New architecture? Compile it. Lots of modern software started out as C software from the 1980s.



> Good point about Java, even though talking to KVMs over the network and displaying a GUI isn't really hardware stuff.

If it's over the network (using IP sockets), Java can do it just fine and what I wrote about downwards compatibility applies. Same if it's a Swing GUI, which is part of the standard API. Admittedly, Swing is the area where I once witnessed a real bug caused by version incompatibility; IIRC code made some assumptions about undocumented behaviour in event handling, which caused an endless loop on a newer JVM.

As for portable C, I have very limited experience really working with C, but remember trying to get some tarballs to compile and having big problems with fragile autoconf scripts.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: