<?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>Voice of the PPL &#187; object-oriented</title>
	<atom:link href="http://arianesoft.ca/blog/tag/object-oriented/feed/" rel="self" type="application/rss+xml" />
	<link>http://arianesoft.ca/blog</link>
	<description>It&#039;s all about the PPL!</description>
	<lastBuildDate>Sun, 25 Apr 2010 03:42:21 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Design classes visually in PPL 2</title>
		<link>http://arianesoft.ca/blog/design-classes-visually-in-ppl-2/</link>
		<comments>http://arianesoft.ca/blog/design-classes-visually-in-ppl-2/#comments</comments>
		<pubDate>Mon, 22 Jun 2009 14:08:21 +0000</pubDate>
		<dc:creator>Alain Deschenes</dc:creator>
				<category><![CDATA[PPL]]></category>
		<category><![CDATA[classes]]></category>
		<category><![CDATA[object-oriented]]></category>
		<category><![CDATA[ppl 2]]></category>
		<category><![CDATA[visually]]></category>

		<guid isPermaLink="false">http://arianesoft.ca/blog/?p=255</guid>
		<description><![CDATA[<br/>Design classes visually
Have you ever wanted a purely object-oriented development environement that allow you to design classes and programs with just drag and drop?
PPL 2 is built on a fully object-oriented set of libraries that offers creation of user&#8217;s classes by simply expanding classes that already exists.
Once your class structure is defined, you need to [...]]]></description>
			<content:encoded><![CDATA[<br/><h2><strong>Design classes visually</strong></h2>
<p>Have you ever wanted a purely object-oriented development environement that allow you to design classes and programs with just drag and drop?</p>
<p><strong>PPL 2</strong> is built on a fully object-oriented set of libraries that offers creation of user&#8217;s classes by simply expanding classes that already exists.</p>
<p>Once your class structure is defined, you need to apply rules to it. With PPL 2&#8217;s visual programming, simply drag objects to events and select the action to execute. You can do most of standard code based programming in just a few clicks.</p>
<p>The powerful code completion is also available while you design your program&#8217;s logic visually. No more wondering of which procedure or function does what, the integrated help engine is always there when you need it.</p>
]]></content:encoded>
			<wfw:commentRss>http://arianesoft.ca/blog/design-classes-visually-in-ppl-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Cast a spell</title>
		<link>http://arianesoft.ca/blog/cast-a-spell/</link>
		<comments>http://arianesoft.ca/blog/cast-a-spell/#comments</comments>
		<pubDate>Thu, 11 Dec 2008 18:39:27 +0000</pubDate>
		<dc:creator>Alain Deschenes</dc:creator>
				<category><![CDATA[PPL]]></category>
		<category><![CDATA[casting]]></category>
		<category><![CDATA[object-oriented]]></category>
		<category><![CDATA[syntax]]></category>

		<guid isPermaLink="false">http://arianesoft.ca/blog/?p=166</guid>
		<description><![CDATA[<br/>Since version 2.0 of PPL will be a full blown object-oriented development environment, the PPL language syntax must be as unique and flexible as possible when it comes to object-oriented syntax. We have implemented a new feature that will make object-oriented libraries a pleasure to use. (Note: This might exists in other languages already, I [...]]]></description>
			<content:encoded><![CDATA[<br/><p>Since version 2.0 of PPL will be a full blown object-oriented development environment, the PPL language syntax must be as unique and flexible as possible when it comes to object-oriented syntax. We have implemented a new feature that will make object-oriented libraries a pleasure to use. (Note: This might exists in other languages already, I have not encountered this feature so far).</p>
<p>Let&#8217;s take the following class:</p>
<blockquote><p>#class PTest<br />
private(v$);</p>
<p>nproc Create<br />
v$ = Args$[0];<br />
end;</p>
<p>public proc Show<br />
ShowMessage(v$);<br />
end;<br />
#endclass</p></blockquote>
<p>Nothing fancy about it, simple stupid. Now if you want to use it you would normally use the following code:</p>
<blockquote><p>local(t$);<br />
t$ = new PTest(10);<br />
t.Show;<br />
t.Free;</p></blockquote>
<p>This is a little long if you just want to use the class to access one of its public method. Now take the following code, it is much easier to use, clean and saves you coding time:</p>
<blockquote><p>PTest(10).Show;</p></blockquote>
<p>This line of code will do the following internally:</p>
<ul>
<li>- Create a new temporary PTest class object.</li>
<li>- Initialize it with the value 10.</li>
<li>- Call the Show method.</li>
<li>- Free the object from memory.</li>
</ul>
<p>Now I hear you think, ok, nice, but what will be useful for ? In PPL 2.0 we have a PFile class that can do all sort of manipulation on files. Using it normally would result in the following code to delete a file:</p>
<blockquote><p>f$ = new PFile(&#8220;c:\\myfile.txt&#8221;);<br />
f.Delete;<br />
f.Free;</p></blockquote>
<p>With the new method, imagine how cool it would be:</p>
<blockquote><p>PFile(&#8220;c:\\myfile.txt&#8221;).Delete;</p></blockquote>
<p>That&#8217;s it, very easy, one line and your done.</p>
<p>What about the PDirectory class?</p>
<blockquote><p>files$ = PDirectory(&#8220;c:\\MyFolder&#8221;).Scan;<br />
ForEach(files$)<br />
ShowMessage(files$);<br />
end;</p></blockquote>
<p>Since we are implementing this new feature, class type casting syntax as to be changed a little:</p>
<p>Before you would do the following:</p>
<blockquote><p>PCastClass(MyObject$).Method(10, 20, 30);</p></blockquote>
<p>Now you need to do the following:</p>
<blockquote><p>Cast(&#8220;PCastClass&#8221;, MyObject$).Method(10, 20, 30);</p></blockquote>
<p>It is not really harder but since class type casting will be used less frequently than that one liner object creation disposal syntax, we have a decided to change the cast typing syntax.</p>
]]></content:encoded>
			<wfw:commentRss>http://arianesoft.ca/blog/cast-a-spell/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

