Tag Archives: Scala

Technical Sessions at the Java Posse Roundup

I'm a month late in posting this, but better late than never.

The Java Posse Roundup was an Open Spaces conference in Crested Butte, CO.  It was held March 4-8, and this was the second (hopefully annual) conference.  The non-technical sessions, about which I already posted, were great, and the technical sessions were great too.  I didn't keep really great notes, because it's hard to take notes and participate at the same time, but here is my re-creation, from my chicken scratch.

The night before the conference started, most of the conference attendees were in town, so we got together at Bruce's house.  We badgered Dick Wall about Android, and he spent some time walking us through his application (WikiNotes), which has been (recently) open-sourced. 

Joe Nuxoll, of the Java Posse, convened a session on Component Based Systems.  Many different systems and libraries were discussed, including Swing, Flex, Boxley, and Thermo.  The consensus was (pretty much) reached that Swing is a library and is not component based.  Flex is component based.  Boxley is an AOL component based application development environment whose lead architect was hired by Adobe to work on Flex.  And Thermo is a design-oriented tool that provides the missing link between FlexBuilder and PhotoShop, allowing designers to build an application that a developer can drop into the production app.

Barry Hawkins convened a session on "Why is Agile Hard?" (note: audio released this week on the Java Posse podcast).  Barry is an agile coach, from Atlanta, and I always enjoy his sessions.  He always seems to come up with some good one-liners, that stick with me.  Like "Agile exposes the dysfunction endemic in software development, whereas other approaches mask it".  He also pointed at some great sources for future "research", including Scott Ambler and Kevlin Henney's podcasts at Parleys.com.  Also Alistair Cockburn's podcast on IT Conversations: Agile Software Development, and of course  Mike Cohn's blog "Succeeding with Agile". A few people who participated in the discussion were looking for answers about how to bring agile into an environment which is hostile to it.  The consensus of the discussion is that until the business respects agile, you're giving up a lot of the benefits, but there are some benefits that can be gained by heading in that direction.  Another reference that came out of the discussion was the book "Waltzing with Bears: Managing Risks on Software Projects".

I think that it was Ophir Radnitz who convened a session on "What does Scala Need".  Many people were interested in Scala at the Roundup (myself included), and this was a lively discussion.   It ranged from how to leverage what we already know (about Java) for Scala to what it will take for the language to be successful.  Toward that end, the group determined that books, community, and tools were important to success.  The books are getting there, with Martin Odersky's Programming in Scala book and others likely on their way.  Community is building both at artima.com and scalax.scalaforge.org. The plugins in development for Eclipse, NetBeans, and IntelliJ's IDEA will help a lot with adoption.  It's hard, these days, to learn a language without code completion. Sounds silly, but I doubt that I'm the only one who has started to depend on that support.  During the session, Carl Quinn and Tor Norbye came to an agreement to work together to help advance the NetBeans Scala plugin.

One nice thing about Open Spaces conferences is the ability to mold them to fit the needs of the actual attendees, at the event.  Last year, there was a discussion about how cool lightning talks are in other environments, and so we added lightning talks to the Roundup.  This year, people wanted to go a bit more in depth on some issues, so we added some very informal workshops.  A few people were worried that the workshops didn't fit the model of Open Spaces, which are interactive, but there really wasn't a conflict.  People who were interested in the workshop format showed up!  Others did not.  Joel Neely and I did a workshop on Scala for Java Programmers, followed by a several hour Scala hacking session the next evening, where we worked on a functional implementation of a problem that we had come across.  You can read more about how far Joel has taken this on Joel's blogChet Haase did a really cool lightning talk where he demonstrated how he was able to implement some of the examples from his Filthy Rich Clients, but in Flex.  We wanted to know MORE so we recruited Chet to do a workshop to do a deeper dive on this.  It was fantastic.  I think that his blog will serve as great reference material for building apps in Flex.

I think that we will see an increase in workshop time at future Roundups, if the attendees want them.  We slid these into the dinner time, after the ski hill closed and before the lightning talks started.  It was time that people were using to socialize anyhow, and it fit well into many schedules.

 Once again, the Java Posse Roundup is over for another year. I had a blast, and learned a lot.  I met some really great people, and also enjoyed seeing some familiar faces.  I'm already looking forward to Roundup '09.

 

The Java Posse Roundup: the view from 9000 feet

I'm here in Crested Butte, for the 2nd Java Posse Roundup (my second time as well).  It's been great, and much different than last year.  That's cool because the theme was "Don't Repeat Yourself".  Here's my overview.  I'll post more detail later.

This is an open spaces conference, which means that the conference participants (about 35 people, including the Posse) are defining the content and shaping the character. This year, we're doing sessions from about 8:30 am until about 12:30 pm, then breaking for lunch/afternoon activities.  The 160" base on Mt Crested Butte is amazing.  Some people have been downhill skiing, others snowboarding.  Groups have gone out snowmobiling.  I've even spirited some people away (Dick Wall and Joel Neely and Mike Levin) to nordic skiing, which is fabulous here.  And, of course, some people spend the time working, collaborating with other attendees, or simply relaxing.  In the evenings, after dinner, we've been getting together for lightning talks (5 mins), which have been video-recorded and will be released on YouTube.  I'll post the link when they are available.  But this year, we found that the collaboration aspect of the conference was really growing, and many of us have wanted to have some "workshop" experiences. So, we've conspired to add in some workshop and hacking sessions in the early evening, either over dinner or just before lightning talks.  Joel and I hung back one afternoon and collaborated on some Scala code, and then presented a session comparing Java and Scala during one of those early evening sessions (before lightning talks).  The flexibility to do this speaks loudly for the benefits of open spaces. At more traditional events, people might still hole up in a hotel room and work on code together, but only they would benefit from that experience.  The other attendees likely wouldn't even know of their experience and certainly wouldn't get to listen to a talk about it.

 I don't think that I have attended a single Java specific talk this year.  They've been scheduled, and others are attending those, but I've been more interested in some other talks, like "Startups: Mistakes not to Make", "Hiring and Retaining Technologists", "Brainstorming New Structures for Organizing Companies that serve Programmers Better", "Component Based Systems", "Organizing Community Based Conferences", and "Why is Agile Hard".  But I'm getting some technical mojo out of workshops and hacking sessions.  We spent some time with Dick Wall on Android and that was quite interesting.  Chet Haase did a lightning talk on "Filthy Rich Clients with Flex", which motivated me to strong arm him into doing a more indepth session on that.  A bunch of us sat around for several hours last night hacking some Scala, and we had a lot of fun.  And, of course, there were more lightning talks last night and they were awesome as well.

 So, I'm off for the final day.  Some people will be leaving early today, but I think that they're missing out by not staying for the evening.  Sessions end at 12:30 or so, but we'll be doing dinner together and an informal gathering this evening as well.  Last year, that evolved into "Check out this cool thing on YouTube", but since we're in the mode of "Don't Repeat Yourself", I bet we'll come up with something different tonight.  And I'm taking a group out x-c skiing this afternoon!  Off to breakfast … at Camp4Coffee.

 

Scala talk at AAJUG on Tuesday, March 26

I will be doing an introduction to Scala at the Ann Arbor Java User Group meeting on Tuesday, March 26.  The AAJUG wordpress site is broken, but hopefully people will know about the talk and attend anyhow.

Here's my abstract:

Scala is a multi paradigm language, offering both object-oriented and functional programming that runs on the Java Virtual Machine. The proliferation of multi-core machines is driving interest in functional languages, as they offer a simplified approach toward concurrency. This talk discusses why you should care about Scala as an emerging language, describes unique features of the language, and uses programming examples to demonstrate its use.

AAJUG meetings are held at Washtenaw Community College, Room BE 260, starting at 6:30 pm.
 

Installing Scala plugin for Eclipse 3.3

I don't recall having a problem installing the Scala plugin on my old (Windows) laptop, but I got a new one and started migrating things over this week.  In order to get the Scala plugin to install, I had to install the Eclipse plugin development environment. I was happy to have found this blog post, which explained what to do to get around the error ("org.eclipse.pde.runtime is missing").  So I guess I must have either had 3.2 installed on that machine (it's been upgraded to 3.3 now), or I had a more complete install. All's well now, whew!
 

So what IS Scala?

The question a lot of people have been asking lately is "What is Scala and why do I care?".  The short and sweet answer is that Scala is an object-oriented/functional hybrid that runs on the Java Virtual Machine (JVM).  This is interesting because it can harness the full power of the JVM, including bringing in Java libraries.

And you care because concurrency is hard to get right.  It's hard in Java and it's hard in C# (I hope you got to see Brian Goetz's talk at CodeMash).  It's hard because writing multithreaded programs with our current programming model is hard.  Deadlock is hard to detect and hard to protect against.  Until now, we've been shielded a bit from the dangers that lurk by single processor machines.  We were writing multithreaded programs that might be interrupted, but often weren't.  But now, you can't really even buy a single processor machine.  It's compelling to take full advantage of the hardware that you have just bought, and all of those little mistakes that you made previously in multithreaded programs may bite you as well.

So we had better figure this thing out.  Erlang's good for concurrency but most people aren't really adept at programming in a purely functional language.  And we have reaped benefits from object-oriented programming, so it's interesting to combine the two in such a way that we can use the functional programming aspects to gain better concurrency without walking away from the productivity gains that we have made with object-oriented programming.

If you still care, check back in.  I'll pump out some Scala blog posts in the upcoming weeks, conveying what I have learned about the language and how I feel about it.  I like it but I'm not jumping to Scala for anything other than personal interest right now.  This is a stage of investigation.  It may well turn out to be a language that I want to use for development, but I'm not committing to it yet.  Even Brian Goetz agrees that Scala and F# may not be "the" answer but may be a stepping stone along the path to more multiparadigm languages [CodeMash quote].  If you are anxious to get started, read the Artima article, "First Steps to Scala" and listen to podcasts with Scala creator Martin Odersky on Software Engineering Radio and on The Java Posse. If you're still hanging on, then definitely buy and read the "Scala Programming Language" book. 

 

Brian Goetz Captures the Essence of CodeMash

The whole idea behind CodeMash is to get people to learn something about languages, platforms, etc. that they don't typically use for programming, to "free their minds".  I was thrilled to hear Brian Goetz express that sentiment in such a positive manner, in his interview with Chris Woodruff on the CodeMash podcast.  Here's the quote:

"If you're able to program effectively in multiple languages, the space of designs that you can imagine is correspondingly greater, and knowing something about another language makes you a better programmer in the language that you are programming with because there are concepts and idioms that you may be able to borrow from.  And so, I think it's a really exciting time because languages are interesting again and it's not a completely dead end activity to learn a new language that may not be popular yet."   He also said that he came to CodeMash because "this conference embraces the diversity in programming languages, unlike other conferences that are focused on Java or focused on .NET".

Earlier in the interview, they had been discussing the interest in new languages such as F# and Scala, and Brian mentioned how thrilled he is that we have exited from the "dark age" where people programmed in only one language and didn't really delve into others.  Brian explained that he doesn't necessarily believe that either F# or Scala is the "solution" to the concurrency problem, but that they may lead to other developments in hybrid languages that ultimately make their way into mainstream programming.  That is definitely a reasonable consideration.
 

Day 1 of the RIA Jam … and RIA at Special User Group meeting tomorrow

Today was the first day for the Rich Internet Application Jam, being held at SRT Solutions' offices.  James Ward (Adobe)  and Bruce Eckel are here, working side-by-side with people who are in various stages of learning Flex and Josh Holmes (Microsoft) is here representing Silverlight and working with people interested in that.  The Jam goes through Wednesday.

Tomorrow night (Tuesday January 15), James and Bruce will present a talk, "Connecting Java with Flex using Open Source Blaze".  The discussion will include how Blaze differs from LiveCycle Data Services and perhaps even a little bit of Scala.  You see, James spent some time this past weekend connecting Flex to Scala.  Interesting.

This is a special joint meeting of the Ann Arbor Computer Society and Ann Arbor Java User Group, and will be held at 206 S. Fifth Ave, Suite 200, Ann Arbor, MI 48104.  The meeting starts at 6 pm, and is free and open to the public.  AACS is providing pizza. 

Matrin Odersky interview on Scala on the Java Posse

I was just loading up my iPod for my Friday night workout and I was hoping for a new Java Posse podcast.  I'm in the habit of listening to podcasts rather than music while working out.  The time goes quickly and I learn something.  The only downside is that it's not good at ALL for taking notes.  But come on, who takes notes with podcasts anyhow?

So what do I see, but a new episode AND it happens to be an interview with Martin Odersky about Scala!  COOL! 

 So, in the final weeks before my Scala talk at CodeMash, I'm thrilled to see a Scala eBook released and to have this interview come out as well.  Good timing for me.

 Anyhow, so off I go to the basement where we have a Smooth Fitness elliptical.  Having something like this at home is essential, IMO, for parents.  Kids are in bed.  Husband is out finishing up the Christmas shopping (good man!).  If not for the elliptical, I would be in front of the TV … or the computer (oops, wasn't I going?).