As principal partner of DataCurl LLC, Dan Wilson runs both the consulting practice and ChallengeWave.com, a way to help employees start and stick with healthier lifestyles. Before launching DataCurl, Dan held numerous senior program and development positions in such industries as Technical Consulting, Health Care, Online Publishing and Government Contracting. Dan is an avid participant in technology communities; an Adobe Community Professional, manager of the Triangle ColdFusion User Group in Research Triangle Park, North Carolina, Managing Director of the popular Model-Glue framework and contributor to numerous open source projects based on ColdFusion, Flex and AIR platforms. Dan presents on ColdFusion, Flex and Rapid Development Techniques at popular conferences around the world. You can find his thoughts on ColdFusion, Flex, AIR and other technology matters at http://www.nodans.com and some occasional ramblings on food at http://blog.chefdanwilson.com. Dan has posted 33 posts at DZone. You can read more from them at their website. View Full User Profile

6 Reasons Why Our Start Up Company Uses ColdFusion

04.05.2011
| 16245 views |
  • submit to reddit

I run the start up company ChallengeWave, a workforce wellness motivation engine helping companies get employees more involved in their health and have fun doing it. We use ColdFusion as our platform and to put it simply: it helps us do more with less. After reading the many posts bashing .NET as a poor choice for start up companies, I wanted to explain how ColdFusion helps our start up company.

We face challenges common to many software based start up companies. First, our competitive landscape is filled with established players with more resources than us. Our customers want new features and modules to support their business, and they want them now. We must evolve our product to stay ahead of competitive products and gain marketshare. We've got to balance new features with product maintenance and keep our future costs in line. It's on us to compete by being leaner, keeping operations efficient and using our nimbleness to turn around features and modules much quicker than our competition. To keep an aggressive product development velocity we must use a rapid development platform. To keep customers happy we also need a scalable, easy to administer platform.

For those of you who haven't kept up with the growth and maturation of ColdFusion over the years, I'll mention some of the top reasons we've settled on ColdFusion and how ColdFusion helps ChallengeWave.

Groovy, Erjang, Rhino, Jython, JRuby follow in the footsteps of ColdFusion

The power of dynamically typed languages on the JVM needs no preamble. Groovy, Erjang, Rhino, Jython, JRuby and others are some of the prevalant examples. ColdFusion was one of the first major dynamically typed languages on the JVM, when it was rewritten from the ground up in about 2001 from its legacy C++ platform to run entirely on Java.

ColdFusion supports objects, Object Oriented programming constructs, data structures and other important language features, but it doesn't necessarily enforce types unless you tell it to. We use the dynamic nature of ColdFusion to develop and refactor software quicker than our statically typed counterparts.

We Operate at Higher Levels of Detail

ColdFusion is more than a language, it's also a platform. The ColdFusion platform is optimized for rapid development of web and mobile applications. As a start up company with limited people resources, we need to be efficient in how we divide our time in feature development, maintaining software, marketing, on boarding new clients and meeting with investors/mentors (and not going off the deep end :) ). With ColdFusion, I focus on what I want to build, not the low level implementation details outside my realm of caring. I avoid the ceremonial musings of many other platforms and I complete my work efficiently and maintainably.

As a matter of fact, there are hundreds of things I can do cheaper and faster with ColdFusion. Take a quick look at 10 ColdFusion 9 one liners by Sam Farmer and the equally compelling 10 ColdFusion 8 one liners by Sam Farmer.

ColdFusion provides high level ways to work with:


For example:

Query a Database

<!--- Create new Query Object --->
query = new Query(sql="SELECT person_id, name FROM Person");
<!--- Bind SQL command --->
results = query.Execute().getResult();

Define a Hibernate aware, ORM ready object

component displayname="Artist" persistent="true" output="false"
{
 property name="id" fieldtype="id" type="numeric" ormtype="int" generator="native";
 property name="firstName" type="string" ormtype="string";
 property name="lastName" type="string" ormtype="string";
}

Create New Object and Save Through Hibernate:

artist = EntityNew("Artist", { firstName="Jackson", lastName="Pollock" } );
EntitySave(artist);

Note: configuration happens automatically, no horsing around with Hibernate config files unless you want to.

This speed in development allows us to do more with less. We get features done faster and push quality code out the door quickly. Some ColdFusion detractors point to ColdFusion as a paid platform, unlike 'free' platforms like PHP. ColdFusion is rather inexpensive, and the cost savings come within the first 20 hours of developer time saved. Besides, we only pay for production licenses. Development, Staging, QA, and Hot Backup production licenses are at no additional charge.

Running a start up is about being efficient with resources. Those folks that would spend $20,000 in labor costs or opportunity costs to get out of paying $1,200 for a production license of ColdFusion probably don't have much business sense anyways.

Good Tooling

There are several good IDEs available for ColdFusion. My favorite is ColdFusion Builder (Eclipse based). I also use CFEclipse (also eclipse based). Others use Textmate, E, IntellijIDEA, Coda, Dreamweaver, and Notepad++.

Not to mention, there are heaps of other ColdFusion Open Source libraries and projects freely available.

ColdFusion also has lots of open source frameworks to use, like Unit Testing frameworks, Model View Controller frameworks, Dependency Injection/Inversion of Control frameworks and more. This plethora of pre-built tools gives us additional leverage in building our applications. ChallengeWave specifically uses:


Scalable

ColdFusion is a scalable platform and can handle heavy load. I've helped build massive systems in ColdFusion and as with most dynamically typed languages, system scalability is a function of application tuning, database tuning and the appropriate caching systems in place. One project I worked on was the web store for the Stand Up 2 Cancer telethon. This telethon was carried on all 6 major TV networks and was watched by an estimated 18.3 million of people over a period of 6 hours. The amount pledged to fight cancer was over $80 million dollars. The store was subject to extreme surge load and ColdFusion handled the load just fine.

Clustered caches are a vital part of a high performance and high redundancy architecture. Working with the built in ehCache integration is very straightforward and easy. Mike Brunt did a quick tutorial on Clustering EHCACHE With ColdFusion.

Interoperable

Part of our business is integrating our software into the existing HR software our clients use. With ColdFusion, we can easily integrate with other technologies and maintain those integrations cost-effectively. ColdFusion can create and consume SOAP, XML, JSON, Java objects, databases of all types, AMF, REST, .net assemblies, SMS gateways, Message Queues and PDF forms.

Take a look at this 45 second video by Brian Kotek on a single ColdFusion object powering an Ext grid, XML, JSON, WSDL, and a Flex app via AMF (Code sample here).

ColdFusion objects configured as Remotely Accessible (access="remote") are automatically published as JSON or SOAP resources. So putting up APIs is simple and ceremony free.

Also, since ColdFusion is built on top of the JVM and is compiled down to Java byte code, we have the option of using any existing Java libraries and frameworks.

Community

The ColdFusion community is vibrant, supportive and filled with great people. ColdFusion developers are some of the most friendly, accessible and helpful colleagues out there.

Some of my favorite resources are:

Some of my favorite conferences are:

Some of my favorite ColdFusion startups are:

For more community resources around ColdFusion, check out: Charlie Arehart's CF411

Conclusion

Using ColdFusion gives our start up a set of extra hands and a great set of software development tools to build the best systems for our customers. Without the capabilities ColdFusion brings to the table, we would need extra developers or be farther behind our competition. If you are in need of a rapid development platform for your business, consider ColdFusion.

If your organization would like to provide a fun way to engage staff in developing healthy lifestyles, consider ChallengeWave. ChallengeWave is a way for organizations to reduce benefit costs and get a more productive workforce by getting staff more interested in their health. ChallengeWave helps staff start and stick with healthier lifestyles by connecting them with each other in short term health related competitions where they compete with or against others. Everyone in the organization can be supported, challenged, motivated and have fun improving their health.

About the Author

Dan Wilson is a North Carolina Entrepreneur focused on improving the health and well-being of Americans through innovative technology. Dan and his team designed and developed the ChallengeWave suite of services to help businesses increase employee population health. ChallengeWave creates and reinforces motivational relationships between peers for health improvement. ChallengeWave drives personal reform.

In addition to directing ChallengeWave, Dan consults with businesses on a range of technology and health matters. Recent clients include T-Mobile USA, RTI International and Mayo Clinic. Dan is a frequent conference speaker on health and technology topics at leading events in the United States and Australia.

Published at DZone with permission of its author, Dan Wilson.

(Note: Opinions expressed in this article and its replies are the opinions of their respective authors and not those of DZone, Inc.)

Tags:

Comments

Charlie Arehart replied on Tue, 2011/04/05 - 1:40pm

Great overview from a practical business perspective, focusing not just on CF's technical benefits but also its great community. Hope folks with sincere concern for making a technology choice will give it consideration.

Peter Bell replied on Tue, 2011/04/05 - 3:19pm

Great writeup Dan!

Mike Brunt replied on Tue, 2011/04/05 - 5:54pm

Dan, as always this is well written, I was speaking to a former .NET developer yesterday who has moved on to working with node.js and CouchDB. I asked him what he thought about ColdFusion and he genuinely thought it had gone away and I would not class him as ill-informed. As we found out at the O'Reilley Velocity conference, things are changing rapidly in our world and if anything, ColdFusion is more relevant now than ever and I for one will be looking into the emerging technologies and the roles that CF can play with those.

Jim Priest replied on Tue, 2011/04/05 - 6:34pm

I had the same experience as Mike last week. We had a PHP developer in our office working on another application and he inquired about our use of ColdFusion. He had last seriously looked at CF back in the 5/6 days. 

I showed him some of the same sites Dan mentions above, as well as the current application I'm working on (CF9/ORM/MVC/OO/PDF) and he was amazed at how it had matured.  I'm going to see if I can talk him into coming to a TACFUG meeting next :)

Michael Kimsal replied on Wed, 2011/04/06 - 7:42am

Great to hear how CF is still used and adopted. To put the CF skeptics views in perspective, many have seen CF from the early days, and the mix of tag markup and general 'out there' approach made it harder for people to transition to easily without making a large investment of time. Syntactically, moving between Python, Perl and PHP was much easier than going from, say, Perl 5 to CF 3/4 (97/98 period). Pricing was a much bigger consideration in those days - indeed, most days up until the last few years. Adobe has not done a great job at pricing, although the standardization and clarification of messaging the past couple years seems to have helped.

IMV, the Adobe connection is a double-edged sword. Certainly good engineering resources, better enterprise feature integration, PDF, etc are all good. It seems to have come at the expense of a sense of independence for CF - it's just another checklist item on Adobe's list of offerings. I can't help but think that it's just as subject as Dreamweaver or other products to budgetary constraints and shifting internal politics, which may have stifled some progress we may have seen otherwise.

CF is in an odd position generally. It's sort of a boring corporate choice - many of the benefits that would justify the licensing costs are only something that larger companies would have a need for (Sharepoint integration is the prime example of this). Many of the pieces of functionality (ORM, etc) are also available in competing platforms which are free/opensource, so the argument is more nuanced than it might first appear. My interest is in Grails these days, and some of the 'oneliners' referenced above are also one-liners after a 'grails install-plugin' command to install one of the great plugins available.

http://www.adobe.com/products/coldfusion/pdfs/cf9_feature_comparison_matrix_ue.pdf is a comparison of the various versions, and it's good to see more functionality being offered in CF9 'standard' than was offered in previous editions. That's an inevitable progress, but also something else that has probably kept people out of the CF fold earlier. CF7 and CF8 have no "Excel support". In Grails, I've had it for several years in the form of the direct Apache POI project, and PHP and Perl have had Excel support via libraries for years - all 100% free. And arguably CF has had it if you wanted to dive in to direct Java library use as well, but if you're going to be learning and tying in JVM libraries, the argument for CF is chipped away a bit.

All that said, I'm still glad to see CF carrying on and progressing. The ncdevcon and earlier conference here in NC were both eye-opening in terms of what CF is doing and offering, and if someone was interested in CF, I'd have a much harder time making a case against it in 2011 than in 2004. Platform choice has to take in to account developer comfort level and skills, and CF does quite a lot to make common use cases easy to do - that's always been a CF strength and looks like it will be well in to the future.

Thanks for keeping us up to date!

Jakob Jenkov replied on Wed, 2011/04/06 - 7:53am

Didn't ColdFusion kill MySpace performance-wise? Wasn't that why they switched to a .NET platform? Try googling it...

Raymond Camden replied on Wed, 2011/04/06 - 9:00am

@Jakob: No, ColdFusion did not kill MySpace. Poor programming and design decisions did -just as it would kill _any_ web site. Their CTO (CEO? I forget) once bragged that they simply threw stuff up on the server w/o testing. 

 @Michael: Just a few small counter parts. Much like PHP/Perl had Excel support for years via libraries, so did CF. What you saw in CF9 was _baked in_ support for Excel, ie, no need to go to an external library. While CF's open source libraries may not yet compare to what is available for PHP, there _is_ quite a bit out there. Have a look at the close to 900 ColdFusion related OS projects at RIAForge and the number of UDFs available at CFLib.org. Again - not saying there is much available as PHP, but there's a strong presense. :)

 

Dan Wilson replied on Thu, 2011/04/07 - 6:51am

@Jakob,

 

If you are curious as to what killed MySpace, read this post on the High Scalability blog: http://highscalability.com/blog/2011/3/31/8-lessons-we-can-learn-from-the-myspace-incident-balance-vis.html

 

MySpace had a business scaling and culture scaling problem. Not a techology scaling problem.

 

Dan Wilson

 

 

Michael Kimsal replied on Thu, 2011/04/07 - 7:28am in response to: Raymond Camden

@raymond - I don't disagree - I'm aware there's quite a lot of usable open source stuff out there for CF. But if you're using a lot of open source stuff because it's not baked in to CF, the reasons for using CF shrink. As more is baked in over time, it's easier to argue for CF given the cost.

Related to cost, the $1200 is a bit of a misstatement, it's $1299. :) But more to the point, many of the features people might want may only be available in the 'enterprise' edition, bumping the cost up to >$7k.

re:PHP - there's a lot out there, but much of it is bad/broken/insecure, and has been a disservice to the community for a while, as it's harder for newcomers to separate the good from the bad, and the bad gets continually reused and passed on.

The CF argument still comes down to cost/benefit, and some people may be spending too much in human resources when going with CF would be more cost effective.

Michael Kimsal replied on Thu, 2011/04/07 - 7:31am

Also, re myspace - it's been ASP.NET for many years now, and it didn't feel markedly different after the switch. Still bad performance on the front end because of user-defined styles, endless auto-play media, etc. Underlying server-side tech was (and still is) the least of MySpace's troubles.

Raymond Camden replied on Thu, 2011/04/07 - 8:25am

@Michael: What features are only available in Ent? As far as I know, it's limit to CAR backups and the Admin API. Everything else is simply throttled a bit slower.

 Wow - your view on PHP OS is the first I've heard. I've always been told PHP > CF because of all the OS libraries out there. It's nice to hear a perspective like this. Obviously, it can apply to CF OS as well. Not everything out there is supurb. 

Michael Kimsal replied on Thu, 2011/04/07 - 10:40am in response to: Raymond Camden

http://www.adobe.com/products/coldfusion/editions/ has a matrix I was looking at.

Having a nice mgt console - especially if I get a taste for it in the dev edition - would be something I'd expect in basic, not 'enterprise'. Clustering would be something else I would want to know I can move up to without having to pay a huge amount.

Also, that matrix page above does *0* at explaining WTH "Enterprise Feature Router" *is*. You'd think they might want to at least link to what on earth they mean. I get it after searching around some, but none of the useful results came back from Adobe. :/

Raymond Camden replied on Mon, 2011/04/11 - 6:09am

All versions have an admin - so that's not a problem. And yeah - I can see how the EFR could be explained a bit nicer. It's a bit clear in the PDF I think, but not the HTML version.

Andrew Clarke replied on Thu, 2011/05/12 - 6:36pm

Interesting post. Don't forget the distinction between CFML the language, and ColdFusion (or Railo, or BlueDragon) the application server. This is also another great example of the health and diversity of the ColdFusion/CFML ecosystem.

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.