<?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>Ron&#039;s Techie Blog &#187; maven</title>
	<atom:link href="http://rpstechnologies.net/ron/blog/tag/maven/feed/" rel="self" type="application/rss+xml" />
	<link>http://rpstechnologies.net/ron/blog</link>
	<description>Thoughts on software development</description>
	<lastBuildDate>Wed, 28 Jul 2010 03:55:30 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Scala, Maven and IntelliJ</title>
		<link>http://rpstechnologies.net/ron/blog/2009/10/maven-scala-and-intellij/</link>
		<comments>http://rpstechnologies.net/ron/blog/2009/10/maven-scala-and-intellij/#comments</comments>
		<pubDate>Fri, 09 Oct 2009 03:44:46 +0000</pubDate>
		<dc:creator>ron</dc:creator>
				<category><![CDATA[Scala]]></category>
		<category><![CDATA[maven]]></category>

		<guid isPermaLink="false">http://rpstechnologies.net/ron/blog/2009/10/maven-scala-and-intellij/</guid>
		<description><![CDATA[I&#8217;m evaluating Scala for a project I&#8217;ve recently started.&#160; The project requires processing a large number of data structures.&#160; Between Scala&#8217;s good support for parallelism and functional programming, it seems like a good fit.&#160; I&#8217;ve heard Scala brings many of &#8230; <a href="http://rpstechnologies.net/ron/blog/2009/10/maven-scala-and-intellij/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m evaluating Scala for a project I&#8217;ve recently started.&nbsp; The project requires processing a large number of data structures.&nbsp; Between Scala&#8217;s good support for parallelism and functional programming, it seems like a good fit.&nbsp; I&#8217;ve heard Scala brings many of the development efficiencies and expressiveness of dynamic languages, while being statically typed.&nbsp; It does this through a number of features, including smart type inferencing, great functional programming support, traits, and a bunch of other tricks I&#8217;m in the process of learning.</p>
<p>We&#8217;ve seen several dynamically typed languages gain widespread adoption in the last eight years or so&#8230; Python, Ruby, Groovy, and you can go back to Javascript, Perl, PHP, etc..&nbsp; What&#8217;s the last statically typed language that&#8217;s gained a wide following?&nbsp; C#?&nbsp; I&#8217;ve pretty much come to assume that any new language that was highly expressive, concise, and good for DSLs, would be a dynamic language.&nbsp; Dynamic languages do have their drawbacks..&nbsp; performance is usually not up to par with statically typed languages (although it rarely makes a difference), and the lack of type information at compile type make it very difficult for IDEs to provide features such as autocomplete, symbol lookup, and early error detection.&nbsp; So if languages such as Scala manage to deliver a highly development-efficient language while retaining static typing, that&#8217;s all the better in my eyes.</p>
<p>Here&#8217;s what I did to get a minimal project set up in Maven and IntelliJ IDEA:</p>
<p>Create a shell of a project using a Maven archetype:</p>
<pre class="brush: bash; gutter: false;">
mvn org.apache.maven.plugins:maven-archetype-plugin:1.0-alpha-7:create \
-DarchetypeGroupId=org.scala-tools.archetypes \
-DarchetypeArtifactId=scala-archetype-simple \
-DarchetypeVersion=1.1 \
-DremoteRepositories=http://scala-tools.org/repo-releases \
-DgroupId=com.rps -DartifactId=scalatest
</pre>
<p>This created a project with a single Scala class, test, and a Maven POM containing the minimal dependencies and plugins.</p>
<p>The version of Scala generated by the archetype isn&#8217;t the most current.  Just update the version in the POM:</p>
<pre class="brush: xml; gutter: false;">&amp;amp;amp;lt;scala.version&amp;amp;amp;gt;2.6.1&amp;amp;amp;lt;/scala.version&amp;amp;amp;gt;</pre>
<p>to 2.7.6, or whatever is the version you want.</p>
<p>I then imported the project into IntelliJ IDEA using the excellent IDEA Maven integration.&nbsp; I had to add the Scala nature to the project in IDEA myself, but otherwise, everything is working..&nbsp; Editing, unit tests, debugging, etc.</p>
<p>The IntelliJ IDEA editor support for autocomplete seems to work pretty well, but it doesn&#8217;t seem to do much detection of errors as you&#8217;re editing yet.</p>
]]></content:encoded>
			<wfw:commentRss>http://rpstechnologies.net/ron/blog/2009/10/maven-scala-and-intellij/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
