Файл: Современные языки программирования (Понятие и классификация языков программирования).pdf
Добавлен: 18.05.2023
Просмотров: 387
Скачиваний: 4
Имя языка, получившееся в итоге, происходит от оператора унарного постфиксного инкремента C ++ (увеличение значения переменной на единицу). Имя C+ не было использовано потому, что является синтаксической ошибкой в C и, кроме того, это имя было занято другим языком. Язык также не был назван D, поскольку «является расширением C и не пытается устранять проблемы путём удаления элементов C».
Достоинства языка:
1. Масштабируемость. На языке C++ разрабатывают программы для самых различных платформ и систем.
2. Возможность работы на низком уровне с памятью, адресами, портами.
3. Возможность создания обобщенных алгоритмов для разных типов данных, их специализация, и вычисления на этапе компиляции, используя шаблоны.
4. Кроссплатформенность. Доступны компиляторы для большого количества платформ, на языке C++ разрабатывают программы для самых различных платформ и систем.
5. Эффективность. Язык спроектирован так, чтобы дать программисту максимальный контроль над всеми аспектами структуры и порядка исполнения программы.
Недостатки языка:
1. Наличие множества возможностей, нарушающих принципы типобезопасности приводит к тому, что в С++ программы могут легко закрасться трудноуловимая ошибка.
2. Плохая поддержка модульности. Подключение интерфейса внешнего модуля через препроцессорную вставку заголовочного файла (#include) серьёзно замедляет компиляцию, при подключении большого количества модулей.
3. Язык C++ является сложным для изучения и для компиляции.
4. Некоторые преобразования типов неинтуитивны. В частности, операция над беззнаковым и знаковым числами выдаёт беззнаковый результат.
5. Некоторые считают недостатком языка C++ отсутствие встроенной системы сборки мусора. С другой стороны, в C++ имеется достаточно средств, позволяющих почти исключить использование опасных указателей, нет принципиальных проблем и в реализации и использовании сборки мусора (на уровне библиотек, а не языка). Отсутствие встроенной сборки мусора позволяет пользователю самому выбрать стратегию управления ресурсами[24].
2.7. TypeScript
TypeScript разработан компанией Microsoft. За короткое время он набрал популярность. TypeScript является гибким и производительным языком программирования, который основан на Javascript. Среди основных особенностей языка TypeScript выделим следующие: язык TypeScript строго типизирован; код на TypeScript можно компилировать в JavaScript; язык обратно совместим с JavaScript и даже, если разработчик будет писать смешанный код, то это также будет валидно[25].
TypeScript открывает множество возможностей для веб-специалистов. В первую очередь, технология для работы с модулями/классами позволяет создавать интерфейсы, модули, классы. Также можно наследовать интерфейсы (в том числе множественное наследование), классы. Можно делать описание собственных типов данных и создавать универсальные-интерфейсы (generic interfaces). Также можно описывать тип переменной (или свойств объекта), или описывать каким интерфейсом должен обладать объект, на который ссылается переменная. И, если нужно, описать сигнатуру метода.
Язык TypeScript был создан для больших и громоздких проектов, разработку над которыми ведет комманда разработчиков, а не отдельные программисты. Поэтому данный язык отличается развитыми инструментами разработки компонентами и сбора конечного проекта из структуры файлов, которая во многом разветвленная.
Какие преимущества в разработке дает TypeScript: использование ECMAScript, которое позволяет работать коду без конвертирования классов; работают функции IDE (авто-завершения, рефакторинг и отладка). Плагин разработан для Visual Studio, Sublime Text,Vim и iacs. Веб-специалистам будет легче работать с большими приложениями на JavaScript; TypeScript может использоваться на стороне клиента или сервера в Node.js.
Причины использования TypeScript:
- Возможность жестко описывать каждый элемент приложения. Веб-специалисту нужно четко продумывать логику приложения вплоть до момента реализации. Нет возможности изменить одну часть проекта, при этом сломав другую часть.
- Есть возможность описать область видимости свойств класса.
- Нужно писать меньше тестов из-за жесткой архитектуры.
- Любой некомпилируемый код нельзя будет закоммитить с помощью специальной настройки.
- Некоторые из ошибок форматирования кода исключены из-за жесткого формата конструкций языка программирования[26].
В последнее время данный язык набрал популярность и стал часто использоваться из-за того, что он полностью совмести с Angular 2, который, кстати, написан на TypeScript. К тому же разработка компании Microsoft обнадеживает на долгую поддержку и дальнейшее плодотворное развитие. В данном случае стоит более детально ознакомиться с данным языком и изучить его как можно подробнее.
2.8. Ruby
Еще один не менее известный за предыдущий язык программирования Ruby – и фреймворк Ruby on Rails. Основное назначение Ruby – создание простых и в то же время понятных программ, где важна не скорость работы программы, а малое время разработки, понятность и простота синтаксиса. Язык следует принципу «наименьшей неожиданности»: программа должна вести себя так, как ожидает программист. Язык Ruby применяется не только в веб-разработке, но и в системном администрировании (он работает в ОС – Linux, MS Windows и BSD, Mac OS X). Фреймворк Ruby on Rails появился на свет уже после самого языка, и дал возможность делать сайты уже с помощью Ruby. По своей структуре язык чем то похож с Perl, Smalltalk, Python, но имеет уникальные функции[27].
Данная комбинация используется компаниями для создания различных проектов и разработки автоматизированных систем, которые решают задачи в бизнесе – учет, документооборот и тп.
Особенности хостинга для Ruby и Ruby on Rails:
- технология очень требовательна к ресурсам сервера, на котором будет размещаться проект;
- поддерживает базы данных MySQL, Firebird, PostgreSQL, IBM DB2, Oracle и Microsoft SQL Server, которые без проблем могут мигрировать между собой;
- RoR кроме самого интерпретатора требует установки собственных компонентов системы;
- работает со многими веб-серверами, например, Apache или nginx+passenger;
- на западном рынке предложений хостинга под данную технологию намного больше, так как там этот язык активно используется[28].
Ruby является языком сверх высокого уровня. У него простой и чистый синтаксис. Ruby обеспечивает хорошую масштабированность и легкое сопровождение. Как и PHP он позволяет разрабатывать ecommerce платформы. Язык могут начать изучать новички. Основным недостатком является плохая документация и медленные рост популярности.
Преимущества Ruby:
- открытая разработка;
- работает на многих платформах, может внедряться в HTML-разметку;
- относится к языкам программирования сверхвысокого уровня (VHLL), то есть обладает высоким уровнем абстракции и предметным подходом в реализации алгоритмов;
- реализует концептуально чистую объектно-ориентированную парадигму;
- предоставляет продвинутые методы манипуляции строками и текстом;
- легко интегрирует в свои программы высокопроизводительные серверы баз данных (DB2, MySQL, Oracleи Sybase);
- благодаря VHLL программы на Ruby хорошо масштабируются и легко сопровождаются;
- простой и чистый синтаксис значительно облегчает программистам первые шаги в обучении этому языку;
- имеется простой программный интерфейс для создания многопоточных приложений;
- имеет продвинутые средства для работы с массивами;
- возможности языка можно расширить при помощи библиотек, написанных на C или Ruby;
- зарезервированные слова могут являться идентификаторами, если это не создаёт неоднозначности для парсера;
- дополнительные возможности для обеспечения безопасности;
- встроенный отладчик.
Недостатки Ruby: обучение языку выше начального уровня может оказаться непростым; информационных ресурсов, посвящённых Ruby, явно недостаточно; Ruby менее производителен по сравнению со многими другими языками, применяемыми в веб-разработке; Ruby относительно медленно разрабатывается и развивается.[29]
2.9. Swift и Objective-C
Objective-C был разработан еще в начале 90х годов. Это симбиоз на то время языка программирования C и Smalltalk. Компилируемый объектно-ориентированный язык программирования, используемый корпорацией Apple, построенный на основе языка Си и парадигм Smalltalk. Язык Objective-C является надмножеством языка Си, поэтому Си-код полностью понятен компилятору Objective-C. Язык используется в первую очередь для Mac OS X (Cocoa) и GNUstep – реализаций объектно-ориентированного интерфейса OpenStep. Также язык используется для iOS (Cocoa Touch). Он имел большой успех в свое время, но постепенно начал терять популярность. На смену этого языка пришел Swift, но многие разработчики не спешат прощаться с Objective-c.
Swift – открытый мультипарадигмальный компилируемый язык программирования общего назначения. Создан компанией Apple в первую очередь для разработчиков iOS и OS X. Swift работает с фреймворками Cocoa и Cocoa Touch и совместим с основной кодовой базой Apple, написанной на Objective-C. Swift задумывался как более легкий для чтения и устойчивый к ошибкам программиста язык, нежели предшествовавший ему Objective-C. Swift заимствовал довольно многое из Objective-C, однако он определяется не указателями, а типами переменных, которые обрабатывает компилятор. По аналогичному принципу работают многие скриптовые языки.
Swift имеет улучшенную читабельность кода, больше возможностей по сравнению objective-c и повышенную безопасность. Он набирает популярность и сейчас превосходит objective-c. На мой взгляд это язык программирования имеет хорошие перспективы.
Преимущества Swift над Objective-C:
1. Apple и IBM. Apple и IBM объединили свои усилия и вместе инвестируют в Swift. IBM Cloud предоставляет возможности не только разрабатывать и применять, но также делиться ресурсами и использовать Swift Sandbox для быстрых экспериментов. Таким образом, Objective-C оказался вне игры. Практически все изменения, которые вносились в Objective-C в последнее время, делались для того, чтобы упростить импорт данных в Swift.
2. Меньше кода. Swift – более компактный язык программирования. Но, это вовсе не означает, что код простой. Иногда он очень даже сложный. Но в то же время, он обеспечивает преимущества, которыми не может похвастаться Objective-C.
3. Меньше ошибок. Синтаксис и строение языка исключают несколько типов ошибок, которые потенциально возможны в Objective-C. Эта стабильность языка помогает разработчику избежать нежелательных погрешностей.
4. Скорость. Производительность Swift приближается к С++. Apple постоянно работает над улучшением скорости Свифт. Objective-C работает медленнее.
5. Общедоступность. Созданный для платформ Apple, Swift потихоьньку распространяется на другие платформы. В данный момент он достиг только Linux. Но прогнозируется, что этот язык станет еще более портативным и будет переноситься на другие платформы. Говорят, что в планах автора Криса Латтнера есть идея сделать его совместимым с Android.
6. Интерактивность. Инструмент Swift Playgrounds предоставил новые возможности разработчикам. Он позволяет тестировать код в режиме реального времени без составления больших кусков или всего приложения. Эта функция отлично подходит для экспериментов с кодом.
7. Swift ближе к другим платформам. Современный язык программирования Apple легче понять разработчикам, не работающим с iOS. Это положительно влияет на продуктивность и скорость работы. Swift предоставляет уникальную возможность – он может быть использован для всех целей iOS программирования.
Основные преимущества Objective-C:
- Код, написанный на Objective-C и С, может использоваться в Swift. Но не наоборот.
- Код С++ может использоваться в Objective-C, но не в Swift.
- Objective-C может компилироваться в статические библиотеки и динамические фреймворки.
- Синтаксис Objective-C стабильный. В то время, как синтаксис Swift все еще улучшается.
- Приложения, написанные на версиях Swift до 3.0 на 10-20 Мб больше, чем аналогичные приложения, написанные на Objective-C.
- Компилятор Swift 2.1 нестабильный. Иногда он дает сбои, чего практически никогда не случается с Objective-C.
- Xcode не поддерживает перепроектирования Swift-кода.
2.10. Новые современные языки программирования
В настоящее время число новых языков программирования увеличивается постоянно. Таким образом, на данный момент известно более двух с половиной тысяч языков программирования. Существуют два главных требования для языков программирования: их близость к обычному профессиональному языку определенной сферы деятельности и простота реализации. Противоречивость требований стимулирует непрерывный процесс создания новых языков и доработки существующих. В Приложении 1 рассмотрены современные языки программирования.
Многие из этих языков еще находятся на стадии разработки, тем самым можно сделать вывод о том, что в настоящее время, имея базу из двух с половиной тысяч языков программирования нет ни одного универсального.
На сегодняшний день существуют несколько языков программирования, которые имеют перспективные направления для развития. К их числу относятся: Elm, Rust, Kotlin, Crystal, Elixir. Они доказали свою состоятельность путем создания сильных сообществ, но они до сих пор не используются большинством консервативных IT-компаний.