mr3@ukc.ac.uk (M.Rizzo) (03/31/91)
In article <mykes.0476@amiga0.SF-Bay.ORG> mykes@amiga0.SF-Bay.ORG (Mike Schwartz) writes: > >I know lots of people that don't know assembler and think of themselves >as great programemrs. If they don't understand what it means to use >assembler, their opinions carry little weight. I am sick and tired of seeing posts by people who think that they are the greatest programmers in the universe because they can program in assembly language. First of all, there is a difference between knowing how to program in assembly language and using assembly language to hit the Amiga hardware directly. Programming in assembly language is EASY. It is also tedious but that does not make it difficult. Knowing how to use the Amiga hardware directly is another issue - it is harder than knowing how to program in assembly language, but it has nothing to do with being able to program in assembly language. It is more a matter of being a good hardware engineer - definitely not a good programmer. Some of the essential qualities of a good programmer: o Using the appropriate language for the task at hand - this need not be the whole program, but just a small part of it (as is often in the case with the need for assembler) o Writing well-expressed, concise, readable programs o Understanding and using software engineering concepts such as abstraction, modularity and re-usability o Writing portable routines where possible I do not consider the ability to program in assembly language a required quality of a good programmer: I know people who don't know assembler and are excellent programmers. A lot of UNIX programmers don't know anything but C and they've worked on far more complex projects than any Amiga game. In UNIX its a big sin to program in assembly language because you lose portability across different platforms. So Mr. Schwartz, go tell the UNIX community that their opinions carry little weight ! Then there are the MASTERS who devise new ways of writing programs, making it possible to write better programs from a Software Engineering viewpoint. There are other types of programming languages such as functional languages e.g. Miranda, and declarative languages e.g. Prolog which take a totally different approach to programming. Ever tried Miranda ? Complicated programs can be written so concisely and neatly - take a look at quicksort in Miranda - just a few lines as compared to the dozens (or hundreds) you'd need in assembler. It can be harder to write programs in Miranda, MUCH harder than in assembler, but it removes the tediousness associated with assembler and at the end of the day, you're left with programs which are shorter, more concise, understandable, easer to modify and re-use elsewhere etc. The people with the REAL programming skills are those with a good understanding of software engineering skills. Assembler cannot teach you these skills - it is totally hopeless as far as conciseness, readability, portability and abstraction are concerned. So for those people who ONLY know assembler and think they are top programmers, sorry, but as far as I'm concerned you've still got a long way to go. Michael Rizzo PS The above is my humble opinion, based on the experience I've had in the last eight years or so. It is not my intention to offend anyone - I only wanted to put a few things straight 'coz I got annoyed :-) PPS Anyone know of an implementation of a functional language for the Amiga ? I'd be interested in an implementation of the ML langauge (not purely functional) as well.