4 ms·
We could talk about the same problem in terms of why they still teach HC11 assembly in engineering school instead of teaching the industry standard arm-cortex.
by robotjosh 10y ago
We could talk about the same problem in terms of why they still teach HC11 assembly in engineering school instead of teaching the industry standard arm-cortex. It is because most people in higher education are out of touch.
- admax88q 10y agoOr maybe it's because the specific assembly you learn is far less important than the act of learning any assembly. Learning your first programming language is a challenge, but once you have done that, subsequent languages are easier because you managed to adopt the programming mindset.
- Noseshine 10y agoYou may as well do that using something that's widely being used right now. Doing that to me seems to have obvious advantages. You seem to defend the usage of out of date stuff, with what argument? The one you give does not require using the old stuff.
- toast0 10y agoIf it's likely that you will understand the second assembly language you learn much better than the first, it could be better that you learn a commercially dead language first. Alternatively, the 68HC11 is a very simple architecture, making it easy to learn the essence of assembly. Using an architecture with more capabilities will be easier than learning to do without. (although cycle counting on an architecture with memory latency is much harder)
- Noseshine 10y agoit could be better that you learn a commercially dead language first. Why? It does not follow from your argument, you just make that claim - one that I find very strange.
- throwaway729 10y ago> Why? Because it's a simpler language that contains the key ideas and skills that are trying to be taught, and doesn't contain other distracting details that can't be taught until after basic concepts are well-understood. Same reason lots of people don't like using Java as an intro language even though it's wildly popular. Having students type "public static void main..." a hundred times a semester before knowing enough to be able to understand what "public", "static", or even "void" mean is at best distracting. At worst, it teaches students to use programming languages in highly unprincipled ways.
- smallnamespace 10y agoAren't you making two claims that are unrelated? 1. Learning a simple assembly makes learning a second assembly easier 2. Therefore, it's more efficient to learn a simple assembly first The 2nd statement does not directly follow from the first, because the total time to learn two languages can still be greater than the time to learn the 2nd language alone, even if there is a synergistic effect. I'm assuming here that the simple assembly is not useful, and the goal is purely to learn the 2nd language. Like, let's say learning a simple assembly makes learning the second language 35% easier. Then learning both languages is better only if the second language would normally take 3x more time to learn. However, if every subsequent language is also easier to learn, and you intend to learn many more languages, then maybe starting from a simple language will actually be best. Talking about x86 in particular, it's pretty easy to define a simple, teachable subset of x86 and then expand from there.
- throwaway729 10y agoNo, the claim is that there's a strict ordering of concepts when learning an assembly (or any language). The conjecture is that using a simpler language makes it easier to teach the basic concepts, and that more advances features get in the way of teaching those basic concepts. I'm not saying this is true, just that it's a reasonable hypothesis. Learning a simple assembly may making learning a second assembly easier, but that's beside the point -- you need the basic concepts before any of the advanced/more complicated features become useful. And if the more advanced language gets in the way of learning the basic concepts, that could justify using a simpler language. This is a hotly contested topic in CS education research, and we're not going to come to a consensus here.
- zepto 10y agoYour second paragraph is true, but is a non-sequitur. How do you know that the choice of first assembly language is less important, particularly if you are forgoing the opportunity to learn one that embodies more of what we have learned about how to design them?
- Natsu 10y agoIf not for the 86HC11, I might never have used a Vax.
- wolf550e 10y agoBut learning assembly programming is a valuable skill to a software engineer, and not knowing the popular ISA is not a problem - it is assumed the popular ISA will change during your career and you will cope. The skills are knowing how to interpret an ABI specification, etc. Those will stay with you long after gcc drops support for the ISA you used to learn them. If the skill of interpreting a poem is useless (I don't think it is), it doesn't matter which poems are used in the lessons.
- umanwizard 10y agoHuh? how is ARM more "industry standard" than anything else?
- robotjosh 10y agoMost of the microcontrollers being used in new designs today are arm-cortex. Everybody who does microcontroller work except some pic weirdos is familiar with arm-cortex.
- umanwizard 10y agoAre you under the impression the only reason anyone would need to know assembly language is to work with microcontrollers?
- robotjosh 10y agoYes. Every firmware engineer works with assembly but barely any x86 devs ever touch assembly.
- umanwizard 10y agoThis is the base rate fallacy.