Advertisement

Low-level programming is good for the programmer's soul

Started by March 06, 2014 12:50 PM
25 comments, last by Anri 10 years, 10 months ago

The people who are senior-level in the games industry right now today usually have some experience at the assembly level. Even if they are not that great at reading it, they can open a disassembly window and understand what they are seeing. Or if they are working on topics like graphics, they can instead interpret what amounts to the shader's assembly language and the graphics instruction stream.

Compiler writers, too, need to be comfortable at the assembly level and understand the microarchitecture within the CPU.

For these professionals, C is quite high level.

I'm firmly in the camp that a competent senior engineer is highly skilled with C, assembly, processor architecture, etc. It has nothing to do with being fun or being good for the soul. It's about understanding your underlying systems and how to both debug and assess performance on those systems, as well as making the right architectural decisions from the beginning. I've been at this for fourteen years now, and I've talked to people who have been doing it much longer. The high level systems come and go. They're useful, of course, but very few are long survivors. There's something to be said for being comfortable with a language that has been with us since the 70s and is still relevant today (with updates, of course). But C alone isn't enough either.

SlimDX | Ventspace Blog | Twitter | Diverse teams make better games. I am currently hiring capable C++ engine developers in Baltimore, MD.
Advertisement

You have to put that quotes into perspective. It probably started when c and asm where still widely used. Id say it's never a bad thing to learn asm today, you really get to know how stuff works under the hood. But is it usefull today, not really, unless your trying to hack some executable or build the next OS...

So , I may say i still dont see any conclusions here. This low0level vs high-level things is always as vague as it always been ;> seem to know more personally by myself i would need to get more experience in highlevel


Id say it's never a bad thing to learn asm today, you really get to know how stuff works under the hood. But is it usefull today, not really, unless your trying to hack some executable or build the next OS...
Writing it isn't necessarily useful. Understanding it is critically important.
SlimDX | Ventspace Blog | Twitter | Diverse teams make better games. I am currently hiring capable C++ engine developers in Baltimore, MD.

On early architectures, C was an awful design. It's a stack based language, and on chips like the 8086 stack operations were incredibly slow.

But machines have changed a lot since then, for example nobody has to write an assembler routine for multiply and divide anymore. smile.png

I enjoy working very low level, I mean with a hex editor and a disassembler, but I don't do it very often.

I hate working in a visual editor, Unity and it's ilk I find abhorrent.

Does this mean I have a soul?

Damned if I know.

Advertisement

On early architectures, C was an awful design. It's a stack based language, and on chips like the 8086 stack operations were incredibly slow.

But machines have changed a lot since then, for example nobody has to write an assembler routine for multiply and divide anymore. smile.png

I enjoy working very low level, I mean with a hex editor and a disassembler, but I don't do it very often.

I hate working in a visual editor, Unity and it's ilk I find abhorrent.

Does this mean I have a soul?

Damned if I know.

I am c fan (big c fan) but one low level thing i miss from assembly is working on binary, 'true' program is real binary program ;/ and i miss

the ability of molding the binary (in its weight) - assembly is one language i know who 'support' it though probably there is maybe

a possibility to build some hiperassembly who will also 'support'

this byte binary programming (even maybe working on a live binary

form not on the ascii description) ;/


question: do the succesive people in todays game dev more low-level likers siders (most of them ? all?) or most of them are sceptic to low level?

I think most game dev people today wouldn't know how to saturate a transisitor into switching state to save their lives, let alone high-level concepts like the difference between an SR, a JK and a dual-D flipflop. And how many of them could use indium to dope a P-substrate nowadays?

Stephen M. Webb
Professional Free Software Developer

Surprise! Software is a field like any other!

You learnt to use your tools and materials to the level you need.

Building a birdhouse? Meh, hammer some bits of wood together. Load bearing capacity? who cares, it's a birdhouse!

Building a bridge? You damn well better have an understanding of engineering, your material properties, etc. Doesn't mean you need to reinvent the materials, but you should understand their properties.

if you think programming is like sex, you probably haven't done much of either.-------------- - capn_midnight

I would love to be able to mix it up.

Sometimes I want to be able to control the memory management ... most of the time having to deal with trivial problems on a low level is just frustrating.

I guess I would go with "as high level as possible but not any higher" as the best way. My soul prefers the convenience of IoC with GWT as long as it works right away - and being able to keep it generic.

Going back to C++ was just soul-crushing the last time I tried it, even though I wanted it to work ... badly.

Given enough eyeballs, all mysteries are shallow.

MeAndVR

This topic is closed to new replies.

Advertisement