On 7/19/06, Anselm R. Garbe <arg_AT_10kloc.org> wrote:
> Why is there no hope for writing a compiler in less than ten
> thousand lines? Maybe because modern compilers need to provide so
> much optimization features, that the complex software they
> have to compile don't performs poorly?
Actually, the reason modern compilers provide so much optimization is
because the target language no longer matches the instruction set of
the underlying machine. The constructs in C correspond fairly closely
to the machine instructions of a PDP-11, but not so much to to x86,
arm, power, etc. A lot of the complexity lies in mapping new machine
instructions and architecture to a 30 year old close-to-metal
language.
> See the Web Service desease for example. Do I need an XML parser in
> the future to call atoi()?
You'll get no argument from me here, the web services mess is a prime
example of group design and abstraction astronautics.
> I doubt that I can do fewer data abstraction with C than with
> any other language. What can't I do with C, but with another
> language?
I won't argue possible, as most modern languages are Turing-complete,
but I will argue convenience. C lacks Erlang's concurrency primitives,
Ruby's blocks, Lisp's macros, Python's stdlib, Fortran's array
support, Perl's text-fu, etc etc etc. Don't get me wrong, C is a very
fine language for implementing operating systems and other such
plumbing due to it's speed and bit-twiddling abilities, but it's not
the last word in language design.
> Do you really believe you can understand
> software systems consisting of more than 10kloc?
I'll confess that I don't know everything that's going on in the stack
underneath my 200 lines of javascript or 4k lines of python, but as
long as everything works the way it should, I don't have to. I don't
code to make code, I code to make something that works.
I do believe that you're a better programmer than I am (more
experience, more sloc, more consistent), but I've never understood
your obsession with optimization. So much programming effort wasted on
getting stuff to run imperceptably faster. I'm all for having
beautifully structured, succinct, lucid code but computing resources
exist to be consumed so why not consume them?
Received on Wed Jul 19 2006 - 19:38:22 UTC
This archive was generated by hypermail 2.2.0 : Sun Jul 13 2008 - 16:11:12 UTC