Compare 8th

How does 8th compare to other languages?

The cross-platform development tool arena is a busy one. We are often asked how 8th™ compares with Java, or with PhoneGap or other competing products. Each product has its strengths and weaknesses, 8th included. Here are the major technical differences between 8th and other languages — obviously, not all the differences apply equally to all other languages.

8th generates “native code”, it does not use a “VM”

Some languages are compiled to an intermediate code which runs inside a “VM”, or virtual machine. This is a layer of protection, since typically the VM severely restricts access to the underlying physical machine. It can also slow the overal program since access to the machine goes through the VM as an intermediary.

8th generates native-code for the machine on which the program is running. The 8th “runtime” provides machine-specific support, and the core words 8th exposes to the programmer. But the actual code executes directly on the machine’s CPU, not in a VM.

8th does not run inside a browser

One very common method of providing cross-platform support, in particular for mobile devices, is to create a web-browser application environment in which the actual code is run.

This solution often restricts the programmer to whatever features the browser exposes, typically runs inside a VM, and usually makes it very easy to access the program’s code from outside the program itself.

8th does not run inside a browser; as mentioned above, it generates native code. The GUI it exposes is common across all platforms, and (currently, for some) provides a web-browser control if the programmer wishes to use or display HTML etc.

8th secures your code

Most languages compile your code to an appropriate platform-specific binary executable format, on the development machine. The executable is then deployed to the device. Some languages package your code as plain-text source-code in a browser or other similar environment. And some languages simply run plain-text scripts. All of these allow your intellectual-property to be easily recovered, and possibly modified.

Of course 8th allows you to create “Open Source” software, but there are times when intellectual property (or application integrity) needs to be protected. 8th lets you choose, and offers strong protection if needed.

All versions of 8th, including the Free version, can run your program as a script; and by using the build tool, you can create a standalone executable. The build tool compress your program code and all its required bits and pieces into a ZIP-format blob which is unpacked, compiled and run on the device when needed. It is difficult to modify the ZIP-data without corrupting the deployment package.

Users of the Professional version can also create a signed, encrypted version of the deployment package. This makes it impossible to modify the deployed executable and run it (thus preventing subtle attacks). It also makes it very difficult to recover the original intellectual property, though that is not impossible.

8th is truly “write once, run anywhere”

There are many claimants to the title of “write once, run anywhere”. The ones we’re familiar with require different code for different platforms, and/or have different appearance on the different platforms, and/or limit functionality based on the platform.

8th’s approach is to expose literally identical interfaces for almost everything, on all platforms. The GUI is identical (and self-contained). The majority of code (up to 100%) is identical.

And yet, it is still possible to write platform-specific code if necessary. The “FFI” (foreign function interface) allows accessing external libraries, which of necessity are platform-specific. Users of the Professional version have access to an optional assembly-language library so very machine-specific code might be written. However, most programmers are content to avoid writing platform-specific code.