Fog Creek Software
Discussion Board

Working on CityDesk, Part Five

OK, tell me why I'm a moron.

Tell me how easy it is to write HTML interfaces that are every bit as good as Windows apps, tell me me how XML will rule the waves as soon as we all have chips with XML in the microcode, tell me how I could make *more* money with a Linux version because I could charge people for consulting, and tell me how I'm going to burn in hell for not doing the Mac version first.

Joel Spolsky
Wednesday, November 14, 2001

The people who think you're a moron probably don't read your site.  Selective attention works that way.  ;)

I don't think you're a moron.  I think it would be wrong to say "Web interfaces are always bad" -- just as it would be to say "Windows interfaces are always bad."  Similarly, I think it would be wrong to say "No VC-funded company produces good software" (disclosure: I make software at a VC-funded comany) just as it would be to say the converse.  The right tool for the job -- in both cases -- is the important thing.  A NAT router with simple configuration parameters that needs to support every platform?  Yeah, a Web interface is probably a good idea for that.

I certainly don't agree that no one is making money selling software for Linux.  The thing is, most of that software is written in Java, and falls under the category of "Java application servers."  The companies that make that kind of software (amusingly, mostly not VC-funded companies) make buckets of money selling server products that are more and more tending to run on Linux.  Of course, your "bang for the buck" equation applies in spades -- these servers also run just fine on Solaris and Windows NT/2k.  So, Linux runs the product but is not the sole target.

Could you hit Mac, Linux, and Windows with Java.  Sure, probably.  Would that be smart, for your product?  No, of course not, that would be moronic, since desktop apps are Java's natural enemy.  So, yeah, I think a desktop/Windows application for content management is a great idea.  Congratulations on implementing it -- just don't get too caught believing that every other way of doing things is doomed to failure.  That's where competitors come from....

M. Hedlund
Wednesday, November 14, 2001

Hi Joel,
I've been following your editorials for some time now and been very impressed and appreciative of the insights that you've been sharing on good software development practices.

I'm an engineer who got passionate about marketing as I've seen too many good engineering teams produce a product that failed because of lack of marketing due diligence

I wish you unparallel success with CityDesk, however your choice of a product did spark my interest as it wouldn't necessarily be the market that I'd be anxious to go after.  So I was wondering if you'd satisfy my curiosity by answering few questions:

1. Who's the ultimate customer for this product?  (Company size, industry(ies), position within a company)
2. How are you going to differentiate from other content management solutions (from FrontPage to BroadVision)
3. What's the size of your market?
4. How are you going to sell it?  Direct? Channel?
5. What are your customers currently using?  Static pages or another dynamic content solution?
6. Do you know what customer's decision cycle is and who authorizes the purchase?
7. What level of support will your customer require?  What level of support will his customers require?

Just something to consider as piece of the puzzle that you're trying to solve.

Good luck!

Dima Itkis
Wednesday, November 14, 2001

Hi Joel

the fact that HTML interfaces cannot be as good as windows interfaces is a BIG myth.

Have you seen Oracle Applications 11i ?. It has a sexy blue
interface and beats the hell out of any windows tool as far as good looks are concerned.

Secondly since its a huge application (as big as , say SAP), it allows you to do  complex things simply by using a browser interface.

Lastly, i disagree that when you close your browser you lose your work. Oracle does give an error message.

One disadvantage of applications running on browsers is that sometimes the standard functionality that you expect in a pure windows Exe may not be there.  In early browser based applications i saw , hot keys sometimes fail and stuff like that. In Oracle 11i atleast,  these limitations have been overcome. There are a few annoying things, but on the whole its cool. Programming is also more difficult for a browser interface.

But i agree with you on XML. Its overhyped.

One last thing, a request actually. I have read your online book on GUI interfaces.  I would appreciate it if you could tell us how you tested the GUI for City Desk . I assume that you would have some document templates which checks the GUI for things like misallignment, fonts etc.  Can you please put it in your website or send it to me?. I would surely appreciate it.

Thanks and Good luck for City desk

Software consultant

Wednesday, November 14, 2001

Couldn't agree more on XML being all hype. And you're spot on about the difficulties of a HTML interface.

But I also think one day we are going to wake up and realise that we neglected progress in one of the most useful technologies in years and stifled it, HTML.

It really bugs me that progress in extending HTML stopped in 1998 and the W3C are focusing so much attention on XML. Couldn't HTML have been extended to have proper menus, better textareas, sliders etc.

Matthew Lock
Wednesday, November 14, 2001

Nothing beats a good ol' windows application. All that web stuff will give you a headache, multi-browser support? Anyone? Good choice Joel.

Frank R
Wednesday, November 14, 2001

What came first? The chicken or the egg?
I think one important point you left out (I totally agree on all your other points) is that the main reason that so many companies and development teams are working on Web-Interfaces instead of good ol' desktop apps is that someone is driving them there.
Now, Who is that someone? Not the VC's, sorry. They don't have the intelligence to push in any direction. It's Microsoft. Yep, While I'm not into Microsoft bashing, You should acknowledge that whoever controls the development tools, controls (to a large extent) the direction development teams go.
I think it's no secret that Microsoft controls Development Tools (I don't have the statistics, but do you know of Dev Tools more proliferated than Visual Studio?), and when you're looking at the direction they are going, all you see is .NET. Visual Studio .NET, VB .NET, C#, SOAP (a fancy name for XML).
Microsoft has decided that we should all become web-developers, and is pushing us that way. When was the last time MFC got a major release?
Since most people just follow the herd, and go with what the development tools available to them dictate, it's no wonder people have stopped doing applications, and are now just doing web-services of some kind.

Wednesday, November 14, 2001

About Oracle 11i or whatever, I haven't used it so any comments are solely from my experiences as a webmaster. Most of the shiny UI tricks will not be cross platform, hell they might even demand a specific browser, or work better in one over the other, and they will be bloated as hell. I wonder if while holidaying in Phuket you get access to a T1.

Does CityDesk support multiple users working concurrently over a Windows network?

I like the bulk HTML generation bit, it gets a bit tiring though when you scale to immense proprtions. A case in point being eToys which switched from batch generated static pages to a very fancy shared memory caching setup. Hm.... not that it mattered.

A friend of mine runs a fairly large portal, millions of page views a day yada yada... We've looked at Zope, MidGard and a ton of other systems. Either they are too esoteric (Jakarta with Turbine, Cocoon etc.) or too wacky for my liking. He can most definitely not invest in Big Iron like Vignette or BroadVision, his second round of funding didn't make it. Besides I seem to have developed an intense dislike for things like BroadVision, they are so wacky. The next time someone says they have an integrated solution that will cover everything from the DB to the browser, I'm going to run out of that room.

I wonder if I should hold such strong opinions, considering the fact that I'm still to start my first real job, I'm about to graduate.

Srinivasan Ramakrishnan
Wednesday, November 14, 2001

You can do good UI in HTML with the JavaScript and DHTML. However, just make sure you have the correct browser, etc. And it takes forever to make them. It's not worth it.

Having a desktop application also enable you to write your web off line and then going online.

Just a question, does CityDesk has a plug-in architecture ?

Dody Gunawinata
Wednesday, November 14, 2001


The web based system has a big advantage:
* ease of installation
* ease of maintainance

all those lead to the conclusion, - the web based systems are more suitable for enterprises.

You _can_ make a slicky interface in browser. Yes, it is more difficult than design it in VB. But there are the toolkits and technologies like ActiveX and Java.

Latencies? Hmmm... make your queries smarter. And - LOAD TEST your app!

One more issue, - web environments have another big advantage for enterprises, - firewalls are transparent! It is easier to deploy the web based system.

Reading your articles I appreciate the "techie"-ness of your thoughts and your ability for non-standard thinking. But it clearly seems that focusing on the architectural and implementations techniques (no XML, no Web, etc) you miss the marketing research stage.

I'm missing the article number 0 telling the stories about why your product will rock the market. Who are the competitors of CityDesk. ROI estimations.

Good Luck,
the pessimistical realist :)

P.S. Can you share, please, how do you plan to load test and tune your system for performance? How did you ensure that your architecture is scalable?

Ilia Bromberg
Wednesday, November 14, 2001

XML Switches - WTF???

This may be a little offtopic, but it seems like the XML hype is still pulling in VC money.

"XML Switching Startup Sarvega Raises $10M First Round
CHICAGO -- Sarvega, which develops intelligent XML switches, is expected to announce its launch and the close of $10 million in Series A funding, to be used for the company's growth and for the launch of its XML switches early next year." Announced on Monday.

From their website:
"[..] to simplify and scale their e-business applications such as Pervasive Computing, Business-to-Business integration (B2Bi), Enterprise Application Integration (EAI), and Web Services"

Sounds like the culmination of XML bullshit to me, and I thought the hype was over, until I read this a few minutes ago.


Florian Unterkircher
Wednesday, November 14, 2001

I have a feeling that the Oracle 11i application mentioned above is completely written in Java rather than being a "web application" (ie mainly (D)HTML with some ActiveX or Java applets thrown in when absolutely necessary).

This demo definitely shows java screenshots (slide 17 and onwards) :

Which nevertheless raises the question: if Oracle are using a Java UI does this mean that this is now a reasonable approach? Did FogCity evaluate using Java rather than VB for CityDesk?

Timothy O'Hear
Wednesday, November 14, 2001

I often hear about easy technolies that allow everyone to build his own web-site without knowing programming for very little cost.

But I don't beleive that programming is critical for building good site. There is two possibilities - your site is unpopular and you do not need to do it at all and your site is popular and it isn't problem to hire programmer for it.

I believe that programmer can re-build CityDesk site so it will be 10% better, according to your estimations (that I think really true) it will doubles site clients.

You believe that desktop CityDesk is a better solution that other web-based content-managment systems, but why you think that THE RESULTING PRODUCT done with CItyDesk that, in fact, IS web-site is the solution for you customers? May be you customers do not want sites, but, for example, they need mobile applications?

Yakov Sirotkin
Wednesday, November 14, 2001

Hi Joel, I tell you why you have no clue about XML :-)

Why can XML retrieving not be as fast as SQL ? Using XML and storing XML are two different things SQL tables are not stored as tables on your disk, but e.g. as ISAM blocks. So, when storing a lot of XML, only stupid programmers will store XML data in files. Nothing hinders you to store XML in other structures, just like ISAM (or cibic trees or ...). Interface and Implementation are two differnet things. Although one might ask, why not store things as Objects ? Usually you have to store data and relationships (associations, compostions, ... and RDBMS are very ugly to store such things, keys ? joins ? hu?) And those objects are not stored as serialized objects in an OODBMS.

And about WUI and GUI, to my understanding this discusssion board is a web application ;-)


stephan schmidt
Wednesday, November 14, 2001

Horses for courses.

I wouldn't want an html interface for a web design application, but neither would I want a windows UI for lots of other things (administrative tasks etc.).

XML.  For data storage, ok, it's not a brilliant idea.  For separating content from presentation (e.g. news syndicates etc.) and message passing (interfaces between enterprise applications) it's a great idea.

Saying eithier is 'bad' is like saying trucks are rubbish coz they don't win car races.....

Mark Goodwin
Wednesday, November 14, 2001

I always observed 2 main categories of people in the software industry:  one being the "moron" and the other being the "idiot".

The idiot is somebody who doesn't know what they're talking about.  They can go on-and-on about a topic and the whole time you know that they're full of it.  Even to the people who don't know the subject the idiot is talking about wont believe them.

The moron is somebody who, like the idiot, still doesn't know what they're talking about.  But, in the case of the moron, they can convince you of it being true.  Whether its XML or cold fusion, they can present their case so well that its entirely believable.

Most of us that read Joel's site fall into a 3rd category of person in this industry, the "Crazy".  Crazy for being in an industry VC backed by people who would so easily follow the moron.  Those of us that are crazy enough to get involved in this are starting to learn how to deal with the morons in this industry.

I read Joel's articles because he does an excellent job on pointing out who the morons are, why, and what we can do to avoid the problems they cause.

Thank you for your insights.


Wednesday, November 14, 2001

Gee Joel,

You sure told us why your superior judgement put the shame to all those other morons out there. Your program
must have already been proven to be great in every respect for you to swagger so. Must be taking over the world huh? Or is it just *obvious* to you that its so superior because its just so Keeuuuuull!  wow!

Joe Niederberger
Wednesday, November 14, 2001

You're only a moron for stating: "Tell me why  you think I'm a moron."  This insinuates that that you believe that your readers are limited in their capabilities to making ad hominem (personal attack) type arguments.  To drop to the level of ad hominem arguments is moronic. Given that overall your readers are quite well informed and they help your cause by responding thoughtfully at your site, you should have a little more respect.
moron  (source:
1.A stupid person; a dolt.
2.Psychology. A person of mild mental retardation having a mental age of from 7 to 12 years and generally having communication and social skills enabling some degree of academic or vocational education. The term belongs to a classification system no longer in use and is now considered offensive.
[end of rant]

Matthew Pope
Wednesday, November 14, 2001

Ilia Bromberg wrote:

>The web based system has a big advantage:
>* ease of installation
>* ease of maintainance

1. One CAN easily build a "software-based system", that will be easier in installation and maintenance as many "web-based systems"

2. Both "ease-ofs" are false goals.
Did you not forget "ease of USE" ???

Sedelnikov Andrei
Wednesday, November 14, 2001

Yakov Sirotkin wrote:

>But I don't beleive that programming is critical for building
>good site. There _are_ two possibilities - your site is
>unpopular and you do not need to do it at all and your
>site is popular and it isn't problem to hire programmer
>for it.

What about "my site is popular and I can save N.NNN$, using CityDesk instead of hiring a programmer?"

>I believe that programmer can re-build CityDesk site so it >will be 10% better, according to your estimations (that I >think really true) it will doubles site clients.

Your arguments, please! _I_ don't believe, I definitely know, that "programmer" can not make a web-site 10% better _for users_.

Sedelnikov Andrei
Wednesday, November 14, 2001

Regarding the economics of multi-platform development, I think it's an oversimplification to say that Mac development needs to be 10-20 times as efficient to make up for the 10-20 times larger Windows market.  To turn that around, I look at the question as the developer of a successful Mac-only application.  Assuming that it'd be no harder to write my app for Windows, does that mean I'd make 10-20 times as much money?  Of course not, I'd also face 10-20 times as much competition, need a different marketing approach, more QA and tech support resources, etc.

Market size matters -- I'm not trying to make a living selling BeOS software -- but it isn't a simple linear function.

Thanks for the great articles.

Jim Matthews
Wednesday, November 14, 2001

Just to go off in a different direction from the language/platform wars: XML makes sense for some things *when it's completely invisible to the user*. I ran across an example of this last night when I ended up browsing a Visual Studio .NET form in a text editor. Surprise! It's entirely XML -- XML that VS .NET knows how to interpret graphically.

Why does this make sense? In this particular case, the VS designers had to choose some storage format. XML is more than fast enough for something that's only used at design time. And by switching from previous proprietary formats to (somewhat less proprietary) XML, they get to leverage all the XML tools out there. Want a nice list of all the forms in your VS application where you use a particular vendor's controls? It's easy to see that you could write an XPath/XSLT tool to do that -- an unintended consequence of using XML.

XML files are also a lot less likely to break than database files. Joel, I'll bet you ten bucks right now that at some point you have a customer lose work due to a corrupted Jet database file (which will probably ultimately trace back to driver conflicts or a power failure). I've made much of my living off of Jet, but ISAM database files corrupt at least an order of magnitude (probably several orders of magnitude) more than text files. So XML in this case offers a tiny stability boost over using a database to store the same information.

But this is only the right choice because the average VS .NET user never needs to know that there's XML involved. As far as they're concerned, their forms and controls could be stored on tiny electronic representations of clay tablets. The tools do a perfect job of hiding the XML (and if they're well-written, this decision is hidden from the UI components by an API layer so that VS .NET doesn't depend on this decision anyhow).

Mike Gunderloy
Wednesday, November 14, 2001

A few questions ...

+what is the target price point for CityDesk?

+Will you have a "private label" option ... e.g. I can set the base template for my subscribers and then OEM the software and hand them an executable with .ini files containing the html that they must use?  In this way they can do their own content management but I can set the base html ...

+As has been stated before, will there be a "plug-in" option so that the developer can build "widgets" that are actually html/javascript code (such as "form that, given a zip code, returns the weather from yahoo") that can be dropped into a citydesk page?

+how do you ensure that uploaded pages do not contain dead links or bad data?  Does each ftp upload from the software erase all the files in a particular directory and upload new ones or is the user responsible for managing those files once they are on the target web server?

Thanks for your cogent thoughts.  I look forward to evaluating this software.


Greg Meyer
Wednesday, November 14, 2001

You're not a moron, Joel, but you're not God either.  What you are is a bright guy who's mostly right, but occasionally goes a little overboard.  I'm sure part of that's just enthusiasm, part might be an attempt to put some distance between yourself and the truly *awful* memes floating around out there, but the largest part seems to be that you enjoy stirring up debate by expressing extreme contrarian opinions.  On a less charitable day I'd call that trolling; today I'll call you a provocateur instead.  ;-)

(1) Can't do good UIs in a web browser?  Wrong.  It's entirely possible to create a good UI in Java.  If you don't like that, you could always use ActiveX or its latest incarnation, which gives you 100% of the power you have in a native application.  ActiveX isn't cross-platform, of course, but you seem quite comfortable viewing the world through MS-colored glasses anyway so that shouldn't bother you.  Are there drawbacks to using a web-centered approach, vis a vis doing a standalong application?  Sure!  Are there advantages?  Yes again.  Doing a stanalone app might be a valid choice, but it's not the only valid choice.

(2) XML is a dumb format for storing data?  True, but that doesn't mean XML isn't incredibly useful for *transferring* data.  Wherever/however your data is stored, when it comes time to move that data around you'll need to marshal/serialize it and XML is very good for that.  I'm less sure about the real-world usefulness of XSL, but XML definitely has its place.  BTW, using a database has its drawbacks too.

I agree with your other three points pretty unreservedly, so I'll just skip to the summary.  If you can't find any competition, it's because you're not looking.  Also, what's your business model for this?  At one end you have stuff like Blogger/Atomz, whose appeal lies not so much in their being web-based as in their being *free*.  At the other end you have systems that can interface with *live* databases running on big iron in the datacenter to generate truly dynamic - not just "frequently changing" - content.  What niche between these, exactly, are you going to sell into, and how are you going to do it?  There are a lot of people out there who got too caught up in fulfilling their personal vision of cool technology to realize they had no business model.  While you espouse a lot of technical views different from theirs, on the business side you sound *just like them*.  One hundred percent.  Until you can do as good a job addressing the business issues that have been raised here as you've done addressing the technical issues, Fog Creek's future looks a little cloudy.

Jeff Darcy
Wednesday, November 14, 2001

Hey Joel..
  You're definately not a moron. We were faced with a similar problem recently in deciding to go web-based or Windows. We also chose windows.
  Sure, you can do decent UI's in the Web world. But, we needed functionality that windows-users are used to, like drag and drop. This made our decision easy.
  Now, im sure ill get flamed for this:
  Java? No way. Dont even get me started n it. The only java project I did, I ended up spending so much time just getting it to work cross Netscape and IE's VM's. Forget that, I have better things to do with my time.
  Orcale? please. I dont trust any software you have to "install" the installation program.
  XML? Sure, like anything else, it has it's place. Is there XML-overkill these days, you bet!

  What! You're not .NET enabled! You're not XML aware!

  Geez, im getting so tired of hearing that over and over. People just want good software that works well for them and solves a problem.

Steve Makofsky
Wednesday, November 14, 2001


As usual, great reading. One point regarding spinning a Mac software version of CityDesk: In one of your past articles, I seem to recall you stating something to the effect that if you coded software correctly, it was very easy to use 90-95% of the code and compile a Mac version of well-written software.

I cannot recall the date of the specific article, but tell me: was I dreaming?

Again, this is not a rant. I just like to follow things for consistency.



Allan W. White
Wednesday, November 14, 2001

Joel got a lot of things right in this.  He's not the only person who figured out that not every app should be a web app.  In fact, I have my own "homemade" CMS system for updating my web site, which is a native Windows app.  It does use code running on the server, though - I control my server, and right now this is used only by me.  Anyone interested can look at some screenshots of it here:

or see the resulting web site here:

I also believe that XML is overhyped, but it does have value.  I'm working on generating some of the more complex areas of my site with XML and XSLT; they are not *that* hard to understand, Joel  :-)

Joel mentions that a benefit of a web-app is that you can access it from an internet cafe is Thailand.  I don't go to internet cafes or to Thailand.  But I do fly on airplanes, and there I can use my local Windows app with no internet connection.

Kyle Cordes
Wednesday, November 14, 2001

I'm going to agree with many of the sentiments expressed here with a couple of refining points.

While I agree that XML may be overhyped, it is very good at expressing data in a consumable form. I don't think you should equate XML with Web apps as it would be very easy to render the data in a 'Fat' GUI. The beauty of having your data in XML is that you get a bunch of options. If you want to transform to HTML/MS Word/PDF go right a head.

I also want to challenge this notion of picking Windows over other technologies to write 'Fat' clients. Now don't get me wrong I'm a fan of Windows, but I hate C/C++ and have been writing systems in Java for over three years. (Mostly server side stuff). You can write a Java application using the JFC (Swing) that has all of the user interface elements found in standard windows apps. This coupled with Java Webstart gives you the ability to deploy a rich client from a webpage (NOT as an applet) which can run independant of an Internet connection but can also automatically update itself if a new version is released.

An added benefit of this architecture is that you're 'porting' problem goes away. That same app will run on Linux, Mac and other OS's without any changes to the code at all.

So to summerize, insulate your client code from your database by using XML. Leverage various client technologies that can consume and produce XML so you could in fact have a HTML based application and a Java based JFC application that produce and consume the same XML messages in completly different ways.

Keep up the great work Joel, I really enjoy your articles!

Todd Costella
Wednesday, November 14, 2001

The only point you did not address adequately is the accessability of Browser-Based applications versus Windows GUIs.

No matter how easy, an install is a barrier to adoption for both the technical and the non-technical.

In addition, although businesses may not be your target market, many people access the Web at work where they have the fast connections.

From my experience with larger corporations in NY, software installs are a no-no for many reasons.

That being said, I am anxiously awaiting to install your software on my machines. I love your work.

Mark Frankel
Wednesday, November 14, 2001

Great ideas and reasons to choose a VB application.  You are a rare individual - a programmer that understands users and marketing.  Maybe you could bottle that up...

As a programmer (who builds database-driven web sites, i.e., I am not an HTMLer), I would like to use your software for content management.  Unfortunately, I can't because I am 100% Microsoft-free. 

I wish you would have used Borland's Kylix (close enough to your VB point-of-view) because then a Linux (gasp! not *that* o/s) version would cost MUCH LESS than 10% of a winblows version.

Send me your code and I will port it to Linux (joking).

Good luck!  I think you will be successful and I wish you the best.

Jeffery Cann
Wednesday, November 14, 2001

So, you do know that Macs have a pretty high marketshare in media firms that are target markets for doing this kind of content management, right?

I don't think you are a moron- but you will have some places you can't sell to, more than 10%, more than you'd think, because there are some senior editors/writers who will make their company find new IT people when said IT people say "We have to move off of the Mac because..."- because the IT people are more replacable than the writers.

The way Apple is trying to do what you've asked is by implementing Java as a first class programming environment in OS X. There's a fair amount to commend this, in that there is a lot of Java out there. Their Cocoa/ObjC stuff WOULD have been better though (rich frameworks, easy development), but Apple did something stupid and killed the Windows versions.

Robert Taylor
Wednesday, November 14, 2001

M. Hedlund is right on the money: Joel's article suffers from the age old tired saw of "if all I have is a hammer, all my problems look like nails".

I'm glad Joel's company has made a buck in Win32 GUIs. But I would hate for Win32 GUI programmers to come under my roof and write enterpise distributed systems, where a cluster of machines serves thousands of users all over the world concurrently, as the hordes of like-minded cubicle-dwelling drones at Microsoft have proven with the hell they've unleashed with IIS and similar products.

Microsoft, which I think Fog Creek's corporate culture emulates if I am to believe Joel's articles, has never had to write software where scalability is a _functional_ requirement. MS SQL server might be one exception, but since we all know that software started its life at a company called Sybase, all the hard work was already done.

Conversely, programmers in my group aren't the best choice for writing desktop GUIs, as we don't make hay doing that.

So my message to Joel: "Don't think your case proves the playing field."

Nick Bauman
Wednesday, November 14, 2001

Just so it can't be said there isn't a single company making money from linux: <a href="">Sleepycat Software does</a> - and with GPL licensed (well, dual licensed) software to boot. I have a feeling that they are in a pretty unique position though.

That little bit of desperate advocacy over, any idea if CityDesk will run under wine?

Bill Stilwell
Wednesday, November 14, 2001

Ah. Automatic link detection. Sorry about that. (Feature suggestion - small note saying what html is allowed or that links will be automatically detected.)

Bill Stilwell
Wednesday, November 14, 2001

I was just introduces to your site, and like it a lot.  Thanks.

> 2. XML is a Dumb Format For Storing Data

My experience with XML is rather limitted, however I did attended a four day XML conference back in 1999 (XML '99) .  It was completely obvious to everyone there, on both the tech and business side, that you need a SQL server to store large amounts of data.  Many of the sessions were dedicated to approaches and tools for converting data and queries between relational database and XML, exactly because XML is for data interchange, not large storage.  I would chalenge you to find any serious analyst in Gartner or Giga who was not aware of this, even during the height of the dot com fantasy.  A bit of a straw man there, wouldn't you say?

Ran Ever-Hadani
Wednesday, November 14, 2001

It's been enjoyable to read about the process of creating City Desk.  While I'm disappointed to hear there won't be a Mac version anytime soon, I completely understand the reasons why. 

As for HTML/Web usability, I can't agree more.  I work on a web-delivered application now, and am constantly frustrated by "unknowns" - will they have the right browser?  Are they surfing with images off, JavaScript disabled, cookies turned off?  Argh!  I can make a good interface, but I have no control over the delivery.

XML: great for sharing data, not so great for calling it - you were 100% right on that score. 

Thanks for taking the time to share with us!

- S

Wednesday, November 14, 2001

Joel, you're obviously not a moron and I think you gave some good reasons for your design decisions. But just to play devil's advocate, here are some counterpoints:

Web vs. Windows GUI: One major advantage of Web apps over Windows GUI apps is that you don't have to install the Web app. Not only does that enable users to work from an Internet cafe on the beach, but it saves them the hassle of installing/uninstalling Windows applications. That's a big deal in some situations, particularly in corporate environments where it's discouraged or forbidden for users to install their own software on workstations. Another advantage of Web apps is ease of upgrading - with an EXE on every desktop, you may have more trouble ensuring that your users use the latest version of your software.

XML vs. Relational Databases: Here, as some others have said, I think the right choice is XML *and* a relational database. XML is great for transporting data, but a database is better for storing it and rapidly querying it. When I've used XML, it's almost always been in addition to a database rather than instead of one. It may be that XML was the wrong choice for your app, but setting up the issue as "XML or database" ignores the intermediate possibilities.

Beth Linker
Wednesday, November 14, 2001

For the first time you have disappointed me Joel.  Your comments on XML seem to not only be uninformed they seem a bit defensive.  This is totally out of character for you.

To those that would claim XML to be a silver bullet, well they are plain wrong.  However, XML is so much more than a data exchange medium that I am surprised at your stance.  I am prohibited from telling you about the wonderful work that my company is doing with XML, but if you happen to have a copy of “Professional XML Schemas” by WROX press, read chapter 16.  It discusses a new way of using XML technology called Schema-based Programming.  I know that it sounds like so much hyperbole, but I honestly believe that SBP will ultimately be more important than OOP.  The term the “Programmable Web” is becoming pervasive.  We cannot get there using the paradigm that traditional client based applications use.  Should City Desk have been “web enabled”? I can’t say.  Should you be more open to the potential of XML?  Well read Stephen Mohr’s chapter and you decide.


Michael J.
Wednesday, November 14, 2001

> We benefit from using libraries that are freely available on Windows (like the Jet multiuser ACID database engine and the DHTML edit control) for which there are no equivalents on the Macintosh.

Is it sensible to be using Jet?

Is it a marketing advantage, to be able to say "My application is as fast and as reliable as MS Access!"?

Christopher Wells
Wednesday, November 14, 2001

In my experience, people write in Word, lay out in Quark, draw in Photoshop, code in BBEdit/vi/TextEdit/whatever. From what I understand, CityDesk wants people to drop their beloved tools and learn a new editor (however easy) just to write/draw(?)/code for the web.

I hope I'm wrong, but in my 5+ years experience with this, I have never seen any of this happen. A good CMS tries to fit in seamlessly into existing work flows and combines them into a website (or other outputs).

Disclaimer: I created and operate webPress, a CMS that doesn't boast it's editorial features, but takes input from most popular editors and yes ,virginia, it has a web interface.

PS: about the development efforts on other platforms: I think Java would have been an option for you guys and I read that the Cocoa development environment Mac OS X has no equal (in terms of dev. speed and prebuilt objects) on any platform.

Michel Benevento
Wednesday, November 14, 2001

Pragmatic, no nonsense, anti-hype, anti-vapor, and realistic.
Qualities that are so rare is software developemnt today!
Yet another great piece by Joel. 

Yes, many apps that are browser based shouldn't be.
Some people still don't seem to get the difference b/w internet enabled vs. browser based.
99% of people use windows.  89% of people use 3 PC's at most.
Most people are willing to install an app on a few machines.
Often, its well worth it, getting a full blown Windows app, than some HTML pages.

Yes, XML is/was just a darn way to mark up ASCII text.  BDF! 
This could have been the most overhyped and misunderstood technology of all time.
"XML will replace MS-Windows, etc etc etc"
"No more networks as we know it, it's ALL XML!"
"Office suites that will be written in pure XML!!"

Content mgmt?  Yea, most people will do this from their desk at work, not in a hayfield with their wireless Ricochet (RIP) modems.  Good candidate for a Windows app.  Install once, use from same location.

Also, great comment about the Linux and Mac desktop market.  They're a nonissue. 

Also, great point about overengineered apps. Secretary/publishing types use these apps.
Not tekkies.  Overengineered ends up costing mucho $$$$$$
As always, KISS !@   

I side with Joel in all points.    The only issue I have is the bigger picture of developing a content mgmt tool in the first place, in this economic environment.    I really don't think this will pay off, but Joel is a smart guy, and I'm sure he looked into the marketplace beforehand.

Wednesday, November 14, 2001

There's one problem with content management systems: People find it hard to understand how all the different inputs in the system lead to the final result. People often use the CMS and the website side by side and refresh the website continually the see what's going on.

The trick is to put the CMS in the website, by making the website editable. You can see an example of that here:

In a lot of cases this works a lot better than any CMS, browser based or not.

A browser-based CMS can be better than a Windows-based CMS, as long as you use the true strength of the browser CMS: it's a website!

Sjoerd Visscher
Wednesday, November 14, 2001

It appears that most of those responding aren't using the software and are thinking in terms of corporate applications. CityDesk is written for average users: that two or three hundred million out here whose ISP allows them a few megabytes on their servers, that would like to have a web site for under $1200 and don't want to learn HTTP or FTP or pay somebody who does. The user who could post one picture instead of attaching half a dozen to emails to family members. The user who could post the "Special of the Day" at his lunch counter and change it in minutes. This software is going to bring children and families and small businesses, that 90% of business in the world, onto the Internet as participants and not merely spectators.

BTW, how long do you think it will take an enterprising Internet Cafe in Phu Ket to acquire CityDesk and offer the functionality to its patrons? If one hasn't already?

Ray Lutz
Wednesday, November 14, 2001


Great article, as always, I agree that hi-functionality Web UI's are harder to get right than Windows GUI's. but I do believe you haven't spent a lot of time with the DOM/Javascript available in 4.5 and beyond browsers:

>>Word counts: can be calculated with javascript in the page
>>Ctrl+S's without losing position: can be accomplished by copying the text box content to a child window which does the submit when you save.
>>(Good luck creating a word processor inside a web browser that doesn't instantly lose everything, without prompting, if the user closes the browser): You can register your own functions to handle pretty much any event including window close. You can create your own "prompt before closing" functionality.
>>And they work exactly like you expected them to, because the web browser doesn't have it's own menu, with a bunch of irrelevant commands, that wants to eat the Alt key: Again, 4.5+ browsers allow you to get rid of native chrome (a bit easier in IE than Netscape) and registering your own event-handling functions allows you to get rid of the native alt-captures too.

But you don't mention the biggest problem with Web UI's which is their page granularity. You can't leave the rest of a page if you want to just update a single element -- you have to regenerate the whole damn page which results in a very chatty application and latency problems. Maybe....just maybe someone smart in the browser companies will start using some of the range get capabilities in http1.1 to solve this problem.

BUT, you don't mention the biggest problems with native applications (at least windows ones). Let me count the ways:
- dll hell: oops my shiny new application just ate some old dll's needed for some old application
- service pack hell: oops, I installed a new windows service pack and my application now mysteriously doesn't work
- and everyone's favorite haiku (from Salon)
      Yesterday it worked
      Today it is not working
      Windows is like

Give me a Web UI where at least ALL the possible problems are due to a single server, and if it works for one user it works for every user.

As far as XML as a storage structure goes -- XML is a directed graph aka hierarchical data structure (like LDAP). If you are working with hierarchical data (like documents or many catalogs, or most directories) XML will do just fine -- its faster and lower overhead than an RDBMS. If you are working with many-to-many data use an RDBMS -- trying to emulate many to many relationships with a tree storage structure will tie you in knots.

Michael M.
Wednesday, November 14, 2001

I think some of the people who argue for rich, advanced web based interfaces are missing a key point. Sure, it's possible to build them, but as pointed out it requires a lot more work. Plus, they usually end up relying on a lot of browser specific tricks because the standards (where they exist) are not fully consistent across platforms. So you've put in a lot of extra effort to build this rich user interface, using cutting edge buzzwords, but it only runs on IE6 for Windows. So what was the point? Why not just build Windows exe to start? The whole purpose of building a web interface is so that it is platform and client agnostic.

The really important point is to make sure that you're decoupling the application from the interface. That way you can build a simple, cross platform interface via the web for those who want it, or a Mac based version, or a Java based version, etc...which one you start with will be dictated by the economics of your situation and what your application is for. Even better, you can document and publish your spec, so you don't have to waste time writing an Atari 5200 interface, but if someone in the user community wants it, they are free to build it themselves.

Rob Meyer
Wednesday, November 14, 2001

I was playing around with CityDesk last night and one thing is apparent.  Its easy!! Ah!  I am a programmer and i have used other content management software and played with XML and XSLT(blech) , and while sometimes you could do things without much problems - never did i put up a  site in well lets see 5 MINUTES!!  For that i give you two thumbs up.

Just two questions:
    1. How long did CityDesk take to develop (aprox. of course) ? I am curious when you made all the big choices about CityDesk and i guess the direction of your company.

      2.  How do you compare your product to Manilla and that side of the content managment equation?

Joseph Ruvel
Wednesday, November 14, 2001

>The whole purpose of building a web interface is so that
>it is platform and client agnostic.

I'm going to disagree a bit with Rob here.

I think the point of building a web interface is that you can widely deploy a server-based app without installing anything on the client (other than a web browser, which they probably already have). For many companies (but not mine; a major customer is all-Mac), the web would be just as useful -- and easier to develop for -- if only one browser existed, and it only ran on Windows.

Dave Rothgery
Wednesday, November 14, 2001


I use MySQL, XML, XSL, Java, Mozilla and Tomcat to produce my visual interfaces.  It's very tricky and hard to get right but I am developing tools for a cross platform market.  So what I do is use a standards based approach.  Sure it does not allow me to use some of the flashy new Microsoft and Netscape inventions, but I can produce interfaces that are at least as good if not better than with my desktop equivalents. 

But this approach is certainly is not for everyone, and I would not recommend the stupidity assuming this approach over every other one.  It really is a case of horses for courses.  Its a lot cheaper to develop for Windows or Linux in their native forms (incidentally I know of serveral companies doing very well off Linux's back).

Still raw HTML and the browser suck big time.  Untill you add the other extreemly overhyped technologies that individually contribute little, but combined with a functional and accurate design can produce a real winner.

Michael Chester
Wednesday, November 14, 2001

Saying that Linux does not pay the rent and that your firm is not a charitative association seems to me a really pathetic affirmation.

The world [of software] is how you [we] build it.
If MicroSoft is a long (and middle) term danger to the software industry (and in general as 18 american states think it is) then it's everyone's responsability to choose (or at least bend the way toward) an alternative.
You can't just stand there and hope that some others will do it for you. It's the kind of reasonning that unfortunately brings you boeings in the towers when it is applied to the attitude of rich countries towards poor ones.

Linux may not be a viable platform today but supporting it does not mean to waste all your money in a complete CityDesk version, it might be a gift of any kind (software, money, ideas, whatever). The world of solutions is not limited by the possibilities the economic market offers, think of it before refering to Linux support and denying it is feasible.


Laurent Giroud
Wednesday, November 14, 2001

XML: You're right.  XML is great for data exchange between disparate systems.  It's rubbish for pretty much anything else.  People who want to do everything in XML are the same idiots that want to force-march us all to OODBMSes because they're Java/C++ weenies who are too dumb to understand RDBMSes and SQL. 

And don't get me started on XSL.  If your designers have a hard time not munging code embedded in HTML, how the hell are they going to understand XSL?  Zope DHTML and Java taglibs look like the best solution for this kind of problem (a solution, I might add, that would work very nicely with CityDesk, I image).

Mac: You're wrong.  Why are you wrong?  Well, if the Mac is so uneconomic, why was it that in 1998 Microsoft reps were telling me they were going back on their decision to can Office for the Mac because it made more money per programmer than the Windows equivalent?

Jet: I missed it becoming ACID compliant.  I guess someone fixed the "records getting mixed up" bugs in the last few years 8).

Linux: Oracle, IBM and a bunch of other vendors are making good money selling shrinkwrap on Linux, they're just doing it in a different space to you, by and large.  There are a few successful commercial, proprietary desktop application vendors in the Linux world, but I agree you'd be taking something of a gamble on that market, to put it mildly.

Rodger Donaldson
Wednesday, November 14, 2001

Joel, I don't think you're a moron, but I felt that you were inflammatory and rude with this last article.  Your assertion that I (we) think you're a moron was inappropriate, and out of character for you.  (Even if it was intended humorously, it was still baiting.)

Also, the characterization of Silicon Valley developers meeting at Bucks and copying each other's bad ideas was intentionally inflammatory.  Why even bother with that generalization?  Pride in your software is a great thing, but you do yourself a disservice if you believe you're incapable of good work if you lived on the west coast.

These two minor problems dramatically hurt what was otherwise a very nice article.

David Blume
Wednesday, November 14, 2001

Joel, you're a moron.  :-)

Actually, you are obviously *not* a moron, but your invitation to say so was just too hard to resist.

I agree with you on most of this stuff.

1.  Agreed -- Really good UIs can't be done in a browser, or if they can, most of the advantages of an HTML-based GUI do not apply.

However, I really like the browser-deployed apps capability in .NET.  Very neato.

2.  I like XML.  It's a dumb format for storing a LOT of data, or for storing data that needs to be queried.  But I still like it for certain things.

3.  Agreed -- Normal people don't really run their own servers just because you and I do.

4.  Agreed -- I'd love to be coding for Mac and UNIX, but that doesn't always pay.  We do a UNIX version of our GUI product, but that's because we sell our product to teams which have to work together on different platforms.  CityDesk looks like a product which is used by an individual.

5.  Agreed -- you've designed for Normal people, and you won't regret that.

I guess if you want to be a moron, you're going to have to do better than this.

Eric W. Sink
Wednesday, November 14, 2001

I'm with Joel, you can't offer decent UIs through a web browser. The only contra agrument was the mention of Oracle Applications 11i earlier in this thread.

I make my living 'customising' this software and it is about as browser based as Microsoft Word. When you access the applications URL you have to have a java plug-in and then download a number of .jar files for the application (current combined size on my hard drive is 26.3Mb). What you actually have is a java client application *invoked* from a browser, not a browser application. Oh, and it is the biggest memory and network hog you have ever seen.

Andy Todd
Wednesday, November 14, 2001


I'm not so sure that you can't offer a decent UI through a web browser.

Consider Mozilla/NS6, its mail client, its browser client, its composer, its address book. These look like pretty decent UIs to me.

Now consider that XUL gives you access to all the UI objects that have been used to deliver these interfaces. Use it, and write your own mozilla interface. Now you've got a cross platform app, that by default seemlessly integrates with an email client, browser, composer.

So you have to download a specific browser to use it? No different to downloading a specific VB client, and using that.

But - moz is not yet ready to **really** develop for - its not even release 1.0 yet. So this rules it out for the moment. But  in the future?

For example, look at what active state ( have done with Komodo.

just some thoughts ...


Simon Gilligan
Wednesday, November 14, 2001

Joel is right on about XML - it's a wonderful interchange language but it sucks for fast access. You either need to reinvent databases building an engine to do indexing, transactions, etc. or take the sane approach and use XML at exchange points and an efficient format internally.

Very strong agreement on the interface issue - browsers simply aren't there yet for creating advanced, fast interfaces. DHTML helps a lot but unless you're planning on putting a LOT of time into it, you're stuck using IE's DHTMLEditor control and that won't run on anything other than Windows anyway.

I disagree strongly that no one is making money off of linux. There are a lot of software companies making money off of Linux ports - little guys up to Oracle / IBM - we pay licenses to a bunch of them regularly. You don't have to give away to source to support linux. However, for desktop apps Linux doesn't make as much sense unless you either have a specific niche which uses Linxu (or, more likely, Unix) or are doing a Java app (questionable goal) where you can get basic support "for free".

Also - re:Mac development. OS X helps a lot. There's a suprising amount of functionality built into the base classes, including things like HTML display, and things like localization are almost transparent. The last app I had needed perhaps ~200 lines of code total for the user interface - the rest was done automatically within Interface Builder.

Chris Adams
Wednesday, November 14, 2001


Hell, if you are a moron, I wish I knew more morons.  I love this site! 

For the record, I am one of those Linux freaks living off of college kids and big company charity, so...oh wait, I am a college kid...well, not really a kid, I suppose, but I do have a few kids, and I am in college, so that's just going to have to be close enough.

I read in an architecture book a while back about an old building at MIT (Building 11?) that is perpetually on the demolition block, but generation after generation of MIT students and personnel have refused to allow the thing to be destroyed.  The primary reason for this seems to be that you can do just about anything to the building and not offend anyone.  Nails in doors, miles of cable running everywhere, holes cut and patched haphazardly as some scientist saw a need for, etc.  People love that building because they can't hur it, they "own" it, and they are free to use it as they see fit.

Linux is that for me.  I am not presented with an every changing and increasingly devious and nasty EULA every time I install a piece of software. Linux is **MINE** I own it, I don't lease the right to use it until Microsoft deems it necessary for me to upgrade, pay for a subscription, or bury their nose butt deep into my hardware just to make sure I am obeying their rules.  That freedom can be a wonderful thing.

The point?  Oh, yeah, the point.  The point is, that Joel is right, imho, about the platform choice.  Even though I use Windows only at gunpoint (ie, school assignments or paying work), most people have no such hang ups, and as such, if I were to sit down and try to write some killer app that was supposed to pay my bills, damn tootin' that app would run on Windows; I might not necessarily limit myself to Windows, but I would indeed make sure it ran on Windows.  Windows users, by and large, will **buy** computer software, seemingly no matter what it costs them, and from an employment/bill paying standpoint, this is a good thing.


Scott Barnett
Wednesday, November 14, 2001

Hi Joel,

Even though I agree with most of your article, you are entirely wrong about XML. 

I spent 5 hours today debugging an "off by 2 bytes" error in my desktop application's binary file.  The particular data file was 500 kb so this was a serious problem. 

If the XML file is 5,000 kb, at least I will able to read the <deleted> file.  And, no more "off by 2 bytes error".  Shudder.  I was seriously considering crawling under the PC for a while and having a hissy fit until I found the code error.

All applications should use XML file formats.  Period.  Binary file formats are definitely 80ish.

Lynn McGuire

Lynn McGuire
Wednesday, November 14, 2001

Here's a really great website:

Now, how great would eBay be if everyone had to install & load a windoze app to contribute to it?

Think ebay is not a content management system? I think it is.

Think its not a great UI? Tens of millions of users
with no special training successfully use it everyday. May all
UIs be so broken.

I don't think the world of UI is as simple as web:sucks, windoze:rules. At bottom, a good UI is one that lets you get
done what you need to do in a way that is as hassle free
or better than the current alternatives. So, for any given  content management system, I think you could define
what kind of content, what kind of user, and come
up with a lot of very different design points that could
all be judged "good".

The thing that made this article so content-free in my opinion is that Joel simply sets up a strawman and then knocks it down. Whoopee. It didn't illuminate the space that creative designers explore.

Joe Niederberger
Thursday, November 15, 2001

I saw a demo of a web based cms from flying dog software ( which has drag and drop picture placement - not from the desktop but from within the app. I think they use DOM and layers to do it.

However, even given that my job is as a web application programmer, I agree that web interfaces are not as slick as native applications. You can get pretty close - you can use javascript to get rid of browser menus, icons, etc.

Paul Cooper
Thursday, November 15, 2001

So you've recreated Front Page?


Thursday, November 15, 2001

Joel - I don't have anything to add, except that every time I read your articles, it feels like I wrote it myself.  *Please* keep up the writing, if only so I can see I'm not the only one who knows you can't do good UI in a browser.  (I've said that before in meetings, and you should see the blank stares - why, everyone *knows* that browsers are the *best* UIs, don't they?).

Also, please move your company to Atlanta so that I can take a pay cut and come work for you!

Thursday, November 15, 2001

I think this article would have been much better if the focus were not so much "XML and browser-based UIs suck", or "hype sucks" ... after all, weren't visual programming tools and RDBMSes all the rage only five-ten years ago?  The focus really should have been on "the right tool for the right job", which is a far more generic maxim that everyone can agree on.  I'm certain Joel would agree that it's not that XML is a bad hammer, but the problem is that if all you have is a hammer, every problem looks like a nail.

I would have also be very interested in the marketing aspect of CityDesk.  Engineers (and I am one too!) like to think that code construction is the be-all and end-all of what makes a good product, but that's hardly true at all.  "Marketing" is a term which gets a bad rap because it evokes images obnoxious advertisements and shameless propaganda crafted by would-be lawyers who aced the "sleaze" part of the bar but failed everything else.  True marketing is not the attempt to change the customer to fit the product, but the practice of changing the product to fit the customer. 

Dima had some great marketing questions posted earlier, but I'd be tempted to boil it down to one fundamental question: do you have competition in the marketplace?  If the answer is no, then you have got to ask why other companies have either never thought of this product idea, or have and have failed at it before.  If the answer is yes, however, then the question to ask is how you are going to differentiate your product from your competitors' and upset their entrenched position in the market.

Joel's company seems to be the latter sort of company, so it'd be great to hear how he plans to upset other web-content management systems, both web-based and non.  As far as I can tell, his key selling point of CityDesk is, "it's a web content management system, but with only the 20% features that 80% of the people use".  Didn't His Royal Joelness once tell us that this strategy doesn't work?

Thursday, November 15, 2001

I am only going to address one point, about what systems to program for.

The OS with the small marketshare may have no competition in your product area. 

Lets say for instance that Microsoft decided not to port Word to the Mac, and there were no other Wordprocessors for the Mac.

I would think that you would make more money making a Word Processor for the Mac than Windows.

I am not saying the equation you use is wrong but it could use a few more parameters.

Michael Hatton
Thursday, November 15, 2001

This thread seems to me like meat for the beasts.  The meat was thrown into the ring, and the animals (no offence intended) have been gnawing at it, and occasionally snarling.

Many people have stood on their soap boxes and preached about how you are wrong, or you are right.  Me?  I think the questions those statements were covering were wrong.

1:  Web Vs Local:  This is a case of the right tool for the right job.  No self respecting carpenter would throw out a tool because he didn't like it, if it were the best tool for the job.  Any developer who unilaterally chooses one over the other may be seriously handycapping themselves for future development.

2:  XML vs RDMS:  You can hammer a nail in with a screwdriver if you like but that isn't what it is designed for, and a hammer certainly does a better job.  XML is a beautiful way to store text, especially for fast transfer with pre-written marshalling and compression routines. RDMS are beautiful ways to store lots of data and access it easily in a great number of ways.  Using one to do the other seems a poor choice.

Hype vs Reality:  Just because a technology is hyped beyond any reasonably sane level does not mean that it isn't viable.  So people are foaming at the mouth over something new?  So what?  Of course idiots are gonna use the product outside of its original specifications.

Bill Dunsford
Thursday, November 15, 2001

eBay was mentioned above as a form of content management successfully used every day by a great number, showing that web-based is a good way to build such a system.

I'd like to point out that it's also an example of the benefit of local GUIs - serious eBay sellers (who do many listing) often use one of the several available local client programs for managing eBay listings.  The web interface is ideal for people who sell a few things, but not well suited for people who sell hundreds of things.

So both interfaces are supported.  That's ideal.  I'd like to have a content management system where I mostly do the major work with a local application, but my pages also have an "edit this page" mode so that I can make small changes with just a web browser if I need to fix a typo.  Of course the changes should syncronized both ways.

Kyle Cordes
Friday, November 16, 2001


For years I've been saying to anyone that would listen that the entire HTML web thing has been a 10 year leap backwards in programming, usability, speed and standardisation.

There is still no decent RAD tools out there that allow you to quickly and easily create a "useful" web application.  Why?  I believe because its not possible.

Nice that others feel the same way.

Toby Allen
Friday, November 16, 2001

Kyle, your comment about supporting both modes sparked a complicated train of thought in me.  The links between what went in and what comes out might not be very clear, but here goes anyway.

One of the core functions of a content-management system seems to be providing a way to edit files that "live" on a web server somewhere else.  Yeah, there's other stuff - mostly templating - but I'll get to that later.  This "remote editing" functionality is valuable for one extremely temporary reason: many ISPs don't provide anything better than FTP to get at your files.  *But that's going to change.*  I don't expect that hosting companies are going to be providing NFS/CIFS access for customers any time soon; any that did would get constant complaints about performance during the short time before they were dragged under by the security problems they'd be creating.  However, in the next couple of years we're going to start seeing distributed-filesystem technologies that do have the performance and security characteristics to make such remote access - from anywhere - palatable.  I'm working on part of that puzzle, and I know there are many others.  Maybe I won't be "first past the post" but the post will be passed.

Once that happens, I wonder what parts of a CMS like CityDesk will still have any serious appeal.  Not only the remote-access portion but all integration with it e.g. in the editor will be pretty useless.  Why would I use CityDesk's editor when I can use one I already know and like quite well?  Apart from the application of templates, which can be done from a script launched with a single click from within my editor (EditPlus) I only see a couple of things CityDesk would add.  One is a minor matter of mapping between the "raw" and "cooked" forms of a page so that hitting the "preview" button while editing the former will show you the latter.  No offense, but BFHD.  I'm sure the authors of existing editors could add that functionality to their programs in under a day; EditPlus is damn close already. The only significant part left, then, is a layer of WYSIWYG-ness to hide the icky HTML details from users.

Both WYSIWYG HTML editors and templating programs are a dime a dozen.  Remote file upload is going to be a non-issue soon.  Yet again I have to wonder how much consumer-perceived value there will be in a program that's a jack of all these trades and master of none, when existing fully-formed and familiar programs that cover all of the core CMS functions can so easily be made to work together.

Jeff Darcy
Friday, November 16, 2001

What level of accessibility does Citydesk allow? Can I define acronyms or abbreviations, anchor titles, etc.

Oh, and XSL is very (very) easy. If you expect a programming language you will be dissapointed but as a document transformation language it's suitable for most things.

Sunday, November 18, 2001

I notice web based apps are most useful in Embedded applications like switches or routers. It is a interesting replacement for old rs232 terminal interfaces used to configure devices.

I too believe XML is overly hyped. The reason for its sexyness is the hope for an open standard for data exchange. XML is a great tool for sending management commands to applications. Its great because it is easy to read the data members and its easy to modify. I could easily write an application to talk to my software. XML is also a great intermeddiate format which allows your data to be easily translated into any other data format. A text file by itself cannot compete with the speed of RDBMS but you can translate XML data to database information and back.

Joel, in your case CityDesk may not XML to store the webpage content information, but it might be a great interface for plug-ins.

As a Solaris developer and a Linux user I still think points 3,4, and 5 are right on the money. Unix consistently has poor user interfaces and the managers at Apple are in a winter wonderland and really need to change there business model. Oh yeah Java is still slow even on a sun e4500 server, give me a break.

-- Mark

Mark Brown
Sunday, November 18, 2001

I work as sound engineer in the dark forests of central Sweden. To supplement my meager income I do some web design and site administration. Recently I got a couple of gigs teaching people how to administer their own sites. They've seen how easy it is for me to work with a good program (Dreamweaver) and reckon that its easy for them too - and cheaper. But the truth is that not everybody has the right mind frame to understand the nature of HTML.

Just as I will never really understand how to program - even if I can do some nifty tricks in Action Script/Flash - so will it be that my clients never really understand what they're doing when they create a new page using a template and load it up to the site. Maybe I'm a lousy teacher but I don't think so. Soon I'm going to start charging for telephone support!

If City Desk help these people then it'll have a big market.

Andrew Scott
Monday, November 19, 2001

I think it's important to distinguish HTML forms from XFORMS+Ecmascript and Flash and Java. All of which could insert images and upload them to a server through a common interface.

Monday, November 19, 2001

To the "moron", from the "village idiot"...


What about .HTA (HTML Applications)?  You can have your own icon and you can capture any keystroke (Ctrl + S for example) that can be captured with a regular Win32 app.  With an HTA, you don't have to sacrifice screen space to a spinning globe, noone eats your ALT keystrokes and the "back" button has been banished...

Introducing HTML Applications: DHTML Goes out of the Browser

An example of a word count while typing?  This feature used to be on the MSDN site where you used to be able to write comments on the articles, but it's gone now for some reason.  Its quite easy to do though...

When the user closes the browser, you have the option to save changes or whatever using the "onbeforeunload" method in IE.

I do agree that there should be a standard client side menu, but I have seen decent implementations using IE behaviors.

IE Behaviors Library

What about XMLHTTP and XML?  Sure you initially have to download the UI markup, but after that you can post back "updategrams" (using XML) to update the database and not have to reload the entire page.  Actually you could use a hidden frame to do this... but XML *is* more sexy.

I've seen some neat promising features in the new IE Web Controls (TabStrip,  MultiPage, TreeView, etc..)

Sure, I can imagine the &lt;textarea&gt; doesn't work to well for a content publishing system... how about something like:

Check out the full article ("Richer Data Entry") at:

Oh, and I'm fully aware we are talking about IE and not Netscape or whatever other "toy" browsers are still holding on...  See number 4  :)


I don't think XML will replace databases in large OLTP applications anytime soon... but I don't think that was ever the point.  On the other hand, XML is tremendously useful for transporting data across boundaries, remote or otherwise.


I think in your case, you made the right decision.  Most of my arguments are in favor of a typical data entry "business" application (like BugFog or FogBuzz or BugFuzz or whatever it's called...) and not a GUI intensive system like CityDesk.


Agree 100% and finally it's refreshing to hear from someone else who doesn't think every piece of software should be free!  Let me add a few extra exclamation points to that here: !!!!


I dunno enough about CityDesk or Content Managment to comment on this, other than it sounds like you should switch the intended audience to porn web sites, cause they a) have a standard format (a friend told me!)  and b) they're the only ones making money on the web.

Geez, I stayed up past my bedtime, I hope someone at least reads this...

love (I'm overworked and tired, so I'm feeling a bit amorous),
the village idiot

Eric Kinateder (oh... neat font!)
Wednesday, November 21, 2001

Is this correct Joel?

CityDesk is a:

1) Stand alone windows app,
2) Providing rich html editor,
3) Allowing for update of static web sites through FTP

If yes, then I agree with Smirk's assesment of CD as FrontPage clone.

If no, please clarify.

Thursday, November 22, 2001

First of all to congragulate u for a very good thought provking article. But some precise thoughts I had regarding the topics that u were mentioning out there.

1. You can't do good UIs in a web browser.

    It is agreed that the web browsers can't get the best UI's. But Browsers UI's are becoming more and more adaptable. The point is that over the period of time it is to be seen that the browsers should be more powerful to do a lot more things and should be able to give an interface as good as the applications not forgetting the security improvement in the same. Ofcourse the best ui u can get is the windows VB,VC++ UI. But my fore sight is an MS Office that will be full fledged web based and can be evoked for single use from the Microsoft site with a small fee when availed as a service or a full fledged web based installtion on an intranet server/standalone system when bought as a product. That will be the day when typing in a web based editor will be as convinent or better than using an application interface.There was an Age of applets and if right attention was given towards its growth and better coding and testing environments were provided to it life would have been a lot easier.Somewhere i feel that Sun suddenly left it to grow by itself.

    But i do miss menu, customized menu bars and my own application Icon on task bar where another application crashing the browser won't vanish my application and ofcourse not to mention the cramped feeling working inside a browser where u develop an application in another where in u have little control of things.But I am waiting for the better day where my browser instance will turn into an application itself. (ofcourse there are some minor regrets that HTTP is an stateless protocol)

2. XML is a Dumb Format For Storing Data

    I always felt XML was for Data Exchange rather than Data storage. Ofcourse Storing MetaData with Data was always a thing that is going to be a point of contention and not to say if not used properly they are going to choke the lines of communication. I cannot imagine an idea like sending the streaming data or similar things in XML, oops u are going to choke every bandwidth available and break the network back bone out there as i am sure that the meta data will mostly be double the size of data.

    But then at times when the other end does'nt know what they are going to recieve i think XML is best but otherwise passing data with Meta Data (XML) that the other end can predict accurately is not worth it. U have  mentioned "select....." i don't think that is convincing because i frankly feel that XML is not for storing a huge amount of data and u'r argument can be extended to the limit that XML can't have primary keys, foreign keys, dependicies, consistencies what not. Basically we should not go out comparing XML with an RDBMS.

3. If You Can Only Do One Platform, Do Windows

    Why think of it at all when things are web based. Thus we can neglect the thought of programs able to work on common platform because the browser will take care of it (forgetting Java's platform independence). Thus i some where feel the web can address a lot of issues once it is improved in the time run.

Madhu Menon
Wednesday, November 28, 2001

Joels article and this message thread made it all the way to an Australian newspaper:

Ben R
Wednesday, November 28, 2001

*  Recent Topics

*  Fog Creek Home