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 |
 |
 |
 |
4 |
 |
Structured expressions |
 |
 |
 |
 |
 |
Global variables |
 |
 |
 |
 |
? |
Exception handling |
 |
? 1 |
 |
 |
 |
Array bound checking |
 |
 |
? 3 |
 |
 |
High level iterators |
 |
 |
 |
 |
 |
Inheritance and polymorphism |
 |
 |
 |
 |
 |
Automatic memory management |
 |
 |
 |
? 5 |
6 |
Pre and postconditions |
 |
 |
 |
 |
 |
Full Windows compatibility |
 |
 |
 |
 |
7 |
Applications easily deployed |
 |
? 2 |
 |
 |
7 |
|
|
|
|
Data Types (built-in)
|
|
|
Ubercode |
Visual Basic |
Borland Delphi |
Microsoft C/C++ |
C# and Java |
Logical values (true/false) |
 |
10 |
 |
10 |
 |
Integers and floating point |
 |
 |
 |
 |
 |
Fixed point |
8 |
8 |
8 |
 |
9 |
Dynamic strings |
 |
 |
 |
 |
 |
Records/structs |
 |
 |
 |
 |
 |
Resizable arrays |
 |
 |
 |
13 |
 |
Sets |
11 |
 |
12 |
 |
 |
Lists |
 |
 |
 |
13 |
 |
Table/Dictionary |
 |
 |
 |
13 |
 |
Pointer type |
 |
 |
 |
 |
? |
Abstract data types |
 |
 |
 |
? 14 |
? 14 |
Data Source support |
15 |
16 |
16 |
16 |
16 |
|
|
|
|
Visual Object Types
|
|
|
Ubercode |
Visual Basic |
Borland Delphi |
Microsoft C/C++ |
C# and Java |
Edit object (single/multi line) |
 |
 |
 |
17 |
 |
Radio button/Check box |
 |
 |
 |
17 |
 |
Push buttons/Bitmap buttons |
 |
 |
 |
17 |
 |
Scroll bars/Progress bars |
 |
 |
 |
17 |
 |
Combo box/List box |
 |
 |
 |
17 |
 |
List box with icons |
 |
 |
17 |
17 |
 |
Pictures/Icons |
 |
 |
 |
17 |
 |
Label/Group box |
 |
 |
 |
17 |
 |
Shapes |
 |
 |
 |
17 |
 |
Menu/Clipboard/Screen |
 |
 |
 |
17 |
 |
Printer object |
 |
 |
 |
 |
 |
|
|
|
|
Window Types
|
|
|
Ubercode |
Visual Basic |
Borland Delphi |
Microsoft C/C++ |
C# and Java |
Message box |
 |
 |
 |
17 |
 |
Message box (custom buttons) |
 |
 |
 |
 |
 |
Input box |
 |
 |
 |
 |
 |
List input box |
 |
 |
 |
 |
 |
Dialog box object |
 |
18 |
18 |
17 |
 |
Scrolling Edit window |
 |
 |
17 |
17 |
? |
Common dialogs |
 |
 |
17 |
17 |
 |
Directory selection dialog |
 |
 |
 |
 |
 |
External RC files |
 |
 |
17 |
17 |
 |
|
|
|
|
Package contents
|
|
|
Ubercode |
Visual Basic |
Borland Delphi |
Microsoft C/C++ |
C# and Java |
Developer Environment/Debugger |
 |
 |
 |
 |
 |
Native code compiler |
 |
19 |
 |
 |
19 |
Detailed on-line help |
 |
 |
 |
 |
 |
Printed manual |
 |
 |
20 |
20 |
? |
Library source code |
? 21 |
 |
 |
? 21 |
 |
|
|
|
|
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
- On error goto provides a basic form of exception handling.
- 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.
- In Delphi the $R+ compiler option is required to enable run time
array bound checks.
- 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.
- In C++, automatic memory management is possible using the automatic
destructor call when an auto object falls out of scope.
- Java and C# use garbage collection. Opinion is divided on whether garbage
collection is a good thing.
- 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.
- Uses Currency type, an 8-byte fixed point number.
- Uses Decimal type, a 16-byte fixed point number.
- These languages do not have a true boolean data type. Instead they allow
integer values to use boolean operators.
- Elements must be integer, and up to 512,000 elements can be
stored.
- Elements must be integer, and up to 255 elements can be stored.
- 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.
- The implementation of abstract data types does not support preconditions
and postconditions, therefore class validation is not possible.
- Using XML and Dbase files.
- Using ODBC or external libraries.
- The implementation uses the low level Windows programming interface (the
Win32 API).
- These languages use the term Form for dialog boxes.
- 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.
- Documentation is available on the distribution disks, and extra
documentation is usually available at the vendors website.
- Source code is available for a substantial part of the run time
library.
- The size refers to the size of the installed package, after a default
installation from the supplied disks.
|