Nerdy tidbits from my life as a software engineer

Monday, August 17, 2009

Re: All Programming is Web Programming

Jeff Atwood’s tirade against me is at least partially justified.  I knew that my rant against web-development was inflammatory when I posted it.  But in his diatribe, he omits a few important details from my post and then makes the same sort of sweeping generalizations that he’s criticizing me for making.

First, while he takes a lengthily quote from my article, he happily omits this line where I acknowledge that, obviously, there are smart people who develop web pages:

OK, so that’s not an entirely fair accusation to make.  Of course there are smart people who like to work on the web, and who find challenging things about it.

The premise for my rant is that this is not a challenging medium for me.  I’m happy that other people find this environment challenging.  To me it’s tedious and frustrating.  Call me old-fashioned and out-dated, but I much prefer to develop in my full-featured desktop environment – the one that

Computer Science [has] spent the last forty years making … as powerful as possible.[1]

Is it so bad for me to lament this movement backwards towards simpler technologies?  Forty years worth of research and development have evolved to create an environment where we get to focus on things that matter (such as, what is the best way to architect a program so that it accomplishes our goals) and less on things that don’t (such as, how can I get this to work in a webpage).  For me, this is a much more challenging problem to solve.

[Note that by the term “web development”, I am specifically referring to the presentation layer of a webpage – not the back-end services that do all sorts of complex stuff.  That’s not web-development – that’s just normal server-side development, and it encompasses all platforms and presentation layers, so it has nothing to do with the web, specifically]

Next, Jeff goes on to rant about why the movement to the web makes perfect business sense (which I never disagreed with), and continues by saying that he does web-dev because it allows him to write software that gets used (which is another reason that I work for Microsoft).  I understand why the world is moving in this direction; I just wish they were using more elegant technologies to do it.

But my primary complaint is more due to the fact that the web-world is filled with terrible software engineers.  I know that’s a dangerous accusation to make, but look: I taught myself DHTML when I was 15 with a used book that my father gave me – and I was quite good at it.  We all know this stuff is easier than C++/C#/Java development – as politically incorrect as that may be to say – because it requires far less training to be effective at it and because there is no need to understand the underlying technologies and principles that they are built on.  That doesn’t mean there aren’t brilliant people who work in this space, or that there aren’t amazing things being done on the web, or that all of the people who work with these technologies are dumb.  But if Jeff can make laws, so can I:

Braude’s Law: The easier it is to learn a given technology, the larger the percentage of bad engineers who will work with it.

Can we really dispute this?  Isn’t it self-evident?  Yes, there are exceptions; but clearly, it takes more training and understanding to be a C++ guru than a DHTML guru.  And because I want to work with people who can challenge me and who I can learn from, I choose to work with technologies where, crass as it may be to say, the bar is higher.

But Jeff acknowledges that this is true:

Web programming is far from perfect. It's downright kludgy. It's true that any J. Random Coder can plop out a terrible web application, and 99% of web applications are absolute crap. But this also means the truly brilliant programmers are now getting their code in front of hundreds, thousands, maybe even millions of users that they would have had absolutely no hope of reaching pre-web. There's nothing sadder, for my money, than code that dies unknown and unloved. Recasting software into web applications empowers programmers to get their software in front of someone, somewhere. Even if it sucks.

I am not willing to sacrifice the quality of my development environment or the intelligence of my coworkers just so that I can get my code in front of people.  He may be happiest writing programs that get used; but I am happiest writing elegant solutions to difficult problems with intelligent people.  And that’s why, so long as the web is built on DHTML, I will never be a web-guy.  It’s also why I work for Microsoft: here, I get to write applications using sophisticated technologies (many of which are invented here) to develop quality software that also gets in front of millions of people.

Lots of people have pointed out that much of the DHTML stuff we see on the web these days is in fact auto-generated using more sophisticated technologies.  These I have less of a problem working with.  But what does it say about the quality of a development environment that we have to go out of our way to hide it from us?  Ultimately, everything is still built on technologies that, as Jeff admits, suck.

Lastly, I disagree with Jeff’s bad news:

I hate to have to be the one to break the bad news to Michael, but for an increasingly large percentage of users, the desktop application is already dead. Most desktop applications typical users need have been replaced by web applications for years now. And more are replaced every day, as web browsers evolve to become more robust, more capable, more powerful.

You hope everything doesn't "move to the web"? Wake the hell up! It's already happened!

Sure, lots of traditional desktop applications have moved to the web.  But I’ve got some bad news for Jeff: not all programming is web programming, and as much as he may wish it to be true, it clearly hasn’t happened already.

Want an obvious example?  How about iTunes?  Here’s a desktop application that hundreds of millions of people are using, so it’s clearly not a niche.  Can we replace it with a web-app?  Theoretically we probably could (we could also write it in punch cards or re-write it in assembly).  But to do that, we would need to not only replicate the iTunes application in a web browser using JavaScript, we would also need to provide a platform-agnostic way for this web-app to talk to an iPod via a web browser.  Perhaps this is possible, but let’s ask ourselves a question: is there any tangible advantage of going down this path?  Are we really gaining anything, or are we just showing off how good we are at hacking a square peg into a round hole?

And we can say the same thing about just about every prominent desktop application that, again, theoretically could be written in JavaScript.  Do we really want a web-based version of Photoshop?  Would we honestly prefer to develop applications in a in a web browser instead of Visual Studio or Eclipse?  Would it please you more to design a PowerPoint presentation in the comfy-confines of Firefox?  Why are we so intent on short-changing our user experience for the sake of cross-platform convenience?  What, so that we don’t need Windows any more – is that really what all of this is about?

But Jeff acknowledges as much when he writes:

Writing Photoshop, Word, or Excel in JavaScript makes zero engineering sense, but it’s inevitable.

This may be one thing that we agree on, but it doesn’t make me any happier.  As much as I want everybody to use the products from the company that I work for, I am more interested in ensuring that our user-experience is as fantastic as it can possibly be.  So it saddens me to watch us all happily trade down just so that we can get away from Windows.  Truthfully, I chalk this gleeful movement up to my employer’s inability to continue creating exciting products and our lack of an app-store for Windows.  But I’ve opined about that somewhere else.

While the web-movement is obviously here to stay and accelerate, I am not convinced that all programming will be web programming.  A large number of things will have to change before that can happen.  And if it does come true that all programming becomes this DHTML mess that we find ourselves in right now, then I will gladly change professions – or at least say hello to middle-management.


Anonymous said...

This is exactly one of the reasons so many people took/take shots at VB: when you make programming more accessible, more people who have no business being near a text editor writing code are going to make bad things.

Patrick said...

So basically you filled in the gaps that you should have filled in the first time around. It looks to me like you got a new one torn by people smarter than you and you are just now saying "well I didn't mean it THAT way".

Way to gain respect.

Anonymous said...


I would hazard to say that This guy Michael is WAAAY smarter than Jeff. If you recall, Jeff is the one who had (and still has) considerable trouble with concepts like O notation, the meaning of NP complete, etc.

Jeff can apparently write sql and ASP, and drive ads for his blog and hooked up with Spolsky, but I am consistently amazed at his lack of what I would call traditional CS intelligence/experience/skills. But then again, I am firmly in the camp of system level and desktop apps - I am not a web guy.

Anonymous said...

Funny, the poster above beat me to saying this but Mr. Braude, tho a ranter, is smarter than Jeff by far.

One of the few stackoverflow podcasts I listened to where they were talking about Test Driven Development and he clearly didn't know what it was. Now, don't get me wrong it is OK to not know something, that's what books, blogs, and wikipedia are there for, but for pete's sake don't be on a podcast trying to have an intelligent discussion about it.

Now I side with Mr. Braude and it's not cuz I'm a desktop developer. As a matter of fact I am a professional web developer and have always been. However, I am all about learning solid practices and being versatile in an industry that is very volatile, as opposed "wishing" for the browser to be the future. When you gamble with stuff like that you'll get stock market treatment--the industry will **** you.

I bet his SQL is shitty too. I'm not sure how this guy got to hang out with Spolsky. I'm no CS snob but Jeff needs to take his blog down and stop trying to come off as an expert, cuz he proves to us he's not.

Anonymous said...

What I think we're seeing is the old "Hacker vs Engineer" argument, rebuilt into a new framework.

Michael is approaching the system like an engineer, Jeff more like a hacker.

Anonymous said...

More like noob vs. pro. Let's say something was wrong with your care and you decided to have someone else fix it: would you rather have some "hacker" hack away at it until it is fixed, or a professional that has knowledge about your car diagnose and fix the problem?

It's always fun to see people brand themselves as a hacker and give others the impression that they're also an expert.

Flavien said...

It's too bad you work for Microsoft, because your employer would strongly disagree with:

"He may be happiest writing programs that get used; but I am happiest writing elegant solutions to difficult problems with intelligent people"

A software that is not used is a software that is not profitable.

If your really like solving problems for the sake of solving problems, then you chose the wrong path with software industry, you belong to research. The goal of any software company is making money, not solving problems. Plus solving problems costs money (your pay basically).

Michael J. Braude said...

@Flavian - You are wrong: my employer values quality engineers above just about everything else. You may not like Microsoft, but the people who work here are among the best in the world.

I don't like solving problems for the sake of solving problems. By working at Microsoft, I get to work with exciting and challenging technologies to write programs that are used by millions of people that are also profitable.

It's difficult to find companies these days that are developing commercial desktop applications using C#, but that's exactly what I get to do here.

Flavien said...

Your primarily function at Microsoft is helping generating income, not safisfying your thirst of problem solving. Now I agree it's good Microsoft allows you to do both.

The point is that if it was possible to write a web application that attracts more users than the client application you're working on (with the same resources, and the same development time), Microsoft would go for it, because more users means more income. And you must admit it is usually very easy for a web application to attact more users than the equivalent desktop application.

"Sure, lots of traditional desktop applications have moved to the web. But I’ve got some bad news for Jeff: not all programming is web programming, and as much as he may wish it to be true, it clearly hasn’t happened already."

It's not going to be all web or all desktop, but a balance will be reached. 10 years ago, nobody would think office software applications would ever leave the desktop side of the balance. Today, Google has Google Docs, and Microsoft is following the same path with Office 2010, very much driven by business reasons. Whether it's challenging, or whether it makes engeneering sense is totally irrelevant here.

By the way, I DO like Microsoft.

madfinn said...

To the two anonymous posters...

So knowing about computer science concepts makes you smarter than someone who doesn't?

I don't think so. It makes you more KNOWLEDGEABLE about programming. It says nothing about how smart you are.

pjonesdotca said...

This whole debate reminds me of what I imagine the whole "Big Iron" vs "Personal Computer" flamewars must have been like.

I have to imagine it because it was pre-web 1.0

Shourya Sarcar said...

Love Braude’s Law: The easier it is to learn a given technology ...

Remember the song, Video killed the Radio Star ;-)

If you look at "web" programming, there are only two primary complexities.
1/Scaling and performance
2/Browser agnostic development.

Out of these #2 is something that we pretty much built ourselves, such as by creating and marketing non-standard browsers.

That leaves us with scaling. For example, there is nothing revolutionary about Twitter or Facebook in CS terms, except the fact that the whole architecture can be scaled. Massively scaled.
(and that is non-trivial)

I hear a lot of people go, what about web-algorithms, like say Google's Page Rank or Amazon/Netflix Recommendation algorithms. What about them ? There is nothing webby about them. For all you care, those algorithms could perfectly run off a desktop working environment.

Nerevarine said...

Maybe, Braude's law is wrong. Or it is just representing the ubiquitous form of *machismo*: only weaks and inferior people use technologies, tough guys can do things with bare hands.

I do not argue that the Uebermenschen typing "copy con program.exe" (or even "copy con") are strong engineers but - on the other side - there is some alarming with the society worshiping those questionable skills.

Anonymous said...

Of course, if you look at web programming from a CS background, it's undeniably much dumber, but dumbing things down to place power in the hands of idiots is also the whole point of programming.

In a way, thinking about technology today in terms of pointers and algorithms could be considered stupid, inadequate. The focus has shifted. The complexity lies elsewhere. You're like a physicist looking down on chemists, looking down on biologists. Perhaps I'm dumb, but I've always found the less precise sciences to be the most stimulating.

I have a lot of respect for those of you, who still hold on to these old academic standards that were once imposed on me, but I'm glad I moved on. You can only build so much when you stand so close to the machine.

Kai Carver said...

A possible counter-example to Braude’s Law, "The easier it is to learn a given technology, the larger the percentage of bad engineers who will work with it", in another domain:

In the early days of cars, driving a car was a difficult and dangerous activity, engaged in primarily by enthusiasts.

Now driving has been made relatively safe and easy for all, and the proportion of good and safe drivers is probably higher.

The reason for this is that advances in car technology led to a social framework for mass driving in a safe way, and drivers were able to focus on important matters (getting from A to B, rather than throttles or what have you).

I guess it comes down to the question: when you are a programmer, are you a driver or a mechanic?

Anonymous said...

Jeff Atwood is an ignorant hack. I used to enjoy his blog, but he seems to have jumped the shark ever since he started blogging full time. He lost a lot of credibility in my eyes after essentially arguing in one SO podcast that non-English speaking programmers suck, and that they are not the audience SO is targeting.

It is also interesting to see his stubborness in action in the comments section.

Anonymous said...

"He lost a lot of credibility in my eyes after essentially arguing in one SO podcast that non-English speaking programmers suck, and that they are not the audience SO is targeting."

Just to clarify, if you listen to the podcast, he seems to say that 1. non-English programmers suck, and that 2. SO is not trying to attact programmers who suck. There are perfectly good reasons to only target English. Jeff is just too ignorant to acknowledge that there are plenty of programmers who prefer to discuss programming in their native tongue. Joel obviously gets this and shows that he's been around the block quite a bit and actually knows what he is talking about.

Anonymous said...

The $64.000 question is when the power of the desktop API will be available to web development

Jen said...

I replied on Jeff's blog and will do the same here. Putting up a web page != web development. The presentation layer is the frosting on the application development. I don't find it to be the challenging part either (unless you are talking about CSS geting along with IE)...but it can be the fun part. Web application development is the guts of the thing...what makes it WORK, including the back end. The presentation layer is just that...presentation. Web programmers do either the backend with a designer doing the presentation...or they do the whole thing. Regardless, to put forth that others who engage in this are stupid or lazy in order to make your point that YOU don't enjoy it (and yes I read the caveat that said not ALL were) is rude and absurd.

Andrew said...

I'm not much for ideological argument, so I'm just going to point out where I took offense to your post, and your response only dug the hole deeper--you're comparing domain programming, which is equally prevalent in web app development, with the presentation layer. Do your brilliant C++ programs, rife with multiple inheritence and abstract classes and all the like that supposedly elevate desktop app development above web development, have no presentation? Of course they do, just the same as my web apps are largely seen through an HTML, CSS, and JavaScript interface, rendered in a web browser.

You're comparing apples and oranges. The web apps I write do have Ajax interfaces powered by JavaScript and HTML, but that's the presentation. Developing a web application requires writing a lot of server side code, which contrary to your (re)definition, is indeed web application development. Even relatively unloved programming languages like PHP have many of the features you're so fond of, and if you're using a web app framework, you don't have to worry about many of the tediums of web development, and just focus on the problem at hand. A framework is not a nice GUI IDE, but it serves the same purpose--making your job easier. No, web app development isn't as seamless of an experience, but you're simply attacking the wrong thing. Server-side development is web application development. Ajax interfaces are only the tip of the iceberg.

Anonymous said...

He is not redefining "web development", at least not as commonly referred by the vast majority of working programmers. The fact is that when people say "web developer", they usually refer to a programmer who works only on the presentation layer. This is reflected in the job ads: it is very rare to find someone with the title "web developer" also working on back-end stuff.

Andrew said...

@Anonymous I disagree. There are many facets to web development, back-end, front-end, and interface development being parts of it. Web development doesn't generally refer to anything in particular, it's usually preceded with "back-end" or something of the like.

FYI, I took a peek at some job listings using the keyword web development, and every single one of the jobs I looked at involved Java, ASP.NET, or PHP.

Anna Baur said...
This post has been removed by the author.
AdamTheLawyer said...

"Do we really want a web-based version of Photoshop?"

Adobe seems to think so, as they've replaced their low-end photo editor with (you guessed it):

It's not everything Photoshop is by a long shot, but it ain't bad.

Michael J. Braude said...

@AdamTheLawyer - Note that what they have there is written in flash - not DHTML =)

HB said...

> Braude’s Law: The easier it is to learn a given technology, the larger the percentage of bad engineers who will work with it.

Absolutely true, and that's a major problem that many "web guys" have with PHP. The bar to entry is lower than certain other server-side languages, so there is more bad code out there. But that doesn't make the language itself better or worse, it just makes good coding practices that much more important.

To avoid specific language comparisons, say it takes the average coder 5 years of full-time schooling and 5 more of practical application to become proficient in language W. It takes the average coder only 6 months to become equally proficient in language Z. As a result, W programmers tend to be fantastic programmers "out of the box", while a much smaller percentage of Z programmers reach that same level of competency.

If you have 100 coders who know W and 100 who know Z, obviously you'll get better apps from the W crowd. But because the bar to entry is so much lower for Z, the Z pool is going to be A LOT bigger, as will the amount of quality code that comes out of that pool. Smaller percentage, much bigger raw amount.

> The $64.000 question is when the power of the desktop API will be available to web development

It already is available. As for when it will be USED, that depends when Appcelerator fleshes out the documentation for Titanium so their pool can start growing ;)

> This is reflected in the job ads: it is very rare to find someone with the title "web developer" also working on back-end stuff.

Is it? Most or all of the web dev ads I've seen list MySQL and PHP/ASP/etc in addition to the front end HTML/CSS/JS stuff. I think "web designer" would be more geared toward front end, but I guess usage varies wildly.

> Adobe seems to think so, as they've replaced their low-end photo editor with (you guessed it):

Also seems to think you can not only put Photoshop in a browser, but Illustrator, After Effects, and a host of other programs. I don't use the site much myself, but surely if someone's going to lead that particular revolution they're miles ahead of everyone else.

Mark Hendrickson said...

iTunes is actually the first desktop app I'd like to see ported to the browser. My music everywhere, easier sharing with other people, and no need to back up MP3s or migrate them to new computers.

Michael J. Braude said...

@Mark Hendrickson - Not to took my own horn too much (or get insanely off-topic), but you should check out the Zune + Zune Pass....especially the new HD. It basically does just that, except, honest to God, the Zune software is some of the best stuff MSFT has put out in a very, very long time.

It may be possible to put the zune software online, but I can't imagine it being done in Javascript. Silverlight or Flash would come close.

My problem with plugin languages as a 'web-technology' is that they're really not web-devs. We're just embedding one hosting environment inside of a hosting environment. So why bother with the browser at all?

cd said...

People still seem to be confusing web applications and their backend code with front end html. Sigh...

Anyone I know making a living coding up web based apps is exposed to patterns, OOP, concurrency problems and so on. The backend developers I'm friends with generally have comp-sci or information systems eng. backgrounds.

I compare knocking up my HTML/CSS/Javascript stuff as the same as making a GUI if I'm building a desktop app, if anything the GUI building is easier although that I blame on the poor state of native widgets within the browser.

Everything else I'm coding could, for a lot of it, be just as applicable if it was dropping into a desktop app. Many of the frameworks & libraries I use (like django for instance) might just as well be a .dll/.so or whatever for a desktop app.

Mark Hendrickson said...

I'll have to check the new Zune out; I've heard only good things about it so far. Although to be honest, my MP3 player is now integrated into my phone (iPhone) so it's very unlikely I'll buy a standalone player again. Just waiting until I can get streaming music (like Spotify) on my iPhone reliably.

Javascript is a crappy language but it does have some pretty critical advantages over Silverlight and Flash. Namely, it works in virtually all browsers (no plugin needed). It's based on relatively open standards. And it sits on top of DHTML, which gives transparency to the content (for humans and machines alike) and often loads faster, especially on mobile devices.

Ultimately, developers feel a lot safer developing on open vs. proprietary platforms, since big tech companies have proven over the years that they can't be trusted to act in developers' best interest (yea that's a pretty sweeping statement, but I think it's also the instinct of many developers these days).

There's also the problem you point out of "just embedding one hosting environment inside of a hosting environment". This is certainly true with browser plugin platforms. As a web developer, I'd rather cross my fingers that Javascript gets significantly better over time (along with other standards like HTML) than build a browser-based application that relies on a plugin. The same thing goes for technologies like AIR that try to take the experience out of the browser.

So back to the original point about iTunes - I do actually think it could get ported into the browser as a good Javascript-based app. was actually quite decent until Imeem bought it and shut it down (for whatever reason).

cd said...

One other thing from reading the comments, my job title is "web developer" - by that my company takes it (and most recuiters that i've spoke with) that I can code for the web across whatever languages I've marked out. For them its the same as software developer only they've made it clear that they want someone familar with web technologies, i.e. they code with python or php or etc. It's taken as a given that you know HTML/CSS/Javascript to a high level.

Thats for small shops, for bigger agencies and the like they will specify more exactly in the title, so they'll go and say "front end developer" if they actually want someone who's just doing HTML/CSS mainly. If that's all I had to do then I agree I would instantly jump ship and move to desktop-app development where I'd imagine I could at manouever myself into a "proper" coding role.

But! If I did get a job at initech, I would be pissed if I ended up as the GUI that makes the GUI's for all the proper engineers application code because I would be just the like the front end web developer.

Why on earth this analogy is lacking from so many peoples minds I do know now but I have seen other comments here that are thinking the same lines as me.

I do think your re: has made a bit more of what you meant to say clear but please, please, please do one more (or an edit) to at least point out that you are soley (it seems) refering to front end development and dare I say it, many web developers will agree with you.

I hate wasting my time trying to fix cross browser issues or having to tweak javascript & css to get that must have widget working on a clients antiquted browser but I love scoping out, desiging and building backend systems and transforming data from just a raw pile to something useful. That for me is why I like programming in anything.

Choosing HTML/CSS as my "GUI" gives me some flexibility and distribution ability that I just wouldnt have with a desktop app - which is probably one of the main reasons I like to get my own ideas into a web-compatible way.

Ivan Vučica said...

So... you don't like the easy stuff (writing HTML), you despise the usually simple stuff (writing JS for most of the web, that is, NOT complex web2.0 apps) and you like the hard stuff (writing backend code that supports the UI) - but you call it 'not really web programming'?


People call PHP a toy language, but I rarely see truly innovative and well written stuff created with ASP.Net. Maybe that's your problem.

Anonymous said...

"Are we really gaining anything, or are we just showing off how good we are at hacking a square peg into a round hole?"

The environment I work in is full of BS engineers who always want to reinvent the wheel when currently implemented and working solutions are doing the job just fine. This quote is now the official tag line of our department.

Thanks Michael

Kamran said...

i really feel that, as software engineers, we have to provide solutions to problems common people have.

another thing people should know is that Mike Braude is only telling the world what he prefers, and it's quite a fair opinion to have i think.

I work on both desktop applications and web apps and I agree on Mike's opinion that the environments the web arena provides for developers to write, test and debug the apps is not as cool as the tools we have in desktop app arena. Just using Visual Studio will tell you what I mean against debugging JavaScript using Firebug. Firebug is the best thing to have happened to a Web Developer/Designer - but again, the environment it works in isn't a 'disciplined' one.

Languages like C#, Java are beautiful languages, as most of the times they ENFORCE that good code be written in terms of architecture. It's easier to code shit in PHP etc than in C# or Java.

I personally agree with Mike that the life of a software engineer working with desktop apps is much more 'polished' and systematic should I say than web devs - but only those web devs who dont use frameworks like CodeIgniter and jQuery or YUI.

I don't code for web because it's easy, I do it because of the public demand. People want services in their browsers - I program those services and enable them to use it. If my customers tomorrow ask me to write them a desktop app for some purpose, I would be happy to work on it too ;)

Tobias Svensson said...

Hi Michael,

As I have already commented on Jeff's blog, I couldn't resist to write a follow-up post concerning this whole discussion/debacle as well.

- Tobias

empi said...

That's a really nice topic for a flame war.
To be honest, I've never considered HTML programmers to be programmers at all. Writing in markup language and creating some simple scripts in javascript/jquery for me doesn't mean programming.
In the same way, unix admin that writes some scripts in bash or tcsh is not a programmer - he is still an admin, at least for me.
I guess, the reason that so many people were offended with your post was that they got impression that you say that web guys are dumber than desktop guys. Maybe that wasn't your intention, but after reading your post I thought that you blame web guys for all stupidity in the internet ;)
And I also couldn't resist to write a post about it:


Anonymous said...

After reading all comments on both blogs I really want to see the quality of the Stack Overflow code base! Jeff doesn't believe in unit testing so I find it hard to believe the the pillars of computer science (cohesion and coupling) are given very serious consideration.

Jeff said...

You're being an elitist. What you're saying is that if you making cheap shoes then it's because you're too stupid to make expensive shoes. This is a logical fallacy. While it's without a doubt true that web programming is easier than medical, space and gaming systems, it doesn't mean that things that are less shouldn't exist. Just because YOU have the desire(and the time?) to become some super geek who works on complex systems doesn't mean that I have, or should have, the same motivation.

People like minesweeper, tic tac toe, blogs, and photo galleries. So there must be people to supply that demand. This could simply be people coming up in the industry or it could be someone super intelligent that's just doing it for the money

You're the real idiot, i'm afraid.

Anonymous said...

"What you're saying is that if you making cheap shoes then it's because you're too stupid to make expensive shoes."

No. He is saying that people who make cheap shoes are less likely to have mastered their craft. I.e., if you pick two shoe makers randomly, one who makes cheap shoes and another making expensive shoes, the expensive shoe maker is probably the better craftsman. Would you disagree?

Nerevarine said...

"... if you pick two shoe makers randomly, one who makes cheap shoes and another making expensive shoes, the expensive shoe maker is probably the better craftsman ..."

Maybe, the expensive cobbler is just a better merchant.

Pete Kirkham said...

iTunes is a web application - two of its key features are pod cast subscriptions and the iTunes store, both of which are on the web.

Preeti Edul said...

I couldn’t agree more with Anonymous @ August 18, 2009 12:04 AM !

I am a web developer myself and I find Michael’s blog entertaining and can see what he means - but Jeff’s sweeping assumptions annoy me! His stubbornness in the pod cast is appalling!

Dave said...

Wow, your iTunes example was WEAK. Jeff did acknowledge that there are some niche apps that will remain desktop apps. However... are you not aware of all the other iTunes-like WEB APPS out there? Amazon? WAL-MART?? Your argument would be a lot stronger if your basis for it was an app that had no web-based competitors.

codecoward said...

Michael, your classification of "web guys" is pretty offensive, and when it comes right down to it, completely artificial. There are subtleties in any realm of computer engineering (layout markup included) that are ridiculously difficult.

If that weren't the case, then perhaps you and all of your intellectual giant friends at Microsoft could have engineered "elegant solutions" to make a version of Internet Explorer that actually worked.