почему так много языков • Компании, биржи, и другие места работы • Перспективы • С чего начать новичку • Прерывайте меня в любое время • Содержит спорные и неподтвержденные высказывания • Транслирует мой, ограниченный монитором, взгляд на вещи
самовыражения • Это просто интересное хобби • Конструктор виртуальной реальности • Все еще нет профсоюзов ◦ пролетариат нового времени • Возможно, единственная отрасль в будущем
• Проблемы коммуникации людей даже одного пола. • Повсеместная прокрастинация и нежелание работать. • Потеря большого количества времени на изучение технологий, с которыми вряд ли будут работать даже в среднесрочной перспективе. • Культ успешности и достижений в виртуальном пространстве. Андрей Аксенов - Прекращаем писать код https://youtu.be/AiH4nOEnCIE
• Дизайнеры • Тестировщики • Аналитики • Администраторы • Эксплуатация • Мобильная разработка • Встраиваемая разработка • Отказоустойчивость и масштабируемость • Защита данных • Мониторинг • Обработка данных
• Веб приложения • Прикладная разработка • Игры • Аудио/видео - стриминговые сервисы • Автоматизация процессов • Хранилища данных • Виртуализация и распределенные вычисления • Операционные системы • Искусственный интеллект • Распознавание образов • Обработка больших массивов данных
• Большей частью англоязычные • Обычному программисту достаточно знать 5-10 языков • Многие языки похожи и являются родственными • Язык выражается через текст, самый обычный текст • Записать похожа на математические формулы Языки программирования (ЯП)
• Правила компании ◦ одобренные технологии • Платформа • Видение СТО/СЕО и других офицеров • Регион присутствия • Кодовая база • Исторические причины ◦ необоснованный выбор Евгения Рыжков об agile https://youtu.be/FMvRab1wMS8
Система типов • Платформа • Управление памятью • Стандартная библиотека • Мета программирование • Вендор • Синтаксис • Производительность • Понятность • И многие другие факторы
Высокая скорость разработки • Низкий порог входа • Простота использования • Доступны из коробки на *nix системах • Бекэнды для вебсайтов • Научные исследования • Инфраструктурные задачи ◦ Управление облаками • Автоматизированные системы тестирования • DSL языки
(немецкий вариант) • Kotlin (русский вариант) • Groovy (заброшенный вариант) • Clojure (функциональный) • Ceylon (от RedHat) • JRyby • Jython • Высокая производительность ◦ Быстрее всех нагружает процессор и потребляет всю память • Кросплатформенность которую мы заслужили ◦ Linux, Windows, OSX • Синоним энтерпрайза ◦ Выбор банков на санации
персонал • Наибольшее количество библиотек • Лаконичнее, чем java • Может использовать все библиотеки java • Долгое время компиляции “Waiting for the build” ( also known as “Scala programmer waits for project to build”) Juan Manuel Blanes, 1875 / 78
из Воронежа • Официальный язык разработки под Android • Поддержка системного программирования • Лаконичность форм • Менее опасный, чем java • Лучший редактор JetBrains IDE • Самый быстрорастущий язык по популярности в 2016 kotlin
(linux, bsd) • 45лет, недавно получил новую спецификацию • Все еще нет обычных структур данных • Ручное управление памятью • Встраиваемые системы • Надстройка над С • Выбор ИТ гигантов для написания всего • Прародитель java, на нем написан компилятор java • Имеет структуры данных
• Продвинутые средства разработки • Поощряет дублирование кода • Очень любят в Китае “Go programmer claims he doesn’t need generics” Painting, Oil on Canvas Arles: January, 1889
Lisp - язык со скобками • Erlang - асинхронность • Haskell - функциональный • Clojure - работа с данными • Elixir - Erlang + Ruby • Nim - Haskell + Python • Elm - Haskell + Javascript • TypeScript - Javascript, только лучше • Lua - язык связки объектов C • R - математика • SQL - язык запросов реляционных баз данных • Liscript - функциональный язык из Воронежа Андрей Иванов - Liscript https://youtu.be/H1J5xVFDns0
уровень сложности кода Без сборщика мусора (Rust) • Сложность компиляции • Высокий уровень входа Сборщик мусора (Java, Go, Python) • Компилятор сам решает когда чистить память • Нет возможности делать системы реального времени • Паузы в работе программы
• Доступ к памяти • Безопасность и надежность • Проблема 10k соединений на один веб сервер • Процессы, потоки, зеленые потоки • Не умеют: скриптовые ◦ python, php, ruby, perl • Умеют: ◦ c++, c, java • Умеют лучше: ◦ erlang, scala, clojure, haskell, go
Go, Scala • Среднии: PHP, Python, Javascript (nodejs) • Медленные: Ruby • Средней производительности чаще всего достаточно • Эффективное использование нивелирует скорость • Динамические языки и AST • Стоимость хостинга • Квалификация сотрудников
ошибки в стандартной библиотеке, компиляторе, интерпретаторе • Документация • Наличие обратной связи • Уровень открытости • Кто принимает решение о дальнейшей судьбе и развитии • Частота выхода обновлений • Развитие нового функционала • Обратная совместимость
- разные языки • Go - утилиты для обновления кода • С++ стандарты • Реализации интерпретаторов • Python 2 vs 3 • Ruby 1.8 vs 2 • Javascript ECMA 5 vs 6
• Естественный язык основных разработчиков • Наличие плана развития • Открытость стандартов • Возможность влиять на принятие решений ◦ хотя бы за деньги
технологий • Смещение в сторону динамических языков • Упор на мобильную разработку • Веб разработка • Максимальное использование платформ • PHP, Python, Ruby, Javascript • Swift, Java, Kotlin • Java, C#
больше • Больше узких специальностей • Снижение порога вхождения ◦ Нас заменят роботами ◦ Упрощения языков • Упрощение экосистем • Рефакторинг • Новые языки ◦ от создателей языков • Развитие инфраструктуры как кода • Мета-системы для мета-систем
OAuth2 GQL ◦ Социальные профили • Открытые стандарты ◦ Браузер как толстый клиент • Интернет вещей • DRM и прочий копирайт • Шифрование • Сегментация интернета ◦ China firewall ◦ Цинзура • Тотальная слежка • Переход Windows на Linux ядро ◦ запомните этот твит
в индии он государственный • Не поздно начать в 15 лет • Python/Go/Javascript не сложнее программы по-русскому языку за 5 класс Действия • Практикантские программы • Вакансий больше, чем вы можете себе представить • Вокруг все еще одни самоучки • Заметное число людей 30+, приходящих в ИТ
бог код на руби, даст и облако для деплоя. * Играет New Dawn Fades - Joy Devision Веб разработкой нужно заниматься пока молодой, потом поздно будет. Что значит не хочешь в опенсорс контрибьютить? В опенсорс контрибьютить все хотят, не придумывай! А ты почему гитхаб профиль не заводишь? Часики-то тикают.