Mailing List Archive


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [tlug] C vs. other languages



>>>>> "Josh" == Josh Glover <tlug@example.com> writes:

    Josh> Choosing C for every project without even thinking of
    Josh> alternatives is just as foolish as choosing Java without
    Josh> thinking (a lot of companies did that during the heady days
    Josh> of the dotcom bubble, and look how fast they went out of
    Josh> business).

But nobody here is _really_ advocating either strawman.  Everybody is
saying "if I were running project X, Y would be the language to beat."
And they have good reasons for that choice, and they all can spell
YMMV.

I really don't think pointing to any single behavior of bubble babies,
even if it was very common, says anything about the strength of the
choice of that behavior.  I don't care if the typical bubble baby was
using the best language in the world and had its inventors working for
them, they were going down anyway because they were terrible
businesses.  (ObRef my .sig -- business first, then OSS.)

    Josh> I disagree rather strongly with you about MS not being able
    Josh> to program worth shit. It is frankly very hard to write an
    Josh> OS that runs on machines cobbled together from various
    Josh> shitty pieces of hardware that were made in some Taiwanese
    Josh> basement by a ten year old.

Yeah, that's what Linus says, and Theo, and Bill Joy, and ....

C'mon, it is not that hard to write an OS, especially when many of the
hard parts (the device drivers) are written for you by others.  (Linus
used _that_ strategy, too. :-)  Obviously I couldn't do it all by my
widdle self, it's non-trivial, but when you got as many billions to
spend as MS has over the years, really, now.  Remember, AFAIK MS
doesn't have a realtime offering, and last time I checked it was still
possible to get access to every single byte of memory in Windows 3,
9x, and NT 3.5 simply by allocating a data segment of 4GB - 1 in a DOS
box via DPMI, so it took them at least a decade to achieve true
protected memory.  Linux had all of that in 1996 (the realtime patch
was pretty much a joke, of course), and Unix had it in production in
1975.

    Josh> You can't just go "$str =~ /^foo/, now can you?

Yeah, but I rarely want to, except in applications where sed would do.
In a robust application, you want to test status in various kinds of
ways.  What I miss in Python is not the match operator, but rather the
assignment operator.  "while (/regexp/)" is the only Perl idiom I miss
in Python. In both Perl and Emacs Lisp I miss the absence of match
objects a lot more.

    [Godwin]
    >> However, I think the main reason [Java] hasn't taken off in OSS
    >> circles is because it means learning a new set of skills in
    >> order to produce something that isn't as efficient as that
    >> which current skills can produce. Whether the emphasis is more
    >> on the "learning a new set of skills" bit (laziness, fear of
    >> the unknown) or on the "not as efficient" bit, I don't know.

A lot of OSS people dislike Sun.  Almost all GNU Emacs people do, and
most GPL advocates do, because of its employment of Jim Gosling and
because of its not-quite-free licenses on almost everything.  Not to
mention that back when Java first started to get big play in OSS
around 1997, the Blackdown ports of the Java SDK lagged Sun by a whole
version most of the time, and the VM regularly crashed on Linux.

    Josh> Java is really just C with OO done reasonably correctly and
    Josh> a *huge* standard library.

No, it's not "just" C.  There are lots of things ("while (*p++) ..."
comes immediately to mind) that Java makes illegal, and you really do
need to know the standard library to program effectively in Java.

    [Godwin]
    >> Furthermore, the main "thing" with OSS is the fact that you're
    >> distributing source code 99% of the time.  ...  Why distrbute
    >> something which requires both a Java compiler *and* a JRE[?]

    Josh> That is very true.

Godwin, you have my thanks for that point, too.  I don't think I've
seen it stated that explicitly before in the context of Java (it's a
standard complaint about Scheme object environments from Common
Lispers, though).

    >> What I'll often do is use a higher-level language to work on
    >> the logic of a program, and then translate the intermediary
    >> product into something more efficient - IF THERE IS SOMETHING
    >> TO BE GAINED. I'm not going to translate a 10-line bash script
    >> run once a day into C for shits & giggles.

    Josh> This is exactly what you should be doing, IMO, and this is
    Josh> the crux of my argument.

<aol repeat_factor="2" />.  I think Godwin gets the dividing point
wrong, though.  If I were going to write a multilingual MUA for a PII
200MHz box, I would write it for XEmacs 21.1 and XFree86 3.3, and
maybe even Linux 2.2, which (still!) run satisfactorily fast on a
classic Pentium 120MHz box with 80MB of RAM.  I wouldn't write it in C
to run in an XTerm on XFree86 4.x, nor the console.

Or I might write in a more efficient Scheme with X bindings
(definitely not librep == sawfish's implementation language, though),
or in my favorite p-language (which is female (== "not Ruby") and
neither "Perl" nor "Pike", but I don't care if yours is).


-- 
Institute of Policy and Planning Sciences     http://turnbull.sk.tsukuba.ac.jp
University of Tsukuba                    Tennodai 1-1-1 Tsukuba 305-8573 JAPAN
               Ask not how you can "do" free software business;
              ask what your business can "do for" free software.


Home | Main Index | Thread Index

Home Page Mailing List Linux and Japan TLUG Members Links