
All Programming is Web Programming - DanielRibeiro
http://www.codinghorror.com/blog/2009/08/all-programming-is-web-programming.html
======
mcknz
How about adding [2009] to the title? If I see a popular blog on HN I assume
it's at least the current year. I probably wouldn't click through to an old
Atwood post.

~~~
__Joker
Never made this comment, but it would be great to add this to posting
guidelines about posting old stuff. Sigh, I feel old.

------
adrusi
The author fails to realize that not all programming is either web programming
or desktop software programming. This is just a subset of programming:
software development. It's reasonable to assume that all software development
will one day be web programming since a web app is much more accessible than
its desktop equivalent. (I personally hope that this is not the case, because
with web apps customers pay a regular fee for the server resources they use
rather than a one time payment for the program itself; web apps are more
expensive for users)

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.

~~~
fleitz
Are they more expensive?

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.

~~~
adrusi
What I was saying is that the reason the payments are monthly for web services
is because they are exactly that _services_ , in addition to products. I, as a
student on a low budget, feel more secure buying a desktop app at a one-time
cost and being personally responsible for my data there than paying a regular
fee forever and knowing that if I stop paying my data could be gone. That's
mostly my irrational fear of commitment to just about anything though. But
more rationally, the server could go down at any time (EC2 outage possibly)
and I could be stuck without my data when I need it. If I know that I'm going
to need my data that I have locally, I can store it on my phone and take it
with me if taking my computer with me isn't feasible.

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.

------
fleitz
The marketplace decides these things not esoteric arguments about polymorphic
inheritance. What probably pisses the debater about "web programmers" is that
they can make huge fortunes from these things where as most "systems
programmers" do not. For the most part no one who writes cheques cares that
someone decreased the cycle count a context switch. It's a poor value prop.
The outlier in this axis is HFT where someone _might_ care and the programmers
fully understand and communicate the value they create.

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.

------
hugh3
As I sit here, waiting for a few thousand CPUs on the astronomy department's
cluster to free up so I can run my code, I say "hah!"

~~~
nikcub
poor analysis like this makes the mistake of observing ones own environment
and then extrapolating it to the whole world.

~~~
mturmon
It would be wiser to say this about the OP, which looks around nearby and
proclaims "All programming is web programming".

~~~
nikcub
I was referring to the OP :)

I realize now that my comment may not have come across properly since I
replied to a nice rebuttal to OP

------
Confusion
All programming is web programming, as much as all industry is consumer goods
industry.

------
karolist
I suppose this is here only because it was mentioned in the comments on HN
somewhere today. I'm finding it odd whenever I see such "targeted" content,
like the articles on swearing. Or when I read a comment and suddenly there's a
blog post in the front page talking about the same thing, but not mentioning
the comment it self.

Some people put too much value in this karma thing I suppose.

------
LuxuryMode
LOL. That dude's comments are hilarious. As someone with a lot of experience
in mobile (Java/Objective-C) I couldn't believe he said web development is
easy. I am just learning web stuff now and I find to be very challenging and
exciting.

------
Abdul321
That's expected from someone who does not know C. Not all programming is
gluing stuff together..

~~~
georgieporgie
Eh? What's special about C that means you don't glue things together? I'm
pretty sure I've glued things together in C before...

~~~
feralchimp
I think his meaning was "exclusively" gluing things together.

~~~
dasil003
And where do you draw the line?

------
eulerfx
There is truth to the original argument by Michael Braude if viewed from the
intended perspective. The problem is that the intended perspective is very
narrow and is in fact outlined in its entirety in the statement itself. (The
web guys he is referring to are not all web guys, just the ones who don't
understand his tenacious albeit very basic list of programming techniques, and
more importantly the ones who copy and paste all their code from MSDN
tutorials). You add a little bit of resentment and pride into the mix and this
is what you get.

------
zubr1768
I would expect such a brilliant, intelligent and _real_ programmer to write
something better than that...

~~~
botj
Was that a joke about Michael or Jeff? I can't tell.

------
CPlatypus
What Jeff apparently meant was that all _application_ programming is web
programming. Because of this unstated (and absurd) assumption, Jeff's critique
fails to address most of Michael's points - whether you agree with those
points or not. By completely ignoring the system-programmer perspective, Jeff
actually manages to be more insulting and apparently clueless than Michael
was.

~~~
drivingmenuts
Someone has managed to necro a two-year old argument. What we said two years
ago may not be the same as what we say now.

~~~
nathanb
He was making a prediction about the future. A prediction which was provably
wrong in 2009 and has become even more wrong today. If there's no
accountability--if we don't look back on the things we write about the future
and learn from them--we will not grow and will continue making inane
predictions.

------
georgieporgie
All of the arguments that state some variant of, " _X_ results in better
programs, because _X_ programmers are better, because _X_ is hard," are
ridiculous. Getting software done is more about stubbornness and drive than it
is about intelligence. I've known a number of very slow, irrational people who
were extremely set on goals, and I've known even more brilliant people who
could rarely see anything through to completion.

------
cq
I don't particularly care for either argument, it just seems like pointless
pandering to different fan bases. Applications will evolve towards any
platform as necessary

~~~
billpatrianakos
Agreed. Comes off as biased fanboy-ism. It's easy to knock web programming
because of how low the barrier to entry is and how any idiot who knows
msqli_connect and a few simple HTML tags usually starts calling themselves a
programmer. But really it takes just as much knowledge and expertise to be a
"web guy". Just understanding how the client browser interacts with the
server, the server to each of its components (the server software, database
software, etc.) and the myriad of languages that need to interact to form a
useful web app can be just as complex as writing software and understanding
compilers, interfaces, classes, objects, methods, etc.

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++.

~~~
dasil003
> _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"._

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.

~~~
nathanb
I think you're attributing to insecurity something which could be equally
attributed to the sort of hubris which engineers are infamous for. To me, my
problem domain is rich and varied, but your problem domain is mostly trivial.
I understand HTML, stylesheets, server-side scripting, and client-side
scripting at an intellectual level. Ergo, all problems in the web programming
arena must be easily comprehended.

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.

~~~
dasil003
Sure, there are many potential reasons. Hubris could also be rooted in
insecurity for that matter. My point has very little to do with the underlying
reasons though.

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.

------
aklofas
Hmm. I would have to disagree with Atwood. Most software development is still
on the desktop. That is to say, there is still a very, very large sector of
chip designers, robotics, medical devices, embedded systems,
aircraft/spacecraft/cars/etc., OSes, hand-held gadgets, blah blah blah that
all write non-javascript, non-ruby stuff.

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.

------
johnnyn
"Atwood's Law: any application that can be written in JavaScript, will
eventually be written in JavaScript."

Nice! Nodejs is very much proving this theory to be correct.

