Revision history for GenieProgramming
Revision [29474]
Last edited on 2013-11-08 08:25:04 by darkcity [[[HomePage]] > [[ComponentHowTo Components and ]Additions:
[[HomePage]] > [[ComponentHowTo Components and HowTos]] > [[HowToProgramming Programming]]
Revision [29472]
Edited on 2013-11-08 08:23:00 by darkcity [[[HomePage]] > [[ComponentHowTo Components and ]Additions:
====Vala and Genie Programming====
http://dotpups.de/puppy4/dotpups/Programming/Vala/
[[http://live.gnome.org/Vala#head-9c728d151a2a0483d4f3b5837e5b545df9d8499d]]
http://dotpups.de/puppy4/dotpups/Programming/Vala/
[[http://live.gnome.org/Vala#head-9c728d151a2a0483d4f3b5837e5b545df9d8499d]]
Deletions:
http://dotpups.de/puppy4/dotpups/Programming/Vala/vala-0.7.0-i486.pet
http://dotpups.de/puppy4/dotpups/Programming/Vala/gtksourceview-2.4.2.pe...
http://dotpups.de/puppy4/dotpups/Programming/Vala/valide-0.4-1-i686-svn-...
http://live.gnome.org/Vala#head-9c728d151a2a0483d4f3b5837e5b545df9d8499d
<meta name="GENERATOR" content="OpenOffice.org 3.0 (Linux)" />
<style type="text/css">
<!--
@page { margin: 0.79in }
P { margin-bottom: 0.08in }
H3 { margin-bottom: 0.08in }
A:link { so-language: zxx }
-->
</style>
Revision [3973]
Edited on 2009-11-03 15:05:43 by Puppyite [[[HomePage]] > [[ComponentHowTo Components and ]Additions:
<font face="Nimbus Sans L, sans-serif"><font size="4"><b><span style=" none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">What is this?</span></b></font></font>
<font face="Nimbus Sans L, sans-serif"><font size="4"><b><span style="none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">What are the main features of Genie?</span></b></font></font>
<font face="Nimbus Sans L, sans-serif"><font size="4"><b><span style="none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">What is the difference between Vala and Genie?</span></b></font></font>
<font face="Nimbus Sans L, sans-serif"><font size="4"><b><span style="none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">Who Created Genie?</span></b></font></font>
<font face="Nimbus Sans L, sans-serif"><font size="4"><b><span style="none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">When were Vala and Genie created?</span></b></font></font>
same compiler and support all the same features<font size="4"><b><span style="none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial"><br />
<font face="Nimbus Sans L, sans-serif"><font size="4"><b><span style="none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">How do I use Genie in Puppy?</span></b></font></font>
<font face="Nimbus Sans L, sans-serif"><font size="4"><b><span style="none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">Is Genie a good language to start programming with?</span></b></font></font>
<font face="Nimbus Sans L, sans-serif"><font size="4"><b><span style="none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">Basic Concepts</span></b></font></font>
<font size="4"><b><span style="none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">Where can I find out about String handling in Genie?</span></b></font></font>
<font face="Nimbus Sans L, sans-serif"><font size="4"><b><span style="none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">Where is valide code saved?</span></b></font></font>
<font face="Nimbus Sans L, sans-serif"><font size="4"><b><span style="none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">How do you compile code?</span></b></font></font>
<font face="Nimbus Sans L, sans-serif"><font size="4"><b><span style="none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">Can the code be used in other Linux distributions?</span></b></font></font>
<font face="Nimbus Sans L, sans-serif"><font size="4"><b><span style="none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">Is Vala available for Windows?</span></b></font></font>
<font face="Nimbus Sans L, sans-serif"><font size="4"><b><span style="none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">Where can I find out about Valide</span></b></font></font>
<font size="4"><span style="none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">C</span></font><font size="4"><b><span style="none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">ode
<font face="Nimbus Sans L, sans-serif"><font size="4"><b><span style="none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">Infinite
<font size="4"><span lang="en-US"><b><span style="none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">Links</span></b></span></font></font>
<font face="Nimbus Sans L, sans-serif"><font size="4"><b><span style="none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">Who created this info?</span></b></font></font>
<font face="Nimbus Sans L, sans-serif"><font size="4"><b><span style="none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">What are the main features of Genie?</span></b></font></font>
<font face="Nimbus Sans L, sans-serif"><font size="4"><b><span style="none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">What is the difference between Vala and Genie?</span></b></font></font>
<font face="Nimbus Sans L, sans-serif"><font size="4"><b><span style="none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">Who Created Genie?</span></b></font></font>
<font face="Nimbus Sans L, sans-serif"><font size="4"><b><span style="none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">When were Vala and Genie created?</span></b></font></font>
same compiler and support all the same features<font size="4"><b><span style="none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial"><br />
<font face="Nimbus Sans L, sans-serif"><font size="4"><b><span style="none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">How do I use Genie in Puppy?</span></b></font></font>
<font face="Nimbus Sans L, sans-serif"><font size="4"><b><span style="none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">Is Genie a good language to start programming with?</span></b></font></font>
<font face="Nimbus Sans L, sans-serif"><font size="4"><b><span style="none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">Basic Concepts</span></b></font></font>
<font size="4"><b><span style="none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">Where can I find out about String handling in Genie?</span></b></font></font>
<font face="Nimbus Sans L, sans-serif"><font size="4"><b><span style="none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">Where is valide code saved?</span></b></font></font>
<font face="Nimbus Sans L, sans-serif"><font size="4"><b><span style="none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">How do you compile code?</span></b></font></font>
<font face="Nimbus Sans L, sans-serif"><font size="4"><b><span style="none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">Can the code be used in other Linux distributions?</span></b></font></font>
<font face="Nimbus Sans L, sans-serif"><font size="4"><b><span style="none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">Is Vala available for Windows?</span></b></font></font>
<font face="Nimbus Sans L, sans-serif"><font size="4"><b><span style="none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">Where can I find out about Valide</span></b></font></font>
<font size="4"><span style="none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">C</span></font><font size="4"><b><span style="none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">ode
<font face="Nimbus Sans L, sans-serif"><font size="4"><b><span style="none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">Infinite
<font size="4"><span lang="en-US"><b><span style="none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">Links</span></b></span></font></font>
<font face="Nimbus Sans L, sans-serif"><font size="4"><b><span style="none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">Who created this info?</span></b></font></font>
Deletions:
<title></title>
<font face="Nimbus Sans L, sans-serif"><font size="4"><b><span style="background: #ffff00 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">What is this?</span></b></font></font>
<font face="Nimbus Sans L, sans-serif"><font size="4"><b><span style="background: #ffff00 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">What are the main features of Genie?</span></b></font></font>
<font face="Nimbus Sans L, sans-serif"><font size="4"><b><span style="background: #ffff00 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">What is the difference between Vala and Genie?</span></b></font></font>
<font face="Nimbus Sans L, sans-serif"><font size="4"><b><span style="background: #ffff00 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">Who Created Genie?</span></b></font></font>
<font face="Nimbus Sans L, sans-serif"><font size="4"><b><span style="background: #ffff00 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">When were Vala and Genie created?</span></b></font></font>
same compiler and support all the same features<font size="4"><b><span style="background: #ffff00 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial"><br />
<font face="Nimbus Sans L, sans-serif"><font size="4"><b><span style="background: #ffff00 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">How do I use Genie in Puppy?</span></b></font></font>
<font face="Nimbus Sans L, sans-serif"><font size="4"><b><span style="background: #ffff00 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">Is Genie a good language to start programming with?</span></b></font></font>
<font face="Nimbus Sans L, sans-serif"><font size="4"><b><span style="background: #ffff00 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">Basic Concepts</span></b></font></font>
<font size="4"><b><span style="background: #ffff00 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">Where can I find out about String handling in Genie?</span></b></font></font>
<font face="Nimbus Sans L, sans-serif"><font size="4"><b><span style="background: #ffff00 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">Where is valide code saved?</span></b></font></font>
<font face="Nimbus Sans L, sans-serif"><font size="4"><b><span style="background: #ffff00 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">How do you compile code?</span></b></font></font>
<font face="Nimbus Sans L, sans-serif"><font size="4"><b><span style="background: #ffff00 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">Can the code be used in other Linux distributions?</span></b></font></font>
<font face="Nimbus Sans L, sans-serif"><font size="4"><b><span style="background: #ffff00 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">Is Vala available for Windows?</span></b></font></font>
<font face="Nimbus Sans L, sans-serif"><font size="4"><b><span style="background: #ffff00 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">Where can I find out about Valide</span></b></font></font>
<font size="4"><span style="background: #83caff none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">C</span></font><font size="4"><b><span style="background: #83caff none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">ode
<font face="Nimbus Sans L, sans-serif"><font size="4"><b><span style="background: #83caff none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">Infinite
<font size="4"><span lang="en-US"><b><span style="background: #83caff none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">Links</span></b></span></font></font>
<font face="Nimbus Sans L, sans-serif"><font size="4"><b><span style="background: #ffff00 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">Who created this info?</span></b></font></font>
Revision [3972]
Edited on 2009-11-03 14:58:52 by Puppyite [[[HomePage]] > [[ComponentHowTo Components and ]Additions:
==={{color text="Vala" c="black"}}===
==={{color text="How do I get started with Vala/Genie" c="black"}}===
==={{color text="Step one: Installing Devx." c="black"}}===
==={{color text="Step 2 :Install vala." c="black"}}===
==={{color text="Extra juice:" c="black"}}===
==={{color text="How do I get started with Vala/Genie" c="black"}}===
==={{color text="Step one: Installing Devx." c="black"}}===
==={{color text="Step 2 :Install vala." c="black"}}===
==={{color text="Extra juice:" c="black"}}===
Deletions:
====={{color text="How do I get started with Vala/Genie" c="black"}}=====
===={{color text="Step one: Installing Devx." c="black"}}====
===={{color text="Step 2 :Install vala." c="black"}}====
===={{color text="Extra juice:" c="black"}}====
Revision [3971]
Edited on 2009-11-03 14:57:27 by Puppyite [[[HomePage]] > [[ComponentHowTo Components and ]Additions:
======{{color text="Vala and Genie Programming" c="green"}}======
==={{color text="What are Vala and Genie?" c="black"}}===
==={{color text="What are Vala and Genie?" c="black"}}===
Deletions:
====={{color text="What are Vala and Genie?" c="black"}}=====
Revision [3970]
Edited on 2009-11-03 14:56:32 by Puppyite [[[HomePage]] > [[ComponentHowTo Components and ]Additions:
Once that step is completed, you must go to Menu > System > Bootmanager > Load SFS, and ask it to load it at boot. When you reboot, you can open a console and type "make". If it says: "make: No targets specified and no makefile found. Stop." you have successfully completed step one.
Deletions:
Revision [3969]
Edited on 2009-11-03 14:53:46 by Puppyite [[[HomePage]] > [[ComponentHowTo Components and ]Additions:
Installing a sfs is easy, don't worry. All you have to do is download it, check it's checksum with the [[MD5sum MD5sum]] command to avoid headaches, and after (or before, please yourself) you have compared it with the checksum the ftp gives, you have to place it in /mnt/home/.
Deletions:
Revision [2766]
Edited on 2009-10-24 06:23:48 by Puppyite [[[HomePage]] > [[ComponentHowTo Components and ]Additions:
GNOME itself is written in C, but many of the higher level libraries that make up the GNOME platform (such as GTK+ and Pango) make heavy use of the GLib and GObject frameworks, which implement a complete object system including types, messaging, classes, and all of the other components that make up a typical object oriented application program interface (API). GObject makes it possible to write object oriented GNOME applications in C, and also makes it simple to provide wrappers to GNOME for object oriented languages like C""++"" or Python.
Deletions:
Revision [2140]
Edited on 2009-10-12 20:47:37 by Puppyite [[[HomePage]] > [[ComponentHowTo Components and ]Additions:
====={{color text="What are Vala and Genie?" c="black"}}=====
Deletions:
Revision [2139]
Edited on 2009-10-12 20:46:55 by Puppyite [[[HomePage]] > [[ComponentHowTo Components and ]Additions:
======{{color text="Vala and Genie Programming" c="black"}}======
===={{color text="Vala" c="black"}}====
====={{color text="How do I get started with Vala/Genie" c="black"}}=====
===={{color text="Step 2 :Install vala." c="black"}}====
===={{color text="Extra juice:" c="black"}}====
===={{color text="Vala" c="black"}}====
====={{color text="How do I get started with Vala/Genie" c="black"}}=====
===={{color text="Step 2 :Install vala." c="black"}}====
===={{color text="Extra juice:" c="black"}}====
Deletions:
===={{color text="Vala" c="color"}}====
====={{color text="How do I get started with Vala/Genie" c="color"}}=====
===={{color text="Step 2 :Install vala." c="color"}}====
===={{color text="Extra juice:" c="color"}}====
Revision [2138]
Edited on 2009-10-12 20:44:57 by Puppyite [[[HomePage]] > [[ComponentHowTo Components and ]Additions:
====={{color text="How do I get started with Vala/Genie" c="color"}}=====
===={{color text="Extra juice:" c="color"}}====
===={{color text="Extra juice:" c="color"}}====
Deletions:
====Extra juice:====
Revision [2137]
Edited on 2009-10-12 20:43:52 by Puppyite [[[HomePage]] > [[ComponentHowTo Components and ]Additions:
======{{color text="Vala and Genie Programming" c="color"}}======
===={{color text="Vala" c="color"}}====
===={{color text="Step one: Installing Devx." c="black"}}====
===={{color text="Step 2 :Install vala." c="color"}}====
===={{color text="Vala" c="color"}}====
===={{color text="Step one: Installing Devx." c="black"}}====
===={{color text="Step 2 :Install vala." c="color"}}====
Deletions:
====Vala====
====Step one: Installing Devx.====
====Step 2 :Install vala.====
Additions:
----
==Categories==
CategoryDevelopment
==Categories==
CategoryDevelopment
No Differences
Additions:
http://dotpups.de/puppy4/dotpups/Programming/Vala/ Download
""
<p>
<meta http-equiv="CONTENT-TYPE" content="text/html; charset=utf-8" />
<title></title>
<meta name="GENERATOR" content="OpenOffice.org 3.0 (Linux)" />
<style type="text/css">
<!--
@page { margin: 0.79in }
P { margin-bottom: 0.08in }
H3 { margin-bottom: 0.08in }
A:link { so-language: zxx }
-->
</style>
</p>
<br />
<p>
<font face="Nimbus Sans L, sans-serif"><font size="4"><b><span style="background: #ffff00 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">What is this?</span></b></font></font>
</p>
<p style="margin-bottom: 0in">
<font face="Nimbus Sans L, sans-serif">An introduction to using the Genie Programming language under Puppy
Linux</font>
</p>
<p>
</p>
<p>
<font face="Nimbus Sans L, sans-serif"><font size="4"><b><span style="background: #ffff00 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">What are the main features of Genie?</span></b></font></font>
</p>
<p style="margin-bottom: 0in">
<br />
</p>
<ul>
<li>
<p style="margin-bottom: 0in">
<font face="Nimbus Sans L, sans-serif"><b>A true compiler</b> <br />
A "Hello world" console executable
is 2.9KB, a GTK GUI "Hello world", with a OK button thrown
in, is 5.8KB</font>
</p>
</li>
<li>
<p style="margin-bottom: 0in">
<font face="Nimbus Sans L, sans-serif"><b>Easy Python-like language</b> </font>
</p>
</li>
<li>
<p style="margin-bottom: 0in">
<font face="Nimbus Sans L, sans-serif"><b>Easy GTK programming</b> </font>
</p>
</li>
<li>
<p style="margin-bottom: 0in">
<font face="Nimbus Sans L, sans-serif"><b>Link directly with the system shared libraries</b> <br />
No huge binding
libraries, nothing required at runtime. No bloat! </font>
</p>
</li>
<li>
<p style="margin-bottom: 0in">
<font face="Nimbus Sans L, sans-serif"><b>Library support</b> <br />
Compile-time bindings available for most shared
libraries. </font>
</p>
</li>
<li>
<p style="margin-bottom: 0in">
<font face="Nimbus Sans L, sans-serif"><b>Plain-C intermediate code</b> <br />
Only needs Gnu C compiler -- so can be
compiled for any operating system and CPU. </font>
</p>
</li>
<li>
<p>
<font face="Nimbus Sans L, sans-serif"><b>Object oriented</b><br />
Objects are not "bolted on" as for some
languages that started life as procedural-only. But Genie code can
be non-object-oriented if you wish.</font>
</p>
</li>
<li>
<p>
<font face="Nimbus Sans L, sans-serif">Programs written in Genie should have have similar performance and resource
usage to those written directly in Vala and C </font>
</p>
</li>
</ul>
<ul>
<li>
<p style="margin-bottom: 0in">
<font face="Nimbus Sans L, sans-serif">Genie has none of the bloat and overhead that comes with many other high
level languages which utilize a VM (Eg Python, Mono, et al) </font>
</p>
</li>
</ul>
<ul>
<li>
<p style="margin-bottom: 0in">
<font face="Nimbus Sans L, sans-serif">Classes in Genie are actually gobjects so Genie can be used for creating
platform code like widgets and libraries where gobjects are required
for binding to other languages.</font>
</p>
</li>
<li>
<p style="margin-bottom: 0in">
<font face="Nimbus Sans L, sans-serif">The generic nature of Glib means that you can use Vala/Genie for any
kind of programing, but Glib/Gobject does make it particularly easy
for GTK coding.</font>
</p>
</li>
</ul>
<p style="margin-bottom: 0in">
<br />
</p>
<p>
<font face="Nimbus Sans L, sans-serif"><font size="4"><b><span style="background: #ffff00 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">What is the difference between Vala and Genie?</span></b></font></font>
</p>
<p>
<font face="Nimbus Sans L, sans-serif">Vala is more like C/Java,
Genie like Basic. </font>
</p>
<br />
<br />
<p>
<font face="Nimbus Sans L, sans-serif"><font size="4"><b><span style="background: #ffff00 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">Who Created Genie?</span></b></font></font>
</p>
<p>
<font face="Nimbus Sans L, sans-serif">Jamie McCracken
created Genie, <br />
Jürg Billeter and Raffaele Sandrini are the main
developers of Vala.</font>
</p>
<p>
</p>
<p>
<font face="Nimbus Sans L, sans-serif"><font size="4"><b><span style="background: #ffff00 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">When were Vala and Genie created?</span></b></font></font>
</p>
<p>
<font face="Nimbus Sans L, sans-serif">Vala came first in
mid-2006, with a C#-like syntax. <br />
Genie followed in mid-2008 influenced in part by Python and Delphi. <br />
These languages use the
same compiler and support all the same features<font size="4"><b><span style="background: #ffff00 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial"><br />
</span></b></font></font><br />
<br />
</p>
<p>
<font face="Nimbus Sans L, sans-serif"><font size="4"><b><span style="background: #ffff00 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">How do I use Genie in Puppy?</span></b></font></font>
</p>
<br />
<br />
<br />
<p>
<font face="Nimbus Sans L, sans-serif"><font size="4"><b><span style="background: #ffff00 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">Is Genie a good language to start programming with?</span></b></font></font>
</p>
<p style="margin-bottom: 0in">
<font face="Nimbus Sans L, sans-serif">Being
like Python it forces an easy to use spaced format</font>
</p>
<p style="margin-bottom: 0in">
<font face="Nimbus Sans L, sans-serif">with
a simple modern syntax. It is more consistent and flexible than BASIC
and logo or other languages recommended for beginners.</font>
</p>
<p style="margin-bottom: 0in">
<font face="Nimbus Sans L, sans-serif">Is
it suitable for professionals?</font>
</p>
<p>
<font face="Nimbus Sans L, sans-serif">Code is compiled to C,
making it fast and efficient.<br />
Linux uses C as its main language
and the Gnome project is developing Vala</font>
</p>
<br />
<p>
<font face="Nimbus Sans L, sans-serif"><font size="4"><b><span style="background: #ffff00 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">Basic Concepts</span></b></font></font>
</p>
<h3><a title="line-58" name="line-58"></a><a title="line-59" name="line-59"></a><a title="line-60" name="line-60"></a><a title="head-7e1f7785e2694584bef6e0248d97455d212e54e7" name="head-7e1f7785e2694584bef6e0248d97455d212e54e7"></a>
<font face="Nimbus Sans L, sans-serif">Files</font></h3>
<p>
<a title="line-61" name="line-61"></a><a title="line-62" name="line-62"></a><a title="line-63" name="line-63"></a><a title="line-64" name="line-64"></a>
<font face="Nimbus Sans L, sans-serif">Genie code must be written in
files with the *.gs extensions. </font>
</p>
<p>
<a title="line-65" name="line-65"></a><a title="line-66" name="line-66"></a><a title="line-67" name="line-67"></a><a title="line-68" name="line-68"></a>
<font face="Nimbus Sans L, sans-serif">When you want to compile Genie
code, you give the compiler a list of the files required, and
Genie/Vala compiler will work out how they fit together. </font>
</p>
<h3><a title="head-3cb2d476add2537eeea0470a3d90ff1a6d4581f2" name="head-3cb2d476add2537eeea0470a3d90ff1a6d4581f2"></a><font face="Nimbus Sans L, sans-serif">Syntax</font></h3>
<p>
<a title="line-69" name="line-69"></a><a title="line-70" name="line-70"></a><a title="line-71" name="line-71"></a><a title="line-72" name="line-72"></a>
<font face="Nimbus Sans L, sans-serif">Genie's syntax mixes features
of several high level languages including Python, Boo, Delphi and D </font>
</p>
<p>
<a title="line-73" name="line-73"></a><a title="line-74" name="line-74"></a><font face="Nimbus Sans L, sans-serif">Genie
is case sensitive as a result of it being compiled into c code - so
be careful when mixing case in your code. </font>
</p>
<p>
<a title="line-75" name="line-75"></a><a title="line-76" name="line-76"></a><font face="Nimbus Sans L, sans-serif">An
identifier is defined by its name and its type, e.g. </font><tt><font face="Nimbus Sans L, sans-serif">i:int</font></tt><font face="Nimbus Sans L, sans-serif">
meaning an integer called i. In the case of value types this also
creates an object of the given type. For reference types these just
defines a new reference that doesn't initially point to anything. </font>
</p>
<p>
<font face="Nimbus Sans L, sans-serif">Genie has a mechanism
called Type Inference, whereby a local variable may be defined using
</font><tt><font face="Nimbus Sans L, sans-serif">var</font></tt><font face="Nimbus Sans L, sans-serif">
instead of giving a type, so long as it is unambiguous what type is
meant.</font>
</p>
<p>
<font face="Nimbus Sans L, sans-serif">Genie support is now in
Gtksourceview: <br />
<br />
<font size="4"><b><span style="background: #ffff00 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">Where can I find out about String handling in Genie?</span></b></font></font>
</p>
<p>
<font face="Nimbus Sans L, sans-serif"><a href="http://puppylinux.com/blog/?viewDetailed=00609" target="_blank">http://puppylinux.com/blog/?viewDetailed=00609</a>
<br />
<br />
Genie strings page:
<br />
<br />
<a href="http://puppylinux.com/blog/?viewDetailed=00608">http://puppylinux.com/blog/?viewDetailed=00608</a></font>
</p>
<p>
<font face="Nimbus Sans L, sans-serif">Just to remind to install
the gtksourcefile pet as well as the Valide one <br />
Mark has kindly
prepared <br />
<a href="http://dotpups.de/puppy4/dotpups/Programming/Vala/" target="_blank">http://dotpups.de/puppy4/dotpups/Programming/Vala/</a>
</font>
</p>
<p>
<font face="Nimbus Sans L, sans-serif">Especially Glib is
important. <br />
For example the string functions in Genie are the GLib
functions: <br />
<a href="http://valadoc.org/?pkg=glib-2.0&element=string" target="_blank">http://valadoc.org/?pkg=glib-2.0&element=string</a>
<br />
A bit difficult to find when you are new, but very essential! </font>
</p>
<p>
</p>
<p>
<font face="Nimbus Sans L, sans-serif"><font size="4"><b><span style="background: #ffff00 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">Where is valide code saved?</span></b></font></font>
</p>
<p align="left">
<font face="Nimbus Sans L, sans-serif">cd
/root/valide/Genie</font>
</p>
<p align="left">
<font face="Nimbus Sans L, sans-serif">./Genie</font>
</p>
<p align="left">
<font face="Nimbus Sans L, sans-serif">Or:</font>
</p>
<p align="left">
<font face="Nimbus Sans L, sans-serif">/root/valide/Genie/Genie
</font>
</p>
<p align="left">
</p>
<p>
<font face="Nimbus Sans L, sans-serif"><font size="4"><b><span style="background: #ffff00 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">How do you compile code?</span></b></font></font>
</p>
<p align="left">
<font face="Nimbus Sans L, sans-serif">valac -C v5.gs</font>
</p>
<p align="left">
<font face="Nimbus Sans L, sans-serif">This just
creates v5.c and v5.h.</font>
</p>
<p>
</p>
<p>
<font face="Nimbus Sans L, sans-serif"><font size="4"><b><span style="background: #ffff00 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">Can the code be used in other Linux distributions?</span></b></font></font>
</p>
<p>
Yes<br />
<br />
</p>
<p>
<font face="Nimbus Sans L, sans-serif"><font size="4"><b><span style="background: #ffff00 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">Is Vala available for Windows?</span></b></font></font>
</p>
<p style="margin-bottom: 0in">
<font face="Nimbus Sans L, sans-serif">Yes</font>
</p>
<p align="left">
<font color="#0000ff"><font face="Nimbus Sans L, sans-serif"><b>http://dotpups.de/puppy4/dotpups/Programming/Vala/Vala-for-Windows/
</b></font></font>
</p>
<p align="left">
</p>
<p>
<font face="Nimbus Sans L, sans-serif"><font size="4"><b><span style="background: #ffff00 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">Where can I find out about Valide</span></b></font></font>
</p>
<p>
<font face="Nimbus Sans L, sans-serif">http://valaide.blogspot.com/2009/03/genie-support.html</font>
</p>
<p>
<font face="Nimbus Sans L, sans-serif"><br />
<font size="4"><span style="background: #83caff none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">C</span></font><font size="4"><b><span style="background: #83caff none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">ode
examples</span></b></font></font>
</p>
<p>
<font face="Nimbus Sans L, sans-serif"><i>Hello world</i></font>
</p>
<p>
<font face="Nimbus Sans L, sans-serif"></font><font face="Nimbus Sans L, sans-serif">[indent=2]
<br />
<br />
init <br />
<br />
var a = "hello world" <br />
print("%s"
, a) </font>
</p>
<p>
<font face="Nimbus Sans L, sans-serif"><i>array</i></font>
</p>
<p align="left">
<font face="Nimbus Sans L, sans-serif">init</font>
</p>
<p align="left">
<font face="Nimbus Sans L, sans-serif">a:array
of string = {"abc", "def", "xyz"}</font>
</p>
<p align="left">
<font face="Nimbus Sans L, sans-serif">for
s in a</font>
</p>
<p align="left">
<font face="Nimbus Sans L, sans-serif">print(s)</font>
</p>
<p align="left">
<font face="Nimbus Sans L, sans-serif"><i>random
method</i> </font>
</p>
<p align="left">
<font face="Nimbus Sans L, sans-serif">from GLib.
<br />
<a href="http://valadoc.org/?pkg=glib-2.0%26element=GLib.Random">http://valadoc.org/?pkg=glib-2.0&element=GLib.Random</a>
</font>
</p>
<p align="left">
<font face="Nimbus Sans L, sans-serif">Example:</font>
</p>
<p align="left">
<font face="Nimbus Sans L, sans-serif">Code:</font>
</p>
<p align="left">
<font face="Nimbus Sans L, sans-serif">init</font>
</p>
<p align="left">
<font face="Nimbus Sans L, sans-serif">//
return a random value from 1 to 9</font>
</p>
<p align="left">
<font face="Nimbus Sans L, sans-serif">a:int</font>
</p>
<p align="left">
<font face="Nimbus Sans L, sans-serif">a =
GLib.Random.int_range(1,10)</font>
</p>
<p align="left">
<font face="Nimbus Sans L, sans-serif">print("%d"
,</font>
</p>
<p align="left">
<br />
<br />
</p>
<p>
<font face="Nimbus Sans L, sans-serif"><font size="4"><b><span style="background: #83caff none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">Infinite
Monkey theorem</span></b></font></font>
</p>
<p align="left">
<font face="Nimbus Sans L, sans-serif">// Infinite
Monkey Theorem <br />
// Lobster and Shadow, March 2009 LGPL <br />
<br />
//
use from command line <br />
// imt ["search text"] <br />
//
generates random characters and searches for a given pattern eg 'in
the beginning was the world' <br />
// warning strings longer than "in
the" may take minutes or hours to find <br />
<br />
// program
demonstrates: <br />
// basic functions <br />
//
passing parameters in command line <br />
// random
character generation <br />
// constant <br />
[indent=3] <br />
def
getRandomNumber(RangeFrom:int, RangeTo:int) : int /* function
to create random number between range */ <br />
return
GLib.Random.int_range(RangeFrom,RangeTo) <br />
<br />
def getRandomChar()
: char
/* function to generate
ascii codes from a-z and space (32) */ <br />
num:int =
getRandomNumber(0,27) <br />
if num == 0 <br />
num = 32 <br />
else <br />
num =
num + 96 <br />
return (char) num <br />
<br />
def
addRandomChar(myText:string) : string
/* function add text from command line */ <br />
var retText = new StringBuilder <br />
retText.append(myText) <br />
retText.append_c(getRandomChar()) <br />
return
retText.str <br />
<br />
init <br />
USAGE:string = "Usage:\n\t ./imt \"some text for
monkeys to generate\" " <br />
theText:string =
args[1] <br />
if theText == null <br />
theText = "" <br />
theText = theText.down()
/* change any text input to lower case */
<br />
myText:string = "" <br />
<br />
if theText != "" <br />
do
<br />
do <br />
myText = addRandomChar(myText) <br />
while theText.len() != myText.len() <br />
print("%s" , myText) <br />
if theText != myText <br />
stdout.printf("\n") <br />
myText = "" <br />
while theText != myText <br />
stdout.printf("\n")
<br />
<br />
else <br />
print("%s"
, USAGE)
/* this
appears if program run without text */ a)</font>
</p>
<br />
<p>
<font face="Nimbus Sans L, sans-serif"><br />
<font size="4"><span lang="en-US"><b><span style="background: #83caff none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">Links</span></b></span></font></font>
</p>
<p style="margin-bottom: 0in" align="left">
<font face="DejaVu Sans"><font face="Nimbus Sans L, sans-serif"><span lang="en-US"></span></font></font><font face="Nimbus Sans L, sans-serif"><a href="http://live.gnome.org/Genie">http://live.gnome.org/Genie</a>
official genie site</font>
</p>
<p style="margin-bottom: 0in" align="left">
<font face="Nimbus Sans L, sans-serif"><span lang="en-US"><a href="http://puppylinux.com/genie/">http://puppylinux.com/genie/</a>
Barry's site<br />
<br />
</span></font><font face="DejaVu Sans"><font face="Nimbus Sans L, sans-serif"><span lang="en-US"></span></font></font><a href="http://valadoc.org/?"><font face="Nimbus Sans L, sans-serif"><span lang="en-US">http://valadoc.org/?</span></font></a><font face="Nimbus Sans L, sans-serif">
</font><font face="Nimbus Sans L, sans-serif"><span lang="en-US"><br />
<br />
<a href="http://www.vala-project.org/doc/vala/">http://www.vala-project.org/doc/vala/</a></span></font><font face="Nimbus Sans L, sans-serif">
</font><font face="Nimbus Sans L, sans-serif"><span lang="en-US"><br />
<a href="http://live.gnome.org/Vala">http://live.gnome.org/Vala</a></span></font><font face="Nimbus Sans L, sans-serif">
</font><font face="Nimbus Sans L, sans-serif"><span lang="en-US"><br />
<a href="http://live.gnome.org/Vala/Tutorial">http://live.gnome.org/Vala/Tutorial</a></span></font><font face="Nimbus Sans L, sans-serif">
</font><font face="Nimbus Sans L, sans-serif"><span lang="en-US"><br />
<a href="http://library.gnome.org/devel/glib/">http://library.gnome.org/devel/glib/</a></span></font><font face="Nimbus Sans L, sans-serif"> </font>
</p>
<p style="margin-bottom: 0in" align="left">
<font face="DejaVu Sans"><font face="Nimbus Sans L, sans-serif"><span lang="en-US"></span></font></font><font face="Nimbus Sans L, sans-serif"><a href="http://dotpups.de/puppy4/dotpups/Programming/Vala/">http://dotpups.de/puppy4/dotpups/Programming/Vala/</a>
Download</font>
</p>
<p style="margin-bottom: 0in" align="left">
<br />
</p>
<p style="margin-bottom: 0in" align="left">
<font face="Nimbus Sans L, sans-serif"><font size="4"><b><span style="background: #ffff00 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">Who created this info?</span></b></font></font>
</p>
<p style="margin-bottom: 0in" align="left">
Started by lobster may 2009
</p>
""
""
<p>
<meta http-equiv="CONTENT-TYPE" content="text/html; charset=utf-8" />
<title></title>
<meta name="GENERATOR" content="OpenOffice.org 3.0 (Linux)" />
<style type="text/css">
<!--
@page { margin: 0.79in }
P { margin-bottom: 0.08in }
H3 { margin-bottom: 0.08in }
A:link { so-language: zxx }
-->
</style>
</p>
<br />
<p>
<font face="Nimbus Sans L, sans-serif"><font size="4"><b><span style="background: #ffff00 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">What is this?</span></b></font></font>
</p>
<p style="margin-bottom: 0in">
<font face="Nimbus Sans L, sans-serif">An introduction to using the Genie Programming language under Puppy
Linux</font>
</p>
<p>
</p>
<p>
<font face="Nimbus Sans L, sans-serif"><font size="4"><b><span style="background: #ffff00 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">What are the main features of Genie?</span></b></font></font>
</p>
<p style="margin-bottom: 0in">
<br />
</p>
<ul>
<li>
<p style="margin-bottom: 0in">
<font face="Nimbus Sans L, sans-serif"><b>A true compiler</b> <br />
A "Hello world" console executable
is 2.9KB, a GTK GUI "Hello world", with a OK button thrown
in, is 5.8KB</font>
</p>
</li>
<li>
<p style="margin-bottom: 0in">
<font face="Nimbus Sans L, sans-serif"><b>Easy Python-like language</b> </font>
</p>
</li>
<li>
<p style="margin-bottom: 0in">
<font face="Nimbus Sans L, sans-serif"><b>Easy GTK programming</b> </font>
</p>
</li>
<li>
<p style="margin-bottom: 0in">
<font face="Nimbus Sans L, sans-serif"><b>Link directly with the system shared libraries</b> <br />
No huge binding
libraries, nothing required at runtime. No bloat! </font>
</p>
</li>
<li>
<p style="margin-bottom: 0in">
<font face="Nimbus Sans L, sans-serif"><b>Library support</b> <br />
Compile-time bindings available for most shared
libraries. </font>
</p>
</li>
<li>
<p style="margin-bottom: 0in">
<font face="Nimbus Sans L, sans-serif"><b>Plain-C intermediate code</b> <br />
Only needs Gnu C compiler -- so can be
compiled for any operating system and CPU. </font>
</p>
</li>
<li>
<p>
<font face="Nimbus Sans L, sans-serif"><b>Object oriented</b><br />
Objects are not "bolted on" as for some
languages that started life as procedural-only. But Genie code can
be non-object-oriented if you wish.</font>
</p>
</li>
<li>
<p>
<font face="Nimbus Sans L, sans-serif">Programs written in Genie should have have similar performance and resource
usage to those written directly in Vala and C </font>
</p>
</li>
</ul>
<ul>
<li>
<p style="margin-bottom: 0in">
<font face="Nimbus Sans L, sans-serif">Genie has none of the bloat and overhead that comes with many other high
level languages which utilize a VM (Eg Python, Mono, et al) </font>
</p>
</li>
</ul>
<ul>
<li>
<p style="margin-bottom: 0in">
<font face="Nimbus Sans L, sans-serif">Classes in Genie are actually gobjects so Genie can be used for creating
platform code like widgets and libraries where gobjects are required
for binding to other languages.</font>
</p>
</li>
<li>
<p style="margin-bottom: 0in">
<font face="Nimbus Sans L, sans-serif">The generic nature of Glib means that you can use Vala/Genie for any
kind of programing, but Glib/Gobject does make it particularly easy
for GTK coding.</font>
</p>
</li>
</ul>
<p style="margin-bottom: 0in">
<br />
</p>
<p>
<font face="Nimbus Sans L, sans-serif"><font size="4"><b><span style="background: #ffff00 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">What is the difference between Vala and Genie?</span></b></font></font>
</p>
<p>
<font face="Nimbus Sans L, sans-serif">Vala is more like C/Java,
Genie like Basic. </font>
</p>
<br />
<br />
<p>
<font face="Nimbus Sans L, sans-serif"><font size="4"><b><span style="background: #ffff00 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">Who Created Genie?</span></b></font></font>
</p>
<p>
<font face="Nimbus Sans L, sans-serif">Jamie McCracken
created Genie, <br />
Jürg Billeter and Raffaele Sandrini are the main
developers of Vala.</font>
</p>
<p>
</p>
<p>
<font face="Nimbus Sans L, sans-serif"><font size="4"><b><span style="background: #ffff00 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">When were Vala and Genie created?</span></b></font></font>
</p>
<p>
<font face="Nimbus Sans L, sans-serif">Vala came first in
mid-2006, with a C#-like syntax. <br />
Genie followed in mid-2008 influenced in part by Python and Delphi. <br />
These languages use the
same compiler and support all the same features<font size="4"><b><span style="background: #ffff00 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial"><br />
</span></b></font></font><br />
<br />
</p>
<p>
<font face="Nimbus Sans L, sans-serif"><font size="4"><b><span style="background: #ffff00 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">How do I use Genie in Puppy?</span></b></font></font>
</p>
<br />
<br />
<br />
<p>
<font face="Nimbus Sans L, sans-serif"><font size="4"><b><span style="background: #ffff00 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">Is Genie a good language to start programming with?</span></b></font></font>
</p>
<p style="margin-bottom: 0in">
<font face="Nimbus Sans L, sans-serif">Being
like Python it forces an easy to use spaced format</font>
</p>
<p style="margin-bottom: 0in">
<font face="Nimbus Sans L, sans-serif">with
a simple modern syntax. It is more consistent and flexible than BASIC
and logo or other languages recommended for beginners.</font>
</p>
<p style="margin-bottom: 0in">
<font face="Nimbus Sans L, sans-serif">Is
it suitable for professionals?</font>
</p>
<p>
<font face="Nimbus Sans L, sans-serif">Code is compiled to C,
making it fast and efficient.<br />
Linux uses C as its main language
and the Gnome project is developing Vala</font>
</p>
<br />
<p>
<font face="Nimbus Sans L, sans-serif"><font size="4"><b><span style="background: #ffff00 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">Basic Concepts</span></b></font></font>
</p>
<h3><a title="line-58" name="line-58"></a><a title="line-59" name="line-59"></a><a title="line-60" name="line-60"></a><a title="head-7e1f7785e2694584bef6e0248d97455d212e54e7" name="head-7e1f7785e2694584bef6e0248d97455d212e54e7"></a>
<font face="Nimbus Sans L, sans-serif">Files</font></h3>
<p>
<a title="line-61" name="line-61"></a><a title="line-62" name="line-62"></a><a title="line-63" name="line-63"></a><a title="line-64" name="line-64"></a>
<font face="Nimbus Sans L, sans-serif">Genie code must be written in
files with the *.gs extensions. </font>
</p>
<p>
<a title="line-65" name="line-65"></a><a title="line-66" name="line-66"></a><a title="line-67" name="line-67"></a><a title="line-68" name="line-68"></a>
<font face="Nimbus Sans L, sans-serif">When you want to compile Genie
code, you give the compiler a list of the files required, and
Genie/Vala compiler will work out how they fit together. </font>
</p>
<h3><a title="head-3cb2d476add2537eeea0470a3d90ff1a6d4581f2" name="head-3cb2d476add2537eeea0470a3d90ff1a6d4581f2"></a><font face="Nimbus Sans L, sans-serif">Syntax</font></h3>
<p>
<a title="line-69" name="line-69"></a><a title="line-70" name="line-70"></a><a title="line-71" name="line-71"></a><a title="line-72" name="line-72"></a>
<font face="Nimbus Sans L, sans-serif">Genie's syntax mixes features
of several high level languages including Python, Boo, Delphi and D </font>
</p>
<p>
<a title="line-73" name="line-73"></a><a title="line-74" name="line-74"></a><font face="Nimbus Sans L, sans-serif">Genie
is case sensitive as a result of it being compiled into c code - so
be careful when mixing case in your code. </font>
</p>
<p>
<a title="line-75" name="line-75"></a><a title="line-76" name="line-76"></a><font face="Nimbus Sans L, sans-serif">An
identifier is defined by its name and its type, e.g. </font><tt><font face="Nimbus Sans L, sans-serif">i:int</font></tt><font face="Nimbus Sans L, sans-serif">
meaning an integer called i. In the case of value types this also
creates an object of the given type. For reference types these just
defines a new reference that doesn't initially point to anything. </font>
</p>
<p>
<font face="Nimbus Sans L, sans-serif">Genie has a mechanism
called Type Inference, whereby a local variable may be defined using
</font><tt><font face="Nimbus Sans L, sans-serif">var</font></tt><font face="Nimbus Sans L, sans-serif">
instead of giving a type, so long as it is unambiguous what type is
meant.</font>
</p>
<p>
<font face="Nimbus Sans L, sans-serif">Genie support is now in
Gtksourceview: <br />
<br />
<font size="4"><b><span style="background: #ffff00 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">Where can I find out about String handling in Genie?</span></b></font></font>
</p>
<p>
<font face="Nimbus Sans L, sans-serif"><a href="http://puppylinux.com/blog/?viewDetailed=00609" target="_blank">http://puppylinux.com/blog/?viewDetailed=00609</a>
<br />
<br />
Genie strings page:
<br />
<br />
<a href="http://puppylinux.com/blog/?viewDetailed=00608">http://puppylinux.com/blog/?viewDetailed=00608</a></font>
</p>
<p>
<font face="Nimbus Sans L, sans-serif">Just to remind to install
the gtksourcefile pet as well as the Valide one <br />
Mark has kindly
prepared <br />
<a href="http://dotpups.de/puppy4/dotpups/Programming/Vala/" target="_blank">http://dotpups.de/puppy4/dotpups/Programming/Vala/</a>
</font>
</p>
<p>
<font face="Nimbus Sans L, sans-serif">Especially Glib is
important. <br />
For example the string functions in Genie are the GLib
functions: <br />
<a href="http://valadoc.org/?pkg=glib-2.0&element=string" target="_blank">http://valadoc.org/?pkg=glib-2.0&element=string</a>
<br />
A bit difficult to find when you are new, but very essential! </font>
</p>
<p>
</p>
<p>
<font face="Nimbus Sans L, sans-serif"><font size="4"><b><span style="background: #ffff00 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">Where is valide code saved?</span></b></font></font>
</p>
<p align="left">
<font face="Nimbus Sans L, sans-serif">cd
/root/valide/Genie</font>
</p>
<p align="left">
<font face="Nimbus Sans L, sans-serif">./Genie</font>
</p>
<p align="left">
<font face="Nimbus Sans L, sans-serif">Or:</font>
</p>
<p align="left">
<font face="Nimbus Sans L, sans-serif">/root/valide/Genie/Genie
</font>
</p>
<p align="left">
</p>
<p>
<font face="Nimbus Sans L, sans-serif"><font size="4"><b><span style="background: #ffff00 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">How do you compile code?</span></b></font></font>
</p>
<p align="left">
<font face="Nimbus Sans L, sans-serif">valac -C v5.gs</font>
</p>
<p align="left">
<font face="Nimbus Sans L, sans-serif">This just
creates v5.c and v5.h.</font>
</p>
<p>
</p>
<p>
<font face="Nimbus Sans L, sans-serif"><font size="4"><b><span style="background: #ffff00 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">Can the code be used in other Linux distributions?</span></b></font></font>
</p>
<p>
Yes<br />
<br />
</p>
<p>
<font face="Nimbus Sans L, sans-serif"><font size="4"><b><span style="background: #ffff00 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">Is Vala available for Windows?</span></b></font></font>
</p>
<p style="margin-bottom: 0in">
<font face="Nimbus Sans L, sans-serif">Yes</font>
</p>
<p align="left">
<font color="#0000ff"><font face="Nimbus Sans L, sans-serif"><b>http://dotpups.de/puppy4/dotpups/Programming/Vala/Vala-for-Windows/
</b></font></font>
</p>
<p align="left">
</p>
<p>
<font face="Nimbus Sans L, sans-serif"><font size="4"><b><span style="background: #ffff00 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">Where can I find out about Valide</span></b></font></font>
</p>
<p>
<font face="Nimbus Sans L, sans-serif">http://valaide.blogspot.com/2009/03/genie-support.html</font>
</p>
<p>
<font face="Nimbus Sans L, sans-serif"><br />
<font size="4"><span style="background: #83caff none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">C</span></font><font size="4"><b><span style="background: #83caff none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">ode
examples</span></b></font></font>
</p>
<p>
<font face="Nimbus Sans L, sans-serif"><i>Hello world</i></font>
</p>
<p>
<font face="Nimbus Sans L, sans-serif"></font><font face="Nimbus Sans L, sans-serif">[indent=2]
<br />
<br />
init <br />
<br />
var a = "hello world" <br />
print("%s"
, a) </font>
</p>
<p>
<font face="Nimbus Sans L, sans-serif"><i>array</i></font>
</p>
<p align="left">
<font face="Nimbus Sans L, sans-serif">init</font>
</p>
<p align="left">
<font face="Nimbus Sans L, sans-serif">a:array
of string = {"abc", "def", "xyz"}</font>
</p>
<p align="left">
<font face="Nimbus Sans L, sans-serif">for
s in a</font>
</p>
<p align="left">
<font face="Nimbus Sans L, sans-serif">print(s)</font>
</p>
<p align="left">
<font face="Nimbus Sans L, sans-serif"><i>random
method</i> </font>
</p>
<p align="left">
<font face="Nimbus Sans L, sans-serif">from GLib.
<br />
<a href="http://valadoc.org/?pkg=glib-2.0%26element=GLib.Random">http://valadoc.org/?pkg=glib-2.0&element=GLib.Random</a>
</font>
</p>
<p align="left">
<font face="Nimbus Sans L, sans-serif">Example:</font>
</p>
<p align="left">
<font face="Nimbus Sans L, sans-serif">Code:</font>
</p>
<p align="left">
<font face="Nimbus Sans L, sans-serif">init</font>
</p>
<p align="left">
<font face="Nimbus Sans L, sans-serif">//
return a random value from 1 to 9</font>
</p>
<p align="left">
<font face="Nimbus Sans L, sans-serif">a:int</font>
</p>
<p align="left">
<font face="Nimbus Sans L, sans-serif">a =
GLib.Random.int_range(1,10)</font>
</p>
<p align="left">
<font face="Nimbus Sans L, sans-serif">print("%d"
,</font>
</p>
<p align="left">
<br />
<br />
</p>
<p>
<font face="Nimbus Sans L, sans-serif"><font size="4"><b><span style="background: #83caff none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">Infinite
Monkey theorem</span></b></font></font>
</p>
<p align="left">
<font face="Nimbus Sans L, sans-serif">// Infinite
Monkey Theorem <br />
// Lobster and Shadow, March 2009 LGPL <br />
<br />
//
use from command line <br />
// imt ["search text"] <br />
//
generates random characters and searches for a given pattern eg 'in
the beginning was the world' <br />
// warning strings longer than "in
the" may take minutes or hours to find <br />
<br />
// program
demonstrates: <br />
// basic functions <br />
//
passing parameters in command line <br />
// random
character generation <br />
// constant <br />
[indent=3] <br />
def
getRandomNumber(RangeFrom:int, RangeTo:int) : int /* function
to create random number between range */ <br />
return
GLib.Random.int_range(RangeFrom,RangeTo) <br />
<br />
def getRandomChar()
: char
/* function to generate
ascii codes from a-z and space (32) */ <br />
num:int =
getRandomNumber(0,27) <br />
if num == 0 <br />
num = 32 <br />
else <br />
num =
num + 96 <br />
return (char) num <br />
<br />
def
addRandomChar(myText:string) : string
/* function add text from command line */ <br />
var retText = new StringBuilder <br />
retText.append(myText) <br />
retText.append_c(getRandomChar()) <br />
return
retText.str <br />
<br />
init <br />
USAGE:string = "Usage:\n\t ./imt \"some text for
monkeys to generate\" " <br />
theText:string =
args[1] <br />
if theText == null <br />
theText = "" <br />
theText = theText.down()
/* change any text input to lower case */
<br />
myText:string = "" <br />
<br />
if theText != "" <br />
do
<br />
do <br />
myText = addRandomChar(myText) <br />
while theText.len() != myText.len() <br />
print("%s" , myText) <br />
if theText != myText <br />
stdout.printf("\n") <br />
myText = "" <br />
while theText != myText <br />
stdout.printf("\n")
<br />
<br />
else <br />
print("%s"
, USAGE)
/* this
appears if program run without text */ a)</font>
</p>
<br />
<p>
<font face="Nimbus Sans L, sans-serif"><br />
<font size="4"><span lang="en-US"><b><span style="background: #83caff none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">Links</span></b></span></font></font>
</p>
<p style="margin-bottom: 0in" align="left">
<font face="DejaVu Sans"><font face="Nimbus Sans L, sans-serif"><span lang="en-US"></span></font></font><font face="Nimbus Sans L, sans-serif"><a href="http://live.gnome.org/Genie">http://live.gnome.org/Genie</a>
official genie site</font>
</p>
<p style="margin-bottom: 0in" align="left">
<font face="Nimbus Sans L, sans-serif"><span lang="en-US"><a href="http://puppylinux.com/genie/">http://puppylinux.com/genie/</a>
Barry's site<br />
<br />
</span></font><font face="DejaVu Sans"><font face="Nimbus Sans L, sans-serif"><span lang="en-US"></span></font></font><a href="http://valadoc.org/?"><font face="Nimbus Sans L, sans-serif"><span lang="en-US">http://valadoc.org/?</span></font></a><font face="Nimbus Sans L, sans-serif">
</font><font face="Nimbus Sans L, sans-serif"><span lang="en-US"><br />
<br />
<a href="http://www.vala-project.org/doc/vala/">http://www.vala-project.org/doc/vala/</a></span></font><font face="Nimbus Sans L, sans-serif">
</font><font face="Nimbus Sans L, sans-serif"><span lang="en-US"><br />
<a href="http://live.gnome.org/Vala">http://live.gnome.org/Vala</a></span></font><font face="Nimbus Sans L, sans-serif">
</font><font face="Nimbus Sans L, sans-serif"><span lang="en-US"><br />
<a href="http://live.gnome.org/Vala/Tutorial">http://live.gnome.org/Vala/Tutorial</a></span></font><font face="Nimbus Sans L, sans-serif">
</font><font face="Nimbus Sans L, sans-serif"><span lang="en-US"><br />
<a href="http://library.gnome.org/devel/glib/">http://library.gnome.org/devel/glib/</a></span></font><font face="Nimbus Sans L, sans-serif"> </font>
</p>
<p style="margin-bottom: 0in" align="left">
<font face="DejaVu Sans"><font face="Nimbus Sans L, sans-serif"><span lang="en-US"></span></font></font><font face="Nimbus Sans L, sans-serif"><a href="http://dotpups.de/puppy4/dotpups/Programming/Vala/">http://dotpups.de/puppy4/dotpups/Programming/Vala/</a>
Download</font>
</p>
<p style="margin-bottom: 0in" align="left">
<br />
</p>
<p style="margin-bottom: 0in" align="left">
<font face="Nimbus Sans L, sans-serif"><font size="4"><b><span style="background: #ffff00 none repeat scroll 0% 50%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial">Who created this info?</span></b></font></font>
</p>
<p style="margin-bottom: 0in" align="left">
Started by lobster may 2009
</p>
""
Deletions:
Additions:
http://live.gnome.org/Genie
Additions:
====Vala====
While GObject makes object-oriented programming in C possible, it remains somewhat cumbersome. The GObject wrappers for other languages can be even worse, introducing yet another layer of dependencies which can include virtual machines of their own. Vala was created in an attempt to address these problems and make GNOME programming easier. Vala provides a C#-like syntax that integrates GObject features, but the valac compiler compiles to C output rather than assembly. The resulting C compiles normally with gcc, plus it can be distributed as source packages fully usable on platforms that do not have Vala installed. That allows the developer to use Vala's modern language features — dynamic type system, assisted memory management, and so on — while still making source releases compatible with C applications and libraries.
While GObject makes object-oriented programming in C possible, it remains somewhat cumbersome. The GObject wrappers for other languages can be even worse, introducing yet another layer of dependencies which can include virtual machines of their own. Vala was created in an attempt to address these problems and make GNOME programming easier. Vala provides a C#-like syntax that integrates GObject features, but the valac compiler compiles to C output rather than assembly. The resulting C compiles normally with gcc, plus it can be distributed as source packages fully usable on platforms that do not have Vala installed. That allows the developer to use Vala's modern language features — dynamic type system, assisted memory management, and so on — while still making source releases compatible with C applications and libraries.
Deletions:
While GObject makes object-oriented programming in C possible, it remains somewhat cumbersome. The GObject wrappers for other languages can be even worse, introducing yet another layer of dependencies which can include virtual machines of their own. Vala was created in an attempt to address these problems and make GNOME programming easier. Vala provides a C#-like syntax that integrates GObject features, but the valac compiler compiles to C output rather than assembly. The resulting C compiles normally with gcc, plus it can be distributed as source packages fully usable on platforms that do not have Vala installed. That allows the developer to use Vala's modern language features — dynamic type system, assisted memory management, and so on — while still making source releases compatible with C applications and libraries.
Additions:
======Vala and Genie Programming======
=====What are Vala and Genie?=====
=====How do I get started with Vala/Genie=====
On the past few days i have been incursionating into the world of vala. I am absolutely and completely a noob, so all I will do is tell you how to install it and give you a few links that aren't so easy to find (randomness is on my side).
====Step one: Installing Devx.====
====Step 2 :Install vala.====
====Extra juice:====
=====What are Vala and Genie?=====
=====How do I get started with Vala/Genie=====
On the past few days i have been incursionating into the world of vala. I am absolutely and completely a noob, so all I will do is tell you how to install it and give you a few links that aren't so easy to find (randomness is on my side).
====Step one: Installing Devx.====
====Step 2 :Install vala.====
====Extra juice:====
Deletions:
Ok, here it goes again (seamonkey crashed :@. Now writing from the safety of my Geany). On the past few days i have been incursionating into the world of vala. I am absolutely and completely a noob, so all I will do is tell you how to install it and give you a few links that aren't so easy to find (randomness is on my side).
Step one: Installing Devx.
Step 2 :Install vala.
Extra juice:
C""++"" reference: (somewhat similar to vala, i think).
http://sistemas.itlp.edu.mx/tutoriales/tutorc/index.htm
What is this?
An introduction to using the Genie Programming language under Puppy Linux
What are the main features of Genie?
*
A true compiler
A "Hello world" console executable is 2.9KB, a GTK GUI "Hello world", with a OK button thrown in, is 5.8KB
*
Easy Python-like language
*
Easy GTK programming
*
Link directly with the system shared libraries
No huge binding libraries, nothing required at runtime. No bloat!
*
Library support
Compile-time bindings available for most shared libraries.
*
Plain-C intermediate code
Only needs Gnu C compiler -- so can be compiled for any operating system and CPU.
*
Object oriented
Objects are not "bolted on" as for some languages that started life as procedural-only. But Genie code can be non-object-oriented if you wish.
*
Programs written in Genie should have have similar performance and resource usage to those written directly in Vala and C
*
Genie has none of the bloat and overhead that comes with many other high level languages which utilize a VM (Eg Python, Mono, et al)
*
Classes in Genie are actually gobjects so Genie can be used for creating platform code like widgets and libraries where gobjects are required for binding to other languages.
*
The generic nature of Glib means that you can use Vala/Genie for any kind of programing, but Glib/Gobject does make it particularly easy for GTK coding.
What is the difference between Vala and Genie?
Vala is more like C/Java, Genie like Basic.
Who Created Genie?
Jamie McCracken created Genie,
Jürg Billeter and Raffaele Sandrini are the main developers of Vala.
When were Vala and Genie created?
Vala came first in mid-2006, with a C#-like syntax.
Genie followed in mid-2008 influenced in part by Python and Delphi.
These languages use the same compiler and support all the same features
How do I use Genie in Puppy?
Is Genie a good language to start programming with?
Being like Python it forces an easy to use spaced format
with a simple modern syntax. It is more consistent and flexible than BASIC and logo or other languages recommended for beginners.
Is it suitable for professionals?
Code is compiled to C, making it fast and efficient.
Linux uses C as its main language and the Gnome project is developing Vala
Basic Concepts
Files
Genie code must be written in files with the *.gs extensions.
When you want to compile Genie code, you give the compiler a list of the files required, and Genie/Vala compiler will work out how they fit together.
Syntax
Genie's syntax mixes features of several high level languages including Python, Boo, Delphi and D
Genie is case sensitive as a result of it being compiled into c code - so be careful when mixing case in your code.
An identifier is defined by its name and its type, e.g. i:int meaning an integer called i. In the case of value types this also creates an object of the given type. For reference types these just defines a new reference that doesn't initially point to anything.
Genie has a mechanism called Type Inference, whereby a local variable may be defined using var instead of giving a type, so long as it is unambiguous what type is meant.
Genie support is now in Gtksourceview:
Where can I find out about String handling in Genie?
http://puppylinux.com/blog/?viewDetailed=00609
Genie strings page:
http://puppylinux.com/blog/?viewDetailed=00608
Just to remind to install the gtksourcefile pet as well as the Valide one
Mark has kindly prepared
http://dotpups.de/puppy4/dotpups/Programming/Vala/
Especially Glib is important.
For example the string functions in Genie are the GLib functions:
http://valadoc.org/?pkg=glib-2.0&element=string
A bit difficult to find when you are new, but very essential!
Where is valide code saved?
cd /root/valide/Genie
./Genie
Or:
/root/valide/Genie/Genie
How do you compile code?
valac -C v5.gs
This just creates v5.c and v5.h.
Can the code be used in other Linux distributions?
Yes
Is Vala available for Windows?
Yes
http://dotpups.de/puppy4/dotpups/Programming/Vala/Vala-for-Windows/
Where can I find out about Valide
http://valaide.blogspot.com/2009/03/genie-support.html
Code examples
Hello world
[indent=2]
init
var a = "hello world"
print("%s" , a)
array
init
a:array of string = {"abc", "def", "xyz"}
for s in a
print(s)
random method
from GLib.
http://valadoc.org/?pkg=glib-2.0&element=GLib.Random
Example:
Code:
init
// return a random value from 1 to 9
a:int
a = GLib.Random.int_range(1,10)
print("%d" ,
Infinite Monkey theorem
// Infinite Monkey Theorem
// Lobster and Shadow, March 2009 LGPL
// use from command line
// imt ["search text"]
// generates random characters and searches for a given pattern eg 'in the beginning was the world'
// warning strings longer than "in the" may take minutes or hours to find
// program demonstrates:
// basic functions
// passing parameters in command line
// random character generation
// constant
[indent=3]
def getRandomNumber(RangeFrom:int, RangeTo:int) : int /* function to create random number between range */
return GLib.Random.int_range(RangeFrom,RangeTo)
def getRandomChar() : char /* function to generate ascii codes from a-z and space (32) */
num:int = getRandomNumber(0,27)
if num == 0
num = 32
else
num = num + 96
return (char) num
def addRandomChar(myText:string) : string /* function add text from command line */
var retText = new StringBuilder
retText.append(myText)
retText.append_c(getRandomChar())
return retText.str
init
USAGE:string = "Usage:\n\t ./imt \"some text for monkeys to generate\" "
theText:string = args[1]
if theText == null
theText = ""
theText = theText.down() /* change any text input to lower case */
myText:string = ""
if theText != ""
do
do
myText = addRandomChar(myText)
while theText.len() != myText.len()
print("%s" , myText)
if theText != myText
stdout.printf("\n")
myText = ""
while theText != myText
stdout.printf("\n")
else
print("%s" , USAGE) /* this appears if program run without text */ a)
Links
http://live.gnome.org/Genie official genie site
http://puppylinux.com/genie/ Barry's site
http://valadoc.org/?
http://www.vala-project.org/doc/vala/
http://live.gnome.org/Vala
http://library.gnome.org/devel/glib/
Additions:
GNOME itself is written in C, but many of the higher-level libraries that make up the GNOME platform (such as GTK+ and Pango) make heavy use of the GLib and GObject frameworks, which implement a complete object system including types, messaging, classes, and all of the other components that make up a typical object oriented application program interface (API). GObject makes it possible to write object oriented GNOME applications in C, and also makes it simple to provide wrappers to GNOME for object oriented languages like C""++"" or Python.
Deletions:
Additions:
Vala and Genie are new programming languages, really new. Vala came first, in mid-2006, with a C#-like syntax, followed by Genie in mid-2008 with a Python-Boo-like syntax. These languages use the same compiler and support all the same features, so take your pick.
http://puppylinux.com/genie/
Forum thread:
http://www.murga-linux.com/puppy/viewtopic.php?t=39560
Vala
GNOME itself is written in C, but many of the higher-level libraries that make up the GNOME platform (such as GTK+ and Pango) make heavy use of the GLib and GObject frameworks, which implement a complete object system including types, messaging, classes, and all of the other components that make up a typical object oriented application program interface (API). GObject makes it possible to write object oriented GNOME applications in C, and also makes it simple to provide wrappers to GNOME for object oriented languages like C++ or Python.
While GObject makes object-oriented programming in C possible, it remains somewhat cumbersome. The GObject wrappers for other languages can be even worse, introducing yet another layer of dependencies which can include virtual machines of their own. Vala was created in an attempt to address these problems and make GNOME programming easier. Vala provides a C#-like syntax that integrates GObject features, but the valac compiler compiles to C output rather than assembly. The resulting C compiles normally with gcc, plus it can be distributed as source packages fully usable on platforms that do not have Vala installed. That allows the developer to use Vala's modern language features — dynamic type system, assisted memory management, and so on — while still making source releases compatible with C applications and libraries.
In addition to GLib and GObject, the Vala project produces bindings to the major GNOME libraries: GTK+, GDK, Cairo, SDL, GStreamer, D-Bus, GIO, and many more. In addition, several external projects provide their own bindings for Vala (such as Clutter), and there are third-party efforts to create bindings for other libraries, such as OpenGL. Plugins for Vala support are available for the Eclipse, Anjuta, and MonoDevelop IDEs, as well as for the editors Emacs, Vim, and GEdit. Val(a)IDE, still in development, is a dedicated Vala IDE written in Vala itself.
The latest release of Vala is 0.7.3, which went public on May 26, 2009. It is a bugfix release for the 0.7 series, which is intended to be the last development series before 1.0. The biggest change in the 0.7 series, according to developer Jürg Billeter, is to C header file generation. In previous releases, Vala would generate a .h header file for every .vala source file, which caused problems:
This caused various issues when the dependencies between the .vala source files get complex or more specifically, circular, and it did not allow us to have internal methods that can be used in multiple .vala files but remain outside the public API. Therefore we decided to move to a single public C header file with 0.7 and stop using separate header files for internal methods.
That change demanded making changes to the build system for existing Vala applications, but Billeter said it should be the last such headache for a while.
Vala 1.0 is scheduled to be released in September of 2009, coinciding with the release of GNOME 2.28. According to Billeter, the project is on track to make the 1.0 deadline, which will mark the start of a long stable release cycle during which application developers can count on language stability. The bindings to GNOME libraries are maintained separately, Billeter said, and are added to and enhanced on an as-needed basis, so they are not subject to the same schedule.
The project offers a tutorial and sample code for those new to Vala; some familiarity with GObject is expected. Benchmarks between Vala and C show no significant execution speed losses (in some cases, Vala even beats plain C).
The project maintains a list of applications developed using Vala, in whole or in part, including GNOME panel applets and full-fledged applications. The webcam utility Cheese is currently maintaining a Vala branch in addition to its main trunk, just to road test the viability of the language. Billeter noted that although people generally think of using Vala only when starting a new project, it is possible to incorporate it into an existing C code base, too. "Among our users are both, people writing C that now want to move to something higher level and also people that just start programming in the GNOME environment," he said.
http://lwn.net/Articles/334969/
http://puppylinux.com/genie/
Forum thread:
http://www.murga-linux.com/puppy/viewtopic.php?t=39560
Vala
GNOME itself is written in C, but many of the higher-level libraries that make up the GNOME platform (such as GTK+ and Pango) make heavy use of the GLib and GObject frameworks, which implement a complete object system including types, messaging, classes, and all of the other components that make up a typical object oriented application program interface (API). GObject makes it possible to write object oriented GNOME applications in C, and also makes it simple to provide wrappers to GNOME for object oriented languages like C++ or Python.
While GObject makes object-oriented programming in C possible, it remains somewhat cumbersome. The GObject wrappers for other languages can be even worse, introducing yet another layer of dependencies which can include virtual machines of their own. Vala was created in an attempt to address these problems and make GNOME programming easier. Vala provides a C#-like syntax that integrates GObject features, but the valac compiler compiles to C output rather than assembly. The resulting C compiles normally with gcc, plus it can be distributed as source packages fully usable on platforms that do not have Vala installed. That allows the developer to use Vala's modern language features — dynamic type system, assisted memory management, and so on — while still making source releases compatible with C applications and libraries.
In addition to GLib and GObject, the Vala project produces bindings to the major GNOME libraries: GTK+, GDK, Cairo, SDL, GStreamer, D-Bus, GIO, and many more. In addition, several external projects provide their own bindings for Vala (such as Clutter), and there are third-party efforts to create bindings for other libraries, such as OpenGL. Plugins for Vala support are available for the Eclipse, Anjuta, and MonoDevelop IDEs, as well as for the editors Emacs, Vim, and GEdit. Val(a)IDE, still in development, is a dedicated Vala IDE written in Vala itself.
The latest release of Vala is 0.7.3, which went public on May 26, 2009. It is a bugfix release for the 0.7 series, which is intended to be the last development series before 1.0. The biggest change in the 0.7 series, according to developer Jürg Billeter, is to C header file generation. In previous releases, Vala would generate a .h header file for every .vala source file, which caused problems:
This caused various issues when the dependencies between the .vala source files get complex or more specifically, circular, and it did not allow us to have internal methods that can be used in multiple .vala files but remain outside the public API. Therefore we decided to move to a single public C header file with 0.7 and stop using separate header files for internal methods.
That change demanded making changes to the build system for existing Vala applications, but Billeter said it should be the last such headache for a while.
Vala 1.0 is scheduled to be released in September of 2009, coinciding with the release of GNOME 2.28. According to Billeter, the project is on track to make the 1.0 deadline, which will mark the start of a long stable release cycle during which application developers can count on language stability. The bindings to GNOME libraries are maintained separately, Billeter said, and are added to and enhanced on an as-needed basis, so they are not subject to the same schedule.
The project offers a tutorial and sample code for those new to Vala; some familiarity with GObject is expected. Benchmarks between Vala and C show no significant execution speed losses (in some cases, Vala even beats plain C).
The project maintains a list of applications developed using Vala, in whole or in part, including GNOME panel applets and full-fledged applications. The webcam utility Cheese is currently maintaining a Vala branch in addition to its main trunk, just to road test the viability of the language. Billeter noted that although people generally think of using Vala only when starting a new project, it is possible to incorporate it into an existing C code base, too. "Among our users are both, people writing C that now want to move to something higher level and also people that just start programming in the GNOME environment," he said.
http://lwn.net/Articles/334969/
Additions:
C""++"" reference: (somewhat similar to vala, i think).
What is this?
An introduction to using the Genie Programming language under Puppy Linux
What are the main features of Genie?
*
A true compiler
A "Hello world" console executable is 2.9KB, a GTK GUI "Hello world", with a OK button thrown in, is 5.8KB
*
Easy Python-like language
*
Easy GTK programming
*
Link directly with the system shared libraries
No huge binding libraries, nothing required at runtime. No bloat!
*
Library support
Compile-time bindings available for most shared libraries.
*
Plain-C intermediate code
Only needs Gnu C compiler -- so can be compiled for any operating system and CPU.
*
Object oriented
Objects are not "bolted on" as for some languages that started life as procedural-only. But Genie code can be non-object-oriented if you wish.
*
Programs written in Genie should have have similar performance and resource usage to those written directly in Vala and C
*
Genie has none of the bloat and overhead that comes with many other high level languages which utilize a VM (Eg Python, Mono, et al)
*
Classes in Genie are actually gobjects so Genie can be used for creating platform code like widgets and libraries where gobjects are required for binding to other languages.
*
The generic nature of Glib means that you can use Vala/Genie for any kind of programing, but Glib/Gobject does make it particularly easy for GTK coding.
What is the difference between Vala and Genie?
Vala is more like C/Java, Genie like Basic.
Who Created Genie?
Jamie McCracken created Genie,
Jürg Billeter and Raffaele Sandrini are the main developers of Vala.
When were Vala and Genie created?
Vala came first in mid-2006, with a C#-like syntax.
Genie followed in mid-2008 influenced in part by Python and Delphi.
These languages use the same compiler and support all the same features
How do I use Genie in Puppy?
Is Genie a good language to start programming with?
Being like Python it forces an easy to use spaced format
with a simple modern syntax. It is more consistent and flexible than BASIC and logo or other languages recommended for beginners.
Is it suitable for professionals?
Code is compiled to C, making it fast and efficient.
Linux uses C as its main language and the Gnome project is developing Vala
Basic Concepts
Files
Genie code must be written in files with the *.gs extensions.
When you want to compile Genie code, you give the compiler a list of the files required, and Genie/Vala compiler will work out how they fit together.
Syntax
Genie's syntax mixes features of several high level languages including Python, Boo, Delphi and D
Genie is case sensitive as a result of it being compiled into c code - so be careful when mixing case in your code.
An identifier is defined by its name and its type, e.g. i:int meaning an integer called i. In the case of value types this also creates an object of the given type. For reference types these just defines a new reference that doesn't initially point to anything.
Genie has a mechanism called Type Inference, whereby a local variable may be defined using var instead of giving a type, so long as it is unambiguous what type is meant.
Genie support is now in Gtksourceview:
Where can I find out about String handling in Genie?
http://puppylinux.com/blog/?viewDetailed=00609
Genie strings page:
http://puppylinux.com/blog/?viewDetailed=00608
Just to remind to install the gtksourcefile pet as well as the Valide one
Mark has kindly prepared
http://dotpups.de/puppy4/dotpups/Programming/Vala/
Especially Glib is important.
For example the string functions in Genie are the GLib functions:
http://valadoc.org/?pkg=glib-2.0&element=string
A bit difficult to find when you are new, but very essential!
Where is valide code saved?
cd /root/valide/Genie
./Genie
Or:
/root/valide/Genie/Genie
How do you compile code?
valac -C v5.gs
This just creates v5.c and v5.h.
Can the code be used in other Linux distributions?
Yes
Is Vala available for Windows?
Yes
http://dotpups.de/puppy4/dotpups/Programming/Vala/Vala-for-Windows/
Where can I find out about Valide
http://valaide.blogspot.com/2009/03/genie-support.html
Code examples
Hello world
[indent=2]
init
var a = "hello world"
print("%s" , a)
array
init
a:array of string = {"abc", "def", "xyz"}
for s in a
print(s)
random method
from GLib.
http://valadoc.org/?pkg=glib-2.0&element=GLib.Random
Example:
Code:
init
// return a random value from 1 to 9
a:int
a = GLib.Random.int_range(1,10)
print("%d" ,
Infinite Monkey theorem
// Infinite Monkey Theorem
// Lobster and Shadow, March 2009 LGPL
// use from command line
// imt ["search text"]
// generates random characters and searches for a given pattern eg 'in the beginning was the world'
// warning strings longer than "in the" may take minutes or hours to find
// program demonstrates:
// basic functions
// passing parameters in command line
// random character generation
// constant
[indent=3]
def getRandomNumber(RangeFrom:int, RangeTo:int) : int /* function to create random number between range */
return GLib.Random.int_range(RangeFrom,RangeTo)
def getRandomChar() : char /* function to generate ascii codes from a-z and space (32) */
num:int = getRandomNumber(0,27)
if num == 0
num = 32
else
num = num + 96
return (char) num
def addRandomChar(myText:string) : string /* function add text from command line */
var retText = new StringBuilder
retText.append(myText)
retText.append_c(getRandomChar())
return retText.str
init
USAGE:string = "Usage:\n\t ./imt \"some text for monkeys to generate\" "
theText:string = args[1]
if theText == null
theText = ""
theText = theText.down() /* change any text input to lower case */
myText:string = ""
if theText != ""
do
do
myText = addRandomChar(myText)
while theText.len() != myText.len()
print("%s" , myText)
if theText != myText
stdout.printf("\n")
myText = ""
while theText != myText
stdout.printf("\n")
else
print("%s" , USAGE) /* this appears if program run without text */ a)
Links
http://live.gnome.org/Genie official genie site
http://puppylinux.com/genie/ Barry's site
http://valadoc.org/?
http://www.vala-project.org/doc/vala/
http://live.gnome.org/Vala
http://library.gnome.org/devel/glib/
http://dotpups.de/puppy4/dotpups/Programming/Vala/ Download
What is this?
An introduction to using the Genie Programming language under Puppy Linux
What are the main features of Genie?
*
A true compiler
A "Hello world" console executable is 2.9KB, a GTK GUI "Hello world", with a OK button thrown in, is 5.8KB
*
Easy Python-like language
*
Easy GTK programming
*
Link directly with the system shared libraries
No huge binding libraries, nothing required at runtime. No bloat!
*
Library support
Compile-time bindings available for most shared libraries.
*
Plain-C intermediate code
Only needs Gnu C compiler -- so can be compiled for any operating system and CPU.
*
Object oriented
Objects are not "bolted on" as for some languages that started life as procedural-only. But Genie code can be non-object-oriented if you wish.
*
Programs written in Genie should have have similar performance and resource usage to those written directly in Vala and C
*
Genie has none of the bloat and overhead that comes with many other high level languages which utilize a VM (Eg Python, Mono, et al)
*
Classes in Genie are actually gobjects so Genie can be used for creating platform code like widgets and libraries where gobjects are required for binding to other languages.
*
The generic nature of Glib means that you can use Vala/Genie for any kind of programing, but Glib/Gobject does make it particularly easy for GTK coding.
What is the difference between Vala and Genie?
Vala is more like C/Java, Genie like Basic.
Who Created Genie?
Jamie McCracken created Genie,
Jürg Billeter and Raffaele Sandrini are the main developers of Vala.
When were Vala and Genie created?
Vala came first in mid-2006, with a C#-like syntax.
Genie followed in mid-2008 influenced in part by Python and Delphi.
These languages use the same compiler and support all the same features
How do I use Genie in Puppy?
Is Genie a good language to start programming with?
Being like Python it forces an easy to use spaced format
with a simple modern syntax. It is more consistent and flexible than BASIC and logo or other languages recommended for beginners.
Is it suitable for professionals?
Code is compiled to C, making it fast and efficient.
Linux uses C as its main language and the Gnome project is developing Vala
Basic Concepts
Files
Genie code must be written in files with the *.gs extensions.
When you want to compile Genie code, you give the compiler a list of the files required, and Genie/Vala compiler will work out how they fit together.
Syntax
Genie's syntax mixes features of several high level languages including Python, Boo, Delphi and D
Genie is case sensitive as a result of it being compiled into c code - so be careful when mixing case in your code.
An identifier is defined by its name and its type, e.g. i:int meaning an integer called i. In the case of value types this also creates an object of the given type. For reference types these just defines a new reference that doesn't initially point to anything.
Genie has a mechanism called Type Inference, whereby a local variable may be defined using var instead of giving a type, so long as it is unambiguous what type is meant.
Genie support is now in Gtksourceview:
Where can I find out about String handling in Genie?
http://puppylinux.com/blog/?viewDetailed=00609
Genie strings page:
http://puppylinux.com/blog/?viewDetailed=00608
Just to remind to install the gtksourcefile pet as well as the Valide one
Mark has kindly prepared
http://dotpups.de/puppy4/dotpups/Programming/Vala/
Especially Glib is important.
For example the string functions in Genie are the GLib functions:
http://valadoc.org/?pkg=glib-2.0&element=string
A bit difficult to find when you are new, but very essential!
Where is valide code saved?
cd /root/valide/Genie
./Genie
Or:
/root/valide/Genie/Genie
How do you compile code?
valac -C v5.gs
This just creates v5.c and v5.h.
Can the code be used in other Linux distributions?
Yes
Is Vala available for Windows?
Yes
http://dotpups.de/puppy4/dotpups/Programming/Vala/Vala-for-Windows/
Where can I find out about Valide
http://valaide.blogspot.com/2009/03/genie-support.html
Code examples
Hello world
[indent=2]
init
var a = "hello world"
print("%s" , a)
array
init
a:array of string = {"abc", "def", "xyz"}
for s in a
print(s)
random method
from GLib.
http://valadoc.org/?pkg=glib-2.0&element=GLib.Random
Example:
Code:
init
// return a random value from 1 to 9
a:int
a = GLib.Random.int_range(1,10)
print("%d" ,
Infinite Monkey theorem
// Infinite Monkey Theorem
// Lobster and Shadow, March 2009 LGPL
// use from command line
// imt ["search text"]
// generates random characters and searches for a given pattern eg 'in the beginning was the world'
// warning strings longer than "in the" may take minutes or hours to find
// program demonstrates:
// basic functions
// passing parameters in command line
// random character generation
// constant
[indent=3]
def getRandomNumber(RangeFrom:int, RangeTo:int) : int /* function to create random number between range */
return GLib.Random.int_range(RangeFrom,RangeTo)
def getRandomChar() : char /* function to generate ascii codes from a-z and space (32) */
num:int = getRandomNumber(0,27)
if num == 0
num = 32
else
num = num + 96
return (char) num
def addRandomChar(myText:string) : string /* function add text from command line */
var retText = new StringBuilder
retText.append(myText)
retText.append_c(getRandomChar())
return retText.str
init
USAGE:string = "Usage:\n\t ./imt \"some text for monkeys to generate\" "
theText:string = args[1]
if theText == null
theText = ""
theText = theText.down() /* change any text input to lower case */
myText:string = ""
if theText != ""
do
do
myText = addRandomChar(myText)
while theText.len() != myText.len()
print("%s" , myText)
if theText != myText
stdout.printf("\n")
myText = ""
while theText != myText
stdout.printf("\n")
else
print("%s" , USAGE) /* this appears if program run without text */ a)
Links
http://live.gnome.org/Genie official genie site
http://puppylinux.com/genie/ Barry's site
http://valadoc.org/?
http://www.vala-project.org/doc/vala/
http://live.gnome.org/Vala
http://library.gnome.org/devel/glib/
http://dotpups.de/puppy4/dotpups/Programming/Vala/ Download