CFML development really shouldn't be this hard.
We've got this beautifully rich, easy to use language, yet we cripple ourselves by the shocking lack of great tools to help us develop. cfEclipse was a major step forward in terms of a fully integrated editor, but it stops short of being a full IDE. When it comes to debugging a live running page, the vast majority of us still resort to the classic "CFDUMP » CFABORT" combination.
Watching our new hires struggle with CFLOG/CFMAIL to see the state of their variables, I thought to myself, "it shouldn't be this hard". This was on a Friday. By the following Monday I had a working prototype of a debugger in their hands. As I showed this to more people, I got a lot of feedback and today I am proud to release it to a wider community.
The goal was simple — don't make it complicated to setup or to use. Work how CFML developers already think.
To that end, I developed it as a OpenBD Plugin, that simply drops into the WEB-INF/lib/ folder of your server. Restart, and that is you now enabled for debugging. Remove the JAR and it is disabled. Couldn't really ask for any easier for installation eh?
To use the debugger, you simply point your browser to http://127.0.0.1/openbddebugger/ which opens up a complete web based debugging environment. No additional tools, no awkard settings, just point and fire.
From here you can do many wonderful things through the wonders of the humble browser:
- Multiple request session tracking
- Set break points in any CFML page, custom tag or CFC by simply clicking on any line
- Conditionally Break on Exceptions
- Step through CFML tags and statements within CFSCRIPT
- Step over files/statements
- Run to request end
- Run to break points
- Full Variable Inspection
- Easy to use tree navigation of all variables and all scopes
- Search your variables; complete with search history
- Runtime statistics - tag/statement usage, variable type usage
- Current Tag and File stack
- Fully query history, including execution times, input vars, and row count
Everyone that has used it thus far, it has already sped up their development dramatically and has made finding deep rooted bugs an absolute breeze. One developer couldn't get over the window she was presented with when her CFML app threw an exception and just before it went into the CFCATCH she could see exactly the state of affairs and correct immediately. Another kept asking "is that it? no more setup?". It really is that easy.
Take a moment and have a look at the OpenBD Debugger in action in this YouTube video:
Some people are reporting the video is marked private; its not.
YouTube hasn't updated all their servers yet i guess.
The Debugger is available from today against the latest nightly build from OpenBlueDragon. Head over to http://www.openbluedragon.org/download.cfm to download both the core engine and the plugin.
Released as a pure open source library, you can enjoy the wonders of CFML debugging within the OpenBD enviornment for ZERO cost. What's there not like?