Topic: Systems development

Levels of Abstraction

In everyday language “levels of abstraction” sounds like daydreaming or going off somewhere in a trance. In computing abstraction is our daily bread. A higher level of abstraction means doing more with less effort. Programming languages inevitably gravitate towards higher levels of abstraction. Let us see how.
Continue »

Automatic Bug Finder

Who likes a fault-finder? Well, the FindBugs utility from the University of Marylind makes me smile. I’m delighted to see that this project is alive and kicking. Kicking at bugs!

When I tried it about two years ago I didn’t expect a lot. A small program pretending it could find bugs in Java programs? So I let it have a go at a not too large project I had done. To my astonishment and embarrassment it didn’t just nag about bad habits, lint style, it actually found one or two real bugs! My embarrassment quickly turned into admiration.

Java has a very capable compiler. You may think it checks everything. It doesn’t.

Setting Standards

Even though it’s a long time ago, I will never forget my disappointment after buying the SGML standard. That’s right, I had to pay for it. In those days the standard was king, users were its servants. Anyway, I wanted to master this technology and started studying. My forehead developed deep wrinkles, ending up looking like the bellows of an accordion, but to no avail. I had to conclude that the standard was impossible to understand.

Continue »

Use the Force, Read the Source

Have you ever had half a million lines of unreadable Java dumped on your desk with a request for “just a few small changes”? How did you feel when you realized there was hardly a comment to be found?

In such moments the eternal questions of the meaning of life rush to your mind. One of them is “What is the real purpose of source code?” Think a second before you continue. Continue »

A Measure of Style

Can you measure coding style? Yes, it is possible, but don’t expect too simple results. The main complication is that there are plenty of strong opinions about what constitutes good coding style.

If you tell a colleague their coding style could be improved, you likely conjure up a passion you never knew the person possessed. It’s easier to have a dumb program calculate some metrics. All metrics are flawed one way or the other, but at least it’s neutral and everyone is sized up along the same scale. Continue »