Computer Programming Languages

Historical perspective:

A comparison of programming languages:

Item Visual Basic Object Pascal C++ PowerScript Java  
Derivation Basic Pascal C Powerbuilder Sun Java  
Ease of use high high low-medium medium-high medium-high  
Platforms Windows incl. CE Windows, not CE yet Windows, others Windows, Mac, Unix Most  
Limitations moderate minimal very minimal high moderate  
OOP:            
  • inheritance

  single but can mimic multiple via interfaces & aggregation single and multiple or use of aggregation not protected or private inheritance    
  • encapsulation

  yes private, protected, public sections yes, private, protected, public sections      
  • polymorphism
  yes if method declared as virtual yes if method declared as virtual      
  • abstraction
  yes yes      
             
method overloading   yes yes      
function overloading   yes yes      
operator overloading   no? yes      
virtual methods   yes yes      
dynamic dispatching of methods   yes no      
in-line methods   no yes      
delegation   yes no      
pointers   yes yes no    
linked lists   yes   no    
dynamic arrays   yes yes yes    
datatypes:            
  • TYPE variables
  yes   no    
  • arrays within type variables
  yes   no    
  • 64bit integers
no yes   no    
  • bit arrays
no yes   no    
  • byte variables
  yes   no    
  • enumerated types
  yes   no    
             
Declare class within another class   yes yes no    
Runtime type information   yes yes no    
Set handling   yes   no    
Inline compiler no yes yes no    
Range checking   yes (can turn off) yes no    
Type checking   yes yes      
Memory management   Record in VMT; dynamic objects only, no custom memory allocation routines Struct in VMT; static, automatic & dynamic objects;memory allocation;      
             
Component creation:            
  • native IDE fully debuggable components
no ??MFC's yes yes no ??PFC's    
  • ActiveX
no?? yes yes no    
  • ActiveForms
yes yes yes no?    
  • DLL
no yes yes no    
Protocol support:            
  • DCOM
yes yes yes yes?    
  • CORBA
no yes yes no    
  • CGI/NSAPI
yes yes yes yes?