All Programming is Web Programming

Javascript is the future and Jquery may be the solution. I love how every person has their (mis-)interpretation of Jeffs posts.

“Doesn’t Google kind of confirm this with their new OS?”

Isn’t it great when technology succeeds an is met with broad adoption before it even exists?

Jeff, IMHO this is a bit too radical, at least as for what the net is in 2009.
The web is just another place the programmers and users have access, like cpu silicon, memory cells, disk sectors etc.
It has it pro and cons, and pros are great and make it the ideal place to deploy many type of applications.
But today cons are huge too, and I’ll be glad to be called wrong by you when we will have memory and CPU intensive application like compressors, video encoders, professional photo/graphic/animation/video editors etc running on the web.
Or when the net will be so robust and secure we will keep our main live filesystem (with active files, various virtualized running systems, paging, backup, indexing etc) on a web-based disk service, and when users will prefer working on Google Office rather than on MS or OO office.

Saying that web-programming is for dumb programmers is ridiculous, but not more so than saying that “Pretty soon, all programming will be web programming”.

Yes, web-applications get all the press, and they may have the largest number of everyday users. But in terms of engineering effort, web-apps are but a tiny, TINY fraction of the world’s software development.

Software is EVERYWHERE. It’s in your dishwasher, your car, the time-table displays at bus-stops, your phone. It controls the subway, airplanes, trains, traffic-lights, the Space Shuttle. Some of the most complex software in the world is in medical devices: Advanced 3D x-ray machines, MRI/CAT/PET/CT scanners, Ultrasound machines. Software also controls vast (VAST) numbers of machines the general public never sees, let alone knows about. Examples I’ve personally worked on include wafer-steppers, electron microscopes and sorting machines.

All these examples (which were simply what popped into my head in the last minute or two) are not web-based. Nor can they be, since they are largely tied to specific, custom hardware. On top of all this, there’s a huge duplication of effort involved, since every manufacturer develops their own software.

In short, you may be focused on web-development (and good for you, too!), but don’t underestimate the amount of non-web development happening in the world.

I’m a T-SQL developer so I disagree with most of this article. I am also of the opinion that web apps often suck. It’s amazing how in this dual and quad core world we live in we are forced to click a control/menu/link in a web app and wait anything from 1/4 second to 5 seconds (or more) for the application to respond and do as we ask. I suspect the sluggish all-the-manouverability-of-a-747 performance of many web apps will be with us for a long time. At least desktop apps typically count the response time to user interaction in milliseconds rather than seconds.

Of course all the arguments around access to large user bases and ease of rollout/distribution are true. But if your userbase is only a handful of people, as is often the case in an office environment, then these are less important.

Best troll award T_T
You know how to boost your traffic, do you ?
Lame.

The problem with web apps is simple.

They are a let less comfortable than desktop apps, where everything integrates and can be customized.

Second, data transfer rate/network response time make apps react less snappy than I want and slower than my dedicated desktop PC. This is not going to change soon, and will never reach the same level as remote connections are slower due to the greater distance (speed of light et al.)

But even then you need many servers in many places of the world to reduce the distance (and thereby response time) to your users. This is expensive.

The cloud: do you really trust other companies? Secure encryption means yet another level of significant overhead. So the amount of data should better be small.

Then an Internet connection is required, I don’t have it always when traveling.

A big advantage is that web apps can be accessed from anywhere (if you have an Internet-connection) and that they are cross-platform.

But given the limitations I prefer desktop apps with network capability. Web apps have a long way to go until they offer the same user experience as desktop apps.

Given all these points I don’t think web apps are primarily for simple data entry or query applications. For this to improve, really major investments are necessary (but latency will always be worse compared to local apps).

First, paper as a means for data storage; Now, all programming should be web programming? Jeff, why not just post what you mean: “low level languages scare me, so why not pretend I ‘prefer’ high level concepts (as opposed to being unable to actually use anything with less hand holding).”

People implementing photoshop in javascript remind me of people building replica models out of matchsticks - sure, it took some skill and looks cool, but I’d prefer to spend my money on the well made model with full functionality.

Well, you’ve lost a reader. This is exactly the type of bullshit rhetoric I thought I was getting away from by reading your blog…I guess everything’s a silly language war in the end though, eh?

@Jeff Atwood

“There’s nothing sadder, for my money, than code that dies unknown and unloved.”

For some reason, this immediately made me picture an Island of Misfit Code.

On a side note…

My CAPTCHA: aortas special

“Why yes, I do consider my aorta special, thank you very much!”

“The reason most people want to program for the web is that they’re not smart enough to do anything else.”

I don’t think that the platform would defy what’s technically ‘hard’ and ‘easy’. I think the people who build webapps like Google Analytics, Magento Ecommerce System, Joomla CMS or say deviantart.com would be less of a coders than people who build desktop accounting programs.

many interesting points of view. but in any case it is all about 50/50. there are brilliant developers among web developers as well as the desktop ones.

Almost every electronic device in the world has a microcontroller in it, and chances are that microcontroller’s code was written in C.

It’s not all about your high level GUIs. Someone has to make the machines work, and they’re sure as hell not going to do it with javascript.

“Pretty soon, all statements about the future will be meaningless generalizations.”

Wake up! This has already happened.

Where is Jeff?

He’s gone DARK!!!

I respect this blog, so suck it up and say “I guess I wasn’t thinking that through when i said that” or “The internet is full of blog posters with random opinions.”

BUT DON’T GO DARK!

A (reasonably) good comparison of usability of desktop applications and web applications would be “Outlook” and “Outlook Web Access”. We have both available on our company, but no one uses the “Web Access” as long as the desktop version is available.

Of course having “Outlook Web Access” available is a must to have access to mails from outside the office - I am trying to make a point by comparing usability, speed and reliability.

So, even if a web application version exists, I do not think desktop version of Outlook is going to dissappear anytime soon.

Normally I like to read your blog even when it is one sided…It’s your opinion that we are reading after all. But Atwood’s Law? Isn’t that a bit too much?

"As a software developer, I am happiest writing software that gets used."
Don’t think thats right either…My client wouldnt be paying me a dime if we were writing software that he never used.

QUOTE"As a software developer, I am happiest writing software that gets used."
Don’t think thats right either…My client wouldnt be paying me a dime if we were writing software that he never used./QUOTE

what? what does that have to do with jeff’s statement?

The web is a conglomeration of really, really, bad technologies.

HTML - Super verbose. It was one of the earliest technologies of the web, and feasible at best for writing documents. For documents, HTML doesn’t compose well at all (there’s no client-side includes, the original intent for frames and iframes are socially deprecated). For applications, it’s really bad, because the UI has center stage over everything else. You include JS from the HTML? No. The app is the JS… they got it backwards!

From a cultural point of view, HTML is standardized and pretty well understood. But the commonplace rendering malformatted HTML without even noting it as an error was unfortunate. Silent errors are the most deadly.

CSS - An underpowered toy extension to HTML. It didn’t make sense to give it its own syntax. The layout mechanisms are unbearable! Every good UI language has more than float and absolute positioning!

Javscript - JS is a nice language. But it’s not smart to use such a high level language for the bottom of your stack. Javascript should have been a bytecode language with a well-specified virtual machine. That way, you are free to use whatever language you want to write code for your web sites. A VM is also going to have a lot less room for fucking up the implementation (looking at you IE6…). It could run faster, so that when I inevitably DO have to create an abstraction layer to work out discrepancies between competing browsers, it doesn’t slow to a crawl.

Javascript, again, should have better composability. Why can’t I import a script from a script if it has a dependency? Why can’t I grab the text of some local HTML file on my server to stuff into a box? It should also have had all the nice things that are proposed in HTML6 that seemed too dangerous in the 1990’s to let a web browser do (like write to files).

The Internet is held together by fucking duct tape.

I’ve thought about this some more, and come to the shocking conclusion that Jeff is still wrong here. Even excluding all embeded software, and all other software that could never be web software, I think the correct conclusion should be:

Pretty soon, all web programming will become desktop programming. If you don’t think that’s a cause for celebration for the average working programmer, then maybe you should find another profession.

The desktop is the very embodiment of doing the most sensible thing that could possibly work. If that scares you – if that sounds too difficult for you – then I humbly submit that you have no business being a programmer.

In the future the web will only be used as a means of delivering content to desktop applications. In fact it’s already happening - consider Twitter, a web app that nobody uses, instead they use desktop apps to read, post and search the twitter content. Everyone uses apps like Outlook to read their gmail, they use RSS aggregators to read their Google Reader feeds, etc. Why? Because the desktop has much better performance, usability, and most importantly customization, than any web application can. Just think how good superuser would be if it was running on the desktop, and you could change the awful color scheme.

Of course, not every web app will be replaced with a desktop app, only an idiot would say that, but any application that could be run from a desktop, but isn’t will be dinosaurs, waiting for something more adaptable to replace them.

Phen’s Law: any application that is written in JavaScript, will eventually be written in something better.

–

Captcha: Kissinger’s fondant.