Sunday, November 25, 2007

First Impressions of Spring

Over the long Thanksgiving break I decided to learn the Spring framework for a fun project I have been working on. My decision to use Spring was based mainly on a friend who said it was what I needed for my project.

Overall I like Spring. It is the glue of an application and makes the kinds of things (aka classes) configurable. One of the nice things Spring provides is an automatic answer to the question "where do I put that?" - a question that is supposed to be answered in the design phase of development. Spring also uses well known design patterns that make it easier to learn provided you know the patterns.

It was also nice to have many of the essential Java technologies all in one place. My application needs a web UI, a task scheduler, and a mailer all to run inside of a servlet container. The Spring framework already includes everything I need with Hibernate and Quartz.

One think I don't like about Spring is that it makes your application more prone to runtime errors. It is easy enough to pass a program through the compiler only to have it break during runtime because a bean uses a class in a jar that has not in the classpath. This isn't something I was used to in a strongly typed language such as Java. It would be nice if there was a tool that could run through my application and check bean/class dependencies. All things considered, for me this isn't a huge drawback - it is simply the price price that must be paid for all of Spring's flexibility. Hopefully it will motivate me to write better unit tests.

Another thing that was difficult for me was the number of dependent jars included with Spring. There were some inter-library dependencies that were time consuming to resolve. I would like to see all shared code compiled into one of the spring core jars and have every other module be self contained.

Wednesday, November 7, 2007

Ayn Rand and Atheism

How can Objectivism accept atheism - the nonexistence of god(s), when atheism presupposes that all knowledge is known?

Objectivism accepts that knowledge is gained by applying reason and logic to sensory data. What sensory data supports the nonexistence of god(s)? I assert that denying the existence of a deity is illogical because it is dependent on the false premise that all knowledge is known. By what process of non-contradictory identification does one take to deny for certain the existence of a deity?

Atheism itself is a contradiction. To believe fully in the nonexistence of something without knowing all knowledge is to take it on faith. If by definition agnosticism rejects the unknown (not the unknowable), I assert Rand would have been better suited to take an agnostic stance with respect to the existence of God.