Re: Disobeying jet engines - why?
- From: John Larkin <jjlarkin@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx>
- Date: Wed, 30 Jan 2008 20:12:07 -0800
On Wed, 30 Jan 2008 12:17:16 -0800, "Joel Koltner"
<zapwireDASHgroups@xxxxxxxxx> wrote:
"John Larkin" <jjlarkin@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx> wrote in message
news:4f41q3hq25ra5ld18dfa5jvlcnkge8klnc@xxxxxxxxxx
If you use state machines, and don't multitask, you don't need
semaphores. If you don't allocate resources, you can't have deadlocks.
It's simple.
Unfortuntaely the "windows" (not just Microsoft Windows, but also, e.g., X
Windows and I would guess whatever older Macs used) paradigm makes it
difficult to not fire off multiple threads for even relatively simple
applications. For instance, if your serial interface API blocks for a
specified timeout period (e.g., 15 seconds if no response from some serial
device is heard), the GUI is going to be blocked as well for those 15 seconds
and your user will at best find this behavior annoying and at worst thing your
program is broken. While you could certainly argue that the guy who wrote the
serial API to block on a read was a nut bag, you're then into the discussion
of how much of someone else's tried and tested code you want to rip up and
re-do (which may not even be possible if you're interfacing to someone else's
hardware) vs. just using what's provided and still provide a "nice" user
experience regardless of how bogged up the provided API is.
The Windows asynchronous event approach is a recipe for chaos. VMS did
it right. But for embedded systems, the OS will cause no trouble if
there is no OS.
Programmers want that fancy stuff on their resumes.
...because all of the "big guys" (Microsoft, Intel, HP, etc.) are ASKING FOR
that "fancy stuff." So these days your average college grad is likely to have
been exposed to a whole potpourri of various "cool" technologies but hasn't
necessarily had time to learn any of them particularly "deeply" or even just
understand how they work and thus how you'd build them from scratch if you had
to.
But this is sci.electronics.design. We program engineering apps to use
ourselves, and embedded stuff inside our products. In both cases, the
simplest tools generally work best, and using the hottest/latest "CS"
tricks will generally (over 50% of the time, statistically) lead to
disaster. The typical CS graduate will be absolutely useless in
programming either of these needs.
The best programmers I know were *not* CS majors, and some never
studied programming formally at all. Chemists, for some reason, seem
to become good programmers.
John
.
- Follow-Ups:
- Re: Disobeying jet engines - why?
- From: Jim Thompson
- Re: Disobeying jet engines - why?
- References:
- Re: Disobeying jet engines - why?
- From: Glen Walpert
- Re: Disobeying jet engines - why?
- From: John Larkin
- Re: Disobeying jet engines - why?
- From: Martin Brown
- Re: Disobeying jet engines - why?
- From: John Larkin
- Re: Disobeying jet engines - why?
- From: Terry Given
- Re: Disobeying jet engines - why?
- From: John Larkin
- Re: Disobeying jet engines - why?
- From: Joel Koltner
- Re: Disobeying jet engines - why?
- From: John Larkin
- Re: Disobeying jet engines - why?
- From: Martin Brown
- Re: Disobeying jet engines - why?
- From: John Larkin
- Re: Disobeying jet engines - why?
- From: Joel Koltner
- Re: Disobeying jet engines - why?
- Prev by Date: Re: Differential pairs at 5 MHz - how important is trace length?
- Next by Date: Re: Disobeying jet engines - why?
- Previous by thread: Re: Disobeying jet engines - why?
- Next by thread: Re: Disobeying jet engines - why?
- Index(es):
Relevant Pages
|