SWD GmbH QNX-Logo Windows-Logo Linux-Logo
Home
About SW Datentechnik
News
Products
  Catalogue
  Bargain offer
  Data Sheets <
  Product assistant
  Technologies
Services
Documents
Contact Us
Search

de


Slang

The Programming Language for Rapid Application Development

Quick facts:

  1. Writing Slang code is easier than writing C code.
  2. Slang programs are small, fast and reliable. Slang programs have been running in control applications for many years (continuously).
  3. Slang is based on a LISP interpreter. This gives Slang some very unique abilities that you won't find in any other QNX development environment.
  4. Slang is easily embedded into today's smart appliances and web devices.

What you gain by using Slang

1. Reduce time to market.

Slang includes features that allow you to quickly develop applications for QNX and the Photon microGUI. Programming in Slang is similar to programming in C or C++. The real advantage of using Slang is that it is far easier to express complex algorithms and techniques using Slang than it is with C or C++. The ability to develop code more easily will reduce the time spent in developing products. You also spend less time debugging and refining the program during testing, because you can do this on-line, without interrupting the running application.

2. Upgrade running applications.

Slang programs can be modified while they run, in place, at the end user location. With Slang you never have to download a full executable program in order to provide fixes or enhancements. You simply download the parts of the Slang program that have changed. Then, as the application is running, the new code is invisibly transferred and executed, without a restart or interruption to what the customer is doing.

The time savings alone can be significant when you are able to send out upgrades and bug fixes in small chunks of code that are automatically handled and integrated by the appliance at the other end of the Internet connection. Small download time and uninterrupted performance at the customer site are just some of the reasons why Slang is perfect for developers of Internet Appliances.

3. Diagnose live systems.

Let your technical support team tackle end user problems by dialing directly into the customer site so that they can interact with the application in real-time. Diagnose problems on-line and have your appliance return useful information about system performance to your support team so they can remedy the problem immediately.

Using Slang, it is also possible to develop applications that are able to deal with errors themselves and react in a suitable manner. You can trap any system error and have the appliance call back and report faults, before the user sees any sign of a problem. Trapping errors and dealing with them effectively actually means you can produce 'crash-proof' appliances, at least from the end user's perspective.

4. Quickly prove a concept.

When developing new products, there is always a need to prove concepts as soon as possible. Slang allows you to rapidly develop a prototype application that can be quickly modified to follow the changes inherent in a development cycle. If you later choose to implement your production system in C, the screens you develop using the Photon Application Builder™ (PhAB) for your Slang prototype are 100% re-useable. You can even concurrently develop both Slang and C applications from the same set of PhAB screens, allowing you to interleave your prototype and production development cycles.

5. Extend the functionality of Slang.

You can extend the capabilities of Slang by adding your own C functions. This allows you to code resource intensive or highly specialized portions of your application in C, while retaining all the advantages of the Slang environment. The features we have built into Slang never limit you - just add functionality to do exactly what you want.

6. Customize Slang to meet your needs.

Here's something you don't see from every software vendor. Cogent has engineered over 400 functions into the Slang Development Language. These include support for all of the Photon widget set and support for Inter-process communication, plus much more.

Now let's say that you have defined the scope of your project and you are able to identify which parts of the Photon development environment are needed in your application and how many of the other features within Slang you need to use. Cogent can fully tailor a run-time Slang engine to include only the features and Photon support you require. This means that you can reduce the hardware requirements of your Appliance and deliver the finished product on a software platform customized for optimum performance.

Slang vs Java vs C comparison

We are often asked to compare Slang to other language such as C and Java. We have created the following table to try to highlight some of the differences and similarities that exist amongst these programming languages. For each property listed we have highlighted what we believe to be the most desirable of the three languages. Let us know what you think.

Property

C

Java

Slang

Running size (RAM requirement)

Small.

Large. Even small Java programs load a large amount of library code.

Medium. Run size converges on C run size as application becomes larger.

Disk size

Small.

Large. Large library hierarchy must exists on disk.

Medium. Disk size converges on C disk size as application becomes larger.

Computation Speed

Fast.

Slow. Large portions of system implemented in Java. CPU intensive functions can be written in C if necessary.

Slow. CPU intensive functions can be written in C if necessary.

GUI Speed

Fast.

Slow. GUI activity is always diverted through the interpreter.

Fast. GUI event path bypasses the interpreter whenever possible.

Development Time

Slow.

Medium. Programming is like C++, with some productivity improvements. Programs must be byte-compiled before run.

Fast. Simplifies Photon programming while adding flexibility and power. Programs are just-in-time byte compiled. Running program can be modified without shutting down.

Uses PhAB

Yes.

No.

Yes. Slang can read any PhAB dialog or window.

Available on QNX4

Yes.

No.

Yes.

Available on Neutrino

Yes.

Future.

Future.

Implements all Photon widgets

Yes.

No. Implements a virtual window system which excludes most interesting Photon functionality.

Yes.

Extends Photon

No.

No.

Yes. Adds substantial functionality and simplicity to the C Photon API.

Interpreted

No.

Partial. Code is static once loaded. Embodies the worst attributes of both compiled and interpreted languages.

Yes.

Byte coded

No.

Yes.

Yes.

Dynamically Loaded Libraries in QNX4

No.

No.

Yes.

Dynamically Loaded Libraries in Neutrino

Yes.

No.

Yes.

Platform Independent

Partial. Programs using only ANSI functions are portable.

Yes. Programs may exhibit some differences in GUI and OS interaction.

No.

Run-time Modifiable

No. System must be recompiled, shut down, and restarted.

No. System must be recompiled, shut down, and restarted

Yes. Running systems can be patched, queried and debugged in situ, with no visible impact to user. Uses bumpless update technology.

Executes from a Single File

Yes.

No. Requires supporting files on disk.

Either. Can run as one file, or using separate code files as appropriate.

Binding Time

Early. All binding is done by the linker.

Late. All binding is done by the loader.

Dynamic. All binding is done at run-time. Code can reloaded at any time, or even self-modifying.

Event Model

Fixed. Events have fixed interfaces, and must be pre-defined.

Fixed. Events have fixed interfaces, and must be pre- defined.

Open. Event interfaces are free-form, and may be defined at any time.

QNX Timers

Difficult.

Difficult.

Simple. Nanosecond timers implemented as one-shot, periodic, or time-of-day with a single line of code.

Active Values

No.

No.

Yes.

Object Oriented

No.

Yes.

Yes.

Maps Photon Widgets as Classes

No.

No.

Yes.

Dynamic OOP

No.

No. Class definitions are static at compile-time.

Yes. Class definitions may be changed at any time. Instance variables and methods can be added at runtime.

Memory Management

No.

Slow. Stack-searching garbage collector with stop-and-copy.

Fast. Mark-and-sweep incremental, re-entrant garbage collector performs no copy.

Operating System Hooks

Yes.

No. Supports no QNX-specific functionality.

Yes.

Re-usable PhAB Screens with Code

No. PhAB screens can be re-used, but underlying code is lost.

No.

Yes. Both PhAB screens and underlying code are re-usable.

Allows Template Creation in PhAB

No. Dialogs may be multiply instantiated, but widget naming is lost.

No.

Yes. A PhAB screen can be used to create a template class which can be multiply instantiated.

Support for Common Control Methodologies

No.

No.

Yes. State Machines, Forward Chaining, Confidence Factors, Data Driven Execution

Flexible Development Direction

Yes. QNX controls future direction of OS development.

No. Future direction determined by Java standards committee.

Yes. Future direction determined by customer feedback.

Differentiates QNX and Photon

No.

No.

Yes.

Helps to sell PhAB

Yes.

No.

Yes.

Availability

Now.

Future.

Now.

Catalogue Entry
Evaluation version

 

Seitenanfang
© 2008 by
SWD
GmbH