My answers (not in any particular order, mind you...) Rankings in
angle brackets; 1 - least important to 5 - most important.
* Works on Mac!!!!!! <5>
* Cross-platform <3>
* OO with true inheritance (not like VB 6 in other words) <4>
* Future potential (still to be realized... mostly...) <2>
* No external frameworks to load (unlike VB .Net) - executables self-
contained (except Linux, apparently) <3>
Things that could be improved: (***Warning - rant ahead!! ***)
* Introspection <4>
* Native Datagrid control <2> (may require Pro version)
* Allow external editor/version-control <3>
* Bug fixes for earlier versions (due to getting stuck with a
particular version for reasons of their company's policy or budget
restrictions, or waiting for a show-stopper bug to be fixed in the
latest version without something else breaking.) on a pay-as-you-go
basis. <4>
* Ability to compile for Sony PSP/Nintendo Wii/XBox 360/crackberry (I
mean, Blackberry) :) <1>
* Easy random-access files!! (this is one area where VB beats RB
hands-down) <5>
In VB, I would do:
Type myType
// field definitions
...
End Type
...
Dim myRec As myType
Dim filnum As Integer
Dim filnam As String
filnam = GetAppPath() & "MYDATA.DAT"
If (Dir(filnam) > "") Then
' File Exists, read it in
filnum = FreeFile
Open filnam for Random Access Read Write As #filnum Len = Len(myRec)
Do
Get #filnum, , myRec
' Perform a check to see if this is the EOF record
If (myRec.spacer = Chr(0)) Then
Exit Do
End If
' Do something with the record.
...
Loop
Close #filnum
Else
MsgBox "Can't find: " & filnam
End If
* A new 'package-specific' licensing model <5>
The RB IDE would now run - and compile - only to the target
system; no more cross-compilation (with one exception if you purchase
the "Package" package, you'd be able to - see below) but - in return
- there would be no more differentiation between Standard and Pro
features. The source would - however - remain cross-platform
compatible (you could take the source from one to the other just as
you can now, as long as you properly localize it with preprocessor
'TargetXXX' checks.) You could still remote-debug, though.
This would allow each platform to run optimized for that OS (MacOS
X, Win32, or Linux) and take advantage of features of that OS without
extensive declares.
* MacOS X - Core Audio/Video, Quartz OpenGL, Spotlight, etc...
would be exposed via internal plugins to cover what previously
required declares. I would have added CoreData, but - from what I can
tell - it's so tightly integrated with SQLite3/Cocoa that it just
doesn't seem feasible.
* Win-32 - DirectX and OpenGL, registry, task-bar, Jet database
engine, etc... would now all have internal plugins for support
previously available only through declares.
* Linux??? - compilation support for older PowerPC distros (like
Suse 6/7, YDL, etc... that can be installed on older Macs) Not sure
about anything else as I don't use the Linux features.
Note that such features would - if ported to a different RB
platform - cause a compile time error: "This feature not available on
<platform>"
The "Basic" package (sorry about the unwanted pun) would give you
all the standard/pro features, but only the built-in RB database.
To this would be available several extra packages which could be
added as desired.
* Game package (specify your platform): Adds pathfinding AI, handy
routines for view mapping (flat cartesian to fps, isometric, etc...)
between the on-screen view and your game world, and support for
OpenGL or DirectX depending on platform.
* Database package: adds up-to-date database plugins and a native
datagrid control.
* Maths package: adds symbolic processing, a "LongDouble" data-type,
and a "Fraction" data-type.
* Reports package: adds nifty graphing routines, and an 'easy report'
printing model.
* Science package: (requires the "Maths" package) adds realistic
physics modeling routines; useful in combination with the "Game"
package!
* Statistics package: (requires the "Maths" package) - adds better
PRNG algorithms, the ability to generate PRNs (Pseudo-Random Numbers)
with a specific distribution (gaussian, uniform, etc...), and more
statistics-type math routines.
* Music package: (may require the "Maths" package) adds MIDI support
(through hardware if available), a better NotePlayer control, and 3D/
surround-sound support.
* Package package: comes with the new "package" SDK, plenty of
documentation and examples, and would re-enable cross-compilation for
other platforms.
In fact, with this scheme, plugins - as such - would no longer
exist. Instead you would add to RBs functionality with packages;
these would be similar to Java's .jar files or JavaBeans, or .Net
assemblies or some such. They would have far greater control (for the
developer) as to what is 'exposed' to users; allowing the package as
a whole to contain pre-compiled code for PPC/Intel MacOS X, Win32,
and Intel Linux whose classes, modules, windows, and UDTs could be
selectively exposed or hidden (like giving Public|Protected|Private
to a class, module, or window as a whole), and; with source, with
encrypted source, or with no source code at all (the code editor
disclosure simply wouldn't 'open'.)
I anticipate a big flame war here, but I've got my Nomex™ suit
on... :)
(***End rant***)
On Jan 5, 2007, at 1:32 AM, Ryan Dary wrote:
Hi. Some people might not appreciate this message, but I think
that it is warranted. Some people have been using REALbasic since
it was first introduced as CrossBasic. Other people didn't get a
chance to use it until it was renamed REALbasic. And then there
are a bunch of people who picked it up sometime between then and now.
What is the draw to REALbasic? Is it cross-platform? Is it rich
framework? Is it easy to learn?
I'd like to know why everyone is using REALbasic. There are other
tools out there. There are other languages out there. Why REALbasic?
With all the problems that REALbasic has, it still keeps a
following. There is still some use for it, and it appears to be
getting better in each build, even if it isn't always apparent.
I'd like to hear from you. If you'd email me off the list and tell
me why you're using REALbasic and what you like and what you don't
like about it.
There is a group of us out there that is unhappy with REALbasic and
would turn to another product immediately if it just offered that
one or two things that we're using from REALbasic. What is that
one piece for you?
I can't wait to hear,
- Ryan Dary
_______________________________________________
Unsubscribe or switch delivery mode:
<http://www.realsoftware.com/support/listmanager/>
Search the archives of this list here:
<http://support.realsoftware.com/listarchives/lists.html>
_______________________________________________
Unsubscribe or switch delivery mode:
<http://www.realsoftware.com/support/listmanager/>
Search the archives of this list here:
<http://support.realsoftware.com/listarchives/lists.html>