An Architect's View

CFML, Clojure, Software Design, Frameworks and more...

An Architect's View

Why build Railo from source?

July 1, 2009 · 6 Comments

After I posted my instructions for building Railo from the latest source in SVN, there were some appreciative tweets and success stories but Erik-Jan Jaquet asked can you explain to me WHY I would want that? It's a very good question so here are some of my thoughts on why you might decide to build an open source project from source yourself...Why build any open source project from scratch? 1. Because you can! For some people there's a sense of achievement in seeing something come to life on their local machine even if they never look at the code. It's also a verification that the open source project is truly open: that you can simply download the source, run a simple build script and have the software up and running. 2. Because it gives you the very latest version! You've seen the team post that a particular bug is fixed or a new feature has been added and you want to try it out. You could wait until whenever the next official build appears - or you could just update from SVN and build it locally and take the new feature or bug fix for a test drive. 3. Because you can fix bugs yourself! This is the first reason where you need knowledge of the language the product is written in. Railo is written in Java so you might like the first two reasons but this reason might be going to far for you. On the other hand, it could be a great way to help you learn Java. Tracking down bugs and fixing them is a really good skill to practice and refine and working on someone else's code base also gives you a new view of the world. Certainly, if you have skills in the source language, fixing bugs in your own local copy of the product can be very valuable and it's one of the main reasons that many enterprise level companies are taking open source more seriously these days. Companies can keep a copy of the project source, carefully tweaked and tuned for their own needs, safe in the knowledge that if they upgrade to a newer build and the bug reappears, they can quickly reapply their fix and continue working. Of course, if you fix any bugs, it's good practice to submit the patches back to the core product team (adding them to a bug report, for example) so that others can benefit from your fix and the product can improve - which will increase its user base and therefore increase the resources available for support (both more users able to offer assistance and more business for the company offering the product, who can then afford to provide even better service). 4. Because you want to add features! This is going a step beyond bug fixing but this tends to be the reason stated by most individuals who get excited about building products from source code. Of course, with Railo, there are ways to extend the product that don't require you to build from source. You can add new built-in tags easily as CFC-based custom tags. You can write extensions based on the interfaces provided by the Java code (see the Java API documentation for Railo) - you only need railo.jar, not the source, in order to build such extensions. Of course, if you want to enhance the core language the engine understands, then you need to build from source. Again, show your open source community spirit by submitting patches back to the core team via JIRA tickets so that others can benefit from your work. It's also worth saying don't be offended if your suggested enhancement is rejected by the core team - there are many reasons why a community submitted patch may not pass the team's inspection (e.g., performance, introduces other bugs or compatibility issues, just doesn't fit with the vision and direction for the project). If you've built open source projects from scratch in the past, post a comment and share your reasons!

Tags: coldfusion · oss · railo

6 responses so far ↓

  • 1 Erik-Jan Jaquet // Jun 30, 2009 at 11:51 PM

    Hi Sean,
    Thanks for the good explanation! Reason nr 1 is probably the reason why I certainly will give it a try, but maybe in the future, I will think of you when I build my own Railo for one of the other reason's! Thanks for the posting.

    Erik-Jan Jaquet
  • 2 denny // Jul 2, 2009 at 4:59 PM

    I've used it the most to see what exactly is going on when I try to do X.

    If I have a question, I love that I can go to the source and ask.

    How do I convert a java result set into a Railo query?, I wondered.

    Searched the source for "query", found the class, looks like it takes a result set and a query name. "Hey, it works!".

    Sure I could have just dumped metadata like crazy until I got lucky, but this was sooooo much cooler.

    There's /nothing/ like The Source.
  • 3 salomoko // Jul 5, 2009 at 5:27 PM

    Sean,

    whats the total footprint of railo? If I were to get a VPS slice of sort, how much disk space would be needed to install railo? How much memory is needed to run railo superbly, either in the JVM or system?


    thanks
  • 4 Sean Corfield // Jul 6, 2009 at 6:49 PM

    @Sal, it would depend on which JEE engine you chose and what your application does.
  • 5 Adam Tuttle // Jul 7, 2009 at 5:09 AM

    A few years ago (pre OpenBD and Railo) I attempted to get The Smith Project to fill my CF app server needs. It wasn't very mature, feature-wise (still isn't, IMO), and had some frustrating bugs. For a few weeks I compiled from source and fixed bugs, but when the novelty wore off it became frustrating to need to fix a feature every time I needed to use something new... I burned out on that pretty quickly. Still, if I hadn't felt like I was the only one on the planet working on the source, I might have stuck with it.
  • 6 Sean Corfield // Jul 7, 2009 at 10:50 AM

    @Adam, I share your frustration. I also attempted to use The Smith Project but gave up because the project owners were not reachable in general and the community seemed very small. OpenBD and Railo are a big step forward from Smith.

Leave a Comment

Leave this field empty: