OpenDDS 2.0 Released
Steve Stallion has announced a new release of OpenDDS, an open source implementation of the Object Management Group (OMG) Data Distribution Service (DDS) by OCI. It is implemented in C++ and supports C++ and Java bindings.
Version 2.0 Released
We are pleased to announce the release of OpenDDS version 2.0!
See the Release Notes for details.
- This is the first release of OpenDDS that conforms to the minimum compliance profile as documented in formal/07-01-01 (version 1.2). Near-complete support for the persistence profile and initial support for the content-subscription profile is also provided in this release.
- Numerous API updates have been introduced for 1.2 compliance.
- A number of QoS policies have been updated or implemented to meet the minimum compliance profile:
- DESTINATION_ORDER
- ENTITY_FACTORY
- LIVELINESS
- PRESENTATION
- READER_DATA_LIFECYCLE
- TIME_BASED_FILTER
- WRITER_DATA_LIFECYCLE
- Fixed bugs in QueryCondition.
- Fixed bugs in instance state management.
X = X + 1 Is Evil
(Not via Twitter.)
Rich Hickey (in an Artima interview): For example, take a mutable Date class that has year, month, and day. To me, changing a date is like trying to change 42 into 43.
This is as close an elevator pitch for pure functional programming as I've ever seen.
Rich's analogy reminds me of the most painful experience I had when I started programming. So painful that I suppressed that memory ever since. That was when I first saw
x = x + 1;
That's impossible, I thought. That's plainly wrong. It took me days or weeks to "get over" it. My mind fought the rationalization for such stupidity:
- The equal sign is not a mathematical equal sign but an assignment. (What?)
- The read x and the blue x means different things. (What?)
- The blue one is the value before the assignment, and the red after. (Before?)
- It's really the location. (Location or value, which is it?)
Of course, given no other practical alternatives, I gave in just like everyone else. And now we are in this concurrency crisis. For countless times, we've been called to "look at" problems where a program is not "working" because the assignments are not happening in the order the programmer envisioned. There clearly is a systemic problem.
Rich Hickey's solution is his clojure programming language. I dabbled with it a bit in the past year. I have gotten tremendous value out of Mark Volkmann's write ups on Clojure and STM.
In Mark's latest tweets and emails, he often mentions these three things in one breath:
- Immutable objects
- Persistent data structures
- Transactional software memory
I wonder if that will become the rallying cry for Clojure and Clojure-like alternatives to main stream languages. If so, a paradigm shift is afoot.
Remember OO got traction after its "encapsulation, inheritance, and polymorephism" motto was coined.
The Wonderful World Of Amazon Spam (Part 5)
This piece of Amazon spam (which I'm a fan of; see here, here, here, here ) came into my Inbox this morning:
Maybe the time for Scala has finally come (my reluctance notwithstanding). It's one thing to hear bloggers and podcasters rambling on and on about the wonders that is Scala. It's a completely different thing when Amazon.com concludes that "customers who have purchased or rated Effective Java (2nd Edition) by Joshua Bloch have also purchased Programming Scala (Animal Guide) by Dean Wampler."
Poly-g-g-g-glot. Did I say that right?