Forgot your password?
typodupeerror

Comment Point-in-case (Score 1) 1267

Have a look at Clean (http://clean.cs.ru.nl/) for a use of pointers (internally) that makes for efficient execution. An interesting read concerning the subject is found here:

http://clean.cs.ru.nl/contents/Addison__Wesley_book/addison__wesley_book.html

Actual benchmarks to show the efficiency can be examined here (note the comparison is with C-versions of the same algorithms compiled on gcc):

http://shootout.alioth.debian.org/gp4/benchmark.php?test=all&lang=clean&lang2=gcc

Here's Java 6 (server version) for comparison:

http://shootout.alioth.debian.org/gp4/benchmark.php?test=all&lang=java&lang2=gcc

You'll notice that differences are mainly in the memory footprint, already known to be attributable to the large number of libraries (classes) loaded into the vm at start-up, something the Clean runtime isn't quite as encumbered with:

(Java) http://java.sun.com/docs/books/performance/1st_edition/html/JPRAMFootprint.fm.html

So, the difference in speed is often-times negligible, and it's been shown that the memory footprint can be reduced to a size where you can run an embedded jvm in a mobile phone (really!), and rumour has it that someone even wrote an operating system in Java, but the memory footprint still seems the biggest culprit:

http://www.jnode.org/node/573

In other words, it's not Java - the language, but Java - the massive OO-framework, and JVM - the specific implementation, that's the problem. Even C++ or C with an OO-framework can be made into a large memory footprint, if you can believe it:

http://www.microsoft.com/windows/products/windowsvista/editions/systemrequirements.mspx

Then, of course, memory is cheap:

http://www.simmtester.com/page/memory/memprice.asp

But, the over-use of which, sometimes stays with us as itching bugs for too long:

http://blog.wired.com/monkeybites/2007/11/firefox-3-add-o.html

If memory serves me right (http://www.google.com), there's something to be said of the virtues of garbage-collection applied to systems programming:

http://www.digitalmars.com/d/

and the actual (memory and) time efficiency of such an attempt:

http://shootout.alioth.debian.org/gp4/d.php

But I could be wrong. After all, no-one in their right mind would ever attempt to write an operating system in something like, say, Lisp:

http://cbbrowne.com/info/lisposes.html

- let alone design an actual computer around it:

http://en.wikipedia.org/wiki/Lisp_machine

It simply wouldn't run. No, the skills of an engineer depend solely on the language he/she speaks, not on the abstract concepts he/she masters, applied to whatever tool he/she chooses to use/create.

That is why I propose we all forget about abstraction all-together, and revert to coding like this:

010101100001111010110101101101111101111...

But wait, that is itself an abstraction - Turing must have suffered from premature abstraculation. No, let's hear it for using copperwires instead of silicon, so we can attach some large, hand-weilded levers to control the gates in our processors. Will solve unemployment issues and give a new meaning to "inter-personal communication" and "trains of thought" in the process (pun unattended).

[Disclaimer: I do think keeping the study of algorithms, machine-code, optimization and the like is a more than necessary part of a CS degree, and that the latest fad since the 80s is almost never what it's made out to be (most great advances were made by people in the 50s-70s, some of them on heavy drugs). It was never the languages themselves, though, but the reasoning behind them (the method/model of abstraction) that constituted the advance. So just as medical students aren't just taught symptoms (although they do deal with them alot later on), CS students shouldn't just be taught languages, be it C, C++, Java, Clean, or any other symptom of our times.]

Slashdot Top Deals

A LISP programmer knows the value of everything, but the cost of nothing. -- Alan Perlis

Working...