Recently, my editor asked me if I had ever heard about Curl and provided me some links to the technology. I had to admit I didn't, but it piqued my interest, and over the last few weeks, I've come to know a lot more about Curl. My editor has been coming across several queries about it from our readers, and we thought it appropriate to focus an article to address the questions, "What is Curl?" and "How does Curl affect my project?"
First, just to give some background on Curl -- it's the name of the technology and company behind it. The company was founded in 1998 as part of a commercialization effort from a DARPA grant at MIT. "Curl" breaks down into the Curl content language and the Surge development platform, which were released in March 2001 and since then; over 170,000 copies of the software have been downloaded. Recently, electricity giant Siemens used Curl to build a new executive information system.
Curl asserts that Web clients are under taxed and can afford to take on more of the work of a Web application. Its justification reminds me of the time when Java applets were all the rage (back in 1997), which fell through to the "thin client" concept. It appears we yo-yo (or cycle) through where to put the processing in the whole client-server paradigm and Curl puts it back on the client.
While Java started under a "Write Once, Run Anywhere" pretense, Curl supports the Windows platform and currently has a "Technology Preview" available for the Linux platform. This makes for a sound approach to eventually get to a cross-platform client development platform: start with and focus on the OS majority (Windows) and after you have that tackled, take on the next (Linux) to get it to sync up with the same functionality as the Windows variant. Theoretically, they would then move on to MacOS and then other variants of UNIX. This grassroots approach will surely keep Curl focused on progress as opposed to opening a floodgate of cross-platform issues to try and fix all at once.
|Curl opens a wide range of options and opportunities within the Web browser window of your user.|
Okay, so here's another adoption stickler: What's it going to take to get my development team to learn and use Curl? Curl is object-oriented, but is different, mostly in terms of syntax. That's the good news -- if your development team already knows C++ or Java, then learning Curl should be as simple as learning Curl's syntax. Curl's methodology of how a program is put together (as well as its bits and pieces [subroutines and procedures]) is the same as C++ and Java.
So what can you do with Curl? Well, let's first cut out what you cannot do with Curl: anything outside of a Web browser. Its code requires the browser plug-in to compile the code and make it run. So Curl is not for standalone applications, server programs and such. With that said, Curl opens a wide range of options and opportunities within the Web browser window of your user. With Curl, you can develop multimedia (graphics, animation, sound [which utilizes Microsoft's DirectX technology or OpenGL]) applications, business applications (which can easily utilize XML) and also interact with the latest paradigm: Web Services.
A really important point to bring up about Curl is the cost. Unlike other programming platforms out there, Curl isn't free. You can download the plug-ins, development environment and everything else for free. You can develop your applications for free. However, when your application is ready to be deployed to the real world, Curl wants a piece of the action with a license fee based on usage ($0.0005 per Kb transferred).
The last adoption stickler that usually gets brought up revolves around the community and developer support. Curl's Web site lists three main Web sites (referenced below). After taking a look at curlBreaker, I was ready to rock -- they are on their fourth issue and have some really neat content and ideas. Wrox Press has a new book out that helps developers learn Curl (aptly-named an "Early Adopter" book). There are mailing lists and groups available for peer support and Curl also offers training courses.
Also, Curl just raised another round in venture capital of US$7 million back in February. So in combination with that boost of sustainability, its feature-set and good community, I would recommend checking out Curl for your next Web application.
(As a side note, with the recent shift in focus here at Developer.com, I will now be writing high- or top-level technical articles targeting the project or product management sector. I have over four years of PM experience, which in combination with my computer science background helps me empathize with the ever-changing technology field. So I call upon you to send me your questions about technology, and I will break them down for you on this higher level.)
About the Author
Jason Purdy is chief technologist for Journalistic, Inc, a publishing company in Durham, NC. Jason has worked in the field of Web development for over six years, catching the revolution at its inception and working for both big multinational corporations such as IBM, Data General, and Trilogy, while also spending more than three years with two small start-ups, Stingray Software and AuctionRover.com. Jason earned a degree with majors in mathematical science and computer sciences, and a minor in chemistry, from the University of North Carolina (UNC) at Chapel Hill.