- ООП языки программирования
- Понятие об объектно-ориентированном программировании
- Наиболее популярные объектно-ориентированные языки программирования
- Пример программы в стиле ООП (JavaScript)
- 8 самых востребованных языков программирования в 2023 году
- Как проводилось исследование
- JavaScript/TypeScript
- Python
- Java
- C Sharp
- PHP
- С/С++
- Ruby
- Go
- Итоги
ООП языки программирования
Понятие об объектно-ориентированном программировании
Объектно-ориентированным называется стиль (набор принципов, парадигма) программирования, предполагающий, что предметную область удобнее всего описывать как совокупность взаимодействующих объектов. Под объектом подразумевается программная сущность, обладающая внутренними свойствами (полями) и способная выполнять связанные с ее особенностями алгоритмы (методы).
Основными свойствами ООП являются:
- инкапсуляция — описание объектов как типов данных (классов) имеющих общие поля и методы;
- наследование — создание новых классов на основе уже имеющихся; класс-потомок обладает свойствами класса-родителя и дополняет их собственными возможностями;
- полиморфизм — возможность, зная общие черты иерархии классов, ссылаться на любой из нее как на наиболее общий класс-родитель.
Рисунок 1. Свойства ООП. Автор24 — интернет-биржа студенческих работ
Класс в ООП это «чертеж» объекта, определяющий какими полями и методами будет обладать каждый созданный в соответствии с этим описанием объект.
Объекты в концепции ООП — контейнеры для хранения и преобразования информации. Программа при этом представляет собой совокупность объектов, взаимодействующих друг с другом посредством обмена «сообщениями», т.е. вызывая методы друг друга с передачей необходимых параметров и получая возвращаемые значения, которые, в свою очередь тоже могут быть объектами.
Поля (внутренние свойства) объектов могут представлять собой как примитивы (числа, строки и т.п.), так и быть сложными объектами. Например, объект «Автомобиль» можно описать как совокупность объектов «Двигатель», «Трансмиссия», «Кузов», «Салон», «Колеса». Каждый из этих объектов сам по себе сложен. Например, в состав объекта «Двигатель» могут входить объекты «Блок цилиндров», «Поршни», «Коленвал» и т.п.
Рисунок 2. Иерархия классов пользовательского интерфейса в Java. Автор24 — интернет-биржа студенческих работ
Разлагая предметную область на всё более элементарные объекты, программист имеет возможность преобразовать ее в совокупность простых, легко контролируемых, объединенных по естественным признакам сущностей. Составляя из них все более сложные объекты, можно добиться уровня абстракции, позволяющего контролировать всю предметную область с достаточной для практики достоверностью.
Достоинством ООП является то, что оно позволяет распределить работу по описанию сложных объектов между большим количеством программистов. С другой стороны, ООП применяется, как правило, для решения масштабных задач в организациях, которые могут позволить себе выделять большие бюджеты на разработку ПО: в банках, крупных научно-исследовательских центрах, государственных организациях.
Наиболее популярные объектно-ориентированные языки программирования
Первыми успешными объектно-ориентированными языками считаются Симула-67 и Smalltalk-80. Расцвет популярности ООП пришелся на вторую половину 1980-х гг., когда появились такие языки, как С++, Objective C (эти два языка были разработаны на основе не являющегося объектно-ориентированным, но очень популярного Си), Eiffel. Некоторые существовавшие на тот момент языки были доработаны с целью предоставить своим приверженцам возможность работать в стиле ООП (Ada, Lisp, Pascal).
Большим шагом вперед в развитии ООП стал язык Java. Он сосредоточил в себе, помимо объектно-ориентированного подхода, наиболее эффективные технологии, появившиеся в начале 1990-х, такие, как:
- ссылочный синтаксис: объекты создаются таким образом, чтобы невозможно было напрямую (через адреса ячеек памяти, т.н. указатели) повлиять на состояние этих объектов;
- автоматическая сборка мусора: программист избавлен от необходимости вручную очищать память от переменных, которые больше не понадобятся;
- кроссплатформенность — способность программ запускаться на различных платформах (слоган Java — «написано однажды — работает везде»);
- защита полей и методов от нежелательного влияния со стороны других классов: например, поле, помеченное как private , доступно для чтения и записи только изнутри класса, protected — только из иерархии, в состав которой входит класс, public — для любых объектов.
Дополнительным обстоятельством, сделавшим Java влиятельным и пригодным для коммерческого использования языком стало то, что его создание велось компанией Sun, обладавшей большими финансовыми и технологическими возможностями.
Всплеск популярности Java побудил другого крупного игрока на софтверном рынке — компанию Microsoft — создать аналогичные продукты. Сначала компания Билла Гейтса хотела выпустить «собственную версию» Java, однако, поскольку написанные на этом языке программы были рассчитаны на запуск лишь в среде Windows (терялась кроссплатформенность), со временем Microsoft решила разработать собственные фреймворк с похожими на Java свойствами. Так появилась платформа .NET и связанный с ней язык C# (Си-шарп). В настоящее время C# считается предпочтительным языком для разработки под Windows. При написании программ на нем применяется преимущественно объектно-ориентированный стиль разработки.
В настоящее время ООП нельзя назвать доминирующей парадигмой программирования. Из языков, бурно развивавшихся в годы наивысшего интереса к этой технологии, активно продолжают использоваться C++, Java, C#. Нынешние языки не делают основную ставку на ООП, но поддерживают эту возможность, поскольку среди программистов остается немало приверженцев этого подхода. Так, объектно-ориентированные программы можно писать на таких популярных в настоящее время языках, как Python, JavaScript, PHP и другие.
языки программирования. Автор24 — интернет-биржа студенческих работ»/>
Рисунок 3. Популярные объектно-ориентированные языки программирования. Автор24 — интернет-биржа студенческих работ
Пример программы в стиле ООП (JavaScript)
class Hello < constructor()< this.message = this.getMessage() >sayHello() < console.log(this.message) >getMessage() > class HelloRus extends Hello < // Класс, расширяющий предыдущий. getMessage()// Переопределяем метод в классе-наследнике. > let hello = new Hello hello.sayHello() hello = new HelloRus hello.sayHello()
8 самых востребованных языков программирования в 2023 году
В мире существует более 200 языков программирования, но только несколько десятков используются большинством разработчиков. Рассказываем, какие языки программирования были самыми востребованными в 2022 году и какие наметились тренды на рынке на 2023 год.
Как проводилось исследование
Рекрутинговый сервис DevJobsScanner выпустил исследование 12 млн вакансий для разработчиков по всему миру, которые появились на сайте в период с октября 2021 года до конца ноября 2022 года. По итогам эксперты компании проанализировали, каких специалистов работодатели искали чаще всего. При этом в сообщении DevJobsScanner отмечается, что это исследование показывает не столько результаты 2022 года, сколько тренд на 2023 год.
Всю информацию о вакансиях DevJobsScanner считывал только из заголовков. То есть вакансия с заголовком «Java-разработчик» считалась как вакансия для программиста на Java. Если в заголовке вакансии указано «бэкенд-разработчик» без точного названия стека, то в исследовании она не учитывалась.
Если в заголовке вакансии указывалась отдельная ключевая технология, то эксперты записывали ее в материнский стек — например, «React-разработчик» в исследовании записывался как JS-программист, а «Django-разработчик» — как Python-программист.
JavaScript/TypeScript
JavaScript — самый востребованный язык программирования не только в исследовании DevJobsScanner, но и среди множества других рейтингов. Появление TypeScript (усовершенствованного JS с безопасностью типов) тоже увеличило количество разработчиков, которые ежедневно в своей работе используют JavaScript.
С октября 2021 года по ноябрь 2022 года в DevJobsScanner опубликовано 801 тыс. вакансий, для которых явно требовался JavaScript или TypeScript в качестве основного языка программирования. Это около 31% от всего количества вакансий, где в заголовке указывался главный стек разработки.
Ключевые слова, по которым DevJobsScanner собирали вакансии: JavaScript, TypeScript, React, Angular, Vue, Node.
Продолжайте учиться: На Хекслете есть несколько больших профессий, интенсивов и треков для джуниоров, мидлов и даже сеньоров: они позволят не только узнать новые технологии, но и прокачать уже существующие навыки
Python
Python стал вторым наиболее востребованным языком программирования в 2022 году. Аналитики считают, что универсальность — от написания скриптов, до запуска серверов или анализа данных, стала ключом к достижению этой вехи. Кроме того, у Python одно из самых больших сообществ разработчиков в мире.
В период с октября 2021 года по ноябрь 2022 года в DevJobsScanner опубликовано 515 тыс. вакансий, для которых явно требуется Python в качестве языка основного программирования. Это 20% от всех опубликованных вакансий на DevJobsScanner с явным указанием языка программирования.
Java
В тройке лидеров — Java. Этот язык очень популярен с момента его создания в 1995 году, и остается в тройке лидеров даже несмотря на то, что его популярность с годами немного начинает снижаться. При этом на Java и Spring уже написано огромное количество кода, поэтому этот язык программирования продолжает активно использоваться крупнейшими корпорациями. Кроме того, в этом году даже наметился тренд на рост популярности Java.
Всего за 14 месяцев на DevJobsScanner опубликовано 443 тыс. вакансий, где ищут Java-разработчика. Это 17% от всех вакансий на сервисе.
C Sharp
C# — это мультипарадигменный объектно-ориентированный язык программирования общего назначения, созданный главным образом для устранения некоторых недостатков C++. Как язык общего назначения, C# имеет широкий спектр вариантов использования, но чаще всего он используется при работе с платформой .NET. Кроме того, C# также широко используется в игровой среде Unity для написания скриптов.
За 14 месяцев на DevJobsScanner было опубликовано 305 тыс. вакансий, в которых явно искали C#-разработчика. Это 12% от всех опубликованных вакансий на сайте.
PHP
Язык PHP, который 27 лет назад появился как простой «инструмент для создания персональной домашней страницы», с тех пор проделал невероятный путь. PHP является пятым наиболее востребованным языком программирования в 2022 году.
В период проведения исследования на DevJobsScanner опубликовано 226 тыс. вакансий для PHP-разработчика. Это около 10% от всех вакансий, а это значит, что одно из десяти рабочих мест требует хорошего знания PHP.
С/С++
Прошло 50 лет с момента появления языка программирования C и 37 лет выпуска C++, который долгое время назывался «C с классами». В течение этого длительного периода C/C++ поддерживал свою популярность благодаря регулярным дополнениям и улучшениям.
Современный C++ включает в себя как объектно-ориентированные, так и функциональные возможности. Это также облегчает все низкоуровневые процессы, для которых и нужен C/C++. При этом C/C+ используется практически во всех сферах, где можно писать код — начиная с видеоигр, заканчивая работой космических станций.
С октября 2021 по ноябрь 2022 года на DevJobsScanner опубликовано 213 тыс. вакансий, где ищут разработчиков на C/C++. Это 8% от всех опубликованных вакансий.
Ruby
На DevJobsScanner за 14 месяцев опубликовано 125 тыс. вакансий разработчиков на Ruby. Это 5% от всех вакансий, которые опубликованы на этом сайте. При этом огромное количество вакансий на Ruby опубликовано в крупных корпорациях, таких как Twitter, Crunchbase или Github.
Чаще всего разработчиков на Ruby ищут для работы с фреймворком Ruby on Rails.
Go
Go — молодой язык, созданный компанией Google всего 12 лет назад. Мы писали большой текст про Go и его перспективы тут. При этом в графике ниже видно, что популярность Go постепенно растет и, скорее всего, по итогам 2023 года он войдет в пятерку самых используемых языков программирования в мире.
С конца 2021 года по конец 2022 года на DevJobsScanner опубликовано 53 тыс. вакансий Go-разработчиков. Это 2% от всех вакансий программистов.
Итоги
JavaScript является абсолютным лидером на рынке труда для разработчиков, занимая практически треть от всех вакансий. То есть одна из трех вакансий сейчас, которые есть на рынке — это JS-программисты.
Python и Java занимают второе и третье место по популярности. При этом существует интересный тренд, что Java за последние годы начинает расти и, вероятно, в будущем сможет обогнать Python по количеству вакансий.