[vcf-midatlantic] assembler is tedious (was WooHoo!) (Jeffrey Jonas)

Adam Michlin amichlin at swerlin.com
Thu Aug 3 22:07:42 EDT 2017


On 8/3/2017 4:27 PM, Evan Koblentz via vcf-midatlantic wrote:
>
> I'm the one who said "tedious". But keep in mind where I'm coming 
> from: BASIC and LOGO. Got plenty of good things "done" in both 
> languages, and now it's time for me to learn what more can be done in 
> assembly. Yes I griped somewhat :) but the fact that it's going to be 
> a challenge is exactly why I want to learn it. I'll be able to have 
> better conversations with museum visitors and better understand some 
> of the conversations here among our own members.

And it is important to note that Evan's use of tedious was in the very 
beginnings of his understanding of assembly prior to discovering 
branches. Take away branches/loops in any programming languages, no 
matter how high level, and I guarantee people will complain about tedium.

Herb had some excellent points, but I'll add that the purpose of 
studying assembly is not necessarily to write programs but rather to 
better understand how computer architecture works. Any CE or good CS 
degree will require it for this reason, whether 1967 or 2017. Yes, in 
1967 "real" programmers wrote assembly (and had little choice for "real" 
programming), but I'd argue that even in 2017 "real" programmers know 
assembly.. they just don't necessarily use it (unless they're writing a 
compiler or are in the habit of decompiling malware, but I digress...).

I get strange looks from people when I tell them I teach assembly to 
high school students, but 2017 is a glorious time to teach assembly. 
Back in my day you pretty much had to learn x86 (segment offset, at 
that), which is painful, since most people owned x86 boxes (or Macs, 
which Apple did just about everything they could do to not allow you to 
program in anything, never mind Motorola 680x0 assembly). Well, I was 
lucky and rather enjoyed RISC assembly (Sparc.. oh how I loved the 
Sparc), but my college paid for a lab full of SparcStations that most 
people didn't have access to (at least not in school environments). So, 
really, x86 was the only option and many people from my generation 
recoil in horror when they hear the suggestion of assembly education 
because of that. At the same time, many people from the generation 
before me (whether because of the wonder days of the 6502, the IBM 360, 
or DEC) will say "Of course you should teach assembly... why wouldn't you?".

In 2017, I can run a virtual Apple II a dozen different ways and teach 
6502. I can run virtual MIPS and teach RISC assembly. Heck, I can even 
run a virtual old school dos box and teach segment offset if I want to 
be cruel. Linux and Mac OS X both allow me to write modern x86 and I can 
write ARM on a Raspberry Pi (although, sadly, I find ARM to be rather 
not so beginning user friendly). I'm told by former students that some 
colleges now even teach Java byte code assembly (ewwwww....).

And, as I'm sure most programmers on this list will back me up on, once 
you've really learned one assembly language, learning the rest of them 
is just a matter of details.

      -Adam




More information about the vcf-midatlantic mailing list