Revision as of 16:39, 18 March 2006 editTruthInAdvertising (talk | contribs)28 editsNo edit summary← Previous edit | Revision as of 08:25, 19 March 2006 edit undo67.0.66.3 (talk) Added 3rd party verfiable links to article providing proof of concerns forwarded by the abused user TruthInAdvertising. Please explain your Wiki administer abuse of this user!Next edit → | ||
(10 intermediate revisions by 4 users not shown) | |||
Line 22: | Line 22: | ||
==Application Size== | ==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 |
Historically each release of REALbasic has seen an increase in both the size of the REALbasic application and applications compiled by REALbasic. Since individual user projects vary as to content, a new blank desktop project with a single default window, no internal code, and no controls is a standard bench mark used 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 | 4.0 (Mac Classic) 10.1MB; Windows 792K (.773 MB); Mac Classic 1.3MB; Mac X 1.6MB | ||
Line 32: | Line 32: | ||
RB2006 Build 1 (Mac X) 120.8MB; Windows 2.4MB; Mac Classic 1MB; Mac X Mach-O 2.8MB ; Mac X PEF 1MB | RB2006 Build 1 (Mac X) 120.8MB; Windows 2.4MB; Mac Classic 1MB; Mac X Mach-O 2.8MB ; Mac X PEF 1MB | ||
To duplicate the above file sizes download a copies of REALbasic from REAL Software's web site (older editions can be downloaded from REAL Software's ftp web site). In each edition open a new default desktop project with a single window; do not add any code or controls to the project, and compile applications for the various operating systems. | |||
Line 45: | Line 46: | ||
== Prior IDE Version History == | == 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 |
||
] | |||
⚫ | 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 multi-window interface based upon on the Classic Macintosh operating system (the original operating system REALbasic was developed for); and (b) A Windows Multi Document Interface (MDI) which used 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. | 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. | |||
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. | |||
] | |||
A seperate properties window which listed a object's properties when a object was selected with the host computer's mouse was also incorporated into REALbasic prior to the introduction of RB2005. | |||
] | |||
] | |||
] | |||
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 via a “Export Source” command of the “File” menuitem, 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, a seperate tips windows, and the abilityto run under any Macintosh operating system from 8.6 to 10.2.6. | |||
] | |||
IDE versions of REAlbasic prior to RB2005 also featured a Language Reference in which users could quickly search for subject matter according to a alphabetical listing of all subjects (Alpha) or by category (Theme). Indivdual subjects could read in book fashion with an entire subject listed on one scrollable page. | |||
A few sample sample 3rd party published images of previous IDE versions which verify the above images (including Microsoft and the Macintosh publication Macaddict): | |||
http://www.projectomega.org/contents/en/html/tuts/dev/developing_images/realbasic.gif | |||
http://www.microsoft.com/japan/mac/officex/excel/images/xl10_1.jpg | |||
http://realgurus.com/graphics/REALbasic_UI.gif | |||
http://www.medienwerkstatt-online.de/products/realbasic/macosxide.jpg | |||
http://www.macaddict.com/issues/2005/1/reviews/realbasic/images/148 | |||
http://www.macsanomat.fi/kuva.php?id=46 | |||
==Historical Long Term & Existing Bug History== | ==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. | 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. To reproduce this bug simple add a helptag to a control within a project window, compile for Windows, and run the compiled program (after the control is used once its help tag disappears forever). | ||
In this article from Real Software’s own question and aswer forums one of Real Software’s own cheif engineers whos listed within REALbasic’s About Window (Aaron Ballman) acknowledges that this bug exists and it has not been fixed. | |||
http://forums.realbasic.com/viewtopic.php?t=535&highlight=helptag | |||
The above article can be downloaded in the form of a pdf document, should Real Software decide to remove it for some reason, from this link: | |||
http://acer-access.com/~placebo@acer-access.com/HelpTag.pdf | |||
⚫ | 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. To duplicate this bug make a new project and add a listbox control with multiple columns to a window; then add code to populate the listbox with text; run the project or compile application; then select text within the listbox with the mouse and rapidly scroll the mouse upward and downward, continually selecting new rows, the entire listbox, or portions of, will flicker. | ||
A few sample links to 3rd party published articles or products related to the problem of addressing flicker in Realbasic: | |||
http://www.einhugur.com/Html/Grids.html (flicker free spreadsheets and listboxes) | |||
http://www.macsos.com.au/shareware/graphpro/index.html (flicker free graphing classes) | |||
http://www.macsos.com.au/freeware/rb_open_source.html (flicker free canvas class) | |||
http://www.monkeybreadsoftware.de/listarchive-realbasic-nug.old/2004-07/thread-24_6.shtml | |||
Search Real software’s own Realbasic Network Users Group for “flicker” for hundreds of articles on the subject of flicker (or search Google for futher articles): | |||
⚫ | 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. | ||
http://support.realsoftware.com/listarchives/realbasic-nug/2005-09/index.html | |||
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 == | == More screenshots == |
Revision as of 08:25, 19 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 user projects vary as to content, a new blank desktop project with a single default window, no internal code, and no controls is a standard bench mark used 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
To duplicate the above file sizes download a copies of REALbasic from REAL Software's web site (older editions can be downloaded from REAL Software's ftp web site). In each edition open a new default desktop project with a single window; do not add any code or controls to the project, and compile applications for the various operating systems.
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 multi-window interface based upon on the Classic Macintosh operating system (the original operating system REALbasic was developed for); and (b) A Windows Multi Document Interface (MDI) which used 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.
A seperate properties window which listed a object's properties when a object was selected with the host computer's mouse was also incorporated into REALbasic prior to the introduction of RB2005.
File:555Spliter.jpg File:555ColorPallet.jpg File:555Tips.jpg
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 via a “Export Source” command of the “File” menuitem, 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, a seperate tips windows, and the abilityto run under any Macintosh operating system from 8.6 to 10.2.6.
IDE versions of REAlbasic prior to RB2005 also featured a Language Reference in which users could quickly search for subject matter according to a alphabetical listing of all subjects (Alpha) or by category (Theme). Indivdual subjects could read in book fashion with an entire subject listed on one scrollable page.
A few sample sample 3rd party published images of previous IDE versions which verify the above images (including Microsoft and the Macintosh publication Macaddict):
http://www.projectomega.org/contents/en/html/tuts/dev/developing_images/realbasic.gif
http://www.microsoft.com/japan/mac/officex/excel/images/xl10_1.jpg
http://realgurus.com/graphics/REALbasic_UI.gif
http://www.medienwerkstatt-online.de/products/realbasic/macosxide.jpg
http://www.macaddict.com/issues/2005/1/reviews/realbasic/images/148
http://www.macsanomat.fi/kuva.php?id=46
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. To reproduce this bug simple add a helptag to a control within a project window, compile for Windows, and run the compiled program (after the control is used once its help tag disappears forever).
In this article from Real Software’s own question and aswer forums one of Real Software’s own cheif engineers whos listed within REALbasic’s About Window (Aaron Ballman) acknowledges that this bug exists and it has not been fixed.
http://forums.realbasic.com/viewtopic.php?t=535&highlight=helptag
The above article can be downloaded in the form of a pdf document, should Real Software decide to remove it for some reason, from this link:
http://acer-access.com/~placebo@acer-access.com/HelpTag.pdf
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. To duplicate this bug make a new project and add a listbox control with multiple columns to a window; then add code to populate the listbox with text; run the project or compile application; then select text within the listbox with the mouse and rapidly scroll the mouse upward and downward, continually selecting new rows, the entire listbox, or portions of, will flicker.
A few sample links to 3rd party published articles or products related to the problem of addressing flicker in Realbasic:
http://www.einhugur.com/Html/Grids.html (flicker free spreadsheets and listboxes)
http://www.macsos.com.au/shareware/graphpro/index.html (flicker free graphing classes)
http://www.macsos.com.au/freeware/rb_open_source.html (flicker free canvas class)
http://www.monkeybreadsoftware.de/listarchive-realbasic-nug.old/2004-07/thread-24_6.shtml
Search Real software’s own Realbasic Network Users Group for “flicker” for hundreds of articles on the subject of flicker (or search Google for futher articles):
http://support.realsoftware.com/listarchives/realbasic-nug/2005-09/index.html
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