"Nobody programs in machine language" (was: Modern

From: Ken Seefried <ken_at_seefried.com>
Date: Mon Jun 21 23:02:40 2004

I'm a big proponent of teaching my students assembly, though not machine
language, but the following was simply silly...

From: Fred Cisin <cisin_at_xenosoft.com>

>Regardless of whether you actually USE it in the project,
>if you do not have an understanding of machine language,
>then you can not write a good "driver", or anything else
>that directly addresses hardware.

True. But what percentage of programmers write drivers (clue: it's small).

>Regardless of whether you actually USE it in the project,
>if you do not have an understanding of machine language,
>then you can not write a good operating system, or any
>other system software.

True. But what percentage of programmers write operating systems (clue:
it's small).

>Regardless of whether you actually USE it in the project,
>if you do not have an understanding of machine language,
>then you can not write a good game, or anything else that
>needs to be efficient.

Completely not true.

Modern games (as in most anything past the 8-bit era) are written
predominately if not exclusively in higher level languages (C, C++ or C#)
and rely much more on content (story, textures, skins, etc.) than anything
that has to be written in machine language for success. And the engines
driving these games haven't been written in machine (or assembly) in a long,
long time. Modern games use DirectX or OpenGL and are written in high level
languages.

Even Carmack doesn't program in machine language in modern history, and he's
the demi-god of game optimization.

You can download the source to many older games if you don't agree.

I don't even need to go into things like Cg and how far they absract writing
good games from machine language.

>Regardless of whether you actually USE it in the project,
>if you do not have an understanding of machine language,
>then you can not do a good job of optimizing ANYTHING.

Total rubbish.

There are lot's of kinds of "optimizing", not all of which mean "doing it
the way that Fred thinks it should be done" or "doing it in the absolute
fewest instructions". If you are going to use words like "ANYTHING" (esp.
with the caps), you need to include optimizing for a vast array of criteria.

Is machine language the only way to optimize for user interface? Probably
not, except for extremely narrow definitions of optimized.

Is machine language the way to optimize for dynamic logic (like different
tax laws from one year to the next)? Probably not.

Is machine language the way to optimize for realistic, modern deadline or
budget? Almost certainly not.

>Regardless of whether you actually USE it in the project,
>if you do not have an understanding of machine language,
>then you can not do a GOOD job of programming anything.

Total rubbish.

I can't build an engine from scratch, therefore I can't excel at driving a
car?

I can't build a spin cast reel, therefore I can't fish.

The folks who program Quicken have to know machine language to do a GOOD job
at writing tax software? Rubbish.

The folks at Adobe have to know machine language to do a GOOD job of
rendering Acrobat pages? Rubbish.

The Gnome, KDE, QT, etc., folks haven't done a GOOD job, for all values of
GOOD, because they use high level languages. Rubbish.

You can do anything in machine language. Can you do nothing well without
it? Rubbish...Obviously you can.
Received on Mon Jun 21 2004 - 23:02:40 BST

This archive was generated by hypermail 2.3.0 : Fri Oct 10 2014 - 23:36:59 BST