SlideShare une entreprise Scribd logo
1  sur  21
Right Tool for the Job:
Як правильно
вибрати мову
програмування
Сергій Батюк
Вступ
5 років
Вступ
1,5 роки
CTO софтверної компанії
Задачі
• Система для торгівлі на біржі
• Сайт для "Планети кіно”
• CRM система для Київстару
• Новий Facebook
• Програма для автоматизації обрахунків у космічній обсерваторії
• Двигун для 3D гри
• Компілятор
• Музичний додаток для iPhone
• Текстовий редактор для Windows
Що таке мова
програмування?
Комп’ютерні науки
• Теорія обчислень
• Алгоритми та структури даних
• Методології та мови програмування
• Елементи та архітектура комп’ютерів
Мова програмування
• Штучна мова для передачі інструкцій машині, зокрема
комп’ютеру
• Синтаксис (форма), семантика (значення)
• Поділ за:
• Парадигмами
• Сферами застосування
• Історія
Парадигми програмування
• Фундаментальні стилі програмування
• 4 основних парадигми:
• Імперативна
• C, C++, Java, PHP, Python
• Декларативна
• SQL, RegExp, CSS
• Функціональна
• Erlang, Haskell, Lisp, Clojure, Scala
• Об’єктно-орієнтована
• C++, C#, Java, PHP, Python, Ruby
• Мультипарадигмові мови
Історія
• 1940-і: перші електричні комп’ютери
• ENIAC, Electric Numerical Integrator And Computer
• 1950-і та 1960-і: перші сучасні мови
• FORTRAN, FORmula TRANslator
• LISP, LISt Processor
• COBOL, COmmon Business Oriented Language
• ALGOL, ALGOrithmic Language
• 1968-1979: формування основних парадигм
• Simula, Smalltalk – початок ООП
• С – системне програмування
• Prolog – початок логічного програмування
• ML – перша статично-типізована ф-на мова (поліморфізм)
Історія (продовження)
• 1980-і: консолідація, модулі, продуктивність
• C++, Ada, Common Lisp, Eiffel, Objective-C, Erlang, Perl
• 1990-і: ера Інтернету
• Поширення функціональних мов, поява ОО Rapid App
Development мов, скриптові мови
• Haskell, Python, Visual Basic, HTML, Ruby, Lua, Java, Object
Pascal, JavaScript, PHP
• Сучасні тенденції
• Functional programming; concurrent and distributed
programming; mixins, delegates, aspects; component-oriented
software development; distribution and mobility; open source;
massively parallel languages
• ActionScript, C#, Groovy, Scala, Clojure, Go
Історія (діаграма)
Розвиток Java
• Грудень 1990: Patrick Naughton, Stealth Project,
альтернатива С/С++
• Green Project: James Gosling, Mike Sheridan
• Нова технологія для програмування розумних приладів
нового покоління
• Літо 1992: Oak
• PDA with Duke
• Телеіндустрія
• Літо 1994: WWW
• Бровзери – інтерактивний медіум
• Java
Популярні мови (TIOBE)
1. C
2. Java
3. Objective-C
4. C++
5. PHP
6. C#
7. Visual Basic
8. Python
9. Perl
10.JavaScript
11. Ruby
12. Visual Basic .Net
13. Transact-SQL
14. Lisp
15. Pascal
16. Bash
17. PL/SQL
18. Delphi/Object Pascal
19. Ada
20. MATLAB
Enterprise vs Consumer Web
1. Scale (Users vs Applications)
2. Experience (Simplicity vs Functionality)
3. Security (One for One vs One to Many)
4. Transaction (Decoupled vs Complete)
5. Integration (Loose vs Strict)
6. Search (Page vs Data)
Задачі 2
• Система для торгівлі на біржі
• Scala, Java, and C#
• Сайт для "Планети кіно”
• PHP, Ruby, Python, JavaScript, Java (Android), and Objective-C
• CRM система для Київстару
• Java, C#
• Новий Facebook
• PHP, Ruby, Python, JavaScript
Задачі 2
• Програма для автоматизації обрахунків у космічній обсерваторії
• Scala, C++, Erlang
• Двигун для 3D гри
• C/C++
• Компілятор
• C/C++
• Музичний додаток для iPhone
• Objective-C
• Текстовий редактор для Windows
• C#
5 мов
5 мов
Висновки
Запитання

Contenu connexe

Similaire à Right Tool for the Job: Як правильно вибрати мову програмування

Юрчук Андрій - Технологія Qt
Юрчук Андрій - Технологія QtЮрчук Андрій - Технологія Qt
Юрчук Андрій - Технологія QtIgor Bronovskyy
 
Поняття мови програмування. Складові мови програмування (інформатика 8 клас)
Поняття мови програмування. Складові мови програмування (інформатика 8 клас)Поняття мови програмування. Складові мови програмування (інформатика 8 клас)
Поняття мови програмування. Складові мови програмування (інформатика 8 клас)Igor igorvolinec
 
Ruby on Rails (Rails teens)
Ruby on Rails (Rails teens)Ruby on Rails (Rails teens)
Ruby on Rails (Rails teens)Denys Kurets
 
Корнілов Андрій
Корнілов АндрійКорнілов Андрій
Корнілов АндрійOleg Nazarevych
 
Ви обрали професію програміста...
Ви обрали професію програміста...Ви обрали професію програміста...
Ви обрали професію програміста...Alexander Babich
 
Мови програмування. Класифікація
Мови програмування. КласифікаціяМови програмування. Класифікація
Мови програмування. КласифікаціяAndy Levkovich
 
Prezent vchytelya
Prezent vchytelyaPrezent vchytelya
Prezent vchytelyachepesyuk
 
економічні аспекти моєї професії
економічні аспекти моєї професіїекономічні аспекти моєї професії
економічні аспекти моєї професіїWarriorUA
 
Ви обрали професію програміста
Ви обрали професію програмістаВи обрали професію програміста
Ви обрали професію програмістаAlexander Babich
 
Андрій Корнілов Asterisk
Андрій Корнілов AsteriskАндрій Корнілов Asterisk
Андрій Корнілов AsteriskLviv Startup Club
 
Руйнуємо .NET Міфи
Руйнуємо .NET МіфиРуйнуємо .NET Міфи
Руйнуємо .NET МіфиSerhiy Kalinets
 
"Rethinking Continuous Delivery", Andrii Nasinnyk
"Rethinking Continuous Delivery",  Andrii Nasinnyk"Rethinking Continuous Delivery",  Andrii Nasinnyk
"Rethinking Continuous Delivery", Andrii NasinnykFwdays
 
Мови програмування
Мови програмуванняМови програмування
Мови програмуванняAlyona Tribko
 
комп’ютерні програми і мови програмування
комп’ютерні програми і мови програмуваннякомп’ютерні програми і мови програмування
комп’ютерні програми і мови програмуванняЗахарова Олена
 
iPhone Objective-C Development (ukr) (2009)
iPhone Objective-C Development (ukr) (2009)iPhone Objective-C Development (ukr) (2009)
iPhone Objective-C Development (ukr) (2009)Anatoliy Okhotnikov
 
Android: Інструменти програміста
Android: Інструменти програмістаAndroid: Інструменти програміста
Android: Інструменти програмістаAnatoliy Odukha
 
IT People PechaKucha - Ульяна Ходоровская - Востребованность языков программи...
IT People PechaKucha - Ульяна Ходоровская - Востребованность языков программи...IT People PechaKucha - Ульяна Ходоровская - Востребованность языков программи...
IT People PechaKucha - Ульяна Ходоровская - Востребованность языков программи...PechaKucha Ukraine
 

Similaire à Right Tool for the Job: Як правильно вибрати мову програмування (20)

Юрчук Андрій - Технологія Qt
Юрчук Андрій - Технологія QtЮрчук Андрій - Технологія Qt
Юрчук Андрій - Технологія Qt
 
Поняття мови програмування. Складові мови програмування (інформатика 8 клас)
Поняття мови програмування. Складові мови програмування (інформатика 8 клас)Поняття мови програмування. Складові мови програмування (інформатика 8 клас)
Поняття мови програмування. Складові мови програмування (інформатика 8 клас)
 
Ruby on Rails (Rails teens)
Ruby on Rails (Rails teens)Ruby on Rails (Rails teens)
Ruby on Rails (Rails teens)
 
Корнілов Андрій
Корнілов АндрійКорнілов Андрій
Корнілов Андрій
 
Ви обрали професію програміста...
Ви обрали професію програміста...Ви обрали професію програміста...
Ви обрали професію програміста...
 
Мови програмування. Класифікація
Мови програмування. КласифікаціяМови програмування. Класифікація
Мови програмування. Класифікація
 
Prezent vchytelya
Prezent vchytelyaPrezent vchytelya
Prezent vchytelya
 
економічні аспекти моєї професії
економічні аспекти моєї професіїекономічні аспекти моєї професії
економічні аспекти моєї професії
 
2
22
2
 
Ви обрали професію програміста
Ви обрали професію програмістаВи обрали професію програміста
Ви обрали професію програміста
 
Андрій Корнілов Asterisk
Андрій Корнілов AsteriskАндрій Корнілов Asterisk
Андрій Корнілов Asterisk
 
Practices
PracticesPractices
Practices
 
Руйнуємо .NET Міфи
Руйнуємо .NET МіфиРуйнуємо .NET Міфи
Руйнуємо .NET Міфи
 
"Rethinking Continuous Delivery", Andrii Nasinnyk
"Rethinking Continuous Delivery",  Andrii Nasinnyk"Rethinking Continuous Delivery",  Andrii Nasinnyk
"Rethinking Continuous Delivery", Andrii Nasinnyk
 
Мови програмування
Мови програмуванняМови програмування
Мови програмування
 
Програмне забезпечення LINUX
Програмне забезпечення LINUXПрограмне забезпечення LINUX
Програмне забезпечення LINUX
 
комп’ютерні програми і мови програмування
комп’ютерні програми і мови програмуваннякомп’ютерні програми і мови програмування
комп’ютерні програми і мови програмування
 
iPhone Objective-C Development (ukr) (2009)
iPhone Objective-C Development (ukr) (2009)iPhone Objective-C Development (ukr) (2009)
iPhone Objective-C Development (ukr) (2009)
 
Android: Інструменти програміста
Android: Інструменти програмістаAndroid: Інструменти програміста
Android: Інструменти програміста
 
IT People PechaKucha - Ульяна Ходоровская - Востребованность языков программи...
IT People PechaKucha - Ульяна Ходоровская - Востребованность языков программи...IT People PechaKucha - Ульяна Ходоровская - Востребованность языков программи...
IT People PechaKucha - Ульяна Ходоровская - Востребованность языков программи...
 

Right Tool for the Job: Як правильно вибрати мову програмування

  • 1. Right Tool for the Job: Як правильно вибрати мову програмування Сергій Батюк
  • 5. Задачі • Система для торгівлі на біржі • Сайт для "Планети кіно” • CRM система для Київстару • Новий Facebook • Програма для автоматизації обрахунків у космічній обсерваторії • Двигун для 3D гри • Компілятор • Музичний додаток для iPhone • Текстовий редактор для Windows
  • 7. Комп’ютерні науки • Теорія обчислень • Алгоритми та структури даних • Методології та мови програмування • Елементи та архітектура комп’ютерів
  • 8. Мова програмування • Штучна мова для передачі інструкцій машині, зокрема комп’ютеру • Синтаксис (форма), семантика (значення) • Поділ за: • Парадигмами • Сферами застосування • Історія
  • 9. Парадигми програмування • Фундаментальні стилі програмування • 4 основних парадигми: • Імперативна • C, C++, Java, PHP, Python • Декларативна • SQL, RegExp, CSS • Функціональна • Erlang, Haskell, Lisp, Clojure, Scala • Об’єктно-орієнтована • C++, C#, Java, PHP, Python, Ruby • Мультипарадигмові мови
  • 10. Історія • 1940-і: перші електричні комп’ютери • ENIAC, Electric Numerical Integrator And Computer • 1950-і та 1960-і: перші сучасні мови • FORTRAN, FORmula TRANslator • LISP, LISt Processor • COBOL, COmmon Business Oriented Language • ALGOL, ALGOrithmic Language • 1968-1979: формування основних парадигм • Simula, Smalltalk – початок ООП • С – системне програмування • Prolog – початок логічного програмування • ML – перша статично-типізована ф-на мова (поліморфізм)
  • 11. Історія (продовження) • 1980-і: консолідація, модулі, продуктивність • C++, Ada, Common Lisp, Eiffel, Objective-C, Erlang, Perl • 1990-і: ера Інтернету • Поширення функціональних мов, поява ОО Rapid App Development мов, скриптові мови • Haskell, Python, Visual Basic, HTML, Ruby, Lua, Java, Object Pascal, JavaScript, PHP • Сучасні тенденції • Functional programming; concurrent and distributed programming; mixins, delegates, aspects; component-oriented software development; distribution and mobility; open source; massively parallel languages • ActionScript, C#, Groovy, Scala, Clojure, Go
  • 13. Розвиток Java • Грудень 1990: Patrick Naughton, Stealth Project, альтернатива С/С++ • Green Project: James Gosling, Mike Sheridan • Нова технологія для програмування розумних приладів нового покоління • Літо 1992: Oak • PDA with Duke • Телеіндустрія • Літо 1994: WWW • Бровзери – інтерактивний медіум • Java
  • 14. Популярні мови (TIOBE) 1. C 2. Java 3. Objective-C 4. C++ 5. PHP 6. C# 7. Visual Basic 8. Python 9. Perl 10.JavaScript 11. Ruby 12. Visual Basic .Net 13. Transact-SQL 14. Lisp 15. Pascal 16. Bash 17. PL/SQL 18. Delphi/Object Pascal 19. Ada 20. MATLAB
  • 15. Enterprise vs Consumer Web 1. Scale (Users vs Applications) 2. Experience (Simplicity vs Functionality) 3. Security (One for One vs One to Many) 4. Transaction (Decoupled vs Complete) 5. Integration (Loose vs Strict) 6. Search (Page vs Data)
  • 16. Задачі 2 • Система для торгівлі на біржі • Scala, Java, and C# • Сайт для "Планети кіно” • PHP, Ruby, Python, JavaScript, Java (Android), and Objective-C • CRM система для Київстару • Java, C# • Новий Facebook • PHP, Ruby, Python, JavaScript
  • 17. Задачі 2 • Програма для автоматизації обрахунків у космічній обсерваторії • Scala, C++, Erlang • Двигун для 3D гри • C/C++ • Компілятор • C/C++ • Музичний додаток для iPhone • Objective-C • Текстовий редактор для Windows • C#