[From PortlandJavaUsersGroupThread.(And was "StepUpToThePlate?.")]
See also ReusableSoftwareHah.
Step up to the plate
Unfortunately, we are programmers and engineers... that treadmill is always going to be there. There's always going to be a better mousetrap.
Before I begin to rant, let me distract myself by saying that I agree with you... "where we've been", "what we did", and "best practices" would be an excellent topic. While the format of the jugs that I've been to have been excellent - with excellent speakers and such, I feel that there is something going untapped... Portland has a superb share of gray matter in this industry - a lot of it is on this list. I think we should begin to put our heads together. What's good? What's bad? What's different? Are things really the way they are? How SHOULD things be? (Call to Action - less subtle than my last post) Question everything... I've been noticing that we as engineers are becoming complacent and content to just glue pieces of code together at the whim of corporate America. Don't read that as a barb - I know that some, if not most of you are truly innovating for your line of business at the very least. And without those pieces of code to glue, your job would be much harder. But... be careful not to fall into the rut. Question everything. Ask yourself every day why you are walking down the path that you're taking. If you can say that you're on the road to the best solution, great! Don't be content with that, though. Was there a section of the road that was less than smooth? What could have been done about it? Do it... next time at the very least. If you're not walking down the right path, why not? Did you simply miss your turn? If so, then forge your own trail, or better yet, go cross country until you hook back up.
Ask yourself why... Why are app servers so over-marketed? It's because no app server has any features that are truly revolutionary, or that set themselves apart from the others. They have to inundate you with marketing, hype, and propaganda in order to entice you to buy in to their product. Revolutionary products speak for themselves.
Let's think of a good example... Symantec C++ 7.0 - that compiler was the shit when it came out. It had great productivity tools (for its time). It compiled and linked faster. It produced faster code. The IDE was immense. For the first time, you could set breakpoints on memory addresses instead of code lines. It had the Class and Hierarchy browsers. Where is it today? They failed to ..continue.. to innovate and it died. You can not seriously compete without continued innovation because if you don't, those that continue to innovate will bury you. Take a look at Internet Explorer vs Netscape.
Arcane technologies are falling by the wayside while industry standards are taking over. This is great... sort of. Ask yourself why. What is happening right now? It's great that <finally> we can all "just get along". Our project outputs are more portable. Their performance, usually exemplary. They can interoperate with one another. What's wrong with that? Question everything. Engineers get lazy. The tendency is to create solutions by gluing different technologies together. If everyone does that, who is going to innovate?
It could be argued that finding unique ways of gluing things together is a form of innovation. I consider it more of an art. Find an art gallery with abstracts, you'll see what I mean. A truly innovative idea is fresh and original from the ground up. Take a look at Sun. They stood up against the behemoth Microsoft and said "We won't be bullied anymore!!!" to paraphrase. They created their own initiative, their own technology, their own standards.
We adopted them. Why? Because for the industry to improve, everyone must agree upon a set of standards. Remember the Industrial Revolution? What brought that about? Interchangeable parts. People agreed upon a standard way that things should plug together and behold. Do you think people just sat around and starting plugging things together? No. They thought of new things to plug together. They thought about better ways to plug them together. They created their own markets. They started plugging their markets together. Now we are in the beginning of an Information Revolution. People are doing the same things. The cycle repeats. Our interchangeable parts are hardware and software. Everything else applies.
Our Information Revolution is bred and based upon our Industrial revolution. Just like Industry has formed the supporting foundations for what we do now, we must now take what we do now to form the foundations of the future. Continue gluing your code together in innovative (and artistic) ways. Just don't forget to keep your eyes on the road ahead and behind you and continue to question everything. "Imagine the possibilities" can NEVER be done to death. Besides... the road changes on a daily basis. If you don't continue to ask the question, you'll never get today's correct answer.
-- SeanZachariasen?
-- sg
... in 1993 before Java was even a gleam in someone's eye. Actually, Java (then called Oak) was evolved enough to be the basis for the *7 demo in late 1992. This is a simple matter of fact, easily checked by doing a web search.
Surely you're smarter than this. Research is NOT a product. COM was shipping bits in 1993. This is a simple matter of fact, easily checked by doing a web search.
-- sg
COM and VBXs were the *first* and still most successful SoftwareInterchangeableParts. In any account of component software that pays any attention to history, Unix tools and pipelining were successful SoftwareInterchangeableParts in the 1970s, and are still popular today.
These tools are hardly SoftwareInterchangeableParts of the type described here: like JavaBeans, EJB, and COM. We're talking about drop-in binary SoftwareInterchangeableParts.
All Sun did with JavaBeans is copy what Microsoft did better years before... JavaBeans is hardly a copy of COM. It's also much easier to work with, from what people who've worked with both have said. As for "better", that depends how heavily you weight various things; I suspect you attach a lot of weight to COM being supported by Microsoft's Office suite.
George, you are beautiful. If you actually made sense once in a while, you'd be scary. Lot of weight to Microsoft Office? Have you ever studied or programmed COM? Where on earth does it have ANYTHING to do with Microsoft Office??? COM is a BINARY standard that allows you to create reusable components in Cobol, Java, C++, C, Pascal, Delphi and many more, not the ONE TRUE LANGUAGE only. People don't use COM to build Office components. Kurzweil used it to build VoiceXpress for Windows. Many Ecommerce sites use it. As to whether Java is better, if you believe that people should throw away billions of dollars of investment and program in the ONE TRUE LANGUAGE, then I have some swamp land in Florida to sell you.
-- sg
(to which no-one else has any input) That's a surprising claim. Do you have anything to back it up?
Listen to the complaints of the IBM high-level executives. I'll find the web pointer. Did Microsoft get to have any input?
To get back to the actual discussion: I don't think, as Sean seems to, that we need something "fresh and original from the ground up". Instead, we need to implement a lot of things that were first done by researchers ten or fifteen years ago. In my rough estimation, COM gets us to 1986; JavaBeans brings us up to 1991.
You are kidding right? Back up your claims that JavaBeans does ANYTHING more than COM does. COM/MTS/COM+ does things today that EJB and JavaBeans are still dreaming about: like transactions, JITA, object pooling, etc.
We should also look at OpenDoc, and see if we can derive any technical lessons from it. The main business lesson of OpenDoc, of course, is that Microsoft can and does use its power in one area (its Office suite) to kill technologies in other areas (OpenDoc). -- GeorgePaci
You can blame MicroSoft for everything. I know people that worked on OpenDoc. It's Apple's continued stupidity and nothing else than killed OpenDoc. Period. Stop blaming MicroSoft for all the gross failings of others.