Vitanuova for 2002 July 31 (entry 2)

< Amusing
DMCA >

I was complaining the other day about software portability (for one thing) and a lack of development environment and operating system standards (for another).

Why should this be? Isn't libc specified by POSIX, documented by Kernighan and Ritchie and ANSI and in the Stevens book and so on? Aren't the APIs and ABIs well-defined?

Well, it turns out that

This is just the beginning. But this situation seems ridiculous, because compiling is a highly deterministic function. In a clearly-defined language and environment, you would expect to be able to call, in effect, a "compile" function on some source code, and get back some object code. You need to tell the compile function what the source language and target machine architecture will be, but in principle it can be implemented on any platform.

But, of course, that's not what ever happens (except possibly in closely-specified languages which compile to bytecodes, like Java or Python). In some sense the Babel of incompatible and non-portable languages is a result of a lack of standards, and a lack of adherence to existing standards. In another sense it has to do with the insularity of adherents of the respective platforms. Users of a platform tend to focus on being able to build native code well according to the conventions of each platform. Cross-compilers are traditionally an afterthought. And there's little hope that Mac developers would put a high priority on being able to cross-compile Linux sources for Linux, or Windows sources for Windows.

There are so many other factors which hinder portability of source code itself. Platforms are likely to provide useful (but platform-specific) libraries, which then tend to get used by programmers. This is especially true in the GUI world, where there are so many platform-specific graphics and UI libraries with completely divergent object models and APIs and even basic concepts.

Portability is even lacking where you would expect to find it, within the Unix world and what gets called "ANSI C". Just take a look at a ten-year-old Unix application. I know I've been looking at a lot of them recently.

What would it take to develop languages, platform models, and development environments where compiling really did mean calculating a particular well-defined function?


Links from other weblogs:

Sat Nov 15 10:09:08: Highest poker australia. from Highest poker australia.

Highest poker australia. Australia poker.

Sat Nov 15 16:22:41: Free gay chat with video. from Calico film music design free gay video chat guys.

Free gay chat with video.

Sun Nov 16 01:06:22: Free play video poker. from Free poker games.

Free video strip poker. Play free strip poker. Free poker games. Free poker. Free strip poker games. Free deuces wild video poker for mac 0s. Free strip poker.

Sun Nov 16 09:56:30: Order phentermine phentermine online. from Order phentermine online.

Order phentermine uk. Adipexdrug addiction order phentermine online. Order phentermine. Order phentermine c o d. Order ... phentermine uk url. Order cheap phentermine online. Order phentermine phentermine online.

Mon Nov 17 12:35:36: Lesbi. from Lesbi.

Lesbi br. Lesbi.

Tue Nov 18 04:49:57: Best online casino . from Best online casino .

Best online casino .

Tue Nov 18 22:28:37: Play free poker for fun. from Free pc strip poker.

Free video strip poker. Free x rated strip poker. Play poker online free. Free strip poker. Free online poker games. Free poker software.

Wed Nov 19 12:54:28: Live gay live gay sex free gay live video sex chat. from Free gay chat with video.

Free gay chat with video.

Thu Nov 20 03:14:20: Index of parent directory lesbi. from Teen lesbi.

Lesbi cuties movies. Lesbi br. Lesbi movies. Lesbi.


[Main]
Support Bloggers' Rights!
Support Bloggers' Rights!


Contact: Seth David Schoen