Tuesday, September 21, 2010

Project 6 - Object oriented languages

JAVA, C++, Python, Object-C, Delphi, and Ruby

JAVA's Key Characteristics:
  • Platform Independent - programs written in Java can be run on any machine with JVM (Java Virtual Machine)
  • Simple - does not use pointers explicitly, harder to write a program in Java that crash the system, strong memory management and automatic memory allocation and deallocation
  • Robust - exception handling and type checking mechanisms, compiler checks the program whether there any error and interpreter checks any run time error and makes the system secure from crash.
  • Multithreaded
  • Interpreted
  • Architecture neutral
  • Fewer low-level facilities and simpler object model than C/C++
(source : Wikipedia)

C++'s Key Characteristics:
  • Statically typed
  • Free-form
  • Multi-paradigm
  • Compiled
  • General-purpose
  • Comprised of both high-level and low-level language features
  • Designed to support multiple programming styles (Procedural, data abstraction, OOP, generic)
(source: Wikipedia)

Python's Key Characteristics:

  • very clear, readable syntax
  • strong introspection capabilities
  • intuitive object orientation
  • natural expression of procedural code
  • full modularity, supporting hierarchical packages
  • exception-based error handling
  • very high level dynamic data types
  • extensive standard libraries and third party modules for virtually every task
  • extensions and modules easily written in C, C++ (or Java for Jython, or .NET languages for IronPython)
  • embeddable within applications as a scripting interface
(source: Python main page)

Object-C's Key Characteristics:
  • Reflective
  • Adds Smalltalk-style messaging to C
  • Used primarily on Mac OS X and iOS
  • Programming paradigms: OO, dynamic typing and reflection
  • Supports reflective features
Delphi's Key Characteristics:
  • Rapid Application Development tool for Windows
  • Easy to create forms based applications for Windows
  • Easy to pick up
  • Hundreds of thousands of third-party components
  • No runtime is needed (unlike other RAD tools)
  • The core of Delphi is its Object Pascal compiler
(Source: Delphi wiki)
    Ruby's Key Characteristics:
    • Dynamic and duck typing
    • Reflective
    • General-purpose
    • combines syntax of Perl and Smalltalk
    • Supports functional, oo, imperative and reflective programming paradigms
    • Interpreted
    • Succinct and flexible syntax
    • Exception handling
    • Implemented on all major systems
    (source: Wikipedia)

    Many of these languages share core elements in common, for instance Ruby, Python and Java all use exception based error handling. Ruby, Object-C, and C++ were all designed with the usage of multiple paradigms in mind. Ruby, Java, Python, and C++ were all built with multiple platform OSes in mind, however, Delphi was purpose built for Windows and Object-C was purpose built for Mac OS X.

    No comments:

    Post a Comment