SlideShare a Scribd company logo
Баум Виталий
                     .NET Developer
                     butaji.wordpress.com
                     yafos@yandex.ru




.NET CLI Languages
Основные характеристики языка
 Открытая   лицензия (схожа с
  MIT/BSD)
 Совместим с Microsoft.NET, так же
  с Mono
 Объектно-ориентированный     язык
 Статическая типизация
 Python’ообразный синтаксис
 Расширяемый язык
 http://boo.codehaus.org/Download
 «binary»:
  компилятор booc.exe
  интерпретатор booi.exe
  интерактивный интерпретатор
   booish.exe
 #Develop
 Visual Studio
 (Codeplex.com/BooLangStudio)
История развития
 Родриго   Баррето де Оливейра
  (Rodrigo Barreto de Oliveira) в 2003
  году.
 В Python ему не хватало статической
  типизации, проверки ошибок
  времени компиляции и
  инфраструктуры .NET.
 C# же порой был слишком
  многословный.
 Желание расширять язык
  собственными конструкциями, а
  также интерактивный
Начинаем работать с Boo
 Классический
             HelloWrold выглядит
 следующим образом:

 print "Hello World!"
 Booстроготипизированный язык,
 поэтому следующий код не
 скомпилится:

 i as int
 i = "Hello World!"
 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()
 Приведение  типов (Auto casting):
 // Auto casts i to double
 i as int = 42.1
 d as double = 42

 // Errors
 //d = i as double
 //d = System.Exception()
 Отступ   слева является
 синтаксически значимым:
 happyToday =
 Convert.ToBoolean(Random().Ne
 xt(2))
 if happyToday:
    print "Hello World!"
 else:
    for i in range(3):
         print "Goodbye World!"
 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
 Booреализует Common Type
 System, что обеспечивает
 совместимость с CLR
 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
 Boo использует регулярные
 выражения (оператор match из
 perl =~):
 "Here is foo” =~ /foo/
 m = /abc/.Match("123abc456")
 if m.Success:
    print "Found match at
 position:", m.Index

!~ пока не реализован, можно
 использовать not
 Boo   как функциональный язык
 Замыкания   в Boo:
 p = print
 // lambda expression
 a1 = { s | p(s) }
 // anonymous method
 a2 = def(s as string):
     a1(s)

 a1("Action 1!")
 a2("Action 2!")
 Boo – подручный язык
 url, local =
 "http://boo.codehaus.org",
 "boo.html"
 client = WebClient()
 call =
 client.DownloadFile.BeginInvoke
 (url, local)
 while not call.IsCompleted:
    Console.Write(".")
 Boo поддерживает утиную
 типизацию:
 t=
 Type.GetTypeFromProgID("Inter
 netExplorer.Application")
 ie as duck =
 Activator.CreateInstance(t)
 ie.Visible = true
 ie.Navigate2("http://boo.codeha
   us.org")
 ИнтерфейсIQuackFu позволяет
 динамически добавлять
 поведение в класс в реальном
 времени
 Boo– расширяемый язык:
 позволяет создавать макросы
 так же макросы на основе
 аттрибутов
 Booразработан для реализации
 внутренних DSL




 Specter.Framework для
 BDD(behavior-driven development)
 Booрасширяет условия
 компиляции:
 class invalidClass:
   pass



 Class name 'invalidClass' should
 start with an uppercase letter!
 (BCE0000)
Куда слазить? Что почитать? Когда начать?
 Домашняя  страница проекта
 Новости, FAQ, Guide, Cookbook и
  многое другое
 Google
       группа, последние
 тенденции, проекты, новости,
 практики
   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/ - обзор в
    Прогопедии
 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 среда
Надеюсь было интересно ;)

More Related Content

Viewers also liked

Medical Presentation
Medical PresentationMedical Presentation
Medical Presentation
Yannis Lemmens
 
The Old New ASP.NET
The Old New ASP.NETThe Old New ASP.NET
The Old New ASP.NET
Vitaly Baum
 
Marketplacenewclient
MarketplacenewclientMarketplacenewclient
Marketplacenewclient
Marketplace Homes
 
E F E C T O A N I M E
E F E C T O  A N I M EE F E C T O  A N I M E
E F E C T O A N I M E
janmar
 
Mankatehra
MankatehraMankatehra
SharePoint и OpenXML
SharePoint и OpenXMLSharePoint и OpenXML
SharePoint и OpenXML
Vitaly Baum
 
Client Index Training Presentation
Client Index Training PresentationClient Index Training Presentation
Client Index Training Presentation
Fred Kilby
 
Mobile Apps Factory
Mobile Apps FactoryMobile Apps Factory
Mobile Apps Factory
Vitaly Baum
 
Custom LINQ Providers
Custom LINQ ProvidersCustom LINQ Providers
Custom LINQ Providers
Vitaly Baum
 
Cutting edge research webinar slidespptx
Cutting edge research webinar slidespptxCutting edge research webinar slidespptx
Cutting edge research webinar slidespptx
Rem Association Services
 
The hazards of volatility diversification dp2011 04
The hazards of volatility diversification dp2011 04The hazards of volatility diversification dp2011 04
The hazards of volatility diversification dp2011 04
Richard Posch
 
Museum and apps
Museum and appsMuseum and apps
Museum and apps
Kenneth Fiil
 
Masterclass 2006 2006
Masterclass 2006 2006Masterclass 2006 2006
Masterclass 2006 2006
gueste279ae3
 
Netcentives Overview
Netcentives OverviewNetcentives Overview
Netcentives Overview
Fred Kilby
 
Windows PowerShell - Billings .NET User Group - August 2009
Windows PowerShell - Billings .NET User Group - August 2009Windows PowerShell - Billings .NET User Group - August 2009
Windows PowerShell - Billings .NET User Group - August 2009
John Clayton
 
Data Warehouse Presentation
Data Warehouse PresentationData Warehouse Presentation
Data Warehouse Presentation
Fred Kilby
 

Viewers also liked (17)

Medical Presentation
Medical PresentationMedical Presentation
Medical Presentation
 
The Old New ASP.NET
The Old New ASP.NETThe Old New ASP.NET
The Old New ASP.NET
 
Marketplacenewclient
MarketplacenewclientMarketplacenewclient
Marketplacenewclient
 
SOA and RFID
SOA and RFIDSOA and RFID
SOA and RFID
 
E F E C T O A N I M E
E F E C T O  A N I M EE F E C T O  A N I M E
E F E C T O A N I M E
 
Mankatehra
MankatehraMankatehra
Mankatehra
 
SharePoint и OpenXML
SharePoint и OpenXMLSharePoint и OpenXML
SharePoint и OpenXML
 
Client Index Training Presentation
Client Index Training PresentationClient Index Training Presentation
Client Index Training Presentation
 
Mobile Apps Factory
Mobile Apps FactoryMobile Apps Factory
Mobile Apps Factory
 
Custom LINQ Providers
Custom LINQ ProvidersCustom LINQ Providers
Custom LINQ Providers
 
Cutting edge research webinar slidespptx
Cutting edge research webinar slidespptxCutting edge research webinar slidespptx
Cutting edge research webinar slidespptx
 
The hazards of volatility diversification dp2011 04
The hazards of volatility diversification dp2011 04The hazards of volatility diversification dp2011 04
The hazards of volatility diversification dp2011 04
 
Museum and apps
Museum and appsMuseum and apps
Museum and apps
 
Masterclass 2006 2006
Masterclass 2006 2006Masterclass 2006 2006
Masterclass 2006 2006
 
Netcentives Overview
Netcentives OverviewNetcentives Overview
Netcentives Overview
 
Windows PowerShell - Billings .NET User Group - August 2009
Windows PowerShell - Billings .NET User Group - August 2009Windows PowerShell - Billings .NET User Group - August 2009
Windows PowerShell - Billings .NET User Group - August 2009
 
Data Warehouse Presentation
Data Warehouse PresentationData Warehouse Presentation
Data Warehouse Presentation
 

Similar to Boo Programming Language

Modeling With Uml
Modeling With UmlModeling With Uml
Modeling With Uml
sef2009
 
Hasql in practice (Russian)
Hasql in practice (Russian)Hasql in practice (Russian)
Hasql in practice (Russian)
Alexander Vershilov
 
тупицын Ec2 Rootconf2009
тупицын Ec2 Rootconf2009тупицын Ec2 Rootconf2009
тупицын Ec2 Rootconf2009
Liudmila Li
 
俄语GOST标准,技术规范,法律,法规,中文英语,目录编号RG 4103
俄语GOST标准,技术规范,法律,法规,中文英语,目录编号RG 4103俄语GOST标准,技术规范,法律,法规,中文英语,目录编号RG 4103
俄语GOST标准,技术规范,法律,法规,中文英语,目录编号RG 4103
Azerbaijan Laws
 
20071113 Msu Vasenin Seminar
20071113 Msu Vasenin Seminar20071113 Msu Vasenin Seminar
20071113 Msu Vasenin Seminar
Nikolay Samokhvalov
 
Что такое ASP.NET MVC?
Что такое ASP.NET MVC?Что такое ASP.NET MVC?
Что такое ASP.NET MVC?
Dima Pasko
 
Cisco collaboration. 8_oktiabria_biznes-trek_litsenzirovanie
Cisco collaboration. 8_oktiabria_biznes-trek_litsenzirovanieCisco collaboration. 8_oktiabria_biznes-trek_litsenzirovanie
Cisco collaboration. 8_oktiabria_biznes-trek_litsenzirovanie
Michael Ganschuk
 
за Ruby
за Rubyза Ruby
за Ruby
Stefan Kanev
 
Visual Studio Team System 2010
Visual Studio Team System 2010Visual Studio Team System 2010
Visual Studio Team System 2010
SQALab
 
Minsk Web Appl 190509
Minsk Web Appl 190509Minsk Web Appl 190509
Minsk Web Appl 190509
sef2009
 
Обеспечение безопасности web приложений
Обеспечение безопасности web приложенийОбеспечение безопасности web приложений
Обеспечение безопасности web приложений
SQALab
 
Obnovlenie cucm do_versii_12.5
Obnovlenie cucm do_versii_12.5Obnovlenie cucm do_versii_12.5
Obnovlenie cucm do_versii_12.5
Michael Ganschuk
 
CLT #11 Naruhiko Ogasawara
CLT #11 Naruhiko OgasawaraCLT #11 Naruhiko Ogasawara
CLT #11 Naruhiko Ogasawara
Naruhiko Ogasawara
 
vSphere Launch Business Keynote - Москва, 26 мая
vSphere Launch Business Keynote - Москва, 26 маяvSphere Launch Business Keynote - Москва, 26 мая
vSphere Launch Business Keynote - Москва, 26 мая
Anton Antich
 
俄语GOST标准,技术规范,法律,法规,中文英语,目录编号RG 3701
俄语GOST标准,技术规范,法律,法规,中文英语,目录编号RG 3701俄语GOST标准,技术规范,法律,法规,中文英语,目录编号RG 3701
俄语GOST标准,技术规范,法律,法规,中文英语,目录编号RG 3701
Azerbaijan Laws
 
Cisco Web Ex создание центра технической поддержки
Cisco   Web Ex   создание центра технической поддержкиCisco   Web Ex   создание центра технической поддержки
Cisco Web Ex создание центра технической поддержки
guest813d253
 
Delivery of media content of IIS Media Services
Delivery of media content of  IIS Media ServicesDelivery of media content of  IIS Media Services
Delivery of media content of IIS Media Services
SQALab
 
Bynet2.3 Microsoft. Mediacontent delivery using IIS7 and Silverlight3
Bynet2.3 Microsoft. Mediacontent delivery using IIS7 and Silverlight3Bynet2.3 Microsoft. Mediacontent delivery using IIS7 and Silverlight3
Bynet2.3 Microsoft. Mediacontent delivery using IIS7 and Silverlight3
Транслируем.бел
 
OO Design with C++: 2. Inheritance, part 2
OO Design with C++: 2. Inheritance, part 2OO Design with C++: 2. Inheritance, part 2
OO Design with C++: 2. Inheritance, part 2
Dmitry Stillermann
 
IBM Jazz - A New Approach For Software Development (In Russian)
IBM Jazz - A New Approach For Software Development (In Russian)IBM Jazz - A New Approach For Software Development (In Russian)
IBM Jazz - A New Approach For Software Development (In Russian)
Alexander Klimov
 

Similar to Boo Programming Language (20)

Modeling With Uml
Modeling With UmlModeling With Uml
Modeling With Uml
 
Hasql in practice (Russian)
Hasql in practice (Russian)Hasql in practice (Russian)
Hasql in practice (Russian)
 
тупицын Ec2 Rootconf2009
тупицын Ec2 Rootconf2009тупицын Ec2 Rootconf2009
тупицын Ec2 Rootconf2009
 
俄语GOST标准,技术规范,法律,法规,中文英语,目录编号RG 4103
俄语GOST标准,技术规范,法律,法规,中文英语,目录编号RG 4103俄语GOST标准,技术规范,法律,法规,中文英语,目录编号RG 4103
俄语GOST标准,技术规范,法律,法规,中文英语,目录编号RG 4103
 
20071113 Msu Vasenin Seminar
20071113 Msu Vasenin Seminar20071113 Msu Vasenin Seminar
20071113 Msu Vasenin Seminar
 
Что такое ASP.NET MVC?
Что такое ASP.NET MVC?Что такое ASP.NET MVC?
Что такое ASP.NET MVC?
 
Cisco collaboration. 8_oktiabria_biznes-trek_litsenzirovanie
Cisco collaboration. 8_oktiabria_biznes-trek_litsenzirovanieCisco collaboration. 8_oktiabria_biznes-trek_litsenzirovanie
Cisco collaboration. 8_oktiabria_biznes-trek_litsenzirovanie
 
за Ruby
за Rubyза Ruby
за Ruby
 
Visual Studio Team System 2010
Visual Studio Team System 2010Visual Studio Team System 2010
Visual Studio Team System 2010
 
Minsk Web Appl 190509
Minsk Web Appl 190509Minsk Web Appl 190509
Minsk Web Appl 190509
 
Обеспечение безопасности web приложений
Обеспечение безопасности web приложенийОбеспечение безопасности web приложений
Обеспечение безопасности web приложений
 
Obnovlenie cucm do_versii_12.5
Obnovlenie cucm do_versii_12.5Obnovlenie cucm do_versii_12.5
Obnovlenie cucm do_versii_12.5
 
CLT #11 Naruhiko Ogasawara
CLT #11 Naruhiko OgasawaraCLT #11 Naruhiko Ogasawara
CLT #11 Naruhiko Ogasawara
 
vSphere Launch Business Keynote - Москва, 26 мая
vSphere Launch Business Keynote - Москва, 26 маяvSphere Launch Business Keynote - Москва, 26 мая
vSphere Launch Business Keynote - Москва, 26 мая
 
俄语GOST标准,技术规范,法律,法规,中文英语,目录编号RG 3701
俄语GOST标准,技术规范,法律,法规,中文英语,目录编号RG 3701俄语GOST标准,技术规范,法律,法规,中文英语,目录编号RG 3701
俄语GOST标准,技术规范,法律,法规,中文英语,目录编号RG 3701
 
Cisco Web Ex создание центра технической поддержки
Cisco   Web Ex   создание центра технической поддержкиCisco   Web Ex   создание центра технической поддержки
Cisco Web Ex создание центра технической поддержки
 
Delivery of media content of IIS Media Services
Delivery of media content of  IIS Media ServicesDelivery of media content of  IIS Media Services
Delivery of media content of IIS Media Services
 
Bynet2.3 Microsoft. Mediacontent delivery using IIS7 and Silverlight3
Bynet2.3 Microsoft. Mediacontent delivery using IIS7 and Silverlight3Bynet2.3 Microsoft. Mediacontent delivery using IIS7 and Silverlight3
Bynet2.3 Microsoft. Mediacontent delivery using IIS7 and Silverlight3
 
OO Design with C++: 2. Inheritance, part 2
OO Design with C++: 2. Inheritance, part 2OO Design with C++: 2. Inheritance, part 2
OO Design with C++: 2. Inheritance, part 2
 
IBM Jazz - A New Approach For Software Development (In Russian)
IBM Jazz - A New Approach For Software Development (In Russian)IBM Jazz - A New Approach For Software Development (In Russian)
IBM Jazz - A New Approach For Software Development (In Russian)
 

Recently uploaded

RESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for studentsRESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for students
KAMESHS29
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
Safe Software
 
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
Neo4j
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
ControlCase
 
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Speck&Tech
 
National Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practicesNational Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practices
Quotidiano Piemontese
 
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
名前 です男
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Albert Hoitingh
 
How to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For FlutterHow to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For Flutter
Daiki Mogmet Ito
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
KatiaHIMEUR1
 
How to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptxHow to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptx
danishmna97
 
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
Neo4j
 
20240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 202420240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 2024
Matthew Sinclair
 
Introducing Milvus Lite: Easy-to-Install, Easy-to-Use vector database for you...
Introducing Milvus Lite: Easy-to-Install, Easy-to-Use vector database for you...Introducing Milvus Lite: Easy-to-Install, Easy-to-Use vector database for you...
Introducing Milvus Lite: Easy-to-Install, Easy-to-Use vector database for you...
Zilliz
 
UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5
DianaGray10
 
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to ProductionGenerative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Aggregage
 
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
SOFTTECHHUB
 
Presentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of GermanyPresentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of Germany
innovationoecd
 
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with SlackLet's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
shyamraj55
 
Building RAG with self-deployed Milvus vector database and Snowpark Container...
Building RAG with self-deployed Milvus vector database and Snowpark Container...Building RAG with self-deployed Milvus vector database and Snowpark Container...
Building RAG with self-deployed Milvus vector database and Snowpark Container...
Zilliz
 

Recently uploaded (20)

RESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for studentsRESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for students
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
 
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
 
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
 
National Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practicesNational Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practices
 
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
 
How to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For FlutterHow to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For Flutter
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
 
How to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptxHow to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptx
 
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
 
20240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 202420240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 2024
 
Introducing Milvus Lite: Easy-to-Install, Easy-to-Use vector database for you...
Introducing Milvus Lite: Easy-to-Install, Easy-to-Use vector database for you...Introducing Milvus Lite: Easy-to-Install, Easy-to-Use vector database for you...
Introducing Milvus Lite: Easy-to-Install, Easy-to-Use vector database for you...
 
UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5
 
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to ProductionGenerative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to Production
 
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
 
Presentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of GermanyPresentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of Germany
 
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with SlackLet's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
 
Building RAG with self-deployed Milvus vector database and Snowpark Container...
Building RAG with self-deployed Milvus vector database and Snowpark Container...Building RAG with self-deployed Milvus vector database and Snowpark Container...
Building RAG with self-deployed Milvus vector database and Snowpark Container...
 

Boo Programming Language

  • 1. Баум Виталий .NET Developer butaji.wordpress.com yafos@yandex.ru .NET CLI Languages
  • 3.  Открытая лицензия (схожа с MIT/BSD)  Совместим с Microsoft.NET, так же с Mono
  • 4.  Объектно-ориентированный язык  Статическая типизация  Python’ообразный синтаксис  Расширяемый язык
  • 5.  http://boo.codehaus.org/Download «binary»:  компилятор booc.exe  интерпретатор booi.exe  интерактивный интерпретатор booish.exe  #Develop  Visual Studio (Codeplex.com/BooLangStudio)
  • 7.  Родриго Баррето де Оливейра (Rodrigo Barreto de Oliveira) в 2003 году.  В Python ему не хватало статической типизации, проверки ошибок времени компиляции и инфраструктуры .NET.  C# же порой был слишком многословный.  Желание расширять язык собственными конструкциями, а также интерактивный
  • 9.  Классический HelloWrold выглядит следующим образом: print "Hello World!"
  • 10.  Booстроготипизированный язык, поэтому следующий код не скомпилится: i as int i = "Hello World!"
  • 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
  • 15.  Booреализует Common Type System, что обеспечивает совместимость с CLR
  • 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
  • 18.  Boo как функциональный язык
  • 19.  Замыкания в Boo: p = print // lambda expression a1 = { s | p(s) } // anonymous method a2 = def(s as string): a1(s) a1("Action 1!") a2("Action 2!")
  • 20.  Boo – подручный язык url, local = "http://boo.codehaus.org", "boo.html" client = WebClient() call = client.DownloadFile.BeginInvoke (url, local) while not call.IsCompleted: Console.Write(".")
  • 21.  Boo поддерживает утиную типизацию: t= Type.GetTypeFromProgID("Inter netExplorer.Application") ie as duck = Activator.CreateInstance(t) ie.Visible = true ie.Navigate2("http://boo.codeha us.org")
  • 22.  ИнтерфейсIQuackFu позволяет динамически добавлять поведение в класс в реальном времени
  • 23.  Boo– расширяемый язык: позволяет создавать макросы так же макросы на основе аттрибутов
  • 24.  Booразработан для реализации внутренних DSL Specter.Framework для BDD(behavior-driven development)
  • 25.  Booрасширяет условия компиляции: class invalidClass: pass Class name 'invalidClass' should start with an uppercase letter! (BCE0000)
  • 26. Куда слазить? Что почитать? Когда начать?
  • 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 среда