Whatever Happened to the Promise of Java Beans?

I ran across a question on LinkedIn today and gave a long-winded rant-like response that I thought I would post here, too.

Javabeans are hailed as reusabel software components. Is anybody aware of a market for these wigits?

My Answer: Yes, and it has been dominated by IBM and Oracle for the past decade. When the books were written that proposed business models around the technology the expectation was that Swing would win massive acceptance and that Applets would continue to be the key technology of rich web applications. None of this came to pass.

There was also the expectation of an open market of beans, which missed the fact that most developers would rather write their own and only reuse when directed, or until it becomes a habit from being directed to do so. The reuse is still mostly of internally developed beans or those that are part of vendor applications.

And the vendor applications mostly make the beans proprietary, i.e., they only run within their servers.

The exceptions to my cynical gut-reaction is the FOSS community, where many Java Beans and other reusable components can be found.

As Dennis Miller used to say “But that’s just my opinion. I could be wrong”

If you found this interesting, please share.

Links Be Gone

I often save web pages as Word documents for different reasons, and sometimes need to disable the links. Finding no help in Help, I did the usual search and found the trick elsewhere.

Here’s what I found:
If you just want to remove the hyperlink property of the entry, select the document—[Ctrl]A—and unlink the field—[Ctrl][Shift][F9].

If you found this interesting, please share.

Achieving Artificial Intelligence with the Reverse

I believe that AI is taking the wrong path. They are trying to work top down because that’s how humans who are generally successful at solving problems approach solving problems. Problems that are somewhat familiar are best served with a rigorous approach that leads to a planned conclusion. Still, many of the greatest break-throughs have come about by accident, i.e., not following the general path at first. Penicillin and Post-It Notes come immediately to mind.

But humans only solve most problems the usual way because they have a solid ground work to start from. The accidents create a new ground work for development. Accidents come about by not following the normal path, and I think the solution to AI is in taking a different path that will lead to a ground work that will support the entire field.

AI should take the approach of developing siloed expert systems. Make lots of them and keep refining until commoditized. Then start working on higher systems that can merge related systems together though interfaces like web services (but more efficient). Then build ever higher systems until a small set of controlling systems can leverage the legacy systems. The legacy systems, truly failures to create AI and the wrong accepted path will provide an infrastructure that will support a true AI solution.

If you found this interesting, please share.

Developing Software in a Sauna

There are cynics amongst us (if you are reading this, you should know that by now) who say that the most pleasurable part of a sauna is getting out of it and being relieved from the heat.

Developing software is like that, sometimes. You will always run across a bug in your software, or poor documentation, or an upgrade or language shift where all the things you expect to be there aren’t. So you bang your head against the wall until a solution falls out of it (hopefully out of your head… though the wall has contributed on occasion). And then you stop banging your head and give it a final slap as you solve the problem. Then it feels good. So good, you wind up banging your head again in a few months/days/hours over another problem.

Of course, just like in the sauna, there’s always that one person who claims to love the heat—the developer who insists they thrive on chaos, who grins at a stack trace like it’s a Sudoku puzzle. Don’t trust them. They’re probably the same people who say they enjoy cold showers and anchovies on pizza. For the rest of us, the cycle is familiar: you dive into the code, confident and optimistic, only to find yourself sweating bullets as you try to decipher what “SyntaxError: Unexpected Token” actually means this time.

Eventually, after spilling enough sweat and coffee onto your keyboard to be justify the $10 spent on a silicone keyboard cover, you emerge victorious. The bug is fixed, the unit tests pass, your CD pipeline deploys to staging, and you feel a rush of euphoria that’s almost worth the ordeal. You promise yourself you’ll document everything this time, or maybe even write better tests next time. But let’s be honest, you’ll be back in the sauna soon enough—sweating, swearing, and secretly loving the moment when you finally get to step out into the cool air of a solved problem.

If you found this interesting, please share.