RE: Fruit basket program in Boo

  • From: Jamal Mazrui <empower@xxxxxxxxx>
  • To: programmingblind@xxxxxxxxxxxxx
  • Date: Mon, 22 Oct 2007 11:06:46 -0400 (EDT)

Good point -- I forgot about that mode.  It's probably not quite as
friendly because of static instead of duck typing when testing
expressions (Boo's interactive mode uses duck typing by default).
Still, there is an interactive mode in the VS IDE that is worth
exploring.

Jamal
On Sun, 21 Oct 2007, Ken Perry wrote:

> Date: Sun, 21 Oct 2007 07:55:48 -0700
> From: Ken Perry <whistler@xxxxxxxxxxxxx>
> Reply-To: programmingblind@xxxxxxxxxxxxx
> To: programmingblind@xxxxxxxxxxxxx
> Subject: RE: Fruit basket program in Boo
>
> Remember though you have the mode in visual studio that you can
> interactively test VB and C# so this is not exactly true.
>
> Ken
>
> -----Original Message-----
> From: programmingblind-bounce@xxxxxxxxxxxxx
> [mailto:programmingblind-bounce@xxxxxxxxxxxxx] On Behalf Of Jamal Mazrui
> Sent: Sunday, October 21, 2007 5:12 AM
> To: programmingblind@xxxxxxxxxxxxx
> 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
>
__________
View the list's information and change your settings at 
//www.freelists.org/list/programmingblind

Other related posts: