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 icon | |
The REALbasic 2005 IDE running on Mac OS X | |
Developer(s) | REAL Software, Inc. |
---|---|
Stable release | 2006 R1 / January 11th, 2006 |
Operating system | Mac OS X, Microsoft Windows, Linux |
Type | Programming |
License | Commercial |
Website | REAL 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
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
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
- REAL Software, Inc., makers of REALbasic.
- Made with REALbasic Showcase
- REALbasic Forums
- REALbasic Mailing Lists
- REALbasic Plugins Webring
- RBLibrary.com, REALbasic learning at the speed of now.
- declareSub, home of the online version of the book "I Declare: Calling External Functions in REALbasic"
- REALDev, a wiki powered developer community and code repository
- RbCafe
- RBDocs, a wiki dedicated to REALBasic documentation
- REALbasic Garage, a REALbasic resource site
- ResExcellence REALbasic Articles
- REALbasic Developer Magazine
- REALOPEN.org Open Source Project Hosting
- REALbasic Gazette
- Really Basic REALbasic, getting started with REALbasic (beginner to intermediate)
- OSS Projects and Articles by Aaron Ballman
- REALbasic For Beginners, understand how it works