I'm Lance Ball. I write software. I work for JBoss in a group called project:odd. Among other things, I get to work on new and experimental projects. In truth, that also means that I write and then throw away a lot of code. The upside is that I get to work on some projects that eventually grow legs and have a life.

Some Projects

Here are some of the projects that I have written or contributed to.

  • Node.js - A JavaScript runtime that uses an event-driven, non-blocking I/O model.
  • WildFly Swarm - A microservices framework and runtime for Java.
  • Vert.x - A reactive application framework and runtime for the JVM.
  • DynJS - A JavaScript runtime written for the JVM.
  • Nodyn - A Node.JS runtime written for the JVM.
  • TorqueBox - A JRuby application server.
  • jvm-npm - A JavaScript NPM module implementation for JVM JavaScript environments
  • fidelity - A lightweight, spec-compliant Promises/A+ implementation
  • rhq-metrics - A Node.js client for the JBoss RHQ Metrics Server

Things I've Said in Public

Sometimes I go places and talk about my work. Here are some videos of me doing that, or at least the slides I used.

Things I've Written Lately

I don't write a lot of blog posts, but if I do they end up here.

Forget Data Encapsulation - Embrace Immutability

Sun Nov 27 2016

A couple of weeks ago, I wrote a fairly long post attempting to shed some light on a few things you can do in your JavaScript classes to enforce the concept of data encapsulation - or data "hiding". But as soon as I posted it, I got some flak from a friend who is a Clojure programmer. His first comment about the article was this.

Mutability and data encapsulation are fundamentally at odds.

Eventually, he walked that back - but only just a little bit. His point, though, was intriguing. I asked him to explain what he meant.


Data Hiding in ES6

Thu Oct 13 2016

For a lot of my early career, I was an OO developer. I genuflected regularly in front of the altar of data encapsulation, object heirarchies and static typing. And the syntax. Oh the syntax!

But I have changed, of course, and so much of the dogma and ceremony that I participated in during those times has come to seem a lot less important than it was 20 years ago. Languages, and developers evolve. But that doesn't mean there aren't some really good lessons to learn.

Take, for instance, data encapsulation.