Compare 8th

8th compared to some of our competitors

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. Here are the major technical differences between “us” and “them”, for the major categories:

Java vs 8th

Java was invented in 1995 by Sun Microsystems, in an effort to provide “write once, run anywhere” programs. It was perhaps the first of its kind; because it has been around so long, it boasts legions of programmers as well as libraries covering almost any situation. The major points of difference between Java and 8th are:

  • Java programs run in a VM (virtual machine), which can slow down program execution even with “JIT compilation”; 8th compiles to native-code running directly on the target machine
  • Java makes it difficult and slow to access third-party libraries not written in Java, requiring special programming; 8th makes it very easy using its built-in FFI (foreign-function interface), even calling into Java code on Android
  • Java has a long history of security vulnerabilities, leading to it being phased out of many areas; 8th is designed with security in mind
  • Java is very verbose; 8th is only as verbose as you want it to be

PhoneGap vs 8th

PhoneGap is one of a growing class of products which let the developer write in HTML5 + CSS3 + Javascript, targeting an embedded web-browser which actually runs the user’s program. It first showed up around 2009, developed by Nitobi; that company was since purchased by Adobe. Compared to 8th:

  • PhoneGap applications are very slow because they run inside a web-browser, using JavaScript; 8th applications run as native-code on the target device
  • A PhoneGap application’s code is exposed for anyone to view; 8th can encrypt its code to help keep hackers at bay
  • Accessing external libraries in PhoneGap is even more difficult than it is with Java (see above)
  • PhoneGap only targets mobile platforms; 8th supports both mobile and desktop systems

Xamarin vs 8th

Xamarin is both a product and the company which produces it. First seen around 2011, Xamarin uses a dialect of the C# language called Mono, and a special run-time to provide a cross-platform solution. Xamarin is also used as a foundation for other tools, such as iFactr. Compared to 8th:

  • Xamarin UI code is not cross-platform: instead, the user needs to write specific code for each platform; 8th uses a unified GUI which looks and feels precisely the same across platforms
  • Xamarin often requires platform-specific coding; 8th does not
  • Xamarin doesn’t support Linux (even though Mono is supported on Linux); 8th does
  • With Xamarin, you still need to know ObjectiveC and Java; with 8th you don’t unless you need to write a native support library

“scripting languages” vs 8th

Unlike the other languages mentioned so far, 8th can also be used as a “scripting language” like Perl or Python. Those worthies have been around much longer, yet we feel 8th has several advantages:

  • Perl’s syntax is a nightmare of inconsistencies; 8th has a clean, minimalistic syntax
  • Python forces you to adopt rigid spacing conventions; 8th is happy if you’re happy
  • Often, new versions of languages break backward compatibility; 8th tries very hard to keep old code working, and carefully documents any big changes
  • Perl, Python, etc cannot easily create native executables; 8th can

Other Forth dialects vs 8th

The Forth language was initially invented around 1970 for controlling telescopes at an observatory. It was eagerly adopted in the “embedded” world and by hobbyists, and soon there were many dialects of Forth. Thus the statement, “if you’ve seen one Forth, you’ve seen one Forth”. Eventually a standard was developed, which the majority of Forths available today adhere to, more or less. A very quick comparison reveals:

  • Despite the standard, code written in one dialect of Forth may not be able to be used by another dialect; 8th has only one dialect
  • Most Forths are type-agnostic: the programmer determines what a “type” is; 8th is type-safe
  • Most Forths do not provide higher-level constructs; 8th has a full complement of containers and utility words
  • Most Forths are platform-specific; 8th is specifically designed to be cross-platform
  • Most Forths require the user to be actively involved in allocation of memory and other bookkeeping tasks; 8th handles memory allocations automatically as well as other such tasks
  • Very few Forths target mobile; 8th targets mobile development as well as desktop, server, and embedded