Please enable JavaScript.
Coggle requires JavaScript to display documents.
Языки Программирования yaziki-pirgamkirovaniya-logo-3 - Coggle Diagram
Языки Программирования
Историческая Эволюция
Ранние этапы
Машинные коды
Ассемблер
Рост абстракции от аппаратуры
Языки 2-3 поколения
Fortran, Lisp, COBOL
C, Pascal, ALGOL
Структурное программирование
Рождение ООП и структурного подхода
Кризис ПО -> новые методологии
ООП: Smalltalk, C++
Таблица поколений Языков Программирования
1-e поколение(Машинный код)
2-e поколение (Ассемблер)
3-е поколение(Fortran, COBOL, C, Pascal)
4-е поколение(SQL, Perl, Python)
5-е поколение(Prolog, Mercury)
Классификация Языков Программирования
По уровню абстракции
Низкий (Ассемблер)
Высокий (Python, Java)
Сверхвысокий (SQL)
По парадигме
Императивная vs Декларативная
Мультипарадигменность
Диаграмма популярности
По типизации и выполнению
Статическая (C++, Java) / Динамическая (Python, JS)
Компилируемые (C++) / Интерпретируемые (Python)
Основные Парадигмы
Императивное
Последовательность команд
Процедурное (C, Pascal)
Изменяемое состояние
Декларативное
Описание результата (SQL)
Объектно-ориентированное программирование
Четыре основных принципа
Инкапсуляция
Наследование
Полиморфизм
Абстракция
Функциональное программирование
Функции первого класса и высшего порядка
Чистые функции
Неизменяемость
Рекурсия
Современные тенденции и выбор языка
Популярные языки и сферы их применения
Python(Data Science, AI/ML, Веб-разработка (Django, Flask), Автоматизация)
JavaScript(Фронтенд- и бэкенд-веб-разработка (React, Node.js), Мобильные приложения)
Java(Крупные корпоративные системы, Android-разработка, Backend)
C#(Разработка под платформу .NET, игровые движки (Unity), Desktop)
C/C++ (Системное программирование, игровые движки, высокопроизводительные вычисления)
Go (Бэкенд-разработка, сетевое программирование, облачные сервисы)
Rust (Системное программирование, WebAssembly, безопасные критические системы )
Критерии выбора
Технические: Производительность, Масштабируемость, Безопасность
Нетехнические критерии: Стоимость, Кадры, Сообщество, Лицензирование
Будущее Языков Программирования
AI-Assisted Programming
Low-Code/No-Code платформы
Domain-Specific Languages (DSL)
Языки для квантовых вычислений
Повышение важности безопасности и параллелизма