Quantcast
Channel: Object Mentor Blog: Category Dean's Deprecations
Browsing all 46 articles
Browse latest View live

Contracts and Integration Tests for Component Interfaces

I am mentoring a team that is transitioning to XP, the first team in a planned, corporate-wide transition. Recently we ran into miscommunication problems about an interface we are providing to another...

View Article


The Ascendency of Dynamic X vs. Static X, where X = ...

I noticed a curious symmetry the other day. For several values of X, a dynamic approach has been gaining traction over a static approach, in some cases for several years. X = Languages The Ascendency...

View Article


Always <tt>close()</tt> in a <tt>finally</tt> block

Here’s one for my fellow Java programmers, but it’s really generally applicable. When you call close() on I/O streams, readers, writers, network sockets, database connections, etc., it’s easy to forgot...

View Article

The Seductions of Scala, Part I

(Update 12/23/2008: Thanks to Apostolos Syropoulos for pointing out an earlier reference for the concept of “traits”). Because of all the recent hoo-ha about functional programming (e.g., as a “cure”...

View Article

The Seductions of Scala, Part II - Functional Programming

A Functional Programming Language for the JVM In my last blog post, I discussed Scala’s support for OOP and general improvements compared to Java. In this post, which I’m posting from Agile 2008, I...

View Article


The Seductions of Scala, Part III - Concurrent Programming

This is my third and last blog entry on The Seductions of Scala, where we’ll look at concurrency using Actors and draw some final conclusions. Writing Robust, Concurrent Programs with Scala The most...

View Article

Tag: How Did I Get Started in Software Development

Micah Martin tagged me a while ago: How old were you when you started programming. I was around 15. How did you get started programming. This was in the mid-70’s. In school, we had access to a...

View Article

The Open-Closed Principle for Languages with Open Classes

We’ve been having a discussion inside Object Mentor World Design Headquarters about the meaning of the OCP for dynamic languages, like Ruby, with open classes. For example, in Ruby it’s normal to...

View Article


The Liskov Substitution Principle for "Duck-Typed" Languages

OCP and LSP together tell us how to organize similar vs. variant behaviors. I blogged the other day about OCP in the context of languages with open classes (i.e., dynamically-typed languages). Let’s...

View Article


Configuration Management Systems, Automated Tests, CI, and Complexity

I’m working with a client that has a very complex branching structure in their commercial CM system, which will remain nameless. Why is it so complex? Because everyone is afraid to merge to the...

View Article

User Stories for Cross-Component Teams

I’m working on an Agile Transition for a large organization. They are organized into component teams. They implement features by forming temporary feature teams with representatives from each of the...

View Article

Traits vs. Aspects in Scala

Scala traits provide a mixin composition mechanism that has been missing in Java. Roughly speaking, you can think of traits as analogous to Java interfaces, but with implementations. Aspects, e.g.,...

View Article

A Scala-style "with" Construct for Ruby

Scala has a “mixin” construct called traits, which are roughly analogous to Ruby modules. They allow you to create reusable, modular bits of state and behavior and use them to compose classes and other...

View Article


Upcoming Speaking Engagements

I’m speaking this Friday at RubyConf on Better Ruby Through Functional Programming. I’ll introduce long-overlooked ideas from FP, why they are important for Ruby programmers, and how to use them in...

View Article

Video of my RubyConf talk, "Better Ruby through Functional...

Confreaks has started posting the videos from RubyConf. Here’s mine on Better Ruby through Functional Programming. Please ignore the occasional Ruby (and Scala) bugs…

View Article


Adopting New JVM Languages in the Enterprise (Update)

(Updated to add Groovy, which I should have mentioned the first time. Also mentioned Django under Python.) This is an exciting time to be a Java programmer. The pace of innovation for the Java language...

View Article

Organizing a Chicago Area Scala Enthusiasts (CASE) Group

I’m organizing a group in Chicago for people interested in Scala, called the Chicago Area Scala Enthusiasts (CASE). If you’re interested, join the google group for more information.

View Article


1st Ever Chicago Area Scala Enthusiasts (CASE) Meeting Tonight

Tonight is our first meeting, at the ThoughtWorks offices in the Aon building downtown. If you’re going and you haven’t RSVP’ed, either send a tweet to @chicagoscala or reply here ASAP! Hope to see you...

View Article

Tighter Ruby Methods with Functional-style Pattern Matching, Using the Case Gem

Ruby doesn’t have overloaded methods, which are methods with the same name, but different signatures when you consider the argument lists and return values. This would be somewhat challenging to...

View Article

Pat Eyler Interviews Dean Wampler and Alex Payne on "Programming...

Pat Eyler posted an interview with Alex Payne and me (Dean Wampler), which we conducted over email. We dish on Scala, Functional Programming, and our forthcoming book Programming Scala.

View Article
Browsing all 46 articles
Browse latest View live