<?xml version="1.0" encoding="UTF-8"?>
<feed xml:lang="en-US" xmlns="http://www.w3.org/2005/Atom">
  <title>PaulBarry.com - Back from the Beyond</title>
  <subtitle type="html">My thoughts, ideas, questions and concerns on technology, sports, music and life</subtitle>
  <id>tag:paulbarry.com,2007:Paulbarry.com</id>
  <generator uri="http://www.paulbarry.com" version="3.0">PaulBarry.com</generator>
  <link href="http://paulbarry.com/xml/atom/article/280/feed.xml" rel="self" type="application/atom+xml"/>
  <link href="http://paulbarry.com/articles/2006/10/20/back-from-the-beyond" rel="alternate" type="text/html"/>

  <updated>2008-11-06T17:57:11-05:00</updated>
  <entry>
    <author>
      <name>Paul Barry</name>
      <email>mail@paulbarry.com</email>
    </author>
    <id>urn:uuid:00d8496e-a134-417b-b54d-f4fe1f15d98e</id>

    <published>2006-10-20T20:22:10-04:00</published>
    <updated>2006-10-20T20:22:10-04:00</updated>
    <title type="html">Back from the Beyond</title>
    <link href="http://paulbarry.com/articles/2006/10/20/back-from-the-beyond" rel="alternate" type="text/html"/>

    <category term="technology" scheme="http://paulbarry.com/articles/category/technology" label="Technology"/>
        <category term="Rails" scheme="http://paulbarry.com/articles/tag/rails"/>
    <category term="Python" scheme="http://paulbarry.com/articles/tag/python"/>
    <category term="Django" scheme="http://paulbarry.com/articles/tag/django"/>
    <category term="Ruby" scheme="http://paulbarry.com/articles/tag/ruby"/>
    <category term="Java" scheme="http://paulbarry.com/articles/tag/java"/>
    <category term="Stripes" scheme="http://paulbarry.com/articles/tag/stripes"/>
        <summary type="html">&lt;p&gt;So &lt;a href=&quot;http://paulbarry.com/articles/2006/09/20/python-is-weird&quot;&gt;as I said I would&lt;/a&gt;, I&apos;ve taken a look at Python and Django.  In my brief look at it, I&apos;ve learned a few things.  One is that Python isn&apos;t that weird, it&apos;s just different.  Handling blocks based on indentation is cool.  Django is cool in a lot of ways.  The thing I was most impressed with is the admin interface.  The thing I was least impressed with is that the admin interface isn&apos;t very customizable.  You get you what you get, which is a lot, but you don&apos;t have much control over it.&lt;/p&gt;

&lt;p&gt;But this blog post isn&apos;t really about Python or Django specifically, it&apos;s about languages and web frameworks.  Here&apos;s what I&apos;ve decided.  Choosing a web framework and programming language is like choosing a guitar.  There are die hard fans of different types.  There are obscure niche types.  There are widely used types.  There are even variations among the different types.  But the bottom line is that if you are a shitty guitar player, it&apos;s going to sound like shit, not matter which one you pick.  And if you are a great guitar player, anything is going to sound pretty good.  Choosing between them is really a matter a preference.  The part where this analogy falls apart is that once you learn to play guitar, you can pick up any guitar and play, but just because you are a Ruby on Rails expert doesn&apos;t mean you can build a web site with Java, and vice versa.  So it&apos;s not perfect, but you get the idea.&lt;/p&gt;

&lt;p&gt;I think up until recently, you couldn&apos;t argue with a straight face that building a Java application is not more complicated than building a Ruby on Rails app.  Anyone who has tried to maintain a web app built with Struts 1.x, Spring, Hibernate 2.0, JSP 1.0 and an overly complex set of ant build scripts can attest to that.  But I&apos;m a believer in the latest innovations in Java.  Annotations and Generics are making life easier.  Stripes and Hibernate 3.2 with Annotations are much better than Struts (or webwork or Spring MVC for that matter) and Hibernate 2.0 respectively.  JSP 1.2 is better than JSP 1.0, Maven is better than Ant, the list goes on.&lt;/p&gt;

&lt;p&gt;My theory is that we are at a point with Java where we can build applications with the same level of productivity as any other framework.  I think we&apos;re beyond &lt;a href=&quot;http://www.amazon.com/Beyond-Java-Bruce-Tate/dp/0596100949/sr=8-1/qid=1161389986/ref=pd_bbs_sr_1/104-4976912-5904717?ie=UTF8&quot;&gt;Beyond Java&lt;/a&gt;.  &lt;/p&gt;

&lt;p&gt;So what I&apos;m planning on doing in attempt to prove Bruce Tate wrong is to build a new version of my own blog in Java.  I&apos;m hoping this little side project will give me a chance to provide the world with an example of how Java applications can be built without endless XML sit-ups.  I also feel the need to blog about it because it will motivate me into actually doing it.  I have had lots of big ideas in the past and I rarely follow through with any of them, but this is one that I intend to.  And so it begins.&lt;/p&gt;
</summary>
    <content type="html">&lt;p&gt;So &lt;a href=&quot;http://paulbarry.com/articles/2006/09/20/python-is-weird&quot;&gt;as I said I would&lt;/a&gt;, I&apos;ve taken a look at Python and Django.  In my brief look at it, I&apos;ve learned a few things.  One is that Python isn&apos;t that weird, it&apos;s just different.  Handling blocks based on indentation is cool.  Django is cool in a lot of ways.  The thing I was most impressed with is the admin interface.  The thing I was least impressed with is that the admin interface isn&apos;t very customizable.  You get you what you get, which is a lot, but you don&apos;t have much control over it.&lt;/p&gt;

&lt;p&gt;But this blog post isn&apos;t really about Python or Django specifically, it&apos;s about languages and web frameworks.  Here&apos;s what I&apos;ve decided.  Choosing a web framework and programming language is like choosing a guitar.  There are die hard fans of different types.  There are obscure niche types.  There are widely used types.  There are even variations among the different types.  But the bottom line is that if you are a shitty guitar player, it&apos;s going to sound like shit, not matter which one you pick.  And if you are a great guitar player, anything is going to sound pretty good.  Choosing between them is really a matter a preference.  The part where this analogy falls apart is that once you learn to play guitar, you can pick up any guitar and play, but just because you are a Ruby on Rails expert doesn&apos;t mean you can build a web site with Java, and vice versa.  So it&apos;s not perfect, but you get the idea.&lt;/p&gt;

&lt;p&gt;I think up until recently, you couldn&apos;t argue with a straight face that building a Java application is not more complicated than building a Ruby on Rails app.  Anyone who has tried to maintain a web app built with Struts 1.x, Spring, Hibernate 2.0, JSP 1.0 and an overly complex set of ant build scripts can attest to that.  But I&apos;m a believer in the latest innovations in Java.  Annotations and Generics are making life easier.  Stripes and Hibernate 3.2 with Annotations are much better than Struts (or webwork or Spring MVC for that matter) and Hibernate 2.0 respectively.  JSP 1.2 is better than JSP 1.0, Maven is better than Ant, the list goes on.&lt;/p&gt;

&lt;p&gt;My theory is that we are at a point with Java where we can build applications with the same level of productivity as any other framework.  I think we&apos;re beyond &lt;a href=&quot;http://www.amazon.com/Beyond-Java-Bruce-Tate/dp/0596100949/sr=8-1/qid=1161389986/ref=pd_bbs_sr_1/104-4976912-5904717?ie=UTF8&quot;&gt;Beyond Java&lt;/a&gt;.  &lt;/p&gt;

&lt;p&gt;So what I&apos;m planning on doing in attempt to prove Bruce Tate wrong is to build a new version of my own blog in Java.  I&apos;m hoping this little side project will give me a chance to provide the world with an example of how Java applications can be built without endless XML sit-ups.  I also feel the need to blog about it because it will motivate me into actually doing it.  I have had lots of big ideas in the past and I rarely follow through with any of them, but this is one that I intend to.  And so it begins.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <author>
      <name>Adrian Holovaty</name>
    </author>
    <id>urn:uuid:1af96b00-fc43-4c31-b797-9c525114900a</id>
    <published>2006-10-21T12:43:22-04:00</published>
    <updated>2006-10-21T12:43:22-04:00</updated>
    <title type="html">Comment on "Back from the Beyond" by Adrian Holovaty</title>
    <link href="http://paulbarry.com/articles/2006/10/20/back-from-the-beyond#comment-339" rel="alternate" type="text/html"/>
    <content type="html">As a guitar player myself, I love your guitar/framework analogy. It&apos;s spot on.&lt;br/&gt;&lt;br/&gt;Just FYI, did you know Django is named after a guitar player, the fantastic Django Reinhardt?&lt;br/&gt;&lt;br/&gt;--Adrian (Django dev)</content>
  </entry>
  <entry>
    <author>
      <name>Paul Barry</name>
    </author>
    <id>urn:uuid:cadb5582-7037-4712-98bb-e9a1fd41e816</id>
    <published>2006-10-22T10:32:34-04:00</published>
    <updated>2006-10-22T10:32:34-04:00</updated>
    <title type="html">Comment on "Back from the Beyond" by Paul Barry</title>
    <link href="http://paulbarry.com/articles/2006/10/20/back-from-the-beyond#comment-382" rel="alternate" type="text/html"/>
    <content type="html">I did read that Django was named after Django Reinhardt.  I&apos;ve never heard his music, I&apos;ll have to check it out.  Thanks for the comment, Django is a great framework, keep up the good work.</content>
  </entry>
  <entry>
    <author>
      <name>Brandon Corfman</name>
    </author>
    <id>urn:uuid:339d4291-0c30-415d-a8c5-1e71fb48306f</id>
    <published>2006-10-23T17:51:36-04:00</published>
    <updated>2006-10-23T17:51:36-04:00</updated>
    <title type="html">Comment on "Back from the Beyond" by Brandon Corfman</title>
    <link href="http://paulbarry.com/articles/2006/10/20/back-from-the-beyond#comment-413" rel="alternate" type="text/html"/>
    <content type="html">What framework is your current blog written in?</content>
  </entry>
  <entry>
    <author>
      <name>Paul</name>
    </author>
    <id>urn:uuid:65773182-d2bd-4812-97f2-bb86f13057f2</id>
    <published>2006-10-23T18:12:28-04:00</published>
    <updated>2006-10-23T18:12:28-04:00</updated>
    <title type="html">Comment on "Back from the Beyond" by Paul</title>
    <link href="http://paulbarry.com/articles/2006/10/20/back-from-the-beyond#comment-414" rel="alternate" type="text/html"/>
    <content type="html">It is typo, which is a blog written in Ruby on Rails.</content>
  </entry>
  <entry>
    <author>
      <name>Brandon Corfman</name>
    </author>
    <id>urn:uuid:637ce8eb-7a39-4efc-8661-3a37d6400196</id>
    <published>2006-10-24T08:55:43-04:00</published>
    <updated>2006-10-24T08:55:43-04:00</updated>
    <title type="html">Comment on "Back from the Beyond" by Brandon Corfman</title>
    <link href="http://paulbarry.com/articles/2006/10/20/back-from-the-beyond#comment-444" rel="alternate" type="text/html"/>
    <content type="html">Wow, you&apos;re going from a dynamic language to a static language? This should be interesting.</content>
  </entry>
  <entry>
    <author>
      <name>Paul</name>
    </author>
    <id>urn:uuid:7a799fb7-f8ed-4733-b879-f632bdcb5628</id>
    <published>2006-10-24T13:12:05-04:00</published>
    <updated>2006-10-24T13:12:05-04:00</updated>
    <title type="html">Comment on "Back from the Beyond" by Paul</title>
    <link href="http://paulbarry.com/articles/2006/10/20/back-from-the-beyond#comment-445" rel="alternate" type="text/html"/>
    <content type="html">Well, first of all, I didn&apos;t write any code for this blog, it is just an out of the box typo install with a custom theme.  So I&apos;m not going from a dynamic language to a static one, I&apos;m really going from a product to a custom app, at least with this blog.</content>
  </entry>
  <entry>
    <author>
      <name>Brandon Corfman</name>
    </author>
    <id>urn:uuid:764b466c-3949-4d02-8dc7-4868792f896b</id>
    <published>2006-11-02T13:37:34-05:00</published>
    <updated>2006-11-02T13:37:34-05:00</updated>
    <title type="html">Comment on "Back from the Beyond" by Brandon Corfman</title>
    <link href="http://paulbarry.com/articles/2006/10/20/back-from-the-beyond#comment-1468" rel="alternate" type="text/html"/>
    <content type="html">I&apos;m no web guy, but Django&apos;s method of OR mapping seems sub-optimal and not very pythonic to me. I would imagine that is one reason why SQLAlchemy is being integrated into Django ... it separates the table definitions/types from the Python classes used to</content>
  </entry>
  <entry>
    <author>
      <name>mar feo</name>
    </author>
    <id>urn:uuid:b76b619d-52d2-4d8d-bcf1-15b3133fecc9</id>
    <published>2006-11-20T03:30:29-05:00</published>
    <updated>2006-11-20T03:30:29-05:00</updated>
    <title type="html">Comment on "Back from the Beyond" by mar feo</title>
    <link href="http://paulbarry.com/articles/2006/10/20/back-from-the-beyond#comment-3313" rel="alternate" type="text/html"/>
    <content type="html">Clearnova&apos;s Thinkcap is a rad J2EE!</content>
  </entry>
  </feed>