<?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>scala Archives - ClickedyClick</title>
	<atom:link href="https://gergely.imreh.net/blog/tag/scala/feed/" rel="self" type="application/rss+xml" />
	<link>https://gergely.imreh.net/blog/tag/scala/</link>
	<description>Life in real, complex and digital.</description>
	<lastBuildDate>Tue, 05 Jul 2011 12:10:49 +0000</lastBuildDate>
	<language>en-GB</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	
	<item>
		<title>Language of the Month: Scala, part 3</title>
		<link>https://gergely.imreh.net/blog/2011/06/language-of-the-month-scala-part-3/</link>
					<comments>https://gergely.imreh.net/blog/2011/06/language-of-the-month-scala-part-3/#comments</comments>
		
		<dc:creator><![CDATA[Gergely Imreh]]></dc:creator>
		<pubDate>Wed, 01 Jun 2011 07:25:31 +0000</pubDate>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[lotm]]></category>
		<category><![CDATA[scala]]></category>
		<guid isPermaLink="false">http://gergely.imreh.net/blog/?p=341</guid>

					<description><![CDATA[<p>This is a post I should have written yesterday, actually, since it is already June, ready for the next &#8220;Language of the Month&#8220;. Still, let&#8217;s finish off this May Edition. Taking score First, I should have spent more time on practicing Scala, as I haven&#8217;t actually finished anything in the end. It is probably an [&#8230;]</p>
<p>The post <a href="https://gergely.imreh.net/blog/2011/06/language-of-the-month-scala-part-3/">Language of the Month: Scala, part 3</a> appeared first on <a href="https://gergely.imreh.net/blog">ClickedyClick</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>This is a post I should have written yesterday, actually, since it is already June, ready for the next &#8220;<a title="Language of the Month: Scala" href="http://gergely.imreh.net/blog/2011/05/language-of-the-month-scala/" target="_blank">Language of the Month</a>&#8220;. Still, let&#8217;s finish off this May Edition.</p>
<h2>Taking score</h2>
<p>First, I should have spent more time on practicing Scala, as I haven&#8217;t actually finished anything in the end. It is probably an excuse, but after using <a title="Python website" href="http://www.python.org/" target="_blank">Python</a> for such a long time, getting used to a compiled language with its own weird path-, naming- and import conventions, was just a little bit too much. Mostly I was reading the <a title="Programming Scala book homepage" href="http://pragprog.com/titles/vsscala/programming-scala" target="_blank">Pragmatic Bookshelf: Programming Scala</a>, practicing the examples within. That book uses Scala 2.7.x and the current version is <a title="Scala 2.9.0.1 release notes" href="http://www.scala-lang.org/node/9708" target="_blank">2.9.0.1</a>, so there are a few things that work differently and I ended up having strange error messages with little to no clue how to fix them (mostly imports, and some method signatures must have changed as well). So it was a limited but exciting success.</p>
<figure id="attachment_348" aria-describedby="caption-attachment-348" style="width: 300px" class="wp-caption aligncenter"><a href="http://gergely.imreh.net/blog/wp-content/uploads/2011/06/Scala_screenshot_small.png"><img fetchpriority="high" decoding="async" class="size-medium wp-image-348" title="Scala screenshot" src="http://gergely.imreh.net/blog/wp-content/uploads/2011/06/Scala_screenshot_small-300x214.png" alt="Scala screenshot" width="300" height="214" /></a><figcaption id="caption-attachment-348" class="wp-caption-text">Using them example code</figcaption></figure>
<p>All in all, I liked the language even if I don&#8217;t have a clear usage case for it in my mind (just yet). Some bullet-points of my experience:</p>
<h3>Good</h3>
<ul>
<li>Different way of thinking about &#8220;batch&#8221; operations (i.e. foldLeft)</li>
<li>Once I figure out the Actors that well that I can write related code without referring to the tutorials, that&#8217;s going to be a very powerful tool</li>
<li>Pattern matching, pattern matching everything. This is one thing that blown my mind in the little Haskell I checked so far, and missing from Python a lot.</li>
<li>Flexibility with class definitions, they can handle so many different situations in a very logical and powerful way</li>
</ul>
<h3>Bad</h3>
<ul>
<li>Length of compilation and program start. Will have to get used to it, though I read some hints that this can be improved.</li>
</ul>
<h3>Ugly</h3>
<ul>
<li>Pretty frequent need of using things directly from Java, so one is never quite independent</li>
<li>Special methods that have reserved name for certain functionality (act, apply, &#8230;) that are non-obvious, and not easily distinguished from the arbitrarily defined methods.</li>
</ul>
<h2>Future</h2>
<p>Definitely will come back to it and learn it in more detail. It looks like a fine language to do parts of larger projects in. In the meantime I will update the link collection in the <a title="Language of the month: Scala, part 2" href="http://gergely.imreh.net/blog/2011/05/language-of-the-month-scala-part-2/" target="_blank">previous post</a> with new links that I find. I certainly notice more and more <a title="Scala on Hacker News" href="http://www.google.com.tw/search?&amp;q=scala+site%3Anews.ycombinator.net" target="_blank">Scala posts on Hacker News</a> these days.</p>
<p>The post <a href="https://gergely.imreh.net/blog/2011/06/language-of-the-month-scala-part-3/">Language of the Month: Scala, part 3</a> appeared first on <a href="https://gergely.imreh.net/blog">ClickedyClick</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://gergely.imreh.net/blog/2011/06/language-of-the-month-scala-part-3/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<item>
		<title>Language of the month: Scala, part 2</title>
		<link>https://gergely.imreh.net/blog/2011/05/language-of-the-month-scala-part-2/</link>
					<comments>https://gergely.imreh.net/blog/2011/05/language-of-the-month-scala-part-2/#respond</comments>
		
		<dc:creator><![CDATA[Gergely Imreh]]></dc:creator>
		<pubDate>Fri, 20 May 2011 14:52:04 +0000</pubDate>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[lotm]]></category>
		<category><![CDATA[scala]]></category>
		<guid isPermaLink="false">http://gergely.imreh.net/blog/?p=324</guid>

					<description><![CDATA[<p>For the last 3 weeks or so I was checking out Scala, and will do for a little while more, so just want to do a little catch up where things are at the moment. Start I tried to find a couple of starting points to start to know about Scala. First thought video tutorials [&#8230;]</p>
<p>The post <a href="https://gergely.imreh.net/blog/2011/05/language-of-the-month-scala-part-2/">Language of the month: Scala, part 2</a> appeared first on <a href="https://gergely.imreh.net/blog">ClickedyClick</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>For the last 3 weeks or so I was <a title="Language of the Month: Scala" href="http://gergely.imreh.net/blog/2011/05/language-of-the-month-scala/" target="_blank">checking out Scala</a>, and will do for a little while more, so just want to do a little catch up where things are at the moment.</p>
<h3>Start</h3>
<p>I tried to find a couple of starting points to start to know about Scala. First thought video tutorials or talks would be useful, so been around checking on YouTube. It seems the mainly referenced intro is <a title="Scala intro on Youtube" href="http://www.youtube.com/watch?v=zqFryHC018k" target="_blank">Scala: a scalable language</a>. Well, it told me a lot about how Scala compares to other languages and how is it better than those, but not much to start learning it. Though the talk made it sound like it is one of the best and most modern languages out there, taking the most useful ideas from loads of other languages.</p>
<p>Had a copy of the <a title="Pragmatic programmer book homepage" href="http://pragprog.com/titles/vsscala/programming-scala" target="_blank">Pragmatic programmer: Programming Scala</a>, and just finished going through it. By that I mean that skimmed all the chapters and did try some of the code samples that looked interesting or strange. Not bad, but from the book I just have a very limited answer to the question of: &#8220;but what is it really great for?&#8221; Concurrency, sure, but that is probably not all.</p>
<p>I don&#8217;t know a language before I code enough in it, but before I know it I don&#8217;t have to much inspiration what to code. In this case, programming puzzle sites come very handy, though not all of them support Scala. I went to <a title="Coderloop puzzles" href="http://www.coderloop.com/puzzles" target="_blank">Coderloop</a> because they do and I can submit my solution for performance testing, or could use <a title="Project Euler home" href="http://projecteuler.net/" target="_blank">Project Euler</a> because they are language agnostic (one sends the results only).</p>
<h3>Experience</h3>
<p>Since Scala is built upon the Java Virtual Machine and supports pretty much all of Java, it feels a little Frankenstein language: every now and then, even for some things that should be quite commonly used, things have to be programmed in Java. Lots of language features are cool, though, even if most of it feels just syntactic sugar. In a way, maybe the whole language is just that? It&#8217;s not bad, makes things very concise and powerful, but always feels there&#8217;s something more in the background.</p>
<p>Actors and concurrency are pretty cool, though. In the talks I&#8217;ve seen people compared them to Erlang, just even more powerful. This is something more to play around with, would like to make something interesting, scalable and fault-tolerant &#8211; those are the fun stuff aren&#8217;t they? (But this also makes me want to try Erlang soon so I can compare).</p>
<p>Since I was doing mostly Python lately, it feels a bit weird to use a compiled language. For simple programs, it takes quite a long time to do that compilation, enough to wind me up a little when I was troubleshooting. That said, maybe I&#8217;m doing a little bit too much &#8220;<a title="Programming by Accident on Wikipedia" href="http://en.wikipedia.org/wiki/Programming_by_permutation" target="_blank">programming by accident</a>&#8220;, so I deserve it? Also, starting a Scala program takes a while as well, though once it is up and running, it&#8217;s pretty fast.</p>
<p>At this point, I&#8217;m not totally sure yet what project to make until the end of the month. I need more programming itches to scratch. The only ideas I came up so far are self-playing games with actors. Or some server/provider. Well, just keep brainstorming, something better has to come up. Maybe when I dive a little bit more into it, since at the moment I cannot really &#8220;think Scala&#8221; yet.</p>
<p>There&#8217;s also a web framework for it, called <a title="Lift, the Scala web framework" href="http://liftweb.net/">Lift</a>, which is probably not surprising. The close connection wit Java (and hence with so many of enterprise software) and event based, fault tolerant concurrency is just too juicy. Not sure if anyone&#8217;s hosing it, tough (got to check out), either way I can just try it on my local network. I wonder how does it compare to <a title="Building (for) fun" href="http://gergely.imreh.net/blog/2011/04/building-for-fun/">Django</a>, since that&#8217;s what I have a bit of experience with.</p>
<h3>Links</h3>
<h4>Information</h4>
<ul>
<li><a title="Scala API" href="http://www.scala-lang.org/api/current/index.html" target="_blank">Scala language reference</a></li>
<li><a title="Programming in Scala" href="http://www.artima.com/pins1ed/" target="_blank">Programming in Scala</a></li>
<li><a title="Programming Scala" href="http://programming-scala.labs.oreilly.com/" target="_blank">Programming Scala</a></li>
<li><a title="Scala by Example PDF" href="http://www.scala-lang.org/docu/files/ScalaByExample.pdf" target="_blank">Scala by Example</a> (PDF)</li>
<li><a title="Hidden Features of Scala on StackOverflow" href="http://stackoverflow.com/questions/1025181/hidden-features-of-scala" target="_blank">Hidden features of Scala</a></li>
</ul>
<h4>Example sources</h4>
<ul>
<li><a title="Scala on Github" href="https://github.com/scala/scala" target="_blank">Scala source repo, now on Github</a></li>
<li><a title="Google Code" href="http://code.google.com/hosting/search?q=label:scala" target="_blank">Google Code &#8211; Scala tag</a></li>
<li><a title="Github language search for Scala" href="https://github.com/languages/Scala" target="_blank">Github &#8211; Scala tag</a></li>
<li><a title="SourceForge" href="http://sourceforge.net/search/index.php?words=scala" target="_blank">SourceForge &#8211; Scala Tag</a></li>
<li><a title="GSoC" href="http://www.scala-lang.org/gsoc2011" target="_blank">Google Summer of Code Scala projects</a></li>
</ul>
<h4>Companies using Scala</h4>
<ul>
<li><a title="Typesafe homepage" href="http://typesafe.com/" target="_blank">Typesafe</a>, a new company launched by Scala&#8217;s creator</li>
<li>Linkedin <a title="Linkedin: Scala to Scale" href="http://www.youtube.com/watch?v=J85F2C13r4Q" target="_blank">part 1</a>, <a title="Linkedin, part 2" href="http://www.youtube.com/watch?v=9Hen_0HS5Ic" target="_blank">part 2</a></li>
<li><a title="Foursquare moves to Scala, announcement" href="http://www.scala-lang.org/node/5130" target="_blank">Foursquare</a></li>
</ul>
<h4>Others writing about Scala</h4>
<ul>
<li><a title="Computing Thoughts Blog post" href="http://www.artima.com/weblogs/viewpost.jsp?thread=328540" target="_blank">The Static Language that Feels Dynamic</a></li>
</ul>
<p><em>(Last updated: 2011 June 23)</em></p>
<p>The post <a href="https://gergely.imreh.net/blog/2011/05/language-of-the-month-scala-part-2/">Language of the month: Scala, part 2</a> appeared first on <a href="https://gergely.imreh.net/blog">ClickedyClick</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://gergely.imreh.net/blog/2011/05/language-of-the-month-scala-part-2/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Language of the Month: Scala</title>
		<link>https://gergely.imreh.net/blog/2011/05/language-of-the-month-scala/</link>
					<comments>https://gergely.imreh.net/blog/2011/05/language-of-the-month-scala/#comments</comments>
		
		<dc:creator><![CDATA[Gergely Imreh]]></dc:creator>
		<pubDate>Mon, 02 May 2011 13:54:40 +0000</pubDate>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[lotm]]></category>
		<category><![CDATA[scala]]></category>
		<guid isPermaLink="false">http://gergely.imreh.net/blog/?p=272</guid>

					<description><![CDATA[<p>I was thinking what what to write about, but then I realized that is doing this whole blogging thing completely the wrong way. I should be thinking what to do and interesting things to write about will come out of that. It always does. I was watching the Programming Paradigms lecture series from Stanford. I [&#8230;]</p>
<p>The post <a href="https://gergely.imreh.net/blog/2011/05/language-of-the-month-scala/">Language of the Month: Scala</a> appeared first on <a href="https://gergely.imreh.net/blog">ClickedyClick</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>I was thinking what what to write about, but then I realized that is doing this whole blogging thing completely the wrong way. I should be thinking what to do and interesting things to write about will come out of that. It always does.</p>
<p>I was watching the <a title="Programming paradigms course home page" href="http://see.stanford.edu/see/courseinfo.aspx?coll=2d712634-2bf1-4b55-9a3a-ca9d470755ee" target="_blank">Programming Paradigms</a> lecture series from Stanford. I quite enjoy it, mostly because Jerry Cain seems to be a good lecturer. A <a title="Jerry Cain's RateMyProfessors profile" href="http://www.ratemyprofessors.com/ShowRatings.jsp?tid=13890" target="_blank">quick check</a> confirms that others feel that too. I haven&#8217;t finished it yet (24 lectures in to the 27 long series, each ~50 minutes), he talked a lot about C, then Scheme, now about Python. He also mentioned a couple of other languages he suggest for the students to try. That got me thinking: I love languages (human and programming as well) and always looking out to learn more things. Why not do some more exploration in this area &#8211; trying out languages that are quite different from each other and see what can I take home from each. I did have similar idea last year, &#8220;Language of the Week&#8221;, but one week is just too little to get to any practical depth in a language and that idea died. Now, I&#8217;m hoping to resurrect it in the form of &#8220;Language of the Month&#8221;. It is conveniently the beginning of a month so I can just start right now. :) Also, let&#8217;s make it round &#8211; a 12 language series, one for each month until the same time next year. That should be a challenge. So I made a 12 item list for planning:</p>
<ul>
<li><a title="Haskell on Wikipedia" href="http://en.wikipedia.org/wiki/Haskell_(programming_language)" target="_blank">Haskell</a></li>
<li><a title="Erlang on Wikipedia" href="http://en.wikipedia.org/wiki/Erlang_(programming_language)" target="_blank">Erlang</a></li>
<li><a title="Lua on Wikipedia" href="http://en.wikipedia.org/wiki/Lua_(programming_language)" target="_blank">Lua</a></li>
<li><a title="Smalltalk on Wikipedia" href="http://en.wikipedia.org/wiki/Smalltalk" target="_blank">Smalltalk</a></li>
<li><a title="Prolog on Wikipedia" href="http://en.wikipedia.org/wiki/Prolog" target="_blank">Prolog</a></li>
<li><a title="Lisp on Wikipedia" href="http://en.wikipedia.org/wiki/Common_Lisp" target="_blank">Lisp</a> / <a title="Scheme on Wikipedia" href="http://en.wikipedia.org/wiki/Scheme_(programming_language)" target="_blank">Scheme</a></li>
<li><a title="OCaml on Wikipedia" href="http://en.wikipedia.org/wiki/Objective_Caml" target="_blank">OCaml</a></li>
<li><a title="Forth on Wikipedia" href="http://en.wikipedia.org/wiki/Forth_(programming_language)" target="_blank">Forth</a></li>
<li><a title="Go on Wikipedia" href="http://en.wikipedia.org/wiki/Go_(programming_language)" target="_blank">Go</a></li>
<li><a title="Scala on Wikipedia" href="http://en.wikipedia.org/wiki/Scala_(programming_language)" target="_blank">Scala</a></li>
<li>?</li>
<li>?</li>
</ul>
<p>Many of these I was planning to check out for a long time and now I have proper motivation. Some of them I got intrigued about while I was checking this <a title="Wikipedia list of programming languages" href="http://en.wikipedia.org/wiki/List_of_programming_languages" target="_blank">humbling list</a>. Note, that &#8220;?&#8221; are not weird languages, but I keep things open to add more as I get more experience with this (you too can give me recommendation in the comments!:). Also note the absence of some languages, like C and Ruby: those I <em>really</em> should know more, that&#8217;s why I won&#8217;t do them here, they have enough intrinsic motivation, here I want to try somewhat more off-the-path things.</p>
<p><strong>The simple rule for this series is</strong>: every month choose one new language and by the end of the month implement something <em>practical</em> in that language. Something that scratches a real life programming itch. Other than this, all bets are off. See what I can learn.</p>
<p>Now the hard part: which one to start with, since the above list is rather a &#8220;set&#8221; &#8211; ordering is not included. I did roll a dice, but didn&#8217;t like the result (like most rolls of dice:), so let&#8217;s just choose one: <strong>The Language of the Month for May is Scala</strong> (because I know absolutely nothing about that, unlike some of the others).</p>
<p>Let the coding begin&#8230;</p>
<figure id="attachment_271" aria-describedby="caption-attachment-271" style="width: 474px" class="wp-caption aligncenter"><a href="http://gergely.imreh.net/blog/wp-content/uploads/2011/05/blank.png"><img decoding="async" class="size-full wp-image-271 " title="Fill in the blank" src="http://gergely.imreh.net/blog/wp-content/uploads/2011/05/blank.png" alt="Emacs editor screen, ready to accept source code input" width="474" height="325" /></a><figcaption id="caption-attachment-271" class="wp-caption-text">What will this space contain?</figcaption></figure>
<p>The post <a href="https://gergely.imreh.net/blog/2011/05/language-of-the-month-scala/">Language of the Month: Scala</a> appeared first on <a href="https://gergely.imreh.net/blog">ClickedyClick</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://gergely.imreh.net/blog/2011/05/language-of-the-month-scala/feed/</wfw:commentRss>
			<slash:comments>3</slash:comments>
		
		
			</item>
	</channel>
</rss>

<!--
Performance optimized by W3 Total Cache. Learn more: https://www.boldgrid.com/w3-total-cache/?utm_source=w3tc&utm_medium=footer_comment&utm_campaign=free_plugin

Object Caching 5/54 objects using APC
Page Caching using Disk: Enhanced 
Lazy Loading (feed)

Served from: gergely.imreh.net @ 2026-07-04 20:58:04 by W3 Total Cache
-->