Hard core tech
Abiola at Foreign Dispatches has another blog, Tech Notes. Just have your thinking cap on if you visit, because this:
A very interesting Slashdot discussion is going on about the pros and cons of learning assembly language. Although I'm familiar with more than one assembly language myself, including Motorola 68000, DEC Alpha and (yuck!) Intel x86, I'm personally of the opinion that unless one is working in a field like game development or numerical computing where top performance is the utmost prioirity, messing about with assembly is mostly a waste of time, and performance improvements are better obtained by focusing on algorithms, i/O and program architecture. Even the most carefully hand-optimized piece of assembly code that happens to use an O(n2) algorithm like bubble sort will eventually be outperformed by a piece of Perl or VB6 code that uses an O(n log n) alternative like merge sort.
For numerical computation, game development or anywhere else where access to the SIMD functionality included in most modern-day CPUs is vital, intimate knowledge of assembly-language will continue to be vital, as it will be for those who have to work at the systems level, e.g. low-level driver writers and the like. For the vast majority of programmers outside these fields, knowledge of assembly language is only important insofar as it is difficult to do binary-level debugging without it, as is often necessary when source-code is not available. Fiddling about with register instructions and so forth is a massive drain of developer time and energy which can be put to more profitable uses, and the worst thing of all is that in most cases, the hand-tweaked code people come up with will actually turn out to be slower than what they'd have obtained had they left the optimizing to a decent compiler.
…is typical. Not to mention the reason I DON'T do assembly language.
Back in MS-DOS days, you HAD to know some assembly language because the system call API was in assembly (int 21, anyone?). Comes Windows and the idea of writing whole programs in assembly because as absurd as writing them in C (C was more absurd because it gave you the illusion of help whereas in assembly you KNEW you were on your own).