Lambda the Ultimate

inactiveTopic EJB critique
started 2/23/2001; 3:32:22 AM - last post 2/28/2001; 1:48:13 PM
Ehud Lamm - EJB critique  blueArrow
2/23/2001; 3:32:22 AM (reads: 902, responses: 2)
EJB critique
On Wiki.

Some interesting comments on EJB and components in general.

We are in the component era of programming, and it is worth your time to stop and think about what this means for the way you program, mangae projects and do business in general. It is also interesting to consider how this affects programming languages.

Component oriented programming (COP?) tries to seperate reuse from programming language issues. Ideally, it should eliminate lock-in.

However, it seems currently a lot of work is done on language specific standards (like JavaBeans).

I think this is not coincidental. COP will be truly viable when combined with language evolution. We are not there yet, but there are some promising ideas. (And no, I don't think C# is one of them).
Posted to OOP by Ehud Lamm on 2/23/01; 3:32:44 AM

Chris Rathman - Re: EJB critique  blueArrow
2/28/2001; 8:35:30 AM (reads: 905, responses: 0)
I agree that components should be as loosely coupled to the programming language as they are to the consuming code for any particular language. In my opinion, however, programming language neutrality is less a consideration than data provider neutrality. Programming languages come and go - the database lasts forever.

If we're talking about component technology that handles (a). Distributed Object Brokering (ORB) and (b). Transaction Monitoring (TM), then the conversation gravitates necessarily towards MTS and EJB. MTS support more languages, but at the expense of having less backend flexibility.

As for the link about the problems with EJB, there are a number of valid criticisms. The deployment descriptors are all vendor specific and it would help to standardize with an schema (though the nature of the beast is that there is probably not a way to get 100% standardization). The 4 way split of the beans with no static compile checking for consistency is also a bit unwieldy - the check for proper interfacing could have been structured much better (through a better object model that interfaces with the container).

However, the arguments in favor of MTS are mostly silly (bordering on shill). Also, the idea that SOAP is somehow in the same classification is ridiculous - being nothing more than an RPC mechanism with no distributed garbage collection. Perhaps SOAP can manage to compete with CORBA but it is in a different league from MTS and EJB.

Ehud Lamm - Re: EJB critique  blueArrow
2/28/2001; 1:48:13 PM (reads: 883, responses: 0)
Disconnecting components from programming languages is far from trivial. Interoperability is ok, but when it comes to sw evolution (read maintenance) you obviously have to step back to the pl level. (Unless better approaches arise. This is part of my research agenda...)

Having sort of a DBA past, I like your comment re databases. Alas, I think things are much more complicated than what you imply.

One reason dbms are so fundamental for the way we view sw is beacuse they are (a) very well encapsulated and (b) have a standardized interface (SQL etc.) Not coincidently, this standardized interface is a language.

These issues are the main problems with other components. Solving this (esp. b, since a is basically something we study since Parnas (1972)) is, I think, a very important goal.

My belief is that solutions will involve language evolution. I think there are some very cool ideas that should be investigated. Some of them are related to things discussed here in the past like DbC, generic programming and typing.

It is a shame that a crippled language like Java (esp. one with no parametrized units) sets the components agenda. I much prefer to take the ML design as a starting point.