Re: Fruit basket program in Boo

  • From: "Octavian Rasnita" <orasnita@xxxxxxxxx>
  • To: <programmingblind@xxxxxxxxxxxxx>
  • Date: Sun, 21 Oct 2007 15:51:42 +0300

Yes, the fact that it can be used as a scripting language is an advantage.
But the fact that it doesn't use { and } to include blocks, and ; to end the statements, it is a big disadvantage.

Just like python, it is friendlier for sure for sighted users, but not for the blind.

Octavian

----- Original Message ----- From: "Jamal Mazrui" <empower@xxxxxxxxx>
To: <programmingblind@xxxxxxxxxxxxx>
Sent: Sunday, October 21, 2007 3:11 PM
Subject: Re: Fruit basket program in Boo


Boo does have the indentation issue of Python.  The language is
considerably more concise and friendly than C#, however.  This probably
does not show in the example I posted because I used an automatic
converter from C# that did a more or less literal translation rather than
taking advantage of Boo idioms.  I will try to write a more Booish version
when I get a chance (or anyone else can feel free to do so).

Besides more convenient syntax (except for the indentation requirement),
Boo has the advantage of an interpretive mode over C#.  Thus, one can
test expressions in an interactive environment.  When the code is
refined, one can still compile to a stand-alone executable like C#.

Jamal
On Sat,
20 Oct 2007, Octavian Rasnita wrote:

Date: Sat, 20 Oct 2007 09:39:08 +0300
From: Octavian Rasnita <orasnita@xxxxxxxxx>
Reply-To: programmingblind@xxxxxxxxxxxxx
To: programmingblind@xxxxxxxxxxxxx
Subject: Re: Fruit basket program in Boo

Well, I'd say that this language also borrows the disadvantages of python
and the disadvantages of C#.

It is harder to use by a blind because of its python style without
punctuation signs, it requires same much code as C#, and it is not portable.

If Windows need to be the target platform, I think C# is much better for
creating such a program.

Octavian

----- Original Message -----
From: "Jamal Mazrui" <empower@xxxxxxxxx>
To: <programmingblind@xxxxxxxxxxxxx>
Sent: Saturday, October 20, 2007 6:22 AM
Subject: Fruit basket program in Boo


> From the zip archive at
> http://www.EmpowermentZone.com/boo_fruit.zip
>
> This fruit basket program is written in Boo  -- Full source code in the
> zip archive and pasted below.  The batch file compile.bat invokes the
> command-line compiler for this scripting language.  The resulting
> executable, boo_fruit.exe, is about 12K in size.  No other files are
> needed to run the program -- as long as the .NET Framework 2.0 is
> installed.
>
> Boo borrows syntax from Python, seeks to improve it, and combine > strengths
> of both static and dynamic languages.  Its home page is at
> http://boo.codehaus.org
> Boo resources, including the interpreter, compiler, documentation, and
> examples are available from there.
>
> I am still learning Boo, but was able to produce a working program by
> converting the first C# fruit basket program I did via a web form
> available at
> http://codeconverter.sharpdevelop.net/Convert.aspx
> For comparison, the C# code is available in the file cs_fruit.cs.
>
> Jamal
>
> /*
> content of boo_fruit.boo
> Fruit Basket program in Boo
> Public domain by Jamal Mazrui
> */
>
> namespace MyNamespace
>
> import System.Windows.Forms
>
> // define class inherited from Form
> public class MyForm(System.Windows.Forms.Form):
>
> private lblFruit as Label
>
> private txtFruit as TextBox
>
> private lblBasket as Label
>
> private lbBasket as ListBox
>
> private btnAdd as Button
>
> private btnDelete as Button
>
>
> public def constructor():
> // define constructor
> // set window title
> self.Text = 'Fruit Basket'
> //this.Width = 328;
> self.Width = 400
> self.Height = 285
>
> // create two rows of controls with three controls in each
> row
> // label, textbox, button and label, listbox, button
> lblFruit = Label()
> lblFruit.Text = '&Fruit:'
> lblFruit.Left = 14
> lblFruit.Top = 14
> lblFruit.Width = 44
> lblFruit.Height = 16
>
> txtFruit = TextBox()
> txtFruit.Left = 64
> txtFruit.Top = 14
> txtFruit.Width = 200
> txtFruit.Height = 16
>
> btnAdd = Button()
> btnAdd.Text = '&Add'
> btnAdd.Left = 272
> btnAdd.Top = 14
> btnAdd.Width = 100
> btnAdd.Height = 20
> //  make it the default button
> self.AcceptButton = btnAdd
> btnAdd.Click += self.OnAddClick
>
> lblBasket = Label()
> lblBasket.Text = '&Basket:'
> lblBasket.Left = 14
> lblBasket.Top = 38
> lblBasket.Width = 44
> lblBasket.Height = 16
>
> lbBasket = ListBox()
> lbBasket.Left = 64
> lbBasket.Top = 38
> lbBasket.Width = 200
> lbBasket.Height = 200
>
> btnDelete = Button()
> btnDelete.Text = '&Delete'
> btnDelete.Left = 272
> btnDelete.Top = 38
> btnDelete.Width = 100
> btnDelete.Height = 20
> btnDelete.Click += self.OnDeleteClick
>
> // add controls to form
> self.Controls.Add(lblFruit)
> self.Controls.Add(txtFruit)
> self.Controls.Add(btnAdd)
> self.Controls.Add(lblBasket)
> self.Controls.Add(lbBasket)
> self.Controls.Add(btnDelete)
>
> // center form on screen
> self.StartPosition = FormStartPosition.CenterScreen
>
>
> // define event handlers for add and delete buttons
> protected def OnAddClick(sender as object, e as System.EventArgs):
> sFruit as string
> sFruit = txtFruit.Text
> if sFruit == '':
> MessageBox.Show('No fruit to add.', 'Alert')
> else:
> lbBasket.Items.Add(sFruit)
> txtFruit.Text = ''
> lbBasket.SelectedIndex = (lbBasket.Items.Count -
> 1)
> txtFruit.Focus()
>
>
> protected def OnDeleteClick(sender as object, e as
> System.EventArgs):
> iFruit as int
> iFruit = lbBasket.SelectedIndex
> if iFruit == (-1):
> MessageBox.Show('No fruit to delete.', 'Alert')
> else:
> lbBasket.Items.RemoveAt(iFruit)
> if iFruit > (lbBasket.Items.Count - 1):
> iFruit = (lbBasket.Items.Count - 1)
> lbBasket.SelectedIndex = iFruit
> lbBasket.Focus()
>
>
> // define main entry point of application
> public static def Main():
> Application.Run(MyForm())
>
> MyForm.Main()
>
> //End of program
>
> __________
> View the list's information and change your settings at
> //www.freelists.org/list/programmingblind
>

__________
View the list's information and change your settings at
//www.freelists.org/list/programmingblind

__________
View the list's information and change your settings at
//www.freelists.org/list/programmingblind


__________
View the list's information and change your settings at //www.freelists.org/list/programmingblind

Other related posts: