Wednesday, February 28, 2007

Sorry Ben, But I Hate Dreamweaver

I know that this statement by Ben Forta in support of Dreamweaver is a bit old, but you would think that Dreamweaver would only have improved since then. It hasn't.

Dreamweaver Sucks, Pure and Simple

Adobe Dreamweaver has some nice features, yes—chief among them being support for autocompletion of ColdFusion code, and pretty good syntax highlighting. Of course it has word wrap (cough—Eclipse), as one would expect it to, and it has a somewhat interesting RDS interface to your ColdFusion server, so that you can browse data sources and components, including SOAP web services.

It's not so much the feature set, you see, that has me not so eager to use Dreamweaver. It's the user experience. Call me a weirdo, but user experience is important to me. Dreamweaver is sluggish, sometimes unresponsive, and it is bloated. It's a WYSIWYG HTML editor that's trying to be an IDE, and, while it has nice IDE-like features, it just doesn't cut the mustard for serious CF application development.

But what are the alternatives? Here are the ones I know of:

  • CFEclipse: Not too shabby, but nevertheless out of the question because of the Eclipse Team's recalcitrant refusal to support word wrapping. Also suffers somewhat from bloat like Dreamweaver.
  • jEdit: No autocompletion. Written with Java and Swing, so it's not exactly the most resource-friendly app.
  • Vim: A killer text editor, but it has no autocompletion. (And it's not really an IDE.) Syntax highlighting for ColdFusion is not differentiated from HTML highlighting, which is obviously important.
  • CF Studio: Once the preferred ColdFusion IDE, now supplanted by Dreamweaver (and perhaps CFEclipse), its development ceased years ago.
  • PrimalScript: No word wrap, and it costs something like $140 for a license.
  • TextMate: Has autocompletion—sort of, but it exists solely on the Mac.
  • Intype or e: Not really available yet, and they're not really IDEs either, but when they become available, they will have on Windows much of the functionality of TextMate on the Mac.

So, even though I hate Dreamweaver, it's the best ColdFusion IDE available today. But that's not good enough.

The Solution

We need a new IDE, and that's all there is to it. ASP.NET developers get to use Visual Web Developer and Visual Studio, J2EE developers have Eclipse and NetBeans and IntelliJ IDEA. We need an IDE for ColdFusion like those, and we should accept nothing less.

Proposed Features

A ColdFusion IDE should have or do the following:

  • Word wrap (I hate to have to state this, but Eclipse doesn't have this. It's like demanding that a toilet have water in it, or that a CD player support stereo sound.)
  • Auto-completion like Visual Studio (IntelliSense), NetBeans and Eclipse
  • Support highlighting and auto-completion for CFML, (X)HTML, XML, Javascript (including JSON), CSS and SQL
  • Component and web service introspection
  • Datasource browsing
  • Templates (perhaps using the excellent Apache Velocity templating engine) and snippets
  • Parsing of included files, components, custom tags and web service interfaces so that auto-completion works with them as well
  • Be framework-friendly, but framework-agnostic
  • Have a responsive interface (unlike Dreamweaver)
  • A scripting interface for automation
  • Intelligent, automated deployment
  • Support for Subversion or the RCS of your choice
  • Wake me up in the morning to the gentle strains of a Schubert piano trio

(I'm kidding about that last one.) I could probably think of more features that I'd like if I had the time right now. I admit that the more features it has, the less likely it will not be bloated and sluggish like Dreamweaver. Perhaps two editions could be made, an Express version and a Professional version, or something.

I'd make an IDE if I had the time. Is anyone else interested in this?

12 comments:

Trevor said...

Hey,

I dont agree with the need for word wrapping in a programming editor, but thats just me. But what i did notice after downloading CFEclipse is that it seems to have word wrapping now. Or at least it has a button that when clicked, would wrap if i typed "asdf asdf asdf..." long enough.

In case you missed it.

Thomas said...

We are ColdFusion but also C# (ASP.NET, WinForms) developers, so the source management of our choice is SourceSafe (which works pretty good for our requirements). We use DreamWeaver also because it has built-in VSS (SourceSafe) integration. The basic functions (check-in/out, get error message when checked out by other persons) also satisfy our needs. A brand new IDE (excellent idea!!!!) simply needs basic support for SourceSafe (or as you said, a "RCS of your choice"). I mean, you should divide your feature requirements into different priorities. Auto-Completion is a must, syntax highlightning and RCS support (for me!) are too, a scripting interface for automation for example, isn't.

By defining the most important features at first, maybe this attempt wouldn't look so "unrealizable", as id currently does.


regards, t.

Cajun said...

Vim actually has a powerful code completion feature (Ctrl-N). You need to type the name of the tag, variable, or function name right once. And when you need to use the same tag or variable later within the document, just type the first few letters and let the editor suggest the rest of the word for you.

Jon said...

Having lines of code that are longer than your editor window is 'bad smell'.
At the very least format your code better, most long lines are ammenable to being split.
But even better, take those very complex things you are doing and make them simpler.
If you have code that is deeply nested then you are getting pretty stinky, and should redesign your logic to remove nesting. Typically this means that instead of postive tests ( which result in nesting ) you use negavtive tests and break out of the function.

Lenore said...

I type HTML from memory using Notepad and test my work - and get things done faster than if I were to rely on something like DreamWeaver. It doesn't always have the right code (there used to be a valign/align issue) nor does it correct its own code when a user attempts to delete/undo code. The DreamWeaver template has to go through all the pages in order to update files? And why wouldn't I use an include file instead of an annoying .dwt template again? It's just lame. I've been very unimpressed. It could be worse - we could all be forced to use Go-Live or FrontPage. One thing that annoys me is constantly having to justify my choice to write code from memory even though it's w3c and browser compliant - and my productivity level is higher than those that rely on using editors anyway. Oh yeah...and I'm fixing their mistakes. I defend my choice to use a simple text editor.

Brad said...

I guess it's just a matter of preference. I love Dreamweaver and can't seem to force myself to like using Eclipse. I've got 3.x with CFEclipse and the CF8 extensions and it just doesn't seem to be as fast to code for me. Tag completion isn't as good in Eclipse (it puts the cursor in the wrong spot) and it doesn't support Dreamweavers native document check in/out management so you can't use it with all the other team members that are on DW.

As for a "Design View", I only use it about 5% of the time as I'm primarily a hard core cfml coder, but when I need design view, I LOVE that it is available. To my knowledge, there is NO design view in Eclipse (second strike).

My last annoyance with Eclipse is that if you just double click a .CFM file that is outside a project, you can't just "edit" it like you can with DW, it will generate an error complaining the file isn't part of an existing project or even properly be able to identify something that IS part of an existing project unless you actually open it from within Eclipse.

There are other issues to be sure but my main point is it is all a matter of perspective. I put about a dozen hours into trying to make use of Eclipse because I was interested in the new CFML debugging capabilities, however, in the end, I felt too handicapped using it over DW to make the switch even with the new debugging capabilities. I'm happy to keep paying the $300 per copy of DW for now.

Software at Cost said...

i agree...i kinda hate dreamweaver, but it's really the only thing that i can find with the features i need...the wysiwyg etc...any ideas on alternatives?

Gadi said...

I completely agree. They need a good IDE for CF. DW is not it. Ben Forta recently had a blog post on feedback about what people want / need. There is hope.

You are missing debug and intellisense in your list. Other than that you pretty much have everything that is needed.

I was recently forced to switch from CFStudio 5 (could not find a legit license online) to Homesite 5.5+ (bundled with DW). I cannot see a difference between that and CFStudio 5. They are both significantly better than DW.

Are there significant differences between intype and e?

John Wilkin said...

I'm a classic ASP developer - I've never used ColdFusion so I've never really had to look for differences, but as far as I can tell Homesite+ is the same program as CFStudio - Macromedia renamed it when they took over Allaire. Seeing as its so similar to the basic Homesite it makes sense I guess

Homesite's temporary files have the form hs_filename.ext, CFStudio's had the form cf_filename.ext. You'll find that Homesite+ temp files also have the form cf_filename.ext

That said, there hasn't been an upgrade to either HS or HS+ for ages. I use either HS or Dreamweaver, but when I use DW its always in raw code mode, and it always feels like the most memory hungry notepad replacement going

Tom said...

Totally agree, I am a flex developer, I use the Adobe Flex builder based on Eclipse and it is perfect! Code completion, refactoring... and all Eclipse plugin you want so very good for team dev.

So why Adobe doesnt make the same for coldfusion? Flex and Coldfusion are quite similar in the syntax (you can have XML/MXML objects or pure script)

Mike said...

Dreamweaver is only useful for basic static sites beyond that forget it. I think your comment that Dreamweaver is a wysiwyg editor trying to be an IDE is spot on. Unfortunately it still lets implementing bad practices easy to do.

I code in .NET so use Visual Studio (which I love) but recently I went freelance so knew I would have to get to grips with Dreamweaver and to say I felt like I'd gone back through a time warp would be an understatement, and I was using CS3 which is the current version at the time of writing this.

I haven't used basic input controls and SSI etc in eons but the books I read used those. Then when I covered its dynamic features I was unhappy to see its support for ASP.NET and JSP to be practically non-existent, and to see the code for its built in features (such as database work) using classic ASP and PHP to be convoluted, inefficient, insecure, out of date, and non-scalable. No OO programming in sight. I thought that Dreamweaver had moved on but it seems not.

I do wish designers would stop trying to be developers as it always leaves such a mess as they live in the past.

Joe Cleveland said...

After screaming at the top of my lungs at Dreamweaver for weeks, and contacting Adobe and demanding my money back for this flawed lemon software, I believe I have found the solution to the crappy Dreamweaver sluggishness problem. I was so infuriated by this nonsense I contacted the Ohio Board of Consumer Affairs to file a consumer fraud grievance and cc'd Adobe on it.

Disable Synchronization Information in the site preferences. This SERIOUSLY improved the lagging menus scrolling at the speed of molasses on a cold winters day. The dog ass slow pings and pongs back and forth from the server will be eliminated too.

If you are having difficulty connecting to FTP with a Mac, it is usually the built-in Mac Firewall which Dreamweaver cannot negotiate properly..... yet another flaw. Turn off your Mac software firewall and it will connect instantly.

Post a Comment