Path: utzoo!utgpu!news-server.csri.toronto.edu!rpi!zaphod.mps.ohio-state.edu!mips!cs.uoregon.edu!ogicse!qiclab!techbook!tsouth From: tsouth@techbook.com (Todd South) Newsgroups: comp.sys.apple2 Subject: Re: Re- HLLs vs. Assembly Message-ID: <1991Apr13.225047.12573@techbook.com> Date: 13 Apr 91 22:50:47 GMT References: <9104110129.AA11471@apple.com> Organization: TECHbooks of Beaverton Oregon - Public Access Unix Lines: 122 In article <9104110129.AA11471@apple.com> MQUINN@UTCVM.BITNET writes: >On Wed, 10 Apr 91 05:04:41 GMT Doug Gwyn said: >>In article <1991Apr9.150402.563@latcs2.lat.oz.au> stephens@latcs2.lat.oz.au >> (Philip J Stephens) writes: >>>You can't program effectively in a HLL if you don't know the hardware >>>you're working on, it's limitations and it's features. >> >>Wrong -- any decent HLL should be exploited in terms of the abstract >>model of computation that it supports, most definitely not in terms >>of any specific machine architecture. > > >Knowing Assembly also gives you an >appreciation for what High level languages do and WHY they are the way they >are and also gives you ideas on exactly how the languages could be improved. >The list of advantages just goes on and on and on. It's sort of like >experiencing another culture in another, less advanced country than your >own: It gives you an appreciation for your own county and helps you >understand how we are and why we are the way we are. Truer words have never been spoken. Although I am not now an active programmer in my job, I deal with the local school systems on a continual basis and laugh at the kids who think that 2 years of Pascal in junior and senior high will be all the programming knowledge they ever need to get and understanding of today's computers. In one school in particular the students were lucky enough to get a grant which purchased a number of Amiga 1000's. What does the teacher teach on a machine that was designed in C? Pascal!!! >Learning a HLL without learning assembly is very similar to the way they >used to teach math in my old high school: Athletic *COACHES*, who didn't >have the foggiest idea of math, were teaching the classes. When someone >asked a question on why a certain formula worked, the coach would just >say, don't worry about how it works, just memorize the formula. Well, >Just memorizing the formula will just get you so far. UNDERSTANDING the >formula is a whole different story. It helps you REMEMBER the formula, >and if you ever happen to forget the formula, if you understand how it >works, you could always re-think out the formula. > >Many of the computer science professors around now are much like the >coaches I had for math in High schooll. They don't completely understand >it themselves and they're churning out more and more people like >themselves and the real 'thinkers' are slowly vanishing. > >This is part of the overall education problem in the U.S. today. To many >teachers just want you to memorize the facts and forget about trying to >understand them. I would go farther than this. I feel that the attitudes have come from a yuppie sickness that permiates the schools all over America. Basically, I like to call it the Business/Marketting syndrome. So many kids today are told that they basically just have to get a general degree in this area and the jobs will jump at them from right and left. Unfortunately, they find that when EVERYONE of them gets the same degree only the most agressive and/or assertive in the market with a good amount of natural talent are the ones that actually lock up the jobs in these upper manage- ment fields. Now, with the majority of baby-bommers having locked up these jobs the youth of America are finding that they have to revert to mail room jobs at UPS or becoming assistant managers in various _small_ establishments. In Oregon alone the past 5 years worth of graduates in Business/Marketting cannot find jobs in their field and they would have probably been great assets to the engineering world or other hands-on job environments. As for the CS major, I feel that some of the professors they have to learn under were Bus./Marketting dropouts who found that they had to get a real job eventually so they went back to school, got the basic credentials for the position and hoped to God they would be able to struggle through till they developed tenure and could sit back on easy street. I have only seen one really good course at the local community college and the instructor basically sat back and read the material verbatim from the book (I wanted to brush up on calculus applications). As for the larger ones the system administrators I have talked to are lucky as hell they were hackers early on in life or they wouldn't even have a chance at a serious position with followon, or career potential. The majority of CS people that I have met eventually end up in nowhere jobs writing RPG II instead of the state of the art applications they may have dreamed of. Many of the programmers I see in the community of Portland are good, but usually have a group of workers that struggle to follow the lead of the head of a team and form code into expectations of finally finishing a project instead of finishing a PROGRAM! >So, I guess the moral of my story is, "You're much better off knowing what's >under the hood and how it works, in case you get stalled out in the middle >of nowhere." :) > >>There are a few situations in which certain basic information about >>the system can help, for example in a Fortran program that accesses >>a huge multidimensional array; if it accesses it in the wrong order, >>performance might be poor due to virtual memory "thrashing". But >>knowing what machine opcodes and addressing modes exist is of no real >>value to a Fortran programmer. > >For this ONE particular example, knowing OPcodes isn't really necessary, >but knowing how memory is reserved for arrays certainly helps. See my >above example. > >I'm sure you could pick out MANY instances where it's not necessary to know >assembly, but MANY instances, it is either almost a necesity, or it's >extremely helpful to know assembly. There ARE quirks about machines that >you just can't work around without knowing assembly. Sure, you're code >will more than likely work without knowing assembly, but the more assembly >you know, the better your code is going to be. > > pro-line-- mquinn@pro-gsplus.cts.com I see it as attitude. The computer society within America has long since changed from cutting edge to complacency. HLL's are good if they are used to improve concepts within the program, bad if they are used simply as a faster way of doing something. While a person needs to know assembly in case they might use it, one would be better off if they learned assembly with the attitude that learning the most basic components of a CPU will allow them to understand how concepts within the program would be better for that system and user thereof. Todd South -- -- tsouth@techbook.COM ...!{tektronix!nosun,uunet}techbook!tsouth Public Access UNIX at (503) 644-8135 (1200/2400) Voice: +1 503 646-8257 Public Access User --- Not affiliated with TECHbooks