All Programming is Web Programming
codinghorror.com
codinghorror.com
But software development is far from being the majority of programming, most programs are written by people from mathematical and science fields. Since these aren't distributed, it's easy to forget that they even exist. These academic programs are frequently replicated many times by other organizations because if one lab publishes the results of a new study, other labs will want to verify them, and they're not going to use the same code, that would hardly be a thorough verification.
But I don't think that even all software development will become web development. I wasn't round back then, but I'm guessing that people said the same thing about command line programs becoming GUI programs back when GUIs came out, and yet I use vim, tmux, git, countless REPLS and many other command line programs.
What is the cost in time of supporting a desktop app? What is the cost of losing all your data because you failed to put in place a backup solution? What is the cost of having inaccessible data because it's silo'd on a desktop somewhere?
People don't pay for the server resources, they pay for the value added by packaging a piece of software together with hardware and providing support services (sys admins, devops, etc) to keep that infrastructure running 24/7. They also pay for the expertise that keeps that company with great engineers instead of mediocre ones. Server infrastructure is simply the most identifiable cost to a developer, but is not at all what people pay for.
They pay for peace of mind knowing that really qualified people are managing their infrastructure and that they don't have to worry about it so they can focus on more important tasks like running their lives and businesses. If you value your time SaaS is generally a great deal (especially if you're not extremely knowledgable about IT/IS).
Same thing with the app store, you're not paying for the infrastructure, you're paying to access a market segment where people open their wallets to buy shiny things and are willing to pay more for quality.
And so maybe web apps make you pay more for more. What if I'm perfectly fine with what I used to have and don't want more. I'm paying more for the same if I never plan on using the service anywhere but on machines that I can easily keep synched myself.
Yes, someone can position faster context switches as something they care about and the person who does that will get cut a cheque, and that's basically what "web programmers" do. We market the incredibly difficult work of "systems programmers". The closer to the metal you are the further you are down the food chain.
Is Linux harder to program than early incantations of Facebook? Probably. Is Zuck going to make more money from his PHP webapp than Linus from will from his C Kernel? Probably.
I realize now that my comment may not have come across properly since I replied to a nice rebuttal to OP
Some people put too much value in this karma thing I suppose.
Michael only had two points: web programming sucks, and web programmers suck. Jeff dismissed the latter in favor of tackling the former, and I think he did rather well. I could see designers— instead of paying $500 for Photoshop— pay $15/mo to use an online editing service that stores and backs up their photos for them (or syncs with Dropbox). I could see programmers paying a monthly fee to use an online IDE that builds and runs their software against an array of OSes and supports GitHub/Bitbucket. Users are already throwing their music to "the cloud" with services like Grooveshark and Pandora. These are the kind of things Jeff was talking about: as the web becomes more popular, and the cost of processing power and storage continues to fall, many things we consider too heavy for the web will start to leak in.
At least, that was my take on it.
I don't like how the argument devolves into "this stuff I do is complicated so I'm smarter and your stuff is simple so you're dumb". I'm a "web guy" and I had a programmer call me yesterday to help him with a simple Wordpress upgrade, SSL certificate, and an upgrade to phpMyAdmin.
Software can be easy or hard just like web apps. I think maybe the big difference is that web apps can get wider exposure more easily than desktop software as all you need is a browser to run it so they're just more visible. There are plenty of crappy desktop software apps and I make them all the time when I play with C++.
I (a systems programmer) can write web code just as well as a good web programmer can write systems code: badly. That web frameworks and infrastructure tend to be more forgiving than bare hardware and system architecture is likely why the stereotype of the incompetent web programmer has come about, but the quality of a good web programmer is roughly equivalent to the quality of a good mobile developer or a good systems programmer or a good desktop application programmer.
If your kernel code is broken: kernel dumps stack, panics, and reboots.
Those lucky web guys :)
This itself is a microcosm of the attitude that is espoused by a certain insecure subset of techies where someone who doesn't understand computers is an idiot.
To me this is a clear indicator of someone whose self-esteem is tied up in identifying as an intelligent person, but who in reality is not nearly as smart as they think.
Intelligence can be applied to anything. Sure, system programming gives a nice barrier to entry such that someone with an 75 IQ will probably never even get something to compile, but mostly it's just curiosity plus time and effort applied to the craft. Brain power can be applied to anything whether it be programming, art, sales, sports, management, or investing.
The bottom line is all programming is limited by the capabilities of human intelligence, and all areas of programming are ripe for development by the smartest minds we can muster. Someone throwing stones at one area or another just to protect their self image is a simpleton as far as I'm concerned.
To a web programmer, however, the web development field is full of interesting, challenging, or frustrating issues such as incomplete or inconsistent standards implementation between browsers, supporting legacy browsers, applying solid visual design principles while also applying solid software engineering principles, dealing with a single-threaded execution environment for fundamentally parallel operations, falling back gracefully to older technologies when newer ones aren't installed on the client side...and so on.
So the systems programmer who looks at web programming and says "pft, trivial. A solved problem" is not necessarily exposing his own insecurity, merely the blinders that he is wearing to the depth and breadth of problems which do not interest him.
The point is all programming has big challenges, and the list you cite for web programming doesn't really do it justice. Web programming encompasses all the toughest issues of network and scalable computing, a set of theoretically difficult problems as deep as anything in systems programming.
This website seems to be focused around the startup-website culture, so maybe this isn't the best crowd to reality-check. Sometimes a different perspective is useful, though.
As for Atwoods Law, that's pretty ridiculous.
Nice! Nodejs is very much proving this theory to be correct.