32

Сергей Крыжановский - Языки программирования

  • Upload
    yandex

  • View
    2.021

  • Download
    5

Embed Size (px)

DESCRIPTION

В мире существует не один, и даже не два языка программирования, их очень и очень много. В лекции рассказано про то какими бывают языки программирования, почему их так много, и зачем вообще нужно и полезно смотреть в сторону каках-то новых языков, кроме своего любимого.

Citation preview

Page 1: Сергей Крыжановский - Языки программирования
Page 2: Сергей Крыжановский - Языки программирования

разработчик

Языкипрограммирования

Сергей Крыжановский

Page 3: Сергей Крыжановский - Языки программирования

Когда кто-то говорит: «Мне нужен язык программирования, в котором достаточно только сказать, что мне нужно сделать», — дайте ему леденец.

Алан Перлис

Введение

Page 4: Сергей Крыжановский - Языки программирования

2000было в мире языков программирования

теперь-то наверняка намного больше

4

Page 5: Сергей Крыжановский - Языки программирования

TIOBE Index на февраль 2013 года5

Page 6: Сергей Крыжановский - Языки программирования

Язык программирования имеет низкий уровень, если в программах приходится уделять внимание несущественному.

Алан Перлис

Уровень языка

Page 7: Сергей Крыжановский - Языки программирования

Низкоуровневое программирование в 1940-х7

Page 8: Сергей Крыжановский - Языки программирования

На всякий случай: это псевдокод на почти псевдоязыках8

Page 9: Сергей Крыжановский - Языки программирования

Компиляция

Интерпретация

Компилируемость

Page 10: Сергей Крыжановский - Языки программирования

Маленький «компьютер» справа — интерпретатор 10

Page 11: Сергей Крыжановский - Языки программирования

Just-in-time compilation в Java11

Page 12: Сергей Крыжановский - Языки программирования

В императивном программировании ты словно даёшь команды идиоту.

Интернет

Императивный

Page 13: Сергей Крыжановский - Языки программирования

Императивное общение человека с компьютером13

Page 14: Сергей Крыжановский - Языки программирования

Декларативный

Page 15: Сергей Крыжановский - Языки программирования

CSS декларативен

body { color: red;}

h1 { color: green;}

Вы все это знаете

15

Page 16: Сергей Крыжановский - Языки программирования

ООП

Page 17: Сергей Крыжановский - Языки программирования

Идеализация объектно-ориентированного подхода17

Page 18: Сергей Крыжановский - Языки программирования

Объект — экземпляр класса18

Page 19: Сергей Крыжановский - Языки программирования

Функциональное программирование похоже на объяснение проблемы математику.

Интернет

Функциональный

Page 20: Сергей Крыжановский - Языки программирования

Функция — объект первого класса20

Page 21: Сергей Крыжановский - Языки программирования

Статическая и динамическая

Сильная и слабая

Явная и неявная

Типизация

Page 22: Сергей Крыжановский - Языки программирования

Типы — они такие22

Page 23: Сергей Крыжановский - Языки программирования

Статическая и динамическая

Типизация

Page 24: Сергей Крыжановский - Языки программирования

Статическая до выполнения, динамическая во время выполнения24

Page 25: Сергей Крыжановский - Языки программирования

Сильная / строгаяСлабая / нестрогая

Типизация

Page 26: Сергей Крыжановский - Языки программирования

Смешались в кучу кони, люди26

Page 27: Сергей Крыжановский - Языки программирования

Явная и неявная

Типизация

Page 28: Сергей Крыжановский - Языки программирования

Если чего-то нет, что-то всё равно есть28

Page 29: Сергей Крыжановский - Языки программирования

42

Зачем всё это?

Page 30: Сергей Крыжановский - Языки программирования

Знание разных языков позволяет...

• Решать больше задач более оптимальным способом• Расширить кругозор и эрудицию• Быть более нужным на рынке труда• Заполнить паузы на первом свидании

30

Page 31: Сергей Крыжановский - Языки программирования

Что дальше?

• Начните с малого — изучите основы двух-трёх языков– Codecademy — http://www.codecademy.com

• Полюбуйтесь на решение одной задачи разными языками – Rosetta Code — http://rosettacode.org

• Влюбитесь в: – C — http://en.wikiversity.org/wiki/Topic:C– C++ — http://www.cplusplus.com/doc/tutorial/– JavaScript — http://eloquentjavascript.net/– Lisp — http://www.gigamonkeys.com/book/– Haskell — http://learnyouahaskell.com/– Ruby — http://www.ruby-lang.org/en/documentation/– Python — http://wiki.python.org/moin/BeginnersGuide

31

Page 32: Сергей Крыжановский - Языки программирования

разработчик

[email protected]

Спасибо

Сергей Крыжановский