John H. Robinson, IV wrote:
Andrew Lentvorski wrote:
Today I got an error trying to compile Amarok. No big deal, right.
Just fix the libraries and move on.
You listed C in the subject, and never once talked about it. What is
wrong with C?
External linker with statically compiled signatures.
The rant flows from that. Sorry, I didn't make that clear.
A library is forever tied to the specific environment with which it was
compiled. Any breakage in that propagates.
And there are *tons* of things which can cause that breakage. Operating
system difference; processor difference; compiler difference; linker
difference; library path difference--the list is endless.
I can copy a 5 year old Java library from one machine to another and it
has the *exact same characteristics*. The size of int doesn't change.
The existence of some function like ftell/errno/etc. didn't change. The
signatures didn't change.
It is acceptable that a processor difference breaks things. This is a
compiled language, after all (yes, interpreted C exists. However, until
I see a single Linux application using it, your argument is moot.).
However, the fact that running one version of difference on the Linux
kernel or a support library often irretrievably screws things up is not.
I agree with Autoconf/Autotools. Very baroque. I don't care much for it.
C++ I do not care for, because it seems to break all the time.
And yet nobody is willing to abandon it.
I notice that the KDE folks actually have a monster Perl script to
compile everything when checked directly out of SVN. Gee. Doesn't this
suggest that maybe autoconf should be dumped altogether?
C itself is mostly fine. The prepocessor may be a a bit whacked, but it
is relatively mindless.
No standard solution for basic things. Before you argue otherwise,
write a sockets program that runs on Linux, BSD, *and* Windows.
The go write a sockets program on those same platforms in Java, Perl,
Python, Tcl/Tk. Talk about less work.
I have heard of cons and scons, but never looked into them. I have no
idea how they work. Do you know of any projects that use them, as an
example of how they work?
http://www.scons.org/refer.php
The link that caught my eye was that National Instruments uses it. When
a business actually starts to use something for revenue, that's a pretty
big endorsement.
-a
--
[email protected]
http://www.kernel-panic.org/cgi-bin/mailman/listinfo/kplug-lpsg