Tag Archives: F#

Don’t Miss 1DevDay Detroit

If you’re looking for a conference to attend, don’t miss the top-notch, largest, longest running conference dedicated to programming in Michigan, 1DevDay-Detroit. The conference will be held on Saturday, November 17. For the fourth year in a row, David McKinnon and his team of volunteers has put together a great lineup, featuring Living Social’s Chad Fowler as keynote speaker. This year, 1DevDay has moved to Cobo Center, to be able to accommodate more attendees.

SRT Solutions is proud to be a Bronze Sponsor of the event, and we are also happy to be among the speakers. From SRT:

Bill Wagner — Your Asynchronous Future

Chris Marinos — The State of F#: Why You Should (or Shouldn’t) Care

Dianne Marsh — Scala: Objects and Methods and Functions, Oh My!

View the details for these and all of the other sessions on the 1DevDay website.

If you would like to register, go to the eventbrite page.

Hope to see you there!

My schedule for CodeMash 2010

Or, more accurately, CodeMash

This is the week that software development in many locations in the midwest takes a hiatus so that its developers can beef up on new skills and ultimately provide more benefit to their companies and customers. In its 4th year, CodeMash this year will attract nearly 700 developers to the Kalahari Resort and Indoor Waterpark in Sandusky, OH.  The conference kicks off with the "precompiler" sessions (fast-paced interactive tutorials) on Wednesday, and a panel discussion featuring the Java Posse on Wednesday night.  Thursday morning, the conference will be in full gear, with morning sessions by industry luminaries such as Joe O'Brien, Jesse Liberty, Jim Weaver, Jim Weirich, James Ward, Ken Sipe, and Jim Wooley.    Fortunately, due to "Best of CodeMash" repeat sessions, I can pass up the "Why is Ruby Different" talk during that session in hopes of catching it later and then only have to decide between the JavaFX talk by Jim Weaver and the Flex talk by James Ward.  The next session of the day pits the panel discussion "Lessons from the Rails Rumble" against the venerable Andres Almiray in "The Case for Griffon", not to mention Barry Hawkins' "User Stories: Closing the Agile Loop"  Hard choices: that's what CodeMash is all about.

Once I survive the struggle from my choices from the morning, and after a lunch keynote by Hank Janssen from Microsoft, I'll have to choose between Joe Nuxoll's "Photoshop for Engineers: Going from PSD to HTML" and Bill Venners' "GetHigher with ScalaTest". Then it's a hard choice between Leon Gershing's "Introduction to Cucumber",  Michael Slade's "Techniques for Programming Parallel Solutions", Catherine Devlin's "reStructuredText: Plain Text Gets Superpowers", and Barry Hawkins' "Domain Driven Design".  But I'll almost certainly choose Dick Wall's "Funky Java, Objective Scala", as I've been looking forward to this talk and its domain examples in bioinformatics.  Fortunately, Joe O'Brien's "Refactoring theProgrammer" has a repeat session!  And then there's one more session before dinner, where I'll have to choose between a more advanced Cucumber talk, Chris Adamson's "How do you do that on the iPhone", Andres Alimary's "Testing Java in the Fast Lane", and Carey Payette's "Enterprise Development with Prism".  I almost missed that Nick Sieger is talking about "Five Ways to Cure the Java Blues with JRuby" in this timeslot.  Again the "Best of CodeMash" repeat sessions come to the rescue and I can choose to see Joe Nuxoll's "Enginering vs. Design" talk later.

Thursday night is always fun at CodeMash.  This year, we're adding a concert (Enter the Haggis) to the cocktail party and jam session.  Every other year, I've headed out to the water park for a while on Thursday night.  Not sure I'll have time to do that this year!

Friday morning, there's no keynote (after that late night, probably a good thing!).  We'll start the day with Chris Adamson's "Oh Crap! I Forgot or Never Learned C!", "Going Dynamic with C#" by Bill Wagner, "Being an Evil Genius with F# and .NET", and "Software Design and Testability" with Jeremy Miller.  I really enjoy Chris Smith's banter, and so I'll probably head to the F# talk.  The next slot has several sessions that I'm really interested in: "RESTful Interfaces to Third Party websites with Python", "Come for the Phone Stay for the Mac" (by author Daniel Steinberg) and James Ward's "Agile Toolchain for Flex".

I'm REALLY REALLY excited about Friday's lunchtime keynote with Andy Hunt.  I heard Andy speak at the Philly Emerging Tech conference last year and was thrilled that we were able to get him to come to CodeMash.  And by "we", I mean Jason Gilmore.

SRT's Friday vendor session "MobiMash" should be interesting.  Jay Wren, Mike Woelmer, Dan Hibbits, and Patrick Steele worked together and independently to provide a mobile solution for CodeMash, incorporating scheduling, session rating, and favorites.  And they did it in the 4 major mobile platforms: iPhone, Windows Mobile, Android, and Blackberry.  The iPhone and Android apps are available for download in their respective stores.  The Blackberry and Windows Mobile apps should be available Real Soon Now.  They will discuss the development challenges (and rewards) on the various platforms, using the MobiMash app as a case study.  I'm looking forward to it!

After the vendor sessions, I'll have to choose between "Clojure" and "Tools in the Trenches".   That's a really hard choice, because I'm both really interested in Clojure and yet also intrigued with Carl Quinn's tools talk.  Maybe I can convince Carl to do a lightning talk version at the Java Posse Roundup 2010!

Tail recursion in Scala and Annotations for Software Defect Detection

The Java Posse interview with Brian Goetz and Bill Pugh cleared up how Scala supports tail recursion in spite of the JVM's lack of support.  Brian Goetz did a great job of explaining that currently compiler writers have to build in the support (which Scala does) because the language doesn't support it directly.  He went on to explain that while there is support in the CLR for tail recursion, the F# compiler writers chose not to use it in some cases because they found that they could write a more optimal version by converting to iteration.  

The conversation was about changes that can be expected in Java 7, including JSR 292 ("Enhancements for Other Languages", aka "Invoke Dynamic"), JSR 305 (Annotations for Software Defect Detection), and JSR 308 (Annotations on Java Types).  

The discussion of JSR 305 (and @NonNull) reminded me of the discussion of contracts in a podcast on Microsoft Spec# that I listened to a few weeks ago. Scott Hanselman did an accompanying blog post as well. The FindBugs (static analysis) tool that Bill Pugh did is definitely a "must-have", and can already support annotions such as described above.  The JSR would simply provide a naming convention so that all tool makers and programmers could agree.  I had to look up Bill's annotation to see if it was "NotNull" or "NonNull", for example!

Note: JSRs (Java Specification Requests) are formal requests through the JCP (Java Community Process) for changes or enhancements to Java and the Java Virtual Machine.  This is an open process and participation is encouraged. 


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.