The Demise of the Low-Level Programmer

Whether you're a newbie or an experienced programmer, any questions, help, or just talk of any language will be welcomed here.

Moderator: Coders of Rage

User avatar
Falco Girgis
Elysian Shadows Team
Elysian Shadows Team
Posts: 10294
Joined: Thu May 20, 2004 2:04 pm
Current Project: Elysian Shadows
Favorite Gaming Platforms: Dreamcast, SNES, NES
Programming Language of Choice: C/++
Location: Studio Vorbis, AL
Contact:

The Demise of the Low-Level Programmer

Post by Falco Girgis »

User avatar
Van-B
Chaos Rift Regular
Chaos Rift Regular
Posts: 125
Joined: Tue Aug 10, 2010 7:17 am
Current Project: iPhone puzzle game
Favorite Gaming Platforms: All - Except Amiga
Programming Language of Choice: DBPro, ObjC++
Location: Scotland

Re: The Demise of the Low-Level Programmer

Post by Van-B »

That's something that has been happening for years, since the demise of the 16-bits. I mean, on the Amiga and Atari ST, you couldn't do anything efficiently without Assembly. As soon as C became fast enough for games, Assembly started it's very short death. Nowadays most programmers barely touch assembly. I can see programming becoming even higher level though, more game centric languages, as platforms become faster, code can be higher level and developed faster. My current project PC version only uses about 7% of the processor, that's written in a game centric language - there's no point in even using C++ for it. It's not like hobbyist and indi developers can compete with teams of developers, so I can see things like AGK taking off - program in BASIC, then deploy to several platforms.

Programmers are not the indispensable resource that they used to be, obfuscation is a luxury we cannot afford these days IMO.
Health, ammo.... and bacon and eggs.
User avatar
MrDeathNote
ES Beta Backer
ES Beta Backer
Posts: 594
Joined: Sun Oct 11, 2009 9:57 am
Current Project: cocos2d-x project
Favorite Gaming Platforms: SNES, Sega Megadrive, XBox 360
Programming Language of Choice: C/++
Location: Belfast, Ireland
Contact:

Re: The Demise of the Low-Level Programmer

Post by MrDeathNote »

Van-B wrote: Nowadays most programmers barely touch assembly.
I think this is true and it's a god damn shame. I really enjoy assembly programming. I may not use it much in large projects, but at least once every couple of weeks I sit down and write some assembly just to keep myself from getting rusty. It might only be some type of file filter or some other simple program, but it's the practice that's important and it's damn enjoyable too! Ppl, break out your assemblers and get to work!!
http://www.youtube.com/user/MrDeathNote1988

Image
Image

"C makes it easy to shoot yourself in the foot. C++ makes it
harder, but when you do, it blows away your whole leg." - Bjarne Stroustrup
User avatar
Kyosaur
Chaos Rift Cool Newbie
Chaos Rift Cool Newbie
Posts: 78
Joined: Tue Jul 13, 2010 2:00 am
Favorite Gaming Platforms: PS2,PS3,NDS
Programming Language of Choice: C++

Re: The Demise of the Low-Level Programmer

Post by Kyosaur »

MrDeathNote wrote:
Van-B wrote: Nowadays most programmers barely touch assembly.
I think this is true and it's a god damn shame. I really enjoy assembly programming. I may not use it much in large projects, but at least once every couple of weeks I sit down and write some assembly just to keep myself from getting rusty. It might only be some type of file filter or some other simple program, but it's the practice that's important and it's damn enjoyable too! Ppl, break out your assemblers and get to work!!
Its crazy hearing people on this forum saying they like assembly! Most of my coding friends despise it (well except one :P). Im currently struggling to learn assembly myself (its a nightmare to find good places to learn :()... even though i can pretty much only do simple arithmetic operations, i enjoy it.

Im having trouble grasping WHEN i should use inline assembly though, i honestly cant figure out when the appropriate time is. Since im still learning i find myself wanting to use it in everything xD.
Image
User avatar
xx6heartless6xx
Chaos Rift Cool Newbie
Chaos Rift Cool Newbie
Posts: 80
Joined: Wed Feb 02, 2011 9:42 pm

Re: The Demise of the Low-Level Programmer

Post by xx6heartless6xx »

I wish I knew assembly :(
User avatar
Kyosaur
Chaos Rift Cool Newbie
Chaos Rift Cool Newbie
Posts: 78
Joined: Tue Jul 13, 2010 2:00 am
Favorite Gaming Platforms: PS2,PS3,NDS
Programming Language of Choice: C++

Re: The Demise of the Low-Level Programmer

Post by Kyosaur »

xx6heartless6xx wrote:I wish I knew assembly :(
Wishing wont do you any good :P, go learn. Its kind of a pain to learn to be honest, but its fun and gives you a good idea of whats going on at a lower level (sadly im not at this point yet).
Image
User avatar
MrDeathNote
ES Beta Backer
ES Beta Backer
Posts: 594
Joined: Sun Oct 11, 2009 9:57 am
Current Project: cocos2d-x project
Favorite Gaming Platforms: SNES, Sega Megadrive, XBox 360
Programming Language of Choice: C/++
Location: Belfast, Ireland
Contact:

Re: The Demise of the Low-Level Programmer

Post by MrDeathNote »

If your only starting out in assembly a good introduction book is Assembly Language Step by Step Programming with Linux by Jeff Duntemann. He doesn't even go into assmbly syntax for the first 200 pages because he explains memory models and cpu architechture first. I think this is a great approach because no matter how many assembly instructions you memorize you can't use them effectively without this knowledge.
http://www.youtube.com/user/MrDeathNote1988

Image
Image

"C makes it easy to shoot yourself in the foot. C++ makes it
harder, but when you do, it blows away your whole leg." - Bjarne Stroustrup
User avatar
dandymcgee
ES Beta Backer
ES Beta Backer
Posts: 4709
Joined: Tue Apr 29, 2008 3:24 pm
Current Project: https://github.com/dbechrd/RicoTech
Favorite Gaming Platforms: NES, Sega Genesis, PS2, PC
Programming Language of Choice: C
Location: San Francisco
Contact:

Re: The Demise of the Low-Level Programmer

Post by dandymcgee »

MrDeathNote wrote:If your only starting out in assembly a good introduction book is Assembly Language Step by Step Programming with Linux by Jeff Duntemann. He doesn't even go into assmbly syntax for the first 200 pages because he explains memory models and cpu architechture first. I think this is a great approach because no matter how many assembly instructions you memorize you can't use them effectively without this knowledge.
This is one of the main reasons most people find assembly so difficult and unattractive. They don't have a solid understanding of the underlying architecture, and that is absolutely required to go anywhere with assembly.
Falco Girgis wrote:It is imperative that I can broadcast my narcissistic commit strings to the Twitter! Tweet Tweet, bitches! :twisted:
User avatar
Falco Girgis
Elysian Shadows Team
Elysian Shadows Team
Posts: 10294
Joined: Thu May 20, 2004 2:04 pm
Current Project: Elysian Shadows
Favorite Gaming Platforms: Dreamcast, SNES, NES
Programming Language of Choice: C/++
Location: Studio Vorbis, AL
Contact:

Re: The Demise of the Low-Level Programmer

Post by Falco Girgis »

This article isn't talking about the demise of assembly programmers. It's talking about C/C++ programmers. It isn't talking about optimizing things with inline assembly. It's talking about tasks that we all take for granted (due to the low-level nature of game development) like manual memory management, pointers, cache alignment, and basic architecture. Modern JIT languages like Java and C# abstract these away and keep developers a safe distance.

And while I'm not implying at all that this is a bad thing (because they can definitely boost production), it's just sad to me how many higher-level JIT developers are willingly ignorant of how anything works outside of their own scope.

As for assembly being difficult, I've always said that with a little bit of hardware knowledge, it's the easiest language that you could ever learn. What's so hard about a language with about 20+ "commands" (RISC-style architecture) with preset functions, fixed argument types, and a dozen or so registers? Nothing. Once you get past the initial "holy jesus, computer hardware" jump into the architecture, you'll realize that once you know one assembly language, you're just a processor/microprocessor document away from knowing them all.

Writing assembly is fuck easy. Writing USEFUL, nontrivial things in assembly is HARD.
User avatar
Falco Girgis
Elysian Shadows Team
Elysian Shadows Team
Posts: 10294
Joined: Thu May 20, 2004 2:04 pm
Current Project: Elysian Shadows
Favorite Gaming Platforms: Dreamcast, SNES, NES
Programming Language of Choice: C/++
Location: Studio Vorbis, AL
Contact:

Re: The Demise of the Low-Level Programmer

Post by Falco Girgis »

At the same time, don't get me wrong. It's kind of awesome.

It makes people like us all the more valuable, all the more rare, and far better paid than your average computer science student.
User avatar
xx6heartless6xx
Chaos Rift Cool Newbie
Chaos Rift Cool Newbie
Posts: 80
Joined: Wed Feb 02, 2011 9:42 pm

Re: The Demise of the Low-Level Programmer

Post by xx6heartless6xx »

Do you need to be a really good programmer to start doing assembly?
User avatar
Falco Girgis
Elysian Shadows Team
Elysian Shadows Team
Posts: 10294
Joined: Thu May 20, 2004 2:04 pm
Current Project: Elysian Shadows
Favorite Gaming Platforms: Dreamcast, SNES, NES
Programming Language of Choice: C/++
Location: Studio Vorbis, AL
Contact:

Re: The Demise of the Low-Level Programmer

Post by Falco Girgis »

xx6heartless6xx wrote:Do you need to be a really good programmer to start doing assembly?
God no. I know plenty of electrical engineers that write assembly and can't code in any higher-level language for shit.

Your hardware and architecture knowledge are way more important than you software knowledge when you're that low level. Lots of your C-style procedural organization constructs may carry over, but object-oriented experience doesn't mean anything in assembly.
User avatar
Kyosaur
Chaos Rift Cool Newbie
Chaos Rift Cool Newbie
Posts: 78
Joined: Tue Jul 13, 2010 2:00 am
Favorite Gaming Platforms: PS2,PS3,NDS
Programming Language of Choice: C++

Re: The Demise of the Low-Level Programmer

Post by Kyosaur »

GyroVorbis wrote:
xx6heartless6xx wrote:Do you need to be a really good programmer to start doing assembly?
God no. I know plenty of electrical engineers that write assembly and can't code in any higher-level language for shit.

Your hardware and architecture knowledge are way more important than you software knowledge when you're that low level. Lots of your C-style procedural organization constructs may carry over, but object-oriented experience doesn't mean anything in assembly.
Ah that might be my problem then, as i know SHIT about hardware (which is unacceptable). I've never had the money to mess around with/build computers sadly (i dont think there is a better way to learn then cracking something open with a big ass cup of tea).

I normally dont buy books, but i might check out that book MrDeathNote (kick as name btw) was speaking of... it sounds like it would help.
Image
User avatar
xx6heartless6xx
Chaos Rift Cool Newbie
Chaos Rift Cool Newbie
Posts: 80
Joined: Wed Feb 02, 2011 9:42 pm

Re: The Demise of the Low-Level Programmer

Post by xx6heartless6xx »

GyroVorbis wrote:
xx6heartless6xx wrote:Do you need to be a really good programmer to start doing assembly?
God no. I know plenty of electrical engineers that write assembly and can't code in any higher-level language for shit.

Your hardware and architecture knowledge are way more important than you software knowledge when you're that low level. Lots of your C-style procedural organization constructs may carry over, but object-oriented experience doesn't mean anything in assembly.
Assembly allows you to directly interact with the hardware right? How come electrical engineers use it a lot besides maybe the speed benefits?
User avatar
Falco Girgis
Elysian Shadows Team
Elysian Shadows Team
Posts: 10294
Joined: Thu May 20, 2004 2:04 pm
Current Project: Elysian Shadows
Favorite Gaming Platforms: Dreamcast, SNES, NES
Programming Language of Choice: C/++
Location: Studio Vorbis, AL
Contact:

Re: The Demise of the Low-Level Programmer

Post by Falco Girgis »

xx6heartless6xx wrote:
GyroVorbis wrote:
xx6heartless6xx wrote:Do you need to be a really good programmer to start doing assembly?
God no. I know plenty of electrical engineers that write assembly and can't code in any higher-level language for shit.

Your hardware and architecture knowledge are way more important than you software knowledge when you're that low level. Lots of your C-style procedural organization constructs may carry over, but object-oriented experience doesn't mean anything in assembly.
Assembly allows you to directly interact with the hardware right? How come electrical engineers use it a lot besides maybe the speed benefits?
They make the hardware.
Post Reply