Showing posts with label Development Tools. Show all posts
Showing posts with label Development Tools. Show all posts

Friday, October 09, 2009

What's Old Is New

So I was doing some surfing this week and I came across a product called Runtime Revolution. They claim to have some software that will:
Create outstanding applications yourself with a programming environment you can quickly understand. Achieve immediate results with a visual, drag-and-drop interface builder. Use English, the language you already know, to describe program logic. Deploy powerful cross-platform solutions without the huge learning curve of other development environments.
Well - being the geek that I am - I checked out their tutorials and videos, etc. I was looking at it and looking at it - and it seemed VERY familiar... turns out it is - it's HyperCard!!

Yeah, really, HyperCard! What the?!?

It seems that the passion for the product never died - and those Scottish coders (whomever they are) have been updating the products GUI capabilities while keeping all of the easy-to-use goodness and SmallTalk-based language basically intact.

The idea is that you can create extremely rich GUIs in a way that is MUCH easier than Flash, AIR, OpenLaszlo, etc. This thing runs (and can be edited) on Mac, Windows and Linux (Unix). It creates double-clickable applications for any platform - AND (using a browser plug-in) will work in the web - all with ZERO code changes!

Here's an overview of the features:
  • Author on your favorite operating system - Studio is available for Windows, Mac, Linux or Unix.
  • Create standalone applications for any platform with native appearance and behaviours
  • Fully-featured, English-like programming language with 1596 commands and functions
  • Extensible with code libraries and compiled externals you write yourself or obtain from third parties
  • Ability to automate system functions and "office" applications
  • Embedded web browsers.
  • Powerful libraries for manipulating Internet protocols, XML, compression, encoding/decoding
  • Your very own User Space with 10 MB free space to share your stacks online.
  • Integrated connectivity for ODBC, MySQL, PostgreSQL SQLite and Valentina databases**
  • Flexible chunk expressions, regular expressions, arrays, and sorting functions for manipulating data
  • Complete printing and reporting facilities for professional output
  • Ability to run as CGI process on web servers

At it's most basic: it's an IDE. You simply drag your control to the form ("card") and then attach code to any one of the 1,000,000 events that are exposed. There is a full even hierarchy - so while you can attach a script to an individual object - you don't have to. You can attach it to the card (form) or the "stack" (application).

You have 100% FULL control over EVERYTHING in the entire GUI:
  • Windows including: modal, non-modal, palettes, stay on top, min size, max size, drag and drop events, title bar controls
  • Transitions/effects
  • Alpha masking
  • Custom button appearance
  • Geometry editor - for telling it how to resize individual elements when the form is resized
  • Support for custom radio buttons (and checkboxes)
  • Grid editor
  • Rich text, inline html (WITH images), list boxes, data grids (with icon types, auto-sort, drag column order, etc),
  • Graphics containers - including QuickTime containers and image containers that support multiple graphics formats as well as built-in graphs
  • Native vector graphics that include gradients, splines, polygons, boxes, ovals, lines, text, etc.
  • Full visual menu editor that works for popup menus as well as application menus
  • Tab controls
  • Scrollbar objects
  • Web browser object
  • Groups of objects that can be dragged, edited and moved at runtime - including nested groups that all work independently of each other
  • Dialog "sheets" and slide-out "drawers" (Mac OS only)
  • Main window can be a CUSTOM SHAPE - based on a background image(!)
  • Named property "profiles" - for defining any (or all) of an object's properties and then switching them out (live) at runtime
  • Etc

In short - it's an extremely rich GUI builder that exposes all the events and types of things that you could ever want when building an application.

Yeah, but what about the code?

The coding language is an offshoot of SmallTalk - and is English-based.

put the height of field "Text" into myVar

put the width of image "My Image" + 17 after field "Values"

if item 1 of the location of me > zero then beep

set the loc of button "OK" to 32,104

set the name of field "Old Name" to "New Name"

select after text of field "New Name"


Yeah, it's fairly verbose - but very straight forward. You can do anything you want - including working with arrays, calling external plug-ins (written in C), pass events to individual objects, create functions, etc.

Oh yeah, and it's object oriented (all the properties of objects inherit the properties of objects higher in the hierarchy). For example - if you don't specify a background color for a field - it will take the background color of the card, or stack.

Yeah, but what about SQL stuff?

It supports ODBC - but also has native (direct access) connect to: Oracle, MySQL, SQLite, PostgreSQL, Valentina. It has a built-in query editor and you can "bind" field objects directly to database columns - so you don't have to write your own SQL for inserts/updates/deletes - it's all handled automatically.

Of course, you can also run your own queries and get your own datasets and do stuff with it (like you can in any other coding environment) - and you can dynamically change the binding on a field object at any time (at runtime).

You can create databases and table (and alter their schema) ON-THE-FLY - and you can programatically create new objects and bind them to your new table(s) at runtime(!!).

OK - so what's missing?
  • Automatic data broadcasting
  • Native HTML/CSS browser implementation (you have to use a browser plug-in)
  • Multi-developer (SVN/CVS) support
  • Runtime fees (the "Media" edition is free, "Professional" is $249 and "Enterprise" [allows native connection to Oracle] is $499). There are ZERO other fees.
This thing sounds VERY cool - and sounds like it will be a welcome addition to my toolbox!

Friday, October 03, 2008

Choosing A Dev Tool

I came across an eWEEK article "Armed & Ready" in the August 2008 issue - written by journalist Frank Ohlhorst - and found it to be very interesting.

The article talks about development tools - and how to choose them. He has a look at Servoy and Alpha 5 - as well as a look at customers who are using those tools in the SaaS businesses. One of the most striking things was an outline in a sidebar.

In the article Frank outlines the "7 Criteria For Choosing The Right Tool" - and it sounds like it was custom-designed to describe exactly what Servoy is although the context is from a developer who chose to go with Alpha 5. NOTE: The sections below in italics are my comments and they did not appear in the original article:

  1. Commonality: A single development model has to cover both desktop and web users, and support native RDBMS, SQL Server, MySQL and PDF reporting. They didn't mention Sybase, DB2, Oracle, PostgreSQL, etc. that Servoy supports - but hey, you get the idea.

  2. Speed of Development: The tool must have a professional IDE that reduces or eliminates the need for handwritten code. Eclipse is the most-used IDE on the plant - and code samples allow you to get fully working code in a single click.

  3. Performance: The tool has to be on par with desktop-only applications. Of course performance is important - but so is scalability. Any product is "fast" with a single user!

  4. Ease of use: Language tools are intuitive and allow faster development than Visual Basic, PHP or others. Yes - especially these days. You want your tool to be more productive, and not less productive. That's why we've done a direct comparison between Servoy and .NET.

  5. Versatility: There is complete end-user customization of forms, field rules (via XML) and styles (via CSS). In Servoy you can also extend and integrate the environment itself via Java.

  6. Integrity: All processing is centralized There would be no client/server or thick client updates. We totally agree - that's why Servoy's Web Client processing is all done on the server side - maximum performance, maximum security, maximum concurrency.

  7. Functionality: Extensive use of standard library functions cover just about anything, including instance XML DOM manipulation, instead of having to use third-party libraries or extensive custom development. Servoy has it - CHECK!

While I was reading the quotes from the developers using Alpha 5, I could have SWORN they were talking about Servoy! So, I had to check it out for myself.

I went up to the Alpha 5 site and checked out their video library. After watching about a dozen or so movies - I couldn't help but come away with a some thoughts:

  1. Dialog boxes... sorry Wizards... sorry "Genies"... are nice - the first time you do something - but I would absolutely stick a pencil in my eye if I had to go through that many dialogs every time I wanted to do anything;

  2. They have some "interesting ways" of doing common tasks (some good and some awful);

  3. If the dialogs are going to just generate code on the back end - then just generate code. Don't try to create dialog boxes that have every single possible permutation of things that you can do in two lines of code with parameters;

  4. You still have a proprietary DATABASE? WTF? This is 2008!

  5. "Active Link Tables" - or copying the schema of a SQL table in your own proprietary database and then doing "silent" SQL calls (a la FileMaker 9) seems like MUCH more work, setup and maintenance than just acting directly against the table or view;

  6. Ummm... got a Mac or Linux or Solaris version? Anybody?

Ah well, that's just my opinion. I'm sure that if you've used it for years that you're used to the complex interface and the literally hundreds of options, links, states, modes, control panels, and all the other stuff that they've put in there to try to make it more approachable.

I guess if you're going up against developers who are using other kinds of desktop databases - then that might be a good approach.

The bottom line is - use the right tool for the job - and use one that will help you be MORE productive, accomplish more in less lines of code, have a single development paradigm for both web and client/server apps - and one that is based on open standards and links to any (and every) standard SQL database on the planet.

Ummm.... that would be Servoy, in case you missed the reference...

Web Analytics