The document provides an overview of the Boo programming language, including its key characteristics, history, syntax examples, and capabilities. It notes that Boo is a dynamically typed, object-oriented language that aims to be simple, expressive and interactive. Examples demonstrate features like type inference, auto casting, regular expressions and more. Resources for learning more about Boo are also listed.
7. Родриго Баррето де Оливейра
(Rodrigo Barreto de Oliveira) в 2003
году.
В Python ему не хватало статической
типизации, проверки ошибок
времени компиляции и
инфраструктуры .NET.
C# же порой был слишком
многословный.
Желание расширять язык
собственными конструкциями, а
также интерактивный
11. Boo реализует Выведение типов
(Type Inference):
import System.Collections.Generic
// Infers i as type System.Int32
i = 21
i += 21
def Foo():
return Dictionary[of string,
List[of int]]()
h = Foo()
12. Приведение типов (Auto casting):
// Auto casts i to double
i as int = 42.1
d as double = 42
// Errors
//d = i as double
//d = System.Exception()
13. Отступ слева является
синтаксически значимым:
happyToday =
Convert.ToBoolean(Random().Ne
xt(2))
if happyToday:
print "Hello World!"
else:
for i in range(3):
print "Goodbye World!"
14. Booобъектно-ориентированный язык
class Dessert:
public name as string
public foo as string
override def ToString():
return name
d = Dessert(foo: "foo", name:
"Crunchy Frog!")
print d.name
16. Boo – это замечательно!
a = (1, 2, 3, 4)
b = (1, "two", 3.0, 4ms)
l = [42, "Silly", 1.618]
l.Add(true)
for i in range(l.Count):
print "${i}: ${l[i]}"
items = i for i in l if i isa int
min = 55m
hrs = 55h
17. Boo использует регулярные
выражения (оператор match из
perl =~):
"Here is foo” =~ /foo/
m = /abc/.Match("123abc456")
if m.Success:
print "Found match at
position:", m.Index
!~ пока не реализован, можно
использовать not
27. Домашняя страница проекта
Новости, FAQ, Guide, Cookbook и
многое другое
28. Google
группа, последние
тенденции, проекты, новости,
практики
29. http://boo.codehaus.org/BooManifesto.pdf -
манифест языка
http://ayende.com/Blog/archive/2008/03/30/A-web-server-i
- веб-сервер в 30 строках кода
http://www.manning.com/rahien/ - книга о
написании DSL на Boo
http://mysite.mweb.co.za/residents/sdonovan/boo-book.htm
- неплохой справочник
http://www.justnbusiness.com/ - статьи и примеры
кода
http://www.script-coding.info/Boo.html - обзор на
русском
http://www.developers.org.ua/archives/cleg/2007/08/03/sa
- обзор на русском
http://progopedia.ru/language/boo/ - обзор в
Прогопедии
30. Webness (
http://boo-lang.org/projects-using-boo/framewor
) фреймворк (куда же без него) для
быстрой разработки web-приложений
Brail (
http://www.ayende.com/projects/brail.aspx)
– шаблонный движок для генерации
HTML
Piorun (http://piorun.sztorm.net/) - Jabber
клиент
http://code.google.com/p/dotnetopenid/ -
OpenID библиотека
http://specter.sourceforge.net/ - BDD среда