Hacker News new | past | comments | ask | show | jobs | submit login
All Programming is Web Programming (codinghorror.com)
115 points by DanielRibeiro on Nov 11, 2011 | hide | past | favorite | 36 comments



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.


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


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.


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.


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.


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.


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!"


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


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


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


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


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.


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.


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


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


I don't think it's anything about C per-se but more about how most people use C (etc).


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


And where do you draw the line?


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.


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


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


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.


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

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.


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.


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.


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.


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


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


Indeed.

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 web application is broken: something looks wrong, hit refresh.

If your kernel code is broken: kernel dumps stack, panics, and reboots.

Those lucky web guys :)


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


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.


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.


Nice driveby downvote. How about a little argument?


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.


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




Consider applying for YC's Spring batch! Applications are open till Feb 11.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: