Software Reality
Programming with
a dose of satire.

Site Map Search


Agile Development
 
Extreme Programming
 
Code Generation


Articles
Lifecycle
Design
Programming
Soapbox
Reviews
Cthulhu

Java Swing
Swing's greatest threat isn't SWT, it's Flash
Swing Survival Guide


 
Check out our ageing Reviews Section


Use Case Driven
Use Case Driven Object Modeling with UML: Theory and Practice
Get from use cases to working, maintainable source code. Examples use Spring Framework, JUnit and Enterprise Architect

Agile UML
Agile Development with ICONIX Process
A practical subset of agile development techniques, illustrated by example

Get Controversial!
Extreme Programming Refactored
Extreme Programming with a dose of satire
Available now:



Programming

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

All trademarks and copyrights on this page are owned by their respective owners.
Stories and articles are owned by the original author.
All the rest Copyright © 1998-2008 Matt Stephens. ALL RIGHTS RESERVED.