Fog Creek Software
Discussion Board




Is the majority of development web development?

About 10 years ago when I got into computers, there was no world wide web. Programming consisted of building desktop applications - database applications for companies, etc.


The database applications were written using programming languages specialized for databases, like dBase, FoxPro, Clipper, etc.

Then, a great improvement happened: the introduction of RAD environments like Visual Basic and Borland Delphi.

Both specialized database languages and RAD tools were
great productivity improvements, compared to writing programs in C, Pascal or even C++.


So I became a desktop application developer using mainly Borland Delphi and Visual C++.

In those times, desktop application development was the main focus of programming.


And then the Internet revolution came. Everybody seemed very interested in building web application, using Java, Perl, ASP, PHP, ActiveX, HTML, etc.

Then there was the dot-com boom and bust.


Now, if you read the web and programming magazines, it seems that everybody is doing web development.

It seems that, somehow, desktop application development became just a small corner of the programming world, a corner visited only by few developers.

And I don't understand why. Why is 80% of the development web development, and (maybe) only 5% of it desktop application development?

If I had a company, and I wanted computers to automate parts of my operation, I would certainly do it using desktop applications, not web applications.

Why is that? Because:

- desktop applications have better user interfaces, and good user interfaces are a lot easier to make as desktop applications, and much harder to make as web applications

- if you have to create a complex application, which does complex processing, it is much easier to do this in a desktop application, than in a web application


I don't mean to flame the web application developers, but I simply want to understand what is going on.

Why is web application development much more common, compared to desktop application development?

If you write programs for a company, you can provide more value faster if you create a desktop app to help that company, than if you create a web app.

Or, at least, this is how I see it - and I have also used ASP, PHP and plain CGI extensively, so you can't say I'm badly informed.


Taking into account all this data, why does it appear that web-related development is 70-80% of all development?

John K.
Monday, June 09, 2003

Isn't it cheaper and easier to keep everyone on the same page when all they have is a web gui v. updating everyone's desktops every time you have a new rollout?

www.MarkTAW.com
Monday, June 09, 2003

There are pros to using a web application, and for some shops, web is better.

Less training, users are familiar with HTML, forms, and hyperlinks, and it could be easier then learning a new application.

Only one place to update "the code" on every machine (web server).  Would you like to update one computer or 100 computers? 10,000 computers?

Barrier to entry on learning HTML is lower than MFC, OWL, etc...  i.e. Web programmer "could" replace an an application programmer, and be cheaper at the same time.

Ok. How is this logic?
0. Younger people are cheaper.
1. Younger people tend to learn newer stuff .
2. The web is "new-er". (newerer)

Therefore developing with the web is cheaper, therefore more attractive to the MBA types...

QED?

YMMV!

--ee

eclectic_echidna
Monday, June 09, 2003

John,

I see two main reasons for this trend:

1) Because of the Internet, more companies have the ability to create customer facing software. The lowest common denominator for these outward facing software is the browser.

2) Most of the destop applications that I've seen are custom jobs that are used internally. These are basically not known to the public at large and don't seem to attract a lot of attention.

As you well know, anything that is customer facing is considered a revenue maker and therefore given attention by companies.

Internal apps are considered at best internal buisness facilitators and at worst, cost centers. Internal apps are also locked in step with the economy. When the economy is in a bull run (boom), they need more capacity to handle customers and/or services provided (more desktop apps). When the economy is in a bear run, the only activities that are being fed, are the customer facing ones.

These are just things that I've observed through my IT career.

Hector
Monday, June 09, 2003

Do you guys think the same revolution can happen for Email or Instant messaging development? Why or why not?

Li-fan Chen
Monday, June 09, 2003

I don't think it is 70% to 80% of development, but you could say it is where the focus is on the majority of *new* development.

Assuming you are not being disingenuous -  I think the reasons are:
- universal access
- deployment cost and upgrade cost for web apps is nearly 0
- easier to send someone a link to an app then send a CD to be unwrapped, installed, tested for viruses, take support calls on how to install, etc.

Although things like an mp3 player or ignition controller (for your car) don't really lend themselves to web apps.  ("Sorry server down, cannot start car").

I think the productivity is a little less compared to desktop development (generally speaking), but that's just because the tools haven't caught up yet.  I think they will.

Just my 2 cents.

anon-anon
Monday, June 09, 2003

Remote application updating is not so hard to do. For example, for Delphi, there are very inexpensive 3rd party components that do this very well.

Well, maybe for 1000 computers, it would take some bandwidth, but guess what - Delphi applications can be "compiled with packages", so every library is in a separate package, and it is easy to update just what you need.


The idea that HTML can replace MFC or the Delphi VCL (Visual Components Library) is in my opinion simply ridiculous.

Also, I think that a good RAD desktop application programmer is much more productive than a good web application developer.

Give me a good RAD tool and ask me to compete with any good web guy, on an application which is not very simple, and I'll beat him to the punch - not necesarily because I am better than him, but because I use a much better tool.

Now that Visual Studio .NET offers a good RAD environment for web applications, that may be a little different, but VS .NET is a new tool, and the strong preference for web applications has started long before RAD tools for web were available.

As a side note, Delphi 7 (my favorite tool) also offers true RAD web development using a technology called IntraWeb.


So, an MBA willing to hire 3 web developers, should instead hire only 2 guys who use a very good RAD tool. The 2 RAD guys will be much more productive than the 3 web guys.

And of course, the wages of 2 RAD guys is lower than the wages of 3 web guys.. so this should be an excellent deal for an MBA

John K.
Monday, June 09, 2003

Plus if a company is spending that much on a customer facing web app, it makes sense to re-use components of it internally, whether that's programmers or databases, the bottom line is the same: why do things in two different ways?

That's what creates legacy systems.

www.MarkTAW.com
Monday, June 09, 2003

Excellent argument, Mark!

They can't give up on web development, because it's an absolute requirement for interfacing with the users.

So, they give up on application development, because even if it yields better results (from UI and complexity of processing points of view), and is more productive, there is the added expense of developing using two very different technologies.

John K.
Monday, June 09, 2003

Another reason is that an intranet can be easily connected to an extranet. Some applications may be used only within the company and others may be accessed by customers, vendors, etc. And the company may have offices in many locations, and all employees can use the same applications if they are web applications.

The Real PC
Monday, June 09, 2003

That's very true - A big complaint within the organization I used to work at was that they had one process to publish to the Intranet and another one to publish to the client website.

So if both were brought on to the same platform, it would make their jobs easier. You could just flag it to go to one, the other, or both.

www.MarkTAW.com
Monday, June 09, 2003

Occam's razor:
An ASP-form listing covers less surface area in the magazine than a full-blown GUI app.

Alternatively, "everybody" uses web applications because they want their program to be portable, even though all their users have to run IE5.5 or later on Windows anyway.

Roland Kaufmann
Monday, June 09, 2003

Don't forget that whatever you see on the web is usually only the tip of the iceberg.  You may log into your bank's online banking application which consists only of 5 screens that were developed in a couple of weeks, but behind the scenes there is a mainframe, application server and database with millions of lines of code to support the web functions and other internal processing.

T. Norman
Monday, June 09, 2003

Web applications of complexity are harder to develop than their native cousins, but they're much easier to QA, maintain and deploy, and support.

Also, users have lower expectations of a web UI.  They are accustomed to the click/wait/read/click/wait on the web, but that kind of latency would never pass QA on a native app.

The downside is that users *must* upgrade to the new interface any time the interface changes.  I see this as a huge problem.  There are many users out there (like my grandmother) who will be completely lost if you so much as change the color scheme. 

I think SOAP can help here.  I think MS is pushing it a little ahead of its time and hyping it too much, but it's a good start.  If your app can work as a web app, then it can work as a thin-client app using SOAP web services to do the backend grunt work too.

If MS keeps their priorities straight, then .NET virtual machines will be a nice stable target compared to ever changing versions of Windows and developing a native .NET GUI app calling web services should be a safe thing to do.  But that's a big IF.

Richard Ponton
Monday, June 09, 2003

John:

I'm in the same boat as you - desktop developer - and I think that three things have happened.

First, devising a proper deployment strategy for desktop applications requires a relatively high skill, and end users have to cooperate. You mention some Delphi tool as a simplification, but remember that most developers and managers are following each other's asses and *nobody* wants to take responsibility for a non - Microsoft tool. Most development platform created deployments introduce *some* change into the target machine that could break an existing installed application on that machine. So, native app deployment *always* carries risk with it. You're changing the user's PC with a remotely developed script, basically.

Secondly, web services came along about the time that desktop applications had developed an absolutely horrible reputation for quality and for breaking user's PCs. To a lot of people, developing and deploying "once" started to sound a lot better than messing with DLL hell.

Third, programming technology is a *lot* like fashion, with hype, rises and falls in certain trends, worship of youth and shallowness, and the mentality that old == stupid == bad. So, web applications are the current fashion. Desktop apps are "SOOO 90's."

Bored Bystander
Monday, June 09, 2003

Bored - hype has a lot to do with it. You have to take into account manager glory. "Upgraded 5 apps" isn't as sexy as "Web enabled 5 apps."

T. Norman - having worked @ a bank on a client facing website, your thinking might be good, but your numbers are way off.

The site is actually well over 50 pages that one designer (or a design firm) worked on for a couple of months, and then it took several more months for it to get signed off on by all of the appropriate people.

Then they handed it over to the developers who now have to get a modular system to work in this non-modular and unforgiving environment known as HTML and CSS, so implementing the UI takes a dozen or more developers a couple of months of late nights and weekends to implement while they're working on adding basic functionality.

As far as the back end... Yeah the back end is the banking process, and several billion dollars go into that. In fact, nearly every other employee in the bank is dedicated to it.

www.MarkTAW.com
Monday, June 09, 2003

In theory, desktop applications have better UI's than web applications.

In practice, this is not always the case. I have seen plenty of web-based applications that are easier to use than desktop applications.

Matt Christensen
Monday, June 09, 2003

And web applications are pretty much standardized between a few elements... a textbox is a textbox is a textbox unless you use CSS to screw up the colors.

www.MarkTAW.com
Monday, June 09, 2003

"When the economy is in a bear run, the only activities that are being fed, are the customer facing ones."

Business facilitation activities are also being fed in order to reduce costs...  In our experience anyway.

"Give me a good RAD tool and ask me to compete with any good web guy, on an application which is not very simple, and I'll beat him to the punch - not necesarily because I am better than him, but because I use a much better tool."

Based on what we've accomplished with a staff of mostly two in the past year, I'd take up that challenge.

Come to think of it, it might be amusing for folks to list their "team" accomplishments for the last 12 months, and include team size, and whether it was a desktop app or a web app (or other, not trying to leave you other non-conformists out).  Anyone interested?

Phibian
Monday, June 09, 2003

Web apps seem to be ideal for what old green screen apps used to do - i.e. simple database maintenance apps.

But who wants to work on those things anyway?

Unfortunately a lot of internal business software is exactly that.

punter
Monday, June 09, 2003

why not use desktop apps and Citrix as deployment tool?

IMHO web-apps will be as good as desktop/client-server apps - probably 5 years from now.

James Lang
Monday, June 09, 2003

So what are these apps that aren't as good on the web as they are on your desktop? Are these your basic business running apps - time scheduling, ordering, inventory, billing - or more complex? Are we talking shrinkwrapped packages too?

Say you're an application developer selling your services to a Fortune 500 company. What would your selling points be for desktop app? web app?

www.MarkTAW.com
Monday, June 09, 2003

Well, aren't services a solution to the problem.

If you've got a need for a complex ui, you can use services to web-enable the app.
Otherwise you create a web interface with the same services as a connection to the same backend.

Panna
Tuesday, June 10, 2003

>"T. Norman - having worked @ a bank on a client facing website, your thinking might be good, but your numbers are way off.

>The site is actually well over 50 pages that one designer (or a design firm) worked on for a couple of months, and then it took several more months for it to get signed off on by all of the appropriate people."

You are nit-picking over specifics.  5, 10, 50 pages, two weeks, three months, whatever.  All peanuts compared to what goes on at the back end.  I was just making a point that the web-facing portion is just a small percentage of the overall system.

T. Norman
Tuesday, June 10, 2003

I still think you're over simplifying the matter.

Sure the back end is powered by several billion lines of code - it was also built over the course of twenty or more years. The client facing website is probably only a few years old in comparison, and the UI is probably a major chunk of that website - more than you're giving it credit for.

Behind there are transactional systems, customer service systems, trading systems, checking accounts, savings accounts, IRA's, mortgages, brokerage accounts, ATM's, telephone banking, WAP banking, teller systems, etc.

It's not like there's one monolith with several million lines of code, it's a lot of different systems working (allegedly) together.

Does anyone remember when Citibank and Chase were giving out software that you could use to log in and check your accounts? This was right around the time people were figuring out what that web browser that came with their latest version of AOL actually did.... You know, the version that fit on a floppy.

Getting back on topic, what are the odds that the usability of those programs was actually better than the web enabled version? Has anyone seen the latest MS Money? It basically looks like a website anyway, and I suspect there will be more and more convergance in the future, eventually completely blurring the line between fat and thin client.

Once a web browser can do anything a VB program can do (and thanks to broadband it takes only a few moments to download the functionality), there will be very little distinction between regular development and web development.

Whether you're publishing to a server or a .exe will be little more than what options you tick off while you're compiling.

www.MarkTAW.com
Tuesday, June 10, 2003

I do lots of generic business type web development.

I've lost count of the number of times I or a co-worker have moaned about HTML
and told each other that something would have been far better done as a regular
desktop app. But we're not in a position to change things and actually do these
things as desktop apps.

anonymous web developer
Tuesday, June 10, 2003

>> But we're not in a position to change things and actually do these things as desktop apps.

You know, I think I'll change my tune and simplify a bit.

Web apps probably caught on for exactly one fundamental reason - no deployment expense or hassles. Just tell users to point at the server and log in.

Vendor driven language bias and "fashion hype" probably had a bit to do with it, but I am thinking that it's just cheaper and easier in the long run to shove all the code onto one box. Period.

Bored Bystander
Tuesday, June 10, 2003

"no deployment expense or hassles"

That sounds exactly like the fashion hype that helped web apps catch on in the first place. The whole promise of the dotcom era was that things that used to be difficult to do were now easy to do. the internet was supposed to grease the wheels of not only commerce, but business as well.

www.MarkTAW.com
Tuesday, June 10, 2003

>>  The whole promise of the dotcom era was that things that used to be difficult to do were now easy to do. the internet was supposed to grease the wheels of not only commerce, but business as well.

It *has*. It's done these things so well, in fact, that we take it for granted. The web has become like the telephone network - ubiquitous and mundane.

For one thing, a lot of workgroup applications once deployed as complicated client/server systems with fat clients are deployed as intranet based web services.

Email, IM, VPNs, etc provide many more opportunities for businesses to transfer valuable data than were present 10 years ago. 
And even if a company is small, low tech and boneheaded, they can at least save $$$$ on printing and mail expenses by posting their static catalog and brochure material to their web site.

Lastly - I suspect that the slowdown in opportunities in technology and programming is due at least partially to the efficiencies introduced by the net and web based apps. Where you needed three developers to tackle a certain scale of distributed application problem, likely 1 or 2 (at most) would do today, given the right tools and platform.

Bored Bystander
Tuesday, June 10, 2003

> It *has*. It's done these things so well, in fact, that we take it for granted.  <

I never said it didn't. I'm talking from the perspective of a company who has yet to make the decision of whether or not to roll out fat clients or web apps.

What I find interesting, though, is that this conversation is entirely B2B and not at all B2C.

Do more consumers give money to web services than software?

www.MarkTAW.com
Tuesday, June 10, 2003

>> What I find interesting, though, is that this conversation is entirely B2B and not at all B2C.

>> Do more consumers give money to web services than software?

I don't exactly understand the second sentence quoted above but I assume you mean "do consumers favor web services over software?" In terms of B2C, consumers routinely do transactions and conduct research on the web that they never would have dreamt of 10 years ago.

Assuming that someone would have wanted to try launching an online shopping portal based upon a fat client, prior to the internet's influence, I suspect it would have been a total flop. Didn't one of the online grocers, like "Peapod", do just that for awhile?


Ten or so years ago, even something as prosaic as Google was only available through pricey subscriptions to Lexis-Nexis, using their own proprietary dial up online interface. (That's a story in itself. I know people who worked at Lexis. Talk about a dinosaur of a company. By all rights, Lexis should have owned the internet in short order. Instead, Lexis management was obsessed internally with denying the importance of the internet.)


I think what the internet has basically accomplished is to shove B2B like resources down to the level of the mass market, and to make them dirt cheap. To do this, a uniform, simple to access, universally "predictable" platform was required.

And this bias in favor of cheapness and relative simplicity has simply spilled over into what used to be called the MIS (internal IT) sector.

My theory, anyway.

Bored Bystander
Tuesday, June 10, 2003

I meant do more consumers people give money to Amazon than Microsoft on a regular basis. To Adobe or eBay. To EA Games or AOL.

We've focused mostly on banks and such who use technology to grease the wheels of commerce, but we haven't talked much about the commerce itself.

Do companies who work only in the world of the internet seriously outweigh the companies that produce shrinkwrapped software?

www.MarkTAW.com
Tuesday, June 10, 2003

>> Do companies who work only in the world of the internet seriously outweigh the companies that produce shrinkwrapped software?

I think the answer is, perhaps not now but probably in the near future, and probably due more to vendor fashion crazes than consumer need.

Microsoft has been *very* serious about transforming their shrink wrap software business into a set of subscription services. I honestly think that they're gradually easing into this posture so as to not panic people who would rather 'own' a product that is useful into the indeterminate future.

Bored Bystander
Wednesday, June 11, 2003

I agree that there are a lot of indications that MS would rather we subscribe to their software products and download them than actually own them. I know this model is possible, I've seen it done.

This makes the gov'ts concept of keeping track of us that much eaiser too.

www.MarkTAW.com
Wednesday, June 11, 2003

*  Recent Topics

*  Fog Creek Home