>
>> Most computer languages look somewhat like Basic apart from APL & Forth.
>> (and a few exotic modern CompSci languages like Haskell)
>
>I guess that depends on how you define "like".
>
>Coding in any of the LISP dialects is likely a rude awakening for
>the uninitiated. Ladder logic?
>
>Much of the similarity is a consequence (IMO) of the serial
>way that humans tend to think -- esp when it comes to algorithms...
>it's almost always a set of *steps* instead of a network.
Computer programming is most always procedural. When parallel things neeed to be done, it's usually broken into threads or processes with semiphores, locks, blocks, interrupts, flags, fifos, things like that. Most programmers never use state machines.
FPGA design is done in synchronous clocked logic in nonprocedural languages; everything happens everywhere all at once. Crossing a clock boundary is recognized as something to avoid or handle very carefully. Computer programming is a lot like old-style hairball async logic design and has correspondingly many bugs.
>>> Computing languages are fad driven, and that drives good things out of
>>> circulation, a sort of Gresham's Law of computing.
>>
>> I don't think that is true at all. The older computer languages were limited by
>> computing power and hardware available at the time. Modern languages harness
>> the huge computing resources available today to take some of the tedious grunt
>> work out of coding and detecting errors.
>
>I think the BSPs, HALs, OSs, etc. are more guilty of that. Folks don't code
>on bare metal anymore -- just as they don't put a CPU on a schematic any
>longer. They are "sold" the notion that they can treat this API as
>a well-defined abstraction -- without ever defining the abstraction well! :>
>They don't know what their implementations "cost" or how to even *measure*
>performance -- because they don't know what's involved.
>
>OTOH, a lot of "coding" is taught targeting folks who will be building
>web pages or web apps where there is no concern for resource management
>(it works or it doesn't).
Coding has no theory, no math, and usually little testing. Comments are rare and usually illiterate. Bugs are normal because we can always fix them in the next weekly or daily release. Billion dollar projects literally crash from dumb bugs. We are in the Dark Ages of programming.
Who said "Anybody can learn to code" ?