5 ms·
Wow, it's easy to forget how much complexity there is, even for a technologist. This post reminds me to step back and appreciate everything that's going on unde
by guptaneil 14y ago
Wow, it's easy to forget how much complexity there is, even for a technologist. This post reminds me to step back and appreciate everything that's going on under the hood. For a similar effect on non-technologists, see Louis C.K's bit about how even the shittiest technologies are a miracle[1].
I disagree with the conclusion though. I think the reason Steve Jobs' death impacted people more than Dennis Ritchie's is that Jobs was taken in his prime. Who knows what the world lost by his premature death.
1: http://www.youtube.com/watch?v=KpUNA2nutbk http://www.youtube.com/watch?v=KpUNA2nutbk
- xradionut 14y ago"Wow, it's easy to forget how much complexity there is, even for a technologist." Complexity is there every day, we just abstract it away in order to focus on the task at hand. If you are widely read or have worked in multiple fields, and/or multiple levels of the "stack", both hardware and software, then it's a bit more apparent.
- joezydeco 14y agoEmbedded systems engineers work on all these levels, simultaneously, day in and day out. But apparently our craft is kind of a dying one. I've seen discussions on LinkedIn about how one gets into embedded systems engineering. Nobody seems to have a clear answer. I've seen people get all hyped up on using small eval/dev boards like Raspberry Pi, but don't get much farther than loading a desktop or XBMC on it. There's hope in the Arduino crowd, but blinking LEDs isn't even putting the training wheels on the bike.
- stephengillie 14y agoIt frustrates me too. We have the technology to automate SO MANY of our processes, but it's almost like people enjoy doing them by hand. I'm teaching myself to build a self-driving trash can, among other things.
- zaius 14y agoAgreed. If you're building something like an embedded nas server, you have to have a deep understanding of literally every piece of technology he talked about. I think arduino has done wonders for getting people started, but it would be great if there was a similar ecosystem for people who are further along than blinking LEDs and building something of significance.
- joezydeco 14y agoI don't think we'll ever see something like the Arduino IDE for more advanced systems. Some chipmakers have IDEs like Cypress and their PSoC Designer/Creator, but that still focuses on the chip alone and not the outside world. The thing about embedded is that you're crafting a very specific hardware and firmware design for the task at hand. The project may begin with a generic setup like Arduino or Beagle or Rpi, but at the end it's a totally unique animal. There's no way any graphic or assisted design environment is going to be able to handle it all.
- zaius 14y agoWhat about FPGAs? I feel like they could solve so much of this problem if the tools were better. Though I haven't used them since college, so I have no idea what the current status is.
- joezydeco 14y agoFPGA are not what I would recommend for a "what-do-we-do-after-Arduino" type of device. Hell, FPGAs are Jedi-Master class devices as far as I see it. This is the kind of firepower you call in when you have something that no off-the-shelf micro can do, like emulate an obsolete processor, or put 128 of them on one chip, or hash Bitcoins, image processing, etc etc etc.
- zaius 14y agoAh, no I didn't mean FPGAs as the next step for implementation, I meant more as a development tool. For example, it would be cool if there was some sort of software that would let you design multiple-chip setups that would usually require breadboarding, but then run the whole circuit on the FPGA. That design could be transformed straight into a PCB that's ready for fab with the discrete components.
- nitrogen 14y agoPart of the problem may be that we've done too good a job of hiding embedded computers in places people don't expect, so people getting their hands on an Arduino or RPi don't even realize they could do those things with their new kit.
- dugmartin 14y agoThe sad thing is I was talking last week to a former coworker with 20 years of hardcore embedded programming experience and he is thinking of going into web programming because of better opportunities there. I spent the first few years of my career doing hard (as in deadlines not effort) real time embedded software and I think it made me a better programmer. However being able to work from a laptop anywhere I want instead of being stuck in a test lab with bus analyzers, scopes, data analyzers and bond out emulators booping all around me is a nicer lifestyle I'll have to admit.
- joezydeco 14y agoTotally agree. Being embedded usually means long hours in labs next to machinery that's half-working and half-smoking. You also don't get bean bags and foosball tables. I'm going to spend all Spring arguing with a customer to spend the extra $5 on their bill of materials to use a better processor that I won't have to band-aid 3 years from now when the current one goes obsolete or can't handle what I know their roadmap involves. This a $10,000 product with 500 EAU. That's $2500 retail. Google will spend $2500 on employee soft drinks before I finish typing this sentence. I've been in 20+ years as well and I kick myself a lot over not going the way of the web developer. After all, what's web programming other than finding new and interesting ways to concatenate strings? =) Sorry, embedded dev joke there. But as I get older and the greenhorns out of college can't tell me the difference between ASLA and ROLA, it kind of gives me some reassurance that my skills will be needed and valuable for the time to come.
- robocat 14y agoI am unsure that most good embedded programmers would have a personality type compatible with web programming. Embedded software requires attention to detail, and a continual focus on reliability. It seems to me that web development often involves shoving shoddy solutions out the door, and often encourages a certain cowboy mentality. Alternatively to try and make an elegant and correct solution for browsers (my goal) is frustrating and dissapointing due to the thousands of meaningless browser bugs and standards faults, and the ugly compromises that are forced to be made... Embedded vendor toolchains and hardware bugs are a dream in comparison! At least that is my experience coming from an embedded programming background and now five years working on deep DOM foo... Slowly poisoning my brain with browser crud. Unfortunately business reasons often lead to choosing the browser as a delivery platform regardless of its numerous downsides :'(
- rayiner 14y ago> I've seen discussions on LinkedIn about how one gets into embedded systems engineering. Nobody seems to have a clear answer. I don't think there is a particular shortage of jobs in embedded systems relative to demand. A degree in electrical engineering along with programming skills is highly valued in the field. The players to target is also different. Not a huge demand for embedded engineers at say Facebook, but lots of demand for them at Raytheon or Juniper. Telecoms, wireless, defense, and aerospace hire up a lot of embedded software developers.
- hoprocker 14y ago"Any sufficiently advanced technology is indistinguishable from magic." -Arthur C Clarke[1] This article has been posted at least once onto HN, and I liked reading it then, too. One of the first major insights I remember from my CS curriculum was the concept of abstraction -- in CS it's applied to code-as-data, the OSI model, etc, but it exists everywhere, including all engineering, large bureaucracies, etc. Thank you Prof Harvey! 1: http://en.wikipedia.org/wiki/Clarkes_three_laws http://en.wikipedia.org/wiki/Clarkes_three_laws
- gdickie 14y agoI prefer the correlary, as motivation: "Any technology distinguishable from magic is insufficiently advanced"