<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>ALTERthought Blogs &#187; Ruby/Rails</title>
	<atom:link href="http://alterlabs.com/category/technologies/ruby-on-rails/feed/" rel="self" type="application/rss+xml" />
	<link>http://alterlabs.com</link>
	<description>Results through imagination</description>
	<lastBuildDate>Tue, 13 Apr 2010 19:19:10 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>ALTERthought is hiring: Ruby/Rails Developers</title>
		<link>http://alterlabs.com/general/jobs/alterthought-is-hiring-rubyrails-developers/</link>
		<comments>http://alterlabs.com/general/jobs/alterthought-is-hiring-rubyrails-developers/#comments</comments>
		<pubDate>Wed, 13 Aug 2008 03:30:08 +0000</pubDate>
		<dc:creator>sunjay</dc:creator>
				<category><![CDATA[Jobs]]></category>
		<category><![CDATA[Ruby/Rails]]></category>

		<guid isPermaLink="false">http://alterlabs.com/general/news/alterthought-is-hiring-rubyrails-developers/</guid>
		<description><![CDATA[Job Description
ALTERthought is seeking energetic and talented associates driven to deliver solutions for a variety of client distributed systems and web applications, including Web 2.0 initiatives. This position requires someone to bring resourcefulness, experience and a passion for online technology solutions for start-up, emerging mid-market, and established Fortune 500 clientele. As a member of the [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Job Description</strong><br />
ALTERthought is seeking energetic and talented associates driven to deliver solutions for a variety of client distributed systems and web applications, including Web 2.0 initiatives. This position requires someone to bring resourcefulness, experience and a passion for online technology solutions for start-up, emerging mid-market, and established Fortune 500 clientele. As a member of the team, you will have the chance to work on unique and innovative solutions in a multi-tiered Ruby on Rails environments. This position is responsible for working on the development and design, using new technology frameworks, and concepts to quickly deliver functionality for our customers. Projects will include business intelligence systems and customer facing analytic dashboards.</p>
<p><strong>Responsibilities</strong><br />
The developer will serve as a team member and, where appropriate, mentor other associates in solutions to meet business needs. The ideal candidate will have experience working on agile teams developing software in a collaborative and iterative manner.</p>
<p><strong>Knowledge Areas</strong><br />
The ideal candidate will have 2-6 years of experience in various programming environments as summarized by the following:</p>
<p><strong>Summary<br />
</strong>- Highly desired: Ruby/Rails, PHP, javascript frameworks (prototype, YUI, extjs, etc), mySQL, SQL Server, XHTML/CSS<br />
- Next Best: Perl, Python, PostgreSQL<br />
- Nice-to-Have: .NET</p>
<p><strong>Detail</strong><br />
- Bachelor&#8217;s degree in software engineering or computer science<br />
- Strong architectural design and implementation skills<br />
- A demonstrated ability to keep abreast of new technology<br />
- Ability to establish and maintain effective working relationships with team members, managers and product specialists<br />
- Ability to maintain own work flow and meet deadlines<br />
- Ability to work in a fast-paced and dynamic environment<br />
- Ability to respond to frequent pressure to meet deadlines when work speed and sustained accuracy are paramount<br />
- Ability to respond to frequent demands of multiple customers (internal and external)<br />
- Experience developing multi-tiered web applications on open source platforms utilizing Ruby/Rails, PHP, REST, XML, SQL, AJAX, REST, SOAP, AOP, SOA, JavaScript, HTML and other related technologies and concepts<br />
- Familiarity with open source frameworks and technologies including XAMPP/LAMP<br />
- Experience with Agile Development (SCRUM / Extreme Programming) practices, such as Test Driven Development, Continuous Integration, Iterative Development, and Pair Programming<br />
- Ontology and Semantic Web technology experience, such as RDF, OWL, SPARQL, and Jena/SDB, is a big plus<br />
Rules / Recommendation / Personalization engine experience is a plus<br />
- Leader or contributor in open-source  software is a big plus</p>
<p><strong>Qualities</strong><br />
- Energetic and communicative<br />
- Highly Analytical, fact-based decision maker<br />
- Ability to inspire and lead<br />
- Champions change and effectively manage the implementation of new ideas<br />
- Supports and solicits input from team members at all levels within the organization<br />
- Communicates effectively.<br />
- Ensures that we consistently deliver superior technical solutions<br />
- Interest in or experience with internet and startup businesses<br />
- Works well in a team environment</p>
<p>ALTERthought is an Equal Opportunity Employer. To be considered for this position, please contact us at at_careers@alterthought.com. Full-time and contract benefits include a combination of paid holidays, sick days, personal days and vacation, premium health and dental insurance and a casual work environment.</p>
<p><strong>About ALTERthought</strong><br />
ALTERthought is a management and technology consultancy that specializes in the engineering of large-scale distributed systems and is guided by a vision to help its clients win. ALTERthought TM marshals its Research, Development, &#038; Management capabilities to combine innovation with precision management for the success of its clients.</p>
<p>Clients include the Global 2000, esteemed online brands, and leading mid-market companies. Since its inception in 1998, the engineering consultancy has collaborated with its clients to envision, architect, and deliver business results through intelligent technology solutions. ALTERthought is headquartered in Richmond, Virginia with offices in the National Capital Region, Research Triangle Park, and the New York Metropolitan Area.</p>
<p>ALTERthought’s software engineering and business consulting offerings include: full lifecycle software development, enterprise architectural re/engineering, mentoring, estimation and budgeting, project management, business strategy, business process engineering, information technology strategy, open source technologies, and digital security. For more information, visit the company’s website at: www.alterthought.com.</p>
<p>Technorati Tags: <a href="http://technorati.com/tag/ruby+on+rails" rel="tag"> ruby on rails</a>, <a href="http://technorati.com/tag/ruby+jobs" rel="tag"> ruby jobs</a>, <a href="http://technorati.com/tag/rails+jobs" rel="tag"> rails jobs</a>, <a href="http://technorati.com/tag/ruby" rel="tag"> ruby</a>, <a href="http://technorati.com/tag/rails+careers" rel="tag"> rails careers</a>, <a href="http://technorati.com/tag/ruby+careers" rel="tag"> ruby careers</a>, <a href="http://technorati.com/tag/RoR+jobs" rel="tag"> RoR jobs </a></p>
   ]]></content:encoded>
			<wfw:commentRss>http://alterlabs.com/general/jobs/alterthought-is-hiring-rubyrails-developers/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Grails Vs. Rails &#8211; the Thrilla in Manila: A Study on Platform Productivity</title>
		<link>http://alterlabs.com/technologies/java/grails-vs-rails-the-thrilla-in-manilla-a-study-on-grails-productivity/</link>
		<comments>http://alterlabs.com/technologies/java/grails-vs-rails-the-thrilla-in-manilla-a-study-on-grails-productivity/#comments</comments>
		<pubDate>Wed, 01 Aug 2007 22:37:12 +0000</pubDate>
		<dc:creator>sunjay</dc:creator>
				<category><![CDATA[Articles]]></category>
		<category><![CDATA[Budgeting]]></category>
		<category><![CDATA[Estimation]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[Groovy/Grails]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Ruby/Rails]]></category>

		<guid isPermaLink="false">http://alterlabs.com/technologies/java/grails-vs-rails-the-thrilla-in-manilla-a-study-on-grails-productivity/</guid>
		<description><![CDATA[&#8220;Down goes Frazier (Ruby on Rails), down goes Frazier &#8230;&#8221; If the numbers we are tracking regarding an ongoing Enterprise Groovy/Grails initiative continue to pan out; as a business person, I will have a clear statement in the Rails/Grails debate: &#8220;I want all Grails, and I want it all the time.&#8221;

Our client is a Fortune [...]]]></description>
			<content:encoded><![CDATA[<p>&#8220;Down goes Frazier (Ruby on Rails), down goes Frazier &#8230;&#8221; If the numbers <a target="_blank" href="http://alterthought.com">we</a> are tracking regarding an ongoing Enterprise Groovy/Grails initiative continue to pan out; as a business person, I will have a clear statement in the Rails/Grails debate: &#8220;I want all Grails, and I want it all the time.&#8221;</p>
<div style="text-align: center"><img width="466" height="283" alt="Grails Bar Chart Week 8" id="image72" src="http://alterlabs.com/wp-content/uploads/2007/08/BarChartWeek8.gif" /></div>
<p>Our client is a Fortune 200 company for who we began an enterprise initiative on May 30, 2007. Thanks to our tool <a href="http://planixonline.com">Planix</a> and our friends and their framework, <a href="http://www.6thsenseanalytics.com/">6th Sense Analytics</a>, we&#8217;ve been capturing projected and actual effort on this project.</p>
<p><span id="more-73"></span></p>
<p>For the work (user stories) completed to date (8 weeks/40%) of the project, <em><strong>the actual productivity of Grails is outperforming our estimate for J2EE, Java/Spring, and, yes, Rails.</strong></em> Qualitatively, it can also be argued that we&#8217;re also performing integration in an Grails/Java environment that may pose challenges for a <a href="http://www.rubyonrails.org/">Rails/Ruby/Integrated environment</a>.</p>
<p>As is the case with most of our clientele, we agree not to publicly disclose the specifics of who they are/the nature of their project. So, we will be a bit limited in the amount of context we can provide. However, this occasional series of posts is largely a quantitative examination, so we look forward to sharing with you the data from our findings as the project progresses.</p>
<p><strong>Why Do this ?</strong></p>
<p>There is a lot of ongoing debate regarding the &#8220;speed of development&#8221; in various technologies; we simply wanted to add some data to that conversation and elevate beyond a developer/team&#8217;s &#8220;gut feel&#8221; about why a particular technology is more productive.</p>
<p><strong>Why Groovy/Grails ?</strong></p>
<p>We began this project on May 30, 2007.  Prior to its start, we proposed and obtained approval to utilize <a href="http://grails.codehaus.org/">Groovy on Grails</a> from the client’s Architecture Team.  Our reason for championing the use of Grails arose from a handful of factors. Chief among these factors, in no particular order, were:</p>
<p>(a) Our company history and charter to continually examine promising emerging technologies for the benefit of our clients<br />
(b) The potential level-of-effort productivity boosts promised by a couple of Grails prototypes we completed<br />
(c) The flexibility of Java-based technologies in tackling what we thought would prove to be a relatively complex systems integration initiative<br />
(d) Java-based/EE technologies are the client’s preferred platforms; their teams and processes are organized around Java. We needed a technology that could help maximize the value of existing application investments while offering RAD capabilities</p>
<p><strong>Why Should I Believe your estimates for the Other Technologies? </strong></p>
<p>This is a fair point, but we&#8217;re pretty confident that the estimates are faithful and accurate to the respective platforms. We estimated the effort using our estimation and planning tool, <a href="http://planixonline.com">Planix</a> (written in Rails). We&#8217;ve used this tool for 5 years in various forms and have lived by its accuracy. The tool does embody a fair bit of our own methdologies; however, if you&#8217;re looking for objectivity, you should know that many of <a href="http://www.ibm.com/developerworks/rational/library/2870.html">its principles</a> are adopted from the giant, Gustav Karner, of the objectory whose work is adapted from <strong>*the*</strong> <a href="http://www.isr.uci.edu/icse-06/program/keynotes/boehm.html">giant in software economics</a>, <a href="http://en.wikipedia.org/wiki/Barry_Boehm">Barry Boehm</a>. A quick Google search will turn up plenty of studies on the proven accuracy of the Karner Use Case Point approach for a project. What we&#8217;ve done throughout our history is to benchmark the productivity of a variety of technologies to give businesses trade-off options when it comes to cost and schedule.</p>
<div style="text-align: center"><img width="405" height="287" id="image74" alt="burn up week 8" src="http://alterlabs.com/wp-content/uploads/2007/08/BurnupWeek8.gif" /></div>
<p><strong>What are the Takeaways ?</strong></p>
<p>Grails is the latest in our effort to <a href="http://alterlabs.com/technologies/java/revenue-on-ruby-on-rails/">benchmark technologies</a> and their respective productivity; to date, Grails is showing itself to be slightly more productive than using Rails &#8211; to the tune of about 5.8%. As <a href="http://graemerocher.blogspot.com/2007/07/5-more-misconceptions-about-grails.html">others have observed</a>, we do believe Grails to be a &#8220;formidable challenger&#8221; to Rails .. and we&#8217;re gathering data to back up our claim. Yes, premature precision will get us in trouble and the sample size is characterized by 1 project that is 40% complete, but &#8230; well, you get the picture.</p>
<p>Stay tuned for more productivity analysis as well as technical analysis on the resulting code base.</p>
<p>Technorati Tags: <a href="http://technorati.com/tag/Rails" rel="tag"> Rails</a>, <a href="http://technorati.com/tag/Ruby" rel="tag"> Ruby</a>, <a href="http://technorati.com/tag/Ruby+on+Rails" rel="tag"> Ruby on Rails</a>, <a href="http://technorati.com/tag/Grails" rel="tag"> Grails</a>, <a href="http://technorati.com/tag/Groovy" rel="tag"> Groovy</a>, <a href="http://technorati.com/tag/Groovy+on+Grails" rel="tag"> Groovy on Grails</a>, <a href="http://technorati.com/tag/Grails+Productivity" rel="tag"> Grails Productivity</a>, <a href="http://technorati.com/tag/Rails+Productivity" rel="tag"> Rails Productivity</a>, <a href="http://technorati.com/tag/Software+economics" rel="tag"> Software economics</a>, <a href="http://technorati.com/tag/Barry+Boehm" rel="tag"> Barry Boehm</a>, <a href="http://technorati.com/tag/Gustav+Karner" rel="tag"> Gustav Karner </a></p>
   ]]></content:encoded>
			<wfw:commentRss>http://alterlabs.com/technologies/java/grails-vs-rails-the-thrilla-in-manilla-a-study-on-grails-productivity/feed/</wfw:commentRss>
		<slash:comments>27</slash:comments>
		</item>
		<item>
		<title>Ruby on Rails the Revolution?</title>
		<link>http://alterlabs.com/general/articles/ruby-on-rails-the-revolution/</link>
		<comments>http://alterlabs.com/general/articles/ruby-on-rails-the-revolution/#comments</comments>
		<pubDate>Thu, 19 Jul 2007 20:04:42 +0000</pubDate>
		<dc:creator>sunjay</dc:creator>
				<category><![CDATA[Articles]]></category>
		<category><![CDATA[Ruby/Rails]]></category>

		<guid isPermaLink="false">http://alterlabs.com/uncategorized/ruby-on-rails-the-revolution/</guid>
		<description><![CDATA[I just jumped into the wayback machine  and was inspired to think about technology adoption using a framework for the stages of political revolution &#8211; first shown to me by my high school History teacher and the school&#8217;s soccer coach, Larry Bosc. So, in addition to the way Geoffrey Moore canonized the technology maturation [...]]]></description>
			<content:encoded><![CDATA[<p>I just jumped into the <a target="_blank" href="http://en.wikipedia.org/wiki/Wayback_Machine">wayback machine</a>  and was inspired to think about technology adoption using a framework for the stages of political revolution &#8211; first shown to me by my high school History teacher and the school&#8217;s soccer coach, Larry Bosc. So, in addition to the way <a target="_blank" href="http://en.wikipedia.org/wiki/Geoffrey_Moore">Geoffrey Moore</a> canonized the technology maturation process in his Crossing the Chasm, I&#8217;ve been wondering if there is something to applying a template of political revolution to the way technologies (open source/standard technologies in particular) are born, ascend, and are ultimately usurped. Coach Bosc exposed us to Crane Brinton who published <a href="http://en.wikipedia.org/wiki/The_Anatomy_of_Revolution">The Anatomy of Revolution</a> in 1938 (reprinted in 1965).</p>
<blockquote><p><em><strong>&#8220;no government </strong>[technology movement]<strong> has ever fallen before attackers </strong>[rival technology]<strong> until it has lost control over its armed forces </strong>[engineers, bloggers, and evangelists]<strong> or lost the ability to use them effectively&#8221; &#8211; </strong>Crane Brinton<strong><br />
</strong></em></p></blockquote>
<p>Its interesting to do a &#8216;find and replace&#8217; on &#8220;regime, government, antiregime, radicals, extremist etc.&#8221; and substitute technology-related terms and movements in the summary I&#8217;ve excerpted below.</p>
<p><span id="more-70"></span><br />
Its interesting to think about this model both from the perspective of the replacement/challenge of an &#8216;old line&#8217; technology (.e.g J2EE, .NET) by an emergent technology (e.g. Rails). Its also interesting to perform the same &#8216;find and replace&#8217; considering a split or schism within a particular technology movement (as has been hinted at in the Rails community and others before it)</p>
<p>I found a summary of Brinton&#8217;s work that allows this &#8216;find and replace&#8217; on the <a target="_blank" href="http://www.davis.k12.ut.us/">Davis School District&#8217;s</a> (Farmington, Utah) servers.</p>
<p>Perhaps its a stretch, but break out your favorite &#8216;find/replace&#8217; tool and give it a shot yourself  &#8230;</p>
<p>*The first stage of actual revolution comes with the growth of antiregime groups and the growth of their power to affect political thinking and behavior.  Some critical problem arises which acts as a trigger for pent up dissatisfaction &#8211; such as whether the three estates should meet together or separately.  The old regime can&#8217;t handle the problem.  They lag in deciding or decide unpopularly.  Rioting breaks out, but troops sent in to crush the rioters desert to the rioters side.  The antiregime people take power relatively easily amidst widespread rejoicing.  Popular expectations raise still further.</p>
<p>*Moderates initially wield power.  They earlier had opposed the old regime but as critics rather than as revolutionaries.  They want major reform rather than total revolution; to &#8220;fix&#8221; the government rather than replace it.  The moderates tend to be motivated by morality, plurality, justice, and high ideals.  Extremists accuse them of being weak and cowardly, and true enough, they are NOT ruthless enough to crush the extremists.  The extremists begin to crush them.</p>
<p>*Extremists take over because they are more ruthless, purposeful, ideologically motivated, and are better organized than the moderates.  In what Brinton likened to a fever during an illness, the extremists whip up revolution to a frenzy, throwing out everything old, forcing people to be &#8220;good&#8221; according to the new revolutionary standards.  and punishing real or imagined enemies in a reign of terror which is intended to sweep away any potential threat to the revolution.  In France, this stage came with Robespierre; in Iran, with Khomeini; and in Cambodia, with Pol Pot.</p>
<p>*A &#8220;Thermidor,&#8221; or calming-down period, ends the reign of terror.  Brinton named Thermidor after the French Revolutionary month &#8211; the revolutionaries even threw out the old calendar &#8211; in which Robespierre fell.  Every revolution has a Thermidor, which Brinton likened to a convalescence after a fever, because human nature can&#8217;t take the extremists and their revolutionary zeal and purity for too long.  Power usually then falls into the hands of some opportunist/dictator, who restores order but NOT liberty, protection but not participation &#8211; in short, a Napoleon.</p>
<p>Just some food for thought &#8230;</p>
<p>Technorati Tags: <a href="http://technorati.com/tag/crossing+the+chasm" rel="tag">crossing the chasm</a>, <a href="http://technorati.com/tag/Ruby+on+Rails" rel="tag"> Ruby on Rails</a>, <a href="http://technorati.com/tag/RoR" rel="tag"> RoR</a>, <a href="http://technorati.com/tag/Anatomy+of+Revolution" rel="tag"> Anatomy of Revolution</a>, <a href="http://technorati.com/tag/Crane+Brinton" rel="tag"> Crane Brinton</a>, <a href="http://technorati.com/tag/Java" rel="tag"> Java</a>, <a href="http://technorati.com/tag/J2EE" rel="tag"> J2EE</a>, <a href="http://technorati.com/tag/.NET" rel="tag"> .NET</a></p>
   ]]></content:encoded>
			<wfw:commentRss>http://alterlabs.com/general/articles/ruby-on-rails-the-revolution/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Go-Railers in the Midst &#8230;</title>
		<link>http://alterlabs.com/general/articles/go-railers-in-the-midst/</link>
		<comments>http://alterlabs.com/general/articles/go-railers-in-the-midst/#comments</comments>
		<pubDate>Fri, 06 Jul 2007 01:37:55 +0000</pubDate>
		<dc:creator>sunjay</dc:creator>
				<category><![CDATA[Articles]]></category>
		<category><![CDATA[Ruby/Rails]]></category>

		<guid isPermaLink="false">http://alterlabs.com/general/articles/go-railers-in-the-midst/</guid>
		<description><![CDATA[Dian Fossey would be proud. The comments and feedback I&#8217;ve received regarding my last post ranged from the contemplative: &#8220;excellent (though painful to read)&#8230;&#8221; to the vitriolic: &#8220;retarted.&#8221; Suffice it to say, I was impressed with the throng of Railers defending their (our) beloved framework (and more importantly &#8220;movement&#8221;) like Sigourney Weaver defending African Mountain [...]]]></description>
			<content:encoded><![CDATA[<p><strong><a href="http://en.wikipedia.org/wiki/Gorillas_in_the_Mist">Dian Fossey</a></strong> would be proud. The comments and feedback I&#8217;ve received regarding my <a href="http://alterlabs.com/general/articles/blasphemy-the-case-against-ruby-on-rails/">last post</a> ranged from the contemplative: &#8220;excellent (though painful to read)&#8230;&#8221; to the vitriolic: &#8220;retarted.&#8221; Suffice it to say, I was impressed with the throng of Railers defending their (our) beloved framework (and more importantly &#8220;movement&#8221;) like Sigourney Weaver defending African Mountain Gorillas from hell-bound Poachers and Rawandan fatcat beauracrats. Apparently, I&#8217;ve offended. I&#8217;ve re-read that post a few times; its an order of magnitude less than a glove-slap as I see it. The funny thing is that post was one piece in a set of three attempting to ojectively analyze The Technology (Capital T &#8211; a compliment) from a business person&#8217;s (apparently an idiot business person&#8217;s) perspective. The others were:</p>
<p><a href="http://alterlabs.com/general/articles/ruby-on-rails-as-a-platform-of-choice-the-case-for-rails/"><strong>Ruby on Rails as a Platform of Choice? The Case for Rails: </strong></a>examines why a business person *should* evangelize Rails as his or her chosen platform<br />
<a href="http://alterlabs.com/technologies/java/revenue-on-ruby-on-rails/"><strong>Revenue on Ruby on Rails:  </strong></a>examines our quantitative observations about productivity using the Rails framework</p>
<p>Two of the most interesting, legitimate, and constructive responses/rebuttals to both my post and the comments it engered that I&#8217;ve seen are the following:<br />
From a noted Groovyist, Graeme Rocher: <strong><a href="http://graemerocher.blogspot.com/2007/07/5-more-misconceptions-about-grails.html">5 More misconceptions about Grails</a></strong><br />
Graeme takes issue with the Rubyists and Railers denegrating Groovy/Grails.</p>
<blockquote><p><em>&#8220;An interesting aspect of the above post however, was the reaction of Ruby/Rails users to the outrageous comment that Grails is a more realistic alternative in the enterprise. Some of the comments including even more classic misconceptions and knee-jerk reactions which I will address in this post.</em><em>.&#8221;</em></p></blockquote>
<p><span id="more-69"></span></p>
<p>From Jon Dahl of Rail Spikes: <a href="http://railspikes.com/2007/7/5/rails-developers-experts-or-script-kiddies"><strong>Rails Develpers: Experts or Script Kiddies</strong></a></p>
<p><a href="http://railspikes.com/2007/7/5/rails-developers-experts-or-script-kiddies"><br />
</a>Jon finds my statement regarding the mixed quality of developers in the Rails community to be interesting. Jon has the intellectual honesty to recognize that in a burgeoning movement such as Rails, its difficult and impossible to separate the technology from the enthusiasts as well as the poseurs. Both groups become ambassadors for the technolgy; and, given the groundswell in recognition for Ruby/Rails, the good, bad, and ugly come along with the territory.</p>
<blockquote><p><em>&#8220;At the same time, there are a more and more mediocre Rails developers watering down the community. This wasn’t true two years ago, but as Rails grows, it attracts more and more newbies. There is nothing wrong with this; Rails is pretty welcoming to newbies, and today’s newbies are tomorrow’s experts.&#8221;</em></p></blockquote>
<p>Jon does take issue with my statement that Rails encourages bad code and asserts the opposite. A position that I find to be accurate under the assumption that the developer is strong and legitimate. If not (see poseurs) business people tend to get apps that are problematic because Rails&#8217; goodies and infrastructure can help cloak weak code as mediocre developers churn out features.</p>
   ]]></content:encoded>
			<wfw:commentRss>http://alterlabs.com/general/articles/go-railers-in-the-midst/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Blasphemy: The Case Against Ruby on Rails</title>
		<link>http://alterlabs.com/general/articles/blasphemy-the-case-against-ruby-on-rails/</link>
		<comments>http://alterlabs.com/general/articles/blasphemy-the-case-against-ruby-on-rails/#comments</comments>
		<pubDate>Tue, 03 Jul 2007 04:09:38 +0000</pubDate>
		<dc:creator>sunjay</dc:creator>
				<category><![CDATA[Articles]]></category>
		<category><![CDATA[Ruby/Rails]]></category>

		<guid isPermaLink="false">http://alterlabs.com/articles/blasphemy-the-case-against-ruby-on-rails/</guid>
		<description><![CDATA[In our last post I fawned over Ruby on Rails (RoR) like a schoolboy smitten by the new girl (let&#8217;s call her Ruby) at school. So, like the schoolboy&#8217;s heart wrenching realization that he mistook Ruby&#8217;s &#8220;hello, world&#8221; smile for a tender &#8220;will &#8211; you &#8211; be &#8211; my &#8211; boyfriend&#8221; countenance, I present a [...]]]></description>
			<content:encoded><![CDATA[<p>In our <a href="http://alterlabs.com/general/articles/ruby-on-rails-as-a-platform-of-choice-the-case-for-rails/"><em><strong>last post</strong></em></a> I <a href="http://alterlabs.com/general/articles/ruby-on-rails-as-a-platform-of-choice-the-case-for-rails/"><em><strong>fawned over Ruby on Rails</strong></em></a> (RoR) like a schoolboy <a href="http://alterlabs.com/general/articles/ruby-on-rails-as-a-platform-of-choice-the-case-for-rails/"><em><strong>smitten by the new girl</strong></em></a><a href="http://alterlabs.com/general/articles/ruby-on-rails-as-a-platform-of-choice-the-case-for-rails/"> </a>(let&#8217;s call her Ruby) at school. So, like the schoolboy&#8217;s heart wrenching realization that he mistook Ruby&#8217;s &#8220;hello, world&#8221; smile for a tender &#8220;will &#8211; you &#8211; be &#8211; my &#8211; boyfriend&#8221; countenance, I present a handful of potential RoR letdowns.</p>
<p><strong>Skills Demand > Skills Supply &#8230;</strong>There appears to be considerably more demand for Rails programming than there are Rails programmers (irrespective of whether they are good programmers or mediocre ones). The theoretical speed of development and speed of enhancement (read: potential cost saving) as well as the trendiness (let&#8217;s face it) of Rails has inspired a legion of business visionaries to increase their demand for Rails programmers in order to get their own facebook-meets-amazon mind bender to market faster than the other guy.</p>
<p><span id="more-59"></span></p>
<p><strong>Yes, [they’re] the great pretenders &#8230;</strong>The unfortunate reality of the RoR movement and market is that there are a number of below average soloists passing themselves off as solid developers due to the level of demand. This has consequently led to both able and mediocre sole practitioners and confederations of practitioners trying to fulfill the demand. We&#8217;ve seen a number of companies and entrepreneurs write, re-write, and re-re-write Rails applications primarily due to sub-standard code quality. Without real-world experience with Rails, companies and entrepreneurs are having an exceedingly difficult time vetting &#8220;single shingle&#8221; coders. Even though they are writing this software in a &#8220;highly desirable&#8221; framework, they’re commanding between $100 &#8211; $175/hour to write throw-away software due to their lack of sophistication and, ultimately, accountability. [Note: you should be <a href="http://alterlabs.com/howtos/roi-for-application-software-is-too-soft/">paying for features and ROI</a> not for hours]</p>
<p><strong>The Visual Basic effect &#8230; </strong>A corollary to the fact that &#8220;pretenders&#8221; are besieging the market is that Ruby on Rails provides so much scaffolding, hand-holding, and out-of-the-box functionality for developers that inexperienced/unsophisticated developers are able to initially delight clients with early releases. Like Visual Basic in the mid/early 1990s, Rails allows non-computer scientists to put together seemingly impressive applications. However, as a project progresses or application matures the truth becomes clear: (1) Rails helps bad coders write unscalable, unmaintainable, unmentionable code faster, ergo (2) Rails helps organizations fail faster.</p>
<p><strong>No Swiss Army Knife &#8230; </strong>Ruby on Rails was developed to do one thing and one thing well: help teams write web applications with user interfaces that perform basic operations on relational databases. Period. If you have complex processing needs such as message queuing, quantitative optimization, etc you&#8217;ll need to either (a) look somewhere else (b) write it into the framework (not likely as the shepherds of the framework are zealots and <a href="http://www.robbyonrails.com/articles/2006/04/13/canada-on-rails-day-1-part-1">opinionated about protecting it</a> from &#8220;unintended uses&#8221;) or (c) find a way to integrate with other technologies which support your business requirements.</p>
<p><strong>No Throat to Choke and a Chasm to Cross &#8230; </strong>If what you want is an alpha, beta, or a version one application that you may re-write down the road, Rails may be right for you, but if you&#8217;ve got shareholders you must answer, teams you must attract, grow, &#038; maintain, or business groups you must support with vendor options and a cadre of capable employees, Rails is an iffy choice. There are no/very few established vendors backing Rails at this point either from an implementation or education standpoint. This makes adoption of the technology and its ability to <a href="http://en.wikipedia.org/wiki/Crossing_the_Chasm">cross the technology chasm</a> questionable. Rails is still early on the <a href="http://en.wikipedia.org/wiki/Diffusion_of_innovations">S-curve.</a> It may make inroads into enterprise application environments the way Linux did through techie revolutionaries. However, for it to truly become a technology that is well understood, well-supported, and, consequently, well entrenched, it will need the backing of a behemoth or two. Perhaps RoR will gain the support of IBM or an equivalent, but the backing of a programming framework &#8212; at least on the surface &#8212; seems a heck of lot more pock-marked with landmines (variability in installations) than supporting and advancing the kernel of an operating system that has been in existence for decades.</p>
<p><strong>The Java Defense &#8230; </strong>Perhaps the biggest reason not to choose Rails is, well, Java. The &#8220;old guard&#8221; Javaists are adapting. They may not be benefiting from the &#8220;hoola hoop&#8221; craze that is all things Ruby. However, they&#8217;re not taking the RoR attack lying down. In fact, in a very Zen-like fashion, they are borrowing from the &#8220;one thing well&#8221; manifesto of RoR to develop equivalents including <a href="http://groovy.codehaus.org/">Groovy</a> on <a href="http://grails.codehaus.org/">Grails</a>, Trails, and the like (We&#8217;ll write about some quantitative benefits of these developments which we&#8217;ve seen first-hand in upcoming posts; suffice it to say, Groovy/Grails is proving itself to be a formidable challenger). In enterprise-friendly terms this means companies will be able to &#8220;maximize and enhance their existing Java technology investments.&#8221; And, with Java you get the Swiss army knife.</p>
<p><strong> EDIT</strong>: For completeness and for the sake of those who did not have the time to navigate our blog, In a previous post, we examined the<a href="http://alterlabs.com/general/articles/ruby-on-rails-as-a-platform-of-choice-the-case-for-rails/"> </a><em><strong><a href="http://alterlabs.com/general/articles/ruby-on-rails-as-a-platform-of-choice-the-case-for-rails/">virtues of Ruby on Rails</a> </strong></em>from a business perspective&#8230;and the potential <em><strong><a href="http://alterlabs.com/technologies/java/revenue-on-ruby-on-rails/">economics of Rails</a></strong></em> in another post &#8230;.<br /><p>Technorati Tags: <a href="http://technorati.com/tag/crossing+the+chasm" rel="tag">crossing the chasm</a>, <a href="http://technorati.com/tag/Ruby+on+Rails" rel="tag"> Ruby on Rails</a>, <a href="http://technorati.com/tag/RoR" rel="tag"> RoR</a>, <a href="http://technorati.com/tag/Rails+productivity" rel="tag"> Rails productivity</a>, <a href="http://technorati.com/tag/technology+adoption" rel="tag"> technology adoption</a>, <a href="http://technorati.com/tag/Groovy" rel="tag"> Groovy</a>, <a href="http://technorati.com/tag/Grails" rel="tag"> Grails</a>, <a href="http://technorati.com/tag/Trails" rel="tag"> Trails</a>, <a href="http://technorati.com/tag/time+to+market" rel="tag"> time to market</a>, <a href="http://technorati.com/tag/" rel="tag"></a></p>
   ]]></content:encoded>
			<wfw:commentRss>http://alterlabs.com/general/articles/blasphemy-the-case-against-ruby-on-rails/feed/</wfw:commentRss>
		<slash:comments>54</slash:comments>
		</item>
		<item>
		<title>Ruby on Rails as a Platform of Choice? The Case for Rails.</title>
		<link>http://alterlabs.com/general/articles/ruby-on-rails-as-a-platform-of-choice-the-case-for-rails/</link>
		<comments>http://alterlabs.com/general/articles/ruby-on-rails-as-a-platform-of-choice-the-case-for-rails/#comments</comments>
		<pubDate>Wed, 27 Jun 2007 20:19:31 +0000</pubDate>
		<dc:creator>sunjay</dc:creator>
				<category><![CDATA[Articles]]></category>
		<category><![CDATA[Budgeting]]></category>
		<category><![CDATA[Project Management]]></category>
		<category><![CDATA[Ruby/Rails]]></category>

		<guid isPermaLink="false">http://alterlabs.com/ruby/ruby-on-rails-as-a-platform-of-choice-the-case-for-rails/</guid>
		<description><![CDATA[I’ll preface this post, by stating there are people infinitely more qualified in our company to discuss the technical merits of Ruby on Rails (RoR) as a framework choice. I write this post from the various perspectives of the “president,” “idea guy,” the sometimes “project manager,” and the “unresponsive stakeholder.”
There is much hullabaloo about RoR [...]]]></description>
			<content:encoded><![CDATA[<p>I’ll preface this post, by stating there are people infinitely more qualified in <a href="http://alterthought.com">our company</a> to discuss the technical merits of Ruby on Rails (RoR) as a framework choice. I write this post from the various perspectives of the “president,” “idea guy,” the sometimes “project manager,” and the “unresponsive stakeholder.”</p>
<p>There is much hullabaloo about RoR being the best thing to hit software development since the compiler (for the techies, the pun was not intended, but I’ll take it). While it may be something less revolutionary than compiler innovation, one thing is for sure RoR is currently &#8212; and promises to continue being &#8212; a <a href="http://en.wikipedia.org/wiki/Disruptive_technology">Disruptive Technology</a>.<br />
<strong><br />
So, Why Rails ?</strong></p>
<p><strong><span id="more-57"></span></strong><br />
From our first hand experience, these are some reasons why Rails should or could be your platform of choice.</p>
<blockquote><p><strong><em>This post is decidedly one-sided, I’ll explore why *not* to choose Rails in my next post.</em></strong></p></blockquote>
<p>There are a number of assumptions behind the reasons I am about to enumerate for choosing RoR. While we&#8217;ll save the play book for setting up a project team for other posts, I will say that a major assumption here is the quality of your team. That established, if you do assume a strong team while using development framework ‘A’ versus development framework ‘B,’ the benefits of Rails are as follows:</p>
<p>$$$$$ -<strong>You get stuff sooner</strong>. Its that simple. As a stakeholder, I’ve seen Rails teams turn features around in ½ the time as it would have taken them to do it using J2EE or .NET (see <em><strong><a href="http://alterlabs.com/technologies/java/revenue-on-ruby-on-rails/">this post</a><a href="http://alterlabs.com/technologies/java/revenue-on-ruby-on-rails/"> </a></strong></em>for a little comparison on development speed)</p>
<p>$$$ -<strong>You get more stuff sooner</strong>.  Not only do you get your agreed upon set of features faster, but also you can expect to get incremental improvements and non-trivial enhancements sooner than using other platforms.</p>
<p>$$$ -<strong>You get to see stuff sooner</strong>.  The underlying technology allows development teams to show business stakeholders features and changes in a much more expedient fashion (literally while looking over the developer’s shoulder). This makes the requirement clarification and refinement process much more real-time and iterative (read: Agile Manifesto-friendly).</p>
<p>$$ -<strong>You get goodies that come along for the ride</strong>.  Rails is chock full of helpful technology that allows you, the business stakeholder, to present web applications that have really rich user interfaces. You’re able to present these rich interfaces to your user community without having to ask your team to undertake science projects (read: expensive) to get the equivalent functionality on other frameworks.</p>
<p>$$$ -<strong>It plays nicely with others</strong>.  REST (pun intended) assured, with Rails as your platform choice, you’re able to integrate with other technologies. Rails is not only open source, but it strives valiantly to facilitate integration with data and other applications. These features of the framework come out-of-the box and are native to the thinking behind the development of Rails.</p>
<p>$$$ -<strong>Its Open.</strong> Like JBoss (J2EE Container) <a href="http://en.wikipedia.org/wiki/Ruby_on_Rails">Rails</a> is an open source project which means you don’t have to pay a nickel to use it. It also runs on things you can get free; like Linux.</p>
<p>$$$ -<strong>There is a fever</strong>.  Similar to the manner in which Java ascended as a choice of web and enterprise development, Rails has zealots. The community that has sprung up around Rails is breathtaking. While this is an unscientific statement, it does seem that we are seeing the type of fervor, support, and evangelism that benefited Linus Torvalds&#8217; Linux; and we all know, how that turned out.</p>
<p>Next up &#8211; The case against Rails &#8230;</p>
<p>Technorati Tags: <a href="http://technorati.com/tag/software+economics" rel="tag">software economics</a>, <a href="http://technorati.com/tag/Ruby+on+Rails" rel="tag"> Ruby on Rails</a>, <a href="http://technorati.com/tag/RoR" rel="tag"> RoR</a>, <a href="http://technorati.com/tag/Rails+productivity" rel="tag"> Rails productivity</a>, <a href="http://technorati.com/tag/software+development+costs" rel="tag"> software development costs</a>, <a href="http://technorati.com/tag/time+to+market" rel="tag"> time to market</a>, <a href="http://technorati.com/tag/" rel="tag"></a></p>
   ]]></content:encoded>
			<wfw:commentRss>http://alterlabs.com/general/articles/ruby-on-rails-as-a-platform-of-choice-the-case-for-rails/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Revenue on Ruby on Rails &#8230;</title>
		<link>http://alterlabs.com/technologies/java/revenue-on-ruby-on-rails/</link>
		<comments>http://alterlabs.com/technologies/java/revenue-on-ruby-on-rails/#comments</comments>
		<pubDate>Thu, 07 Jun 2007 20:35:09 +0000</pubDate>
		<dc:creator>sunjay</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[Articles]]></category>
		<category><![CDATA[Budgeting]]></category>
		<category><![CDATA[Estimation]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[Groovy/Grails]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Ruby/Rails]]></category>

		<guid isPermaLink="false">http://alterlabs.com/technologies/java/revenue-on-ruby-on-rails/</guid>
		<description><![CDATA[Okay, so its not the most poetic title, but that&#8217;s what you get when Captain Alliteration gets your login and password. For the last 18 months we at ALTERthought have been diving into the deep end of the Ruby on Rails (RoR) pool. The technologies are clearly compelling for a number of reasons that are [...]]]></description>
			<content:encoded><![CDATA[<p>Okay, so its not the most poetic title, but that&#8217;s what you get when Captain Alliteration gets your login and password. For the last 18 months we at <a href="http://alterthought.com">ALTERthought</a> have been diving into the deep end of the <a href="http://www.rubyonrails.org/">Ruby on Rails</a> (RoR) pool. The technologies are clearly compelling for a number of reasons that are best left to the engineers and architects to discuss. From my (business) perspective, in our dealings with many of our clients, my message is clear. RoR gets you to market much faster with more adaptability than other paradigms. Hence, the &#8220;revenue&#8221; part of the title &#8212; yes, I agree; its a bit plastic. Nevertheless, it gets the point across. For our purposes this ultimate economic benefit of RoR is encoded via our <a href="http://planixonline.com">software application estimation tool</a>, Planix. We&#8217;re able to model the potentil level of effort from a Rails application and compare that figure to other development paradigms.</p>
<blockquote><p><strong>Obligatory Caveat:</strong> While we&#8217;ve not built the same application in a variety of langugages to assess the potential savings, we have normalized by analyzing applications of similar complexity with comparable team competencies (using <strong><a href="http://planixonline.com">Planix</a></strong> as our steward).</p></blockquote>
<p>To cut to the chase, in general the economics and adaptability of a Rails-based application versus other applications look something like this  &#8211;</p>
<p><strong>A medium complexity application with approximately 20 medium-to-high complexity features (use cases or user stories)</strong>*</p>
<p><img alt="Development Speed Comparisons" id="image68" title="Development Speed Comparisons" src="http://alterlabs.com/wp-content/uploads/2007/07/Development-Speed.gif" /></p>
<p><strong>* We are speaking of applications where a &#8216;pure&#8217; Rails approach is applicable; where other non-Ruby on Rails technologies are not required ro realize the solution.</strong></p>
<p>Pretty impressive, eh? We believe so as well, but &#8212; again &#8212; just because you can develop faster, does not mean you should. In my next post, we&#8217;ll discuss more of the pros and cons of using RoR as your platform of choice.</p>
<p>Technorati Tags: <a href="http://technorati.com/tag/software+economics" rel="tag">software economics</a>, <a href="http://technorati.com/tag/Ruby+on+Rails" rel="tag"> Ruby on Rails</a>, <a href="http://technorati.com/tag/RoR" rel="tag"> RoR</a>, <a href="http://technorati.com/tag/Rails+productivity" rel="tag"> Rails productivity</a>, <a href="http://technorati.com/tag/software+development+costs" rel="tag"> software development costs</a>, <a href="http://technorati.com/tag/time+to+market" rel="tag"> time to market</a>, <a href="http://technorati.com/tag/" rel="tag"></a></p>
   ]]></content:encoded>
			<wfw:commentRss>http://alterlabs.com/technologies/java/revenue-on-ruby-on-rails/feed/</wfw:commentRss>
		<slash:comments>14</slash:comments>
		</item>
		<item>
		<title>Java on Rails? Trails: What it is (and isn&#8217;t)</title>
		<link>http://alterlabs.com/technologies/java/java-on-rails-trails-what-it-is-and-isnt/</link>
		<comments>http://alterlabs.com/technologies/java/java-on-rails-trails-what-it-is-and-isnt/#comments</comments>
		<pubDate>Tue, 25 Jul 2006 16:42:05 +0000</pubDate>
		<dc:creator>don</dc:creator>
				<category><![CDATA[Groovy/Grails]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Ruby/Rails]]></category>
		<category><![CDATA[Technology/Technical Approaches]]></category>

		<guid isPermaLink="false">http://alterlabs.com/java/java-on-rails-trails-what-it-is-and-isnt/</guid>
		<description><![CDATA[Much to-do has been made recently about Rails, and the productivity gains that are to be had from the infrastructure it provides. Listed among these gains comes a productivity boost that can be had from the embracing of a Domain Driven Development approach, whereby the developer concentrates on the Domain model and the framework (in [...]]]></description>
			<content:encoded><![CDATA[<p>Much to-do has been made recently about <a href="http://www.rubyonrails.org/">Rails</a>, and the productivity gains that are to be had from the infrastructure it provides. Listed among these gains comes a productivity boost that can be had from the embracing of a Domain Driven Development approach, whereby the developer concentrates on the Domain model and the framework (in this case Rails) provides some automagic plumbing an duct work on behalf of the programmer.</p>
<p>The <a href="http://trails.dev.java.net/">Trails </a>project is a rough analog to this approach (although the author seems to regret somewhat the &#8216;Trails&#8217; moniker as it people naturally jump to the conclusion that it is a java version of Rails; which it is not.)  This post describes my recent experimentation with the Trails framework, and my subsequent opinions on when/where/etc it might be appropriate.</p>
<p>Let me first start out with a disclaimer of sorts, around RoR. I have very little practical experience to date with Rails, let alone Ruby; and as such, I am not attempting to compare Trails to Rails. Also, this is not a tutorial on Trails&#8230;Several links off the Trails project homepage provide an excellent and easy to follow tutorials which will guide you thru the basics.</p>
<h2>Trails in a Nutshell</h2>
<p>Trails can be neatly summed up with a (slightly modified) quote directly from the <a href="http://trails.dev.java.net/">project home page</a>:</p>
<blockquote><p>The trails project aims to make [web based] java enterprise application development radically simpler by allowing developers to focus on the domain model and having other portions dynamically generated.</p></blockquote>
<p>Basically, you, the developer, provide:</p>
<ul>
<li>A POJO domain model (i.e., Plain Old Java Object representations of the data to be persisted to a database)</li>
<li>Annotations within the Domain Objects that indicate which fields are to be persisted and their relationships with other Domain Objects.</li>
</ul>
<p>The Trails framework in turn automagically provides just about everything else. Including :</p>
<ul>
<li>Project directory structure and build environment (Using Ant)</li>
<li>Simple Web based CRUD (Create-Read-Update-Delete) screens; one-per Domain Object (Using Tapestry)</li>
<li>Object relational mappings to a persistence store and the underlying Data Access Objects (DAOs) (Using Hibernate)</li>
<li>A basic workflow lifecycle and wiring between the View and the Model (Using Spring)</li>
<li>A packaged Web Application (.war) file ready for deployment into a standard Servlet container</li>
</ul>
<p>So lets say you had an application that dealt with an inventory of Automobiles. You would first set up a trails project (using a provided ant task), and then define a basic POJO Domain Object:</p>
<blockquote>
<pre><code>
<font color="red">@Entity</font>
public class Car
{
private Integer id;
private String make;
private String year;
private String model;

<font color="red">@Id @GeneratedValue(strategy=GenerationType.AUTO)</font>
public Integer getId(){ return id; }

public void setId(Integer id) { this.id = id;}
public String getMake(){ return make;}
public void setMake(String make){ this.make = make;}
public String getModel(){ return model;}
public void setModel(String model){this.model = model;}
public String getYear(){ return year;}
public void setYear(String year){this.year = year;}
}
</code></pre>
</blockquote>
<p>The only interesting thing in this class are the handful of annotations that indicate that we want this object to be persisted (@Entity) and we want an unique Object Id auto assigned. Basically we are using the <a title="JPA" href="http://jcp.org/aboutJava/communityprocess/final/jsr220/index.html">JPA </a>to indicate to Trails (and in this case Hibernate) what gets mapped to our database.</p>
<p>That&#8217;s all the code we write.</p>
<p>When compiled into a war and deployed into a servlet container (using the ant build script that Trails provides for you), we get this when we point a browser at http://localhost:8080/blog</p>
<p><img alt="Screenshot:1 " id="image44" src="http://alterlabs.com/wp-content/uploads/2006/07/trails11.gif" /></p>
<p>Clicking around allows us to enter some new car data:</p>
<p><img alt="Screenshot:2" id="image45" src="http://alterlabs.com/wp-content/uploads/2006/07/trails2.gif" /></p>
<p>&#8230; which we can then list out here:</p>
<p><img alt="Screenshot:3" id="image46" src="http://alterlabs.com/wp-content/uploads/2006/07/trails3.gif" /></p>
<p>WOW. Pretty nifty. And not bad for about 5 minutes work. Less even.</p>
<p>OK. This is obviously a very simple/dumb application. Its straightforward and (generally) easy to add additional Domain relationships (OneToMany, ManyToMany,etc), automatic data validation, and UI customization with a bit more work (all of which is detailed in the links available from the Trails project home page)</p>
<h2>The Pros &#038; Practical Applications</h2>
<ul>
<li>You can quite literally have a complete working and very usable application running in minutes.</li>
<li>Its a terrific way of providing the tedious, yet mandatory, backend admin interfaces to your existing application.</li>
<li>There are lots of cool built in graphical widgets that come along for the ride, like calendars, list selectors, etc. that are generated as a result of your Domain Objects underlying data types and relationships.</li>
</ul>
<h2>The Cons</h2>
<ul>
<li>Trails makes numerous fundamental assumptions for you&#8211; this is both its core strength and weakness. If these assumptions don&#8217;t fit within your applications overall paradigm you are going to have to do a fair amount of research/work to retool.</li>
<li>Establishing relationships between Domain Objects requires JPA knowledge; and as soon as you start getting into anything remote complicated you will likely get stuck for a bit. This is not a Trails flaw per se, but its a bit of a wall nonetheless.</li>
<li>Trails uses Tapestry for its view. I don&#8217;t really know squat about Tapestry, so from my standpoint that&#8217;s a con.</li>
<li>Its not clear (to me anyway) how to provide &#8216;controller&#8217; type logic or how one would integrate the Trails constructs cleanly with existing structures. Once again, this may be due to my general ignorance of Tapestry.</li>
<li>Don&#8217;t be fooled into thinking that the resulting app is close to lightweight. It requires a servlet engine, and the generated war itself is over 20mb(!)</li>
</ul>
<h2>The Conclusion</h2>
<p>Trails is cool. <em>Very cool</em>. And for certain types of applications it gets 2 thumbs up. Don&#8217;t let the listed cons keep you from exploring its value to you.  That being said, it seems most valuable for quickly generating Administrative interfaces to existing applications, where the look and feel can be CRUDe (crude, get it?). Working the basic CRUD paradigm into an application with significant business logic seems daunting; and probably more work then solving the problem in a more &#8216;conventional&#8217; J2EE approach.</p>
<p>Technorati Tags: <a href="http://technorati.com/tag/trails" rel="tag">trails</a>, <a href="http://technorati.com/tag/domain+driven+development" rel="tag"> domain driven development</a>, <a href="http://technorati.com/tag/java" rel="tag"> java</a>, <a href="http://technorati.com/tag/RoR" rel="tag"> RoR</a></p>
   ]]></content:encoded>
			<wfw:commentRss>http://alterlabs.com/technologies/java/java-on-rails-trails-what-it-is-and-isnt/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>ALTERthought Sponsors RailsDay 2006</title>
		<link>http://alterlabs.com/general/misc/alterthought-sponsors-railsday-2006/</link>
		<comments>http://alterlabs.com/general/misc/alterthought-sponsors-railsday-2006/#comments</comments>
		<pubDate>Wed, 14 Jun 2006 19:23:47 +0000</pubDate>
		<dc:creator>don</dc:creator>
				<category><![CDATA[Misc]]></category>
		<category><![CDATA[Ruby/Rails]]></category>

		<guid isPermaLink="false">http://alterlabs.com/ruby/alterthought-sponsors-railsday-2006/</guid>
		<description><![CDATA[If there&#8217;s one thing that we here at ALTERthought are passionate about &#8211; it&#8217;s Mackerel.   Yeah, the fish.  If there&#8217;s one other thing, though, it would be sponsoring geek&#8217;d-out Rails events.
To that end, ALTERthought has selflessly suspended its efforts to build the world&#8217;s largest free-standing Mackerel shrine built completely out of Mac-Minis [...]]]></description>
			<content:encoded><![CDATA[<p>If there&#8217;s one thing that we here at ALTERthought are passionate about &#8211; it&#8217;s <a href="http://www.google.com/url?sa=U&#038;start=1&#038;q=http://en.wikipedia.org/wiki/Mackerel">Mackerel</a>.   Yeah, the fish.  If there&#8217;s one other thing, though, it would be sponsoring geek&#8217;d-out <a href="http://rubyonrails.com">Rails</a> events.</p>
<p>To that end, <a href="http://alterthought.com">ALTERthought</a> has selflessly suspended its efforts to build the world&#8217;s largest free-standing Mackerel shrine built completely out of Mac-Minis and has donated one <a href="http://store.apple.com/1-800-MY-APPLE/WebObjects/AppleStore.woa/6104001/wo/Bn6Ff2NHYuxx2rQIM3vbaClxz0z/2.?p=0">fresh from the factory</a> as a <a href="http://railsday2006.com">RailsDay 2006</a> prize.  <em>(no, really &#8211; check out the logo bar on the RailsDay page &#8211; &#8217;bout halfway down &#8230; no, not there &#8230; yeah there! &#8230; oh yeah, that&#8217;s our logo right there)<br />
</em><br />
If ever there was a reason to blow a Friday and Saturday night coding &#8211; I&#8217;d say a free Mac-mini qualifies?  Hurry up and <a href="http://contest.railsday2006.com/">sign up</a> before it&#8217;s too late.</p>
<p>Do it for the mackerel.</p>
<p><em><a href="http://www.railsday2006.com/articles/2006/06/14/alterthought-donates-an-intel-core-solo-mac-mini">RailsDay announcement</a></em><br />
<em><a href="http://alterthought.com/news-railsday.shtml">Our announcement</a></em></p>
<p>Technorati Tags: <a href="http://technorati.com/tag/railsday" rel="tag">railsday</a>, <a href="http://technorati.com/tag/railsday2006" rel="tag"> railsday2006</a>, <a href="http://technorati.com/tag/rails" rel="tag"> rails</a>, <a href="http://technorati.com/tag/rubyonrails" rel="tag"> rubyonrails</a>, <a href="http://technorati.com/tag/alterthought" rel="tag"> alterthought</a></p>
   ]]></content:encoded>
			<wfw:commentRss>http://alterlabs.com/general/misc/alterthought-sponsors-railsday-2006/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
