Recommended Reading: Thoughtful Programmer
- July 8, 2009
- 0 Comments
John Reynolds’ has a good post over on his blog on Programming Language Sociology and he draws connections between his work in the C++, Java, and BPMS communities.
I have slightly different biases… My early experiences with C++ were using standard template libraries to generate “typed” lists of objects for a class on C++ in college. At the same time, I was taking a class on NextSTEP programming (CS193d) which employed objective-C. I discovered the elegance of having all objects respond to standard messages, and I experienced first-hand the “problems” that C++ purported to address with heavy-handed solutions. Many of those “problems” weren’t really high-occurrence defects for me, as a programmer – paying the price for a solution to a problem I didn’t have! (as an example, take the strongly-typed list container…) So I was never a huge fan of C++, but unfortunately (for me), it won the battle over objective-C. (The silver lining, of course, is that Apple’s platforms for both the Mac and the iPhone make heavy use of objective-C, so I can at least enjoy a renaissance of objective-C in the mobile world)
I considered Java as a language a step up from C++. I think it better-addresses modern programming problems – machine portability, connecting to remote objects and services, memory management, etc. It isn’t that there aren’t great applications for C++, there are, but Java better addressed the next set of challenges.
You could consider BPMN a “language” that addresses the current (for John Reynolds and I, and for many in the IT space) problem space of business process definition and implementation. As John says, part of what makes the BPM tools exciting is that they are good tools for speaking the language that solves business process problems. The tooling has a long way to go to meet our expectations of what it will do for us in the future, but it has come far enough that there is no longer any excuse for putting off BPM implementations, waiting for a better mousetrap.