Return Styles: Pseud0ch, Terminal, Valhalla, NES, Geocities, Blue Moon.

Pages: 1-

Why every aspiring programmer...

Name: Anonymous 2006-08-08 18:30

... should know C. At least for the next few years!

You just have to know C. Why? Because for all practical purposes, every computer in the world you'll ever use is a von Neumann machine, and C is a lightweight, expressive syntax for the von Neumann machine's capabilities.

The von Neumann architecture is the standard computer architecture you use every day: a CPU, RAM, a disk, a bus. Multi-CPU doesn't really change it that much. The von Neumann machine is a convenient, cost-effective, 1950s realization of a Turing Machine, which is a famous abstract model for performing computations.

There are other kinds of machines too. For instance, there are Lisp Machines, which are convenient 1950s realizations of Lisp, a programming language notation based on the lambda calculus, which is another model for performing computations. Unlike Turing machines, the lambda calculus can be read and written by humans. But the two models are equivalent in power. They both model precisely what computers are capable of.

Lisp Machines aren't very common though, except at garage sales. von Neumann machines won the popularity race. There are various other kinds of computers, such as convenient realizations of neural networks or cellular automata, but they're nowhere as popular either, at least not yet.

So you have to know C.

You also have to know C because it's the language that Unix is written in, and happens also to be the language that Windows and virtually all other operating systems are written in, because they're OSes for von Neumann machines, so what else would you use? Anything significantly different from C is going to be too far removed from the actual capabilities of the hardware to perform well enough, at least for an OS — at least in the last century, which is when they were all written.

You should also know Lisp. You don't have to use it for real work, although it comes in quite handy for lots of GNU applications. In particular, you should learn Scheme, which is a small, pure dialect of Lisp. The GNU version is called Guile.

They teach Scheme at MIT and Berkeley to new students for a semester or two, and the students have absolutely no clue as to why they're learning this weird language. It's a lousy first language, to be honest, and probably a lousy second one too. You should learn it, eventually, and not as your first or second language.

It's hard, though. It's a big jump. It's not sufficient to learn how to write C-like programs in Lisp. That's pointless. C and Lisp stand at opposite ends of the spectrum; they're each great at what the other one sucks at.

If C is the closest language to modeling how computers work, Lisp is the closest to modeling how computation works. You don't need to know a lot of Lisp, really. Stick with Scheme, since it's the simplest and cleanest. Other Lisps have grown into big, complex programming environments, just like C++ and Java have, with libraries and tools and stuff. That, you don't need to know. But you should be able to write programs in Scheme. If you can make your way through all the exercises in The Little Schemer and The Seasoned Schemer, you'll know enough, I think.
But you choose a language for day-to-day programming based on its libraries, documentation, tools support, OS integration, resources, and a host of other things that have very little to do with how computers work, and a whole lot to do with how people work.

People still write stuff in straight C. Lots of stuff. You should know it!

Name: Anonymous 2006-08-08 18:57

OP here:

Link to this full article... HERE!

http://www.cabochon.com/~stevey/blog-rants/tour-de-babel.html

Name: Anonymous 2006-08-08 19:16

C was close to the hardware back when it was a set of macros for the PDP11 assembler. Hardware has changed since then and optimizing C to fast machine code is now a complex business. The main reason why C is still faster than most languages is because its compilers have a head start.

Name: Anonymous 2006-08-08 23:31

Which explains why it usually does better than C++ or Java.

Oh wait...

Name: Anonymous 2006-08-09 1:47

>>4
 "Which explains why it usually does better than C++ or Java.

 End."



Fixed.

Name: Anonymous 2006-08-09 2:32

>>5
Are you saying that C++ compilers and Java have received less work on them than C? Because you're on drugs if you are.

Name: Anonymous 2006-08-09 5:09

Why is Python not being discussed here? It is clearly superior

Name: Anonymous 2006-08-09 8:18 (sage)

>>7
BECAUSE PYTHON IS THE ONE TRUE LANGUAGE AMIRITE?

Name: Anonymous 2006-08-09 8:24

>>8

FINALLY, SOMEONE GETS IT!

Name: Anonymous 2006-08-09 9:17

>>7
Class Python extends Java

AMIRITE?

Name: Anonymous 2006-08-10 12:56

DEVELOPERS DEVELOPERS DEVELOPERS DEVELOPERS

Name: Anonymous 2006-08-10 17:22

F R E E B A S I C

O R

G T F O

Name: Anonymous 2006-08-11 4:51

My friend from berkley took a scheme class. First language.

I dont know what he really thought of it, we had to get an VLF reciever working quickly before he left for boston the next day... havent heard back from him T-T I dont think he loves me.

Name: Anonymous 2006-08-14 4:11

This thread __delivers__

Name: Anonymous 2006-08-17 1:10

Plus, if you really want to get anywhere, C is easily portable from Windows to Linux or the other way around. gg.

Name: Anonymous 2009-01-14 13:35

Name: Anonymous 2010-06-27 12:53

ur gay

Name: Anonymous 2010-06-28 10:55

beware the army of 12 year old autistics

Name: Anonymous 2010-12-09 16:15

Name: Sgt.Kabu쟯ᢹkiman丗 2012-05-28 19:33

Bringing /prog/ back to its people
All work and no play makes Jack a dull boy
All work and no play makes Jack a dull boy
All work and no play makes Jack a dull boy
All work and no play makes Jack a dull boy
All work and no play makes Jack a dull boy
All work and no play makes Jack a dull boy
All work and no play makes Jack a dull boy
All work and no play makes Jack a dull boy
All work and no play makes Jack a dull boy
All work and no play makes Jack a dull boy
All work and no play makes Jack a dull boy
All work and no play makes Jack a dull boy
All work and no play makes Jack a dull boy
All work and no play makes Jack a dull boy
All work and no play makes Jack a dull boy
All work and no play makes Jack a dull boy
All work and no play makes Jack a dull boy
All work and no play makes Jack a dull boy
All work and no play makes Jack a dull boy
All work and no play makes Jack a dull boy
All work and no play makes Jack a dull boy
All work and no play makes Jack a dull boy
All work and no play makes Jack a dull boy

Don't change these.
Name: Email:
Entire Thread Thread List