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 |
 |
 |
 |
( #N4 ) |
 |
| Structured expressions |
 |
 |
 |
 |
 |
| Global variables |
 |
 |
 |
 |
? |
| Exception handling |
 |
? ( #N1 ) |
 |
 |
 |
| Array bound checking |
 |
 |
? ( #N3 ) |
 |
 |
| High level iterators |
 |
 |
 |
 |
 |
| Inheritance and polymorphism |
 |
 |
 |
 |
 |
| Automatic memory management |
 |
 |
 |
? ( #N5 ) |
( #N6 ) |
| Pre and postconditions |
 |
 |
 |
 |
 |
| Full Windows compatibility |
 |
 |
 |
 |
( #N7 ) |
| Applications easily deployed |
 |
? ( #N2 ) |
 |
 |
( #N7 ) |
|
|
|
|
Data Types (built-in)
|
|
|
Ubercode |
Visual Basic |
Borland Delphi |
Microsoft C/C++ |
C# and Java |
| Logical values (true/false) |
 |
( #N10 ) |
 |
( #N10 ) |
 |
| Integers and floating point |
 |
 |
 |
 |
 |
| Fixed point |
( #N8 ) |
( #N8 ) |
( #N8 ) |
 |
( #N9 ) |
| Dynamic strings |
 |
 |
 |
 |
 |
| Records/structs |
 |
 |
 |
 |
 |
| Resizable arrays |
 |
 |
 |
( #N13 ) |
 |
| Sets |
( #N11 ) |
 |
( #N12 ) |
 |
 |
| Lists |
 |
 |
 |
( #N13 ) |
 |
| Table/Dictionary |
 |
 |
 |
( #N13 ) |
 |
| Pointer type |
 |
 |
 |
 |
? |
| Abstract data types |
 |
 |
 |
? ( #N14 ) |
? ( #N14 ) |
| Database file support |
( #N15 ) |
( #N16 ) |
( #N16 ) |
( #N16 ) |
( #N16 ) |
|
|
|
|
Visual Object Types
|
|
|
Ubercode |
Visual Basic |
Borland Delphi |
Microsoft C/C++ |
C# and Java |
| Edit object (single/multi line) |
 |
 |
 |
( #N17 ) |
 |
| Radio button/Check box |
 |
 |
 |
( #N17 ) |
 |
| Push buttons/Bitmap buttons |
 |
 |
 |
( #N17 ) |
 |
| Scroll bars/Progress bars |
 |
 |
 |
( #N17 ) |
 |
| Combo box/List box |
 |
 |
 |
( #N17 ) |
 |
| List box with icons |
 |
 |
( #N17 ) |
( #N17 ) |
 |
| Pictures/Icons |
 |
 |
 |
( #N17 ) |
 |
| Label/Group box |
 |
 |
 |
( #N17 ) |
 |
| Shapes |
 |
 |
 |
( #N17 ) |
 |
| Menu/Clipboard/Screen |
 |
 |
 |
( #N17 ) |
 |
| Printer object |
 |
 |
 |
 |
 |
|
|
|
|
Window Types
|
|
|
Ubercode |
Visual Basic |
Borland Delphi |
Microsoft C/C++ |
C# and Java |
| Message box |
 |
 |
 |
( #N17 ) |
 |
| Message box (custom buttons) |
 |
 |
 |
 |
 |
| Input box |
 |
 |
 |
 |
 |
| List input box |
 |
 |
 |
 |
 |
| Dialog box object |
 |
( #N18 ) |
( #N18 ) |
( #N17 ) |
 |
| Scrolling Edit window |
 |
 |
( #N17 ) |
( #N17 ) |
? |
| Common dialogs |
 |
 |
( #N17 ) |
( #N17 ) |
 |
| Directory selection dialog |
 |
 |
 |
 |
 |
| External RC files |
 |
 |
( #N17 ) |
( #N17 ) |
 |
|
|
|
|
Package contents
|
|
|
Ubercode |
Visual Basic |
Borland Delphi |
Microsoft C/C++ |
C# and Java |
| Developer Environment/Debugger |
 |
 |
 |
 |
 |
| Native code compiler |
 |
( #N19 ) |
 |
 |
( #N19 ) |
| Detailed on-line help |
 |
 |
 |
 |
 |
| Printed manual |
 |
 |
( #N20 ) |
( #N20 ) |
? |
| Library source code |
? ( #N21 ) |
 |
 |
? ( #N21 ) |
 |
|
|
|
|
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 ( #N22 ) |
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.
|