Computer Languages - Feature Matrix

 


Computer Languages Feature Matrix

The following matrix of computer language features compares Ubercode to other common languages (Visual Basic, Borland Delphi, Microsoft C/C++, C# and Java). A green tick means the feature is used, a red cross means it is not used, and a question mark means either it is partly implemented, or it means the answer is not known. A lot of care was taken to make sure the tables are correct. If you spot any errors use the links at the end of the page to send email.



Language Features


Ubercode Visual Basic Borland Delphi Microsoft C/C++ C# and Java
Constant expressions Yes No Yes Yes 4 Yes
Structured expressions Yes No No No No
Global variables No Yes Yes Yes ?
Exception handling Yes ? 1 Yes Yes Yes
Array bound checking Yes Yes ? 3 No Yes
High level iterators Yes Yes No No Yes
Inheritance and polymorphism Yes No Yes Yes Yes
Automatic memory management Yes Yes No ? 5 Yes 6
Pre and postconditions Yes No No No No
Full Windows compatibility Yes Yes Yes Yes No 7
Applications easily deployed Yes ? 2 Yes Yes No 7




Data Types (built-in)


Ubercode Visual Basic Borland Delphi Microsoft C/C++ C# and Java
Logical values (true/false) Yes No 10 Yes No 10 Yes
Integers and floating point Yes Yes Yes Yes Yes
Fixed point Yes 8 Yes 8 Yes 8 No Yes 9
Dynamic strings Yes Yes Yes Yes Yes
Records/structs Yes Yes Yes Yes Yes
Resizable arrays Yes Yes No No 13 No
Sets Yes 11 No Yes 12 No No
Lists Yes No No No 13 No
Table/Dictionary Yes No No No 13 Yes
Pointer type No No Yes Yes ?
Abstract data types Yes No No ? 14 ? 14
Data Source support Yes 15 Yes 16 Yes 16 Yes 16 Yes 16




Visual Object Types


Ubercode Visual Basic Borland Delphi Microsoft C/C++ C# and Java
Edit object (single/multi line) Yes Yes Yes Yes 17 Yes
Radio button/Check box Yes Yes Yes Yes 17 Yes
Push buttons/Bitmap buttons Yes Yes Yes Yes 17 Yes
Scroll bars/Progress bars Yes Yes Yes Yes 17 Yes
Combo box/List box Yes Yes Yes Yes 17 Yes
List box with icons Yes Yes Yes 17 Yes 17 Yes
Pictures/Icons Yes Yes Yes Yes 17 Yes
Label/Group box Yes Yes Yes Yes 17 Yes
Shapes Yes Yes Yes Yes 17 Yes
Menu/Clipboard/Screen Yes Yes Yes Yes 17 Yes
Printer object Yes Yes No No No




Window Types


Ubercode Visual Basic Borland Delphi Microsoft C/C++ C# and Java
Message box Yes Yes Yes Yes 17 Yes
Message box (custom buttons) Yes No No No No
Input box Yes Yes No No No
List input box Yes No No No No
Dialog box object Yes Yes 18 Yes 18 Yes 17 Yes
Scrolling Edit window Yes No Yes 17 Yes 17 ?
Common dialogs Yes Yes Yes 17 Yes 17 Yes
Directory selection dialog Yes No No No Yes
External RC files Yes No Yes 17 Yes 17 No




Package contents


Ubercode Visual Basic Borland Delphi Microsoft C/C++ C# and Java
Developer Environment/Debugger Yes Yes Yes Yes Yes
Native code compiler Yes No 19 Yes Yes No 19
Detailed on-line help Yes Yes Yes Yes Yes
Printed manual Yes Yes No 20 No 20 ?
Library source code ? 21 No No ? 21 No




System requirements


Ubercode Visual Basic Borland Delphi Microsoft C/C++ C# and Java
Processor Pentium Pentium Pentium Pentium Pentium
Memory 64MB ? 32MB ? 128MB
Windows version Any ? Any Any Win NT series
Disk space 22 50MB ? 60MB ? 500MB

Footnotes

  1. On error goto provides a basic form of exception handling.
  2. In theory Visual Basic applications can be deployed to any version of Windows. However, considerable testing is needed to ensure ActiveX control objects are deployed and registered correctly.
  3. In Delphi the $R+ compiler option is required to enable run time array bound checks.
  4. In C/C++, constant expressions are implemented using the pre-processor, the compiler's literal string concatenation facility, and the const modifier for pseudo-constants.
  5. In C++, automatic memory management is possible using the automatic destructor call when an auto object falls out of scope.
  6. Java and C# use garbage collection. Opinion is divided on whether garbage collection is a good thing.
  7. Java and C# require the installation of a runtime environment before applications can be deployed. The runtime does not work under all versions of windows, and there are different versions of the runtime with incompatibilities between them.
  8. Uses Currency type, an 8-byte fixed point number.
  9. Uses Decimal type, a 16-byte fixed point number.
  10. These languages do not have a true boolean data type. Instead they allow integer values to use boolean operators.
  11. Elements must be integer, and up to 512,000 elements can be stored.
  12. Elements must be integer, and up to 255 elements can be stored.
  13. C++ provides support for resizable arrays using the CArray class, resizable lists using CList and dictionaries using CMap. These types are not built-in to the language but are supplied by add-on libraries. Also CArray can only be zero-based, CList is implemented via linked lists which are inefficient for indexed access, and CMap does not support multiple index types.
  14. The implementation of abstract data types does not support preconditions and postconditions, therefore class validation is not possible.
  15. Using XML and Dbase files.
  16. Using ODBC or external libraries.
  17. The implementation uses the low level Windows programming interface (the Win32 API).
  18. These languages use the term Form for dialog boxes.
  19. These languages do not generate native code EXE files. They generate interpreted code, or intermediate code which is compiled when the application runs. In some cases the interpreter or JIT compiler is merged together with the intermediate code into an EXE file, in order to delude the unwary.
  20. Documentation is available on the distribution disks, and extra documentation is usually available at the vendors website.
  21. Source code is available for a substantial part of the run time library.
  22. The size refers to the size of the installed package, after a default installation from the supplied disks.