3 ms·
It's extremely true. I occasionally joke about how web programming isn't really programming, but it really is nothing but a joke. Making a LED blink on a micro
by notalaser 11y ago
It's extremely true. I occasionally joke about how web programming isn't really programming, but it really is nothing but a joke.
Making a LED blink on a microcontroller is just about as difficult as showing an intermittent alert in a browser window. It may seem harder because you need to know a little more about the abstraction layers underneath, but those are things that you can pick up just as quickly as JavaScript.
Designing a high-throughput data interface system in FPGA (which I'm doing now) is at least as hard as doing a high-throughput back-end infrastructure for a web service. I can barely do the former -- I sure as fuck can't do the latter right now, regardless of how "real" my programming skills are. When I read through a paper on the latter topic, or watch a presentation, I can mostly understand what it's about and appreciate the technical prowess, but doing something like that myself would likely be a quick lesson in humility.
If you like what you're doing and you're creating programs that do useful, or at least spectacular things, you're a real programmer.
- TheOtherHobbes 11y agoThe difference is that with microcontrollers, what you see is what you get. The API is defined by the hardware, and most of the time you're just poking numbers into registers. There's nowhere else to go. With web programming a lot of the difficulty is self-inflicted by the industry. To get a web page up you need to know at least two different abstractions (HTML and CSS) which aren't clean or well-designed and have more warts than a skin care clinic. Then, to fix their limitations you need to use js. Then, because there's a lot of repetition in web dev, you have to use a handful of js frameworks, which currently outnumber the stars in the universe, and each has a production half-life of around six months. And then there's the server side. And if you get all of that working you have to run at scale, with adequate security. And can we have it in green and make the logo bigger? So of course it's hard. It's like being trapped in a novel by Kafka written in XML.
- notalaser 11y ago> The difference is that with microcontrollers, what you see is what you get. The API is defined by the hardware, and most of the time you're just poking numbers into registers. There's nowhere else to go. No it's not. In real life, it's fairly rare to write 100% bare-metal applications, and even when you do, you're often writing against some "homegrown" abstraction layer. Sometimes you're expected to write such an abstraction layer, but writing only against the hardware-defined "API" is usually not strategically sound, unless you have a very good reason to assume that the underlying hardware will never change. This is sometimes true for very resource-constrained microcontrollers, and virtually always true for things that have ARM in their name and stronger. Not to mention for embedded, but relatively high-power devices (see e.g. the Linux kernel). Sure, the drivers are hardware-specific, but the applications are usually programmed against their (unitary) interface. I'm not arguing against the rest of what you mention -- I'm painfully disappointed by the neverending spaghetti of technologies that modern web is, and I also think it's largely self-inflicted. However, web dev is treated as much more of a commodity than other branches of programming; left to their own devices, there are a lot of web developers who would produce very good client-side code. Shit like bootstrap isn't there because web developers are incompetent. It's there because much of their job involves churning out support code for products managed by people who know nothing about technology and the WWW, whose quality standards are dubious at best and who value product conformance over performance because they sell perception, not quality.