SlideShare ist ein Scribd-Unternehmen logo
1 von 31
Downloaden Sie, um offline zu lesen
Баум Виталий
                     .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 среда
Надеюсь было интересно ;)

Weitere ähnliche Inhalte

Andere mochten auch

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
 

Andere mochten auch (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
 

Ähnlich wie ОсÐ1⁄2Ð3⁄4Ð2Ð1⁄2Ñ‹Ðμ Ñ...араÐoÑ‚ÐμрР̧стР̧ÐoÐ ̧ языÐoа Boo

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
 
Обеспечение безопасности web приложений
Обеспечение безопасности web приложенийОбеспечение безопасности web приложений
Обеспечение безопасности web приложенийSQALab
 
Minsk Web Appl 190509
Minsk Web Appl 190509Minsk Web Appl 190509
Minsk Web Appl 190509sef2009
 
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
 

Ähnlich wie ОсÐ1⁄2Ð3⁄4Ð2Ð1⁄2Ñ‹Ðμ Ñ...араÐoÑ‚ÐμрР̧стР̧ÐoÐ ̧ языÐoа Boo (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
 
Обеспечение безопасности web приложений
Обеспечение безопасности web приложенийОбеспечение безопасности web приложений
Обеспечение безопасности web приложений
 
Minsk Web Appl 190509
Minsk Web Appl 190509Minsk Web Appl 190509
Minsk Web Appl 190509
 
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 мая
 
Engl Info
Engl InfoEngl Info
Engl Info
 
俄语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
 

Kürzlich hochgeladen

IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 

Kürzlich hochgeladen (20)

IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 

ОсÐ1⁄2Ð3⁄4Ð2Ð1⁄2Ñ‹Ðμ Ñ...араÐoÑ‚ÐμрР̧стР̧ÐoÐ ̧ языÐoа Boo

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