<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="Tiki CMS/Groupware via FeedCreator 1.7.2" -->
<?xml-stylesheet href="http://www.projectnibble.org/tikiwiki/lib/rss/rss-style.css" type="text/css"?>
<?xml-stylesheet href="http://www.projectnibble.org/tikiwiki/lib/rss/rss20.xsl" type="text/xsl"?>
<rss version="2.0">
    <channel>
        <title>Tiki RSS feed for weblogs</title>
        <description></description>
        <link>http://www.projectnibble.org/tikiwiki/tiki-blogs_rss.php?ver=2</link>
        <lastBuildDate>Sun, 20 May 2012 06:17:13 +0100</lastBuildDate>
        <generator>Tiki CMS/Groupware via FeedCreator 1.7.2</generator>
        <image>
            <url>http://www.projectnibble.org/tikiwiki/img/tiki.jpg</url>
            <title>tikiwiki logo</title>
            <link>http://www.projectnibble.org/tikiwiki/tiki-index.php</link>
            <description><![CDATA[Feed provided by http://www.projectnibble.org/tikiwiki/tiki-index.php. Click to visit.]]></description>
        </image>
        <language>en-us</language>
        <item>
            <title>Nibble v0.9.8 released: Class support!</title>
            <link>http://www.projectnibble.org/tikiwiki/tiki-view_blog_post.php?blogId=1&amp;postId=27</link>
            <description><![CDATA[<a class="wiki"  href="http://sourceforge.net/project/showfiles.php?group_id=176945&package_id=203634&release_id=512609">download Nibble</a><br />
<hr />
<br />
Finally, Nibble is ready to support native classes. So far, the scripting engine only supported (un)compiled Java classes, and class behavior through prototyping.<br />
<br />
The new class system is a Java like but simpler class, that utilizes prototyping behind the scene. It provides some benefits over mere prototyping though that come natural to the classic class entity:<br />
<ul><li> regular class notation, including the keywords <code>class</code> and <code>extends</code>
</li><li> private and public methods or constructors
</li><li> private and public and/or final properties
</li><li> static or instance methods/properties
</li><li> inheriting mechanism and polymorphism
</li><li> strong typing
</li></ul>
<br />
<div style='margin-bottom:-5em;margin-top:-1.5em;'><table width="100%"><tr><td><div class='cbox' style=' background:#f0f0f0;'><div class='cbox-title'>native class example</div><div class='cbox-data' style=" background:#f0f0f0;"><pre class="javascript"><span style="color: #003366; font-weight: bold;">class</span> Greeting <span style="color: #66cc66;">&#123;</span>
	<span style="color: #003366; font-weight: bold;">private</span> final greet;
&nbsp;
	<span style="color: #003366; font-weight: bold;">public</span> Greeting<span style="color: #66cc66;">&#40;</span>final String greet<span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
		<span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #006600;">greet</span> = greet;
	<span style="color: #66cc66;">&#125;</span>;
&nbsp;
	<span style="color: #003366; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">void</span> greet<span style="color: #66cc66;">&#40;</span>Object who<span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
		trace<span style="color: #66cc66;">&#40;</span>greet + who<span style="color: #66cc66;">&#41;</span>;
	<span style="color: #66cc66;">&#125;</span>;
<span style="color: #66cc66;">&#125;</span>;</pre></div></div></td></tr></table><br /><br />
</div><br />
<br />
<b>Read more</b><br />
<ul><ul><li> <a title="Classes in NibbleScript" href='tiki-index.php?page=Classes+in+NibbleScript#class' class='wiki'>Prototype based class</a>
</li></ul></ul>
<br />
<hr />
<br />
Shadowed by the fresh support for native classes is a new keyword... <code>require</code>. The require directive indicates that the scriptfile with the require statement needs another file; with require you can indicate dependencies not unlike the import statement. For example, if you defined a class somewhere in nibblescript, but use it in other files, you want to make sure the class declaration is parsed before the scripts that use it (or you might get a data type unknown exception).<br />
<br />
<b>Read more</b><br />
<ul><ul><li> <a title="Keywords" href='tiki-index.php?page=Keywords#require' class='wiki'>keyword require</a>
</li></ul></ul>
]]></description>
            <author>Benny Bottema &lt;b(DOT)bottema(AT)projectnibble(DOT)org&gt;</author>
            <pubDate>Thu, 31 May 2007 21:08:21 +0100</pubDate>
        </item>
        <item>
            <title>Progress Report</title>
            <link>http://www.projectnibble.org/tikiwiki/tiki-view_blog_post.php?blogId=2&amp;postId=26</link>
            <description><![CDATA[It's been a while since my last update. I've been very busy doing overtime for work on a flash project and simultaneously studying for the Java SCJP certification (still). But I'm still at it though, it's just slowing down a bit for the moment.<br />
<hr />
Last night I've encountered two problems with the prototype based class support that's been added last. It's a good thing I didn't release an update after all huh.<br />
<br />
<ul><li>No comments were allowed between class members as you would expect (comments outside a class wasn't a problem ofcourse).
</li><li>Constructors weren't optional, so a superclass with no constructor threw an exception when a subclass was instantiated and more of those scenarios.
</li></ul>
<br />
I've fixed both and applied the class features in my hobby project that actually uses the script engine. It seems to work out ok now. After some more hands on experience with classes and if no serous problems arise, I'll release a new version soon.<br />
<br />
Benny.<br />
]]></description>
            <author>Benny Bottema &lt;b(DOT)bottema(AT)projectnibble(DOT)org&gt;</author>
            <pubDate>Sat, 12 May 2007 10:08:50 +0100</pubDate>
        </item>
        <item>
            <title>Progress Report</title>
            <link>http://www.projectnibble.org/tikiwiki/tiki-view_blog_post.php?blogId=2&amp;postId=25</link>
            <description><![CDATA[Ok, I've got <code>static</code> working now as well.<br />
<br />
In addition to visiblity, data and final modifier you can now add the static modifier keyword for methods and properties as well. You can then access them through an instance or through the classname.<br />
<br />
In effect you can now even do things like create singleton classes in NibbleScript<a href="tiki-editpage.php?page=NibbleScript" title="Create page: NibbleScript" class="wiki wikinew">?</a>, where the constructor is private, but a static method creates one for you.<br />
<br />
<hr />
<br />
I expect some small bugs with all the new prototype based class support, because I implemented in like three days of non-stop coding... sort of. So I don't think it's completely stable yet, which is why I won't put out a new release untill I've tested it some more.<br />
]]></description>
            <author>Benny Bottema &lt;b(DOT)bottema(AT)projectnibble(DOT)org&gt;</author>
            <pubDate>Sun, 22 Apr 2007 15:13:02 +0100</pubDate>
        </item>
        <item>
            <title>Progress Report</title>
            <link>http://www.projectnibble.org/tikiwiki/tiki-view_blog_post.php?blogId=2&amp;postId=24</link>
            <description><![CDATA[Today, I've added support for class constructors in Nibble's prototype based classes. Constructors can both be <code>public</code> and <code>private</code>, but being private has no added value without <code>static</code> methods to call it from the same class.<br />
<br />
So, I'll go and look into Nibble's options for support for the <code>static</code> keyword. In the mean time, check out the wiki on the new constructors:<br />
<br />
<a title="Classes in NibbleScript" href='tiki-index.php?page=Classes+in+NibbleScript#classconstructors' class='wiki'>Constructors in prototype based classes</a><br />
]]></description>
            <author>Benny Bottema &lt;b(DOT)bottema(AT)projectnibble(DOT)org&gt;</author>
            <pubDate>Sun, 22 Apr 2007 11:12:04 +0100</pubDate>
        </item>
        <item>
            <title>Progress Report</title>
            <link>http://www.projectnibble.org/tikiwiki/tiki-view_blog_post.php?blogId=2&amp;postId=23</link>
            <description><![CDATA[Yes! I got the classes working with visiblity modifiers now (private and public).<br />
<br />
In addition to be able to strong type instance members, now you can't access private instance members from outside or you'll get an exception at runtime. It's working both for properties and methods.<br />
<br />
This is a big step towards full fledged classes and now I can start to think about constructors...<br />
]]></description>
            <author>Benny Bottema &lt;b(DOT)bottema(AT)projectnibble(DOT)org&gt;</author>
            <pubDate>Sat, 21 Apr 2007 17:38:50 +0100</pubDate>
        </item>
        <item>
            <title>Progress Report</title>
            <link>http://www.projectnibble.org/tikiwiki/tiki-view_blog_post.php?blogId=2&amp;postId=21</link>
            <description><![CDATA[This evening, I've fixed support for methods in user classes:<br />
<br />
<div style='margin-bottom:-5em;margin-top:-1.5em;'><table width="100%"><tr><td><div class='cbox' style=' background:#f0f0f0;'><div class='cbox-data' style=" background:#f0f0f0;"><pre class="javascript"><span style="color: #003366; font-weight: bold;">class</span> SubClass <span style="color: #003366; font-weight: bold;">extends</span> BaseClass <span style="color: #66cc66;">&#123;</span>
	<span style="color: #003366; font-weight: bold;">public</span> String subfoo = <span style="color: #3366CC;">&quot;sub foo&quot;</span>;
	<span style="color: #003366; font-weight: bold;">public</span> Integer intValue2 = <span style="color: #CC0000;">999</span>;
&nbsp;
	<span style="color: #003366; font-weight: bold;">public</span> String testMethod<span style="color: #66cc66;">&#40;</span>Integer q<span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
		trace<span style="color: #66cc66;">&#40;</span><span style="color: #3366CC;">&quot;method executed!&quot;</span><span style="color: #66cc66;">&#41;</span>;
	<span style="color: #66cc66;">&#125;</span>;
<span style="color: #66cc66;">&#125;</span>;</pre></div></div></td></tr></table><br /><br />
</div><br />
]]></description>
            <author>Benny Bottema &lt;b(DOT)bottema(AT)projectnibble(DOT)org&gt;</author>
            <pubDate>Fri, 20 Apr 2007 20:37:06 +0100</pubDate>
        </item>
        <item>
            <title>Progress Report</title>
            <link>http://www.projectnibble.org/tikiwiki/tiki-view_blog_post.php?blogId=2&amp;postId=20</link>
            <description><![CDATA[I got the strong typed properties working now too. You'll get an exception about not being able to convert the types when you try to assign a wrong type of value to a property.<br />
<br />
In addition, I fixed the 'extends' keyword (classes can now inherit).<br />
<br />
<div style='margin-bottom:-5em;margin-top:-1.5em;'><table width="100%"><tr><td><div class='cbox' style=' background:#f0f0f0;'><div class='cbox-data' style=" background:#f0f0f0;"><pre class="javascript"><span style="color: #003366; font-weight: bold;">class</span> BaseClass <span style="color: #66cc66;">&#123;</span>
	<span style="color: #003366; font-weight: bold;">public</span> String foo = <span style="color: #3366CC;">&quot;base foo&quot;</span>;
<span style="color: #66cc66;">&#125;</span>;
&nbsp;
<span style="color: #003366; font-weight: bold;">class</span> SubClass <span style="color: #003366; font-weight: bold;">extends</span> BaseClass <span style="color: #66cc66;">&#123;</span>
	<span style="color: #003366; font-weight: bold;">public</span> String subfoo = <span style="color: #3366CC;">&quot;sub foo&quot;</span>;
<span style="color: #66cc66;">&#125;</span>;</pre></div></div></td></tr></table><br /><br />
</div><br />
]]></description>
            <author>Benny Bottema &lt;b(DOT)bottema(AT)projectnibble(DOT)org&gt;</author>
            <pubDate>Sun, 15 Apr 2007 21:35:14 +0100</pubDate>
        </item>
        <item>
            <title>Progress Report</title>
            <link>http://www.projectnibble.org/tikiwiki/tiki-view_blog_post.php?blogId=2&amp;postId=19</link>
            <description><![CDATA[I've been spending many hours into adding support for, get this: Native class support!<br />
<br />
Yep, I finally pulled myself together to start working on this daunting task, but I must say it's been easier than I expected.<br />
<br />
The approach I've taken is pretty much the same as you know from Actionscript 2.0, where the classes are prototype based. You <i>define</i> the class as normal, but behind the scenes, it is converted to a prototype. It works quite well, and currently the following works prett good:<br />
<br />
<div style='margin-bottom:-5em;margin-top:-1.5em;'><table width="100%"><tr><td><div class='cbox' style=' background:#f0f0f0;'><div class='cbox-data' style=" background:#f0f0f0;"><pre class="javascript"><span style="color: #003366; font-weight: bold;">class</span> RealClass <span style="color: #003366; font-weight: bold;">extends</span> RealSuper <span style="color: #66cc66;">&#123;</span>
	<span style="color: #003366; font-weight: bold;">public</span> String name1;
	<span style="color: #003366; font-weight: bold;">public</span> String name2 = <span style="color: #3366CC;">&quot;this is my name&quot;</span>;
<span style="color: #66cc66;">&#125;</span>;
&nbsp;
<span style="color: #009900; font-style: italic;">//Dynamic d = new Dynamic(RealClass);</span>
Object d = <span style="color: #003366; font-weight: bold;">new</span> RealClass<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
trace<span style="color: #66cc66;">&#40;</span><span style="color: #3366CC;">&quot;test1: &quot;</span> + d.<span style="color: #006600;">name1</span><span style="color: #66cc66;">&#41;</span>; <span style="color: #009900; font-style: italic;">// traces null</span>
trace<span style="color: #66cc66;">&#40;</span><span style="color: #3366CC;">&quot;test2: &quot;</span> + d.<span style="color: #006600;">name2</span><span style="color: #66cc66;">&#41;</span>; <span style="color: #009900; font-style: italic;">// traces &quot;this is my name&quot;</span>
&nbsp;
d.<span style="color: #006600;">name2</span> = <span style="color: #3366CC;">&quot;this is my new name&quot;</span>;
trace<span style="color: #66cc66;">&#40;</span><span style="color: #3366CC;">&quot;test3: &quot;</span> + d.<span style="color: #006600;">name2</span><span style="color: #66cc66;">&#41;</span>; <span style="color: #009900; font-style: italic;">// traces &quot;this is my new name&quot;</span>
&nbsp;
d<span style="color: #66cc66;">&#91;</span><span style="color: #3366CC;">&quot;name3&quot;</span><span style="color: #66cc66;">&#93;</span> = <span style="color: #3366CC;">&quot;this is test3&quot;</span>;
trace<span style="color: #66cc66;">&#40;</span><span style="color: #3366CC;">&quot;test4: &quot;</span> + d.<span style="color: #006600;">name3</span><span style="color: #66cc66;">&#41;</span>;
<span style="color: #009900; font-style: italic;">// throws exception that you can't add new methods to the interface</span></pre></div></div></td></tr></table><br /><br />
</div><br />
<br />
Currently the visiblity modifiers don't work (yet). I might remove them completely. Also, the strong/safe typing doesn't work (you can objects of any type to the instance's properties).<br />
]]></description>
            <author>Benny Bottema &lt;b(DOT)bottema(AT)projectnibble(DOT)org&gt;</author>
            <pubDate>Sun, 15 Apr 2007 15:20:53 +0100</pubDate>
        </item>
        <item>
            <title>Progress Report</title>
            <link>http://www.projectnibble.org/tikiwiki/tiki-view_blog_post.php?blogId=2&amp;postId=18</link>
            <description><![CDATA[I've just spent all evening rewriting *all* thrown Exceptions in the engine to subclassed version and writing comments for them. No exceptions are thrown of type Exception anymore.<br />
<br />
This is what it roughly looks like:<br />
<br />
Exception<br />
Exception -> ScriptException<a href="tiki-editpage.php?page=ScriptException" title="Create page: ScriptException" class="wiki wikinew">?</a><br />
Exception -> ScriptException<a href="tiki-editpage.php?page=ScriptException" title="Create page: ScriptException" class="wiki wikinew">?</a> -> ParseException<a href="tiki-editpage.php?page=ParseException" title="Create page: ParseException" class="wiki wikinew">?</a><br />
Exception -> ScriptException<a href="tiki-editpage.php?page=ScriptException" title="Create page: ScriptException" class="wiki wikinew">?</a> -> ScanException<a href="tiki-editpage.php?page=ScanException" title="Create page: ScanException" class="wiki wikinew">?</a><br />
Exception -> ScriptException<a href="tiki-editpage.php?page=ScriptException" title="Create page: ScriptException" class="wiki wikinew">?</a> -> CompileException<a href="tiki-editpage.php?page=CompileException" title="Create page: CompileException" class="wiki wikinew">?</a><br />
Exception -> ScriptException<a href="tiki-editpage.php?page=ScriptException" title="Create page: ScriptException" class="wiki wikinew">?</a> -> ExecuteException<a href="tiki-editpage.php?page=ExecuteException" title="Create page: ExecuteException" class="wiki wikinew">?</a> -> StatementException<a href="tiki-editpage.php?page=StatementException" title="Create page: StatementException" class="wiki wikinew">?</a><br />
Exception -> ScriptException<a href="tiki-editpage.php?page=ScriptException" title="Create page: ScriptException" class="wiki wikinew">?</a> -> ExecuteException<a href="tiki-editpage.php?page=ExecuteException" title="Create page: ExecuteException" class="wiki wikinew">?</a> -> ExpressionException<a href="tiki-editpage.php?page=ExpressionException" title="Create page: ExpressionException" class="wiki wikinew">?</a><br />
<br />
<br />
I've also done a complete Eclipse sweep with cleanup, format and imports cleanup<br />
]]></description>
            <author>Benny Bottema &lt;b(DOT)bottema(AT)projectnibble(DOT)org&gt;</author>
            <pubDate>Fri, 06 Apr 2007 22:42:11 +0100</pubDate>
        </item>
        <item>
            <title>Progress report</title>
            <link>http://www.projectnibble.org/tikiwiki/tiki-view_blog_post.php?blogId=2&amp;postId=17</link>
            <description><![CDATA[Yesterday I've added the operator <i>require</i>, which loads a scriptfile before the calling script is being parsed any further.<br />
<br />
So it is somewhat like an <code>include</code> statement, except it can only be parsed once. If you parse a bunch of files in a batch, you can prioritize scriptfiles needed by other scripts using the <i>require</i> statement.<br />
<br />
The <i>require</i> statement loads a scriptfile if it is being queued for parsing or not. If it is however, it will only be pushed forward and parsed right away and it won't be parsed again.<br />
]]></description>
            <author>Benny Bottema &lt;b(DOT)bottema(AT)projectnibble(DOT)org&gt;</author>
            <pubDate>Fri, 06 Apr 2007 10:59:25 +0100</pubDate>
        </item>
    </channel>
</rss>

