Fog Creek Software
g
Discussion Board




How can companies prefer web apps?

A recent article stated that more and more companies develop for themselves custom web apps, instead of classic desktop apps.

And I wonder - how can this be?

Ok - now there is Visual Studio .NET and the situation is a bit different, but let's take a look at desktop and apps programming of 1-2 years ago.


Let's consider a simple task like letting the user edit a table.


Desktop application programming

- new form
- drop database component on form
- drop db grid component on form
- connect the 2 components
- run

Total development time:

1 minute, almost no code written


Web application programming

- write code to connect to the database and performa a SELECT
- write code to iterate through the result
- for each record
  - echo "<TR>"
  - for each field, echo "<TD>"field_contents"</TD>"
  - echo "</TR>"

Now, the pseudocode above is simplified.. why? Because if you also want to EDIT the contents of the database table, you have to add a button or a link to each row of the HTML table, and that button must send the user to a page which allows him to edit the record.

That page must take into account different cases. Code must be specially written to generate an INSERT statement.

Etc.

Total development time:

at least 30-60 minutes, a lot of code written (when compared to the solution above)


So.. in my opinion, desktop application development using VB, Delphi, Access, etc is a lot more efficient than web application development.

I know that what I have written above is not sufficient proof, but it's the typical difference between working on web apps and working on desktop apps.


For people wanting their app to work from the browser so they can access it from outside the company, I can understand building a web app.

However, people who don't have this requirement are simply throwing a lot of development time away by developing web apps instead of desktop apps.


Delphi 7 with it's super-powerful IntraWeb and VS .NET with it's ASP .NET are beginning to make web development more efficient, BUT there are a lot of people who develop web apps in ASP and PHP, while thinking that they save money by building a web app, when in fact they are simply throwing away money and development time.

Maximus
Wednesday, November 19, 2003

Real applications' forms take much longer than 1 minute to develop, wheter for desktop or web.

My team switched from desktop to web and both developers and users are happier.

Actually we develop faster, the users have ubiquitous access, and deployment is much easier.

The clue is, as you stated, there are tools today that make it possible.

We use GeneXus ( www.genexus.com ) with Java.

Visual Studio .NET with DeKlarit ( www.deklarit.com ) is also an excellent choice.

Fernando Correia
Wednesday, November 19, 2003

Besides, there are middle-grounds:
- make the dedicated app component-based, and add code that checks for updates over the Net, and allows the user to update automatically
- use RPC to make remote calls (Corba, DCOM, XMLRPC, SOAP), and keep changes to the server if possible
- rich/thin client using ActiveX or Flash components embedded in web pages

Server-side web apps is a pathetic solution, in terms of productivity, ease of development, and use of client-side resources (a 3Ghz P4 as a terminal? :-))

Frederic Faure
Wednesday, November 19, 2003

Yes, maybe you can whack out something quicker in VB.  What about deployment time and maintenance of the installed base.  And let's not forget that VB is the boy in the bubble.  How many times does it stop working because you got a new version of access or another VB app crapped in your dll's. 

Companies are sick of maintaining that crap.  A web app has lot less maintenance overhead.  Plus web apps are probably easier to use because they don't make it as easy to drag and drop a control box, check box, radio button here and there.  That means the developers don't go overboard with unnecessary features.  Next time you fire up your RAD environment, ask yourself "just because I can do something, does that make it a good idea?"

A richer user interface seems for most business apps not worth the headache.  Home user systems are different.  The user maintains the machine.  A corporate system should not resemble a home users system if the company wants to manage their apps in a sane way.

Mike
Wednesday, November 19, 2003

Mike, you really need to take a look at .NET Web Deployment or Java Web Start. Rich clients are making a major comeback!!!!!!

I can build a .NET Windows Forms .exe application, deploy it to a Web Server (just like a web app). All of my users just run a shorcut pointing to the URL (Http://www.myserver.myapp.exe) and .NET pulls the .exe down locally into a cache. The next time the user runs the app, .NET compares the version in the Cache to the server version and only brings down any new changes (DLL's or .EXE if necessary).

With .NET Web Deployment and Java Web Start you get the ease of Web Site deployment but sill retain the far superior user interface that a Windows Forms app has.

GenX'er
Wednesday, November 19, 2003

I'm sorry but you're comparing apples and oranges here..

you are comparing
VB: drop pre-written components onto form
to
WEB: write custom components from scratch

Write the components, buy the components or use the ones that come with your development environment. Just like VB.
You don't go down to the level of "loop dataset in table,tr,td" every time you want to show some data in your web app!

Gavin
Wednesday, November 19, 2003

GenX'er,

Can the users running the dot net app get by with non of the runtime on their machine?  Otherwise you still get to maintain the jvm or .net runtime which rather sucks because you can end up with multiple versions - well mostly wastes disk space, but definitely not zero footprint.

Mike
Wednesday, November 19, 2003

Yes the user does need the .NET Framework or JVM installed. This can easily be taken care of in a corporate environment using Active Directory. The next version of Windows will come with the .NET Framework automatically - so every Windows user will be set up already....

GenX'er
Wednesday, November 19, 2003

I'm still getting over the fact that the OP has users directly editing tables in the database.

*shudder*

Justin Johnson
Wednesday, November 19, 2003

"The next version of Windows will..."

The one that hits the streets in 2007??

Dennis Atkins
Wednesday, November 19, 2003

'"The next version of Windows will..."

The one that hits the streets in 2007??'

It's really not that difficult to get the .NET Framework on your clients. Especially with Active Directory.

Not sure what all the fuss is about....

GenX'er
Wednesday, November 19, 2003

I'm still blown away that people don't realize that avter nearly ten years of web apps, the tools have gotten quite good.

I use, in several languages, on a daily basis:
* Datagrid Classes 
* HTML Templating classes
* Widget Class Libraries (calendars,upload widgets, directory listers, etc...)

90% of what I need has been built, either by myself or from someone else.

Nothing takes an hour.  But I can build a nice, well-validated  web -> database app in just a couple of days.

Matthew Lee
Wednesday, November 19, 2003

But Matthew Lee....

Client Side JavaScript is flaky at best based on various browser types, versions & OS's.

Building a site with mostly server side code and complex interfaces like grids for example - means many extra hits to the server.

Building the same functionality in a Windows .EXE app is much nicer because you can handle all the GUI on the client and pass up and down XML to the middle tier when needed.

GenX'er
Wednesday, November 19, 2003

"Client Side JavaScript is flaky at best based on various browser types, versions & OS's."

My form validation code works on all browsers on all OSes.  It was even written quite a few years ago before some of these browsers were available.

Javascript is amazing compatable among browsers/platforms.  DHTML, on the other hand, is much sketchier.  However, of you are building business apps your not going to get the bleeding edge of DHTML where the problems are anyway.

Almost Anonymous
Wednesday, November 19, 2003

Same here.  Be smart and conservative with JS and it will work on all browsers.

Besides- if the alternative is a winforms app- then who cares about cross-platform, right?

The whole Web Service / XML UI / Winforms thing is great, but is not a reality for us.  We don't have the time to retool  right now. There is really no benefit- UI is simply not something anyone is griping about.

I've got users all over the world, how could I possibly manage and support their installations? 

I absolutely agree that not every app is suitable for a Web app, but many dopey business apps are very well-suited.

Matthew Lee
Wednesday, November 19, 2003

"Otherwise you still get to maintain the jvm or .net runtime which rather sucks because you can end up with multiple versions - well mostly wastes disk space, but definitely not zero footprint. "

C'mon, there are TWO versions of the .NET runtime up until now, and the download for each was about 20 MB. I guess they take up about 100 MB taken together - and they coexist happily. Do you call THIS "waste of disk space"? Last time I checked hard disks were a dollar a gigabyte - so you're making fuss about $0.10.

Phoenix
Wednesday, November 19, 2003

[... So.. in my opinion, desktop application development using VB, Delphi, Access, etc is a lot more efficient than web application development. .....]


except where the requirements are cross platform, multiple offices and you want fast bug fixes.  On average scripting is about 4X faster to fix as the REP cycle skips compiling.

But it really depends on your requirments. You choose the tools (language, GUI framework, etc ) that suit the job. For example nobody would suggest  editing text in a browser window is an *ideal* solution for intensive text editing ....

Read this article on making CityDesk to see what I mean.....

http://www.joelonsoftware.com/articles/fog0000000296.html

peter renshaw
Wednesday, November 19, 2003

Last time I checked, there were tons of people still on win95/98 and tons of people still using dialup internet connections.  There are also an increasing number of individuals and businesses that are tired of paying the Microsoft Tax.  Web applications based on open technologies are cross platform and they don't lock a developer into a long term committment with any company.  Developers can start out for FREE.  No need to buy MS SQL Server, a more advanced copy of Windows (to get IIS), etc.  Also, zillions of cheap hosting accounts provide easy access to perl, php, mysql, etc.  The company I just accepted a job from uses perl and mysql, and they're pulling in something like 20-30 million in revenue per MONTH - all with two free linux servers (they of course pay the colocation/bandwidth costs).

The point is, three guys in their garages developed the web application and business idea for virtually nothing.  They don't have to pay to upgrade every time a new version of windows comes out.  They don't have to limit their customer base to those that a) have windows, b) have a recent enough version so that the .net runtime is available, c) runs windows update and chooses to d/l the run time environment, and d) chooses to use microsoft internet explorer.

People say that IE has 95% of the market or something, but my web logs show that a full 30% of our visitors use a different browser (and of course, that doesn't really include Opera, since Opera identifies itself as IE by default simply to get MS to stop sending broken stylesheets [on purpose]).

There are many, many reasons one would choose to create a cross-platform, portable web application that requires nothing except a forms-capable web browser for the end user to access.

saberworks
Wednesday, November 19, 2003

One more advantage of web based apps is that you don't have to worry about the guys in marketing  or where ever that insist on using Mac's or the engineer's running linux or unix. If the box has a browser you can run the app.

John McQuilling
Thursday, November 20, 2003

One things that helps is that user expectations are diminished on a web app.

Users accept a lot more latency.

Users accept that they can't drag 'n drop.

Lots of users will even blame themselves or their browser when there's something wrong with your app, whereas in a native app they'll bitch and moan forever if a button doesn't redraw fast enough.

Richard Ponton
Thursday, November 20, 2003

Another reason is that more people than ever use the web themselves in their personal lives.  The experience of a web app is already familiar to them--they have a faster understanding of the links 'n forms format.

Justin Johnson
Thursday, November 20, 2003

*  Recent Topics

*  Fog Creek Home