Jeff,
Remember in the Stackoverflow podcast when Joel said that it is no longer his place to single out some spectacularly bad idea of a new start up and criticize it on his now super popular blog? – because it just looks mean?
Mean or not I probably wouldn’t have commented excepti, I think your edits leave a false impression of this guy’s actual stance.
You are taking some guy’s one-off personal rant, pulling out of its original context and shining a spotlight on it. I hope he takes it in stide.
It’s amazing the amount of punditry these days that is built on the presumption that every software user is a consumer, and every software application is a toy.
Jesus christ do you people not have anything better to do than write blog posts about how you know what’s coming better than anybody else? Anybody else remember when people just shut their mouths and wrote code?
Web Programming has long stopped being just about putting together a HTML form and processing it with a bunch of dynamic server-side scripts before dumping it into database.
Haven’t you heard about the recommendation system for Netflix’s website that took years of intense work to improve the effectiveness by mere 10%.
yeah right “web guys” don’t know shit, except how to administrate iis, apache, understand css, javascript, xml, sql mysql, php asp.net, c#, vb, sql functions, stored procedures, cursors, classes, act as a dba, sql injection, dns, ruby on rails, ecommerce, ssl, encryption, seo, oauth, mx records while paying attention to load times, logfiles, traffic patterns, also manage and track advertising campaigns while marketing the whole ball of wax - sure any kid can go put up a web page or make a blog, pretty big difference from above.
feel free to add some more “things” i missed in the above statement - but what’s funny is your not born knowing everything u dumb ass Michael, you have to play with everything and figure it out, true many people will never understand it all - probably get filthy rich from their web 2.0 idea before they need to learn it all, did u miss out and that’s why your so angry? Don’t be angry - be happy for us rich “Web Guys” driving our bmw’s with hot girls we could never otherwise hook up with - if it wasn’t for our silly web pages…
Then go back to developping repositories, interfaces, unit testable code that fetches data from Amazon, MySQL, whatHaveYouSQL or flat file. Web programmers don`t know the paradigm, give me a break.
Right tool for the right job. Never gets old. Are there some web pages/web sites that are written by bad programmers? Absolutely. Would they have been written better in C? Would they have even gotten done if they required the skills of a good programmer?
Its not that there are fewer good programmers, its just that the percentage greatly shrinks as it takes less skill to get the job done. If you consider web pages/apps to be software, there’s just a hell of a lot more software out there than there used to be. If every piece of software required the skill of performing the difficult task of building a compiler or managing shared state concurrency, there would be a lot less software out there, a lot less choice, and a lot more bugs.
As for the idea that there are no web apps out there requiring strong programming/engineering skills well… that doesn’t even deserve a real response.
Yes, a whole bunch of new development projects today target the web. So? “Yaaay, it’s increased so much”… from ~zero.
Besides, you have a few classes of web applications:
Applications that try to recreate desktop apps: Office clones, etc. I’d much rather do my stuff locally than have Google keep the documents with bank details and other sensitive information.
Social apps. Which can bite me.
Old “app-less” web stuff, now Web 2.0-ized and hence an app. Yes, your “homepage” is now a “blog”. What progress.
No, the web is, as it is, a steaming pile of shit from a programming standpoint. The languages of the day are generally awful (PHP, etc), the coders awful, and the pace just hilarious - do we really need a new Myspace/Facebook/what-have-you clone every other year? I’m not against progress, but I’m against progress for progress’ sake - not for the sake of genuine improvement.
And your argument about “OOH FAME LOOK AT ME LOOK AT ME I AM WRITING A WEB APP!”… ahem. I’m happy if the stuff I develop is useful to people - however, I do this as a hobby. If I did it as a job, I still wouldn’t care, as my paycheck would get paid all the same.
Web technologies are definitely not weaker than desktop technologies, you can write a web app in .net, then move the libraries to another project and use them for a desktop application.
Also the newer versions of PHP and a decent framework provide you enough power to do anything you need with all the complexity of the .net and java counterparts, even if most of the php programmers use it like noobs.
I think the exact opposite of mr Braude. Web apps are not crappy because stupid people are making them, but because web programming is harder than any other kind and very few people can do it right.
Most web apps are being used by way more users than most desktop apps. They are being used by people who have no training in the app, who do unexpected things. The clients are stateless and the app is running on a mix of hardware and services spread out over a network, often with constant 24/7/365 use. This is hard as heck to cope with.
No API is changing more rapidly than the hodgepodge of technologies that make up the web. The clients are changing faster than the APIs and support them slightly differently. Making something stable on top of that is very difficult.
Writing device drivers, desktop apps, mainframe systems or whatever else, is a total walk in the park compared to writing web apps.
Stable, documented API’s that often haven’t changed since the 80s, often just one user at a time running one instance on one single machine, uptimes measured in hours, not years. Hardly a challenge!
Web apps is for Real Men, desktops and device drivers is for women and children. The fact that most web apps suck just proves it.
For goodness sakes, there are lots of types of applications that can’t be on the web. Embedded code? in real low cost 8 bit microprocessors with no web connection, TCP stack or anything else. Would you want your car ignition system to say “please wait, downloading updates” when you press the accelerator?
How about desktop apps that aren’t allowed to connect to the web? Why not - maybe in a miliary secure environment, a test lab, remote location.
Secure applications - ATMs, all those COBOL apps in devices you use every day, etc.
Go back and read Joel’s Five Worlds arguments. Not everyone who programs does so for desktop pentium processors running Windows on a network!
Michael Braude makes another mistake that see a lot of developers and, particularly, development managers make. He uses waterfall and agile (and I assume “Design Patterns”) like holy objects that control developers and make development possible. What he and many others fail to realize that these development practices and patterns are not prescriptions, but rather observations and formalizations of what developers have been doing since the first vacuum tubes were hooked together to solve a simple math problem.
This attitude is what leads Braude to see web development as something to be thwarted. Braude and his like see water flowing through a groove in a rock and think the water is directed by the groove. In reality, the water cut the groove because that is where it flows naturally. Now Braude is seeing the water flow in a new direction and thinks that it has gone off course. He and many others would like to redirect the flow back to where he thinks it should be.
Web application and desktop application are not opposites, nor mutually exclusive. Desktop application and HTML application are closer to opposites. The desktop web application is the real future of development. HTML pages aren’t going away, JavaScript applications aren’t either, but you’ll never see 90% of users authoring their books, writing their code, calculating their balance sheets, doing their financial predictions, etc. in Firefox. And don’t bother mentioning that you “can”. Doesn’t mean it’s any fun or makes a bit of sense.
Just when you think desktop applications are gone, they’ll be here again. The common view is to compare browser and desktop code in the way you’d compare automobiles and horses. But really you should compare in the way you’d compare semi-trucks and cargo trains.
I have to chime in on the embedded arena too. Web applications will probably replace desktop applications, but most of the software we encounter in our lives isn’t running on the desktop. You probably used your microwave, drove your car and stopped at several stop lights this morning. None of those are going to be running on a webserver any time soon.