maetl

Objects

Software Design Folklore

Results of a survey of over 3000 developers, regarding their approach to OO software design.

Improving Architecture with Testable Code

Unit testing can have productive side-effects that manifest in the emergent design of classes and API's. Testing objects in isolation from their interactions in the larger code-base pushes you to…

Escaping the equality conundrum

Equality is a mathematical concept, not an object concept. It's contextual. So, what is the correct implementation of equals? Sometimes it's no implementation at all. On the Beautiful Code…

Undocumenting PHP: Static Late Binding

PHP is flawed. Deeply, immensely so. I first discovered this over a year ago, when I made the naive assumption that PHP 5.1 had fixed a lot of the language level failings of its predecessor. Because…

Software is not made of Bricks

Raganwald dissects the misguided metaphor from a software process perspective. I have come to believe that these kinds of problems are even more prevalent in the web development world than in…

Ambient Oriented Programming

Interesting research is emerging that explores new programming models for mesh connected mobile devices. The experimental language called AmbientTalk is a prototype based object oriented language…

Frameworks and Seedworks

Frameworks are the shining stars of this current era of web development and there are many benefits for designers and programmers to focus technical solutions around a given framework as a platform…

Membrane Oriented Programming

For many years, Object Oriented discourse has been far too constrained by language oriented thinking.

Method Missing?

Builder is a completely declarative library which makes it easy to generate XML from a cascade of Ruby method calls. But it's not completely smooth sending: working on an Atom feed, I ran into a…

10 LET M EQ MIND ROT 20 GOTO 10

I hate to agree with grouchy old Dijkstra, but unfortunately now it's impossible to deny: BASIC is what killed my ability to be a truly great programmer. Dijkstra was right, GOTO completely rots your…

What is least surprising?

I always enjoy reading interviews and discussions with Larry Wall - a brilliant language designer whose unconventional wisdom and humor makes his explanations of complex and chaotic issues seem…

On Refactoring

Refactoring reveals purpose. It sets you up to be ready for the next move.

Overloading the MQL Acronym

MQL must be one of the most overused acronyms in todays technology field, including (but definitely not limited to) such specificities as search/analytics, automated trading, and molecular substructure…

Py3000

Python 3.0a1 release hits the network, with significant backwards incompatible changes. The best way to describe this is a shedding of the snake's skin, sloughing off a whole bunch of weird ambiguities…

Redefining Computing

As I am now starting to discover, many of these ideas were originally considered by Alan Kay, and summarized at OOPSLA in 1997. If the true shape of object oriented programming is qualitatively…