With VisualWorks 5i, live browser based content finally arrives for
Smalltalk. Smalltalk applets give developers a way to deliver dynamic applications
to a web browser, whether it’s IE or Netscape. With VisualWorks 5i applets,
there’s a whole new world for Smalltalk, and this document will explain
why Smalltalk is a better choice than Java for delivering live browser
applications.
First, what is the VisualWorks Smalltalk plug-in ?
-
It is a customized Smalltalk image that communicates with
the Netscape (or IE) browser
-
It runs (initially) on Windows and Linux
-
It has direct access to the browser’s main window
-
It allows VisualWorks Smalltalk to run in a browser with
no limitations
-
It allows for HTTP based communication with a server
Smalltalk or Java ?
Why is it better than Java ?
-
A Java applet runs in a sandbox; as such, it forces an architecture
-
Either fully standalone
-
Communication with the launching server only
This severely limits what a Java applet can do; it’s
the primary reason that Java applets have a very limited presence on the
web. Intranet developers primarily avoid the browser, instead writing Java
applications. In other words, one of the primary initial selling points
for Java has been defeated by the limitations imposed on it.
-
The Java sandbox is not really safe; Java allows for enough
reflection to spoof the security protocols and run hostile code on the
client.
-
This means that as a developer, you live with restrictions
for no good reason !
-
For this reason, Sun has started to ship the capability to
run outside the sandbox with digital signatures
ActiveX components do not live with a sandbox; neither
do other plugins. For this reason, Sun is now moving towards a digital
signature based system. Even so, they are still very tied to the sandbox.
-
The VisualWorks plugin ships with a framework for digital
signatures. Thus, if you trust the sender, the applet has full capabilities.
This is what all other solutions do; it is what Java is slowly moving towards.
-
VisualWorks does not run in the browser’s address space,
and it does not necessarily need to have a running browser in order to
work. This means that instability in the browser does not affect
the Smalltalk applet; a Java applet is at the mercy of the browser’s stability.
This means that the developer of a Smalltalk applet can control the stability
of their solution, while the Java developer cannot !
A Java applet is completely at the mercy of the browser.
If the browser crashes, the applet is taken down with it as it runs inside
the browser’s address space. It’s very difficult to run disparate systems
in the same address space; VisualWorks doesn’t do this. For this reason,
VisualWorks is a lot more stable as an applet than is Java.

-
Smalltalk is more productive than Java; it’s an easier language
to learn, and allows developers to bring solutions to market faster. Developers
targeting the web are very interested in time to market; VisualWorks wins
hands down here.
Smalltalk has five reserved words and an extremely
simple syntax. A lot of companies are trying to transition legacy Cobol
and VB developers into objects. Java erects two roadblocks to productivity
and learning:
-
C based syntax. For developers who aren’t from a C/Unix background,
the arcane syntax used by Java is hard to learn. There are a lot of rules
to follow, and a lot of special cases.
-
Hybrid Object Model. Smalltalk is all objects; Java has objects
and primitive data types. This makes for a hybrid development model, and
for systems that are harder to maintain and understand – some things understand
messages, some things don’t. In Smalltalk, it’s completely consistent,
and consistency aids learning and shortens the learning curve.
-
Smalltalk applets do not require a special construction methodology;
Java applets are constructed differently from Java applications. A Smalltalk
developer can create an applet from an existing application, or move an
applet off the browser with no effort. A Java developer cannot do this.
Java applets not only must live within a sandbox,
they must be constructed differently from java applications. This can mean
extra maintenance for developers needing to create web based as well as
client based versions. Smalltalk applets are constructed in exactly the
same way as are Smalltalk applications – you don’t need to learn different
rules based on the targeted platform.
-
Smalltalk applets can take advantage of the full range of
VisualWorks capabilities (database connects, file system access, COM, CORBA,
HTTP, CICS, MQS). Java applets are extremely constrained by their sandbox,
limiting their usefulness in an intranet application
Java applets can really only communicate directly
with the server that launched them. This limits the range of what they
can do, and the range of enterprise capabilities they can access. A Smalltalk
applet does not live with these restrictions, so the developer is free
to communicate with all existing corporate resources using whatever existing
messaging infrastructure is in place. The Java applet simply cannot do
this in a straightforward way.
-
VisualWorks is truly binary portable; Smalltalk applets will
work on all VisualWorks platforms. It is very difficult to get Java
applets to work across disparate browsers and JVM’s.
VisualWorks applications are ported via a binary
FTP; Java applets (and applications) are ported by tweaking across multiple
JDK releases and multiple vendor VM’s. Since Cincom controls the Smalltalk
VM, the porting cost aproaches zero.
-
VisualWorks is more highly scaleable than Java. VisualWorks
allows full access to developers who need to tune the performance of the
system; Standard Java allows only minimal tuning capabilities.
In any large system, the performance of an application
will require tuning of the memory management system. In a standard JVM,
a developer has access only to the minimum and maximum memory sizes; they
cannot specify the sizes of the various VM memory zones; nor can they specify
the garbage collection policy. The VisualWorks developer has complete control
of the sizes of all VM memory zones, as well as the policy of the GC system.
The difference between a highly performing server and a poorly performing
system is the tuning of these parameters. If a developer cannot modify
these parameters, then it becomes very difficult to ensure optimal performance.
-
VisualWorks Smalltalk is a far more mature and stable system
than Java, so developers can count on a system that is not under early
development strain.
Sun is still trying to mature the various JDK libraries,
and is constantly trying to churn out new ones. There are many inconsistencies
in these libraries, and Sun’s desire to create a ‘whole’ platform has driven
them to favor creation of new code rather than the maturation of existing
code. Given this, Java developers must not only build an application, they
must work around various immature aspects of the JDK. VisualWorks Smalltalk
developers do not have a perfect system, but they do have one that has
seen close to twenty years of maturation; the core libraries are stable,
mature, and field tested. The Smalltalk developer has far more time to
focus on application development as a result.

In Summary: Here’s Why Smalltalk is a better choice than
Java !
-
Smalltalk applets use industry standard security methods to verify applet
safety !
-
Smalltalk applets run the in browser, but will not crash in the event
of a browser crash !
-
Smalltalk applets are easier to build than Java applets, allowing developers
to get to market faster !
-
Smalltalk applets can use the full, rich feature set of VisualWorks
!
-
Smalltalk applets are fully binary portable across all supported platforms
– not write once, debug everywhere !
-
Smalltalk applets can be tuned for performance in ways that the standard
JVM’s simply do not allow !
-
Smalltalk is a mature, robust, scaleable system – it’s growing, not
suffering growing pains !
Please send comments to: James A. Robertson