Java
  Home arrow Java arrow Page 3 - Combating the ‘Object Crisis’
Dev Shed Forums 
Administration  
Apache  
BrainDump  
DHTML  
Flash  
Java  
JavaScript  
Multimedia  
MySQL  
Oracle  
Perl  
PHP  
Practices  
Python  
Reviews  
Security  
Style-Sheets  
Web Services  
XML  
Zend  
Zope  
Forums Sitemap 
IBM® developerWorks 
Dedicated Servers 
E-Commerce Hosting 
Linux Web Hosting 
Managed Hosting 
Small Business Hosting 
Download TestComplete 
VPS Hosting 
Weekly Newsletter

 
Developer Updates  
Free Website Content 
IBM Developerworks
 RSS  Articles
 RSS  Forums
 RSS  All Feeds
Write For Us Get Paid 
Request Media Kit
Contact Us 
Site Map 
Privacy Policy 
Support 
 USERNAME
 
 PASSWORD
 
 
  >>> SIGN UP!  
  Lost Password? 
JAVA

Combating the ‘Object Crisis’
By: Jacquie Barker
  • Search For More Articles!
  • Disclaimer
  • Author Terms
  • Rating: 3 stars3 stars3 stars3 stars3 stars / 29
    2004-09-07

    Table of Contents:
  • Combating the ‘Object Crisis’
  • The Importance of Being 'Object Savvy'
  • What Factors Have Contributed to this 'Object Crisis'?
  • Conquering the 'Object Crisis'

  • Rate this Article: Poor Best 
      ADD THIS ARTICLE TO:
      Del.ici.ous Digg
      Blink Simpy
      Google Spurl
      Y! MyWeb Furl
    Email Me Similar Content When Posted
    Add Developer Shed Article Feed To Your Site
    Email Article To Friend
    Print Version Of Article
    PDF Version Of Article
     
     
     
    ADVERTISEMENT

    Stay one step ahead of the competition. Evaluate and give feedback on some of the hottest web development tools on the market today. Make your opinion heard! Click Here

    Combating the ‘Object Crisis’ - What Factors Have Contributed to this 'Object Crisis'?
    (Page 3 of 4 )

    Although the object paradigm has been embraced by the software engineering community at large for many years, there are still many professional software developers who are schooled only in procedural programming languages such as C, COBOL, BASIC, or Fortran. Many of these programmers are now looking to make the transition from procedural to object-oriented programming with Java or C#, but feel as though the object technology 'wave' has perhaps passed them by.  Motivated by career survival, they are seeking a 'quick fix' -- a single book or course that can transform them into Java- or C#-proficient software engineers.

    Meanwhile, organizations eager to harness the power of J2EE or .NET are attempting to retool their in-house programming staff, many of whom are senior procedural programmers, en masse in these technologies. Eager to do so in the quickest way possible, they fall prey to the notion that sending competent programmers -- especially C++ programmers, who are presumably already proficient with object-oriented programming (which is not necessarily the case, as we'll discuss in a moment) -- to Java/C# training will produce instant "Java/C# savvy". From there, they believe (incorrectly) that it's a short hop to training them in J2EE/.NET.

    What such individuals or organizations often don't realize, however, is that:

    • Most Java or C# training does only a cursory job of explaining object concepts. After a perfunctory lesson on "What is an object? What is a class?", instructors usually dive into the details of language syntax without giving participants a big picture appreciation for the nature of objects. Topics key to harnessing the full power of a language like Java or C# - e.g., encapsulation, information hiding, object collaboration, overriding, polymorphism - are not taught in depth, but rather are merely touched upon in passing, if at all. Students go through the motions of writing code "snippets", but don't truly understand the rationale for what they are doing.

    • Conversely, most traditional object training emphasizes object modeling techniques and the Unified Modeling Language (UML) notation in particular, but does not advise students on how to bridge the gap from a UML object model to a working Java or C# application. Hence, upon completion of such training, students are able to produce respectable class diagrams that do justice to the requirements of an application, but cannot translate such object "blueprints" into code.

    • Many software engineers who adopted C++ as a core programming language were 'born again' C programmers who gravitated to C++ as a better C. Such programmers were not compelled to learn the object paradigm beyond a superficial level because they were able to successfully write procedural C++ code upon merely learning C++ language syntax; that is, they became C++ programmers, but not necessarily OO programmers. Despite many similarities in the syntax of these three languages, Java and C# are both arguably more true to the object paradigm than is C++:  that is, Java and C# both provide fewer 'back doors' with which a programmer can escape the rigor of objects, as compared with C++. Those C++ programmers who never learned objects properly to begin with do not have a "leg up" on learning Java or C#, as management might hope they do, and hence organizations often underestimate what it will take to re-craft such programmers into capable OOPL developers.

    • The prevalence of drag and drop IDEs exacerbate the situation, because while such tools do indeed allow folks without object know-how to craft object oriented user interfaces, these UIs sit on top of a non-OO infrastructure. Like the Hollywood facade of a town in the Old West, an application built with such an IDE may appear to be object oriented, but scratch the surface and you'll see that that is where the appearance ends: there is a noticeable discontinuity between the OO front-end and a decidedly non-OO back-end.

    More Java Articles
    More By Jacquie Barker


       · I have worked as a teacher giving Sun's Java course SL-275. I must say thatSun's...
       · I am sorry to say I fit the description of programmer this article describes. Not...
       · Here are some...
       · Yes, this article certainly hits a nerve. There is certainly another level of...
       · Try Objects First with Java, a practical introduction using BlueJ. Excellent text...
       · As an Java(8 yrs) and .NET(3 yrs) instructor I agree. All parties involved, the...
       · This article does "hit the nail on the head". I've seen this a number of...
       · I am a Java Student, and I truly feel the OO crisis. It is very annoying to try to...
     

       

    JAVA ARTICLES

    - The Spring Framework: Understanding IoC
    - Introducing the Spring Framework
    - Java Classes
    - Completing the Syntactic Comparison of Java ...
    - Syntactic Comparison of Java and C/C++
    - Java Statements
    - Conditionals, Expressions and Other Java Ope...
    - Java Operators
    - Primitive Data Types and Basic Language Rule...
    - Java and Object-Oriented Programming
    - Java Beginning Programming
    - Gaming Development Setup
    - Using RPC-Style Web Services with J2EE
    - Integrating XML with J2EE
    - Taming Tiger: Concurrent Collections




    © 2003-2008 by Developer Shed. All rights reserved. DS Cluster 3 hosted by Hostway