Topic: Foundations

Why NoSQL Won’t Replace Relational Databases Anytime Soon

These days there is a lot of buzz about NoSQL databases. We hear that new databases are about to replace relational ones because the relational data model is so old.

I’m sure this won’t happen anytime soon. On the other hand, I don’t believe NoSQL databases will go away either. My prediction is that new NoSQL databases will keep popping up. Each one will fill a specific need for a time, and then fade away. No two NoSQL databases will ever be compatible. Standardization is fundamentally contrary to the reason why NoSQL databases exist.

Hang on and I will show you why.
Continue »

Object Name Service Objections

The Object Name Service (ONS) [2] proposed by EPCglobal is specified to use DNS (the Domain Name System) for looking up object identities. An object identity in this case is essentially an Electronic Product Code (EPC).

I have strong misgivings about this ONS design. Primarily because it is a fundamental mixing up of concerns. But also because DNS should not be entrusted with sensitive information.
Continue »

In Search of Flexibility

Flexibility is a word that has positive connotations, at least in the Western world. It is considered a business success factor. From a language point of view, flexible means pliable, yielding to pressure. Why would that always be a desirable characteristic? It simply isn’t. So let’s dig deeper into flexibility. The statements that follow are intentionally provocative.
Continue »

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 »

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 »

The Japanese Condition

What is quality? A classical question with many answers. As I’m just back home from Japan I find myself getting absent-minded, thinking about quality. I murmur about quality when there is no one around. These are characteristic symptoms of the Japanese condition. It hits the unsuspecting Westerner when they are confronted by Japanese quality. In my case it happened when I travelled by the famous Shinkansen high-speed trains and found out that speed is not the main point.

Continue »