SlideShare une entreprise Scribd logo
1  sur  31
Télécharger pour lire hors ligne
Баум Виталий
                     .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 среда
Надеюсь было интересно ;)

Contenu connexe

En vedette

The Old New ASP.NET
The Old New ASP.NETThe Old New ASP.NET
The Old New ASP.NETVitaly Baum
 
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 Ejanmar
 
SharePoint и OpenXML
SharePoint и OpenXMLSharePoint и OpenXML
SharePoint и OpenXMLVitaly Baum
 
Client Index Training Presentation
Client Index Training PresentationClient Index Training Presentation
Client Index Training PresentationFred Kilby
 
Mobile Apps Factory
Mobile Apps FactoryMobile Apps Factory
Mobile Apps FactoryVitaly Baum
 
Custom LINQ Providers
Custom LINQ ProvidersCustom LINQ Providers
Custom LINQ ProvidersVitaly Baum
 
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 04Richard Posch
 
Masterclass 2006 2006
Masterclass 2006 2006Masterclass 2006 2006
Masterclass 2006 2006gueste279ae3
 
Netcentives Overview
Netcentives OverviewNetcentives Overview
Netcentives OverviewFred 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 2009John Clayton
 
Data Warehouse Presentation
Data Warehouse PresentationData Warehouse Presentation
Data Warehouse PresentationFred Kilby
 

En vedette (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
 

Similaire à Boo Programming Language

Modeling With Uml
Modeling With UmlModeling With Uml
Modeling With Umlsef2009
 
тупицын Ec2 Rootconf2009
тупицын Ec2 Rootconf2009тупицын Ec2 Rootconf2009
тупицын Ec2 Rootconf2009Liudmila Li
 
俄语GOST标准,技术规范,法律,法规,中文英语,目录编号RG 4103
俄语GOST标准,技术规范,法律,法规,中文英语,目录编号RG 4103俄语GOST标准,技术规范,法律,法规,中文英语,目录编号RG 4103
俄语GOST标准,技术规范,法律,法规,中文英语,目录编号RG 4103Azerbaijan Laws
 
Что такое 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_litsenzirovanieMichael Ganschuk
 
Visual Studio Team System 2010
Visual Studio Team System 2010Visual Studio Team System 2010
Visual Studio Team System 2010SQALab
 
Minsk Web Appl 190509
Minsk Web Appl 190509Minsk Web Appl 190509
Minsk Web Appl 190509sef2009
 
Обеспечение безопасности 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.5Michael Ganschuk
 
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 3701Azerbaijan 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 ServicesSQALab
 
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 2Dmitry 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
 

Similaire à 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)
 

Dernier

Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoffsammart93
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAndrey Devyatkin
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobeapidays
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherRemote DBA Services
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWERMadyBayot
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontologyjohnbeverley2021
 
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Angeliki Cooney
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century educationjfdjdjcjdnsjd
 
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​Bhuvaneswari Subramani
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024The Digital Insurer
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistandanishmna97
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdfSandro Moreira
 
Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Zilliz
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...apidays
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyKhushali Kathiriya
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProduct Anonymous
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MIND CTI
 

Dernier (20)

Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontology
 
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 
Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 

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 среда