Slashdot Log In
People Don't Hate to Make Desktop Apps, Do They?
Posted by
CowboyNeal
on Mon Apr 09, 2007 09:32 PM
from the all-not-yet-lost dept.
from the all-not-yet-lost dept.
Annie Peterson writes "Paul Graham has been making the argument that desktop development is dead — That's his premise for declaring Microsoft dead as well, and he claims that no one out there likes to develop for the desktop anymore. But that's not true, or is it? Desktop development is easier, faster, more productive, and infinitely more enjoyable — right? The question is, since web apps were originally built on desktop applications themselves, have the tables flipped? Or is it just wishful thinking?"
This discussion has been archived.
No new comments can be posted.
People Don't Hate to Make Desktop Apps, Do They?
|
Log In/Create an Account
| Top
| 233 comments
| Search Discussion
The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
I like developing for the desktop (Score:2)
Re:The real growth is embedded/mobile (Score:4, Informative)
(http://babelfish.alt...%2F%2Fslashdot.jp%2F)
Passe... (Score:5, Funny)
(http://slashdot.org/my/logout)
Re:Passe... (Score:4, Insightful)
(http://c63.be/)
Re:Passe... (Score:5, Funny)
(http://slashdot.org/my/logout)
I did in '03, but then I lost my pencil.
the problem with google apps (Score:5, Insightful)
(http://www.forensic-data-svc.com/)
Then i'm glad i don't rely on ajax apps or anything to get work done. While corporate customers enjoy a level of reliability that the average home user doesn't even dream of, being chained to the internet, yes, being chained to hotspots or cell towers for mobile internet is a drawback that the average user can't consider.
While php and perl are great, people like to think they're somewhat self reliant, and relying on outside sources is good every so often, you don't hire consultants to do payroll for you.
The web apps are like consultants, you bring them in for activities that is too expensive to implement and are only needed for on demand, but you don't have them do mundane activities that you could hire someone full time and not lose money on.
Firefox 3.0 (Score:4, Interesting)
Re:Firefox 3.0 (Score:5, Insightful)
I'll believe it when I see it.
Sorry, I just can't be optimistic about this. You shouldn't be, either.
Look - today's web browsers can't even really get offline web page caching right. We're about a decade into the WWW revolution, yet browsers still can't passively save all of our web accesses and show 'em to us again when we're offline. I'd love to have my browser cache all of Slashdot's articles, and BoingBoing's, and Fark's links, for later offline browsing... yet it can't do that. The best we can get is RSS, which, frankly, is crap... it's like Gopher in HTML.
If browsers can't tackle the very simple task of caching routine HTML for offline access... what gives you confidence that it will cache complex AJAX applets with even minimal usability?
- David Stein
Re:Firefox 3.0 (Score:5, Informative)
I'm not sure why I should adjust my expectations to technology according to your misuse of technology.
Todays browsers don't get offline caching of Slashdot right, because Slashdot is an online application, and says so:
HTTP/1.1 200 OK
Date: Tue, 10 Apr 2007 12:48:30 GMT
Server: Apache/1.3.37 (Unix) mod_perl/1.29
SLASH_LOG_DATA: 07/04/10/011220
X-Powered-By: Slash 2.005000152
X-Fry: I don't regret this, but I both rue and lament it.
Cache-Control: no-cache
Pragma: no-cache
Vary: User-Agent,Accept-Encoding
Connection: close
Transfer-Encoding: chunked
Content-Type: text/html; charset=iso-8859-1
In order to read Slashdot offline "right", you need to break HTTP. And we all know what happens to naughty boys who breaks standards. [greenspun.com]
Offline webapplications will work offline because they will be designed to work offline. They will get safe caching of resources and a stateful browser-DOM-object to save data to. It's not exactly rocketscience.
Re:Firefox 3.0 (Score:4, Funny)
You make few assumptions which aren't always true (Score:4, Informative)
(Last Journal: Thursday April 19 2007, @10:15PM)
In particular, it seems a shame to pigeonhole Perl. Using Perl and readily available libraries, one can develop console programs, GUI programs, daemons, or web apps. With Tk, SDL, OpenGL, WxWidgets, curses, GTK, Win32::GUI, or Prima, few languages have as many options for interface libraries last I checked. Just because Perl is very useful for web development doesn't mean it's not useful in other areas.
In a fun twist, I had to develop an app that worked the same over the web or on a Windows desktop with no net connection and no installation. It's written in PHP and Perl with a little client-side JavaScript and runs an Apache+MySQL instance from CD. So it's a web app, but it doesn't require net access.
And BTW, ADP (American Data Processing) and similar companies makes a lot of money doing payroll for other companies.
Re:the problem with google apps (Score:5, Insightful)
True, having your apps - and data - locally stored is very helpful. I'm sensitive to that - every time MS Office insists on using "Office Online" for my help queries, I silently curse up a storm. It's a perfect example; this is a simple function that used to execute immediately.
But that's only one of a few really key advantages of desktop apps over web apps. I've spent a lot of time [djstein.com] designing a lot of apps (as a pro/am enthusiast), and here are just a few of the very many other reasons for preferring the desktop environment to the web environment:
Again, those are just a few issues. I can come up with a whole lot more.
Face it, people. Web programming is absolutely the future... but at present, it's still a toddler. Web 2.0 is the equivalent of a two-year-old: fussy, colicky, prone to outbursts and temper tantrums. And it's still teething, so when it misbehaves, you end up with bite marks.
I think it'll take a solid six years or so before web programming is as easy as desktop programming. Until then, I'll ke
Re:the problem with google apps (Score:5, Insightful)
(http://powerlord.livejournal.com/)
I sincerely hope you mean they're having trouble getting the code behind the button to work, because I'd be extremely worried about the state of web developers today if they can't write <input type="button" value="Text on the button face" onclick="functionCallHere()">
or a form consisting of only a submit button (if you're making it compatible with browsers that have no scripting or have scripting disabled).
The term web application is not often applied to Java any more. The term "web app" these days often refers to AJAX (formerly known as DHTML) apps and, less often, Flash apps.
However, you're right, on the whole desktop apps have better performance than web apps.
Which brings up another point not yet mentioned: The sad state of affairs with web application GUIs is almost entirely Microsoft's fault. IE6 and its rather poor support for CSS2 and DOM, which weren't addressed for 6 years, let alone fixed, coupled with its widespread use has made it the lowest common denominator.
sure (Score:2)
(http://thepeckfamily.us/ | Last Journal: Saturday November 10, @10:49AM)
that there is a demand for disconnected apps is undeniable. all one has to do is look at the disparity between the number of households with computers and the number of households with dial-up or less.
me, i prefer desktop apps in a number of areas - personal finance, my office suite, games, my coding tools - and there are probably more.
at the same time, on those rare occasions i find myself sitting somewhere with my laptop but no internet access, i feel lost to some extent. i am very, very used to having both types of software at my disposal constantly.
From Apple Basic to Pascal to MASM... (Score:1)
(http://khaaan.com/)
Desktop app development (Score:5, Insightful)
(http://blog.280z28.org/)
Yes, some of us do hate desktop apps. (Score:1, Insightful)
Might be in the minority here.. (Score:5, Insightful)
(Last Journal: Tuesday August 30 2005, @10:49PM)
I am asked quite often though, "Well why don't we just stick this on a web page and then we can get it from everywhere!" and I usually demur some and note that we dont need it to when anyone on the intranet can get to it anyway and there is no reason for some of these apps (or data) to be accessible outside of the corporate intranet.
For some reason, I just don't like ASP.Net or PHP or JavaScript, i've written small interactive web things in them, but it takes me way longer to accomplish something useful on a website than it does doing a desktop application. I suppose this probably has to do entirely with familiarity, but I also hate how slow websites typically are when you do something overly graphical or complex, whereas it runs great on the desktop application locally.
Browser as bad user interface (Score:4, Insightful)
(http://www.puppethead.com/blog/)
iTunes is a dedicated desktop app that uses internet data intelligently, but Apple made a good choice not depending on a browser. Compare Google Maps to Google Earth, which is more responsive and flexible? And then there's the comparison of something like QuickTime or Windows Media players and the pseudo video players written in Flash with bad control responsiveness and limited functionality.
Re:Might be in the minority here.. (Score:4, Interesting)
(http://members.cox.net/bungi/)
Having said that, a web application will never have the level of control that a forms-based one has, no matter how fancy your JavaScript is. Truth is, the browser is a crappy platform no matter how you look at it. The web illuminati proclaimed the desktop dead ten years ago and now again on the tails of GMail and the half million good and bad "rich" applications developed apparently for the specific purpose of showcasing how utterly screwed up the browser as a platform is.
But if you work for a living you probably have to go with the flow, so "Ajax" it is until the next fad comes around. Personally I think Java/.NET/Mono and the like with a good forms front end and a really powerful matching backend infrastructure is going to be the next big thing along with XCOPY deployment and zero impact installs. CPUs and memory are catching up to managed frameworks and writing a web service (or a client) is laughably simple now (I remember hand-coding my WSDL and walking in the snow uphill both ways, etc).
In any case, the fun part is being int he middle of it all =)
I do both (Score:2)
For example, I have done desktop development for over 10 years, I am more experienced at it and easier to make a usable UI. Drawbacks: harder to build and test, but easier to step debug - unfortunately, my current employer has a MESS of a desktop app full of
Web apps, I have only done for about 5-6 years tops, however the UI flexibility is less powerful, the "stateless" state of doing web programming is a bit more of a challenge. Easier to set up and get running fast, harder to step debug (unless you have just the right dev environment) and can be VERY hair raising. Oddly enough I am doing a contract job for a company right now, purely in ASP.NET 2.0 (C#) and I am having a blast. However, I AM fortunate to be able to build from the ground up so I know what everything is doing.
People hate developing applications (Score:4, Insightful)
Re:People hate developing applications (Score:5, Insightful)
(Last Journal: Monday January 29 2007, @06:49PM)
It's not even developing apps anymore. It's assembling apps from bits of prefab code. The kicker is that only some of it is good quality and can be picked up and mastered quickly.
These days, coding is grabbing some barely begun project that does just enough that you feel it's better to add to it than start fresh, using code generators (SWIG, yacc/lexx or Antlr, and doesn't VB have some wretched auto generated window manipulation stuff? etc.) then spending time ferreting out and fixing subtly broken bits or wondering if you missed some little detail about how to properly use the tools. Then maybe get another piece or two by running some Fortran source code thru f2c, call functions from lots of different libraries, grab some modules off cpan, try to realize the advanatages of OOP by reusing other people's classes, search Sourceforge again for yet more pieces, glue the crap together with shell scripts, and try to avoid dallying in makefile hell by dallying instead in automatic makefile generation hell. Constantly search the Internet for this and that error message.
And that's just "development". Then there's all kinds of support stuff to figure out. Wrestle with your choice of source repository be that cvs, subversion, rcs, or whatever, figure out what to set to what in the environment on stuff like Java's CLASSPATH, muck about with this and that IDE and try to get the compiler and debugger to talk nicely to it or live with vi when you get tired of trying to figure out why you're not having any luck getting X to tunnel through ssh. Either way figure out how to twiddle the colors for the syntax highlighting or squint to make out those letters that were displayed in dark blue on a black background. Bone up on emacs to figure out how to get it to stop replacing backspace with ctrl-h, and binding ctrl-h to the help when being used remotely. Repeat "./configure;make;make install a library or 2, discover they depend on yet other libraries" until "all dependencies satisfied or you run up against some missing or broken piece and will have to search for alternatives." And still you're not done. How about Valgrind? Profiling? Maybe some kind of package to automate testing? Automated backups of the work? And you're never really done-- there are always upgrades, and there's always deciding when the tradeoff of having to redo your environment is worth the bug fixes, new features, and so on.
Life was so much simpler when they were teaching that bubble sort in the beginning C class, wasn't it?
I don't see desktop apps ever going away entirely. (Score:5, Insightful)
It's like when Java came out and some people said we'd never write C again. There are things Java is good for and has taken over, just as there are things web apps are good for and has taken over, but there is still a place for desktop apps just as there is still a place for C.
The kind of bold, sweeping statements made by this article aren't much more than flamebait in a pretty dress.
Give Me The Desktop (Score:5, Insightful)
(http://www.foobarsoft.com/)
I develop two things for a living. I work on a server back-end, and on the web front-end. The back end is easy. It's all Java, it's fun to develop for (there is challenge in some things, for example).
Then there are tons of front-end things I do. I hate them. It's developing the same code OVER and OVER (since we basically make copies of some parts to be used numerous times) and the glue code always has to go in there and is a pain. Then there is the scripting. Besides making things display right (which is a pain across numerous browsers), there is the functionality. "We want a select all checkbox." "When you update this date, it should update that date, unless this date is before than date except when...". Javascript is HIDEOUS. Can we just replace it with Python or Java even PHP?
Our problems are all user based. The users want it to work like a desktop application, but want it to be web based. It should respond fast and do all this checking and such, but it can't be a real application. You should be able to move forward and backwards without things going weird (can be tough to do in the stateless-ness of the web) but it can't be a real application.
We want an application, but we want it to be web based. We want it fast, but it must be made in HTML and Javascript. Blah blah blah.
I would LOVE to do more desktop applications. I wish I could.
I wish users would get over this stupid "lets put everything on the web" stuff. There is a fair amount of what we do that I can see being web based (like most of the reporting type stuff external users use). But all the management stuff we use in house would be a much better fit to a real application than the web applications we are using now.
Please, PLEASE.... bring desktop applications into vogue. Java allows right-once-run-anywhere to just as high a degree as HTML/JavaScrpit, if not more. Takes less bandwidth. Can run much faster. Can do client side stuff easier.
Re:Give Me The Desktop (Score:4, Insightful)
You don't copy code: You generalize it into a function.
Re:Give Me The Desktop (Score:4, Insightful)
(http://www.freedos.org/jhall/)
Trust me, just wait a little while, and desktop applications will be all the rage again. If you've been in the computer business long enough, you've seen the shift from "timeshare" server, to the desktop, back to server (thin client), back to desktop, back to server (Java), back to desktop, back to server (web applications / ajax, web 2.0). It's only a matter of time until the pendulum swings back to desktop.
Web apps are great, except... (Score:5, Insightful)
(http://powerlord.livejournal.com/)
Web apps are great, except...:
Why not just leave the web to things that require the Internet and keep applications on the PC?
Re:Web apps are great, except... (Score:5, Insightful)
(http://slashdot.org/)
Because DOWNLOAD and INSTALL are two words that make too many users pass out upon hearing them uttered. If an IT Department is doing both of these tasks on their behalf, they too faint when they have 1,000+ users.
Do you have the right OS? Right version? The right drivers? Is your antivirus interfering? Is your Registry befuddled?
It's much easier to answer these questions once -- for the browser software -- and be done. Need to upgrade? NO PROBLEM! Upgrade on the servers only and we're off.
Now I'm sure EVERY ONE of my above arguments can be refuted, drowned with "gotchyas", banged with exceptions, and slammed with a "not exactly" or two. But I'm not the one that needs convincing. Convince management, cuz they are brainwashed that all my above points are Irrefutable Law of Common Wisdom. It's an uphill battle to show them otherwise. They are completely sold on the Browser as Platform concept. And that's where their pocketbooks go. So that's where commercial dev shops go.
I'm not saying webapps are without any merit, but, yes, people tend to go overboard and shove a square peg in a round hole.
No, at least NOT YET (Score:1)
(http://www.galvao.eti.br/ | Last Journal: Monday March 19 2007, @06:06AM)
As for desktop apps, they are, still, faster and more reliable than their web counterparts, not to mention that a whole cultural change must occur so web apps can really prevail.
I've done some desktop development - only to amuse myself, really (so I'm not the best man to write statements about it) but I'll take my chances: the amount of code needed to transform a shell app into a desktop one is huge, so I really don't see any advantages on it, being a geek.
OTOH, web app interface development seems to be a lot easier and shorter than QT, GTK, etc...
To web or not to web (Score:1)
Perhaps a better question might be, why on earth would coders waste time reading Graham's meandering opinions when they could be developing for the [web|desktop] instead?
For that matter, why would they be on Slashdot?
Meta-Desktop Apps ? (Score:1)
So as long as the IDE shall live, so shall the Desktop App!
All hail King WIMP !
Web? Desktop? (Score:3, Funny)
It runs faster! It is more secure!
huh? (Score:2)
(http://slashdot.org/ | Last Journal: Thursday February 27 2003, @01:40AM)
Say what huh? That doesn't even make sense.
Yes, I HATE desktop development... (Score:3, Informative)
illogical (Score:1)
Browsers weren't designed to run apps (Score:1)
It's all about the ubiquity of the browser -- i.e. it's already installed, the whole easy adoption jazz -- so most new apps get written for it. But anyone who had to debug Javascript, or trick the user interface NOT to accept multiple button pushes, or fiddle with browser implementation quirks & incompatibilities etc. KNOWS that we are worse off with this than desktop apps.
IMHO, about the only thing that validates the use of web apps is the easy creation of UIs that mostly contain text and images. Once we get to controls and business logic, HTML and Javascript are a PITA. And still, most of us are stuck with them...
Shyeah right. Dream on. (Score:1)
The article was about Microsoft being dead (Score:2)
But alas, I'm not new here. I expect this kind of misleading headline. Just thought I'd clarify for all those who have no intention to RTFA.
It's not hate, it's headaches. (Score:5, Informative)
(http://print-bingo.com/ | Last Journal: Monday August 04 2003, @12:43AM)
Tech support sucks big time. It's far, far, far easier to maintain, upgrade, distribute a web application than it is to manage a desktop application. A couple major web browsers and a couple major plugins pretty much covers every testing and support situation that you will face -- especially for intranet type situations.
For desktop situations there are a million variables: installers, bugs, spyware, permissions, operating systems and versions of OSs, non-existent user backups, differing service pack and patch levels... the list goes on. Most of these really aren't your problem as a software developer or publisher, but in reality, they often become your problem. That's in addition to the nightmare of supporting different versions of your program.
If the web can be applied to a situation, there should be no surprise that people will develop for the web.
Lack of killer apps... (Score:2)
I also have a tonne of desktop software I would love to use if it was more advanced and the computational power was there. I love Dragon's naturally speaking and not having to type since I'm a natural orator in my mind and the words just can't come out fast enough when I get going. Not only that but not having to type keeps me focused on what I'm saying.
Lots of desktop applications will have to wait further advancements in science and art of information interpretation, that is converting human data and crunching it as easy as we do.
I strongly prefer web apps (Score:3, Insightful)
(http://www.omegasphere.net/)
Perhaps it has to do with familiarity, but from my perspective, doing desktop applications (especially by the time you deal with all the extra support & deployment issues) is a real pain.
However, I will say that many people I work with do not share my enthusiasm for web apps. There is a huge technology stack to learn when you need to deal with the chain of technologies involved from the server to the desktop. All the quirks of different browsers take some getting used to, and it requires a different mindset. It also requires you hold the belief that a website can be an application, which, amazingly, many still do not have.
With all that said, there are still some things which are more suitably done as desktop applications. I think as things advance that list gets shorter and shorter.
Web-Apps? No thanks. (Score:1, Interesting)
No, really, you cannot sell standard software very good anymore. It gets more and more ridiculous to spend hundreds of bucks on something like Word, Excel, or even Photoshop if you can get similar programs for free. Even if you say that those replacements are not as good as the original, which I doubt, they are getting better and better. So what do you do if you are a mega-corp, which made most of its money from standard software?
You are starting your marketing machinery to tell the people that they need something you can provide, your open source competition cannot. Web based apps sound fine, for the provider. They need a big and expensive infrastructure of servers, which hardly can be provided even by large open source projects. They are the wet dream of every marketing person, being able to charge per use. Being able to get detailed using statistics and spamming you with ads. For the more criminal (more usual?) ones, I would take it as given, that they snoop through your content if this is technically feasible. Web based apps are technically inferior? Nothing a good marketing can fix....or perhaps it cannot. People are stupid, but it seems that they are not that stupid.
So, tell me one, just one advantage of web based apps, for the average user. Desktops apps are out? Yeah, right, and nobody needs more than 640K ever.
Desktop apps will never die. (Score:1)
(http://slashdot.org/~RedElf)
Privacy: If you're working on a creative project, do you really want it held at the mercy of some other companies security measures? Some things just need to stay local and behind the firewall to have privacy. Unfortunately the upcoming generation doesn't understand what privacy is, nor do they care while their rights are being erroded in congress.
Reliability: Instead of just having your computer up and running, you would now have to have rely on your ISP to not have technical problems. If that isn't bad enough, you also have to rely on some server at some company that you have no idea what kind of security, privacy, or backup policies they have in place. If that weren't bad enough, you also have to rely on their connection being up. Some data (most) is just better kept locally. Another problem with remote apps, latency. Nothing is more frustrating then waiting a long time to make a simple change to an open file.
Security: As was previously mentioned, do you know what kind of security, privacy or backup policies are in place at the company hosting your webapp? Do you really trust other people with your data?
Performance: Another excellent point would be advanced computer games, you don't really think AJAX is going to be capable of providing the same kind of experience that running the next big "Half-Life 2" locally would be, did you?
Web apps have their place and Desktop apps have theirs. Neither one will overtake the other, they will only serve the purpose to extend or inhibit depending on your current state of connectivity.
--
"Web 2.0" is about the lamest buzzword term I've heard in a long time, and I will personally punch anyone in the face I hear vocally saying it outloud.
O RLY? (Score:1)
This has nothing to do with desktop vs web. (Score:2)
(http://www.scarydevil.com/~peter/ | Last Journal: Monday September 26 2005, @06:53PM)
The long version:
* Web applications are developed interactively. You fix a typo, you hit reload, you see the results immediately. The interactive-versus-batch debate should have been over by 1980, but we still see dektop apps written almost completely in compiled languages that require a huge clumsy IDE.
* The part that runs in the browser is visible to the users, so when they are technically competant they can give you detailed feedback.
* It's automatically cross-platform.
* The problem space is reduced because web applications just can't do a lot of things, so people don't expect you to do them, so you don't have to implement them or explain why you didn't.
Any scripting language can give you the first two advantages... you don't need to write web applications to write in an interactive language that gives you immediate and early feedback, or that your users can dig into and improve.
Using a portable GUI toolkit like Tk lets you write cross-platform scripts as well.
And, ironically, using a toolkit that limits what you can do (like, say, Dashboard or Konfabulator widgets) can actually make programming more enjoyable because it reduces the problem space.
Which is why there are so many people writing little scripted plugins for *everything*. Firefox extensions. Applescript. Shell scripts. CGI scripts. PHP. Tcl/Tk. Perl. Widgets.
It's like the impact UNIX had on command lines in the '70s. Your mainframe programming environments were, like GUI environments now, very complex. You could specify everything, down to things like the virtual block size of your virtual disk. UNIX reduced the kinds of things you could do in your program... and it turned out that being able to specify the block size of your virtual disk wasn't something people really cared about.
I've been waiting for a similar simplification to take over the GUI world for years, something that dumped the irrelevant mainframe-style super-detailed API and concentrated on the essentials. I had hopes for Plan 9's window system, but Bell Labs played that too close to their chest. Tcl/Tk is wonderful, but if you don't "get" lispy reflective programming you're not going to like it, and Perl/Tk hasn't taken off either.
The browser has moved into this space by default, because it's solved the distribution problem, but it's not a simple programming model. It's not the answer, and neither is any proprietary platform built on top of it. It's been over 20 years now that I've been waiting for something to really fill in the 2d desktop... and I'm no longer expecting that anything will.
Something like an open source re-implementation of Konfabulator, maybe... it could be built on a standalone Firefox XUL engine with no browser component dragging in the horrifying security issues that trying to run trusted and untrusted applets in the same engine bring.
But... if you want desktop programming to be as fun as web programming, find a scripting language with a GUI toolkit and start playing...
It's like claiming Linux is better than Windows (Score:2)
(http://paul-robinson.us/ | Last Journal: Thursday October 25, @07:28AM)
Note: An expanded version of this reply appears as an article on my blog [paul-robinson.us] and you can also read more there. Because Slashdot only allows shorter titles, the title of the article there is "The Rumors of Microsoft's death are clearly exaggerated."
First, on the issue of Linux vs Windows (for the title of this article): Windows sells more because Microsoft got there first, there is tremendous inertia, plus, until recently, there wasn't that much available that wasn't an application running on Microsoft software. And while using Open Source is almost as good as proprietary it ain't there yet; the usability of X Windows over Microsoft Windows still has some cracks that need to be filled. Also, Visicalc was the "killer app" for the Apple II; Lotus 1-2-3 was for the IBM-PC; where's the Linux "killer app"? (I'll give an example of one that could have happened on my blog.)
I think I agree with a comment someone (or more than one person) said in the various comments linked around this whole comment churn, in which I'll paraphrase, "Anyone who thinks Microsoft is dead or that Web Applications are better than desktop ones has been sucking down way too much of the Web 2.0 Kool-Aid."
My own opinions are that the tools for implementing Web-based applications are far too primitive. Like with pushing Linux over Windows: it (they) aren't there yet. As has been noted, prior to PHP you had to design a CGI application (usually in C++) in which you wrote a regular program and then stuck on "a bag on the side" to make it run as a web service.
Having done both, I am fully aware that a web-based application is harder to develop than a desktop one. A Linux desktop application is harder to develop than a Windows desktop application. A text-based application is about equal on either platform, but it's a hell of a lot easier to develop even a simple non-gui desktop application than anything running as a served application through a browser. The tools for web development are different, are not as powerful, and more expensive, both in terms of operational requirements and development requirements (e.g. it's a lot more work to secure a web app than a desktop app.)
There are more details, (hint, hint, you can read them on the expanded version of this comment on my blog [paul-robinson.us]) but I'll stop here, and just say that the claims of Microsoft's death are premature.
Web dev, desktop dev, DB dev (Score:1)
(http://www.igneosoluciones.com.ar/)
I like web development a bit, but I really BELIEVE in the desktop. Yet it's reasonable to think that the Google generation of home users will rely more and more on apps that are just an URL away.
But, again, I believe in the desktop. Currently, duplicate desktop UI functionality in a web page is painful. And not everyone wants to pull his hairs out writing a FPS relying on DIVs and Javascript!
On the other hand, I hate DB desktop apps, as year passes and few tools/platforms are really up to the task of deliver results as easily as it should.
Love desktop apps? What? (Score:3, Insightful)
Web apps are not desktop apps. They are different. You have different reasons for writing a desktop app than you do for a web app. Web 2.0 interfaces may be a fad, may be painful to write, etc., but webapps as an entire class just don't fit that bill.
Write once, deploy instantly over an entire organization. Write in the environment you like, and yet the whole org doesn't know you wrote it as a wrapper over a bunch of perl scripts you use as command-line apps. Write something using one database connection (where that's a legal option), and thus, write cheaply. Write using a simple interface with fairly low expectations, so that anyone can use it without training (unless you do a VERY BAD JOB INDEED), it takes minutes instead of hours to write, and can work on every single machine of any sort in the org.
Folks, web apps are the best thing since sliced bread.
Desktop apps are a BITCH. As a linux guy, they mean I have to work under windows. That's a showstopper, right there. As a desktop support nightmare, they're immense. They mean you have to standardize on a version of windows in the org, have to have minimum requirements, have to compete with viruses, self-destructing OS installs, etc. Meanwhile your design phase gets much longer, because expectations are higher.
Yes, complex apps often work much better as standalone. Yes, interface design for them is much more complicated, and thus can be more rewarding. But most companies need VERY FEW of these. Web apps are a much better choice for a huge amount of what most companies do. And as programmers, they allow us to maximize our impact on the productivity of the org. Where you can use web apps, you should. For programmer productivity, LAN supportability, and speed of delivery, it's like night and day.
Fundamental problem: AJAX = mistake (Score:2)
(http://www.mobydisk.com/)
Which of the following is the _best_ environment to develop a zero-deployment cross-platform GUI application?
1) Java applet/Java web start
2)
3) HTML+CSS+Javascript+HTTP+SOAP+XML+(Python|PERL|Ru
The last option is the slowest, most complicated, and hardest to develop for, with the fewest features, and is most brittle (changes in OS, software version, etc. may break it). Unfortunately, it is also the only one everybody has on their computer.
The reason for this is that we had several competing standards, and they all competed well enough to hold each other from gaining critical mass. And in the mean time, a mish-mash of technologies never intended for this purpose gained enough momentum that it snuck onto everyone's computer before we realized what it was. We had AJAX around for years before the general developer population realized it existed!
I don't see a way out. We are stuck with the AJAX solution unless we all decide to get together and agree to some other standard. But there is too much infighting for that to become likely. If Sun had done things differently, we would all be writing Java applications today. But it didn't work-out that way. I, for one, welcome our over-complicated AJAX development tools - since I don't really have a choice anymore.
Desktop development easier? (Score:2)
From my perspective as something of a time-strapped hobbyist developer who mostly makes stuff for my own personal use, the easiest, fastest, most productive, most enjoyable, and least stressful way I've found to make useful applications with pleasant interfaces to be run locally is...Ruby on Rails.
False Choice (Score:2, Insightful)
(http://instacalc.com/)
People often get stuck in a false dichotomy when choosing between a web and desktop app.
The simple answer is to use the web version for what it's good for (centralized updates, rapid development) and the desktop version for what it's good for (performance, offline access).
Some apps run a local webserver on a non-standard port (Yahoo Music Engine) to create a hybrid model. Javascript/HTML can be a very effective rapid prototyping tool.
For instacalc [instacalc.com], I have an online version and downloadable gadgets to fill this need. I use both thunderbird (fast access to mail, offline access) and gmail (access from any computer) to read my email. The "secret" is letting a web app be a web app, and a desktop app be a desktop app. Use the right tool for the job.
I still love to develop for the desktop... (Score:1)
(http://www.ccorpsoft.com/)
middle ground (Score:3, Interesting)
From my hazy memory, it had these successes:
* a crashed app (which was rare anyway) could be restarted right where it left off
* clicking, drag/drop, typing, copy/paste, scrolling, and resizing were as fast as the host OS was capable of since most of the time these didn't involve the server
* very little installation headaches since there was no business logic, databases, or special-case code on the client side, and the set of available widgets didn't change that often anyway
* new servers could be tested by just pointing the client at them
* server could be upgraded at our convenience
* one server could handle dozens of users and the load was much lower than citrix, RDP, or X11 type of model since the whole GUI stack was offloaded to the client not just the final bit slinging
* protocol wasn't that complex. "this widget with this data goes here" then "send a message when the user finishes doing things with it"
* multiple windows could be open and be unrelated, so a server could make it look like you were running multiple apps even though it was just one GUI process and one server process
* response over slow network wasn't that bad. the most back-and-forth communication mostly happened at points in the app where users expected things to be slow, like when you click on "Okay" or select "New..." from a menu so we didn't get many complaints.
Okay, obviously we didn't invent this, but other attempts always seemed hobbled somehow. ActiveX and java applets are visually sandboxed and have a tough time breaking out into looking like a real app. Firefox had some experimental widgets that were actually pretty cool but in actual use they were laid out on the page in a very HTML-ish fashion and later withdrawn for security concerns.
Anyway, I just want to share this as kind of compromise between desktop and html-based apps that seemed to work particularly well for us.
Why Not Both? (Score:1)
Just write your desktop app and then deploy on Citrix...
/donning flame retardant underwear and ducking for cover.../P.
Web apps get a bad rep because of AJAX (Score:1)
yeah, AJAX is so cool, but it is full of security issues, and is more difficult to get working with different browsers and OS types. Flash on the other hand has a lot of great examples of rich applications, and with the Adobe Apollo you can move applications over to the desktop to take them offline. Amazon, Ebay, and others are doing a lot of work with Adobe, and who else has such a wide distribution capability other than Adobe's flash player?
desktop vs. web apps ??? (Score:1)
Writing apps for a specific OS is obsolete (Score:1)
Then VISTA comes out, and my app breaks.
Or a friend wants to run it on is MacIntosh or Linux system, and can't.
IMHO, desktop apps equals to limiting the customer base, and giving the developer much work with patches and OS-related issues.
The future is embedded some people say, or at least, it runs in a web browser.
I don't disagree.
However, the desktop locked to a specific OS as development platform, is dead. In my professional life, I haven't worked on desktop apps for 8 years now. But I am quite good at web-apps now
Re:I used to respect Paul Graham (Score:2, Insightful)
If the person says something that can be backed up by evidence, then does the source really matter? If Mussolini said to "Love one another", does his actions reduce what is said? (Be aware that Mussolini was much worse than Hitler, his group killed 20 million 'indigents' vs 10 million for Hitler)
Base ones word upon their worthiness of said word, not among their prior words, nor among their actions.
Re:Rails (Score:1)
He's even building his own derivative language called Arc.
Re:idiot... (Score:2, Informative)