[vcf-midatlantic] assembler is tedious (was WooHoo!) (Jeffrey Jonas)
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.
More information about the vcf-midatlantic