 |
Bandwidth, Installers and Schema Updates
Posted by wiverson on September 22, 2003 at 07:06 PM | Comments (12)
I recently wrote an article, "Create Desktop Applications with Java-Based Web Technologies" for O'Reilly ONJava.com, and I was just pondering some of the feedback I got. (If you're too busy to read the article, basically I write about using a web application in a bundled Tomcat to build a desktop application w/installer).
First off, people seem to think that bandwidth is *awfully* cheap nowadays - in my lead in to the article, I talk about how servers and bandwidth are expensive, and several people commented that bandwidth is more or less too cheap to worry about. I agree that it's true up to a point, but the real heart of my comment is that running a 24/7 server operation is beyond most small development houses.
More interesting, several people seemed to think that building an installer for end-users was more or less a waste of time. There was also a comment that Java Web Start was the better route, and that Swing is the proper way to go for all client development.
I really like Swing for certain kinds of development, but I've always been a bit surprised at how hard it is to build a really good user interface with it. I would be the last person to say that we should all throw out all of our Swing apps and reinvent them as web apps. Instead, think about all of that great software written for the web and locked away on servers in the form of JSP code. We talk about digital hubs, but the only way I have to program my Tivo with my Tungsten C is via the Tivo website (I do have a web browser on my Tungsten C, but I doubt I'll be running Swing apps any time soon...).
The one I keep coming back to, however, is the "we don't need an installer" concept. Looking at a bunch of the software I've got, open source, Java, and otherwise, it's intriguing to see how much (especially open source stuff) has no installer and/or a truly miserable installation processs. I'm trying to figure out how common this attitude is among Java developers. Do people really not think that software needs installers? (As an aside, I will confess that I use a lot of development tools, which seem to suffer from this attitude more than other software).
So, I'll get up on my soapbox. People need good software that's both easy to use and easy to install. Developers appreciate the time and investment as well. I've given up on trying out a number of potentially interesting packages based on the incredibly cumbersome installation requirements.
I feel a little weird saying this - it seems awfully common sense. But, again, looking around at the state of affairs...
In any event, the heart of the article, including the real world "life story" behind the need for the technology, is something I'll be talking about at the upcoming O'Reilly Mac OS X conference and also at ApacheCon (from somewhat different angles). If you're going to be going to either show, please come by and let me know what you think...
Oh, and one final note. I mentioned in an earlier post that I was interested in looking for some way to automatically update the schema in a database to the current rev for an application, and it looks like Hibernate supports this capability. You can find some of the info here and here. The upshot is that you use the net.sf.hibernate.tool.hbm2ddl.SchemaUpdate class. So far, it seems to be working pretty well.
Bookmark blog post: del.icio.us Digg DZone Furl Reddit
Comments
Comments are listed in date ascending order (oldest first) | Post Comment
-
Developing usuability
The installer is just an example (one of many) that shows that developers shouldn't be in charge of usuability decisions :). Well, ok, I've met a couple developers in my time that were really good with usuability choices, but mostly developers don't see things from a user perspective. And even if they did, they're too close to the software to see it from the view of a new user.
A good install, a good help system, intuitive icons/layout, etc are all part of the user experience and are frequently the first things to end up on the chopping block in a developer-centric project. Given most open-source projects are completely developer run, it's no shock where the priorities come. Not that there isn't
It's also the difference between getting code to work and shipping a finished project. It's been said it's 3 times harder to write working code than a research prototype and 3 times harder yet to write production quality code than just working code. A lot of that increase comes from the end user oriented elements.
I suppose, like writing a book, you have to know your audience. If it's all developers then you can probably get a way with developer-centric usuability issues. But if you're trying to hit the mass-market, you've got to build/write for it.
Posted by: ckessel on September 23, 2003 at 07:54 AM
-
open source
Well... if it's open source... and you really care... you could always make a contribution :)
I'm sure that the developers would appreciate...
Posted by: zoe_info on September 23, 2003 at 10:55 AM
-
Sisyphus and schema update
Why bother with a traditional database in the first place?
Posted by: zoe_info on September 23, 2003 at 10:57 AM
-
Sisyphus and schema update
That's an *excellent* question.
The biggest reasons that I can think of are interoperability and skill availability. Much the same way that ZOE can be accessed via ftp, pop, smtp, a *lot* of people know how to work with relational data via SQL. If you can address a database via JDBC or ODBC, you can do all sorts of amazing/freaky things that you'd never imagine doing in the first place.
Another reason is that I've found that a lot of organizations have standardized on one particular database or another (oft there's a specialized admin for that db) and it's a lot easier to bring in an app if it uses that db. Some of that is technical, and some of that is political, but such is life. :\
If I was working on something where it was a) closed box and/or b) I knew I would be the only one working on it, I wouldn't care. Case in point, you can get mini-SQL-based relational db for Palm programming, but it's obviously not worth it for most apps - you use the built-in stuff instead.
Posted by: wiverson on September 23, 2003 at 11:12 AM
-
open source
doh - and the sword upon which I fall whenever I talk about open source stuff... ;)
I've got a list of stuff that I want to do for open source projects. e.g. contribute some stuff fixing some Mac OS X bugs for PCGen, package up and send in the integration of Tomcat and hsqldb stuff I've got, my one-layer-of-indirection JDBC stuff I've got for Dreamweaver...
In the meantime, I'm going to be doing consulting/writing for my main cycles, but I'm looking forward to the day I "retire" and can do stuff like this for fun whenever.... ;)
Posted by: wiverson on September 23, 2003 at 11:16 AM
-
Sisyphus and schema update
> If you can address a database via
> JDBC or ODBC, you can do all sorts of
> amazing/freaky things that you'd never
> imagine doing in the first place.
Umm... perhaps. On the other hand, why would you want to give third party access to your raw SQL data? Would it not make more sense to provide an application API (perhaps through XML-RPC or such) for third party to tap your application _logic_ instead of its raw bytes?
Posted by: zoe_info on September 23, 2003 at 12:11 PM
-
open source
> doh - and the sword upon which I fall
> whenever I talk about open source
> stuff... ;)
hehe... looking forward for your contributions :)
Posted by: zoe_info on September 23, 2003 at 12:13 PM
-
Sisyphus and schema update
Well, for starters, it's a lot easier. ;)
I'm mostly only thinking of this from a read-only perspective. Using ZOE as an example, I could see writing a couple of simple select statements to do generate reports for things like "how many emails did I sent to people in the foobar.com domain last month," "how long does it take me to reply to messages on average," "show me all of the messages sized at over 500k sent over a month ago." You could then dump that data into a spreadsheet or whatever.
Obviously, a nice XML-RPC interface for all of that stuff would be preferred, but I'm not sure if XML-RPC and SOAP are there yet for that sort of thing on a casual basis.
Data writes to the SQL are a bit more hairy. I'm looking at Hibernate right now to handle my data/o-r mapping stuff, and it's not clear to me how that interoperates with other open connections, esp. wrt things like write-through back to the db caching.
I just looked around a bit and didn't see on the FAQs or docs - what does ZOE use for persistence?
Posted by: wiverson on September 23, 2003 at 02:28 PM
-
Developing usuability
I think you've nailed it. Open Source developers like to spend their time on the fun stuff, writing code, not on things like easy installation, help system, pretty GUI's, etc.
We (ejbsolutions.com) have built a business around providing these missing ingredients for more than a hundred of the most popular Open Source projects. We're trying to add all the "finished product" items that the original developers tend to neglect.
It seems to be a good combination and we've gotten very positive feedback from the Open Source development community. They work on the parts they like and we try to get paid for doing the dirty work (easy installation/configuration GUI, documentation, integration, sample applications, knowledge base, tips/traps/workarounds, smooth upgrade path, etc.).
Posted by: rodcope on September 23, 2003 at 03:03 PM
-
Sisyphus and schema update
ZOE uses its own object storage and querying mechanism, which is built upon a mix of Lucene, JDBM and ObjectInput/ObjectOutput. Check the SZObject package for the gory details.
The end results is akin to a minimalistic odbms along the lines of WebObjects's Enterprise Object (an O/R mapping framework on steroids):
http://developer.apple.com/documentation/WebObjects/Enterprise_Objects/index.html
Third party can access the object graph through a simplistic XML-RPC interface.
http://zoe.nu/itstories/story.php?data=stories&num=66&sec=2
This provides both the internal flexibility that an application such as ZOE requires, while still providing a programmatic interface for third party to leverage.
Of course ZOE doesn't have to deal with any legacy or wasted interest...
Posted by: zoe_info on September 24, 2003 at 12:41 AM
-
wow power leveling
wow powerleveling
wow power leveling
wow gold
wow items
feelingame.com
wow tips
Most Valuable WOW Power Leveling Service
wow power leveling faq
cheap wow power leveling
wow power leveling
wow powerleveling
wow power lvl
Posted by: wowleveling on December 13, 2007 at 01:25 AM
-
网络营销软件
网络营销软件
网络营销软件
群发软件
群发软件
---
群发软件
网络营销软件
论坛群发软件
网站排名软件
群发软件
推广小助手破解版
论坛群发软件
网站排名软件
群发软件
网络营销软件
网站推广软件
信息群发软件
论坛群发软件
信息群发软件
博客群发软件
qq群发软件
邮件群发软件
博客群建软件
企业名录搜索软件
信息群发软件
邮件群发软件
论坛群发软件
博客群发软件
网站推广软件
网络营销软件
全能营销破解版
Posted by: bininine on December 16, 2007 at 01:13 AM
|