Misplaced Pages

Realbasic: Difference between revisions

Article snapshot taken from Wikipedia with creative commons attribution-sharealike license. Give it a read and then ask your questions in the chat. We can research this topic together.
Browse history interactively← Previous editNext edit →Content deleted Content addedVisualWikitext
Revision as of 16:37, 18 March 2006 editTruthInAdvertising (talk | contribs)28 editsNo edit summary← Previous edit Revision as of 16:39, 18 March 2006 edit undoTruthInAdvertising (talk | contribs)28 editsNo edit summaryNext edit →
Line 24: Line 24:
Historically each release of REALbasic has seen an increase in both the size of the REALbasic application and applications compiled by REALbasic. Since individual projects vary as to content, a new blank desktop project with a single default window, no internal code, and no controls is used as a standard bench mark for measuring compiled application sizes. In the following examples of various recent major versions of REALbasic the size of the REALbasic is listed first, followed by sizes of compiled applications for Windows (Windows 98, ME, NT (4.0 or higher), 2000, or XP ), Mac Classic (8.6 to 9.2.2), and Mac OS X (10.1 or later): Historically each release of REALbasic has seen an increase in both the size of the REALbasic application and applications compiled by REALbasic. Since individual projects vary as to content, a new blank desktop project with a single default window, no internal code, and no controls is used as a standard bench mark for measuring compiled application sizes. In the following examples of various recent major versions of REALbasic the size of the REALbasic is listed first, followed by sizes of compiled applications for Windows (Windows 98, ME, NT (4.0 or higher), 2000, or XP ), Mac Classic (8.6 to 9.2.2), and Mac OS X (10.1 or later):


4.0 (Mac Classic) 10.1MB 4.0 (Mac Classic) 10.1MB; Windows 792K (.773 MB); Mac Classic 1.3MB; Mac X 1.6MB
Windows 792K (.773 MB)
Mac Classic 1.3MB
Mac X 1.6MB


5.0 (Mac X) 14.8MB 5.0 (Mac X) 14.8MB; Windows 1.7MB ; Mac Classic 1.3MB ; Mac X 1.5MB
Windows 1.7MB
Mac Classic 1.3MB
Mac X 1.5MB


5.5.5 (Mac X) 32.5MB ; Windows 1.7MB; Mac Classic 880KB (.859 MB); Mac X Mach-O 2.3MB; Mac X PEF 876KB (.855 MB)
5.5.5 (Mac X) 32.5MB
Windows 1.7MB
Mac Classic 880KB (.859 MB)
Max X Mach-O 2.3MB
Mac X PEF 876KB (.855 MB)


RB2006 Build 1 (Mac X) 120.8MB RB2006 Build 1 (Mac X) 120.8MB; Windows 2.4MB; Mac Classic 1MB; Mac X Mach-O 2.8MB ; Mac X PEF 1MB
Windows 2.4MB
Mac Classic 1MB
Mac X Mach-O 2.8MB
Mac X PEF 1MB



Revision as of 16:39, 18 March 2006

REALbasic
REALbasic icon
REALbasic 2005 IDE
REALbasic 2005 IDE
The REALbasic 2005 IDE running on Mac OS X
Developer(s)REAL Software, Inc.
Stable release2006 R1 / January 11th, 2006
Operating systemMac OS X, Microsoft Windows, Linux
TypeProgramming
LicenseCommercial
WebsiteREAL Software, Inc

REALbasic (RB) is an object-oriented dialect of the BASIC programming language developed and commercially marketed by REAL Software, Inc in Austin, Texas for Mac OS X, Microsoft Windows, and Linux. Created by Andrew Barry, who has since moved on to creating ExtremeBasic, it was originally called CrossBasic due to its ability to compile the same programming code for Mac OS and Windows (although the IDE was Mac only). It was then redubbed REALbasic by REAL Software when they took over development in 1997. The IDE is now available for all three supported platforms (with exception, as of February 2006, of Intel Macs).

Language features

RB is a strongly typed language with minimal automatic type conversion, that supports single inheritance and multiple interfaces, class methods and class properties, reference counting (similar to Java), definition of customized arithmetic operators (similar to C++). It has a complete feature set supporting hash tables, threads, real-time 3D graphics, sound, XML parsing and generation (even through XSL), full Unicode support, API calls to compiled C libraries on all supported platforms, Visual Basic datatypes compatibility, regular expressions, QuickTime, serial, TCP/IP sockets, SSL, HTTP, POP3, SMTP, SOAP, scripting language support through RBScript, Apple events, Address book, Windows registry, system tray icons, ActiveX and OLE.

File Format

The source file format contains window and control placement data and is proprietary; however, XML import and export and Visual Basic import functionality is included. All source code can be contained in one project file, but it is also possible to have classes/modules in separate files in the same way as most other languages or dialects can. REALbasic compiles directly to machine language for each platform that it supports (Mac OS X, MS Windows, Linux).

Application Size

Historically each release of REALbasic has seen an increase in both the size of the REALbasic application and applications compiled by REALbasic. Since individual projects vary as to content, a new blank desktop project with a single default window, no internal code, and no controls is used as a standard bench mark for measuring compiled application sizes. In the following examples of various recent major versions of REALbasic the size of the REALbasic is listed first, followed by sizes of compiled applications for Windows (Windows 98, ME, NT (4.0 or higher), 2000, or XP ), Mac Classic (8.6 to 9.2.2), and Mac OS X (10.1 or later):

4.0 (Mac Classic) 10.1MB; Windows 792K (.773 MB); Mac Classic 1.3MB; Mac X 1.6MB

5.0 (Mac X) 14.8MB; Windows 1.7MB ; Mac Classic 1.3MB ; Mac X 1.5MB

5.5.5 (Mac X) 32.5MB ; Windows 1.7MB; Mac Classic 880KB (.859 MB); Mac X Mach-O 2.3MB; Mac X PEF 876KB (.855 MB)

RB2006 Build 1 (Mac X) 120.8MB; Windows 2.4MB; Mac Classic 1MB; Mac X Mach-O 2.8MB ; Mac X PEF 1MB


Current Editions of IDE

File:REALbasic 2006.png
A typical GUI building session in REALbasic

There are two versions of the IDE:

  • The professional edition can compile programs for Mac OS X, Linux and Microsoft Windows (plus Mac OS) from the same source code file; it can also access databases (Oracle, PostgreSQL, MySQL etc.) including the built-in single-user REAL SQL Database engine based on SQLite; it compiles console applications and has numerous other features.
  • The standard edition only compiles programs for the platform that the IDE is running on (either Windows, Linux or Mac), and does not allow access to databases other than the built-in REAL SQL Database.

Both versions of the IDE permit building the application GUI by dragging the controls from a palette to their parent window. Layout of the controls is helped by the IDE that permits aligning them (both horizontally and vertically), and which gives informations about the distance between controls, or between a control and the window borders.

RB IDE can use plugins that extend the language with classes or modules and which permit to develop multiplatform code more easily.

Prior IDE Version History

Versions of REALbasic prior to the introduction of RB2005 (5.5.5 and prior releases) involved the use of two primary IDE interfaces: (a) A Macintosh interface using a multi-window interface based upon on the Classic Macintosh operating environment (the original operating system REALbasic was developed for); and (b) A Windows MDI (Multi Document Interface) interface using a single parent window in which the various project window objects could be viewed by opening them into seperate child windows.

Individual project window objects could be viewed and edited within untabbed individual windows by simply double clicking the item within the project window, which would immediately open the double clicked item within a new window. If a newly opened window contained a end-user interface of a run time window its underlying code editor could be viewed by simply clicking anywhere inside the interface of the newly opened window.

Prior IDE versions of REALbasic (5.5.5 and earlier) also featured a seperate control pallet window containing icons of controls (both built-in and plug-in derived controls) which could be dragged onto a project window to build end-user interfaces. Prior versions of REALbasic (5.5.5) also featured a seperate properties window which listed a object's properties when a object was selected with the host computer's mouse. Versions of REALbasic prior to RB2005 (5.5.5 and earlier) also featured a code spliter, a seperate color pallet window, the ability to export a project as an plain text file, a 16 X 12 pixel icon and mask within the icon build window for Classic MAC OS builds of projects, the ability to run remotely under the Classic Mac OS, and other long term features which have been removed with the introduction of RB2005, most notably the inability of REALbasic's IDE to run on any Macintosh operating system from 8.6 to 10.2.6.


Historical Long Term & Existing Bug History

Among the most noteable long terms bugs still present in the current version of REALbasic (RB2006), and which has existed since at least version 3.0, is the Windows help tag bug. In Windows builds of projects any existing helptags inside a compiled Windows application only intitally appear when a window opens, but once a control inside a window is used once (aside from the window's close, maximum, and minimize widgets) its help tag permantely disappears and cannot be used by the end-user of the application.

Another well know bug which existed since the inception of REALbasic is comonly referred to as "flicker". Flicker can best be described as the improper redrawing of a portion of an application's window, mostly commonly a single control or a group of controls, so as to cause a noticeable "animation" of the control which is contrary to the generally accepted guidelines established by the publisher of the operating system (such as Apple or Microsoft). Flicker caused by the improper coding of controls by a programmer is not considered a REALbasic bug as such results are initiated by the coder; however, REALBasic includes a number of bugs which are inherit within in built-in controls which the programmer has no control over and are the result of the controls being improperly implemented or emulated within REALbasic. Operating systems such as Macintosh OS X (10.1 and later) use "double buffering" to effectively hide the problem of flicker; however, Classic Mac OS and Windows based systems (including XP) do not utilize double-buffering so care must be taken to account for this lack of double buffering. In most cases a user can prevent their own code from causing flicker by manipulating graphics via "off screen" graphics and updating a window or control or via a paint event; however, there unfortunately is no way to overcome certain flicker related defects within the built-in controls. One easily reproduceable example of such a defect involves the listbox control. If, for example, a multi-column listbox control in populated with text and then text within the listbox is selected rapidly, flicker is caused to various degrees on different operating system; in Mac OS Classic 9.0 the entire listbox flickers, while on systems such as Window XP Home the text within the listbox's headers flicker. By examining listbox controls within applications built by the publishers of the operating systems on which compiled REALbasic applications run (such as Apple and Microsoft) one can easily determine that flicker is not present in such applications, but remain a problem in applications using particular REALbasic built-in controls which do not properly emulate industry standard controls for a given operating system.

A long term historical bug which still persists in the latest release of REALbasic (RB2006) pertains to the Classic Macintosh OS and the WatchCursor. When an application is instructed to perform a processor intense operation which may cause a noticeable pause within the interface of the application the Classic operating system will generally change the default arrow cursor to a watch cursor as a visual clue to the user the application is working, after which the the mouse cursor reverts back to its default arrow cursor. Because the watch cursor is generally regarded as annoying visual display for short periods of time not requiring a progressbar REAlbasic provides a specal pragma directive ( #Pragma DisableAutoWaitCursor) for supressing the automatic display of the watch cursor; however, this often or or not does not work due to a interanl bug of REALbasic in relation to various Classic Maintoch operating systems (9.2.2 and earlier). The "Classic Mode" of Macintosh X is not generally affected by this bug.

More screenshots

File:RB2006 Code Editor.png
The code editor editing a window event code
File:RB2006 Language Reference.png
The Language References with a partial list of REALbasic classes
File:RB2006 Building Settings.png
The dialog box to set some application building options

Example code

Here's some sample code that computes the MD5 hash of a given string (using both the MD5() function and the MD5Digest class), and then shows both values in a dialog box:

Dim Hash As String
Dim Digest As New MD5Digest
Hash = MD5("Source String")
MsgBox(Hash)
Digest.Process("Source")
Digest.Process(" String")
MsgBox(Digest.Value)

This is an example of operator overloading for a hypothetical Complex class which permits to sum a real to a complex number, and to sum two complex numbers:

Function Operator_Add(rhs as Simple) As Complex
 Dim ret As New Complex
 ret.R = Self.R + rhs
 ret.I = Self.I
 Return ret
End Function
Function Operator_Add(rhs as Complex) As Complex
 Dim ret As New Complex
 ret.R = Self.R + rhs.R
 ret.I = Self.I + rhs.I
 Return ret
End Function

The same function can be defined to accept Double datatype values. This code shows how to use the Complex class to sum a real with a complex number:

Dim First As New Complex(0, 1)
Dim Second As New Complex(1, 1)
Dim Sum As Complex
Sum = First + 5.0 + Second
// Sum will be (6, 2)

External links

See also

Categories: