ithr-school
Языки и фреймворки
Фреймворки
остов, каркас, структура
Фреймворк
- Библиотека на каком-то языке
- Описывает как именно нужно строить проект
- Содержит идею и большую часть необходимого
- (мем у фронтендеров)



Мобильная разработка

iOS
- Swift и objectiveC
- Много гайдлайнов, строгие правила
- Разработчиков не очень много
- Нужен макбук



Android
- Java и Kotlin
- Правила нестрогие
- Разработчиков больше
- Большая неконсистентность устройств



Межплатформы
- C# (Xamarin), JS (React Native)
- Любой фронтендер справится
- Много проблем если большое приложение



Флоу
- Бекенд и дизайн
- Вёрстка и логика
- Тестирование и проверка
- Подготовка релиза
- Релиз в магазин

Низкоуровневая разработка
C/C++
- Игры, драйверы, системы, вирусы
- Сложный язык, разработчики часто бородатые
- Много легаси и устаревших стандартов
- Языки медленно развиваются



Rust
- Основной конкурент C++
- Быстрый
- Молодой
- Развивается, и ещё не смог захватить рынок


Assembler
- Целая серия языков
- Ну вы видели
- Вирусы, совсем низкоуровневые системы, взлом чужих программ
- Знание даёт супер-силу


Флоу
- Разработка
- Тестирование и проверка
- Упаковка / Доставка

Web Backend

PHP
- Только бекенд
- Интерпретируемый
- Много легаси (WP)
- Половина интернета на нём
- Есть мощные фреймворки, которыми все пользуются


Laravel (PHP)
- Имеет удобные инструменты для всего
- Упрощает разработку
- Можно быстро сделать полноценное приложение

Symfony (PHP)
- Старичок
- Похож на Laravel

Yii (PHP)
- Yes, It Is!
- Большой конкурент для Laravel
- Быстро работает с базой данных
- Кастомизируем

CodeIgniter (PHP)
- Очень маленький фреймворк
- Есть удобная плагин-система
- Удобен для новичков, хорошая документация
- Быстр

C#
- Поддерживается Microsoft
- Используется в веб и в десктопной разработке
- Компилируемый, довольно быстрый

.NET Framework (C#)
- Не совсем фреймворк
- Есть .NET Core для веб-разработки
- Есть ASP.NET для веб-разработки
- Даёт быструю разработку со всеми преимуществами типизации


Java
- Королева заказной разработки
- Не JavaScript (JS) (вообще)
- Компилируемый
- Десктопная разработка, Веб-разработка, Мобильная разработка


Spring (Java)
- Старичок
- Самый популярный
- Небольшой, но расширяемый

JavaServer Faces (J)
- Не бекенд, а весь стек
- Понемногу вымирает


Python
- Прекрасный язык
- Интерпретируемый, относительно медленный
- Быстрая разработка
- Есть Python 2 и Python 3


Django (Python)
- Самый популярный
- Есть всё что нужно из коробки
- То что не нужно, можно поставить
- Большое комьюнити

Flask (Python)
- Маленький
- Из коробки самый минимум
- Сборки разные в разных компаниях
- Часто используется для микро-сервисов

aiohttp (Python)
- Работает асинхронно
- Немного быстрее чем Django и Flask

Ruby
- Красивый язык
- Интерпретируемый
- Был модным


Ruby on Rails (Ruby)
- Похож на Django (Python)
- Мощная кастомизация
- Можно очень быстро сделать прототип
- Из-за него Ruby стал модным

JavaScript, JS
- Интерпретируемый, плохой дизайн
- Только он может работать в браузере
- Его притащили и на бекенд


Node JS, Express.js
- Платформа и фреймворк
- Асинхронный
- Выбор фронтенд-разработчиков, которые не хотят учить новый язык

Go, GoLang
- Молодой
- Очень быстрый
- Асинхронный
- Очень "простой"

Web Frontend

HTML/CSS
- То, что будет отображено браузером
- HTML — блоки
- CSS — стили
- Весь фронтенд построен на динамичном изменении HTML/CSS и взаимодействии пользователя

JS
- Он один на фронтенде
- Много ругают
- Очень популярен
- Можно писать не только фронтенд, но и бекенд, и даже мобилки

TypeScript
- Почти JS, но типизированный
- Избавлен от многих проблем JS
- С помощью волшебства превращается в JS


JQuery
- Не фреймворк, но мощная библиотека
- Вымирает
- Был популярен до прихода React / Vue / Angular

React (JS)
- Самый популярный
- Компонентая разработка
- Его любят и ругают
- Развивается
- Есть React Native для мобильной разработки

Angular (JS)
- Появился до React
- Можно делать очень большое веб-приложение и не умереть
- Есть несколько версий, новые называются Angular, старая называется Angular.js

Vue.js (JS)
- Самый новенький
- Самый дружелюбный к новичкам
- Его любят, ругают за дело
- Год назад вакансий было 10, сегодня 25


Backbone, Svetle, Ember
умирают или не рождаются

Игры
Низкоуровневое
- C++/Rust/C
- Разработка движков для игр
- Работа с графикой, физикой и звуком

Высокоуровневое
- Разработка поверх существующих движков
- Скриптование сцен, выстраивание сюжета, логики игры
- C#, JS, Lua, Python, ...
- Игры в браузере

Unity (C#)
- Движок-фреймворк для игр на C#
- Большое комьюнити
- Подходит для прототипирования игр и небольших игр

Математика
Pandas, Numpy (Python)
- Библиотеки для работы с большими данными
- Быстрые
- Их любят все


Haskell
- МАТЕМАТИЧЕСКИЙ ЯЗЫК
- Строго функциональный: теория лямбда-исчислениия, теория типов, ...
- Обработка данных, где очень важно не падать


R
- Специальный язык для работы с данными и статистикой
- Популярен в научной среде
- Всё в коробке
- Иногда используется в продуктовой среде


Matlab
- Старичок
- Популярен в научной среде
- Умирает


Coq
- МАТЕМАТИЧЕСКИЙ ЯЗЫК
- Можно доказывать теоремы


Языки программирования p2
By b0g3r
Языки программирования p2
Смотрим что бывает
- 160