On the way

U.S. Marines with the Maritime Raid Force and Security Element of the 15th Marine Expeditionary Unit, ride in a CH-53 Super Stallion during interoperability training aboard Camp Pendleton, Calif., Nov. 20, 2014. Interop gives the 15th MEU’s MRF and Security Element an opportunity to work together and support each other in preparation for a deployment in the spring.

(Photo by Cpl. Anna Albrecht)

QWERTY interop vs. innovation

The human and institutional layers of interoperability ties in with human nature to resist change. We resist the adoption of new systems and create institutions to set general rules for behavior and give certainty to future human relations. The authors of Interop: The Promise and Perils of Highly Interconnected Systems John Palfrey and Urs Gasser give prime attention to the effects of lock-in and its potential to hamper innovation. While the benefits of interoperability are evident in the way we carry out our informational lives, we seldom stop to think about how highly interoperable systems “can get locked-in to a specific set of technologies and protocols that work well in the present but become suboptimal over time”. 

The QWERTY keyboard is an often cited example that is worth mentioning in this scenario. This key setup was designed for typewriters, making sure that letters most commonly used together were away from each other to prevent the bars from getting jammed while typing. However, we continue to use this system when the technology has dramatically changed – and most of the typing is now done with our thumbs on mobile devices! 

This is an example that ties in well the human layer of lock-in. Keyboard interoperability at the technological (hardware) and human level (you can type in any computer with a Roman alphabet with ease) allows little room for change, even when there are more efficient keyboard configurations. Change would requiere users to relearn a language and could represent significant costs for businesses. This said, technology has innovated in other areas that could diminish lock-in. The increasing use of voice and touch screens and track pads for free hand writing instead of typing can do away with QWERTY.  This example reveals how technology and innovation itself can provide a solution to suboptimal lock-in situations by slowly replacing behaviors without directly challenging them. 

In light of the crucial balance between diversity and innovation and interoperability, I wonder how efficient is our current market structure in maintaining it. While results and implications differ depending on the industry and technology, it seems that the benefits from network effects and interoperability is resulting in market concentration for digital companies. Market concentration in networked economies has important positive effects – particularly in two-sided platform models–, but can be potentially harmful to consumers in the long run if dominant players incur in monopolistic practices that drive out competitors or prevent market entrance. In the past we have observed big tech giants ie. Microsoft be displaced by new entrants; will increasing interoperability and lock-in have a different effect in our current markets? Does this mean that regulatory agencies need to be more aggressive regulating incumbents?

Can't call ARBVertexBufferObject.glGenBuffersARB in Scala

I know that Scala has no static methods and it uses singleton objects instead.  I also know that Scala is supposed to be able to call Java methods, including Java static members.

Further, I know that org.lwjgl.opengl.ARBVertexBufferObject extends org.lwjgl.opengl.ARBBufferObject in the LWJGL library, and that the latter is generated code.

What I did not appreciate, but do now, is that Scala cannot make calls to static members in a superclass of a given class.  In order to call ARBVertexBufferObject.glGenBuffersARB(…) I need to either call ARBBufferObject.glGenBuffersARB(…) directly, or use some sort of calling class antipattern.

Needless to say, this is a headache.  Java / Scala interop is not quite where I’d like it to be, but I’m grateful for what does exist.

Software Engineering for breakfast at Espresso Royale on Ann Arbor Saline Road.