<?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"
	>

<channel>
	<title>Blogging about Software Development &#187; Scripting</title>
	<atom:link href="http://www.bloggingaboutjava.org/category/java/scripting/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.bloggingaboutjava.org</link>
	<description>Blogging about Software Development</description>
	<pubDate>Tue, 04 Aug 2009 08:02:17 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6.2</generator>
	<language>en</language>
			<item>
		<title>Netbeans scripting IDE #1 ? Grails try-out&#8230;</title>
		<link>http://www.bloggingaboutjava.org/2008/07/netbeans-scripting-ide-1-grails-try-out/</link>
		<comments>http://www.bloggingaboutjava.org/2008/07/netbeans-scripting-ide-1-grails-try-out/#comments</comments>
		<pubDate>Thu, 31 Jul 2008 18:03:18 +0000</pubDate>
		<dc:creator>Arjen van Schie</dc:creator>
		
		<category><![CDATA[Development]]></category>

		<category><![CDATA[Java]]></category>

		<category><![CDATA[Scripting]]></category>

		<guid isPermaLink="false">http://www.bloggingaboutjava.org/?p=362</guid>
		<description><![CDATA[A few weeks ago some co-workers of mine were having a discussion about IDEs and concluded that their Eclipse would be the right choice for all most every project. Sure IntelliJ had some nice features and so has JDeveloper, but Eclipse had plugins to do the same. Did Eclipse had the best of the IDE [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft" style="padding:4px;" src="http://grails.org/images/grails-logo.png" alt="" width="160" align="left" />A few weeks ago some co-workers of mine were having a discussion about IDEs and concluded that their Eclipse would be the right choice for all most every project. Sure IntelliJ had some nice features and so has JDeveloper, but Eclipse had plugins to do the same. Did Eclipse had the best of the IDE world ?</p>
<p><span id="more-362"></span></p>
<p>Then I stumbled upon some blog posts about Netbeans 6.5 and their scripting support for python, php, ruby(rails),groovy(grails). This reminded me about how much better Ruby, Ruby on Rails and JavaFX support was in Netbeans compared to Eclipse. Sure Eclipse has plugins for these platforms, but Netbeans support is better.</p>
<p>Now I started wondering, would Netbeans be better suited for all these scripting languages ? I gave it a try with the Grails framework, since I was interested in having a look at Grails anyway.<br />
The following screenshot shows the app I ended up with. I know nothing fancy, just a few simple entities (movie, director) but still it&#8217;s a result (be it very small <img src='http://www.bloggingaboutjava.org/cms/wordpress2/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> )</p>
<p><img width=650 src="http://www.bloggingaboutjava.org/cms/wordpress2/wp-content/uploads/2008/07/grails_scrn.png"/></p>
<p>After working with the new Netbeans editor I must say I&#8217;m impressed with how easy it was to create this Grails app, without any experience with Grails or Groovy. I can see why people like groovy and Grails, although for a real comparison with RoR I should give it a bigger test-drive some day.</p>
<p>The conclusion of this story is that I&#8217;m impressed with groovy and grails now that I finally took the time for some minimal hands on experience. And Netbeans seems like the default editor for scripting; I now have postive experiences with JavaFX , Ruby and Groovy with Netbeans (so I guess it also will be just fine for Php and Python etc.) </p>
<p><em>note: netbeans 6.5 seems pretty stable for a beta, but the resources usage seems a bit high</em></p>
<p>Some links:<br />
<a href="http://blogs.sun.com/tor/entry/screenshot_of_the_week_31">Blogpost:Netbeans with groovy &#038; python </a><br />
<a href="http://blogs.sun.com/tor/entry/multilingual_netbeans">Blogpost: Netbeans with php, python, scala</a><br />
<a href="http://blogs.sun.com/tor/entry/javascript_type_inference">Blogpost: Netbeans with javascript</a><br />
<a href="http://blogs.sun.com/geertjan/entry/grails_this_time_with_tools">Blogpost:Netbeans and Grails</a><br />
<a href="http://dev2dev.bea.com/pub/a/2006/10/introduction-groovy-grails.html?page=1">Article: introduction to groovy + grails</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.bloggingaboutjava.org/2008/07/netbeans-scripting-ide-1-grails-try-out/feed/</wfw:commentRss>
		</item>
		<item>
		<title>TheServerSide Europe, third day</title>
		<link>http://www.bloggingaboutjava.org/2008/06/theserverside-europe-third-day/</link>
		<comments>http://www.bloggingaboutjava.org/2008/06/theserverside-europe-third-day/#comments</comments>
		<pubDate>Fri, 20 Jun 2008 14:25:19 +0000</pubDate>
		<dc:creator>Jesper de Jong</dc:creator>
		
		<category><![CDATA[Development]]></category>

		<category><![CDATA[Events]]></category>

		<category><![CDATA[J2ee]]></category>

		<category><![CDATA[Java]]></category>

		<category><![CDATA[RIA]]></category>

		<category><![CDATA[Scripting]]></category>

		<category><![CDATA[TheServerSide Symposium Europe]]></category>

		<category><![CDATA[j2se]]></category>

		<guid isPermaLink="false">http://www.bloggingaboutjava.org/?p=332</guid>
		<description><![CDATA[ The third and last day of the conference. The first session I went to this morning was a very interesting one, &#8220;The Busy Java Developer&#8217;s Guide to Scala&#8221; by Ted Neward. He explained the basics of the Scala programming language. Scala is a new and very interesting programming language that combines object oriented and [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft" src="http://www.bloggingaboutjava.org/cms/wordpress2/wp-content/uploads/2008/06/serverside.jpg" alt="" align="left" /> The third and last day of the conference. The first session I went to this morning was a very interesting one, &#8220;The Busy Java Developer&#8217;s Guide to Scala&#8221; by <a href="http://www.tedneward.com">Ted Neward</a>. He explained the basics of the <a href="http://www.scala-lang.org/">Scala programming language</a>. Scala is a new and very interesting programming language that combines object oriented and functional programming. The name is a contraction of &#8220;Scalable Language&#8221;. It runs on the JVM and interoperates very easily with Java - you can use Java classes seamlessly in Scala. I&#8217;ve looked at Scala before, but there was one interesting thing Ted showed which I didn&#8217;t know yet and which would also be an interesting feature to put into Java: You can put import statements not only at the top of a source file, but also inside classes or even inside methods. By doing this, you limit the scope of the import statement.</p>
<p><span id="more-332"></span></p>
<p>For example (note, the &#8220;import BigDecimal._&#8221; is the same as &#8220;import static java.math.BigDecimal.*&#8221; in Java):</p>
<p><code>object HelloWorld {<br />
def main(args : Array[String]) = {<br />
// Import BigDecimal into the scope of this block of code<br />
import java.math.BigDecimal, BigDecimal._</p>
<p>val a = ONE.add(ONE);<br />
println(&#8221;One plus one is: &#8221; + a)<br />
}<br />
}</code></p>
<p><a href="http://lamp.epfl.ch/~odersky/">Martin Odersky</a>, the inventor of Scala, is currently busy writing a book of which a pre-print version is available at <a href="http://www.artima.com/">Artima</a>. At the moment, Scala is not yet ready for prime time (there are still some funky bugs in the compiler and some rough edges in the language itself, and IDE support is not yet complete), but there&#8217;s a good chance that this is going to be an important new programming language in the next two or three years.</p>
<p>The second session I went to today was &#8220;Distributed Computing and MapReduce: Technology Selection, Implementation and Deployment Made Easy&#8221; by Eugene Ciurana. He explained what <a href="http://en.wikipedia.org/wiki/MapReduce">MapReduce</a> is - an algorithm for processing large amounts of data efficiently in two steps (&#8221;map&#8221; and &#8220;reduce&#8221;). The idea came from Google. Eugene explains how it&#8217;s used in the company where he works to analyze log files from webservers, to find out from which countries people are accessing their website. There are a number of implementations of MapReduce available, for example the open source <a href="http://hadoop.apache.org">Hadoop</a> from Apache and commercial products from for example GigaSpaces, GridGain and Terracotta. He also used <a href="http://mule.mulesource.org/display/MULE/Home">Mule</a> (see also this <a href="http://www.theserverside.com/tt/articles/article.tss?l=CaseStudyMule">case study</a> from Eugene).</p>
<p>My third session of today was &#8220;Performance Tuning a Web Shop with Open Source Tools&#8221; by Jeroen Borgers of Xebia. Often, when developers have to solve a performance problem, they make a guess about what&#8217;s wrong with the application and try to fix that, but in reality the only way to know what&#8217;s really wrong is by measuring instead of guessing. Jeroen talked about a project in which he used tools such as <a href="http://jakarta.apache.org/jmeter/index.html">JMeter</a> and <a href="http://jamonapi.sourceforge.net/">JAMon</a> to measure performance, and <a href="http://sourceforge.net/projects/jarep">JARep</a>, a reporting tool for application performance data that he wrote himself.</p>
<p>After lunch I went to &#8220;How to Choose your Java Web Framework&#8221; by Shashank Tiwari. It&#8217;s a question that ofcourse interests a lot of developers, because there are hundreds of frameworks and it&#8217;s not easy to determine which one you should use. Besides discussing the characteristics of the most popular frameworks he also talked about whether you should use a framework at all, because there are also some disadvantages: you&#8217;ll have to deal with a learning curve, for simple applications a framework can unnecessarily complicate things, it can cause infrastructure bloat, and it presents challenges for testing and maintenance. Ofcourse he didn&#8217;t come up with a perfect recipe for choosing a framework. He finished with two conclusions: For simple applications, it doesn&#8217;t matter a lot which framework you choose (or if you use a framework at all), so you shouldn&#8217;t waste much time on it; for larger applications, that are part of a bigger system, it&#8217;s probably best to go for a &#8220;full stack&#8221; solution such as Spring or JBoss Seam, because you&#8217;ll have less integration problems in your project.</p>
<p>The last session I went to was &#8220;Real Google Web Toolkit Applications&#8221; by Jeff Dwyer. <a href="http://code.google.com/webtoolkit/">Google Web Toolkit</a> is a web application framework by Google which allows you to program in Java, as if you&#8217;re writing a Swing desktop application. It compiles your Java code into a web application with JavaScript. He showed how GWT works by looking at a real-world example application which integrates GWT with Spring MVC. GWT is one of those things that&#8217;s on my list of things to look at sometime.</p>
<p>So, it was an interesting conference, I&#8217;ve learned a number of new things and got some new ideas. Thanks to <a href="http://www.javaranch.com">JavaRanch</a> for giving me a free ticket for this conference!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bloggingaboutjava.org/2008/06/theserverside-europe-third-day/feed/</wfw:commentRss>
		</item>
		<item>
		<title>TheServerSide Europe, second day</title>
		<link>http://www.bloggingaboutjava.org/2008/06/theserverside-europe-second-day/</link>
		<comments>http://www.bloggingaboutjava.org/2008/06/theserverside-europe-second-day/#comments</comments>
		<pubDate>Thu, 19 Jun 2008 16:34:47 +0000</pubDate>
		<dc:creator>Jesper de Jong</dc:creator>
		
		<category><![CDATA[Development]]></category>

		<category><![CDATA[Events]]></category>

		<category><![CDATA[J2ee]]></category>

		<category><![CDATA[Java]]></category>

		<category><![CDATA[RIA]]></category>

		<category><![CDATA[Scripting]]></category>

		<category><![CDATA[TheServerSide Symposium Europe]]></category>

		<category><![CDATA[j2se]]></category>

		<guid isPermaLink="false">http://www.bloggingaboutjava.org/?p=331</guid>
		<description><![CDATA[ The first keynote of today was &#8220;Language-Oriented Computing: Shifting Paradigms&#8221; by Neal Ford. It was a good presentation (with nice slides), mainly about domain-specific languages. See also Martin Fowler&#8217;s page on DSLs.
At 9:10 I went to &#8220;Spring 2.5 On the Way to 3.0&#8243; by Jürgen Höller (one of the main committers on the Spring [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft" src="http://www.bloggingaboutjava.org/cms/wordpress2/wp-content/uploads/2008/06/serverside.jpg" alt="" align="left" /> The first keynote of today was &#8220;Language-Oriented Computing: Shifting Paradigms&#8221; by <a href="http://javasymposium.techtarget.com/europe/speakers.html#NFord">Neal Ford</a>. It was a good presentation (with nice slides), mainly about <a href="http://en.wikipedia.org/wiki/Domain-specific_language">domain-specific languages</a>. See also <a href="http://martinfowler.com/bliki/DomainSpecificLanguage.html">Martin Fowler&#8217;s page on DSLs</a>.</p>
<p>At 9:10 I went to &#8220;Spring 2.5 On the Way to 3.0&#8243; by Jürgen Höller (one of the main committers on the Spring framework). He explained some new features in Spring 2.5, and went quite deep into the technical details of the @Autowired and other annotations - which was quite boring. He spent so much time on talking about those details that he had almost no time left to talk about 3.0. Spring 3.0 will be for Java 5 and newer only, and some new features that it will have are an expression language, support for REST and some preparation to support servlets 3.0. I wonder why they&#8217;re going to give it version number 3.0 instead of 2.6, since it didn&#8217;t sound like it would be a lot different from the current Spring 2.5.</p>
<p><span id="more-331"></span></p>
<p>The next session I attended was &#8220;Groovy in the Enterprise: Case Studies&#8221; by Guillaume Laforge. As the title suggested, he showed some examples of where and how Groovy has been used by companies. He discussed a number of use cases, such as: using Groovy as a developer tool (for example for testing or extending Ant or Maven), using Groovy to extend your applications (for example by using the Java scripting API to run Groovy scripts from within your application), using Groovy to create a DSL and using Groovy and Grails for web development. There was some overlap with his presentation about Grails that I attended yesterday.</p>
<p>At 11:40 there was an expert panel session titled &#8220;Languages: The Next Generation&#8221; with Ola Bini, Ted Neward and Guillaume Laforge. They discussed about the programming languages that are currently popular or that get a lot of attention. I found the session a bit disappointing, I had expected more. The panel didn&#8217;t come up with a clear answer or vision about what the next generation of programming languages is going to be. The only conclusion they came to was that Java is here to stay and that other languages such as Groovy, JRuby and Scala will be important additional languages, but they&#8217;re not going to completely replace Java.</p>
<p>After lunch I went to &#8220;Lifecycle APM: Monitor, Diagnose and Prevent Performance Issues&#8221; by Alois Reitbauer (from <a href="http://www.dynatrace.com">dynaTrace</a>). This session was a &#8220;vendor tech brief&#8221;, so there was some marketing talk, about dynaTrace&#8217;s tool that allows you to follow transactions through a whole chain of systems (so that you can monitor and debug performance of the system).</p>
<p>At 13:50 I went to &#8220;JRuby on Rails: Web Development Evolved&#8221; by <a href="http://ola-bini.blogspot.com/">Ola Bini</a>. He spent a lot of time on explaining the Ruby programming language, and had unfortunately not a lot of time left to explain how Rails works on JRuby, which was what I was interested in (I&#8217;ve already used Ruby for some time, so the intro to Ruby was not so interesting for me). Anyway, <a href="http://www.ruby-lang.org">Ruby</a> is an interesting, easy to learn and easy to use programming language, and I&#8217;d recommend any Java developer who wants to learn some other language to have a look at it.</p>
<p>The next session I went to was &#8220;Concurrency &amp; High Performance&#8221; by <a href="http://kirk.blog-city.com/">Kirk Pepperdine</a>. He&#8217;s a well-known guy in the field of high-performance and concurrent programming in Java. Writing software that efficiently uses multi-core processors is not easy, but it&#8217;s becoming more and more important with the current trend of multi-core processors. One of the things Kirk mentioned was the fork/join framework that will be <a href="http://www.infoq.com/news/2007/07/concurrency-java-se-7">added in Java SE 7</a>. One book that I want to read someday soon is <a href="http://www.amazon.co.uk/Java-Concurrency-Practice-Brian-Goetz/dp/0321349601/ref=sr_1_1?ie=UTF8&amp;s=books&amp;qid=1213883530&amp;sr=1-1">Java Concurrency in Practice</a>, I&#8217;ve heard that it&#8217;s a very good book.</p>
<p>At the end of the afternoon there were &#8220;fireside chats&#8221;, which were sessions in which a few people did some short demos and then discussed among each other and with the audience about the things they demonstrated. I went to the fireside chat titled &#8220;Zero Turnaround in Java development&#8221;, which was about developing in Java in such a way that you don&#8217;t have to go through stop / recompile / redeploy / start cycles all the time. Guillaume Laforge showed how you can edit your Groovy web application on the fly. Geert Bevin showed how the <a href="http://rifers.org/">RIFE framework</a> supports the same thing, and Jevgeni Kabanov (from <a href="http://www.zeroturnaround.com/">ZeroTurnaround</a>) showed his (commercial) tool JavaRebel, which is a JVM plugin that allows you to reload classes in a running JVM. They discussed about the use and limitations of their tools and answered questions from the audience.</p>
<p>I arrived here late in the evening last Tuesday and I&#8217;ve hardly been outside the hotel (the conference is held at the hotel), so I haven&#8217;t seen Prague yet. Tonight there&#8217;s a &#8220;meet a stranger&#8221; dinner - you could put your name on one of five lists, and you&#8217;re going out to dinner with the other people on the list. So I&#8217;m going to a restaurant in the center of the city tonight with a few other people to have traditional Czech food.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bloggingaboutjava.org/2008/06/theserverside-europe-second-day/feed/</wfw:commentRss>
		</item>
		<item>
		<title>TheServerSide Europe, first day</title>
		<link>http://www.bloggingaboutjava.org/2008/06/theserverside-europe-first-day/</link>
		<comments>http://www.bloggingaboutjava.org/2008/06/theserverside-europe-first-day/#comments</comments>
		<pubDate>Thu, 19 Jun 2008 06:23:20 +0000</pubDate>
		<dc:creator>Jesper de Jong</dc:creator>
		
		<category><![CDATA[Development]]></category>

		<category><![CDATA[Events]]></category>

		<category><![CDATA[J2ee]]></category>

		<category><![CDATA[Java]]></category>

		<category><![CDATA[RIA]]></category>

		<category><![CDATA[Scripting]]></category>

		<category><![CDATA[TheServerSide Symposium Europe]]></category>

		<category><![CDATA[j2se]]></category>

		<guid isPermaLink="false">http://www.bloggingaboutjava.org/?p=325</guid>
		<description><![CDATA[I am in Prague, at the TheServerSide Java Symposium Europe. It&#8217;s a conference much like other conferences about Java, but not as big (there are about 300 attendees) and with a focus on server-side Java technology (although non-Java stuff such as Adobe Flex and AIR, Groovy and JRuby also get some attention).
The first day started [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft" src="http://www.bloggingaboutjava.org/cms/wordpress2/wp-content/uploads/2008/06/serverside.jpg" alt="" align="left" />I am in Prague, at the <a href="http://javasymposium.techtarget.com/europe/index.html">TheServerSide Java Symposium Europe</a>. It&#8217;s a conference much like other conferences about Java, but not as big (there are about 300 attendees) and with a focus on server-side Java technology (although non-Java stuff such as Adobe Flex and AIR, Groovy and JRuby also get some attention).</p>
<p>The first day started early at 8:00 AM with a keynote by <a href="http://www.javapolis.com/confluence/display/~stephan/Home">Stephan Janssen</a> from <a href="http://www.bejug.org">BeJUG</a> (famous for organising <a href="http://www.javapolis.com">JavaPolis</a>, which has now been renamed to Javoxx). His keynote was about different RIA (Rich Internet Applications) technologies. He gave an overview of the different choices that you have for the client side, server side and data protocols to communicate between the two (HTML, XML, JSON, Hessian, &#8230;). He demonstrated his <a href="http://www.parleys.com">Parleys</a> website, which is an AIR multimedia-application (have a look, it&#8217;s a very interesting website with lots of presentations with video and slides from the past few JavaPolises and other conferences). Besides the AIR version, he also had an implementation of the Parleys website done in <a href="http://code.google.com/webtoolkit/">GWT</a> and also one done in <a href="http://java.sun.com/javafx/">JavaFX</a>. He calls JavaScript &#8220;VoodooScript&#8221; because writing an application in JavaScript and DHTML requires black magic to make it work in all the webbrowsers that people might use.</p>
<p><span id="more-325"></span>After the keynote I went to a session titled &#8220;Integrating JPA and Hibernate with Rich Internet Applications&#8221; by <a href="http://shanky.org/">Shashank Tiwari</a> (from <a href="http://www.saventech.com">Saven Technologies</a>). He talked about using Hibernate (as an implementation of JPA, the Java Persistence API) on the server for a client written with Adobe Flex. There are different ways to do this, you can use LCDS (Lifecycle Data Services, a product by Adobe) or an open source alternative such as <a href="http://www.graniteds.org">GraniteDS</a> or <a href="http://code.google.com/p/dphibernate/">dpHibernate</a>. He gave an idea of how you could use those libraries by showing some examples of configuration files. I found this talk not the most interesting one I&#8217;ve seen on the first day (probably because the topic wasn&#8217;t really relevant to my current job).</p>
<p>The third session I went to was &#8220;Monitoring, Management and Troubleshooting in the Java SE 6 Platform&#8221; by Jean-Francois Denise (from Sun). He first talked about <a href="http://java.sun.com/javase/technologies/core/mntr-mgmt/javamanagement/">JMX</a> and how to write MBeans or MXBeans for your application so that you can monitor and manage your application with a tool like JConsole. Besides JConsole, Java SE 6 comes with a whole list of other useful tools, such as: jinfo, jstat, jstack, jps, jmap and jhat. Sun is working on a new tool, <a href="https://visualvm.dev.java.net/">jvisualvm</a>, which looks like a new and improved version of JConsole, which Jean-Francois demonstrated. This was an interesting session, and it reminded me of JMX and all those tools. I think JMX is a very useful API that people unfortunately often overlook; it&#8217;s not that hard to write MBeans and tools like JConsole can be very useful as a simple memory profiler and for managing running Java processes.</p>
<p>Next was another keynote, &#8220;Getting Ready for the Cloud&#8221;, by Nati Shalom from GigaSpaces. I was afraid that this was going to be not much more than a marketing talk, but it wasn&#8217;t really. Nati talked about cloud computing: instead of having a few big servers, you have a large amount of smaller computers to do the work. This has certain benefits for scalability.</p>
<p>The first session after lunch that I wanted to attend was &#8220;Comparing Dependency Injection Frameworks&#8221;, but a few minutes after the talk was supposed to start, it was announced that the presenter wasn&#8217;t there. So I went to &#8220;SOA Using Service Component Architecture&#8221; instead, by Mike Keith. This session was about SCA and <a href="http://www.osoa.org/">Open SOA</a>. SCA is a set of specifications about components and their interfaces for using in a service oriented architecture. It specifies components that have input and output interfaces, properties to configure them and how they can be wired together. There are also specifications for how SCA is implemented using for example Java, webservices, C++, PHP and other technologies. In Java, you can use annotations to specify a component and its interfaces and properties. The good thing about SCA is that it makes it possible to wire together service components that are implemented in different technologies, because the components will have a standard interface.</p>
<p>The next session I went to was &#8220;Simplifying Java EE Development with Grails&#8221; by Guillaume Laforge. It was a straightforward presentation about Groovy and Grails. Grails is a web framework and a set of tools that enables you to quickly build a (CRUD) web application, just like Rails (for Ruby). I&#8217;ve played with Ruby and Rails myself, but I haven&#8217;t really looked at Groovy and Grails much yet. Looks like an interesting language and framework to have a look at when I have time.</p>
<p>The last session of the first day that I went to was &#8220;Better Enterprise Software with the Spring Portfolio&#8221; by Eberhard Wolff (from <a href="http://www.springsource.com/">SpringSource</a>). He talked about a case study in which he used different Spring technologies, such as Spring Beans, Spring Webservices and Spring Batch. The Spring framework really tries to be a big framework which you can use for almost anything, and its popularity shows its success. While watching this session I thought back about the session about SCA, because there seemed to be some overlap in the way that you declare components with annotations in the way that SCA specifies and in how you declare and configure different kinds of components with annotations in Spring.</p>
<p>And now the first day is already over. I always feel that time goes by very quickly at conferences.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bloggingaboutjava.org/2008/06/theserverside-europe-first-day/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Back to Basics ?</title>
		<link>http://www.bloggingaboutjava.org/2008/05/back-to-basics/</link>
		<comments>http://www.bloggingaboutjava.org/2008/05/back-to-basics/#comments</comments>
		<pubDate>Mon, 26 May 2008 10:43:03 +0000</pubDate>
		<dc:creator>Arjen van Schie</dc:creator>
		
		<category><![CDATA[J2ee]]></category>

		<category><![CDATA[Java]]></category>

		<category><![CDATA[Scripting]]></category>

		<guid isPermaLink="false">http://www.bloggingaboutjava.org/cms/wordpress/?p=153</guid>
		<description><![CDATA[After developing in Ruby on Rails for a while I settled back in ‘Java land’ for a good old Java project. For this project we extended the capabilities of an existing webapplication built on Struts, Spring and iBatis. Sounds like fun doesn’t it ?
Well to be honest those frameworks are pretty solid and stable and [...]]]></description>
			<content:encoded><![CDATA[<p>After developing in Ruby on Rails for a while I settled back in ‘Java land’ for a good old Java project. For this project we extended the capabilities of an existing webapplication built on Struts, Spring and iBatis. Sounds like fun doesn’t it ?</p>
<p>Well to be honest those frameworks are pretty solid and stable and the documentation is easy to find. But on the other hand there are several annoyances when you are used to the Rails way of life.</p>
<p><span id="more-157"></span></p>
<p>What I miss most of all is the short edit-debug cycle. When I was working with Rails I figured this to be a minor improvement but right now I’m missing it the most. Every single small change leads to a project compile, log on to the application server, project (un/re)deploy, clear cache and then refreshing in the browser. The whole procedure takes multiple minutes, while in Rails I corrected the typo and refreshed the browser in a single second.</p>
<p>The second in order of frustrations is the number of XML configs, we got the struts config files, the iBatis config files, the spring config files and web config files. I would suggest drop the configs, I want my Rails conventions back  <img src='http://www.bloggingaboutjava.org/cms/wordpress2/wp-includes/images/smilies/icon_smile.gif' alt=':smile:' class='wp-smiley' /> </p>
<p>The last one I’ll mention is the enormous number of levels of indirection between a page call and page result. In Rails there will be some call-chain from controller to model and all, but it’s pretty clear, most of it is hidden by the framework and the conventions. In this project there are multiple ways along config-files, java-interfaces, businesslayers, model-layers, view layers, facades, multiple strutsactions, i.e. no conventions at all.</p>
<p>Of course it’s not all better in Rails. Read my Rails blog and you’ll notice there was a list of annoyances just as well, of which some don’t apply to good old Java. For instance it’s nice to skip the nil-errors as a result of typo’s in variable names(@eror instead of @error) which were one of my biggest frustrations in Rails. Or the joy of being able to refactor a methodname with one click. And of course the Java debugger kicks ass compared to the Ruby on Rails debugger.</p>
<p>Still it feels like a bit of a step back with all the extra work and coding that needs to be done to realize the same. So for programming web applications of this type I would prefer Ruby on Rails over Java (Spring, Ibatis, Struts). Programming in Ruby on Rails made me much more happy  <img src='http://www.bloggingaboutjava.org/cms/wordpress2/wp-includes/images/smilies/icon_smile.gif' alt=':smile:' class='wp-smiley' /> </p>
<p>On the other hand there are more things to consider (reliability, maintainability etc.) when selected the right tool for the job. Neither Rails nor Java is the silver bullet.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bloggingaboutjava.org/2008/05/back-to-basics/feed/</wfw:commentRss>
		</item>
		<item>
		<title>JRuby on Rails a first attempt</title>
		<link>http://www.bloggingaboutjava.org/2008/02/jruby-on-rails-a-first-attempt/</link>
		<comments>http://www.bloggingaboutjava.org/2008/02/jruby-on-rails-a-first-attempt/#comments</comments>
		<pubDate>Wed, 06 Feb 2008 12:53:05 +0000</pubDate>
		<dc:creator>Arjen van Schie</dc:creator>
		
		<category><![CDATA[Development]]></category>

		<category><![CDATA[Java]]></category>

		<category><![CDATA[Scripting]]></category>

		<guid isPermaLink="false">http://www.bloggingaboutjava.org/cms/wordpress/2008/02/jruby-on-rails-a-first-attempt/</guid>
		<description><![CDATA[Two months ago we started with the development of a prototype application for a client of us. The goal of the prototype was to gather requirements and discuss them with the customer, which were non-technical users.
The prototype had to be constructed within a small time frame, so we chose to implement it with the JRuby [...]]]></description>
			<content:encoded><![CDATA[<p>Two months ago we started with the development of a prototype application for a client of us. The goal of the prototype was to gather requirements and discuss them with the customer, which were non-technical users.</p>
<p>The prototype had to be constructed within a small time frame, so we chose to implement it with the JRuby on Rails. First of all because we wanted to get experience with (J)Ruby<br />
on Rails on a &#8216;real&#8217; client assignment and second of all, because we had a lot of fun and good experiences in the test-drives we had with RoR.</p>
<p>We decided to use a more-or-less agile development strategy. We developed using NetBeans 6 on Windows (later on we switched to Linux) and we debugged with IE and Firefox. Especially Firefox with firebug is essential when using Ajax.</p>
<p>During the process we used the following plugins to speed things up.</p>
<ul>
<li>Visualize_models to generate a picture of the data model to check for errors.</li>
<li>Ar_fixtures for serializing the database to fixtures (and back).</li>
<li>Act_as_authenticated and role_requirement for authorization scaffolding.</li>
<li>ActiveScaffold for scaffolding on the admin interfaces.</li>
<li>Gruff for realizing simple charts</li>
</ul>
<p>This all resulted in a very short development track with nice results.</p>
<p>But of course not everything was perfect. We encountered the following problems throughout the project:</p>
<ul>
<li>Refactoring Ruby is not supported in tools, at least not sufficient.</li>
<li>Hard to see code dependencies between methods/classes.</li>
<li>JRuby on rails is still kind of slow.</li>
<li>Date / Datetime conversion is kind of problematic (as with most languages in my opinion)</li>
<li>Use of instance variables and partials can be tricky and result in hard to find nil-errors</li>
<li>Migrations are not transactional. Errors in migration will leave you somewhere in between migration X and X+1</li>
</ul>
<p>Some of these points will be better when tool support increases, others might be unavoidable .</p>
<p>But to make a long story short, we did finish the prototype within a really short time and we accomplished way more work then we imagined up front, so we could call it a success. I would really recommend (J)Ruby on Rails for our prototype / requirements courses. Because getting the base of an application up and running (the first 80%) goes extremely smooth and fast.<br />
For full applications, I think we should realize that the benefits of Rails can’t be linear extrapolated for the last 20% because this typically requires specific functionality that is not available in the frameworks; like business rules etc.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bloggingaboutjava.org/2008/02/jruby-on-rails-a-first-attempt/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Scripting the Java platform</title>
		<link>http://www.bloggingaboutjava.org/2008/01/scripting-the-java-platform/</link>
		<comments>http://www.bloggingaboutjava.org/2008/01/scripting-the-java-platform/#comments</comments>
		<pubDate>Thu, 03 Jan 2008 10:47:42 +0000</pubDate>
		<dc:creator>Arjen van Schie</dc:creator>
		
		<category><![CDATA[Java]]></category>

		<category><![CDATA[Scripting]]></category>

		<guid isPermaLink="false">http://www.bloggingaboutjava.org/cms/wordpress/2008/01/scripting-the-java-platform/</guid>
		<description><![CDATA[Lately there has been more and more attention for scripting languages, watch the blogosphere and there are postings all over about Groovy, Scala, JavaFX and (J)Ruby. One of the reasons for this attention was the release of the JSR 223: Scripting for the JavaTM Platform. This made it a lot easier to integrate scripting languages [...]]]></description>
			<content:encoded><![CDATA[<p>Lately there has been more and more attention for scripting languages, watch the blogosphere and there are postings all over about Groovy, Scala, JavaFX and (J)Ruby. One of the reasons for this attention was the release of the <a title="//www.jcp.org/en/jsr/detail?id=223" href="http://www.jcp.org/en/jsr/detail?id=223">JSR 223: Scripting for the JavaTM Platform</a>. This made it a lot easier to integrate scripting languages into the Java platform.</p>
<p>Because of all this fuzz about scripting we decided to experiment a little with some scripting languages to position their value for Java software engineering. To investigate this value we gathered information about scripting in general and scripting in relation to Java. Then we developed a little toy-application to see how these scripting languages could be used together in one project.</p>
<p>We chose to implement a (scripted) calculator with Java, JRuby and JavaFX script. JavaFX is used for the generation of a GUI, JRuby for the extension points of the calculator (scriptable buttons) and Java for the primary calculations and glue between the environments/languages.</p>
<p>The conclusions of this little experiment are that JavaFX makes it possible to create fancy GUI’s and the built-in databinding is a real relief compared to the &#8216;event listeners&#8217; in <em>plain java Swing</em>.<br />
One of the disappointments is the lack of proper tooling, Netbeans provides plugins with some WYSIWYG, but is far from optimal. Another disappointment is the fact that JavaFX is not so stable, it appeared more then once that the JavaFX-interpreter created runtime-exceptions related to things like concurrent modification.</p>
<p>Conclusions concerning JRuby; this seems a lot more stable then JavaFX and it fits in pretty easily with the Java environment. JRuby is easy to use and the rubygems and all make it a nice environment to work in.</p>
<p><em>Note: The provided sourcecode is experimental and therefore does not necessarily comply with LogicaCMG rules and guidelines.</em></p>
<p><a href="http://www.bloggingaboutjava.org/cms/wordpress2/wp-content/uploads/2007/12/scriptedcalculator2.zip">Sources</a></p>
<p><a href="http://www.megafileupload.com/en/file/30024/ScriptedCalculator2-zip.html">Sources with libraries<br />
</a><br />
<a href="http://www.bloggingaboutjava.org/cms/wordpress2/wp-content/uploads/2007/12/scriptinginjava_distr.htm">Report</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.bloggingaboutjava.org/2008/01/scripting-the-java-platform/feed/</wfw:commentRss>
		</item>
		<item>
		<title>JavaPolis #2 - Dynamic languages</title>
		<link>http://www.bloggingaboutjava.org/2006/12/javapolis-2-dynamic-languages/</link>
		<comments>http://www.bloggingaboutjava.org/2006/12/javapolis-2-dynamic-languages/#comments</comments>
		<pubDate>Wed, 13 Dec 2006 08:44:33 +0000</pubDate>
		<dc:creator>Martijn Stalenhoef</dc:creator>
		
		<category><![CDATA[Oracle J2EE]]></category>

		<category><![CDATA[Scripting]]></category>

		<guid isPermaLink="false">http://www.bloggingaboutoracle.org/?p=205</guid>
		<description><![CDATA[Feels like I&#8217;m back at my HP/UX terminal, revisiting the bash shell. Funny, the way the command line interface seems to be making a comeback. As far as I know Microsoft Vista is to sport a powerful command line as well.
Why the trip down memory lane? Well, I&#8217;m attending a session on Dynamic languages as [...]]]></description>
			<content:encoded><![CDATA[<p>Feels like I&#8217;m back at my HP/UX terminal, revisiting the bash shell. Funny, the way the command line interface seems to be making a comeback. As far as I know Microsoft Vista is to sport a powerful command line as well.<br />
Why the trip down memory lane? Well, I&#8217;m attending a session on Dynamic languages as proposed by JSR-223. In Java 6 we&#8217;re getting runtime scripting engines added to the JVM and the speakers are strutting their stuff by typing in their scripts on a live command line and showing the power of untyped variables, built-in support for structured datatypes and code constructs known as closures. No compiling, instant execution, instant results. Nice.<br />
So the first part of the session was about JRuby (on Rails). Apart from Ruby running on a JVM, there were no real novelties here. I&#8217;ve been prodding and feeling a bit at this platform .  I&#8217;m somewhat impressed by it&#8217;s features, so this is going to get some more of my attention.<br />
But we&#8217;re here to discuss Java. So the second language that was presented during this session hit a lot closer to home. It&#8217;s called Groovy and it looks like it integrates really nice with Java classes in your project and or libraries (as does JRuby), but the Groovy syntax feels a lot more familiar to me, i.e. Java-like.<br />
I definitely subscribe to these developments. The presence of a full featured scripting language is an enormous asset, whether it be used for writing tests, install or build scripts or as a glue to fetch and transform data from a not-so-consistent source. And installing one of these languages is easy: just make sure your classloader can find the appropriate JAR <img src='http://www.bloggingaboutjava.org/cms/wordpress2/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.bloggingaboutjava.org/2006/12/javapolis-2-dynamic-languages/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Java Scripting</title>
		<link>http://www.bloggingaboutjava.org/2006/12/java-scripting/</link>
		<comments>http://www.bloggingaboutjava.org/2006/12/java-scripting/#comments</comments>
		<pubDate>Tue, 12 Dec 2006 14:31:25 +0000</pubDate>
		<dc:creator>Marco Pas</dc:creator>
		
		<category><![CDATA[Java]]></category>

		<category><![CDATA[Scripting]]></category>

		<guid isPermaLink="false">http://www.bloggingaboutjava.org/cms/wordpress/2006/12/java-scripting/</guid>
		<description><![CDATA[Currently i am attending the JavaPolis 2006. A nice event with interesting topics and nice interesting people to meet. It is located at a nice venue in Antwerp called &#8216;Metropolis&#8216;. If you are in the neighbourhood it is surely worth a visit and grab a movie if you are there. Enough said about the venue [...]]]></description>
			<content:encoded><![CDATA[<p>Currently i am attending the <a title="Link to the JavaPolis website." href="http://www.javapolis.com">JavaPolis 2006</a>. A nice event with interesting topics and nice interesting people to meet. It is located at a nice venue in Antwerp called &#8216;<a title="Link to the Kinopolis website." href="http://www.kinepolis.be">Metropolis</a>&#8216;. If you are in the neighbourhood it is surely worth a visit and grab a movie if you are there. Enough said about the venue lets talk Java.. Yesterday the JRuby guys had a nice talk about the current state of the JRuby platform and possibilities. The current <a title="Link to the the JRuby website." href="http://www.jruby.org">JRuby</a> implementation and Rails framework are more or less available ontop of the JVM. It is interesting because it opens possibities using the Ruby language ontop of a robust JVM environment so we can program Ruby using the possibilities the Ruby language gives us and combine this with the awsome power of Java. I cannot wait to get my hands on JRuby and start creating some applications.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bloggingaboutjava.org/2006/12/java-scripting/feed/</wfw:commentRss>
		</item>
		<item>
		<title>A short bandwagonesque view on python and ruby.</title>
		<link>http://www.bloggingaboutjava.org/2006/09/a-short-bandwagonesque-view-on-python-and-ruby/</link>
		<comments>http://www.bloggingaboutjava.org/2006/09/a-short-bandwagonesque-view-on-python-and-ruby/#comments</comments>
		<pubDate>Mon, 18 Sep 2006 11:52:58 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Java]]></category>

		<category><![CDATA[Scripting]]></category>

		<guid isPermaLink="false">http://www.bloggingaboutjava.org/cms/wordpress/2006/09/a-short-bandwagonesque-view-on-python-and-ruby/</guid>
		<description><![CDATA[[bandwagonesque mode on]
Back in the nineties OO Developers were either hard core c++ hackers or a more modest but effecient python programmers (or maybe japanese lone wolf ruby writers). Nowadays, script language practitioners are called script-kiddies and real developers use Java or C#. Ten years ago programming was all about compiling your human readable files into native machine code, today we [...]]]></description>
			<content:encoded><![CDATA[<p><strong>[</strong><a title="Found a good reason to plug one of my favorite early 90's indierock albums. For enthusiasts, please follow the other bandwagonesque link also ..." href="http://en.wikipedia.org/wiki/Bandwagonesque" target="_blank"><strong>bandwagonesque</strong></a><strong> mode on]</strong></p>
<p>Back in the nineties OO Developers were either hard core c++ hackers or a more modest but effecient python programmers (or maybe japanese lone wolf ruby writers). Nowadays, script language practitioners are called script-kiddies and real developers use Java or C#. Ten years ago programming was all about compiling your human readable files into native machine code, today we talk about managed execution. Meanwhile dynamic langauges have always been subject to native interpreters, which during the years have been optimized in every possible dimension to get them performing. But also this niche of software development is moving. 2006 will be known as the year microsoft shipped <a title="CodePlex, a Microsofts community site" href="http://www.codeplex.com/Wiki/View.aspx?ProjectName=IronPython" target="_blank">IronPython</a> and <a title="Charles Oliver Nutter's blog" href="http://headius.blogspot.com/2006/09/jruby-steps-into-sun.html" target="_blank">sun brought in</a> the <a title="Jruby's home" href="http://jruby.codehaus.org/">JRuby</a> developers (Does that mean after the movement from sourceforge to codehaus, the project will move again to java.net???) Within a few years C# and java developers will become the old fashioned hackers and the rest of the programming population does OO in a more dynamic way. Want to follow the buzz?, see google&#8217;s visualizations <a title="IronPython trend" href="http://www.google.com/trends?q=ironpython&#038;ctab=0&#038;geo=all&#038;date=all" target="_blank">here</a> and <a title="JRuby trend" href="http://www.google.com/trends?q=jruby&#038;ctab=0&#038;geo=all&#038;date=all" target="_blank">here</a> (and probably in the future <a title="Combined trend not yet available ..." href="http://www.google.com/trends?q=jruby+ironpython&#038;ctab=0&#038;geo=all&#038;date=all" target="_blank">here</a> also) </p>
<p><strong>[</strong><a title="Playing Teenage Fanclub is like programming perl, old fashioned but major fun" href="http://www.creation-records.com/teenage.html" target="_blank"><strong>bandwagonesque</strong></a><strong> mode off]</strong></p>
<p>By the way, do not forget to attend <a title="JRuby on rails" href="http://www.javapolis.com/confluence/display/JP06/JRuby+on+Rails" target="_blank">the JRuby on Rails</a> Javapolis session this year. And another by the way, and that is why I used the bandwagonesque tags, non-mainstream languages and the concept of managed execution is not something new. <a title="Boo" href="http://boo.codehaus.org/">Boo</a>  and <a title="Groovy" href="http://groovy.codehaus.org/">Groovy</a> are just two codehaus examples but I think <a title="A typical lanmguage that makes you lalalalala while programming" href="http://scala.epfl.ch/index.html" target="_blank">Scala</a> and <a title="Twice as nice article on IBM developer works" href="http://www-128.ibm.com/developerworks/library/j-alj10064.html">Nice</a> are also worth mentoning. And as a final by the way, this <a title="Scripting languages are the main achievement of the open source movement ......" href="http://www.softpanorama.org/Articles/a_slightly_skeptical_view_on_scripting_languages.shtml">slightly sceptical view on scripting languages</a> just made me realise I started my career ten years ago with the <a title="Tickle me Elmo!" href="http://tcl.activestate.com/">most underappreciated scripting language</a> in existence <img src='http://www.bloggingaboutjava.org/cms/wordpress2/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.bloggingaboutjava.org/2006/09/a-short-bandwagonesque-view-on-python-and-ruby/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
