3 ms·
There are more divides than this. IT support, customer support for client-side software products, infrastructure engineers. The Internet proliferates with web d
by nonameiguess 6y ago
There are more divides than this. IT support, customer support for client-side software products, infrastructure engineers. The Internet proliferates with web devs because it's the Internet and of course that's where they're spending their time, but I think it gives the wrong impression that they really constitute the bulk of people writing software and you absolutely need to know Javascript, HTML, and CSS to do anything. I know next to nothing about those tools and have been getting along fine for quite some time. Software is in everything. Your car's brake system relies on software. Photographs are created from voltage levels of detector cells using software. Everything in the world that requires navigation and isn't driven by a human using a paper map relies on software. Most of this software has no human interface. There is no frontend. It's fully automated. Moreover, the vast infrastructure of the Internet itself is run on software. Data center networks are entirely software-defined. Queueing, routing, delivery, encryption, multiplexing, creation and parsing of packet and frame headers, everything required to get a message from one computer to another, necessary for the Internet to exist at all, happens with software, software that doesn't run in a browser and doesn't have a human interface (other than maybe a debug console).
I get the feeling that is where this vast divide comes from. If you've only ever worked on websites and software that runs in a browser, so much of the heavy lifting is done by libraries and frameworks that you just don't appreciate all that heavy lifting. Some other software engineer wrote the OS for the router, for the switch, for the server, wrote the networking stack, wrote the Javascript engine, wrote the database engine, wrote the filesystem, wrote all of the caching and message queue services you make API calls to. Those people absolutely had to have deep knowledge of computer science to do what they did. Somebody had to write the compilers, assemblers, and interpreters for whatever languages you're programming in. Somebody wrote the browser itself. Somebody wrote the window manager for the browser. By the time you get to writing stuff that runs in a browser, you're so far removed from the silicon that you may as be in another world.
Not to say it's easy or uncomplicated or you deserve scorn from "real" engineers. Writing software for the browser is clearly hard given how terrible much of it is. The real problem is the incentives are all wrong. You make money by getting users addicted, which has nothing to do with the quality, efficiency, or reliability of your software. If you're writing the packet switching system for a major ISP or the SDN control plane for a million-server data center, that is all that matters.