<?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>wicket praxis &#187; scala</title>
	<atom:link href="http://www.wicket-praxis.de/blog/category/scala/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.wicket-praxis.de/blog</link>
	<description>erfahrungen mit wicket aus dem projektalltag</description>
	<lastBuildDate>Thu, 15 Jul 2010 07:13:46 +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>Scala vs Java</title>
		<link>http://www.wicket-praxis.de/blog/2009/08/26/scala-vs-java/</link>
		<comments>http://www.wicket-praxis.de/blog/2009/08/26/scala-vs-java/#comments</comments>
		<pubDate>Wed, 26 Aug 2009 07:52:10 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[Technologie]]></category>
		<category><![CDATA[scala]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[framework]]></category>
		<category><![CDATA[java]]></category>

		<guid isPermaLink="false">http://www.wicket-praxis.de/blog/?p=100</guid>
		<description><![CDATA[Ich habe mir gestern ein Scala-Codebeispiel angesehen, dass Scala-Objekte von und nach JSON konvertieren kann. Ich muss zugeben, dass es ein wenig gedauert hat, bis ich den Code verstanden habe. Das liegt unter anderem daran, dass ich in Scala einfach noch nicht gut genug bin. Der andere wichtigere Punkt ist aber folgender:
Wenn man bisher mit [...]]]></description>
			<content:encoded><![CDATA[<p>Ich habe mir gestern ein Scala-Codebeispiel angesehen, dass Scala-Objekte von und nach JSON konvertieren kann. Ich muss zugeben, dass es ein wenig gedauert hat, bis ich den Code verstanden habe. Das liegt unter anderem daran, dass ich in Scala einfach noch nicht gut genug bin. Der andere wichtigere Punkt ist aber folgender:</p>
<blockquote><p>Wenn man bisher mit einer Reihe von Java-Klassen ein Framework für eine bestimmte Aufgabe entwickelt hat, kann man die selbe Anforderung mit einigen wenigen Scala-Klassen abbilden.</p></blockquote>
<p>Das bedeutet, dass sich die Funktionalität mit sehr viel weniger Code darstellen lässt. Das spiegelt die Befürchtung wieder, dass man mit Scala Code schreiben kann, der schwer zu vestehen ist. Doch dieser erste Anschein trügt. Der Code ist nur um vielfaches dichter und deshalb natürlich schwerer zu verstehen als ähnlich umfangreicher Java-Code. Der funktionsäquivalente Java-Code wäre aber entsprechend umfangreicher und kann im Zweifel schon deshalb nicht ansatzweise so gut überblickt werden. Ich kann es daher nicht nachvollziehen, dass dieser Punkt gegen Scala sprechen soll.</p>
<p>Ich glaube, dass die Entwicklung bei Scala insofern noch am Anfang steht, als dass das Ausloten der Sprachemöglichkeiten und die kreativen Auslegungen der Plattform noch in den Kinderschuhen steckt, gerade wenn man betrachtet, wo wir uns da im Java-Umfeld befinden. Doch diese Kinderschuhe sind bereits jetzt viel größer und der kleine Bub schaut entspannt über die Köpfe seiner Eltern hinweg.</p>

<div class="sociable">
<div class="sociable_tagline">
<strong>Share and Enjoy:</strong>
</div>
<ul>
	<li class="sociablefirst"><a rel="nofollow"  target="_blank" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fwww.wicket-praxis.de%2Fblog%2F2009%2F08%2F26%2Fscala-vs-java%2F&amp;title=Scala%20vs%20Java&amp;bodytext=Ich%20habe%20mir%20gestern%20ein%20Scala-Codebeispiel%20angesehen%2C%20dass%20Scala-Objekte%20von%20und%20nach%20JSON%20konvertieren%20kann.%20Ich%20muss%20zugeben%2C%20dass%20es%20ein%20wenig%20gedauert%20hat%2C%20bis%20ich%20den%20Code%20verstanden%20habe.%20Das%20liegt%20unter%20anderem%20daran%2C%20dass%20ich%20in%20Scala%20einfac" title="Digg"><img src="http://www.wicket-praxis.de/blog/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://sphinn.com/index.php?c=post&amp;m=submit&amp;link=http%3A%2F%2Fwww.wicket-praxis.de%2Fblog%2F2009%2F08%2F26%2Fscala-vs-java%2F" title="Sphinn"><img src="http://www.wicket-praxis.de/blog/wp-content/plugins/sociable/images/sphinn.png" title="Sphinn" alt="Sphinn" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://delicious.com/post?url=http%3A%2F%2Fwww.wicket-praxis.de%2Fblog%2F2009%2F08%2F26%2Fscala-vs-java%2F&amp;title=Scala%20vs%20Java&amp;notes=Ich%20habe%20mir%20gestern%20ein%20Scala-Codebeispiel%20angesehen%2C%20dass%20Scala-Objekte%20von%20und%20nach%20JSON%20konvertieren%20kann.%20Ich%20muss%20zugeben%2C%20dass%20es%20ein%20wenig%20gedauert%20hat%2C%20bis%20ich%20den%20Code%20verstanden%20habe.%20Das%20liegt%20unter%20anderem%20daran%2C%20dass%20ich%20in%20Scala%20einfac" title="del.icio.us"><img src="http://www.wicket-praxis.de/blog/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://www.facebook.com/share.php?u=http%3A%2F%2Fwww.wicket-praxis.de%2Fblog%2F2009%2F08%2F26%2Fscala-vs-java%2F&amp;t=Scala%20vs%20Java" title="Facebook"><img src="http://www.wicket-praxis.de/blog/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://www.mixx.com/submit?page_url=http%3A%2F%2Fwww.wicket-praxis.de%2Fblog%2F2009%2F08%2F26%2Fscala-vs-java%2F&amp;title=Scala%20vs%20Java" title="Mixx"><img src="http://www.wicket-praxis.de/blog/wp-content/plugins/sociable/images/mixx.png" title="Mixx" alt="Mixx" class="sociable-hovers" /></a></li>
	<li class="sociablelast"><a rel="nofollow"  target="_blank" href="http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Fwww.wicket-praxis.de%2Fblog%2F2009%2F08%2F26%2Fscala-vs-java%2F&amp;title=Scala%20vs%20Java&amp;annotation=Ich%20habe%20mir%20gestern%20ein%20Scala-Codebeispiel%20angesehen%2C%20dass%20Scala-Objekte%20von%20und%20nach%20JSON%20konvertieren%20kann.%20Ich%20muss%20zugeben%2C%20dass%20es%20ein%20wenig%20gedauert%20hat%2C%20bis%20ich%20den%20Code%20verstanden%20habe.%20Das%20liegt%20unter%20anderem%20daran%2C%20dass%20ich%20in%20Scala%20einfac" title="Google Bookmarks"><img src="http://www.wicket-praxis.de/blog/wp-content/plugins/sociable/images/googlebookmark.png" title="Google Bookmarks" alt="Google Bookmarks" class="sociable-hovers" /></a></li>
</ul>
</div>
<h3  class="related_post_title">Andere Beiträge</h3><ul class="related_post"><li>19. Juni 2009 -- <a href="http://www.wicket-praxis.de/blog/2009/06/19/wicket-scala/" title="Wicket und Scala &#8211; der Rückweg ist anstrengend">Wicket und Scala &#8211; der Rückweg ist anstrengend</a></li><li>21. Juli 2009 -- <a href="http://www.wicket-praxis.de/blog/2009/07/21/wicket-saved-the-day/" title="Wicket saved the day">Wicket saved the day</a></li><li>21. Juli 2009 -- <a href="http://www.wicket-praxis.de/blog/2009/07/21/sails-die-scala-version-von-rails-grail/" title="Sails &#8211; die Scala Version von Rails/Grails">Sails &#8211; die Scala Version von Rails/Grails</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.wicket-praxis.de/blog/2009/08/26/scala-vs-java/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Sails &#8211; die Scala Version von Rails/Grails</title>
		<link>http://www.wicket-praxis.de/blog/2009/07/21/sails-die-scala-version-von-rails-grail/</link>
		<comments>http://www.wicket-praxis.de/blog/2009/07/21/sails-die-scala-version-von-rails-grail/#comments</comments>
		<pubDate>Tue, 21 Jul 2009 12:19:40 +0000</pubDate>
		<dc:creator>michael</dc:creator>
				<category><![CDATA[Technologie]]></category>
		<category><![CDATA[Wicket]]></category>
		<category><![CDATA[scala]]></category>
		<category><![CDATA[grails]]></category>
		<category><![CDATA[sails]]></category>

		<guid isPermaLink="false">http://www.wicket-praxis.de/blog/?p=83</guid>
		<description><![CDATA[Ich habe mir das Scala Webframework Lift angesehen und finde, es ist zu kompliziert. Aber ich habe mir heute morgen auch wieder ein paar Möglichkeiten angesehen, die Scala so bietet und frage mich, ob man nicht (mit etwas Hilfe) ein Stack erstellen könnte, der Scala als Basissprache benutzt und sonst sich aber eher von Rails/Grails [...]]]></description>
			<content:encoded><![CDATA[<p>Ich habe mir das Scala Webframework Lift angesehen und finde, es ist zu kompliziert. Aber ich habe mir heute morgen auch wieder ein paar Möglichkeiten angesehen, die Scala so bietet und frage mich, ob man nicht (mit etwas Hilfe) ein Stack erstellen könnte, der Scala als Basissprache benutzt und sonst sich aber eher von Rails/Grails inspirieren lassen könnte. Für das UI käme natürlich Wicket in Frage.</p>
<p>Ich glaube, das wäre reizvoll, spannend und wichtig: sehr produktiv.</p>
<p>p.s.: wenn es sowas schon gibt, bitte gerne einen Hinweis.</p>

<div class="sociable">
<div class="sociable_tagline">
<strong>Share and Enjoy:</strong>
</div>
<ul>
	<li class="sociablefirst"><a rel="nofollow"  target="_blank" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fwww.wicket-praxis.de%2Fblog%2F2009%2F07%2F21%2Fsails-die-scala-version-von-rails-grail%2F&amp;title=Sails%20-%20die%20Scala%20Version%20von%20Rails%2FGrails&amp;bodytext=Ich%20habe%20mir%20das%20Scala%20Webframework%20Lift%20angesehen%20und%20finde%2C%20es%20ist%20zu%20kompliziert.%20Aber%20ich%20habe%20mir%20heute%20morgen%20auch%20wieder%20ein%20paar%20M%C3%B6glichkeiten%20angesehen%2C%20die%20Scala%20so%20bietet%20und%20frage%20mich%2C%20ob%20man%20nicht%20%28mit%20etwas%20Hilfe%29%20ein%20Stack%20erstellen%20" title="Digg"><img src="http://www.wicket-praxis.de/blog/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://sphinn.com/index.php?c=post&amp;m=submit&amp;link=http%3A%2F%2Fwww.wicket-praxis.de%2Fblog%2F2009%2F07%2F21%2Fsails-die-scala-version-von-rails-grail%2F" title="Sphinn"><img src="http://www.wicket-praxis.de/blog/wp-content/plugins/sociable/images/sphinn.png" title="Sphinn" alt="Sphinn" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://delicious.com/post?url=http%3A%2F%2Fwww.wicket-praxis.de%2Fblog%2F2009%2F07%2F21%2Fsails-die-scala-version-von-rails-grail%2F&amp;title=Sails%20-%20die%20Scala%20Version%20von%20Rails%2FGrails&amp;notes=Ich%20habe%20mir%20das%20Scala%20Webframework%20Lift%20angesehen%20und%20finde%2C%20es%20ist%20zu%20kompliziert.%20Aber%20ich%20habe%20mir%20heute%20morgen%20auch%20wieder%20ein%20paar%20M%C3%B6glichkeiten%20angesehen%2C%20die%20Scala%20so%20bietet%20und%20frage%20mich%2C%20ob%20man%20nicht%20%28mit%20etwas%20Hilfe%29%20ein%20Stack%20erstellen%20" title="del.icio.us"><img src="http://www.wicket-praxis.de/blog/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://www.facebook.com/share.php?u=http%3A%2F%2Fwww.wicket-praxis.de%2Fblog%2F2009%2F07%2F21%2Fsails-die-scala-version-von-rails-grail%2F&amp;t=Sails%20-%20die%20Scala%20Version%20von%20Rails%2FGrails" title="Facebook"><img src="http://www.wicket-praxis.de/blog/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://www.mixx.com/submit?page_url=http%3A%2F%2Fwww.wicket-praxis.de%2Fblog%2F2009%2F07%2F21%2Fsails-die-scala-version-von-rails-grail%2F&amp;title=Sails%20-%20die%20Scala%20Version%20von%20Rails%2FGrails" title="Mixx"><img src="http://www.wicket-praxis.de/blog/wp-content/plugins/sociable/images/mixx.png" title="Mixx" alt="Mixx" class="sociable-hovers" /></a></li>
	<li class="sociablelast"><a rel="nofollow"  target="_blank" href="http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Fwww.wicket-praxis.de%2Fblog%2F2009%2F07%2F21%2Fsails-die-scala-version-von-rails-grail%2F&amp;title=Sails%20-%20die%20Scala%20Version%20von%20Rails%2FGrails&amp;annotation=Ich%20habe%20mir%20das%20Scala%20Webframework%20Lift%20angesehen%20und%20finde%2C%20es%20ist%20zu%20kompliziert.%20Aber%20ich%20habe%20mir%20heute%20morgen%20auch%20wieder%20ein%20paar%20M%C3%B6glichkeiten%20angesehen%2C%20die%20Scala%20so%20bietet%20und%20frage%20mich%2C%20ob%20man%20nicht%20%28mit%20etwas%20Hilfe%29%20ein%20Stack%20erstellen%20" title="Google Bookmarks"><img src="http://www.wicket-praxis.de/blog/wp-content/plugins/sociable/images/googlebookmark.png" title="Google Bookmarks" alt="Google Bookmarks" class="sociable-hovers" /></a></li>
</ul>
</div>
<h3  class="related_post_title">Andere Beiträge</h3><ul class="related_post"><li>11. Mai 2009 -- <a href="http://www.wicket-praxis.de/blog/2009/05/11/die-ruhe-vor-dem-sturm/" title="Die Ruhe vor dem Sturm">Die Ruhe vor dem Sturm</a></li><li>15. September 2009 -- <a href="http://www.wicket-praxis.de/blog/2009/09/15/migration-zu-wicket-ajax/" title="Migration zu Wicket: Ajax">Migration zu Wicket: Ajax</a></li><li>12. September 2009 -- <a href="http://www.wicket-praxis.de/blog/2009/09/12/entscheidungshilfe-webframework/" title="Entscheidungshilfe Webframework">Entscheidungshilfe Webframework</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.wicket-praxis.de/blog/2009/07/21/sails-die-scala-version-von-rails-grail/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Scala kommt</title>
		<link>http://www.wicket-praxis.de/blog/2009/07/07/scala-kommt/</link>
		<comments>http://www.wicket-praxis.de/blog/2009/07/07/scala-kommt/#comments</comments>
		<pubDate>Tue, 07 Jul 2009 21:37:56 +0000</pubDate>
		<dc:creator>michael</dc:creator>
				<category><![CDATA[Wicket]]></category>
		<category><![CDATA[scala]]></category>
		<category><![CDATA[praxis]]></category>

		<guid isPermaLink="false">http://www.wicket-praxis.de/blog/?p=76</guid>
		<description><![CDATA[Ich habe letztes Jahr in der Java User Group Hamburg Jan Kriesten kennen gelernt, als er einen Vortrag zu Wicket gehalten hat. Dabei erwähnte er, dass er seine Projekte mit Scala umsetzt. Wenn man sein Haus umbauen möchte, ist es keine Gute Idee, alle Wände gleichzeitig einzureißen, als konzentrierte ich mich auf Wicket.
Heute habe ich [...]]]></description>
			<content:encoded><![CDATA[<p>Ich habe letztes Jahr in der <a href="http://www.jughh.org/" target="_blank">Java User Group Hamburg </a>Jan Kriesten kennen gelernt, als er einen Vortrag zu Wicket gehalten hat. Dabei erwähnte er, dass er seine Projekte mit Scala umsetzt. Wenn man sein Haus umbauen möchte, ist es keine Gute Idee, alle Wände gleichzeitig einzureißen, als konzentrierte ich mich auf Wicket.</p>
<p>Heute habe ich gedacht, ich könnte diesen Kontakt ja mal aufleben lassen. Ich bekam prompt Antwort. Die Überraschung folgt auf den Fuss: Jan hat ebenfalls ein Buch geschrieben (es wird vermutlich zur selben Zeit erscheinen). Das Buch hat er auch noch beim selben Verlag geschrieben. Und offensichtlich hatten wir die selbe Intention, denn sein Buch ist ebenfalls auf die praktische Anwendung von (in diesem Fall) Scala ausgerichtet.</p>
<p>Ich habe das Buch natürlich nicht gelesen, aber ich habe ein gutes Gefühl. Es gibt hier jetzt keine Kaufempfehlung, außer an mich selbst.</p>
<p><a href="http://www.footprint.de/fcc/" target="_blank">Jan&#8217;s Blog</a> und das Buch:<a href="http://www.amazon.de/gp/product/3446418636?ie=UTF8&#038;tag=mosmannde-21&#038;linkCode=as2&#038;camp=1638&#038;creative=19454&#038;creativeASIN=3446418636">Praxisbuch Scala: Programmieren in Scala für Ein- und Umsteiger</a><img style="border:none !important; margin:0px !important;" src="http://www.assoc-amazon.de/e/ir?t=mosmannde-21&#038;l=as2&#038;o=3&#038;a=3446418636" border="0" alt="" width="1" height="1" /></p>

<div class="sociable">
<div class="sociable_tagline">
<strong>Share and Enjoy:</strong>
</div>
<ul>
	<li class="sociablefirst"><a rel="nofollow"  target="_blank" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fwww.wicket-praxis.de%2Fblog%2F2009%2F07%2F07%2Fscala-kommt%2F&amp;title=Scala%20kommt&amp;bodytext=Ich%20habe%20letztes%20Jahr%20in%20der%20Java%20User%20Group%20Hamburg%20Jan%20Kriesten%20kennen%20gelernt%2C%20als%20er%20einen%20Vortrag%20zu%20Wicket%20gehalten%20hat.%20Dabei%20erw%C3%A4hnte%20er%2C%20dass%20er%20seine%20Projekte%20mit%20Scala%20umsetzt.%20Wenn%20man%20sein%20Haus%20umbauen%20m%C3%B6chte%2C%20ist%20es%20keine%20Gute%20Idee%2C%20a" title="Digg"><img src="http://www.wicket-praxis.de/blog/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://sphinn.com/index.php?c=post&amp;m=submit&amp;link=http%3A%2F%2Fwww.wicket-praxis.de%2Fblog%2F2009%2F07%2F07%2Fscala-kommt%2F" title="Sphinn"><img src="http://www.wicket-praxis.de/blog/wp-content/plugins/sociable/images/sphinn.png" title="Sphinn" alt="Sphinn" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://delicious.com/post?url=http%3A%2F%2Fwww.wicket-praxis.de%2Fblog%2F2009%2F07%2F07%2Fscala-kommt%2F&amp;title=Scala%20kommt&amp;notes=Ich%20habe%20letztes%20Jahr%20in%20der%20Java%20User%20Group%20Hamburg%20Jan%20Kriesten%20kennen%20gelernt%2C%20als%20er%20einen%20Vortrag%20zu%20Wicket%20gehalten%20hat.%20Dabei%20erw%C3%A4hnte%20er%2C%20dass%20er%20seine%20Projekte%20mit%20Scala%20umsetzt.%20Wenn%20man%20sein%20Haus%20umbauen%20m%C3%B6chte%2C%20ist%20es%20keine%20Gute%20Idee%2C%20a" title="del.icio.us"><img src="http://www.wicket-praxis.de/blog/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://www.facebook.com/share.php?u=http%3A%2F%2Fwww.wicket-praxis.de%2Fblog%2F2009%2F07%2F07%2Fscala-kommt%2F&amp;t=Scala%20kommt" title="Facebook"><img src="http://www.wicket-praxis.de/blog/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://www.mixx.com/submit?page_url=http%3A%2F%2Fwww.wicket-praxis.de%2Fblog%2F2009%2F07%2F07%2Fscala-kommt%2F&amp;title=Scala%20kommt" title="Mixx"><img src="http://www.wicket-praxis.de/blog/wp-content/plugins/sociable/images/mixx.png" title="Mixx" alt="Mixx" class="sociable-hovers" /></a></li>
	<li class="sociablelast"><a rel="nofollow"  target="_blank" href="http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Fwww.wicket-praxis.de%2Fblog%2F2009%2F07%2F07%2Fscala-kommt%2F&amp;title=Scala%20kommt&amp;annotation=Ich%20habe%20letztes%20Jahr%20in%20der%20Java%20User%20Group%20Hamburg%20Jan%20Kriesten%20kennen%20gelernt%2C%20als%20er%20einen%20Vortrag%20zu%20Wicket%20gehalten%20hat.%20Dabei%20erw%C3%A4hnte%20er%2C%20dass%20er%20seine%20Projekte%20mit%20Scala%20umsetzt.%20Wenn%20man%20sein%20Haus%20umbauen%20m%C3%B6chte%2C%20ist%20es%20keine%20Gute%20Idee%2C%20a" title="Google Bookmarks"><img src="http://www.wicket-praxis.de/blog/wp-content/plugins/sociable/images/googlebookmark.png" title="Google Bookmarks" alt="Google Bookmarks" class="sociable-hovers" /></a></li>
</ul>
</div>
<h3  class="related_post_title">Andere Beiträge</h3><ul class="related_post"><li>3. September 2009 -- <a href="http://www.wicket-praxis.de/blog/2009/09/03/quelltext-der-beispiele-aus-dem-buch-zum-download/" title="Quelltext der Beispiele aus dem Buch zum Download">Quelltext der Beispiele aus dem Buch zum Download</a></li><li>21. Juli 2009 -- <a href="http://www.wicket-praxis.de/blog/2009/07/21/sails-die-scala-version-von-rails-grail/" title="Sails &#8211; die Scala Version von Rails/Grails">Sails &#8211; die Scala Version von Rails/Grails</a></li><li>19. Juni 2009 -- <a href="http://www.wicket-praxis.de/blog/2009/06/19/wicket-scala/" title="Wicket und Scala &#8211; der Rückweg ist anstrengend">Wicket und Scala &#8211; der Rückweg ist anstrengend</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.wicket-praxis.de/blog/2009/07/07/scala-kommt/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Wicket und Scala &#8211; der Rückweg ist anstrengend</title>
		<link>http://www.wicket-praxis.de/blog/2009/06/19/wicket-scala/</link>
		<comments>http://www.wicket-praxis.de/blog/2009/06/19/wicket-scala/#comments</comments>
		<pubDate>Fri, 19 Jun 2009 07:20:14 +0000</pubDate>
		<dc:creator>michael</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[Refactoring]]></category>
		<category><![CDATA[Wicket]]></category>
		<category><![CDATA[scala]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[lines]]></category>

		<guid isPermaLink="false">http://www.wicket-praxis.de/blog/?p=70</guid>
		<description><![CDATA[Ich habe mal ein wenig mit Scala rumgespielt und mit den Sprachmöglichkeiten, die Scala bietet, versucht aus einem Java-lastigen Wicket-Beispiel etwas zu machen, was sich wie Scala anfühlt. Zuerst der Java-Code:
package de.flapdoodle.incubator.scalawicket.web.pages;&#160;import org.apache.wicket.Component;import org.apache.wicket.IClusterable;import org.apache.wicket.ajax.AjaxRequestTarget;import org.apache.wicket.ajax.markup.html.AjaxFallbackLink;import org.apache.wicket.ajax.markup.html.AjaxLink;import org.apache.wicket.markup.html.WebPage;import org.apache.wicket.markup.html.basic.Label;import org.apache.wicket.markup.html.form.Form;import org.apache.wicket.markup.html.form.TextField;import org.apache.wicket.model.CompoundPropertyModel;import org.apache.wicket.model.IModel;import org.apache.wicket.model.Model;import org.apache.wicket.model.PropertyModel;&#160;public class StartJava extends WebPage&#123;&#160;&#160;public StartJava&#40;&#41;&#160;&#160;&#123;&#160;&#160;&#160;&#160;IModel messageModel=Model.of&#40;&#34;Huiii&#34;&#41;;&#160;&#160;&#160;&#160;final Label label=new Label&#40;&#34;message&#34;,messageModel&#41;;&#160;&#160;&#160;&#160;label.setOutputMarkupId&#40;true&#41;;&#160;&#160;&#160;&#160;&#160;add&#40;label&#41;;&#160;&#160;&#160;&#160;&#160;final Bean [...]]]></description>
			<content:encoded><![CDATA[<p>Ich habe mal ein wenig mit Scala rumgespielt und mit den Sprachmöglichkeiten, die Scala bietet, versucht aus einem Java-lastigen Wicket-Beispiel etwas zu machen, was sich wie Scala anfühlt. Zuerst der Java-Code:<br />
<!--DEVFMTCODE--><pre class="devcodeblock" title="Java"><div class="devcodeoverflow"><ol><li><span style="color: #000000; font-weight: bold;">package</span> <span style="color: #006699;">de.flapdoodle.incubator.scalawicket.web.pages</span><span style="color: #339933;">;</span></li><li>&nbsp;</li><li><span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">org.apache.wicket.Component</span><span style="color: #339933;">;</span></li><li><span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">org.apache.wicket.IClusterable</span><span style="color: #339933;">;</span></li><li><span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">org.apache.wicket.ajax.AjaxRequestTarget</span><span style="color: #339933;">;</span></li><li><span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">org.apache.wicket.ajax.markup.html.AjaxFallbackLink</span><span style="color: #339933;">;</span></li><li><span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">org.apache.wicket.ajax.markup.html.AjaxLink</span><span style="color: #339933;">;</span></li><li><span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">org.apache.wicket.markup.html.WebPage</span><span style="color: #339933;">;</span></li><li><span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">org.apache.wicket.markup.html.basic.Label</span><span style="color: #339933;">;</span></li><li><span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">org.apache.wicket.markup.html.form.Form</span><span style="color: #339933;">;</span></li><li><span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">org.apache.wicket.markup.html.form.TextField</span><span style="color: #339933;">;</span></li><li><span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">org.apache.wicket.model.CompoundPropertyModel</span><span style="color: #339933;">;</span></li><li><span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">org.apache.wicket.model.IModel</span><span style="color: #339933;">;</span></li><li><span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">org.apache.wicket.model.Model</span><span style="color: #339933;">;</span></li><li><span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">org.apache.wicket.model.PropertyModel</span><span style="color: #339933;">;</span></li><li>&nbsp;</li><li><span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">class</span> StartJava <span style="color: #000000; font-weight: bold;">extends</span> WebPage</li><li><span style="color: #009900;">&#123;</span></li><li>&nbsp;&nbsp;<span style="color: #000000; font-weight: bold;">public</span> StartJava<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span></li><li>&nbsp;&nbsp;<span style="color: #009900;">&#123;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;IModel messageModel<span style="color: #339933;">=</span>Model.<span style="color: #006633;">of</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Huiii&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #000000; font-weight: bold;">final</span> <span style="color: #003399;">Label</span> label<span style="color: #339933;">=</span><span style="color: #000000; font-weight: bold;">new</span> <span style="color: #003399;">Label</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;message&quot;</span>,messageModel<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;label.<span style="color: #006633;">setOutputMarkupId</span><span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">true</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></li><li>&nbsp;</li><li>&nbsp;&nbsp;&nbsp;&nbsp;add<span style="color: #009900;">&#40;</span>label<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></li><li>&nbsp;</li><li>&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #000000; font-weight: bold;">final</span> Bean bean<span style="color: #339933;">=</span><span style="color: #000000; font-weight: bold;">new</span> Bean<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;bean.<span style="color: #006633;">setName</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Klaus&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;bean.<span style="color: #006633;">setAlter</span><span style="color: #009900;">&#40;</span>12<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></li><li>&nbsp;</li><li>&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #000000; font-weight: bold;">final</span> <span style="color: #003399;">Component</span> labelName <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> <span style="color: #003399;">Label</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;name&quot;</span>,<span style="color: #000000; font-weight: bold;">new</span> PropertyModel<span style="color: #009900;">&#40;</span>bean,<span style="color: #0000ff;">&quot;name&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>.<span style="color: #006633;">setOutputMarkupId</span><span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">true</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #000000; font-weight: bold;">final</span> <span style="color: #003399;">Component</span> labelAlter <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> <span style="color: #003399;">Label</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;alter&quot;</span>,<span style="color: #000000; font-weight: bold;">new</span> PropertyModel<span style="color: #009900;">&#40;</span>bean,<span style="color: #0000ff;">&quot;name&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>.<span style="color: #006633;">setOutputMarkupId</span><span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">true</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;add<span style="color: #009900;">&#40;</span>labelName<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;add<span style="color: #009900;">&#40;</span>labelAlter<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></li><li>&nbsp;</li><li>&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #000000; font-weight: bold;">final</span> Form form<span style="color: #339933;">=</span><span style="color: #000000; font-weight: bold;">new</span> Form<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;form&quot;</span>, <span style="color: #000000; font-weight: bold;">new</span> CompoundPropertyModel<span style="color: #009900;">&#40;</span>bean<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;form.<span style="color: #006633;">add</span><span style="color: #009900;">&#40;</span><span style="color: #000000; font-weight: bold;">new</span> <span style="color: #003399;">TextField</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;name&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>.<span style="color: #006633;">add</span><span style="color: #009900;">&#40;</span><span style="color: #000000; font-weight: bold;">new</span> <span style="color: #003399;">TextField</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;alter&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;form.<span style="color: #006633;">setOutputMarkupId</span><span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">true</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;add<span style="color: #009900;">&#40;</span>form<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></li><li>&nbsp;</li><li>&nbsp;&nbsp;&nbsp;&nbsp;add<span style="color: #009900;">&#40;</span><span style="color: #000000; font-weight: bold;">new</span> AjaxFallbackLink<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;link&quot;</span>,messageModel<span style="color: #009900;">&#41;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #009900;">&#123;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">void</span> onClick<span style="color: #009900;">&#40;</span>AjaxRequestTarget target<span style="color: #009900;">&#41;</span> </li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #009900;">&#123;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;getModel<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>.<span style="color: #006633;">setObject</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Klick&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bean.<span style="color: #006633;">setName</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Peter&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;target.<span style="color: #006633;">addComponent</span><span style="color: #009900;">&#40;</span>form<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;target.<span style="color: #006633;">addComponent</span><span style="color: #009900;">&#40;</span>label<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;target.<span style="color: #006633;">addComponent</span><span style="color: #009900;">&#40;</span>labelName<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;target.<span style="color: #006633;">addComponent</span><span style="color: #009900;">&#40;</span>labelAlter<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #009900;">&#125;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></li><li>&nbsp;</li><li>&nbsp;&nbsp;&nbsp;&nbsp;add<span style="color: #009900;">&#40;</span><span style="color: #000000; font-weight: bold;">new</span> AjaxLink<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;link2&quot;</span>,messageModel<span style="color: #009900;">&#41;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #009900;">&#123;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@Override</li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">void</span> onClick<span style="color: #009900;">&#40;</span>AjaxRequestTarget target<span style="color: #009900;">&#41;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #009900;">&#123;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;getModel<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>.<span style="color: #006633;">setObject</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Klack&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bean.<span style="color: #006633;">setAlter</span><span style="color: #009900;">&#40;</span>24<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;target.<span style="color: #006633;">addComponent</span><span style="color: #009900;">&#40;</span>form<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;target.<span style="color: #006633;">addComponent</span><span style="color: #009900;">&#40;</span>label<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;target.<span style="color: #006633;">addComponent</span><span style="color: #009900;">&#40;</span>labelName<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;target.<span style="color: #006633;">addComponent</span><span style="color: #009900;">&#40;</span>labelAlter<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #009900;">&#125;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></li><li>&nbsp;&nbsp;<span style="color: #009900;">&#125;</span></li><li>&nbsp;</li><li>&nbsp;&nbsp;<span style="color: #000000; font-weight: bold;">class</span> Bean <span style="color: #000000; font-weight: bold;">implements</span> IClusterable</li><li>&nbsp;&nbsp;<span style="color: #009900;">&#123;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #003399;">String</span> _name<span style="color: #339933;">;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #000066; font-weight: bold;">int</span> _alter<span style="color: #339933;">;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #003399;">String</span> getName<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #009900;">&#123;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #000000; font-weight: bold;">return</span> _name<span style="color: #339933;">;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #009900;">&#125;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">void</span> setName<span style="color: #009900;">&#40;</span><span style="color: #003399;">String</span> name<span style="color: #009900;">&#41;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #009900;">&#123;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_name <span style="color: #339933;">=</span> name<span style="color: #339933;">;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #009900;">&#125;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">int</span> getAlter<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #009900;">&#123;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #000000; font-weight: bold;">return</span> _alter<span style="color: #339933;">;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #009900;">&#125;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">void</span> setAlter<span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">int</span> alter<span style="color: #009900;">&#41;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #009900;">&#123;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_alter <span style="color: #339933;">=</span> alter<span style="color: #339933;">;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #009900;">&#125;</span></li><li>&nbsp;&nbsp;<span style="color: #009900;">&#125;</span></li><li><span style="color: #009900;">&#125;</span></li></ol></div></pre><!--END_DEVFMTCODE--><br />
.. und nun das ganze in Scala<br />
<!--DEVFMTCODE--><pre class="devcodeblock" title="Scala"><div class="devcodeoverflow"><ol><li><span style="color: #0000ff; font-weight: bold;">package</span> de.<span style="color: #000000;">flapdoodle</span>.<span style="color: #000000;">incubator</span>.<span style="color: #000000;">scalawicket</span>.<span style="color: #000000;">web</span>.<span style="color: #000000;">pages</span><span style="color: #000080;">;</span></li><li>&nbsp;</li><li><span style="color: #0000ff; font-weight: bold;">import</span> org.<span style="color: #000000;">apache</span>.<span style="color: #000000;">wicket</span>.<span style="color: #000000;">Component</span><span style="color: #000080;">;</span></li><li><span style="color: #0000ff; font-weight: bold;">import</span> org.<span style="color: #000000;">apache</span>.<span style="color: #000000;">wicket</span>.<span style="color: #000000;">IClusterable</span><span style="color: #000080;">;</span></li><li><span style="color: #0000ff; font-weight: bold;">import</span> org.<span style="color: #000000;">apache</span>.<span style="color: #000000;">wicket</span>.<span style="color: #000000;">ajax</span>.<span style="color: #000000;">AjaxRequestTarget</span><span style="color: #000080;">;</span></li><li><span style="color: #0000ff; font-weight: bold;">import</span> org.<span style="color: #000000;">apache</span>.<span style="color: #000000;">wicket</span>.<span style="color: #000000;">ajax</span>.<span style="color: #000000;">markup</span>.<span style="color: #000000;">html</span>.<span style="color: #000000;">AjaxFallbackLink</span><span style="color: #000080;">;</span></li><li><span style="color: #0000ff; font-weight: bold;">import</span> org.<span style="color: #000000;">apache</span>.<span style="color: #000000;">wicket</span>.<span style="color: #000000;">ajax</span>.<span style="color: #000000;">markup</span>.<span style="color: #000000;">html</span>.<span style="color: #000000;">AjaxLink</span><span style="color: #000080;">;</span></li><li><span style="color: #0000ff; font-weight: bold;">import</span> org.<span style="color: #000000;">apache</span>.<span style="color: #000000;">wicket</span>.<span style="color: #000000;">markup</span>.<span style="color: #000000;">html</span>.<span style="color: #000000;">WebPage</span><span style="color: #000080;">;</span></li><li><span style="color: #0000ff; font-weight: bold;">import</span> org.<span style="color: #000000;">apache</span>.<span style="color: #000000;">wicket</span>.<span style="color: #000000;">markup</span>.<span style="color: #000000;">html</span>.<span style="color: #000000;">basic</span>.<span style="color: #000000;">Label</span><span style="color: #000080;">;</span></li><li><span style="color: #0000ff; font-weight: bold;">import</span> org.<span style="color: #000000;">apache</span>.<span style="color: #000000;">wicket</span>.<span style="color: #000000;">markup</span>.<span style="color: #000000;">html</span>.<span style="color: #000000;">form</span>.<span style="color: #000000;">Form</span><span style="color: #000080;">;</span></li><li><span style="color: #0000ff; font-weight: bold;">import</span> org.<span style="color: #000000;">apache</span>.<span style="color: #000000;">wicket</span>.<span style="color: #000000;">markup</span>.<span style="color: #000000;">html</span>.<span style="color: #000000;">form</span>.<span style="color: #000000;">TextField</span><span style="color: #000080;">;</span></li><li><span style="color: #0000ff; font-weight: bold;">import</span> org.<span style="color: #000000;">apache</span>.<span style="color: #000000;">wicket</span>.<span style="color: #000000;">model</span>.<span style="color: #000000;">CompoundPropertyModel</span><span style="color: #000080;">;</span></li><li><span style="color: #0000ff; font-weight: bold;">import</span> org.<span style="color: #000000;">apache</span>.<span style="color: #000000;">wicket</span>.<span style="color: #000000;">model</span>.<span style="color: #000000;">IModel</span><span style="color: #000080;">;</span></li><li><span style="color: #0000ff; font-weight: bold;">import</span> org.<span style="color: #000000;">apache</span>.<span style="color: #000000;">wicket</span>.<span style="color: #000000;">model</span>.<span style="color: #000000;">Model</span><span style="color: #000080;">;</span></li><li><span style="color: #0000ff; font-weight: bold;">import</span> org.<span style="color: #000000;">apache</span>.<span style="color: #000000;">wicket</span>.<span style="color: #000000;">model</span>.<span style="color: #000000;">PropertyModel</span><span style="color: #000080;">;</span></li><li><span style="color: #0000ff; font-weight: bold;">import</span> de.<span style="color: #000000;">flapdoodle</span>.<span style="color: #000000;">incubator</span>.<span style="color: #000000;">scalawicket</span>.<span style="color: #000000;">web</span>.<span style="color: #000000;">wicket</span>.<span style="color: #000000;">WicketHelper</span>.<span style="color: #000080;">_</span></li><li><span style="color: #0000ff; font-weight: bold;">import</span> scala.<span style="color: #000000;">reflect</span>.<span style="color: #000000;">BeanProperty</span><span style="color: #000080;">;</span></li><li>&nbsp;</li><li><span style="color: #0000ff; font-weight: bold;">class</span> Start <span style="color: #0000ff; font-weight: bold;">extends</span> WebPage </li><li><span style="color: #F78811;">&#123;</span></li><li>&nbsp;&nbsp;<span style="color: #0000ff; font-weight: bold;">val</span> messageModel<span style="color: #000080;">=</span>Model.<span style="color: #000000;">of</span><span style="color: #F78811;">&#40;</span><span style="color: #6666FF;">&quot;Huiii&quot;</span><span style="color: #F78811;">&#41;</span></li><li>&nbsp;&nbsp;<span style="color: #0000ff; font-weight: bold;">val</span> label<span style="color: #000080;">=</span><span style="color: #0000ff; font-weight: bold;">new</span> Label<span style="color: #F78811;">&#40;</span><span style="color: #6666FF;">&quot;message&quot;</span>,messageModel<span style="color: #F78811;">&#41;</span></li><li>&nbsp;&nbsp;label.<span style="color: #000000;">enableAjax</span></li><li>&nbsp;</li><li>&nbsp;&nbsp;<span style="color: #0000ff; font-weight: bold;">this</span>+<span style="color: #000080;">=</span>label<span style="color: #000080;">;</span></li><li>&nbsp;</li><li>&nbsp;&nbsp;<span style="color: #0000ff; font-weight: bold;">val</span> bean<span style="color: #000080;">=</span><span style="color: #0000ff; font-weight: bold;">new</span> Bean</li><li>&nbsp;&nbsp;bean.<span style="color: #000000;">name</span><span style="color: #000080;">=</span><span style="color: #6666FF;">&quot;Klaus&quot;</span><span style="color: #000080;">;</span></li><li>&nbsp;&nbsp;bean.<span style="color: #000000;">alter</span><span style="color: #000080;">=</span><span style="color: #F78811;">12</span><span style="color: #000080;">;</span></li><li>&nbsp;</li><li>&nbsp;&nbsp;<span style="color: #0000ff; font-weight: bold;">val</span> labelName <span style="color: #000080;">=</span> <span style="color: #0000ff; font-weight: bold;">new</span> Label<span style="color: #F78811;">&#40;</span><span style="color: #6666FF;">&quot;name&quot;</span>,bean model <span style="color: #F78811;">&#123;</span><span style="color: #000080;">_</span>.<span style="color: #000000;">name</span><span style="color: #F78811;">&#125;</span><span style="color: #F78811;">&#41;</span>.<span style="color: #000000;">enableAjax</span></li><li>&nbsp;&nbsp;<span style="color: #0000ff; font-weight: bold;">val</span> labelAlter <span style="color: #000080;">=</span> <span style="color: #0000ff; font-weight: bold;">new</span> Label<span style="color: #F78811;">&#40;</span><span style="color: #6666FF;">&quot;alter&quot;</span>,bean model <span style="color: #F78811;">&#123;</span><span style="color: #000080;">_</span>.<span style="color: #000000;">alter</span><span style="color: #F78811;">&#125;</span><span style="color: #F78811;">&#41;</span>.<span style="color: #000000;">enableAjax</span></li><li>&nbsp;&nbsp;<span style="color: #0000ff; font-weight: bold;">this</span>+<span style="color: #000080;">=</span>labelName</li><li>&nbsp;&nbsp;<span style="color: #0000ff; font-weight: bold;">this</span>+<span style="color: #000080;">=</span>labelAlter</li><li>&nbsp;</li><li>&nbsp;&nbsp;<span style="color: #0000ff; font-weight: bold;">val</span> form<span style="color: #000080;">=</span><span style="color: #0000ff; font-weight: bold;">new</span> Form<span style="color: #F78811;">&#91;</span>Bean<span style="color: #F78811;">&#93;</span><span style="color: #F78811;">&#40;</span><span style="color: #6666FF;">&quot;form&quot;</span>, <span style="color: #0000ff; font-weight: bold;">new</span> CompoundPropertyModel<span style="color: #F78811;">&#91;</span>Bean<span style="color: #F78811;">&#93;</span><span style="color: #F78811;">&#40;</span>bean<span style="color: #F78811;">&#41;</span><span style="color: #F78811;">&#41;</span><span style="color: #000080;">;</span></li><li>&nbsp;&nbsp;form+<span style="color: #000080;">=</span><span style="color: #F78811;">&#40;</span><span style="color: #0000ff; font-weight: bold;">new</span> TextField<span style="color: #F78811;">&#40;</span><span style="color: #6666FF;">&quot;name&quot;</span><span style="color: #F78811;">&#41;</span>,<span style="color: #0000ff; font-weight: bold;">new</span> TextField<span style="color: #F78811;">&#40;</span><span style="color: #6666FF;">&quot;alter&quot;</span><span style="color: #F78811;">&#41;</span><span style="color: #F78811;">&#41;</span></li><li>&nbsp;&nbsp;form.<span style="color: #000000;">enableAjax</span></li><li>&nbsp;&nbsp;<span style="color: #0000ff; font-weight: bold;">this</span>+<span style="color: #000080;">=</span>form</li><li>&nbsp;</li><li>&nbsp;&nbsp;<span style="color: #0000ff; font-weight: bold;">this</span>+<span style="color: #000080;">=</span><span style="color: #0000ff; font-weight: bold;">new</span> AjaxFallbackLink<span style="color: #F78811;">&#91;</span>String<span style="color: #F78811;">&#93;</span><span style="color: #F78811;">&#40;</span><span style="color: #6666FF;">&quot;link&quot;</span>,messageModel<span style="color: #F78811;">&#41;</span></li><li>&nbsp;&nbsp;<span style="color: #F78811;">&#123;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000ff; font-weight: bold;">override</span> <span style="color: #0000ff; font-weight: bold;">def</span> onClick<span style="color: #F78811;">&#40;</span>target<span style="color: #000080;">:</span> AjaxRequestTarget<span style="color: #F78811;">&#41;</span> <span style="color: #000080;">=</span> </li><li>&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #F78811;">&#123;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000ff; font-weight: bold;">this</span>.<span style="color: #000000;">model</span> set <span style="color: #6666FF;">&quot;Klick&quot;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bean.<span style="color: #000000;">name</span><span style="color: #000080;">=</span><span style="color: #6666FF;">&quot;Peter&quot;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;target.<span style="color: #000000;">refresh</span><span style="color: #F78811;">&#40;</span>form,label,labelName,labelAlter<span style="color: #F78811;">&#41;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #F78811;">&#125;</span></li><li>&nbsp;&nbsp;<span style="color: #F78811;">&#125;</span><span style="color: #000080;">;</span></li><li>&nbsp;</li><li>&nbsp;&nbsp;<span style="color: #0000ff; font-weight: bold;">this</span>+<span style="color: #000080;">=</span><span style="color: #0000ff; font-weight: bold;">new</span> AjaxLink<span style="color: #F78811;">&#40;</span><span style="color: #6666FF;">&quot;link2&quot;</span>,messageModel<span style="color: #F78811;">&#41;</span></li><li>&nbsp;&nbsp;<span style="color: #F78811;">&#123;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000ff; font-weight: bold;">override</span> <span style="color: #0000ff; font-weight: bold;">def</span> onClick<span style="color: #F78811;">&#40;</span>target<span style="color: #000080;">:</span> AjaxRequestTarget<span style="color: #F78811;">&#41;</span> <span style="color: #000080;">=</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #F78811;">&#123;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000ff; font-weight: bold;">this</span>.<span style="color: #000000;">model</span> set <span style="color: #6666FF;">&quot;Klack&quot;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bean.<span style="color: #000000;">alter</span><span style="color: #000080;">=</span>24</li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;target.<span style="color: #000000;">refresh</span><span style="color: #F78811;">&#40;</span>form,label,labelName,labelAlter<span style="color: #F78811;">&#41;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #F78811;">&#125;</span></li><li>&nbsp;&nbsp;<span style="color: #F78811;">&#125;</span><span style="color: #000080;">;</span></li><li>&nbsp;</li><li>&nbsp;&nbsp;<span style="color: #0000ff; font-weight: bold;">class</span> Bean <span style="color: #0000ff; font-weight: bold;">extends</span> IClusterable</li><li>&nbsp;&nbsp;<span style="color: #F78811;">&#123;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #000080;">@</span>BeanProperty</li><li>&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000ff; font-weight: bold;">var</span> name<span style="color: #000080;">:</span> String <span style="color: #000080;">=</span> <span style="color: #000080;">_;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #000080;">@</span>BeanProperty</li><li>&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000ff; font-weight: bold;">var</span> alter<span style="color: #000080;">:</span> Integer <span style="color: #000080;">=</span> <span style="color: #000080;">_;</span></li><li>&nbsp;&nbsp;<span style="color: #F78811;">&#125;</span></li><li><span style="color: #F78811;">&#125;</span></li></ol></div></pre><!--END_DEVFMTCODE--><br />
Zuerst zu den offensichtlichen Dingen:</p>
<ul>
<li>Java: Zeilen=91, Wörter=155, Zeichen=2.567</li>
<li>Scala: Zeilen=69(75%), Wörter=126(81%), Zeichen=1.921(75%)</li>
</ul>
<p>In diesem Beispiel kann Scala seine Vorteile vielleicht noch nicht richtig ausspielen. Wobei 25% weniger Schreibarbeit (wenn man vernachlässigt, dass ich einmalig etwas Scala-Code schreiben musste, was mir das ermöglicht) für dieses Beispiel vielleicht auch schon eine bemerkenswerte Menge ist.</p>
<p>Spannender ist folgender Umstand: Ich habe den Java-Code aus dem Scala-Code abgeleitet. Wenn ich das Beispiel direkt in Java geschrieben hätte, sähe der Code fast genauso aus. Als ich aber den Scala-Code rückübersetzte, fiel es mir sehr schwer, die ganzen Typ-Definitionen zu schreiben, die abschließende Semikolons zu setzen und Parameter in geschweifte Klammern einzubetten. Auch wenn die Unterstützung für Scala in Eclipse noch einiges Potential hat, kann man a) damit bereits erstaunlich gut arbeiten (wenn man bedenkt, welche interessanten Sprachmöglichkeiten (und damit Schwierigkeiten für eine IDE) Scala bietet).</p>
<p>Meine schönste Zeile Code ist in diesem Beispiel das Erzeugen eines AbstractReadOnlyModel durch den Aufruf von <strong>&#8220;bean model { _.alter }&#8221;</strong>, der in diesem Fall das selbe leistet wie ein PropertyModel, nur dass das Attribut nicht erst per Reflection ermittelt wird.</p>
<p>Ich warte eigentlich darauf, dass jemand Wicket nach Scala portiert, denn das Lift-Framework gefällt mir nicht so gut (da wird wieder Code in die Templates verlagert). Jetzt geht es erst einmal weiter mit Java, auch wenn der Rückweg jetzt schon ein beschwerlicher war.</p>

<div class="sociable">
<div class="sociable_tagline">
<strong>Share and Enjoy:</strong>
</div>
<ul>
	<li class="sociablefirst"><a rel="nofollow"  target="_blank" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fwww.wicket-praxis.de%2Fblog%2F2009%2F06%2F19%2Fwicket-scala%2F&amp;title=Wicket%20und%20Scala%20-%20der%20R%C3%BCckweg%20ist%20anstrengend&amp;bodytext=Ich%20habe%20mal%20ein%20wenig%20mit%20Scala%20rumgespielt%20und%20mit%20den%20Sprachm%C3%B6glichkeiten%2C%20die%20Scala%20bietet%2C%20versucht%20aus%20einem%20Java-lastigen%20Wicket-Beispiel%20etwas%20zu%20machen%2C%20was%20sich%20wie%20Scala%20anf%C3%BChlt.%20Zuerst%20der%20Java-Code%3A%0D%0Apackage%20de.flapdoodle.incubator.sca" title="Digg"><img src="http://www.wicket-praxis.de/blog/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://sphinn.com/index.php?c=post&amp;m=submit&amp;link=http%3A%2F%2Fwww.wicket-praxis.de%2Fblog%2F2009%2F06%2F19%2Fwicket-scala%2F" title="Sphinn"><img src="http://www.wicket-praxis.de/blog/wp-content/plugins/sociable/images/sphinn.png" title="Sphinn" alt="Sphinn" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://delicious.com/post?url=http%3A%2F%2Fwww.wicket-praxis.de%2Fblog%2F2009%2F06%2F19%2Fwicket-scala%2F&amp;title=Wicket%20und%20Scala%20-%20der%20R%C3%BCckweg%20ist%20anstrengend&amp;notes=Ich%20habe%20mal%20ein%20wenig%20mit%20Scala%20rumgespielt%20und%20mit%20den%20Sprachm%C3%B6glichkeiten%2C%20die%20Scala%20bietet%2C%20versucht%20aus%20einem%20Java-lastigen%20Wicket-Beispiel%20etwas%20zu%20machen%2C%20was%20sich%20wie%20Scala%20anf%C3%BChlt.%20Zuerst%20der%20Java-Code%3A%0D%0Apackage%20de.flapdoodle.incubator.sca" title="del.icio.us"><img src="http://www.wicket-praxis.de/blog/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://www.facebook.com/share.php?u=http%3A%2F%2Fwww.wicket-praxis.de%2Fblog%2F2009%2F06%2F19%2Fwicket-scala%2F&amp;t=Wicket%20und%20Scala%20-%20der%20R%C3%BCckweg%20ist%20anstrengend" title="Facebook"><img src="http://www.wicket-praxis.de/blog/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://www.mixx.com/submit?page_url=http%3A%2F%2Fwww.wicket-praxis.de%2Fblog%2F2009%2F06%2F19%2Fwicket-scala%2F&amp;title=Wicket%20und%20Scala%20-%20der%20R%C3%BCckweg%20ist%20anstrengend" title="Mixx"><img src="http://www.wicket-praxis.de/blog/wp-content/plugins/sociable/images/mixx.png" title="Mixx" alt="Mixx" class="sociable-hovers" /></a></li>
	<li class="sociablelast"><a rel="nofollow"  target="_blank" href="http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Fwww.wicket-praxis.de%2Fblog%2F2009%2F06%2F19%2Fwicket-scala%2F&amp;title=Wicket%20und%20Scala%20-%20der%20R%C3%BCckweg%20ist%20anstrengend&amp;annotation=Ich%20habe%20mal%20ein%20wenig%20mit%20Scala%20rumgespielt%20und%20mit%20den%20Sprachm%C3%B6glichkeiten%2C%20die%20Scala%20bietet%2C%20versucht%20aus%20einem%20Java-lastigen%20Wicket-Beispiel%20etwas%20zu%20machen%2C%20was%20sich%20wie%20Scala%20anf%C3%BChlt.%20Zuerst%20der%20Java-Code%3A%0D%0Apackage%20de.flapdoodle.incubator.sca" title="Google Bookmarks"><img src="http://www.wicket-praxis.de/blog/wp-content/plugins/sociable/images/googlebookmark.png" title="Google Bookmarks" alt="Google Bookmarks" class="sociable-hovers" /></a></li>
</ul>
</div>
<h3  class="related_post_title">Andere Beiträge</h3><ul class="related_post"><li>26. August 2009 -- <a href="http://www.wicket-praxis.de/blog/2009/08/26/scala-vs-java/" title="Scala vs Java">Scala vs Java</a></li><li>21. Juli 2009 -- <a href="http://www.wicket-praxis.de/blog/2009/07/21/sails-die-scala-version-von-rails-grail/" title="Sails &#8211; die Scala Version von Rails/Grails">Sails &#8211; die Scala Version von Rails/Grails</a></li><li>7. Juli 2009 -- <a href="http://www.wicket-praxis.de/blog/2009/07/07/scala-kommt/" title="Scala kommt">Scala kommt</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.wicket-praxis.de/blog/2009/06/19/wicket-scala/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Wicket Scala &#8211; der erste Versuch</title>
		<link>http://www.wicket-praxis.de/blog/2009/06/17/wicket-scala-der-erste-versuch/</link>
		<comments>http://www.wicket-praxis.de/blog/2009/06/17/wicket-scala-der-erste-versuch/#comments</comments>
		<pubDate>Wed, 17 Jun 2009 22:20:51 +0000</pubDate>
		<dc:creator>michael</dc:creator>
				<category><![CDATA[Maven]]></category>
		<category><![CDATA[Wicket]]></category>
		<category><![CDATA[scala]]></category>

		<guid isPermaLink="false">http://www.wicket-praxis.de/blog/?p=68</guid>
		<description><![CDATA[So. Das klappt schon einmal. Das Aufsetzen einer Wicket-Anwendung mit Scala funktioniert wie erwartet. Label hinzufügen, einen AjaxLink einbinden und fertig ist der erste Test. Es fällt bereits angenehm auf, dass man die ganzen Typen weglassen kann. Unangenehm ist allerdings, dass das Scala-Plugin für Eclipse keine so ausgefeilte Code-Vervollständigung bietet, was sich in diesem ersten [...]]]></description>
			<content:encoded><![CDATA[<p>So. Das klappt schon einmal. Das Aufsetzen einer Wicket-Anwendung mit Scala funktioniert wie erwartet. Label hinzufügen, einen AjaxLink einbinden und fertig ist der erste Test. Es fällt bereits angenehm auf, dass man die ganzen Typen weglassen kann. Unangenehm ist allerdings, dass das Scala-Plugin für Eclipse keine so ausgefeilte Code-Vervollständigung bietet, was sich in diesem ersten Test während des dann doch komplizierten Imports der passenden Klasse bemerkbar machte. Label<Strg><Space> liefert bei Java zuverlässig den richtigen Typ.</p>

<div class="sociable">
<div class="sociable_tagline">
<strong>Share and Enjoy:</strong>
</div>
<ul>
	<li class="sociablefirst"><a rel="nofollow"  target="_blank" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fwww.wicket-praxis.de%2Fblog%2F2009%2F06%2F17%2Fwicket-scala-der-erste-versuch%2F&amp;title=Wicket%20Scala%20-%20der%20erste%20Versuch&amp;bodytext=So.%20Das%20klappt%20schon%20einmal.%20Das%20Aufsetzen%20einer%20Wicket-Anwendung%20mit%20Scala%20funktioniert%20wie%20erwartet.%20Label%20hinzuf%C3%BCgen%2C%20einen%20AjaxLink%20einbinden%20und%20fertig%20ist%20der%20erste%20Test.%20Es%20f%C3%A4llt%20bereits%20angenehm%20auf%2C%20dass%20man%20die%20ganzen%20Typen%20weglassen%20kann" title="Digg"><img src="http://www.wicket-praxis.de/blog/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://sphinn.com/index.php?c=post&amp;m=submit&amp;link=http%3A%2F%2Fwww.wicket-praxis.de%2Fblog%2F2009%2F06%2F17%2Fwicket-scala-der-erste-versuch%2F" title="Sphinn"><img src="http://www.wicket-praxis.de/blog/wp-content/plugins/sociable/images/sphinn.png" title="Sphinn" alt="Sphinn" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://delicious.com/post?url=http%3A%2F%2Fwww.wicket-praxis.de%2Fblog%2F2009%2F06%2F17%2Fwicket-scala-der-erste-versuch%2F&amp;title=Wicket%20Scala%20-%20der%20erste%20Versuch&amp;notes=So.%20Das%20klappt%20schon%20einmal.%20Das%20Aufsetzen%20einer%20Wicket-Anwendung%20mit%20Scala%20funktioniert%20wie%20erwartet.%20Label%20hinzuf%C3%BCgen%2C%20einen%20AjaxLink%20einbinden%20und%20fertig%20ist%20der%20erste%20Test.%20Es%20f%C3%A4llt%20bereits%20angenehm%20auf%2C%20dass%20man%20die%20ganzen%20Typen%20weglassen%20kann" title="del.icio.us"><img src="http://www.wicket-praxis.de/blog/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://www.facebook.com/share.php?u=http%3A%2F%2Fwww.wicket-praxis.de%2Fblog%2F2009%2F06%2F17%2Fwicket-scala-der-erste-versuch%2F&amp;t=Wicket%20Scala%20-%20der%20erste%20Versuch" title="Facebook"><img src="http://www.wicket-praxis.de/blog/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://www.mixx.com/submit?page_url=http%3A%2F%2Fwww.wicket-praxis.de%2Fblog%2F2009%2F06%2F17%2Fwicket-scala-der-erste-versuch%2F&amp;title=Wicket%20Scala%20-%20der%20erste%20Versuch" title="Mixx"><img src="http://www.wicket-praxis.de/blog/wp-content/plugins/sociable/images/mixx.png" title="Mixx" alt="Mixx" class="sociable-hovers" /></a></li>
	<li class="sociablelast"><a rel="nofollow"  target="_blank" href="http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Fwww.wicket-praxis.de%2Fblog%2F2009%2F06%2F17%2Fwicket-scala-der-erste-versuch%2F&amp;title=Wicket%20Scala%20-%20der%20erste%20Versuch&amp;annotation=So.%20Das%20klappt%20schon%20einmal.%20Das%20Aufsetzen%20einer%20Wicket-Anwendung%20mit%20Scala%20funktioniert%20wie%20erwartet.%20Label%20hinzuf%C3%BCgen%2C%20einen%20AjaxLink%20einbinden%20und%20fertig%20ist%20der%20erste%20Test.%20Es%20f%C3%A4llt%20bereits%20angenehm%20auf%2C%20dass%20man%20die%20ganzen%20Typen%20weglassen%20kann" title="Google Bookmarks"><img src="http://www.wicket-praxis.de/blog/wp-content/plugins/sociable/images/googlebookmark.png" title="Google Bookmarks" alt="Google Bookmarks" class="sociable-hovers" /></a></li>
</ul>
</div>
<h3  class="related_post_title">Andere Beiträge</h3><ul class="related_post"><li>No Related Post</li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.wicket-praxis.de/blog/2009/06/17/wicket-scala-der-erste-versuch/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Wicket und Scala</title>
		<link>http://www.wicket-praxis.de/blog/2009/06/16/wicket-und-scala/</link>
		<comments>http://www.wicket-praxis.de/blog/2009/06/16/wicket-und-scala/#comments</comments>
		<pubDate>Tue, 16 Jun 2009 19:32:27 +0000</pubDate>
		<dc:creator>michael</dc:creator>
				<category><![CDATA[Wicket]]></category>
		<category><![CDATA[scala]]></category>

		<guid isPermaLink="false">http://www.wicket-praxis.de/blog/?p=65</guid>
		<description><![CDATA[Vor kurzem habe ich mir das Buch Programming in Scala gekauft und durchgelesen. Dabei haben mir verschiedene Dinge von Anfang an sehr gut gefallen. Ich glaube, mit Scala kann man sehr elegant entwickeln. Das sollte sich auch z.B. beim Umfang der Quelltexte bemerkbar machen. Aber diese Sätze hätte ich so nicht geschrieben, wenn es nicht [...]]]></description>
			<content:encoded><![CDATA[<p>Vor kurzem habe ich mir das Buch <a href="http://www.amazon.de/gp/product/0981531601?ie=UTF8&#038;tag=mosmannde-21&#038;linkCode=as2&#038;camp=1638&#038;creative=6742&#038;creativeASIN=0981531601">Programming in Scala</a><img style="border:none !important; margin:0px !important;" src="http://www.assoc-amazon.de/e/ir?t=mosmannde-21&#038;l=as2&#038;o=3&#038;a=0981531601" border="0" alt="" width="1" height="1" /> gekauft und durchgelesen. Dabei haben mir verschiedene Dinge von Anfang an sehr gut gefallen. Ich glaube, mit Scala kann man sehr elegant entwickeln. Das sollte sich auch z.B. beim Umfang der Quelltexte bemerkbar machen. Aber diese Sätze hätte ich so nicht geschrieben, wenn es nicht auch ein paar Probleme geben würde.</p>
<p>Die Frage, die mich intensiv beschäftigt, lautet: Bin ich mit Scala so viel schneller, dass ich Java mit einer hervorragenden Entwicklungsumgebung im Rücken, schlagen kann. Ich habe mir Netbeans und Eclipse angesehen. Der Scala-Support ist ähm.. naja. Da ist noch sehr viel Abstand zu den Dingen, die ich in einer IDE vermissen werde. Herausragend ist das das Thema Refactoring und dass was man in Eclipse &#8220;QuickFix&#8221; nennt.</p>
<p>Aber um ein besseres Gefühl dafür zu bekommen, werde ich in den nächsten Wochen wohl mal damit anfangen, den Wicket-Java-Stack auf Scala umzustellen. Ob ich dabei von Spring zu Guice wechsle ist eben so offen, wie ein geschickter Ansatz in Bezug auf Hibernate.</p>

<div class="sociable">
<div class="sociable_tagline">
<strong>Share and Enjoy:</strong>
</div>
<ul>
	<li class="sociablefirst"><a rel="nofollow"  target="_blank" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fwww.wicket-praxis.de%2Fblog%2F2009%2F06%2F16%2Fwicket-und-scala%2F&amp;title=Wicket%20und%20Scala&amp;bodytext=Vor%20kurzem%20habe%20ich%20mir%20das%20Buch%20Programming%20in%20Scala%20gekauft%20und%20durchgelesen.%20Dabei%20haben%20mir%20verschiedene%20Dinge%20von%20Anfang%20an%20sehr%20gut%20gefallen.%20Ich%20glaube%2C%20mit%20Scala%20kann%20man%20sehr%20elegant%20entwickeln.%20Das%20sollte%20sich%20auch%20z.B.%20beim%20Umfang%20der%20Quel" title="Digg"><img src="http://www.wicket-praxis.de/blog/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://sphinn.com/index.php?c=post&amp;m=submit&amp;link=http%3A%2F%2Fwww.wicket-praxis.de%2Fblog%2F2009%2F06%2F16%2Fwicket-und-scala%2F" title="Sphinn"><img src="http://www.wicket-praxis.de/blog/wp-content/plugins/sociable/images/sphinn.png" title="Sphinn" alt="Sphinn" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://delicious.com/post?url=http%3A%2F%2Fwww.wicket-praxis.de%2Fblog%2F2009%2F06%2F16%2Fwicket-und-scala%2F&amp;title=Wicket%20und%20Scala&amp;notes=Vor%20kurzem%20habe%20ich%20mir%20das%20Buch%20Programming%20in%20Scala%20gekauft%20und%20durchgelesen.%20Dabei%20haben%20mir%20verschiedene%20Dinge%20von%20Anfang%20an%20sehr%20gut%20gefallen.%20Ich%20glaube%2C%20mit%20Scala%20kann%20man%20sehr%20elegant%20entwickeln.%20Das%20sollte%20sich%20auch%20z.B.%20beim%20Umfang%20der%20Quel" title="del.icio.us"><img src="http://www.wicket-praxis.de/blog/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://www.facebook.com/share.php?u=http%3A%2F%2Fwww.wicket-praxis.de%2Fblog%2F2009%2F06%2F16%2Fwicket-und-scala%2F&amp;t=Wicket%20und%20Scala" title="Facebook"><img src="http://www.wicket-praxis.de/blog/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a></li>
	<li><a rel="nofollow"  target="_blank" href="http://www.mixx.com/submit?page_url=http%3A%2F%2Fwww.wicket-praxis.de%2Fblog%2F2009%2F06%2F16%2Fwicket-und-scala%2F&amp;title=Wicket%20und%20Scala" title="Mixx"><img src="http://www.wicket-praxis.de/blog/wp-content/plugins/sociable/images/mixx.png" title="Mixx" alt="Mixx" class="sociable-hovers" /></a></li>
	<li class="sociablelast"><a rel="nofollow"  target="_blank" href="http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Fwww.wicket-praxis.de%2Fblog%2F2009%2F06%2F16%2Fwicket-und-scala%2F&amp;title=Wicket%20und%20Scala&amp;annotation=Vor%20kurzem%20habe%20ich%20mir%20das%20Buch%20Programming%20in%20Scala%20gekauft%20und%20durchgelesen.%20Dabei%20haben%20mir%20verschiedene%20Dinge%20von%20Anfang%20an%20sehr%20gut%20gefallen.%20Ich%20glaube%2C%20mit%20Scala%20kann%20man%20sehr%20elegant%20entwickeln.%20Das%20sollte%20sich%20auch%20z.B.%20beim%20Umfang%20der%20Quel" title="Google Bookmarks"><img src="http://www.wicket-praxis.de/blog/wp-content/plugins/sociable/images/googlebookmark.png" title="Google Bookmarks" alt="Google Bookmarks" class="sociable-hovers" /></a></li>
</ul>
</div>
<h3  class="related_post_title">Andere Beiträge</h3><ul class="related_post"><li>No Related Post</li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.wicket-praxis.de/blog/2009/06/16/wicket-und-scala/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
