Getting started with Scala, Part I: Rambling Introduction!

Until recently, my Scala experimentation has mostly made use of only code that I personally had written, and avoided the complexities of IDEs/build scripts/DLL hell/etc. The PushGP implementation I wrote uses no third-party libraries, and is all in one big file with a single “main” method!

I use C# with .NET at work for the last 4 years or so, and I’ve mostly figured out how to code in that environment by now (read: my co-workers, especially Sean, have with long-suffering patience taught me how to do what I need to do and let me copy their keybindings.) Up until recently with Scala I’ve been trying to avoid learning how to really use the IDE and environment and concentrated on the neato things I could do with type systems and DSLs and whatnot.

Unfortunately, once you want to do anything besides write programming language implementations from scratch (thanks, built-in parser combinator library!), you’re going to need to reference other libraries. You’re going to need to learn how to build those libraries, which are frequently distributed as balls of source code. You’re going to need to learn how to make your IDE reference them from your project. And you’re going to need to learn wtf a JAR is. This, in my experience, is quite a pain.

So, I decided to put together a few bits of advice that might be useful to other people who are used to how rad C# + Studio + ReSharper is (or to a lesser extent F# – I’m looking at you, guy who was too lazy to let me color type names and variable names differently!), and are trying to get started with Scala. Read on through the next few posts and find out how!


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: