<?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>Schauderhaft &#187; future</title>
	<atom:link href="http://blog.schauderhaft.de/tag/future/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.schauderhaft.de</link>
	<description>Softwaredevelopment, Projectmanagement, Qualitymanagement and all things &#34;schauderhaft&#34;</description>
	<lastBuildDate>Sun, 05 Feb 2012 20:46:36 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>My Exit Strategy</title>
		<link>http://blog.schauderhaft.de/2010/11/21/my-exit-strategy/</link>
		<comments>http://blog.schauderhaft.de/2010/11/21/my-exit-strategy/#comments</comments>
		<pubDate>Sun, 21 Nov 2010 11:34:28 +0000</pubDate>
		<dc:creator>Jens Schauder</dc:creator>
				<category><![CDATA[Softwaredevelopment]]></category>
		<category><![CDATA[future]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[scala]]></category>

		<guid isPermaLink="false">http://blog.schauderhaft.de/?p=645</guid>
		<description><![CDATA[The last months have been extremely busy. Three different projects causing lots of work and sometimes worries, three different conferences I attended as a speaker and various talks at the local JUG. This made it hard to actually think about what I want to do next year. Now all the busy stuff is over (although [...]]]></description>
			<content:encoded><![CDATA[<p>The last months have been extremely busy. Three different projects causing lots of work and sometimes worries, three different conferences I attended as a speaker and various talks at the local JUG. This made it hard to actually think about what I want to do next year. Now all the busy stuff is over (although somebody mentioned some kind of holiday coming up). So I made up my mind, what I want to do in the next year:</p>
<ul>
<li>I want to as much Scala development as possible. I really like that language and it offers tons of inspirations while still allowing me to build on my Java experience.</li>
<li>I want to learn a little Clojure. Just because I like making knots in my brain.</li>
<li>I will do some web development. My skills in that area are a little rusty and I don&#8217;t need much of them in my current main project, but I sure don&#8217;t want to do Swing development for ever.</li>
<li>And of course I will continue to read as much as possible about a wide range of topics.</li>
</ul>
<p>I&#8217;m doing this because I actually think it is time to say good bye to Java. The development of Java stagnated in the past and I don&#8217;t see any sign that its new owner is going to change that. So I need an alternative. For me that&#8217;s Scala.</p>
<p>On the other hand I&#8217;m kind of confident, that the JVM will survive for quite some time in a state that makes it a strong, interesting platform.</p>
<p>Of course I&#8217;m no prophet. Maybe Google buys Java and within two years it is the coolest language on the planet &#8230; if so, some Scala experience won&#8217;t hurt, because a cool Java will certainly contain lots of features from Scala.</p>
<p>Maybe Scala dies or something bad happens to the JVM. In that case  the broad range of programming concepts will make it easy to switch to any language of interest. So I&#8217;m feeling confident that my future as a software developer stays safe and interesting.</p>
<p>If I&#8217;d stayed with Java as my main language I still would feel safe &#8230; but I&#8217;d be not so sure about the &#8216;interesting&#8217; part.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.schauderhaft.de/2010/11/21/my-exit-strategy/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Hibernate has Problems, but where is the Alternative?</title>
		<link>http://blog.schauderhaft.de/2009/10/18/hibernate-problems-alternative/</link>
		<comments>http://blog.schauderhaft.de/2009/10/18/hibernate-problems-alternative/#comments</comments>
		<pubDate>Sun, 18 Oct 2009 17:30:55 +0000</pubDate>
		<dc:creator>Jens Schauder</dc:creator>
				<category><![CDATA[Softwaredevelopment]]></category>
		<category><![CDATA[future]]></category>
		<category><![CDATA[hibernate]]></category>
		<category><![CDATA[orm]]></category>

		<guid isPermaLink="false">http://blog.schauderhaft.de/?p=294</guid>
		<description><![CDATA[In a late blog post Stephan Schmidt vents his problems with hibernate and declares &#8220;ORMs are a thing of the past&#8221; I agree to some extend: - The SQL generated by Hibernate by default is horrible. Huge joins, with hundreds of columns, many unneeded. - Annotations feel like dirt in your code, and maintaining XML [...]]]></description>
			<content:encoded><![CDATA[<div id="attachment_296" class="wp-caption alignleft" style="width: 310px"><img class="size-medium wp-image-296" title="875413_47541979" src="http://blog.schauderhaft.de/wp-content/uploads/2009/10/875413_47541979-300x203.jpg" alt="875413_47541979" width="300" height="203" /><p class="wp-caption-text">Scale</p></div>
<p>In a late blog post Stephan Schmidt vents his problems with hibernate and declares &#8220;<a href="http://codemonkeyism.com/orms/">ORMs are a thing of the past</a>&#8221;</p>
<p>I agree to some extend:<br />
- The SQL generated by Hibernate by default is horrible. Huge joins, with hundreds of columns, many unneeded.<br />
- Annotations feel like dirt in your code, and maintaining XML mappings is just painful.<br />
- LazyInitializationExceptions are a pain in the <span style="text-decoration: line-through;">a..</span> neck.</p>
<p>But does that justify the conclusion, that ORMs will go away in the near future? I don&#8217;t think so. Of course my <a href="http://blog.schauderhaft.de/2009/09/20/your-perspective-is-biased/">perspective is biased</a>, but in the applications I build I deal typically with 200-500 tables. Just typing the basic CRUD Statement, and wrapping them into usable objects is a pain, and a lot of work, which I gladly will hand over to an ORM.</p>
<p>Tracking changes in objects is another task, I gladly handover to an ORM.</p>
<p>Even writing annotations, while being far from perfect is better then most alternatives I know.</p>
<p>Implementing my own caching logic? No thanx. The ORM can do that pretty well.</p>
<p>I think the crucial point lies in Stephans last paragraph, where he sketches some ideas for alternatives. ORMs aren&#8217;t bad in themselves. They are just difficult to get right. Hibernate did a great job. It is the first one to get wide spread usage. And most points mentioned above are a weakness in Hibernate (or JPA) or possibly Java. So my claim is: ORMs aren&#8217;t dead, they aren&#8217;t even grown up.</p>
<p>So what properties might a grown up ORM have?</p>
<ul>
<li>Usage of persistence independent annotations: The problem with annotations is: they don&#8217;t belong in the business domain, where your classes live. They are part of the persistence layer, and should stay there. But when you look at the JPA annotations you&#8217;ll find a lot that is pretty usefull in GUI context as well. For example the length of a field isn&#8217;t only important for the database but for the GUI as well. Same for validations. So I&#8217;d think, in a couple years from now we&#8217;ll have annotations (or other language features), that let us specify features of properties and references, which truely live in the domain world. And the ORMs will just utilize that information for 90% of their needs</li>
<li>When the references will have more information attached to them. E.g. if it is just a association, or an aggregation, or if the M in an 1:M relation is &#8216;big&#8217;. And ORMs will use that to optimize there SQL.</li>
<li>The management of Sessions will move toward a declarative style, just as transactions did in the last decade.</li>
<li> RDBMS vendors will finally realize the power of ORMs, and will provide more efficient protocols for the ORMs to communicate with.</li>
<li> ORMs will monitor how they are used for a certain application, and will use that information to improve the SQL used.</li>
</ul>
<p>But as so often, the most important change will be a people change: People will finally let databases drop into the background where they belong, and manage the schema through the ORM. I always wonder &#8220;Why?&#8221; when I hear people describe how the build a database first, and then map classes to the tables. That is the wrong way around: Build a strong domain model first. Let the ORM create a database schema for you from that. And then get someone with strong database knowledge involved to tweak it where necessary. This is when you start seriously gaining something for your struggle with the ORM. Most importantly: you get strong support for database refactorings.</p>
<p>If you want to read more about the whole ORM discussion, you might be interested in this article by <a href="http://debasishg.blogspot.com/2009/10/are-orms-really-thing-of-past.html">Debasish Ghosh</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.schauderhaft.de/2009/10/18/hibernate-problems-alternative/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
	</channel>
</rss>

