Балтийский Стрелковый центр — Главная
Новинка
Легендарный Калашников
ЭКСКЛЮЗИВ 5 500 ₽
Подробнее
Новинка
МОЙ ПЕРВЫЙ ВЫСТРЕЛ
Для детей от 10 лет 3 500 ₽
Подробнее
Новинка
ПИСТОЛЕТНЫЙ МИКС
75 выстрелов 4 750 ₽
Подробнее
Хит
СУПЕР ХИТ
70 выстрелов 6 000 ₽
Подробнее
Новинка
Программа ДЛЯ ДВОИХ
110 выстрелов 4 950 ₽
Подробнее
Хит
ПЕРСОНАЛЬНАЯ ТРЕНИРОВКА С ИНСТРУКТОРОМ
50 выстрелов 3 500 ₽
Подробнее
ХитДВА СТВОЛА
50 выстрелов 3 250 ₽
Подробнее
Новинка
Тренировка со своим травматическим оружием (ОООП)
АКЦИЯ 2 650 ₽
Подробнее
Оружие ограниченного поражения ТК 715Т
Главная
Библиотека
Безопасность
Безопасность
28. 11.22
537
Новинка от компании ЗАО «Техкрим» под названием ТК 715Т была представлена вниманию посетителей выставки ORELEXPO, прошедшей в Москве в октябре уходящего года. Модель представляет собой вариацию на тему одного из наиболее популярных и узнаваемых самозарядных пистолетов прошлого века – Colt 1911, выполненную в формате ОООП (огнестрельное оружие ограниченного поражения). Постараемся выяснить, что обещает потенциальному покупателю новинка, и о чем молчит производитель.
От Colt 1911 Government до ТК 715Т
Итак, новая модель «Кольта» от ЗАО «Техкрим» представляет собой реплику боевого пистолета, производимого китайским оружейным концерном Norinco под номенклатурным обозначением Norinco NP29. Прототип, послуживший российскому производителю основой для создания системы ТК 715Т, представляет собой третью модель линейки «Кольтов», производимых в КНР. Помимо собственно «родоначальника» – модели 1911 Government, модельный ряд содержит еще версии Commander и Officer.
Эти модели самозарядных пистолетов отличаются лишь длиной, в остальном их конструкции идентичны. Так, изначальная длина ствола, равная 128 мм в модели Government, сократилась до 108 мм у модификаций M15 General Officers Model и Commander.
Основой для новой модели травматического «Кольта» от «Техкрима» послужила именно офицерская версия, отличающаяся своей компактностью и малым весом. Сейчас известны лишь некоторые характеристики конструкции, озвученные производителем в ходе презентации пистолета на выставке:
- Полная длина модели составляет 188 мм при длине ствола, равной 98 мм. Пистолет получился достаточно компактным для ношения на поясном ремне под одеждой и в плечевой кобуре.
- «Сухой» вес пистолета без боекомплекта составляет 800 гр, что сравнимо с весом пистолета Макарова. Для травматического оружия это также является положительной характеристикой, поскольку большой вес делает постоянное ношение неудобным и не позволяет скрывать его под одеждой.
- В пистолете используется мощный боеприпас – патрон с резиновой пулей калибра 10х28Т.
Согласно заявлению производителя, пистолет представляет собой не только собственную разработку, но и состоит из оригинальных деталей, производимых на мощностях ЗАО «Техкрим», к которым относятся:
- Ствол собственной конструкции, не оснащаемый перегородками, с целью предотвратить переделку пистолета для стрельбы боевыми патронами, но имеющий сужение, делающее любой боевой «рестайлинг» невозможным.
- Оригинальная затворная рамка, изготавливаемая из алюминия методом высокоточного литья.
- Магазин емкостью 9 зарядов, расположенных вертикально в один ряд.
Чего ждать от новинки
Со всем основанием можно предположить, что модель окажется перспективной. Дело в том, что приверженцев Кольта в России достаточно много, и если не вдаваться в подробности, то речь идет действительно о полноценной не боевой реплике (по крайней мере, внешне) Кольта.
Мощный боеприпас калибра 10х28Т автоматически ставит ТК 715Т в один ряд с такими зарекомендовавшими себя моделями ОООП как Grand Power T12. Емкость магазина – на 1 патрон меньше допускаемого законом максимума, что в реальной ситуации эффективно обеспечит безопасность и позволит подавить любого агрессора.
Первичные тактико-технические характеристики пистолета вполне перспективные, но выводы делать еще рано. Согласно заявлению производителя, в розничную сеть модель поступит не раньше января, соответственно, понадобится еще какое-то время для того, чтобы сформировалось мнение о непосредственной работе системы.
Выглядит новый «травмат» брутально и впечатляюще, но, по сути, представляет собой переделку переделки. Поэтому вопросы о том, насколько «живучим» окажется покрытие затворной рамы Cerakote, насколько ровной будет геометрия деталей, насколько корректной будут подача боеприпаса и экстракция гильз – пока остаются открытыми.
Можно предположить, что если производство деталей будет осуществляться на должном технологическом уровне и с высоким контролем качества, что «Техкриму» вполне по силам, пистолет действительно сможет стать достойным приобретением.
Не смотря на то, что по заявлению сотрудников ЗАО «Техкрим», все детали являются оригиналами, произведенными компанией, в демонстрационном образце пистолета стоял УСМ филиппинского производства. Опять же, выводы о достоинствах и недостатках системы делать рано.
Корректно будет делать итоговые оценки относительно валовых образцов на основе практического опыта стрельбы. А вообще – появление новой модели ОООП говорит о развитии рынка в целом и направления как такового, поэтому остается лишь ждать поступления пистолета в серийное производство.
Другие материалы
Появление и развитие .366 ТКМ
Оружие
05.05.2023
117
История компании Franchi
Производители
05.05.2023
40
Самый популярный патрон – 7,62х39 мм
Оружие
05.05.2023
86
Оружие
04. 05.2023
54
Выбор спального мешка для охотника
Охота
04.05.2023
42
Продажа личного оружия
Закон
04.05.2023
160
Основные возможности OOPS (2023)
Содержание
show
- Введение
- Что такое OOPS?
- Основные возможности ООП
- 1. Наследование
- 2. Инкапсуляция
- 3. Абстракция
- 4. Полиморфизм
- 5. Переопределение метода
- 6. Перегрузка методов
- 7. Объекты
- 8. Классы
- 9. Конструкторы и деструкторы
- Заключение
- Часто задаваемые вопросы
- Q1: Каковы лучшие функции ООП и почему объяснить?
- Q2: Что такое объект в ООП?
- Q3: Каковы основные принципы ООП?
- Дополнительные ресурсы
Введение
Объектно-ориентированное программирование (ООП) — это базовая парадигма программирования, которую когда-либо использовал почти каждый разработчик. Объектно-ориентированное программирование (ООП) — наиболее распространенная парадигма программирования.
Сегодня мы рассмотрим основы и функции ООП, чтобы вы могли начать использовать их в своих проектах.
Что такое ООП?
Объектно-ориентированное программирование (ООП) — это модель программирования, в которой используются классы и объекты. Он используется для разбиения программы на повторно используемые схемы кода (называемые классами), которые вы можете использовать для создания конкретных экземпляров вещей. К объектно-ориентированным языкам программирования относятся JavaScript, C++, Java и Python, и это лишь некоторые из них.
Не знаете, что делать дальше?
За 3 простых шага вы БЕСПЛАТНО найдёте свой персональный карьерный план в сфере разработки ПО
Развернуть в новой вкладке
Отдельные объекты создаются с использованием шаблонов классов в качестве схемы. Например, MyCar и GoldenRetriever — это два конкретных экземпляра абстрактного класса. Атрибуты, указанные в классе, могут иметь уникальные значения для каждого объекта.
Класс — это общий шаблон, который можно использовать для создания более специализированных конкретных вещей. Классы обычно используются для обозначения больших групп со схожими характеристиками. Классы также могут иметь функции, известные как методы, которые доступны исключительно для объектов такого типа. Эти функции указаны внутри класса и выполняют действие, полезное для этого конкретного типа объекта.
Основные возможности OOPS
Вот основные функции OOPS
1. Наследование
С точки зрения непрофессионала, атрибуты, которые вы наследуете от своих родителей, являются простой иллюстрацией наследования. Классы могут наследовать характеристики от других классов благодаря наследованию. Другими словами, родительские классы расширяют свойства и поведение дочерних классов. Повторному использованию способствует наследование. Прототипирование — это другое название наследования в JavaScript. Объект-прототип служит базой, из которой другой объект может получить свои функции и действия. Таким образом, вы можете использовать несколько шаблонов объектов-прототипов для формирования цепочки прототипов. Наследство передается от одного поколения к другому. родитель
Рассмотрим приложение Polygon, представляющее несколько фигур. Ожидается, что мы создадим два разных типа полигонов: прямоугольник и треугольник.
2. Инкапсуляция
Инкапсуляция — это процесс помещения всей критической информации внутрь объекта и раскрытия для внешнего мира только ее подмножества. Например, код внутри шаблона класса определяет атрибуты и поведение.
Затем данные и методы заключаются в объект, когда он создается из класса. Внутри класса инкапсуляция скрывает базовую реализацию программного кода и внутренние данные объектов. Инкапсуляция требует, чтобы одни поля были объявлены закрытыми, а другие — общедоступными.
- Методы и атрибуты, доступные только из других методов того же класса, составляют закрытый/внутренний интерфейс.
- Методы и атрибуты, доступные извне класса, называются общедоступным/внешним интерфейсом.
Демонстрация инкапсуляции в режиме реального времени
Одним из наиболее практичных примеров инкапсуляции является школьная сумка. Наши книги, карандаши и другие предметы можно хранить в школьной сумке.
Ниже перечислены некоторые преимущества инкапсуляции:
- Сокрытие данных: В этом случае пользователь не будет знать о внутренней реализации класса. Даже пользователь не будет знать, как класс хранит данные в переменных. Он или она будет знать только, что значения отправляются методу установки и что переменные инициализируются этим значением.
- Повышенная гибкость: В зависимости от наших потребностей мы можем сделать переменные класса доступными только для чтения или только для записи. Если вы хотите сделать переменные доступными только для чтения, удалите методы установки, такие как setName(), setAge() и т. д., из приведенной выше программы. Если вы хотите сделать переменные доступными только для записи, удалите методы get, такие как getName(), getAge() и т. д., из приведенной выше программы.
- Он также способствует повторному использованию и упрощает изменение для удовлетворения новых потребностей.
3. Абстракция
Абстракция относится к взаимодействию пользователя только с подмножеством характеристик и операций объекта. Для доступа к сложному элементу абстракция использует более простые методы высокого уровня.
- Простые элементы используются для демонстрации сложности.
- Держите сложную информацию скрытой от пользователя.
Простые классы используются для обозначения сложности абстракции. Инкапсуляция является расширением абстракции.
Пример абстракции из реальной жизни
Абстракция раскрывает пользователю только самые важные факты, скрывая основные сложности. Например, когда мы едем на велосипеде, мы знаем только, как на нем ездить, но не знаем, как он работает. Мы также понятия не имеем, как велосипед работает внутри.
Преимущества абстракции
- Это упрощает процесс видения вещей во всей их полноте.
- Предотвращается дублирование кода и повышается возможность повторного использования.
- Поскольку пользователю показывается только самая необходимая информация, это помогает повысить безопасность приложения или программного обеспечения.
4. Полиморфизм
Полиморфизм относится к созданию элементов со сходным поведением. Например, объекты могут переопределять общее родительское поведение определенным дочерним поведением посредством наследования. Переопределение метода и перегрузка метода — это два способа, с помощью которых полиморфизм позволяет одному и тому же методу выполнять различные действия.
Изучить взаимосвязь полиморфизма и реального мира на примерах.
Возьмем, к примеру, ваш мобильный телефон. Он имеет возможность хранить ваши контакты. Рассмотрим следующий сценарий: вы хотите сохранить два номера для одного человека. Вы можете сделать это, сохранив второй номер под тем же именем, что и первый.
Рассмотрим следующий сценарий: вы хотите сохранить два номера для одного и того же человека на объектно-ориентированном языке, таком как Java. Создайте функцию, которая будет принимать в качестве аргументов два целых числа и имя индивидуума для некоторой функции void createContact, которая будет определена позже (String name, int number1, int number2).
5. Переопределение метода
Переопределение метода используется при полиморфизме времени выполнения. Когда дочерний класс переопределяет метод родительского класса, дочерний класс может предложить альтернативную реализацию.
Рассмотрим семью из трех человек, состоящую из отца, матери и сына. Отец принимает решение научить своего ребенка стрелять. В результате он приносит его на полигон со своей любимой винтовкой и учит прицеливаться и стрелять по мишеням. Отец, наоборот, правша, а ребенок — левша. Так что у каждого свой способ обращения с пистолетом! Из-за их разной ориентации отец беспокоился, что не сможет научить сына стрелять.
Сын, с другой стороны, был проницателен и решил перевернуть руки своего отца, положив на спусковой крючок свою доминирующую руку, а не руку отца. Точнее, правой рукой. Существенно изменив процесс обучения, сын смог освоить навык стрельбы!
Переопределение метода — это термин, используемый в программировании для описания этой идеи.
6. Перегрузка метода
Перегрузка метода используется в полиморфизме времени компиляции. Хотя два метода или функции могут иметь одно и то же имя, количество аргументов, передаваемых при вызове метода, может различаться. Поэтому, в зависимости от количества введенных параметров, вы можете получить разные результаты.
С помощью простого примера это можно понять простыми словами. Добавление класса содержит два метода add(), один с аргументами int a и int b, а другой с тремя целочисленными параметрами: int a, int b и int c. В результате функция add() считается перегруженной.
Количество аргументов, заданных в операторе вызова метода, определяет, какой метод выполняется. Например, add(20,30) вызывает функцию add() с двумя параметрами, а add(10,20,30) вызывает метод add с тремя параметрами.0003
7. Объекты
Объект — это автономный сегмент с атрибутами и процессами, необходимыми для того, чтобы сделать данные пригодными для использования в терминах программирования. С объектно-ориентированной точки зрения объекты являются основными строительными элементами программ. В каждом приложении, которое вы создаете, вы можете использовать множество объектов различного типа. Каждый тип объекта является производным от определенного класса этого типа. Рассматривайте объект как слепок восприятий, процессов или объектов реального мира, которые важны для приложения, которое вы разрабатываете.
Переменная, функция или структура данных могут считаться объектом. Термин «объект» в объектно-ориентированном программировании относится к конкретному экземпляру класса. Объекты используются в разработке программного обеспечения для объединения компонентов данных с методами, которые их изменяют, что позволяет использовать абстрактные структуры данных. Объекты в объектно-ориентированном программировании являются ответом на идею наследования, что приводит к повышению надежности программ, упрощению обслуживания программного обеспечения, администрирования библиотек и разделения задач в командах программистов. Из основных терминов «Объекты» — это основные типы данных в объектно-ориентированных языках программирования, которые используются для построения объектно-ориентированного программирования.
8. Классы
В концепции oops класс — это конструкция, которая используется для описания отдельного типа. Класс создается в виде экземпляров самого себя, называемых экземплярами класса или просто объектами. Класс определяет члены-ингредиенты, которые позволяют его экземплярам иметь положение и поведение. Переменные-члены или переменные экземпляра помогают экземпляру класса сохранять свою позицию. С другой стороны, другие виды членов, особенно методы, допускают поведение экземпляров класса. Следовательно, просто классы определяют тип своих экземпляров. Класс обычно представляет человека, место или вещь или что-то еще.
Например, класс «Птица» будет символизировать свойства и функции птиц. Одна конкретная птица будет экземпляром класса «Птица», объектом типа «Птица». В классах есть набор спецификаторов доступа. спецификаторы private (или class-private) ограничивают доступ к самому классу. Только методы, которые являются элементами подобного класса, могут получить доступ только к закрытым членам. protected (или class-protected) указывает, что позволяет самому классу и всем подклассам (подклассам) получать доступ к члену, а public означает, что к этому члену можно получить доступ по его имени, используя любой код.
9. Конструкторы и деструкторы
Конструкторы в большинстве объектно-ориентированных языков имеют то же имя, что и класс, и являются общедоступными. Конструкторы могут быть перегружены, что означает возможность использования нескольких списков аргументов с одним и тем же именем. Функция Object() {[собственный код]} в PHP 5. 0 — это функция _construct(). Обычно значения атрибутов инициализируются в функции Object() {[собственный код]}. Метод _destruct() является необязательным, хотя его можно использовать для реализации кода, выполняющего очистку после уничтожения объекта, например закрытие файлов или соединений с базой данных.
Преимущества ООП
- Сложные вещи моделируются как повторяющиеся базовые структуры в ООП.
- Таким образом, объекты ООП можно использовать повторно и использовать в нескольких приложениях.
- Модульность для упрощения поиска и устранения неисправностей.
- Классы легче отлаживать, так как они обычно содержат всю необходимую информацию.
- Повторное использование кода посредством наследования.
Заключение
Объектно-ориентированное программирование требует планирования и продумывания структуры программы до начала написания кода и изучения того, как разложить требования на базовые повторно используемые классы, которые можно использовать для создания экземпляров объектов. В целом, использование ООП обеспечивает более повторное использование структур данных и экономит время в долгосрочной перспективе.
Часто задаваемые вопросы
Q1: Каковы лучшие функции ООП и почему объяснить?
Ответ: Инкапсуляция, наследование и полиморфизм — три фундаментальных элемента объектно-ориентированного программирования, которые отличают его от языков, не связанных с ООП. Инкапсуляция — это процесс создания автономных модулей, которые соединяют процессы обработки с данными. Классы организованы в иерархии, а наследование позволяет передавать структуру и функции одного класса вниз по иерархии. Наконец, объектно-ориентированное программирование позволяет создавать процедуры, относящиеся к объектам, точный тип которых неизвестен до тех пор, пока среда выполнения не будет известна как 9.0093 полиморфизм.
Q2: Что такое объект в ООП?
Ответ: Экземпляр класса называется объектом. Объект реального мира — это что-то вроде ручки, ноутбука, телефона, кровати, клавиатуры, мыши или стула. Физический объект называется объектом. В Java существует множество методов для создания объектов, включая ключевое слово new, метод newInstance(), метод clone(), фабричный метод и десериализацию. Вот реальный пример объекта в OOPS:
- Класс: Человек, Объект: Мужчина, Женщина
- Класс: Фрукты, Объект: Яблоко, Банан, Манго, Гуава и т. д.
Q3: Каковы основные принципы ООП?
Ответ: Абстракция, инкапсуляция, наследование и полиморфизм — четыре основные идеи ООП. Есть также классы и объекты.
Дополнительные ресурсы
- ООП Вопросы для интервью
Если все его ненавидят, почему ООП до сих пор так широко распространено?
В августовском выпуске журнала Byte за 1981 год Дэвид Робсон начинает свою статью, ставшую для многих введением в Object-Oriented Software Systems , тем, что заранее признает, что это отход от того, что многим знакомо с императивным, топ- вниз программирование привыкли.
«Многие люди, которые понятия не имеют, как работает компьютер, находят идею объектно-ориентированного программирования вполне естественной. Напротив, многие люди, имеющие опыт работы с компьютерами, сначала думают, что в объектно-ориентированных системах есть что-то странное».
Справедливости ради стоит сказать, что спустя несколько поколений идея организации вашего кода в более крупные осмысленные объекты , моделирующие части вашей проблемы, продолжает озадачивать программистов. Если они привыкли к программированию сверху вниз или функциональному программированию, которое рассматривает элементы кода как точные математические функции, к этому нужно привыкнуть. После того, как первоначальный период ажиотажа обещал улучшения для модульности и организации больших кодовых баз, идея была применена чрезмерно. Когда за ООП последовали ООА (объектно-ориентированный анализ) и ООД (объектно-ориентированное проектирование), вскоре стало казаться, что все, что вы делаете в программном обеспечении, должно быть разбито на объекты и их отношения друг к другу. Затем на сцене появились критики, некоторые из них были весьма разочарованы.
Некоторые утверждали, что при ООП писать тесты сложнее и требует особого внимания к рефакторингу. Есть накладные расходы при повторном использовании кода, которые создатель Erlang классно описал как случай, когда вы хотели банан, но вы получили гориллу, держащую банан. Все приходит с неявной, неизбежной средой.
Другие способы описания этого нового способа решения проблем включают аналогию между императивным программистом как «поваром или химиком, который следует рецептам и формулам для достижения желаемого результата» и объектно-ориентированным программистом как «греческим философом или 19естествоиспытатель 19-го века, озабоченный правильной таксономией и описанием существ и мест в мире программирования».
Был ли успех просто совпадением?ООП до сих пор остается одной из доминирующих парадигм. Но это может быть связано с успехом языков, которые оказались ООП. Java, C++ и Kotlin управляют мобильностью для Android, а Swift и Objective-C для iOS, поэтому вы не сможете разрабатывать программное обеспечение для мобильных устройств, если не понимаете объектно-ориентированный подход. Для Интернета это JavaScript, Python, PHP и Ruby.
Спрашивая, почему так много широко используемых языков являются объектно-ориентированными, вы можете перепутать причину и следствие. Ричард Фельдман в своем выступлении утверждает, что это могло быть просто совпадением. C++ был разработан в начале 1980-х годов Бьерном Страуструпом, первоначально как набор расширений для языка программирования C. Основанный на C , C++ добавил объектную ориентацию, но Фельдман утверждает, что он стал популярным из-за общего обновления C, включая безопасность типов и добавленную поддержку автоматического управления ресурсами, общего программирования и обработки исключений, среди других функций.
Затем Java захотела привлечь внимание программистов на C++ и удвоила ставку на часть ООП. В конечном счете, Sun Microsystems хотела повторить трюк с C++, стремясь сделать его более знакомым для разработчиков, использующих Java.
Миллионы разработчиков быстро перешли на Java из-за ее эксклюзивной интеграции в веб-браузеры того времени. С этой точки зрения, ООП, кажется, просто едет, а не способствует успеху.
Что уникального может сделать ООП?В ООП есть несколько ценных аспектов, некоторые из которых делают его вездесущим, даже если у него есть свои недостатки. Давайте посмотрим на краеугольные камни ООП.
Инкапсуляция . Это означает, что данные, как правило, скрыты от других частей языка — если хотите, помещены в капсулу. ООП инкапсулирует данные по умолчанию; объекты содержат как данные, так и методы, влияющие на эти данные, и хорошая практика ООП означает, что вы предоставляете методы получения и установки для управления доступом к этим данным. Это защищает изменяемые данные от случайного изменения и делает данные приложений более безопасными.
Предположительно, это одно из величайших преимуществ ООП. Хотя это чаще всего ассоциируется с объектно-ориентированным программированием, сама концепция на самом деле отделена от него и может быть реализована без использования объектов. Абстракция здесь является дополнительной концепцией инкапсуляции; там, где инкапсуляция скрывает внутреннюю информацию, абстракция обеспечивает более простой в использовании общедоступный интерфейс к данным. В любом случае, это не уникальная функция ООП, и ее можно реализовать с помощью модулей, изолирующих системную функцию или набор данных и операции над этими данными внутри модуля.
Наследство . Поскольку объекты могут быть созданы как подтипы других объектов, они могут наследовать переменные и методы от этих объектов. Это позволяет объектам поддерживать операции, определенные предшествующими типами, без необходимости предоставлять собственное определение. Цель состоит в том, чтобы не повторяться — многократное использование одного и того же кода трудно поддерживать. Но функциональное программирование также может достичь DRY с помощью многократно используемых функций. То же самое касается эффективности памяти. Несмотря на то, что наследование способствует этому, то же самое делает и концепция замыканий в FP.
Хотя наследование является специфической идеей ООП, некоторые утверждают, что его преимущества могут быть лучше достигнуты с помощью композиции. Если вы потеряете наследование, объекты и методы быстро растворятся как синтаксический сахар для структур и процедур, которыми они и являются. Обратите внимание: Наследование также необходимо для разрешения полиморфизма, который мы обсудим ниже.
Полиморфизм. Буквально изменяя форму, эта концепция позволяет одному объекту или методу, будь то универсальный объект, интерфейс или обычный объект, служить шаблоном для других объектов и методов. Существует множество форм полиморфизма. Одну функцию можно перегрузить, изменить форму и адаптировать к любому классу, в котором она находится. Объектно-ориентированное программирование имеет тенденцию использовать много полиморфизма подтипов и специального полиморфизма, но опять же, эта концепция не ограничивается ООП.
Похоже, что в 2020 году ООП может сделать не так много, как другие парадигмы программирования, и хороший программист будет использовать стратегии из нескольких парадигм вместе в битве со сложностью. Например, если вы посмотрите на теги, которые чаще всего появляются в связи с вопросом, помеченным как ООП и функциональное программирование, JavaScript всплывает в обоих случаях.
Что будет дальше?ООП, однако, был чрезвычайно успешным. Возможно, этот успех является следствием огромной индустрии, которая поддерживает и поддерживает ООП.
А что насчет самих разработчиков? Наш опрос разработчиков в этом году показывает, что они становятся все более и более влиятельными покупателями. Что ж, если мы также посмотрим, с чем разработчики предпочитают работать, Haskell и Scala входят в число самых любимых языков программирования.