Your SlideShare is downloading. ×
0
Scala: introduction
Scala: introduction
Scala: introduction
Scala: introduction
Scala: introduction
Scala: introduction
Scala: introduction
Scala: introduction
Scala: introduction
Scala: introduction
Scala: introduction
Scala: introduction
Scala: introduction
Scala: introduction
Scala: introduction
Scala: introduction
Scala: introduction
Scala: introduction
Scala: introduction
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Scala: introduction

561

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
561
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
4
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1.  
  • 2. <ul><li>Масштабируемый ( sca lable la nguage)
  • 3. Общего назначения
  • 4. Строго типизированный (вывод типа)
  • 5. Объектно-ориентированный
  • 6. Функциональный
  • 7. Скриптовый
  • 8. Компилируемый </li></ul>Знакомство
  • 9. <ul><li>Java
  • 10. C#
  • 11. Smalltalk
  • 12. Pizza
  • 13. BETA
  • 14. Haskell
  • 15. Erlang
  • 16. Objective Caml
  • 17. Scheme </li></ul>Истоки
  • 18. <ul><li>Java Virtual Machine (bytecode)
  • 19. .NET Framework (CLR)
  • 20. Полная интеграция с Java (seamless)
  • 21. Код на Scala в 2-3 раза меньше, чем на Java </li></ul>Какие преимущества?
  • 22. <ul><li>Синтаксис </li></ul>Чем платим? object MutiplicationTableApp extends App { println( ( for {row <- 1 to 10} yield ( for { col <- 1 to 10 cell = (col * row).toString } yield &quot; &quot; * (4 - cell.length) + cell ).mkString ).mkString(&quot;n&quot;) ) }
  • 23. <ul><li>Синтаксис
  • 24. Смена стиля программирования </li><ul><li>mutability VS immutability
  • 25. side effects VS pure functions </li></ul></ul>Чем платим?
  • 26. Как быстро?
  • 27. <ul><li>Notepad
  • 28. Vim
  • 29. Emacs
  • 30. NetBeans
  • 31. Eclipse
  • 32. IntelliJ Idea </li></ul>IDE
  • 33. <ul><li>REPL (Read-eval-print loop)
  • 34. Scalac (Scala Compiler)
  • 35. Fast Scala Compiler (FSC)
  • 36. Maven
  • 37. Simple Build Tool (SBT, v.0.7.7, v.0.10.0) </li></ul>Инструменты
  • 38. <ul><li>Вычисление типа
  • 39. Оптимизация (пример: tail-call recursion)
  • 40. Производительный bytecode
  • 41. Все – это объекты
  • 42. Функции как параметры </li></ul>«Как это работает?»
  • 43. <ul><li>Все является объектом (числа)
  • 44. Классы и типажи
  • 45. Множественное наследование – mixin
  • 46. Все – это объекты
  • 47. Функции – параметры </li></ul>Объектно-ориентированный
  • 48. <ul><li>Функция – значение
  • 49. Анонимные функции
  • 50. Вложенные функции
  • 51. Оптимизация рекурсии
  • 52. Каррирование
  • 53. Функции высшего порядка
  • 54. Case классы
  • 55. Сопоставление шаблону (pattern matching) </li></ul>Функциональный
  • 56. <ul><li>Шаблонные типы
  • 57. Верхние и нижние границы, вариации
  • 58. Внутренние классы
  • 59. Объекты-компаньоны, Одиночки (singleton)
  • 60. Составные типы
  • 61. Вычисление типа </li></ul>Система типов
  • 62. <ul><li>Аннотации
  • 63. Регулярные выражения
  • 64. «Запечатанные» классы (sealed)
  • 65. Встроенный XML
  • 66. Domain Specific Language
  • 67. Sequence Comprehensions </li></ul>Что еще?
  • 68. <ul><li>Lift Web Framework («functional» web)
  • 69. Scalaz, Scalax (scala core extensions)
  • 70. Specs2 (Behaviour-Driven-Design framework)
  • 71. Akka Actor Kernel (concurrency)
  • 72. ScalaCheck, ScalaTest, ScalaSpecs (testing)
  • 73. YourKit (profiling)
  • 74. Jiva (genetic algorithms library) </li></ul>Что есть еще?
  • 75. <ul><li>Twitter uses for performance critical code; replaces Ruby in that regard
  • 76. FourSquare uses Scala and Lift web framework
  • 77. Xerox uses Scala and Lift
  • 78. Etherpad uses Scala in its real time document collaboration software (acquired by Google for Google Docs; Scala code is now opensourced) </li></ul>Кто?
  • 79. <ul><li>scala-lang.org </li><ul><li>Дистрибутивы
  • 80. Документация
  • 81. Примеры </li></ul><li>Programming in Scala, Martin Odersky
  • 82. stackoverflow.com </li></ul>Что почитать?
  • 83. Примеры, вопросы, ответы
  • 84. Спасибо за внимание

×