<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>RBDevZone &#187; General</title>
	<atom:link href="http://www.rbdevzone.com/category/general/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.rbdevzone.com</link>
	<description>The REALbasic Resource</description>
	<lastBuildDate>Tue, 31 Aug 2010 19:55:19 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>REAL Studio: About the Name Change</title>
		<link>http://www.rbdevzone.com/2010/02/real-studio-about-the-name-change/</link>
		<comments>http://www.rbdevzone.com/2010/02/real-studio-about-the-name-change/#comments</comments>
		<pubDate>Fri, 19 Feb 2010 16:07:02 +0000</pubDate>
		<dc:creator>Paul Lefebvre</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[IDE]]></category>
		<category><![CDATA[Language]]></category>
		<category><![CDATA[Visual Basic]]></category>

		<guid isPermaLink="false">http://www.rbdevzone.com/?p=372</guid>
		<description><![CDATA[Starting with 2010 Release 1, REALbasic is now known as REAL Studio.  Here are the new edition names:



Old Name
New Name


REALbasic Personal
REAL Studio Personal


REALbasic Professional
REAL Studio Professional


REAL Studio
REAL Studio Enterprise



There is a recent thread on the REAL Software forums asking why REALbasic isn&#8217;t more popular. I&#8217;d say one of the main reasons that REALbasic is [...]]]></description>
			<content:encoded><![CDATA[<p>Starting with 2010 Release 1, REALbasic is now known as REAL Studio.  Here are the new edition names:</p>
<table border="1">
<tbody>
<tr>
<th>Old Name</th>
<th>New Name</th>
</tr>
<tr>
<td>REALbasic Personal</td>
<td>REAL Studio Personal</td>
</tr>
<tr>
<td>REALbasic Professional</td>
<td>REAL Studio Professional</td>
</tr>
<tr>
<td>REAL Studio</td>
<td>REAL Studio Enterprise</td>
</tr>
</tbody>
</table>
<p>There is a recent thread on the REAL Software <a href="http://forums.realsoftware.com/viewtopic.php?f=9&amp;t=27822">forums</a> asking why REALbasic isn&#8217;t more popular. I&#8217;d say one of the main reasons that REALbasic is not as popular as it could be is because of its name.  I have high hopes for the new REAL Studio name.  Unfortunately, when it comes to programming languages, the term Basic gets a bad rap.  Even in the .NET world, where there is practically no difference between C# and VB.NET, there are lots of developers that turn their nose down on VB.NET and assume it is inferior.</p>
<h2>The problem with Basic</h2>
<p>Personally, I don&#8217;t think it&#8217;s possible to fix the perception problem with Basic.  When you mention Basic, people still think:</p>

<div class="wp_syntax"><div class="code"><pre class="vb" style="font-family:monospace;">10 <span style="color: #000080;">PRINT</span> <span style="color: #800000;">&quot;PAUL&quot;</span>
20 <span style="color: #000080;">GOTO</span> 10
RUN</pre></div></div>

<p>Basic&#8217;s accessibility has always been considered a weakness by many who call themselves professionals.  Because it is so accessible, just about anyone can learn enough to use it to make software.  And if that software doesn&#8217;t end up being very good, people tend to blame the tool instead of the inexperienced programmer.  But the accessibility of Basic is also its greatest strength.  There are plenty of people who aren&#8217;t professional programmers but are experts in their business domain.  These people can use a tool like REAL Studio to create simple application to make their lives easier.  And if they need more sophisticated software, they can turn to us consultants that like to use fun, powerful tools such as REAL Studio.</p>
<p>I also feel that REALbasic&#8217;s popularity was also hampered by its name being a bad pun: it&#8217;s &#8220;real basic&#8221;.  Lots of developers take that to mean &#8220;incredible simplistic and inappropriate for professional software development.  They have no idea what the REALbasic language is capable of and have no interest in finding out.  So they never learn that it is a fully object-oriented language that has far more in common with Java (or .NET) than any old-school version of Basic that they may remember.  I truly hope that the new name helps improve this perception.</p>
<p>But even if the product is now referred to as REAL Studio, the programming language is still referred to as REALbasic.  And it will take quite a bit of time before the new name is used consistently.</p>
<p>Two other products that I think compare well to REAL Studio are PowerBuilder and Delphi.  Like the new REAL Studio branding, note that they each use separate names for the product and the programming language they use (Delphi/Objective-Pascal, PowerBuilder/PowerScript).  You might also make the same case when it comes to Xcode and Objective-C.  And most developers that use those tools refer to themselves as Delphi or PowerBuilder developers.  So perhaps, given time, people will also stop referring to REAL Studio as REALbasic.</p>
<p>But even if that is the case, is REALbasic still a good name?  I think that the REALbasic language has outgrown its &#8220;real basic&#8221; name.  I first learned to program on an Atari 400 back in the early 80&#8217;s using Atari BASIC.  I then migrated from that to structured Basics (such as GFA Basic), Pascal, C and on to a variety of programming languages.  I was one of those that thought Visual Basic was a terrible language and thumbed my nose at it, although I may have been right about Visual Basic (before .NET anyway).  These languages were all &#8220;real basic&#8221;.</p>
<p>But unlike any of the above languages, both REAL Studio and VB.NET (which Microsoft has taken to calling just Visual Basic these days) use a powerful, modern object-oriented version of Basic with a ton of sophisticated features (namespaces, instrospection, dynamic programming, delegates to name a few).  For all practical purposes there is little difference between using them or using Java, C# or any other object-oriented language.</p>
<p>So even if the REALbasic language was once &#8220;real basic&#8221; it no longer is.  I think the name ought to be changed, especially now that REAL Studio has become the product name.  I suggest either choosing something meaningless and invented (like Ruby or Python; I suggest Bee) or something that truly describes what it is (like Objective-Basic<sup>1</sup> or Object Basic<sup>2</sup>; I suggest OObasic).</p>
<p>This does beg the question as to what those of us that use REALbasic or RB in our web site or product names ought to do?  Does it make sense for me to rename RBDevZone to be RSDevZone?  What about the Association of REALbasic Professionals (<a href="http://www.arbp.org">ARBP</a>)?  And <a href="http://www.rbdeveloper.com">REALbasic Developer Magazine</a>? RBGarage?</p>
<h2>How do you compete with Free?</h2>
<p>Another complaint about REAL Studio that I hear often is that it is too expensive.  Generally this is just not true because REAL Studio Professional and REAL Studio Enterprise both cost less than equivalent editions of Visual Studio, PowerBulder or Delphi.  In the case of Delphi and Visual Studio there are free editions: Turbo Delphi and Visual Basic Express.  And of course, Xcode is completely free for OS X developers.  Microsoft also tends to make its developer tools <a href="http://www.microsoft.com/BizSpark/">very affordable</a> (almost free) for startup companies.</p>
<p>I think it would be great for REAL could also offer a free edition of REAL Studio.  Since I&#8217;m on a roll, my  recommendation to REAL is that they offer REAL Studio Free Edition with the same features as REAL Studio Personal Edition except for one thing: it would be unable to compile independent executables.</p>
<p>I see lots of benefits to both REAL and the community with a free edition.  For one, it will get a lot more people to try REAL Studio.  Want to learn how to program? Use REAL Studio Free Edition.  Schools could implement REAL Studio at no cost to teach programming.  What a great way to get a ton of exposure!  And getting students hooked on programming with REAL Studio has some major long-term benefits.</p>
<p>Even better, wouldn&#8217;t it be great if REAL Studio Free Edition was included with all new Macs, Dells and even Ubuntu Linux?  Granted, it wouldn&#8217;t be free for REAL to do that, but think about how quickly it would increase the REAL Studio user base?</p>
<p>For the community, having a ton more people becoming aware of REAL Studio (and actually using it) would be a major boon.  There would be more people creating sample code, more people to buy your add-ons and more people to request your consulting services.  And for REAL, it means there would be more people that are now aware of REAL Studio and who might actually select it for their next project.  I am sure this would lead to additional sales.</p>
<p>Lastly, this would be a fabulous way to promote the new REAL Studio name and finally bury the REALbasic name once and for all.  There would be a ton of free press, publicity and overall good will that would be generated if REAL announced &#8220;REAL Studio Free Edition with OObasic&#8221;.</p>
<p>Anyway, those are my (highly opinionated) thoughts?  What do you think?</p>
<hr /><sup>1</sup> The makers of <a href="http://kbasic.com/">Kbasic</a> sell a product called <a href="http://www.objective-basic.com/">Objective-Basic</a> for Mac OS X.  But it requires the Apple SDK, Objective-C and Interface Builder.  The website says that &#8220;After all the syntax [of Objective-Basic] is very similar to REALbasic&#8221;.</p>
<p><sup>2</sup> See <a href="http://www.janus-software.com/phoenix_features.html">Phoenix Object Basic</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.rbdevzone.com/2010/02/real-studio-about-the-name-change/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>CallByName Function</title>
		<link>http://www.rbdevzone.com/2009/09/callbyname-function/</link>
		<comments>http://www.rbdevzone.com/2009/09/callbyname-function/#comments</comments>
		<pubDate>Wed, 09 Sep 2009 18:45:21 +0000</pubDate>
		<dc:creator>Paul Lefebvre</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Source Code]]></category>
		<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[Visual Basic]]></category>
		<category><![CDATA[source]]></category>
		<category><![CDATA[VisualBasic]]></category>

		<guid isPermaLink="false">http://www.rbdevzone.com/?p=276</guid>
		<description><![CDATA[A post in the REAL Software forums asked if REALbasic has a CallByName function like VB has.  After reviewing my answer and the CallByName function in VB, I am presenting a more thorough solution here.
First, REALbasic does not have CallByName.  However, it does have Introspection (aka reflection) which can be used to achieve [...]]]></description>
			<content:encoded><![CDATA[<p>A <a href="http://forums.realsoftware.com/viewtopic.php?f=13&amp;t=29303">post</a> in the REAL Software forums asked if REALbasic has a CallByName function like VB has.  After reviewing my answer and the CallByName function in VB, I am presenting a more thorough solution here.</p>
<p>First, REALbasic does not have CallByName.  However, it does have Introspection (aka <a href="http://en.wikipedia.org/wiki/Reflection_(computer_science)">reflection</a>) which can be used to achieve this.</p>
<p>The official function definition in VB is:</p>

<div class="wp_syntax"><div class="code"><pre class="vb" style="font-family:monospace;">CallByName(<span style="color: #000080;">object</span> <span style="color: #000080;">As</span> <span style="color: #000080;">Object</span>, procname <span style="color: #000080;">As</span> <span style="color: #000080;">String</span>, calltype <span style="color: #000080;">As</span> <span style="color: #000080;">Integer</span>, [args() <span style="color: #000080;">As</span> <span style="color: #000080;">Variant</span>])</pre></div></div>

<p>This is a bit limited as it cannot handle return values.  I&#8217;d also prefer a more object-oriented syntax.  So our REALbasic definitions are:</p>

<div class="wp_syntax"><div class="code"><pre class="vb" style="font-family:monospace;"><span style="color: #000080;">Object</span>.CallByName(name <span style="color: #000080;">As</span> <span style="color: #000080;">String</span>, nameType <span style="color: #000080;">As</span> CallType, <span style="color: #000080;">ParamArray</span> args <span style="color: #000080;">As</span> <span style="color: #000080;">Variant</span>)
<span style="color: #000080;">Object</span>.CallByName(name <span style="color: #000080;">As</span> <span style="color: #000080;">String</span>, nameType <span style="color: #000080;">As</span> CallType, <span style="color: #000080;">ParamArray</span> args <span style="color: #000080;">As</span> <span style="color: #000080;">Variant</span>) <span style="color: #000080;">As</span> <span style="color: #000080;">Variant</span></pre></div></div>

<p>In order for this to be usable on any object, we&#8217;ll implement these as extension methods.  First we need to create a module to contain our methods.  Create a module called <strong>CallByNameExtension</strong>.  This self-contained module will eventually have everything we need to use CallByName in our projects.</p>
<p>Next, we need to create the CallType enumeration.  This is used to specify the type of the we want to call.  Our options are Method, PropertyGet and PropertySet.  On our module, create a CallType enumeration with those three values (Method, PropertyGet, PropertySet).</p>
<p>Now create our two method signatures for CallByName:</p>

<div class="wp_syntax"><div class="code"><pre class="vb" style="font-family:monospace;"><span style="color: #000080;">Sub</span> CallByName(Extends obj <span style="color: #000080;">As</span> <span style="color: #000080;">Object</span>, name <span style="color: #000080;">As</span> <span style="color: #000080;">String</span>, nameType <span style="color: #000080;">As</span> CallType, <span style="color: #000080;">ParamArray</span> args <span style="color: #000080;">As</span> <span style="color: #000080;">Variant</span>)
<span style="color: #000080;">End</span> <span style="color: #000080;">Sub</span></pre></div></div>


<div class="wp_syntax"><div class="code"><pre class="vb" style="font-family:monospace;"><span style="color: #000080;">Function</span> CallByName(Extends obj <span style="color: #000080;">As</span> <span style="color: #000080;">Object</span>, name <span style="color: #000080;">As</span> <span style="color: #000080;">String</span>, nameType <span style="color: #000080;">As</span> CallType, <span style="color: #000080;">ParamArray</span> args <span style="color: #000080;">As</span> <span style="color: #000080;">Variant</span>) <span style="color: #000080;">As</span> <span style="color: #000080;">Variant</span>
<span style="color: #000080;">End</span> <span style="color: #000080;">Function</span></pre></div></div>

<p>Since both of these methods will actually use very similar code, we will create a private worker method to actually do the call.  Create a new private method:</p>

<div class="wp_syntax"><div class="code"><pre class="vb" style="font-family:monospace;"><span style="color: #000080;">Private</span> <span style="color: #000080;">Function</span> CallByNameWorker(obj <span style="color: #000080;">As</span> <span style="color: #000080;">Object</span>, name <span style="color: #000080;">As</span> <span style="color: #000080;">String</span>, nameType <span style="color: #000080;">As</span> CallType, args() <span style="color: #000080;">As</span> <span style="color: #000080;">Variant</span>) <span style="color: #000080;">As</span> <span style="color: #000080;">Variant</span>
<span style="color: #000080;">End</span> <span style="color: #000080;">Function</span></pre></div></div>

<p>Note that we&#8217;ve changed the ParamArray to just a simple array.  This is because we cannot resend the parameters as a ParamArray.</p>
<p>Let&#8217;s add the simple code to the public methods:</p>

<div class="wp_syntax"><div class="code"><pre class="vb" style="font-family:monospace;"><span style="color: #000080;">Sub</span> CallByName(Extends obj <span style="color: #000080;">As</span> <span style="color: #000080;">Object</span>, name <span style="color: #000080;">As</span> <span style="color: #000080;">String</span>, nameType <span style="color: #000080;">As</span> CallType, <span style="color: #000080;">ParamArray</span> args <span style="color: #000080;">As</span> <span style="color: #000080;">Variant</span>)
&nbsp;
   <span style="color: #000080;">Call</span> CallByNameWorker(obj, name, nameType, args)
&nbsp;
<span style="color: #000080;">End</span> <span style="color: #000080;">Sub</span></pre></div></div>


<div class="wp_syntax"><div class="code"><pre class="vb" style="font-family:monospace;"><span style="color: #000080;">Function</span> CallByName(Extends obj <span style="color: #000080;">As</span> <span style="color: #000080;">Object</span>, name <span style="color: #000080;">As</span> <span style="color: #000080;">String</span>, nameType <span style="color: #000080;">As</span> CallType, <span style="color: #000080;">ParamArray</span> args <span style="color: #000080;">As</span> <span style="color: #000080;">Variant</span>) <span style="color: #000080;">As</span> <span style="color: #000080;">Variant</span>
&nbsp;
  Return CallByNameWorker(obj, name, nameType, args)
&nbsp;
<span style="color: #000080;">End</span> <span style="color: #000080;">Function</span></pre></div></div>

<p>As you can see, this code simply calls the worker, saving the return value if appropriate.  Since ParamArrays are converted to real arrays, we can just pass that along to the worker as well.</p>
<p>In the worker method we&#8217;ll use Introspection to actually call the method or to get/set the value of the property.  Here is the code:</p>

<div class="wp_syntax"><div class="code"><pre class="vb" style="font-family:monospace;"><span style="color: #000080;">Private</span> <span style="color: #000080;">Function</span> CallByNameWorker(obj <span style="color: #000080;">As</span> <span style="color: #000080;">Object</span>, name <span style="color: #000080;">As</span> <span style="color: #000080;">String</span>, nameType <span style="color: #000080;">As</span> CallType, args() <span style="color: #000080;">As</span> <span style="color: #000080;">Variant</span>) <span style="color: #000080;">As</span> <span style="color: #000080;">Variant</span>
  <span style="color: #000080;">If</span> obj &lt;&gt; Nil <span style="color: #000080;">Then</span>
&nbsp;
    <span style="color: #000080;">Dim</span> info <span style="color: #000080;">As</span> Introspection.TypeInfo
    info = Introspection.GetType(obj)
&nbsp;
    <span style="color: #000080;">Select</span> <span style="color: #000080;">Case</span> nameType
    <span style="color: #000080;">Case</span> CallType.Method
      // <span style="color: #000080;">Get</span> the names of all the methods <span style="color: #000080;">on</span> the <span style="color: #000080;">object</span>
      <span style="color: #000080;">Dim</span> methods() <span style="color: #000080;">As</span> Introspection.MethodInfo
      methods = info.GetMethods
&nbsp;
      // Search <span style="color: #000080;">for</span> the specified method
      <span style="color: #000080;">For</span> <span style="color: #000080;">Each</span> m <span style="color: #000080;">As</span> Introspection.MethodInfo <span style="color: #000080;">In</span> methods
        <span style="color: #000080;">If</span> m.Name = name <span style="color: #000080;">Then</span>
          // We found it, so <span style="color: #000080;">call</span> it
          <span style="color: #000080;">Dim</span> rv <span style="color: #000080;">As</span> <span style="color: #000080;">Variant</span>
          rv = m.Invoke(obj, args)
&nbsp;
          Return rv
        <span style="color: #000080;">End</span> <span style="color: #000080;">If</span>
      <span style="color: #000080;">Next</span>
&nbsp;
    <span style="color: #000080;">Case</span> CallType.PropertyGet
      // <span style="color: #000080;">Get</span> the names of all the properties <span style="color: #000080;">on</span> the <span style="color: #000080;">object</span>
      <span style="color: #000080;">Dim</span> props() <span style="color: #000080;">as</span> Introspection.PropertyInfo
      props = info.GetProperties
&nbsp;
      // Search <span style="color: #000080;">for</span> the specified <span style="color: #000080;">property</span>
      <span style="color: #000080;">For</span> <span style="color: #000080;">Each</span> p <span style="color: #000080;">As</span> Introspection.PropertyInfo <span style="color: #000080;">In</span> props
        <span style="color: #000080;">If</span> p.Name = name <span style="color: #000080;">Then</span>
          // We found it, so return its value
          <span style="color: #000080;">Dim</span> value <span style="color: #000080;">As</span> <span style="color: #000080;">Variant</span>
          value = p.Value(obj)
&nbsp;
          Return value
        <span style="color: #000080;">End</span> <span style="color: #000080;">If</span>
      <span style="color: #000080;">Next</span>
&nbsp;
    <span style="color: #000080;">Case</span> CallType.PropertySet
      // <span style="color: #000080;">Get</span> the names of all the properties <span style="color: #000080;">on</span> the <span style="color: #000080;">object</span>
      <span style="color: #000080;">Dim</span> props() <span style="color: #000080;">as</span> Introspection.PropertyInfo
      props = info.GetProperties
&nbsp;
      // Search <span style="color: #000080;">for</span> the specified <span style="color: #000080;">property</span>
      <span style="color: #000080;">For</span> <span style="color: #000080;">Each</span> p <span style="color: #000080;">As</span> Introspection.PropertyInfo <span style="color: #000080;">In</span> props
        <span style="color: #000080;">If</span> p.Name = name <span style="color: #000080;">Then</span>
          // We found it so <span style="color: #000080;">set</span> its value <span style="color: #000080;">to</span> the first argument
          p.Value(obj) = args(0)
        <span style="color: #000080;">End</span> <span style="color: #000080;">If</span>
      <span style="color: #000080;">Next</span>
    <span style="color: #000080;">End</span> <span style="color: #000080;">Select</span>
&nbsp;
  <span style="color: #000080;">End</span> <span style="color: #000080;">If</span>
&nbsp;
Exception e <span style="color: #000080;">As</span> RuntimeException
  <span style="color: #000080;">Dim</span> eInfo <span style="color: #000080;">As</span> Introspection.TypeInfo
  eInfo = Introspection.GetType(e)
&nbsp;
  <span style="color: #000080;">Dim</span> eMessage <span style="color: #000080;">As</span> <span style="color: #000080;">String</span>
  eMessage = <span style="color: #800000;">&quot;A &quot;</span> + eInfo.FullName + <span style="color: #800000;">&quot; occurred.&quot;</span>
  <span style="color: #000080;">If</span> e.Message &lt;&gt; <span style="color: #800000;">&quot;&quot;</span> <span style="color: #000080;">Then</span>
    eMessage = eMessage + EndOfLine + <span style="color: #800000;">&quot;Message: &quot;</span> + e.Message
  <span style="color: #000080;">End</span> <span style="color: #000080;">If</span>
&nbsp;
  MsgBox(eMessage)
<span style="color: #000080;">End</span> <span style="color: #000080;">Function</span></pre></div></div>

<p>This code has one significant limitation when it comes to calling methods:  it cannot handle overloaded methods.  If you have multiple methods with the same name, but with different parameters, then this code will not always call the method you expect.  In order to fix this we would have to compare the types of each of the supplied arguments with the types of the arguments for each matching method and then call the one where everything matches.  This is all possible using Introspection, but I&#8217;ll leave it as an exercise for the reader.</p>
<p>Download the project with all the code: <a title="CallByName.rbp.zip" href="http://www.rbdevzone.com/wp-content/uploads/2009/09/CallByName.rbp.zip">CallByName.rbp.zip</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.rbdevzone.com/2009/09/callbyname-function/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>REAL Studio Announced</title>
		<link>http://www.rbdevzone.com/2009/03/real-studio-announced/</link>
		<comments>http://www.rbdevzone.com/2009/03/real-studio-announced/#comments</comments>
		<pubDate>Wed, 18 Mar 2009 18:03:49 +0000</pubDate>
		<dc:creator>Paul Lefebvre</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://www.rbdevzone.com/?p=253</guid>
		<description><![CDATA[[Updated 3/19/2008 to reflect REAL's change to the Pro package]
The cat is out of the bag:  REAL Software has announced REAL Studio, a new edition of REALbasic.
You can find out more from the REAL Studio FAQ.
So what&#8217;s the difference?
REAL Studio has a much higher price: $1500.  It also the following:

a cross-platform license to [...]]]></description>
			<content:encoded><![CDATA[<p>[Updated 3/19/2008 to reflect REAL's change to the Pro package]</p>
<p>The cat is out of the bag:  REAL Software has announced <strong>REAL Studio</strong>, a new edition of REALbasic.</p>
<p>You can find out more from the <a href="http://www.realsoftware.com/support/faq_realstudio.php">REAL Studio FAQ</a>.</p>
<p>So what&#8217;s the difference?</p>
<p>REAL Studio has a much higher price: $1500.  It also the following:</p>
<ul>
<li>a cross-platform license to run REALbasic on Mac OS X, Windows and Linux</li>
<li>a cross-platform license to REAL Server</li>
<li>Priority technical support</li>
<li>12 months of updates (instead of 6) for new purchasers</li>
</ul>
<p>Hand-in-hand with this announcement is a new lower price for REALbasic Professional.  It drops from $500 to $300.  But you also lose a few features for your $200.  The Professional edition no longer includes the following as they are now exclusively REAL Studio features:</p>
<ul>
<li>IDE scripting</li>
<li>Code Profiling</li>
</ul>
<p>Whether that will matter to you will depend on how you use REALbasic.  It certainly seems like a fair tradeoff for the price decrease.  But if you rely heavily on those features, you&#8217;re either going to have to learn to live without them or be prepared to switch to REAL Studio.</p>
<p>The good news is that at least for the short term, this won&#8217;t affect current users.  REAL is offering a free upgrade to REAL Studio for all current REALbasic Professional users.  This means you&#8217;ll get to keep your current features and take advantage of the new stuff for the duration of your subscription (which you can currently extend for up to 2 years before April 14th).</p>
<p>Plenty of others will offer their opinions on whether this is good or bad for REALbasic and its community.  I will just offer this:</p>
<p>REAL has made a decision that changes things for most REALbasic developers (and they did get feedback on it before the official announcement and made changes after the announcement based on feedback).  I&#8217;m sure the NUG and <a href="http://forums.realsoftware.com">forums</a> will be awash with opinions one way or the other.  Since people generally hate change, I suspect most comments will be critical of this.  It&#8217;s difficult to accept losing features you once had.</p>
<p>However, I&#8217;m certain REAL feels that this change is in the best interests of REALbasic, REAL Software and the community.  I would just like to encourage people, even if they vehemently disagree with this change, to provide constructive criticism and not just whine and complain.</p>
<p>Personally, I am in favor of this change.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.rbdevzone.com/2009/03/real-studio-announced/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>New: SQLite Migrator 1.3.0</title>
		<link>http://www.rbdevzone.com/2009/02/sqlite-migrator/</link>
		<comments>http://www.rbdevzone.com/2009/02/sqlite-migrator/#comments</comments>
		<pubDate>Mon, 02 Feb 2009 16:44:03 +0000</pubDate>
		<dc:creator>Paul Lefebvre</dc:creator>
				<category><![CDATA[Databases]]></category>
		<category><![CDATA[Featured Articles]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[database]]></category>
		<category><![CDATA[news]]></category>
		<category><![CDATA[sqlite]]></category>

		<guid isPermaLink="false">http://www.rbdevzone.com/?p=204</guid>
		<description><![CDATA[If you use REALbasic&#8217;s built-in database engine, then you may find SQLite Migrator useful.  It allows you to migrate any database that you can connect to using ODBC to SQLite/REALSQLDatabase.
It works great with Access, FoxPro, MySQL and just about any database you might be using.
Check it out here:
SQLite Migrator
]]></description>
			<content:encoded><![CDATA[<p>If you use REALbasic&#8217;s built-in database engine, then you may find <a href="http://www.logicalvue.com/sqlite/sqlite.html">SQLite Migrator</a> useful.  It allows you to migrate any database that you can connect to using ODBC to SQLite/REALSQLDatabase.</p>
<p>It works great with Access, FoxPro, MySQL and just about any database you might be using.</p>
<p><span id="more-204"></span>Check it out here:</p>
<p><a href="http://www.logicalvue.com/sqlite/sqlite.html">SQLite Migrator</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.rbdevzone.com/2009/02/sqlite-migrator/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Squidoo Updates</title>
		<link>http://www.rbdevzone.com/2009/01/squidoo-updates/</link>
		<comments>http://www.rbdevzone.com/2009/01/squidoo-updates/#comments</comments>
		<pubDate>Wed, 28 Jan 2009 18:57:13 +0000</pubDate>
		<dc:creator>Paul Lefebvre</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[news]]></category>

		<guid isPermaLink="false">http://www.rbdevzone.com/?p=202</guid>
		<description><![CDATA[The REALbasic Squidoo page has been updated.  I added some new stuff and cleaned up what was there.
Check it out:
http://www.squidoo.com/realbasic
]]></description>
			<content:encoded><![CDATA[<p>The REALbasic Squidoo page has been updated.  I added some new stuff and cleaned up what was there.</p>
<p>Check it out:</p>
<p>http://www.squidoo.com/realbasic</p>
]]></content:encoded>
			<wfw:commentRss>http://www.rbdevzone.com/2009/01/squidoo-updates/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>REAL Software Affiliate</title>
		<link>http://www.rbdevzone.com/2009/01/real-software-affiliate/</link>
		<comments>http://www.rbdevzone.com/2009/01/real-software-affiliate/#comments</comments>
		<pubDate>Tue, 27 Jan 2009 21:20:43 +0000</pubDate>
		<dc:creator>Paul Lefebvre</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://www.rbdevzone.com/?p=198</guid>
		<description><![CDATA[A short while ago, REAL Software announced their new affiliate program.  I&#8217;m proud to announce that RBDevZone has been approved and is now an official REAL Software Affiliate Site.
If you&#8217;re looking to purchase some new licenses of REALbasic or REAL Server, I get a small commission if you click on the giant graphic at [...]]]></description>
			<content:encoded><![CDATA[<p>A short while ago, REAL Software announced their new <a href="http://www.realsoftware.com/affiliate">affiliate program</a>.  I&#8217;m proud to announce that RBDevZone has been approved and is now an official REAL Software Affiliate Site.</p>
<p>If you&#8217;re looking to purchase some new licenses of REALbasic or REAL Server, I get a small commission if you click on the giant graphic at the top to get to the REAL Software Store.</p>
<p><a href="https://secure.realsoftware.com/store/set_affiliate.php?id=106740"></p>
<div style="text-align:center;"><img src="http://www.rbdevzone.com/wp-content/uploads/2009/01/997692d7-1a52-439d-97dd-12982e889ad6.jpg" border="0" alt="997692D7-1A52-439D-97DD-12982E889AD6.jpg" width="233" height="42" /></div>
<p></a></p>
<p><a href="https://secure.realsoftware.com/store/set_affiliate.php?id=106740"></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.rbdevzone.com/2009/01/real-software-affiliate/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Malware Attack!</title>
		<link>http://www.rbdevzone.com/2009/01/malware-attack/</link>
		<comments>http://www.rbdevzone.com/2009/01/malware-attack/#comments</comments>
		<pubDate>Tue, 20 Jan 2009 15:22:40 +0000</pubDate>
		<dc:creator>Paul Lefebvre</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://www.rbdevzone.com/?p=191</guid>
		<description><![CDATA[It appears that two of the custom themes I have been using for RBDevZone were infected with malware sometime last night.
I have no idea how, but there must have been some security flaw in them.  I have reverted back to the default WordPress theme, for the time being.
I apologize for any inconvenience and will [...]]]></description>
			<content:encoded><![CDATA[<p>It appears that two of the custom themes I have been using for RBDevZone were infected with malware sometime last night.</p>
<p>I have no idea how, but there must have been some security flaw in them.  I have reverted back to the default WordPress theme, for the time being.</p>
<p>I apologize for any inconvenience and will continue to investigate.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.rbdevzone.com/2009/01/malware-attack/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>REALbasic and Cocoa</title>
		<link>http://www.rbdevzone.com/2008/12/realbasic-and-cocoa/</link>
		<comments>http://www.rbdevzone.com/2008/12/realbasic-and-cocoa/#comments</comments>
		<pubDate>Fri, 12 Dec 2008 21:37:56 +0000</pubDate>
		<dc:creator>Paul Lefebvre</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://www.rbdevzone.com/?p=155</guid>
		<description><![CDATA[If you haven&#8217;t already received it, the REALbasic Newsletter came out today and it had a little teaser for the upcoming Cocoa functionality.
There&#8217;s mention of Mac OS X Leopard-style windows, spell checking and pictures in EditFields, and HUD windows:

Looks pretty slick to me.
To get the newsletter, sign up here.
]]></description>
			<content:encoded><![CDATA[<p>If you haven&#8217;t already received it, the REALbasic Newsletter came out today and it had a little teaser for the upcoming Cocoa functionality.</p>
<p>There&#8217;s mention of Mac OS X Leopard-style windows, spell checking and pictures in EditFields, and HUD windows:</p>
<div style="text-align:center;"><img src="http://www.rbdevzone.com/wp-content/uploads/2008/12/d22f16a9-ca67-4540-9d0d-04e7aac3772b.jpg" border="0" alt="D22F16A9-CA67-4540-9D0D-04E7AAC3772B.jpg" width="400" height="209" /></div>
<p>Looks pretty slick to me.</p>
<p>To get the newsletter, sign up <a href="http://www.realsoftware.com/support/listmanager/">here</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.rbdevzone.com/2008/12/realbasic-and-cocoa/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>ARBP Member Discounts</title>
		<link>http://www.rbdevzone.com/2008/12/arbp-member-discounts/</link>
		<comments>http://www.rbdevzone.com/2008/12/arbp-member-discounts/#comments</comments>
		<pubDate>Thu, 04 Dec 2008 15:09:22 +0000</pubDate>
		<dc:creator>Paul Lefebvre</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[arbp]]></category>

		<guid isPermaLink="false">http://www.rbdevzone.com/?p=144</guid>
		<description><![CDATA[As you hopefully have heard by now, ARBP is now open for business and taking memberships.  And the best deal going right now is an ARBP Professional membership, which costs $150.  I can already hear you asking, &#8220;What do I get for my $150&#8243;?  Here&#8217;s the answer:  A lot.
For starters, you [...]]]></description>
			<content:encoded><![CDATA[<p>As you hopefully have heard by now, <a href="http://www.arbpmembers.org">ARBP</a> is now open for business and taking memberships.  And the best deal going right now is an ARBP Professional membership, which costs $150.  I can already hear you asking, &#8220;What do I get for my $150&#8243;?  Here&#8217;s the answer:  A lot.</p>
<p>For starters, you get <a href="http://www.rbdeveloper.com">REALbasic Developer Magazine</a>.  Now in its 7th year, it is the premier source of information about REALbasic.  Do you already have a subscription?  No problem, we&#8217;ll just extend your existing subscription by one year.</p>
<p>Additionally, there are almost too many vendor discounts to list.  Added up they total more than $700 in savings on REALbasic-related products.  Here are some highlights:</p>
<p><a href="http://www.ebutterfly.com">Electric Butterfly</a> is offering 40% off UniHelp, HelpLogic and WSL-Amazon.  UniHelp is a great way to include an easy-to-use cross-platform help system in your apps.  And version 4 was just released last month!  When you become a member you can get it for $30 instead of $50.</p>
<p><a href="http://www.rblibrary.com">RBLibrary</a> has an enormous collection of low-priced articles on REALbasic.  You save 20% for 6 months with your membership.</p>
<p><a href="http://www.ontargetreports.com">On-Target Reports</a> is by far the easiest way to include reports in your REALbasic applications.  As a member you can purchase it for $160 instead of the usual $200.</p>
<p>The Formatted Text Control from <a href="http://www.truenorthsoftware.com/FormattedTextControl/FormattedTextControl.html">True North Software</a> is one of the most impressive controls available for REALbasic.  It&#8217;s pretty much a word processor that you can embed in a REALbasic app.  It&#8217;s normally $450, but as a member you get it for half price: $225!</p>
<p>If you work with REALSQLDatabase at all, you owe it to yourself to pick up a copy of <a href="http://sqlabs.net/">SQLite Manager</a> from SQLabs.  Discounted to $35 (regular $50) with membership.</p>
<p>There are even more discounts than what I&#8217;ve listed above.  Check them all our for yourself: <a href="http://arbpmembers.org/index.php?option=com_content&amp;view=article&amp;id=8&amp;Itemid=30">ARBP Vendor Discounts</a></p>
<p>And this doesn&#8217;t even mention the job postings, forums, blogs and other stuff that is being planned.</p>
<p>I mentioned above that a Professional Membership costs $150.  Well, we&#8217;re just so excited about ARBP that we&#8217;re extending our opening celebration through the holidays.  Use coupon code <strong>NOWOPEN</strong> to save 10% and get a Professional membership for only $135!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.rbdevzone.com/2008/12/arbp-member-discounts/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Notable New REALbasic Features</title>
		<link>http://www.rbdevzone.com/2008/12/notable-new-realbasic-features/</link>
		<comments>http://www.rbdevzone.com/2008/12/notable-new-realbasic-features/#comments</comments>
		<pubDate>Mon, 01 Dec 2008 20:51:48 +0000</pubDate>
		<dc:creator>Paul Lefebvre</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://www.rbdevzone.com/2008/12/notable-new-realbasic-features/</guid>
		<description><![CDATA[Someone on the LinkedIn REALbasic group asked a question last week: &#8220;All new features of RB &#8211; anyone using them?&#8221;  In it, the user said they still use REALbasic 2007 Release 5 and were wondering if the new features that have been added since then were worthwhile.
I responded with a few that I thought [...]]]></description>
			<content:encoded><![CDATA[<p>Someone on the<a href="http://www.linkedin.com/groups?gid=35286"> LinkedIn REALbasic group</a> asked a question last week: &#8220;All new features of RB &#8211; anyone using them?&#8221;  In it, the user said they still use REALbasic 2007 Release 5 and were wondering if the new features that have been added since then were worthwhile.</p>
<p>I responded with a few that I thought were important, but I thought it would be worth getting into more detail in a blog post.  So far, there have been 4 releases in 2008 and I suspect a fifth will arrive before the end of the year.</p>
<p>So here is my list of the most notable (in my opinion) new features from the REALbasic releases in 2008:</p>
<h2>REALbasic 2008 Release 1</h2>
<ul>
<li>Introspection module</li>
<li>Variants can now hold even more data types including arrays, structures, Ptr, CString, WString, PString, CFStringRef, WindowPtr and OSTYpe</li>
<li>TabIndex property for controls</li>
<li>OLEObject improvements</li>
</ul>
<h2>REALbasic 2008 Release 2</h2>
<ul>
<li><a href="http://ramblings.aaronballman.com/2008/05/important_win32_application_pa.html">Windows build changes</a></li>
<li>Pairs class</li>
</ul>
<h2><a href="http://www.rbdevzone.com/2008/07/realbasic-2008-release-31/">REALbasic 2008 Release 3.1</a></h2>
<ul>
<li>Profiler</li>
<li>Listbox.Border property</li>
<li>Warning System</li>
<li>IsA now works in Case statements</li>
<li>Types (structures, enumerations and delegates) can now be included in classes</li>
<li>Attributes</li>
<li>FolderItem.SaveAsPicture now supports BMP, PNG and JPG on <em>all</em> platforms</li>
<li>Can now export modules containing other classes and objects</li>
<li>Auto-converting of old-style constructors</li>
</ul>
<h2><a href="http://www.rbdevzone.com/2008/09/realbasic-2008-release-4/">REALbasic 2008 Release 4.2</a></h2>
<ul>
<li>Lock Controls in window editor</li>
<li>Right-click to convert selected text to a constant</li>
<li>RectControl.TabStop property</li>
<li>Can now create your own compiler warnings and errors</li>
<li>Group warnings by type</li>
<li>Auto-adjust tabindexes</li>
<li>RunTime.ObjectIterator</li>
<li>It&#8217;s now possible to hide modules from the debugger</li>
<li>Improved Language Reference searching</li>
</ul>
<h2>REALbasic 2008 Release 5</h2>
<ul>
<li>Top Secret.  I&#8217;ll update this when it is released.</li>
</ul>
<p>When REALbasic 2008 Release 3 came out, I felt it was stable enough that I switched all my projects to it.  I immediately upgraded to REALbasic 2008 Release 4 when it was released and I suspect I&#8217;ll be doing the same when Release 5 ships.</p>
<p>Compared to any 2007 version of REALbasic, I find that REALbasic 2008 Release 4.2 is faster, uses less memory and is more reliable.  Keep in mind that I&#8217;ve only noted the new features.  The 2008 releases have had <em>way more</em> bug fixes than new features, which is something the community has been clamoring for.</p>
<p>And now for shameless plug time.  If you haven&#8217;t already joined <a href="http://www.arbpmembers.org">ARBP</a>, then you ought to consider doing so.  Not only will you join a community of professional developers who specialize in REALbasic, but you&#8217;ll also get more than $700 in discounts on REALbasic-related products.  If you&#8217;re looking to get the most out of your REALbasic investment, an ARBP membership makes a lot of sense.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.rbdevzone.com/2008/12/notable-new-realbasic-features/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
