• We’re currently investigating an issue related to the forum theme and styling that is impacting page layout and visual formatting. The problem has been identified, and we are actively working on a resolution. There is no impact to user data or functionality, this is strictly a front-end display issue. We’ll post an update once the fix has been deployed. Thanks for your patience while we get this sorted.

assembly programming sucks

Page 2 - Seeking answers? Join the AnandTech community: where nearly half-a-million members share solutions and discuss the latest tech.
assembly language unlocks the full potential of a computer - maximum speed, ultimate flexibility, incredibly tight (small) code.

for mundane tasks i agree, it is to elegant (and time consuming) to use.

however, if you have a task that takes a long time (sorting a large database, massive image manipulation, etc) or if you are trying to create a real time
enviroment - NOTHING comes close.

i have found that the key to maximizing the utility of assembly language is to create specialized subroutines in assembly that can be called from higher level languages. the assembly code is strictly used for computation intensive tasks, while the remainder to the code is done in a higher language..you get the best of both worlds..also you can build up a library of subroutines that you can recycle in other projects in the future.

assembly language should not be shunned because it is timeconsuming and "difficult"..it is a tool to pulled out and used when the need arises..
 
Originally posted by: heartsurgeon
assembly language unlocks the full potential of a computer - maximum speed, ultimate flexibility, incredibly tight (small) code.

for mundane tasks i agree, it is to elegant (and time consuming) to use.

however, if you have a task that takes a long time (sorting a large database, massive image manipulation, etc) or if you are trying to create a real time
enviroment - NOTHING comes close.

i have found that the key to maximizing the utility of assembly language is to create specialized subroutines in assembly that can be called from higher level languages. the assembly code is strictly used for computation intensive tasks, while the remainder to the code is done in a higher language..you get the best of both worlds..also you can build up a library of subroutines that you can recycle in other projects in the future.

assembly language should not be shunned because it is timeconsuming and "difficult"..it is a tool to pulled out and used when the need arises..

While I agree, many of the touted benefits are entirely negated when used in the context of what would otherwise be the niche of higher-level languages. For example, the sorting a database example you mentioned: on any modern platform such a task would be so immensely time consuming and difficult to do entirely in assembly that any benefits would be negated. I'm not talking about esoteric embedded databases that run entirely in memory. I'm referring to enterprise level database platforms. Granted, I know not of a single person who codes libraries for such platforms in assembly. At some point you will almost have to resort to loading libraries that are written in higher-level languages than assembly in order to access/manipulate these platforms. Since much of the computation is up to these implementing libraries, any performance benefits of the calling code (assembly) would again be negated.

That said, there are definitely many niches for assembly, but its place in enterprise applications is almost infinitessimal. The last time I actually used assembly for a production application was in the implementation of a global windows hook library, and that was written with MASM (many higher-level constructs than other dialects like .invoke for method calling instead of pushing/popping the parms on the stack and reading eax).
 
Originally posted by: JC
Word. :|

Higher level languages are way better 🙂

i'm not a programmer so i don't know, but Can you use higher level languages on the hardware level?
 
Originally posted by: heartsurgeon
assembly language unlocks the full potential of a computer - maximum speed, ultimate flexibility, incredibly tight (small) code.

for mundane tasks i agree, it is to elegant (and time consuming) to use.

however, if you have a task that takes a long time (sorting a large database, massive image manipulation, etc) or if you are trying to create a real time
enviroment - NOTHING comes close.

i have found that the key to maximizing the utility of assembly language is to create specialized subroutines in assembly that can be called from higher level languages. the assembly code is strictly used for computation intensive tasks, while the remainder to the code is done in a higher language..you get the best of both worlds..also you can build up a library of subroutines that you can recycle in other projects in the future.

assembly language should not be shunned because it is timeconsuming and "difficult"..it is a tool to pulled out and used when the need arises..

i dont think you know what your talking about , modern day compilers beat the pants off 99.99999% of humans when trying to opittmize code. beside dev time, cost, and debugging/bug fix cost is magntitudes of order higher cost when working with straight assembly, plus your code is platform specific.
 
Originally posted by: LeeTJ
Originally posted by: JC
Word. :|

Higher level languages are way better 🙂

i'm not a programmer so i don't know, but Can you use higher level languages on the hardware level?

Absolutely; however, most interfacing to the hardware is done through libraries written in lower-level languages 🙂
 
Originally posted by: Jugernot
system.out.printline "Yah it does, Java rules!";

I hate the fact that my school switched their entry level programming courses from C++ to Java... now when I take the upper level courses with people younger than me the TAs have to explain "what's a pointer?".... oh come on...

 
haha. Many years ago I learned assembly for the 6502, z80 and 6800 microprocessors (all 8 bit.) With the 6800, I had to manually compile my program using the CPU info card (yes, it was a heatkit!). talk about a pain in the butt. Anyway, it sure was fun to make a hardware circuit and interface it. I took a quick glance at curent processors, and there are just too many variables to account for without making me go crazy. I feel sorry for anybody who has to learn assembly on new processors.




 
i dont think you know what your talking about

you're entitled to your opinion..

i have found that assembly level programming has allowed me to solve problems and program real-time software that could never have been done with "higher level" languages.

your comment that "modern" compilers are more efficient than a proficient assembly language coder is laughable..

finally, perhaps your experience is limited to coding programs that sell millions of copies for desktop use on the mac and pc., but in the biomedical fields (particularly in research) many applications are unique, one-of programs that are optimized for a single hardware platform. in this manner, actual world problems can be solved.

i know exactly what i'm talking about.....
 
Originally posted by: BCYL
Originally posted by: Jugernot
system.out.printline "Yah it does, Java rules!";

I hate the fact that my school switched their entry level programming courses from C++ to Java... now when I take the upper level courses with people younger than me the TAs have to explain "what's a pointer?".... oh come on...
Well the reason colleges switched in droves is because C++ is a lousy entry-level programming language.

You don't have to learn C++ to understand pointers. In essence, pointers are taught perfectly well using Scheme in the intro CS curriculum MIT developed and many programs adopted.
 
Originally posted by: manly
Originally posted by: BCYL
Originally posted by: Jugernot
system.out.printline "Yah it does, Java rules!";

I hate the fact that my school switched their entry level programming courses from C++ to Java... now when I take the upper level courses with people younger than me the TAs have to explain "what's a pointer?".... oh come on...
Well the reason colleges switched in droves is because C++ is a lousy entry-level programming language.

You don't have to learn C++ to understand pointers. In essence, pointers are taught perfectly well using Scheme in the intro CS curriculum MIT developed and many programs adopted.

Actually our school is one of those that adopted the Scheme/MIT curriculum... Then C++ used to come after scheme (now it's java instead)... Pointers were first introduced in those C++ courses (back in the days when I took them), now I guess they dont teach them anymore since they switched to java...

now people have no idea what pointers are when they get to upper-level courses, which majority of them uses C...

 
Originally posted by: BCYL
Originally posted by: manly
Originally posted by: BCYL
Originally posted by: Jugernot
system.out.printline "Yah it does, Java rules!";

I hate the fact that my school switched their entry level programming courses from C++ to Java... now when I take the upper level courses with people younger than me the TAs have to explain "what's a pointer?".... oh come on...
Well the reason colleges switched in droves is because C++ is a lousy entry-level programming language.

You don't have to learn C++ to understand pointers. In essence, pointers are taught perfectly well using Scheme in the intro CS curriculum MIT developed and many programs adopted.

Actually our school is one of those that adopted the Scheme/MIT curriculum... Then C++ used to come after scheme (now it's java instead)... Pointers were first introduced in those C++ courses (back in the days when I took them), now I guess they dont teach them anymore since they switched to java...

now people have no idea what pointers are when they get to upper-level courses, which majority of them uses C...

It's nice to know what a pointer is, but unless you are going to be a C or C++ programmer, you'll probably never use one. Or at least you won't know you are using one.
 
Originally posted by: Shanti
Originally posted by: BCYL
Originally posted by: manly
Originally posted by: BCYL
Originally posted by: Jugernot
system.out.printline "Yah it does, Java rules!";

I hate the fact that my school switched their entry level programming courses from C++ to Java... now when I take the upper level courses with people younger than me the TAs have to explain "what's a pointer?".... oh come on...
Well the reason colleges switched in droves is because C++ is a lousy entry-level programming language.

You don't have to learn C++ to understand pointers. In essence, pointers are taught perfectly well using Scheme in the intro CS curriculum MIT developed and many programs adopted.

Actually our school is one of those that adopted the Scheme/MIT curriculum... Then C++ used to come after scheme (now it's java instead)... Pointers were first introduced in those C++ courses (back in the days when I took them), now I guess they dont teach them anymore since they switched to java...

now people have no idea what pointers are when they get to upper-level courses, which majority of them uses C...

It's nice to know what a pointer is, but unless you are going to be a C or C++ programmer, you'll probably never use one. Or at least you won't know you are using one.

If you want to write drivers or any hardware interface code you use pointers all the time...
that and there's no shortage of jobs for entry level embedded systems guys...usually firmware jobs....

 
Back
Top