SlideShare une entreprise Scribd logo
1  sur  31
Scalaand its Ecosystem Petr Hošek @petrh CZJUG, September 2010
What is language ecosystem?
Tools, libraries, frameworks, community, etc. Language is useless without its ecosystem.
Why Scala ecosystem?
With growing usage grows the need. Java ecosystem is not enough.
Scala Compiler Most important part of the Scala ecosystem.
Compiler overview Version 2.8 released in July. Contains many new features. Second generation of Scala compiler. Oficially named NSC (New Scala Compiler). Entirely developed in Scala itself. Self-hosted compiler.
Compiler usage Compiler can be used in several ways: ,[object Object]
Interactive interpreter.Usually called REPL(Read-Evaluate-Print Loop). ,[object Object],Instance of compiler class, either batch or interactive.
Demo Compiler usage
Compiler architecture Compiles Scala directly into Java bytecode. Compilation consists of several phases. Each phases transforms the syntax tree. Compiler is developed in entirely modular way. Designed to be completely re-entrant. Can be instantiated as any other class. Usage of advanced Scala language constructs.
Compiler plugins Provide way to easily extend compiler. Without modifying its source code. Can be inserted in all phases of compilation. Allows code transformations, analysis, etc. Used for some experimental language constructs. Continuations, etc.
Demo Compiler plugins
Scala tools and frameworks Basis of the Scala ecosystem.
simple-build-tool Simple but powerful build tool for Scala. Configuration is written in Scala. Provides interactive and batch mode. Dependency management support. Based on Apache Ivy dependency manager. Support for other Scala tools. Many customizations and extensions exists.
Demo simple-build-tool usage
Specs Behaviour-driven design framework for Scala. Simple and typed language for specifications. Benefits from Scala expressive syntax. Integration with testing tools and frameworks. JUnit, ScalaCheck, Mockito, etc.
Demo specs usage
Lift web framework Expressive and elegant web framework. Benefiting from Scala language features. Embraces View-First approach to MVC. View-Driven Development paradigm. Importance of scalability and security. Without loss of performance or maintainability. Native support for Ajax a Comet.
Demo Lift usage
Well-known Scala tools and libraries: ,[object Object],Package sharing tool. ,[object Object],Tool for automatic test case generation. ,[object Object],Concurrent, scalable applications development. ,[object Object],Library for handling configuration and logging. ,[object Object],Extensions to the standard Scala library.
Many more tools and librariesdo exists. New ones are coming up to Scala ecosystem every day..
Collaborative Scaladoc Newest addition to Scala ecosystem.
Project overview Developmentof Scala project documentation.  Using the concepts of social collaboration. Contribute without digging into source code. Try to embrace new approach of source-code documentation authoring.
Scaladoc Analogy of Javadoc for Scala. Second generation of Scaladoc is a part of Scala 2.8. Contains new sleek and modern interface. Provides improved comment syntax. Supports wiki-like syntax in the source comments.
Colladoc application Allows to edit Scala symbols documentation. Lift web application running the Scala compiler. Developed as a Google SoC 2010 project. Now being developed as open-source project. Based heavily upon Scaladoc 2 functionality. „Do not reinvent the wheel.“
Mergedoc application Allows to merge changes into the source-code. Simple command-line utility. More features planned for the future. Not yet officially released. Reimplementation of scaladoc-merge tool.
Demo Colladoc and Mergedoc usage
Project status The idea already prooved to be viable. Comments are being propagated to standard library. Project needs more popularisation. There are many ideas waiting to be implemented. Most them originated in the community.
We need you! Project is looking for collaborators.

Contenu connexe

Tendances

1 2 java development
1 2 java development1 2 java development
1 2 java development
Ken Kretsch
 

Tendances (18)

Programming iOS in Lua - A bridge story
Programming iOS in Lua - A bridge storyProgramming iOS in Lua - A bridge story
Programming iOS in Lua - A bridge story
 
Jf12 lambdas injava8-1
Jf12 lambdas injava8-1Jf12 lambdas injava8-1
Jf12 lambdas injava8-1
 
Lambda Behave - Java 8's Testing Framework
Lambda Behave - Java 8's Testing FrameworkLambda Behave - Java 8's Testing Framework
Lambda Behave - Java 8's Testing Framework
 
Java 8 concurrency abstractions
Java 8 concurrency abstractionsJava 8 concurrency abstractions
Java 8 concurrency abstractions
 
.NET Core, ASP.NET Core Course, Session 3
.NET Core, ASP.NET Core Course, Session 3.NET Core, ASP.NET Core Course, Session 3
.NET Core, ASP.NET Core Course, Session 3
 
History of java'
History of java'History of java'
History of java'
 
Building Scalable Applications with Laravel
Building Scalable Applications with LaravelBuilding Scalable Applications with Laravel
Building Scalable Applications with Laravel
 
Java. converted (2)
Java. converted (2)Java. converted (2)
Java. converted (2)
 
Laravel (8) php_framework_handbook__start_from_zer_18604872_(z-lib.org)
Laravel (8) php_framework_handbook__start_from_zer_18604872_(z-lib.org)Laravel (8) php_framework_handbook__start_from_zer_18604872_(z-lib.org)
Laravel (8) php_framework_handbook__start_from_zer_18604872_(z-lib.org)
 
Why scala - executive overview
Why scala - executive overviewWhy scala - executive overview
Why scala - executive overview
 
Introducing LINQ
Introducing LINQIntroducing LINQ
Introducing LINQ
 
Java se 8 new features
Java se 8 new featuresJava se 8 new features
Java se 8 new features
 
Spring presentation
Spring presentationSpring presentation
Spring presentation
 
Introduction to .Net
Introduction to .NetIntroduction to .Net
Introduction to .Net
 
VS Saturday 2019 - Xamarin.Forms 4.x
VS Saturday 2019 - Xamarin.Forms 4.xVS Saturday 2019 - Xamarin.Forms 4.x
VS Saturday 2019 - Xamarin.Forms 4.x
 
INTRODUCTION TO JAVA APPLICATION
INTRODUCTION TO JAVA APPLICATIONINTRODUCTION TO JAVA APPLICATION
INTRODUCTION TO JAVA APPLICATION
 
1 2 java development
1 2 java development1 2 java development
1 2 java development
 
Java programming course for beginners
Java programming course for beginnersJava programming course for beginners
Java programming course for beginners
 

En vedette

Sokotra
SokotraSokotra
Sokotra
asdf
 

En vedette (7)

Scala
ScalaScala
Scala
 
Home
HomeHome
Home
 
Rapid RIA Development Using .NET Technologies
Rapid RIA Development Using .NET TechnologiesRapid RIA Development Using .NET Technologies
Rapid RIA Development Using .NET Technologies
 
Sokotra
SokotraSokotra
Sokotra
 
My Skills
My SkillsMy Skills
My Skills
 
Lift web framework and Scala programming language talk
Lift web framework and Scala programming language talkLift web framework and Scala programming language talk
Lift web framework and Scala programming language talk
 
To Tweet Or Not To Tweet (or why Live Oak Pharmacy uses social media)
To Tweet Or Not To Tweet (or why Live Oak Pharmacy uses social media)To Tweet Or Not To Tweet (or why Live Oak Pharmacy uses social media)
To Tweet Or Not To Tweet (or why Live Oak Pharmacy uses social media)
 

Similaire à Scala and its Ecosystem

JaCIL_ a CLI to JVM Compiler
JaCIL_ a CLI to JVM CompilerJaCIL_ a CLI to JVM Compiler
JaCIL_ a CLI to JVM Compiler
Almann Goo
 

Similaire à Scala and its Ecosystem (20)

Sviluppare applicazioni nell'era dei "Big Data" con Scala e Spark - Mario Car...
Sviluppare applicazioni nell'era dei "Big Data" con Scala e Spark - Mario Car...Sviluppare applicazioni nell'era dei "Big Data" con Scala e Spark - Mario Car...
Sviluppare applicazioni nell'era dei "Big Data" con Scala e Spark - Mario Car...
 
Assist software awesome scala
Assist software   awesome scalaAssist software   awesome scala
Assist software awesome scala
 
Sviluppare applicazioni nell'era dei "Big Data" con Scala e Spark - Mario Car...
Sviluppare applicazioni nell'era dei "Big Data" con Scala e Spark - Mario Car...Sviluppare applicazioni nell'era dei "Big Data" con Scala e Spark - Mario Car...
Sviluppare applicazioni nell'era dei "Big Data" con Scala e Spark - Mario Car...
 
Introduction to Scala
Introduction to ScalaIntroduction to Scala
Introduction to Scala
 
.NET RDF APIs
.NET RDF APIs.NET RDF APIs
.NET RDF APIs
 
Ten Compelling Reasons to Go the Scala Development Way - Metadesign Solutions
Ten Compelling Reasons to Go the Scala Development Way - Metadesign SolutionsTen Compelling Reasons to Go the Scala Development Way - Metadesign Solutions
Ten Compelling Reasons to Go the Scala Development Way - Metadesign Solutions
 
Unit 1 notes.pdf
Unit 1 notes.pdfUnit 1 notes.pdf
Unit 1 notes.pdf
 
Scala Overview INFX 1616
Scala Overview INFX 1616Scala Overview INFX 1616
Scala Overview INFX 1616
 
Scala for n00bs by a n00b.
Scala for n00bs by a n00b.Scala for n00bs by a n00b.
Scala for n00bs by a n00b.
 
Eclipse Overview
Eclipse Overview Eclipse Overview
Eclipse Overview
 
What is scala
What is scalaWhat is scala
What is scala
 
Java Lecture 1
Java Lecture 1Java Lecture 1
Java Lecture 1
 
Scala: a Cross-Platform Language
Scala: a Cross-Platform LanguageScala: a Cross-Platform Language
Scala: a Cross-Platform Language
 
Selling Scala to your boss
Selling Scala to your bossSelling Scala to your boss
Selling Scala to your boss
 
A Tour Of Scala
A Tour Of ScalaA Tour Of Scala
A Tour Of Scala
 
The new java developers kit bag
The new java developers kit bagThe new java developers kit bag
The new java developers kit bag
 
Jasper report dependencies [by sc]
Jasper report dependencies [by sc]Jasper report dependencies [by sc]
Jasper report dependencies [by sc]
 
Gwt and JSR 269's Pluggable Annotation Processing API
Gwt and JSR 269's Pluggable Annotation Processing APIGwt and JSR 269's Pluggable Annotation Processing API
Gwt and JSR 269's Pluggable Annotation Processing API
 
Ajaxworld West 08
Ajaxworld West 08Ajaxworld West 08
Ajaxworld West 08
 
JaCIL_ a CLI to JVM Compiler
JaCIL_ a CLI to JVM CompilerJaCIL_ a CLI to JVM Compiler
JaCIL_ a CLI to JVM Compiler
 

Dernier

Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 
+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...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 

Dernier (20)

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
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
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
 
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
 
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...
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
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
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
+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...
 

Scala and its Ecosystem

  • 1. Scalaand its Ecosystem Petr Hošek @petrh CZJUG, September 2010
  • 2. What is language ecosystem?
  • 3. Tools, libraries, frameworks, community, etc. Language is useless without its ecosystem.
  • 5. With growing usage grows the need. Java ecosystem is not enough.
  • 6. Scala Compiler Most important part of the Scala ecosystem.
  • 7. Compiler overview Version 2.8 released in July. Contains many new features. Second generation of Scala compiler. Oficially named NSC (New Scala Compiler). Entirely developed in Scala itself. Self-hosted compiler.
  • 8.
  • 9.
  • 11. Compiler architecture Compiles Scala directly into Java bytecode. Compilation consists of several phases. Each phases transforms the syntax tree. Compiler is developed in entirely modular way. Designed to be completely re-entrant. Can be instantiated as any other class. Usage of advanced Scala language constructs.
  • 12. Compiler plugins Provide way to easily extend compiler. Without modifying its source code. Can be inserted in all phases of compilation. Allows code transformations, analysis, etc. Used for some experimental language constructs. Continuations, etc.
  • 14. Scala tools and frameworks Basis of the Scala ecosystem.
  • 15.
  • 16. simple-build-tool Simple but powerful build tool for Scala. Configuration is written in Scala. Provides interactive and batch mode. Dependency management support. Based on Apache Ivy dependency manager. Support for other Scala tools. Many customizations and extensions exists.
  • 18. Specs Behaviour-driven design framework for Scala. Simple and typed language for specifications. Benefits from Scala expressive syntax. Integration with testing tools and frameworks. JUnit, ScalaCheck, Mockito, etc.
  • 20. Lift web framework Expressive and elegant web framework. Benefiting from Scala language features. Embraces View-First approach to MVC. View-Driven Development paradigm. Importance of scalability and security. Without loss of performance or maintainability. Native support for Ajax a Comet.
  • 22.
  • 23. Many more tools and librariesdo exists. New ones are coming up to Scala ecosystem every day..
  • 24. Collaborative Scaladoc Newest addition to Scala ecosystem.
  • 25. Project overview Developmentof Scala project documentation. Using the concepts of social collaboration. Contribute without digging into source code. Try to embrace new approach of source-code documentation authoring.
  • 26. Scaladoc Analogy of Javadoc for Scala. Second generation of Scaladoc is a part of Scala 2.8. Contains new sleek and modern interface. Provides improved comment syntax. Supports wiki-like syntax in the source comments.
  • 27. Colladoc application Allows to edit Scala symbols documentation. Lift web application running the Scala compiler. Developed as a Google SoC 2010 project. Now being developed as open-source project. Based heavily upon Scaladoc 2 functionality. „Do not reinvent the wheel.“
  • 28. Mergedoc application Allows to merge changes into the source-code. Simple command-line utility. More features planned for the future. Not yet officially released. Reimplementation of scaladoc-merge tool.
  • 29. Demo Colladoc and Mergedoc usage
  • 30. Project status The idea already prooved to be viable. Comments are being propagated to standard library. Project needs more popularisation. There are many ideas waiting to be implemented. Most them originated in the community.
  • 31. We need you! Project is looking for collaborators.
  • 32. Learn more at http://petrhosek.name/

Notes de l'éditeur

  1. Modularity is quite limited. You can have plugins, but there are no extensions to the type checker, or modifications of the parser possible without hacking the actual compiler.
  2. Many new tools appeared in last few months.Most of them replaces Java equivalents.
  3. Originally known as Scala with Sails.