Email: Password: Remember Me | Create Account (Free)

Back to Subject List

Old thread has been locked -- no new posts accepted in this thread
???
10/19/10 05:30
Read: times


 
#179185 - Design for whom?
Responding to: ???'s previous message
Andy Neil said:
yet still suffers from the fact the OS and everything associated with it was designed by persons more concerned with job-security than with producing useful work

Yes, that is certainly the impression that I have got on the few occasions that I've had to use it.


The question then is, how should it have been designed? And what was the intention?

An electron microscope have a large number of knobs and settings. Why? Job security, or just because there are many parameters that needs to be tweaked? Is it expected that a person who are not skilled in the art should be able to use an electron microscope?

Why so many parameters documented for the ECU of a modern car? Why can't the motor run with identical settings when cold-starting it at -30°C as when running at 160km/h for hours on Autobahn?

Why did the Intel engineers create a mnemonic DJNZ instead of a more obvious name like "decrement-register-and-jump-if-register-not-becomming-zero"? Or why did we get a bit "TI" in a register "SCON"? Job security? Or might it be that they expected the users of their processor to spend a reasonable amount of time getting skilled in "the art" before trying to make proper use of the processors? Might they have decided decided that when you are skilled, it's way better to just write DJNZ than to write decrement-register-and-jump-if-register-not-becomming-zero?

On the PC, we more and more get either huge-bloated "do all" programs that doesn't fit on a single CD or maybe even on a single DVD. Or we need to install a huge number of specialized applications that we can use for a couple of years before noticing that they where so specialized that the supplier stopped supporting it.

When designing Unix, the decision was to create many small, but simple, applications with the intention that the user should be able to combine them like LEGO to create more complex solutions. So most applications have two- or three-character names (ls, dd, ln, cp, mv, rm, tar, sed, ...) and most applications have well defined use with stdin or stdout. Was that a bad design choice? What other design choice would allow a complex system on a machine with limited RAM and limited disk space? What other design would require that the user learns a fixed number of tools (not an infinite) to be able to solve an infinite number of problems? Think about machines with 64kB of RAM. Think about PDP-7 with 4kB available for user programs.

Compare to the capabilities of todays microcontrollers and consider how an OS originally conceived for such puny systems not only still exists, but does great. Any time mr Richard feels good at cramming functionality into a 8051 he should consider the unskilled bastards who did design Unix just for job security.

If anything, Unix was designed to let the users produce useful work. No flashy extras but the tools to go the mileage. It's designed to be the toolbox for a professional, and not the toolbox for a hobbyist. That a lot of hobbyists also likes it and are comfortable with it does indicate that it is a well-designed set of machinery.

So Andy - what view would you have had of the 8051 if you had just given it a cursory glance, instead of having worked professinally with it? Doesn't most beginners who try to write assembler programs for a 8051 somehow think that the processor, assembler, and documentation must have been created with "work security" in mind, making everything extra cryptic just to warrant a higher salary?

Would we have been helped if Intel had decided instead to create a microcontroller-for-dummies?

What would the world have looked like if AT&T had released an OS for dummies instead of an OS for solving real problems? MS-DOS didn't start from nothing. It picked some ideas from VMS, some from Unix, ...

List of 48 messages in thread
TopicAuthorDate
8051 c assembler            01/01/70 00:00      
   To get you started right away...            01/01/70 00:00      
      Beware            01/01/70 00:00      
         You're complicating the question            01/01/70 00:00      
            You're right            01/01/70 00:00      
   Try Raisonance's tool chain            01/01/70 00:00      
   After assembling.            01/01/70 00:00      
      prog.ihx            01/01/70 00:00      
         ihx...            01/01/70 00:00      
            It's not a shortcut!            01/01/70 00:00      
               Where is the 8051?            01/01/70 00:00      
                  everything about compiling a C program            01/01/70 00:00      
                     So ... which toolchain should the PC-user use?            01/01/70 00:00      
                        Already covered in linked thread            01/01/70 00:00      
                        Which toolchain?            01/01/70 00:00      
                           Design for whom?            01/01/70 00:00      
                  Debugging normally so much easier on PC            01/01/70 00:00      
               SDCC "shortcut"            01/01/70 00:00      
                  Presumably, from the extension?            01/01/70 00:00      
                     Could be a linker input file too, for some tool chains            01/01/70 00:00      
            syn            01/01/70 00:00      
   Books; Study.            01/01/70 00:00      
   if you want to take the difficult road ...            01/01/70 00:00      
   compilie error            01/01/70 00:00      
      no other files are seen in bin folder            01/01/70 00:00      
         yes..            01/01/70 00:00      
            You need to engage the environment variable PATH            01/01/70 00:00      
               I don't think PATH is used for finding "documents"?            01/01/70 00:00      
                  use current directory            01/01/70 00:00      
                     paths?            01/01/70 00:00      
                        files without paths            01/01/70 00:00      
            bin vs src            01/01/70 00:00      
   ...            01/01/70 00:00      
   Got the .ihx            01/01/70 00:00      
      which derivative            01/01/70 00:00      
         linking            01/01/70 00:00      
            include            01/01/70 00:00      
               ...            01/01/70 00:00      
                  version?            01/01/70 00:00      
                     2.9.0            01/01/70 00:00      
                        Remove it            01/01/70 00:00      
                           What is a "C" assembler?            01/01/70 00:00      
                              Already answered!            01/01/70 00:00      
   thanks everyone for help            01/01/70 00:00      
      fine, could you share how you got there?            01/01/70 00:00      
         ..            01/01/70 00:00      
   LCD interfacing            01/01/70 00:00      
      New Thread!            01/01/70 00:00      

Back to Subject List