Component Oriented Software (Page 8)
<< Introduction & Message Forum
<< Page 7 (Aspect-Oriented Java)
Conclusion
Java is entering into its inefficient phase. C# is in the middle of its acceptance phase.
When the .NET architect, Hejlsberg, says, "Yeah, and I just think that we're a generation ahead when it comes to the thinking in this space," he is probably right. In the scheme of things the .NET language extensions are particularly small. However .NET now offers Component-Oriented support in the form of properties and events as first class language constructs.
There is a lot of talk amongst senior figures about where Java is heading. JavaLobby, The Server Side and Java Developer Journal have all carried articles in recent months about the way ahead for Java. Looking at the readers' responses to these articles I'd say the vast majority of Java developers don't even appreciate what Hejlsberg is saying.
Many Java programmers can't see that C# has leapfrogged Java. Whilst many of its Component-Oriented aspects are supported by Java, they are not built in, and they involve significant programmer effort to get to work. Thankfully the next version of Java (1.5) is planned to have boxed types built in, which shows they are at least responding to .NET.
When languages evolve, they move closer to problems rather than the solutions. Javasoft should stop thinking about solutions and start thinking about our problems. The publication of module interfaces or displaying a type and its related dependents in a UI should be one line of code.
It's time for Javasoft to start getting aggressive in their vision of what Java is. It's easy to get self-congratulatory and lazy when you're in a dominant market position. I believe that Javasoft can deliver the next big thing but it's going to involve swallowing a lot of pride, and I'm not sure they can do that.
The series continues with Part Three:
Component-Oriented
Thinking: How the Java language should be extended.
References
Brown W, et.al, AntiPatterns: Refactoring Software, Architectures, and Projects in Crisis , 2001.
Javelin Software: JGenerator, November 2001 (http://www.javelinsoft.com/)
Javelin Software: Swinglets, May 1999 (http://www.swinglets.com/)
Jonathan Aldrich Craig Chambers David Notkin, Component-Oriented Programming in ArchJava
http://www.cs.washington.edu/homes/jonal/archjava/oopsla01-cop.pdf
Microsoft Corporation: The Component Object Model 0.9. July 1995.
P. H. Frohlich, Component-Oriented Languages: Messages vs. Methods,
Modules vs. Types. (http://nil.ics.uci.edu/~phf/pub/honnef-2000.pdf)
Sun Microsystems : The Java Beans Specification 1.01. July 1997.
(http://java.sun.com/products/javabeans/)
Sun Microsystems: JavaTM Architecture for XML Binding (JAXB), May
2001. (http://www.javasoft.com)
Sun Microsystems: JavaDataObjects, version 1.0, 2000. (http://jcp.org/aboutJava/communityprocess/first/jsr012/index.html)
W3C. Simple Object Access Protocol (SOAP) 1.1, May 2000 (http://www.w3.org/TR/SOAP).
W3C, XML Schema Part 2: Datatypes XML, May 2001 (http://www.w3.org/TR/xmlschema-2)
Xerox. AspectJ: Aspect-Oriented Programming Using Java Technology.
http://aspectj.org.
JavaWorld: Aspect-Oriented Programming.
http://www.javaworld.com/javaworld/jw-01-2002/jw-0118-aspect.html
http://www.javaworld.com/javaworld/jw-03-2002/jw-0301-aspect2.html
http://www.javaworld.com/javaworld/jw-04-2002/jw-0412-aspect3.html
Other Articles on Software Reality:
Programming Language Lifecycles
Research Projects
<< Back to Page 1 (Introduction & Message Forum)
<< Back to Programming
|