Wednesday, January 30, 2008

Guide to the Scala Community

One of the most intriguing things about Scala is the people who are working with it. I have been following Scala mailing lists over a year, and was impressed by the helpfulness and positive attitude of the people involved. Very few are the times I've seen personal attacks, if any. Also the people at EPFL who are responsible for creation of Scala have given lots of insight why things are done way they are, or why is feature X not implemented. They have even changed Scala rapidly to support other people's ideas.

This blog entry is mainly meant for a Scala beginner as a guide. I try to familiarize you with different ways of interaction with other's in Scala related things, and to get you know about user written faciliation tools and (upcoming) libraries. Any suggestions how to extend this post are appreciated, of course.

First of all, there are the mailing lists. At the moment there are many of them, and it's hard to tell sometimes to which should one post, because the ambiguity of division. But better to post somewhere than to nowhere. Here are the most important:

The main list is scala, and it's for general Scala related discussion, e.g. standard library, language changes, or implementation issues.

scala-user is mostly for newbie questions, and also for specific technology related discussion, also stories of experience of Scala programming.

scala-debate is mostly for discussion that is specific in kind, in which not many people are interested. It's also excellent place to discuss programming theory, future and ideas of improvement for Scala. The discussion seems to be there the most relaxed of all lists, and lots of 'lambda the ultimate' kind of persons are lurking there.

To see guidelines how to interact with the above mentioned and other mailing lists see this page.

The mailing lists are the best places for you to ask questions, or give suggestions, and of course help others. But if you have found a bug e.g. in the compiler, the lists are rarely the best place to announce them. You should just see if there exists a bug report in Trac, and if not, create one. It won't go unnoticed, and will most definitely be appreciated! But in special circumstances it's ok to discuss them too, or ask whether you have found a bug or not.

Please don't get offended if nobody answers your question; it's likely that the question is hard to answer, or it was sent at an unfortunate time, and was forgotten. It's not crime to ask again...

For those who like to chat, the irc channel #scala @ freenode is the place to go. There's at least couple of active guys who try to give their best in helping you. Again, please be patient with your question.

The blogs about Scala are of course not to be forgotten. Here's the most interesting ones I've come up with:

If anyone knows other good ones, I'd be happy to hear about them.

Now you know some of the people dealing with Scala. Next I'll give you some pointers to faciliation tools:

One of the most useful tools is a simple seach facility for Scala API. Even though it could be so much more, it's already good as is: API Seach tool. And for those who need to show short samples of code to others, e.g. in IRC discussion, a pastebin is very useful, and this one can even colorize the Scala syntax: Scala Pastebin.

Moreover, even though Scala standard library is very important, there's huge amount of useful general tools a programmer needs that can't be found from the standard library. Of course there's also Java API that can be utilized, but it doesn't let use all Scala features smoothly unless wrappers are explicitly written. That's why some clever guys started a community based library, called Scalax. I emphasize it's in its early phase, and encourage you to just wait until it's in better shape, unless you're enthusiastic and want to contribute to it. Moreover, there's another non-related publicly available Open Source code project named Scalaz, which somewhat overlaps with Scalax in its functionality. The design is however different, and you can get the better of both worlds if needed.

Of course I shouldn't forget the best open source real world example Scala has to offer yet: Lift webframework. There's also Scala-tools.org where Scala Open Source projects can be added, as far as I know.

Text editing tools, including IDEs, are numerous. For lightweight editors you can find a Scala configure file in the Scala distribution in [Scala]/share/scala/support/. IDEs are at the moment in development, but some are usable, for example Eclipse plugin which will have its newest, highly improved version out soon (update: it's in public testing now, see wiki. You can also read the progress of Netbeans plugin here.

I hope these descriptions helped you to get a better understanding where to go in the Scala world. By writing articles like this I try to give my humble support to this community, which I so enjoy being part of.

13 comments:

AlBlue said...

I've written a few posts about Scala, particularly aimed at the learners:

http://alblue.blogspot.com/feeds/posts/default/-/scala

Don't know if that's of interest to you or your readers.

Henrik said...

Yeah, those are valuable. I added a link to your page, thanks!

Doug said...

Daniel Spiewak has been writing some postings on Scala for Java Refugees at http://www.codecommit.com/blog/category/scala

Eric said...

Hi Henrik,

You can also add a link to the Scala Buzz forum.

Eric.

PS: Thanks for your post about existential types. It was very helpful.

Henrik said...

Thanks again for your pointers.

Eric: glad you liked it! :)

Jorge Ortiz said...

An excellent compilation of resources! I didn't know the API search existed. That will come in very handy.

Thanks Henrik!

Imam Tashdid ul Alam said...

your link to Eclipse plugin is not working.

a nice intro to the community indeed!

keep it up!

Franco said...

If someone is interested in discussions about scala in Italian, here is the feed on this topic on my blog.

I also wrote an article published on an Italian e-zine.

Bye

Franco Lombardo

The Careful Programmer said...
This comment has been removed by the author.
The Careful Programmer said...
This comment has been removed by the author.
The Careful Programmer said...

I just kicked off my blog with an entry on Scala.

http://thecarefulprogrammer.blogspot.com/

monisa said...

I am planning to use continuation support in the scala language through shift and reset to track the users who are logged in(We are trying to use this instead of using session or cookie to track the users logged in). So please provide us any sample programe to implement the continuation support through shift and reset to track the logged users in scala.

jimmy wilson said...

Great short post!

Aaron Cross Leather Jacket