The Demise of the Low-Level Programmer
Moderator: Coders of Rage
- Falco Girgis
- 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
We are the few, the proud:
http://altdevblogaday.com/2011/08/06/de ... rogrammer/
http://altdevblogaday.com/2011/08/06/de ... rogrammer/
- Van-B
- 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
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.
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.
- MrDeathNote
- 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
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!!Van-B wrote: Nowadays most programmers barely touch assembly.
http://www.youtube.com/user/MrDeathNote1988
"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
"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
- Kyosaur
- 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
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.MrDeathNote wrote: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!!Van-B wrote: Nowadays most programmers barely touch assembly.
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.
- xx6heartless6xx
- Chaos Rift Cool Newbie
- Posts: 80
- Joined: Wed Feb 02, 2011 9:42 pm
Re: The Demise of the Low-Level Programmer
I wish I knew assembly
- Kyosaur
- 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
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).xx6heartless6xx wrote:I wish I knew assembly
- MrDeathNote
- 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
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
"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
"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
- dandymcgee
- 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
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.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.
Falco Girgis wrote:It is imperative that I can broadcast my narcissistic commit strings to the Twitter! Tweet Tweet, bitches!
- Falco Girgis
- 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
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.
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.
- Falco Girgis
- 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
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.
It makes people like us all the more valuable, all the more rare, and far better paid than your average computer science student.
- xx6heartless6xx
- Chaos Rift Cool Newbie
- Posts: 80
- Joined: Wed Feb 02, 2011 9:42 pm
Re: The Demise of the Low-Level Programmer
Do you need to be a really good programmer to start doing assembly?
- Falco Girgis
- 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
God no. I know plenty of electrical engineers that write assembly and can't code in any higher-level language for shit.xx6heartless6xx wrote:Do you need to be a really good programmer to start doing assembly?
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.
- Kyosaur
- 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
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).GyroVorbis wrote:God no. I know plenty of electrical engineers that write assembly and can't code in any higher-level language for shit.xx6heartless6xx wrote:Do you need to be a really good programmer to start doing assembly?
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.
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.
- xx6heartless6xx
- Chaos Rift Cool Newbie
- Posts: 80
- Joined: Wed Feb 02, 2011 9:42 pm
Re: The Demise of the Low-Level Programmer
Assembly allows you to directly interact with the hardware right? How come electrical engineers use it a lot besides maybe the speed benefits?GyroVorbis wrote:God no. I know plenty of electrical engineers that write assembly and can't code in any higher-level language for shit.xx6heartless6xx wrote:Do you need to be a really good programmer to start doing assembly?
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.
- Falco Girgis
- 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
They make the hardware.xx6heartless6xx wrote:Assembly allows you to directly interact with the hardware right? How come electrical engineers use it a lot besides maybe the speed benefits?GyroVorbis wrote:God no. I know plenty of electrical engineers that write assembly and can't code in any higher-level language for shit.xx6heartless6xx wrote:Do you need to be a really good programmer to start doing assembly?
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.