Simplicity Professional
Before we talk about Simplicity Professional,
I want to talk a bit about Visual Basic.
Visual Basic has become one of the
more popular programming languages in business today not, as some might suspect,
because a lot of people know the language, but because many more people don't
have to. One of the selling points behind Microsoft's Visual Basic is that "any
idiot can use it" (and, according to its detractors, any idiot does.)
I have heard horror stories about
the bloated monstrosities that Visual Basic can produce in terms of applications
-- things that would be only a fourth of their size if a "real programmer"
had been told to create a similar tool -- but the other side of the coin is that
non-programmers suddenly had a way to create little useful applications for their
own purposes without having to go to a programmer to get it done.
It's not that clear-cut, of course.
Visual Basic did have a learning curve, and in truth if you actually knew
the language you'd be able to do a lot more with it. But Visual Basic's strength,
and it is a strength regardless of what its detractors say, is that it makes programming
applications a lot more accessible. A very useful tool when you need an application
that does something specific and simply, and you don't want to pay a programmer
$80 an hour to get it when you can do it yourself just as easily.
I mention Visual Basic because, in
my opinion, Simplicity and Simplicity Professional have the potential to do for
Java what Visual Basic did for Microsoft. Data Representations claims that you don't
have to know how to program Java in order to create useful Java applications and
applets, and they're absolutely right... once again, any idiot can use this program.
Of course, someone who knows how
to program in the Java language will be able to do more with it than people who
don't... however, Simplicity and Simplicity Professional allow you to essentially
point-and-click your way through building an application without writing a single
line of code.
Background
I was first introduced to Simplicity
two Warpstock's ago, in Chicago. Carl Sayers, the man behind Simplicity, was giving
a demonstration of the product, which I politely listened to, excused myself from,
and ultimately forgot about.
Next year, in Atlanta, I saw the
same presentation -- but this time, I actually paid attention. Carl used Simplicity
to create a Java-based text editor, without writing a single line of code. It had
undo/redo features, copy, cut and paste features, the ability to open and save files,
and the ability to print. He did this by using his mouse -- no typing in lines of
code that Simplicity didn't know how to handle. I was so impressed with this, I
bought a copy so I could show it to my boss. I played with it a little bit, but
got too distracted with other projects to really try and use it properly.
Now, Data Representations has released
Simplicity Professional, which does everything Simplicity did and then some (it
can also, among other things, interact with databases.) Simplicity was already a
flexible Java development environment for people who need to create end-user applets
and applications, and now it looks as though Data Representations plans on providing
the same level of utility for server-side Java application development.
Installation
Simplicity and Simplicity Professional
not only create Java programs, they are Java programs. This write-once, program
anywhere philosophy means that any platform that supports Java can run it. This
also means that this tool will not suddenly "go away" for specific platforms,
as certain other tools that shall remain nameless may or may not have done recently.
And, Simplicity's license is extremely flexible -- one license covers every operating
system you use. So if you run NT, OS/2, Linux, and Solaris, you can use the same
Simplicity license to develop your java applications instead of buying one per platform.
Installing Simplicity requires that
you have a supported version of Java on your machine -- for OS/2 users, it's a good
idea to have at least Java 1.1.8 and all of its extras (RMI support, the Swing classes
support) in order to use all of its features. Data Representations provides customized
downloads for many of its platforms: for example, the OS/2 version has an install
script that creates a WPS object that will launch Simplicity, the Windows version
has something similar. The biggest problem for some platforms will be how to properly
configure Java on your system (I still haven't figured out how to do properly configure
IBM's JDK on my Linux partition.)
Use
Simplicity's UI is very complete,
and a good example of exactly how far the Java environment has progressed since
the days of Java 1.02. It has everything you'd expect it to have, and all of the
windows behave the way application windows are supposed to behave.
When you start up Simplicity, you
are greeted by a mini-wizard that allows you to open up an existing project, start
a new project, or run the tutorial. I strongly suggest that people new to java run
the tutorial before using Simplicity outright... it's very useful and will enable
you to get a feel for all the options you have when using it to create an application.
If you decide to start a new project,
you are asked to name it and point to its directory (you may specify a directory
that doesn't exist and Simplicity will create it for you.) Then Simplicity will
create a very basic program component, and open up all of the tools you'll use when
working on your Java program or applet.
[click here for enlarged graphic]
Right off the bat, I noticed something
you'll need to keep in mind. I use Henk Kelders Fat32 IFS drivers so that I can
access my windows 98 files. DO NOT try to save your java applets on a Fat32 formatted
drive, Simplicity doesn't seem to handle it very well when you're in OS/2 (I suppose
that running it from Windows 98 would produce more useful results. Hopefully.) Creating
a project on an HPFS formatted partition worked flawlessly.
The two main areas you'll usually
work from are the Object Palette, a tabbed toolbox containing all the various java
parts you can include in your application, and the Simplicity Composer, a window
that allows you to fine-tune the properties of an individual java part. Along with
the Object Palette and the Simplicity Composer is the application itself, which
will actually work as you build it -- buttons will do what they're supposed to do
(after you've created them properly), you can open and close windows (once you've
assigned those functions), so you can sort of test it while you're designing it.
Initially, it starts out as an empty square pane, but as you develop your product
it will turn into the user interface for your application.
[click here for enlarged graphic]
Creating an application is as close
as you can get to drag-and-drop without being a drag-and-drop environment. Adding
a function to your program consists of three basic steps:
1. Choose the java object on the
Object Palette that you want to add to your application.
2. Click on the area of the application
where you want to add it.
3. Customize the settings on the
Simplicity Composer window so that the object behaves the way you want it to.
Depending on what the object does,
the settings will be different. For example, if you've chosen an object that defines
how large an area is, you will be able to define the height and width of the area
(in pixels). If you've chosen an object that is a button, you'll be able to place
text on the button (and images in some situations), define the font size, typeface
and format of that text, and assign actions to the button -- what happens when the
mouse passes over it? What happens the mouse clicks on it?
All objects can be given a unique
name, to make them more recognizable. "SaveButton" is usually easier to
recognize than "Button1", and if you're dealing with more than one button
in your project, naming them will make it easier for you to keep track of what they
do. And if you need to go back to an object you've already worked on, you can choose
it in the Simplicity Composer's drop-down list -- just select the object name and
that object's settings will appear in the window.
It's relatively easy to use this
to create a simple front-end for whatever application your building. It's only slightly
more difficult to make that front end do something.
For example, let's say you've created
a button and want it to do something. In most programs, you'd have to connect the
button to an action by writing your own code for it. You don't have to do that in
Simplicity -- you can use the tools it provides you to define what you want it to
do, and Simplicity will write the code for you.
None of the Java components in the
Object Palette default to responding to mouse clicks (not even the buttons), but
almost every object can be made to respond to its environment by clicking on the
Listeners tab in the Simplicity Composer window and specifying what the component
needs to react to. If something were going to happen as the mouse passed over the
object (for example, the color of text would change from blue to green) then you
could choose the "Listen for Mouse events" box, which would tell the object
"when something related to the mouse pointer happens in your area, you're going
to do something." You'd then click on the "Mouse" tab and choose
the type of mouse motion from the drop down list. If you choose "mouseEntered"
from the list, you're now telling the object "when the mouse enters your area
(i.e., when the mouse moves on top of the text) you will do something."
With buttons, it's a little easier,
because buttons are already created with a purpose in mind. You click on a button
in order to make something happen, so in the case of our little example above you'd
choose the "Listen for Action Events" box and then click on the newly
created "Action" tab. When you choose the action events option with buttons,
Simplicity assumes you're talking about clicking on it, you can skip over the extra
step of defining what that action is.
At this point, however, all the object
knows is that it's supposed to wait for a mouse click -- it doesn't have any information
on what to do when that happens. The next step is to give it something to do, which
you can do by either coding the action you want it to take in the field in the Action
tab (if you're familiar with the Java language) or you can allow the Code Sourcerer
to generate the code for you.
The Code Sourcerer is quite probably
the single most important and powerful feature in Simplicity that separates it from
other Java development applications. Essentially, it allows you to specify exactly
what you want something to do, getting more and more specific through a series of
screens, and eventually Simplicity will generate that code for you.
The Code Sourcerer essentially asks
you what you want to do by giving you a list of 13 categories of very general actions
to choose from, then takes you to screens that make those general actions more and
more specific, until finally it writes the code and inserts it in the proper place.
If you want to change a property of an object from something to something else,
you would choose that category on the initial screen, then you would choose what
object you want to work with, then what property you want to change, then what you
want to change it to, and so on. I will show you exactly how this works next month
when I create a Java program from scratch with Simplicity Professional.
Once you've done all you want to
do for the day, you can save your project to return to it later. Once you're finished
with your project you can compile it and start using it.
Analysis
Because I am not a Java Developer,
I can only give you a novice's analysis of this product -- that is, the opinion
of someone who has very little programming experience (and no Java programming experience
at all). All I can say is... wow. With Simplicity and Simplicity Professional it's
possible for me to write a Java application, or an applet to place on a web site,
with very little fuss and bother. I don't know that I'd try to create a large, complicated
application with it, but it can certainly be used to create small-to-mid sized programs,
and that's a lot more than I'd be able to create without it.
As a non-programmer, I enthusiastically
endorse Simplicity. It's a liberating program to use... I feel that, on the one
hand, the things I can do with it now, as a non-programmer, will allow me to be
able to start using Java in some of my documentation projects, and java applets
in some of my web design projects. I also feel that this will be a good tool to
help me learn the language itself, since I can actually see the code I specify through
the Code Sourcerer.
I suspect this will also be a fine
program for programmes who don't want to have to go through the chore of recreating
a programs user interface every time they start a new project. Those of you who
are upset with IBM's decision to discontinue Visual Age Java for OS/2, take a look
at Simplicity. An evaluation version is available on their site for download, and
it can be run from any platform that supports java. One license, many platforms.
It may in fact be the tool you're looking for.
Simon Gronlund has volunteered to
look at the application from a Guru's perspective, and that report will probably
be available in November if all goes well.
Next month I'll actually create an
application with Simplicity, and show you in more detail how the Code Sourcerer
works.
Simplicity for Java, $149 (US Dollars)
Simplicity Professional, $895 (US
Dollars)
Demos of both can be downloaded from
the Data Representations website.
You can purchase the product from their online store, as well.
|