Upload
yandex
View
2.021
Download
5
Embed Size (px)
DESCRIPTION
В мире существует не один, и даже не два языка программирования, их очень и очень много. В лекции рассказано про то какими бывают языки программирования, почему их так много, и зачем вообще нужно и полезно смотреть в сторону каках-то новых языков, кроме своего любимого.
Citation preview
разработчик
Языкипрограммирования
Сергей Крыжановский
Когда кто-то говорит: «Мне нужен язык программирования, в котором достаточно только сказать, что мне нужно сделать», — дайте ему леденец.
Алан Перлис
Введение
2000было в мире языков программирования
теперь-то наверняка намного больше
4
TIOBE Index на февраль 2013 года5
Язык программирования имеет низкий уровень, если в программах приходится уделять внимание несущественному.
Алан Перлис
Уровень языка
Низкоуровневое программирование в 1940-х7
На всякий случай: это псевдокод на почти псевдоязыках8
Компиляция
Интерпретация
Компилируемость
Маленький «компьютер» справа — интерпретатор 10
Just-in-time compilation в Java11
В императивном программировании ты словно даёшь команды идиоту.
Интернет
Императивный
Императивное общение человека с компьютером13
Декларативный
CSS декларативен
body { color: red;}
h1 { color: green;}
Вы все это знаете
15
ООП
Идеализация объектно-ориентированного подхода17
Объект — экземпляр класса18
Функциональное программирование похоже на объяснение проблемы математику.
Интернет
Функциональный
Функция — объект первого класса20
Статическая и динамическая
Сильная и слабая
Явная и неявная
Типизация
Типы — они такие22
Статическая и динамическая
Типизация
Статическая до выполнения, динамическая во время выполнения24
Сильная / строгаяСлабая / нестрогая
Типизация
Смешались в кучу кони, люди26
Явная и неявная
Типизация
Если чего-то нет, что-то всё равно есть28
42
Зачем всё это?
Знание разных языков позволяет...
• Решать больше задач более оптимальным способом• Расширить кругозор и эрудицию• Быть более нужным на рынке труда• Заполнить паузы на первом свидании
30
Что дальше?
• Начните с малого — изучите основы двух-трёх языков– 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
разработчик
Спасибо
Сергей Крыжановский