Post #102,496
5/19/03 2:48:44 AM
|
Comparison of Gemstone/S and J2EE App Servers
7 years ago, I worked on a telephone order entry system for large customers for NYNEX. We implemented the system using Smalltalk and distributed objects with Gemstone as the backend. Gemstone was unbelievable. It allowed us to partion the application any way that we wanted, it performed well, it allowed us to pass as little or as much data as we wanted. For example, we had an order class which contained a bunch of line requests. The application initially just needed to display a list of orders (order number and name). With Gemstone, we could tell it to return us the remote object with most of the information stubbed out. This allowed us to actually get the remote object with great performance. When the user tried to open up an order, again we retrieved only part of the information. It also allowed you to choose where to execute certain methods, on teh client or on the server. Does any J2EE app server offer such capabilities? What I see in the J2EE world these days, is that remote objects should never be passed back to the client, rather value objects should be created from the entity EJB's and passed back. They are eviscerating the whole idea of remote objects. If Gemstone could do this 7 years ago, why can't J2EE do this now?
The answer of course is the dynamic nature of Smalltalk. In Smalltalk it is trivial to create proxy objects and return them (in fact a single proxy class can be used to proxy any object), in Java it is a royal pain (made easier in 1.4 with the Proxy API) because of the type system. Basically you need to make sure that every class implements an interface, and then create a seperate proxy for every interface.
It seems that the Smalltalk world has woken up, when Java came up the major Smalltalk players like Gemstone, Objectshare, etc. jumped on the Java bandwagon, I am glad to see that now thy are going back to their Smalltalk roots.
|
Post #102,522
5/19/03 8:44:10 AM
|
J2EE is crrrrap.
Regards,
-scott anderson
"Welcome to Rivendell, Mr. Anderson..."
|
Post #102,595
5/19/03 2:27:32 PM
|
Did you work at TimeWarner too?
Because I did the same thing - residential telephone service order entry in VisualWorks in Denver.
VWIW, there's a free Gemstone wannabe called Magma written in Squeak. Its pretty cool and the source is available.
The J2EE people have just recently admitted that their persistence model is shit. Thus, we now have the new JDO specifications that are taking a shot at OR mapping the right way. But of course, the stupid limitations of their type system are killing them. Same as it killed CORBA (which had a shot at being cool - but the C++ stub/proxy code generation made it a dozen times more complex than it needed to be).
A better example is NextStep's PDO (Portable Distributed Objects) which provided object relocation, remote invocation, but no persistence.
"Packed like lemmings into shiny metal boxes. Contestants in a suicidal race." - Synchronicity II - The Police
|
Post #102,704
5/20/03 3:42:42 AM
|
I worked at NYNEX ...
which became Bell Atlantic which is now Verizon. I worked on an order entry system for large Centrex customers.
After working there for a year as a consultant, I am amazed that the phones in NY work as well as they do. The NYNYEX employees did nothing all day, the consultants did all the work, the NYNEX employees pushed papers all day. The VP in charge of my division was the ultimate PHB. Last but not least, the unions ruled the place. One of the people I worked with told me a funny story. When he was working in customer service on the way back from his lunchbreak he went to the bathroom. Next thing he knows, the union rep is screaming at him "Don't piss on your time, piss on their time". The union rep explained that since the contract allowed for x number of bathroom breaks during the workday he should use them and not go to the bathroom on his time (e.g. lunch) but rather, hold it in until his shift started and then use his bathroom break.
|
Post #102,708
5/20/03 4:31:40 AM
|
JDO vs. Entity Beans
I was recently at a Java event and you could see the tension between the JDO proponents and Entity Beans proponents. The JDO guys don't say it explicitly but basically their message is who needs Entity Beans which doesn't sit well with the EJB guys.
How did J2EE go so wrong with their persistence model? From what I understand IBM had a big role in the J2EE spec and they should know this stuff with all their work on Smalltalk. In fact, I still haven't figured out why IBM jumped so hard on the Java bandwagon when they were one of only 2 major players in the Smalltalk market. I guess, after their experience with OS/2 (the superior product losing out to an inferior hyped product) they figured that they should back Java and make a bundle on consulting services when all the Java projects need help.
|
Post #102,705
5/20/03 3:47:44 AM
|
Gemstone > rollsroyce; J2EE == Model-T
What the heck, the world thinks it wants model-Ts so I will deliver em in droves even though my own preferred vehicle is the rollsroyce+. I develop my *own* systems in ST, but am a supporter of Java J2SE & J2EE.
Gemstone was so superior but sadly written in a language that seems to have languished. I used to believe that VPN like networks, fast bandwidth and the superior elegance of ST would eventually mean that ST based systems would replace the temporarily popular Java (self was a presenter on the asian leg of the 1st Java world tour in 1997 - run worldwide by IBM, Sun, Netscape & Novell), but it hasn't happened & worse, doesn't look like happening (almost a VHS vs Beta debate).
I like Java (for some reasons) but it isn't a patch on ST any more than J2EE app servers are a patch on Gemstone.
Cheers Doug Marker
|
Post #102,709
5/20/03 4:45:23 AM
|
Things may be changing ...
as you can see from the discussion [link|http://z.iwethey.org/forums/render/content/show?contentid=101330|here]
The Smalltalk vendors were their own worst enemies. When Java came out, all the Smalltalk vendors immediately jumped on the bandwagon and stopped really pushing their Smalltalk products. Gemstone came out with Gemstone/J and removed the focus from Gemstone/S, ObjectShare did the same, and IBM completely stopped pushing Smalltalk (even when their own IDE VisualAge for Java was written in Smalltalk). With vendors like that who needs enemies? The world at large saw even the Smalltalk vendors retreating and therefore believed that Smalltalk was dead. If the Smalltalk vendors in the early 1990's had pushed Smalltalk Java would have been stillborn, no one would have used such a pile of crap like JDK 1.02 if they had been familiar with the capabilities of Smalltalk.
The more I use Java the more I realize how fundamentally flawed the language is. Think about this, JDK 1.5 is coming to fix a whole bunch of development issues with Java (generic types, enums, etc.). The fix is, a bunch of compiler tricks. In other words, these issues remain with the language, just the compiler will now generate even more code to hide them from you. Absolutely pathetic. What is even more upsetting is reading the articles about it, how everyone thinks these silly enhancements are cool and make Java a great language.
|
Post #102,711
5/20/03 5:01:19 AM
|
Why do you like Java?
The only reasons I have for liking Java are that the alternatives were worse, C++, VB, etc. and that it pays the bills. Otherwise I can't think of a single advantage that Java has over Smalltalk (now that applets are dead and Java is basically server side only).
|
Post #102,718
5/20/03 8:16:34 AM
|
Same reasons, plus one more:
I despise repository-based development. I know there are some advantages, but I really do just prefer source code files.
I do like Objective C, although the libraries are a pain to get up and running on Linux. I just wish it had blocks.
My favorite is still Python.
Regards,
-scott anderson
"Welcome to Rivendell, Mr. Anderson..."
|
Post #102,732
5/20/03 9:04:10 AM
|
Repository based development ...
is a different paradigm which takes getting used to. It definately has it's drawbacks, it is harder to transport code to another machine. The truth is, these days very few Smalltalk developers really rely on the image, instead they have their application in Envy and then load it into a clean image. What bothers me about Java development tools is the lack of a good class browser. I have used or use Netbeans, Eclipse, JBuilder and none of them offered the classic class browser like Smalltalk. I find that it is much easier to understand the system when you can easily browse the class hierarchy.
|
Post #102,737
5/20/03 9:31:31 AM
|
Class browsers...
I use Mozilla. It's sufficient for my needs, and I doubt that any tool is going to make my development easier or faster than the combination of Mozilla and emacs.
Regards,
-scott anderson
"Welcome to Rivendell, Mr. Anderson..."
|
Post #102,787
5/20/03 12:40:25 PM
|
I've recently become enamored of Whisker
which is a nifty browser for Squeak.
Part of what I like about it is the way it integrates with changesets to let me click my way back through revisions in the editor. So I'm less fearful of making changes because its so easy to revert. It also lets you put lots of little method editors in panes in the window making it easy to reference code from somewhere else while editing your method.
I could maybe even give up vi for it. :-)
"Packed like lemmings into shiny metal boxes. Contestants in a suicidal race." - Synchronicity II - The Police
|
Post #102,788
5/20/03 12:51:37 PM
|
There's your problem...
In comparison to vi, anything looks good. ;-)
Regards,
-scott anderson
"Welcome to Rivendell, Mr. Anderson..."
|
Post #102,798
5/20/03 1:50:16 PM
|
OK, I'll bite...How do you browse classes using Moz?
(This damn thing is starting to remind me of the old Saturday Night Live skit: " Its a floor wax! No, Its a dessert topping!...".)
jb4 "We continue to live in a world where all our know-how is locked into binary files in an unknown format. If our documents are our corporate memory, Microsoft still has us all condemned to Alzheimer's." Simon Phipps, SUN Microsystems
|
Post #102,803
5/20/03 2:10:34 PM
|
Re: OK, I'll bite...How do you browse classes using Moz?
[link|http://java.sun.com/products/jdk/1.2/docs/api/|http://java.sun.com/...jdk/1.2/docs/api/]
I have javadocs for the local system too, all hyperlinked to the main sun.com docs.
Regards,
-scott anderson
"Welcome to Rivendell, Mr. Anderson..."
|
Post #102,834
5/20/03 4:47:17 PM
|
A-comma-ha!
You're talking about the java hierarchy, not the hierarchy of the app written in java.
I get it....
jb4 "We continue to live in a world where all our know-how is locked into binary files in an unknown format. If our documents are our corporate memory, Microsoft still has us all condemned to Alzheimer's." Simon Phipps, SUN Microsystems
|
Post #102,835
5/20/03 4:49:04 PM
|
No.
I have the same sort of documentation for the app hierarchy on a shared drive here where all the developers can see it.
Regards,
-scott anderson
"Welcome to Rivendell, Mr. Anderson..."
|
Post #102,895
5/21/03 3:25:16 AM
|
Not exactly the same as a Smalltalk class browser
for one you can't see the source code. You also can't take a method and find all the senders etc.
|
Post #102,922
5/21/03 9:09:16 AM
|
Nope. you're right.
But it's sufficient for my needs. Between that and emacs, I'd wager I program as quickly as I can anyway.
Regards,
-scott anderson
"Welcome to Rivendell, Mr. Anderson..."
|