Delphi Handbooks Collection


Delphi XE Handbook


Delphi 2010 Handbook


September 19, 2009

Local Versus Web Applications (and Office Suites)

The debate on the growing role of web applications versus traditional local applications (native or managed) is ongoing, and will last more time... here are a couple of interesting points of view, along with some ideas of mine.

The debate on the growing role of web applications versus traditional local applications (native or managed) is ongoing, and will last more time. The news of the week that's going to foster the debate was Microsoft announcement of a (long overdue) version of Office on the web. But I'll get back to that later.

The first blog post I saw and found interesting was Tim Anderson's double post "Desktop applications are dead" and "The desktop versus web application debate". In the first post Tim reports the experience of Patrick McKenzie, who found out the web version of his application is outselling the native one. Specifically, the conversion from testing to buying the application is much higher. In the second post, Tim focuses on the "zero-installation" advantage of web applications. I fully agree with his stance (although I still think the Delphi "almost-zero-installation" is one of its best features):

It is not the web application advocates who need to make their case. Rather, it is the desktop advocates who need to show the particular reasons why only a traditional local install will do

He claim, with some reasoning, that this doesn't affect productivity tools and utilities as much as it affects business applications, including in-house ones. He mentions and Google Apps, but I'll get back to that later.

Another interesting input came from Michale Swindell session at CodeRage4, as I mentioned in my conference report a few days ago. In a slide titled "When is a packaged app the best solution, aka When is a web app inappropriate" he mentions several cases in which a local app makes more sense:

  • extended user sessions (hours vs. minutes)
  • use of local or LAN databases
  • manipulation of visualized data
  • heavy computational tasks on local data
  • graphics, physics animation
  • low latency response (music, medical, manufacturing, trading)
  • interfaces with specialized hardware (cameras, POS, lasers, robotics, barcodes)

There might be others, but some of this are interesting. I'd add also integration with other local software (via Ole Automation and the like), as I bumped into a similar situation recently. Possibly also dedicated printing support (as downloading a PDF is not always the ideal solution for printing). And printing a CD/DVD. I could continue.

What is certain is that there is a trend towards using Web appliacations (and I'd say real web applications based on standards, not Flash or Silverlight ones), which still hasn't topped. You might recall I'm quite a fan of online applications: mail, calendars, RSS feeds, and also about half of my text documents and spreadsheets are online, mostly based on the corresponding Google applications.

So I was also quite intrigued by Microsoft announcement of its own online Office offering. Again, you can read a blog post by Tim on ITWritings and also an article by Computer Weekly. And certainly a couple million more. While chatting with Tim Anderson, I wrote the following to in response to a feedback request from him:

From what I've read, I'll keep using Google Apps. It looks:

* online collaborative features, including versioning, will be much more limited, and they do provide great value
* the open APIs and integration / publication capabilities will be very different. For example, I'm using Google Spreadsheet API to move database records to a spreadsheet automatically. Also Google documents are integrated with Gmail (you can see attachments there), are integrated with mapping, are integrated with several other Google services.

Seems Microsoft is:
(i) playing catch up (what do they offer over Google, beside a local hosting of the solution?)
(ii) going for more limited features / integration, to make this "not too appealing" (despite what they can claim) to avoid affecting their actual business as much as they can
(iii) uses an underlying server architecture that's good for them as it piggy backs on existing solutions and can be sold for deployment, but seems more closed and has / will have a more limited open API and web service integration.

If It weren't Microsoft, one could say why bother. Being from them, one can say, is this all? Come on!
But I'm sure now we'll have Microsoft zealots claiming this is a revolution. To me this is a too limited and too conservative reaction to a significant loss in customers.

I'm ready to give it a go, of course, when it will be ready, but for now I'm looking at how to leverage Google Apps, learning new tricks almost every day. Today, for example, I found Google Scripts, certainly worth a second in-depth look.

Finally (yes, this is getting a long blog post) I noticed this review of RAD Studio 2010 in Dr Dobbs's (very nice reading, by the way... well, the author Mike Riley mentions also my Essential Pascal ebook!) which seems to agree with me on the importance of the limited installation needs of Delphi apps:

With Delphi, even a Windows application neophyte can paint a form, compile it into a true executable without a bulky, separate runtime dependency. This is something that existing Delphi developers have taken for granted since its inception, but its still something to remark upon given the weighty overhead that various Java and .NET VM distributions require. The fact that Delphi can span the XP, Vista and Windows 7 family of operating systems, even supporting technologies like gesture support on operating systems that Microsoft won't formally commit to, is a testament to the enduring capabilities that Delphi has carried through all of its corporate incarnations.

I think this is not fully unrelated to the web apps vs. local apps debate, as the potential zero-installation, indirect database connectivity using a multi-tier solution, and automatic downlaod of runtime packages, couple with the new Extended RTTI of Delphi 2010, make enough room for a very smooth way of installing and configuring Delphi applications once, letting them download from the local servers of the web the missing or new bits and pieces. 

And even when the browser will be the OS, we'll be able to write local browser extensions, so let Embarcadero schedule a Delphi for the Google Chrome OS!

 





 

13 Comments

Local Versus Web Applications and Office Suites 

Hi Marco, today there are place for desktop apps and
web apps. Web browsers are getting more
functionalities: Safari supports OpenGL. Probably
mixed apps (local+remote computing+remote storing) get
more common in next years.

This is another recent post about:
http://www.kalzumeus.com/2009/09/05/desktop-aps-versus-web-apps/
Comment by Jose Alberto on September 19, 12:23

Local Versus Web Applications and Office Suites 

I'm sure most of my customers would never accept the
idea of storing sensitive data on a server. There
would not only be a privacy issue but also concrete
risks of seeing the application crash when the
webmaster updates the server or the customer's
Internet connection slows down. Moreover, not all
native software can be easily converted to Web
applications (think of software dealing with graphics,
video or audio which requires maximum speed). In most
cases a piece of software working in a LAN can still
meet the customer's requirements. So, long live Delphi!
Comment by Pasquale Esposito [http://www.espositosoftware.it] on September 19, 14:20

Local Versus Web Applications and Office Suites 

I forgot the most important thing: from the point of
view of the webmaster/software developer, can you
imagine the damage you would do to all of your
customers at the same time if your server crashed?
Since you have to make sure your server works 24 hours
a day, you will just have to forget going on holiday.
Comment by Pasquale Esposito [http://www.espositosoftware.it] on September 19, 14:29

Local Versus Web Applications and Office Suites 

Marco, I couldn't agree more. Google is trying to make 
standardized, Open Source infrastructure is able to 
deliver the local app experience, even with native code 
and hardware acceleration support. However, there is one 
item in your list that is missing: Integration with 
other apps which are local.
Comment by Lars D [http://compaspascal.blogspot.com/] on September 19, 15:30

Local Versus Web Applications and Office Suites 

 In my humble opinion, while web apps will become more
and more important, they have one problem desktop apps
do not (at least not in the same proportion):

Data Transfer

As a clear example you can compare any graphic
solution in desktop and web, being videogames the most
evident. What is the difference between watching a
video in Youtube or in your desktop? You won't have to
wait for the second, but you may for the first one.

And yes, maybe some day (far away still imho) we will
not have this problem and you will be able to stream
big loads of data through the web, but whenever that
happens you can be sure desktop apps will be able to
get data much more faster than any web app.

Unless someone comes out with a way to transmit data
instantly a-la-Star-Strek, web apps will never be able
to catch up with desktop apps regarding heavy loads of
data.
Comment by Guillem Vicens on September 19, 15:40

Local Versus Web Applications and Office Suites 

I found very interesting that while process power 
increases, memory gets cheaper, tons of terabytes are 
availabe, OSes add new features - and all that power 
should be used to install a browser?
The "web application" fans often hide some of the 
drawbacks:
1) Speed. It's true it's "zero installation" - just 
because you download it each time - especially if it 
works via HTTPS and you can't let sensitive data in 
the cache. And Javascript is not the fastest language 
on the planet.
2) Lack of a common GUI. OSes more or less impose a 
common GUI, while for unknown reasons web developers 
try to invent a new GUI for each application. Most 
conntrols have to be implmented by application 
themselves, and may have subtle differences.
3) Issues with keyboard-driven interaction. Most Web 
applications are essentially mouse-drive, because 
being host with a browser you have browser keyboard 
command and application keyboard commands - also most 
browser are unable to differentiate between "live" 
items and those who aren't. As I often tell, the 
browser should be removed - "web applications" should 
be handled by the OS itself.
4) Lack of common standard to exchange data among 
applications.
5) Security. The more your data runs across the wire, 
the more they can eavesdropped - especially it the 
application is not properly coded. Also you rely on 
remote storage - and often people outside your 
control may have access to your data.
6) Security (2). The more web applications do, the 
more they have to access your local devices. 
7)Need of connectivity. Although connectivity is 
almost ubiquitous - it's "almost". At my seaside 
house I have no ADSL line, and doing everything via 
an UMTS connection would be too expensive.

THe interesint part is that to work properly "web" 
applications will end up to install more and more 
code on the client, be it a browser, libraries, 
whatever. They will become mostly "local 
applications".

IMHO the real driver is that the "upgrade" appeal of 
native application gets lower and lower as they 
became very powerful for the average user. I guess 
most users are happy with Office 2003 or even 
earlier, and have little reasons to upgrade. If you 
can stop them buying applications they pay once and 
use for years, and lure them to buy a "subscription", 
you get a contant cash flow - even if they don't care 
about the new features.
Comment by Luigi D. Sandon on September 19, 16:44

Local Versus Web Applications and Office Suites 

Again, the most serious disadvantage I see in selling
Web based applications is that, once you have sold a
product, you have to maintain it and keep your server
alive for the rest of your life. Large companies such
as Microsoft or Adobe can surely afford it but, as far
as I am concerned, I am scared by the idea of having
to refund thousands of customers if something goes
wrong with my server and I lose the data stored on it.
Comment by Pasquale Esposito [http://www.espositosoftware.it] on September 20, 12:22

Local Versus Web Applications and Office Suites 

For me web app is better for:

-casual users (check my bank account for 5 mins every 
day)
- access from everywere at any time 

but for heavy use in an internal network (let's say 
user interface for an ERP application, used from 
clerks for 8 full hours) nothing actually is better 
than a desktop application: much more responsive, 
much more easy to use, if well architected is not as 
mouse-dependant as the web app as Luigi said.
Plus with a web app you have two possible points of 
failure: the server where data and the web app are 
hosted, and the internet network. What kind of damage 
could be for a company having the whole ERP system 
stopped for some hours because the telecom company 
stopped the service for a failure or maintenance of 
the network????

By the way, I've tried to use google apps to share a 
simple spreadsheet with my remote co-worker. Well, 
was a real pain compared with my local openoffice 
(that has its own problems, too...). It drove me 
literally crazy...

And, at the end, seen from the programmer' point of 
view, how much time is required to obtain the very 
same user interface in web compared with a desktop 
application? And what is easier to debug????
Comment by Roberto Icardi [] on September 21, 01:40

Local Versus Web Applications and Office Suites 

Take 2 minutes and try to count how many local,
desktop applications are installed in your machine
that you CAN'T live without, and there is no web based
substitute. Well, I stoped when I reached 20. You?

Best regards.
Comment by Alexandre Machado [http://alexandrecmachado.blogspot.com] on September 21, 03:15

Local Versus Web Applications and Office Suites 

"And even when the browser will be the OS"

That's a knuckleheaded idea at best.
Comment by Rich on September 21, 18:45

Local Versus Web Applications and Office Suites 

Well, the case of Local Versus Web is not how 
difficult it would be for us to maintain or develop.  
It is always "what does the user want", and "why not" 
from the user's point of view.

Major applications that use the mouse (like Amazon) 
for navigation and selection may be OK.  Don't fight 
those if the users want those on the web.

Those that involve a lot of data entry, may have data 
sensitive in nature, a lot of computations and/or 
data access based on user entry must be local for the 
benefit of the local user.

When we explain it like that, the customers/users can 
see that their particular should be local and not web.
Comment by Eduardo A. Salgado [http://www.onedomain.com] on September 21, 20:56

Local Versus Web Applications and Office Suites 

 Local applications can leverage the resources of the
machine much better, but they should be designed to
tackle the mobility issue, for example by putting both
the application (as a simple no-installation-required
executable) and the user's database in a removable
device, like a USB pen drive. So you can carry them
around easily and have them work where you have no
(fast) internet access.
In fact, the media could contain executables for
different platforms, with a common database/data
format, and work seamlessly even in mixed environments.
Mobility is very important, but the web-based approach
is not necessarily the best in every situation
(availability, data security, speed, reduced
functionality, ...), as pointed out by other posts.
On the other hand, the "old" model of having an
installed application tied to a specific machine, and
requiring a long/complex installation (or even
installation at all), is really annoying and no longer
justifiable, except for very specific use cases, for
example workplace products tied to the workplace
environment -- but most of those are on web app model
already.
In an application development framework, it would be
nice to see a lot of attention to eliminating
dependencies on the installation process and to
supporting execution on the widest set of platforms
with a single source. I count all major versions of
Windows as distinct platform, so Delphi is already
more than half-way there. It would be nice to see that
extended to the Mac and Linux, with a language/library
that shields developers from the subtle platform
dependencies one has to deal with in C++.
Comment by Sebastiano Bussi on September 21, 21:08

Local Versus Web Applications and Office Suites 

Frankly, nowadays instead of bringing applications 
around on a USB pen I prefer to bring with me a 
device not much bigger able to run the application 
themselves - a smartphone or netbooks are much more 
pratical (although more expensive). Given the 
hardware limits of netbooks, they could be great 
targets for a devtool able to deliver small, easy to 
install, fast and memory parsimonious applications - 
only the OS and your applications, not four .NET 
frameworks and a couple of Java ones, plus everything 
from Microsoft, Google and Adobe to run those web 
applications you encounter.
"Local application" may not always mean "local 
storage" only. I've always seen Internet as 
a "transport", not a "GUI". For example why keeping 
on using the inflexible POP3 for mail and store all 
mails locally, when IMAP4 is much more pratical and 
can easily sync local mailbox with a remote one?
It's years it has been offering the same services 
Google is trying to offer with its strange 
hybrid "web" applications. But if Google does it in 
the most uselessly complex way "ooooh! aaaahhh!". If 
an humble IMAP4 client does it as it has done since 
IMAP inception "that's old stuff, let's do it again 
in Javascript with a proprietary protocol over 
slower, connection less HTTP".
On my smartphone using a local IMAP4 application  is 
much more practical and faster to read emails than 
gmail web application. I may use gmail web front-end 
to quickly check mail when not at home, but managing 
the mailbox if far easier using Thunderbird.
Comment by Luigi D. Sandon on September 22, 00:37


Post Your Comment

Click here for posting your feedback to this blog.

There are currently 0 pending (unapproved) messages.