Курсовая Работа. КурсРаб. Техникоэкономический колледж при нао карагандинский индустриальный унивеситет
Скачать 204.12 Kb.
|
ГЛАВА 2. СРАВНИТЕЛЬНЫЙ АНАЛИЗ СОВРЕМЕННЫХ ЯЗЫКОВ ПРОГРАММИРОВАНИЯ Если разделять языки программирования по популярности, то они делятся на три эшелона. Первый эшелон включает мейнстрим-языки, такие как Java, JavaScript, Python, Ruby, PHP, C#, C++ и Objective-C. Языки второго эшелона пытаются пробиться в мейнстрим, но ещё не добились этого. Они доказали свою состоятельность путем создания сильных сообществ, но они до сих пор не используются большинством консервативных IT-компаний. Scala, Go, Swift, Clojure и Haskell – языки, которые, по моему мнению, можно отнести ко второму эшелону. Некоторые компании используют эти языки для отдельных сервисов, но широкое применение встречается редко (за исключением Swift, который начинает обгонять Objective-C в качестве основного языка для iOS). Go и Swift имеют хорошие шансы на переход из второго эшелона в первый в течение ближайших двух-трёх лет. Большинство языков в первом эшелоне прочно укоренились на своих позициях. Поэтому выпадение языка с лидирующих позиций занимает ощутимое время, а для языка второго эшелона очень трудно пробиться в первый. Перспективные языки, которые только недавно зародились и продолжают свое стремительное развитие, относятся к третьему эшелону, и они только начинают свой путь наверх. Некоторые языки пребывают в третьем эшелоне на протяжении многих лет, не получая популярности, в то время как другие врываются на сцену всего за пару лет. Все три указанные ниши языков постараемся детально рассмотреть в данной главе. В поиске информации нам помог ресурс Stackoverflow. Итак, для начала представим топ-10 языков программирования за 2017 год (рисунок 1). Рисунок 1 Топ-10 языков программирования за 2017 год Языки программирования развиваются достаточно быстро, новые языки приходят на смену старым. Нужно всегда держать руку на пульсе событий, чтобы оставаться хорошим специалистом. Давайте рассмотрим каждый язык программирования и постараемся понять, какие современные языки программирования остаются популярны, а какие теряют свои позиции. 2.1. Javascript Это один из самых популярных языков программирования. Он находится на первом месте уже несколько лет подряд. Это самый кроссплатформенный язык программирования, который позволяет разрабатывать desktop, веб и мобильные приложения. Javascript имеет много удобных и гибких библиотек. Среди самых популярных стоит отметить React.js. Angular.js и Vue.js. Последняя библиотеке только набирает популярность. Vue имеет хорошую производительность и одна из самых легких для изучения. Тем не менее, ей будет тяжело выйти на столько высокий уровень популярности как другие библиотеки. Рынок уже поделен между React и Angular. Библиотека React была разработана компанией Facebook. Она является одной из самых популярных на основе javascript. React позволяет разрабатывать мобильные приложения, сайты и SPA (single page application). React существенно легче в изучении по сравнению с Angular 2. Angular разработан компанией Google и в последнее время терпит много трансформаций. Сначала все использовал Angular 1, несколько лет назад вышел Angular 2, который более производительней, удобней и быстрее. Сейчас Google разрабатывает Angular 4. Он должен заменить Angular 2 и стать лидером среди javascript библиотек. Посмотрим, что с этого выйдет. В целом, Angular сложный для новичков и хорошо подходи для разработки веб приложения для крупных компаний. Кроме приведенных выше библиотек очень популярный node.js. Он позволяет разрабатывать серверную часть на Javascript. Это лучшее решение если вы хотите разработать back-end часть с использованием js. Как видите, javascript универсальный язык программирования. Имеет хорошую гибкость и производительность. Именно это и делает его одним из самых популярных в нашем списке. Я думаю в дальнейшем этот тренд сохранит свою динамику. Еще один безусловный плюс JS – его мультипарадигменность. Это значит, что его не нужно компилировать под платформу, на которой ведется разработка. Не нужно подгонять костюмчик, он и так хорошо сидит. Преимущества JavaScript: Ни один современный браузер не обходится без поддержки JavaScript. С использованием написанных на JavaScript плагинов и скриптов справится даже не специалист. Полезные функциональные настройки. Постоянно совершенствующийся язык – сейчас разрабатывается бета-вариация проекта, JavaScript2. Взаимодействие с приложением может осуществляется даже через текстовые редакторы – Microsoft Office и Open Office. Перспектива использования языка в процессе обучения программированию и информатике. Недостатки JavaScript: Пониженный уровень безопасности ввиду повсеместного и свободного доступа к исходным кодам популярных скриптов. Множество мелких раздражающих ошибок на каждом этапе работы. Большая часть из них легко исправляется, но их наличие позволяет считать этот язык менее профессиональным, сравнительно с другими. Повсеместное распространение. Своеобразным недостатком можно считать тот факт, что часть активно используемых программ (особенно приложений) перестанут существовать при отсутствии языка, поскольку целиком базируются на нем[15].Обобщая информацию о Javascript, делаем вывод, что этот язык программирования заслуживает того, чтобы быть первым. 2.2. SQL Язык структурированных запросов. SQL – формальный непроцедурный язык программирования, применяемый для создания, модификации и управления данными в произвольной реляционной базе данных, управляемой соответствующей системой управления базами данных. SQL является, прежде всего, информационно-логическим языком, предназначенным для описания, изменения и извлечения данных, хранимых в реляционных базах данных. Каждое предложение SQL – это либо запрос данных из базы, либо обращение к базе данных, которое приводит к изменению данных в базе. Это язык программирования используется для управления данными в реляционной базе данных. Знания SQL является обязательным для проектирования баз данных, который используются большинством веб сайтов. Несмотря на то, что в базе данных можно хранить не только текстовую информацию, но и, скажем, картинки, какие-то документы и т.д, как правило она все же используется именно для хранения текстовой информации, а информация другого типа хранится в виде файлов. А с помощью языка SQL разработчик приложений работает с базой данных. Записывает или выводит данные из базы данных. Делает различные манипуляции с ней. Таким образом, язык SQL является тем связующим звеном, которое обеспечивает взаимодействие приложения с базой данных и хранящейся в ней информацией. SQL нельзя в полной мере отнести к традиционным языкам программирования, он не содержит традиционные операторы, управляющие ходом выполнения программы, операторы описания типов и многое другое, он содержит только набор стандартных операторов доступа к данным, хранящимся в базе данных. Операторы SQL встраиваются в базовый язык программирования, которым может быть любой стандартный язык типа C++, PL, COBOL и т. д. Кроме того, операторы SQL могут выполняться непосредственно в интерактивном режиме. Преимущества: Независимость от конкретной СУБД. Несмотря на наличие диалектов и различий в синтаксисе, в большинстве своём тексты SQL-запросов, содержащие DDL и DML, могут быть достаточно легко перенесены из одной СУБД в другую. Существуют системы, разработчики которых изначально ориентировались на применение по меньшей мере нескольких СУБД. Естественно, что при применении некоторых специфичных для реализации возможностей такой переносимости добиться уже очень трудно. Наличие стандартов. Наличие стандартов и набора тестов для выявления совместимости и соответствия конкретной реализации SQL общепринятому стандарту только способствует «стабилизации» языка. Правда, стоит обратить внимание, что сам по себе стандарт местами чересчур формализован и раздут в размерах. Декларативность. С помощью SQL программист описывает только то, какие данные нужно извлечь или модифицировать. То, каким образом это сделать, решает СУБД непосредственно при обработке SQL-запроса. Однако не стоит думать, что это полностью универсальный принцип - программист описывает набор данных для выборки или модификации, однако ему при этом полезно представлять, как СУБД будет разбирать текст его запроса. Чем сложнее сконструирован запрос, тем больше он допускает вариантов написания, различных по скорости выполнения, но одинаковых по итоговому набору данных. Недостатки: Несоответствие реляционной модели данных. Создатели реляционной модели данных Эдгар Кодд, Кристофер Дейт и их сторонники указывают на то, что SQL не является истинно реляционным языком. В частности, они указывают на следующие проблемы SQL: повторяющиеся строки, неопределённые значения, явное указание порядка колонок слева направо, колонки без имени и дублирующиеся имена колонок, отсутствие поддержки свойства «=», использование указателей, высокая избыточность. Сложность. Хотя SQL и задумывался как средство работы конечного пользователя, в конце концов он стал настолько сложным, что превратился в инструмент программиста. Отступления от стандартов. Несмотря на наличие международного стандарта ANSI SQL-92, многие компании, занимающиеся разработкой СУБД, вносят изменения в язык SQL, применяемый в разрабатываемой СУБД, тем самым отступая от стандарта. Таким образом, появляются специфичные для каждой конкретной СУБД диалекты языка SQL. Сложность работы с иерархическими структурами. Ранее диалекты SQL большинства СУБД не предлагали способа манипуляции древовидными структурами. Некоторые поставщики СУБД предлагали свои решения. В настоящее время в ANSI стандартизована рекурсивная конструкция WITH из диалекта SQL DB2. В MS SQL Server рекурсивные запросы появились лишь в версии MS SQL Server 2005[16]. 2.3. Java Java считается одним из наиболее практичных языков программирования. Язык программирования Java отличается быстрой работой, надежностью и функциональными возможностями. Изначально язык назывался Oak («Дуб») и использовался для программирования бытовых электронных устройств. Впоследствии он был переименован в Java и стал использоваться для написания клиентских приложений и серверного программного обеспечения (из Wiki.). Данная платформа представляет собой целый комплекс технологий, предназначенных для серверов, которые исполняют Java-приложения на клиентских компьютерах. Популярные сервисы в Сети используют в своей основе концепцию Java Enterprise Edition. Java очень популярный в финансовой и банковской индустрии. В первую очередь благодаря своей скорости работы и уровня безопасности. Java разработчики очень ценятся на рынке труда из-за дефицита. Этот язык программирования достаточно сложный для изучения и для новичков не всегда дается легко. Кроме всего прочего, приложения Android разрабатываются именно на Java. Это основная причина столь значительной популярности этого языка. По статистике Google Trends, динамика идет вниз. Это кроссплатформенная технология с открытым исходным кодом: дополняй на здоровье, изучай и вноси правки. Кроссплатформенность особенно важна для разработки веб-приложений. Еще одним плюсом Java является возможность создавать модульные программы, которые используются снова и снова. В общем, это язык, который подходит практически для любых задач, так что без работы вы точно не останетесь. Да и будем честными, это не такой уж и сложный язык с огромным коммьюнити, массой учебного материала в сети и отличной поддержкой. Особенности хостинга для Java: унифицированный доступ к базам данных; большое количество полезных стандартных массивов, стеков и списков; множество фильтров, настройка ввода и вывода; простота в разработке многопоточных приложений; реализовано автоматичное управление памяттю; категории для работы с запросами и ответами HTTP и многое другое[17]. Достоинства: наибольшая среди всех языков программирования степень переносимости программ; мощные стандартные библиотеки; встроенная поддержка работы в сетях (как локальных, так и Internet/Intranet). Недостатки: низкое, в сравнении с другими языками, быстродействие, повышенные требования к объему оперативной памяти (ОП); большой объем стандартных библиотек и технологий создает сложности в изучении языка; постоянное развитие языка вызывает наличие как устаревших, так и новых средств, имеющих одно и то же функциональное назначение[18]. 2.4. Python До недавнего времени PHP был более популярный чем Python, но сейчас можно уверено сказать, что Python завоевывает доверие молодых разработчиков. Он имеет огромное количество преимуществ. В первую очередь, он лаконичный и понятный. Таким образом, Python – это отличный старт для начинающих разработчиков. Удобная структура кода позволяет легко разрабатывать проект и в дальнейшем поддерживать их. Для бизнеса это означает сокращение расходов. Питон это один из немногих серверных языков, который показывает динамику роста. Язык используется для создания разноуровневых веб-приложений. Открытая разработка, простота в изучении и большое сообщество разработчиков – основные преимущества интепретируемого языка для скриптов. Python подходит для большинства рода задач, в том числе он используется такими гигантами как Google и Yandex. Так как технология практически ничем не ограничена, она может быть применена и в крупных проектах, и в мелких ежедневных задачах, таких как резервное копирование, чтение електронной почты. Кроме того, Питон используется при разработке игр. Разработчики создают продукт на одном языке, а для скриптов внутри, вроде взаимодействия персонажей и сцен, часто используют именно Python[19]. Что касается технологий хостинга, на серверах для Python должны быть предустановленны плагины, которые позволят работать с языком. Зачастую хостинг для Python нужен тем, кто использует популярный фреймворк Django. Удобный и полезный Django позволяет создавать высокопрофессиональные приложения, шаблоны для сайтов и CMS. Особенности Python хостинга: широкая распространенность, так как почти каждый дистрибутив Unix имеет интерпретатор Python; особый интерес к данному виду хостинга обозначен прежде всего интересом и популярностью фреймворков – Zope, Django, TurboGears, Pylons, web.py, которые непосредственно связаны с данным языком программирования; установка вышеперечисленных фреймворков не всегда посильная и часто сложная задача, из-за чего в основном тормозит развитие хостинга для Python в СНГ[20]. 2.5. PHP Рассмотрим всем известный язык РНР, который отлично подходит для написания веб-приложений работающих с данными. Он также предназначен для создания систем управления контентом, таких как WordPress. Язык включает в себя множество функций, и с выходом каждой новой версии эти функции только расширяются сейчас уже доступна версия php 7. С помощью данной технологии создаются как маленькие так и огромные проекты в Сети, пишутся скрипты для сайтов, такие как чаты, формы обратной связи, тесты, гостевые книги и тп. Широкое применения данного языка сделало его очень популярным среди веб-разработчиков. Выдаем сразу главный козырь PHP: более 80% сайтов используют эту технологию, в том числе Tumblr, Википедия и Facebook. Worldpress вообще обязан своим существованием этому языку программирования. Наиболее популярной в сфере хостинг-технологий есть связка PHP и MySQL. Рассмотрим ее особенности: использования версии языка на выбор. Многие хостинг-провайдеров поддерживают старые и новые версии PHP. база данных MySQL предоставляет все технологии и инструменты для управления базами, в которых хранится информация. Удобство использования и систематическое хранения данных, что облегчает поиск – главные преимущества MySQL. наблюдается тенденция к использованию PHP-фреймворков, которые упрощают разработку веб-приложений – Zend Framework, CakePHP, Symfony. Если эти фреймворки предустановленны в хостинге, то это очень удобное и полезное решение. хостинг с PHP и MySQL станет хорошим решением для сложных коммерческих сайтов, например, интернет-магазинов. Кроме того, стоимость такого хостинга вполне приемлимая. пока что идеальной альтернативы связке PHP и MySQL как таковой не существует. Конечно, провайдеры предлагают и другие варианты, например, PostgreSQL, SQLite, FirebirdSQL, которые работают по одинаковому принципу, но ограничивают клиента по определенным функциям, что влияет на работу сайтов[21]. Эта технология также располагает одной из наиболее богатых библиотек и внушительным списком расширений, которые позволяют поднять функциональность сайта на новый уровень. Да чего греха таить – всего после недели обучения вы и сами будете в силах написать необходимое расширение, ведь PHP – очень легкий для изучения язык. Преимущества: является свободным программным обеспечением, распространяемым под особой лицензией (PHP license); легок в освоении на всех этапах; поддерживается большим сообществом пользователей и разработчиков; имеет развитую поддержку баз данных; имеется огромное количество библиотек и расширений языка; является довольно полной заменой проприетарной среды ASP (Active Server Pages) от Microsoft; может быть развёрнут почти на любом сервере; портирован под большое количество аппаратных платформ и операционных систем. Недостатки: не подходит для создания десктопных приложений или системных компонентов; имеет слабые средства для работы с исключениями; глобальные параметры конфигурации влияют на базовый синтаксис языка, что затрудняет настройку сервера и разворачивание приложений; веб-приложения, написанные на PHP, зачастую имеют проблемы с безопасностью[22]. 2.6. С++ C++ компилируемый язык программирования общего назначения, сочетает свойства как высокоуровневых, так и низкоуровневых языков программирования. В сравнении с его предшественником, языком программирования Cи, наибольшее внимание уделено поддержке объектно-ориентированного и обобщённого программирования. Название «язык программирования C++» происходит от языка программирования C, в котором унарный оператор ++ обозначает инкремент переменной[23]. Язык программирования C++ широко используется для разработки программного обеспечения. А именно, создание разнообразных прикладных программ, разработка операционных систем, драйверов устройств, а также видео игр и многое другое. Он был создан в начале 1980-х годов, Бьёрном Страуструпом. Он придумал ряд усовершенствований к языку программирования C, для собственных нужд. т.е. изначально не планировалось создания языка программирования С++. Он поддерживает такие парадигмы программирования, как процедурное программирование, объектно-ориентированное программирование, обобщённое программирование, обеспечивает модульность, раздельную компиляцию, обработку исключений, абстракцию данных, объявление типов (классов) объектов, виртуальные функции. Имя языка, получившееся в итоге, происходит от оператора унарного постфиксного инкремента 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-компаний. В будущем можно ожидать новые операционные системы и языки программирования, разработанные с внедрением технологий виртуализации, так как они внедрилась не только в процесс создания прикладных программ, но и в процесс разработки оборудования. Но на данном этапе, можно предположить, что хотя бы один из рассмотренных перспективных языков в будущем заменит существующие стандартные языки программирования. ЗАКЛЮЧЕНИЕ В настоящее время существует огромное количество языков программирования. Их более 2500, но наиболее значимых – около 700, и это без учета их диалектов. Споры от том, какой среди них лучший, ведутся давно. Существует объективно наблюдаемая разница в работе программ, написанных на разных языках. В каждом языке имеет место определенная зависимость между выразительностью языка и его эффективностью, а также существует множество других критериев, по которым можно оценить язык программирования. Таким образом, задача выбора языка программирования является сложной, многокритериальной задачей с большим (теоретически бесконечным) количеством оцениваемых объектов. Выбор «живого» перспективного языка важен и для обучения, и для написания оптимальной программы, как по производительности, так и по скорости написания и удобству дальнейшего сопровождения. С необходимостью выбора языка программирования чаще всего сталкиваются программисты при изучении первого языка программирования. В конечном счете, все зависит от того, какую область деятельность выбрать. Если работать непосредственно с железом, писать драйверы и различные приложения, для которых требуется максимальная производительность, – тогда подойдут только C или C++. Если основная цель – приложения для мобильников, стоит изучить Java или Objective C, C#. Для веб-серверов необходимы go, python и php; для веб-приложений – JavaScript. На мой взгляд, настоящий программист никогда не ограничивается знанием только одного языка. И даже если в будущем вы собираетесь писать драйвера и системные приложения, вам всё равно пригодится какой-нибудь из скриптовых языков, таких как perl или python. Более того, знание скриптовых языков сейчас просто необходимо для любого программиста, несмотря на его специализацию. СПИСОК ЛИТЕРАТУРЫ Аткинсон MySQL. Библиотека профессионала / Аткинсон, Леон. - М.: Вильямс, 2016. - 624 c. Ашарина И.В. Основы программирования на языках С и С++: Курс лекций для высших учебных заведений / И.В. Ашарина. — М.: Гор. линия-Телеком, 2015. — 208 c. Баженова И.Ю. Языки программирования: Учебник для студентов учреждений высш. проф. образования / И.Ю. Баженова; Под ред. В.А. Сухомлин. — М.: ИЦ Академия, 2017. — 368 c. Берд, Барри Java для чайников / Барри Берд. - М.: Диалектика / Вильямс, 2013. - 521 c. Гавриков М.М. Теоретические основы разработки и реализации языков программирования: Учебное пособие / М.М. Гавриков, А.Н. Иванченко, Д.В. Гринченков. — М.: КноРус, 2015. — 184 c. Головин И.Г. Языки и методы программирования: Учебник для студентов учреждений высшего профессионального образования / И.Г. Головин, И.А. Волкова. — М.: ИЦ Академия, 2012. — 304 c. Дронов В. PHP, MySQL и Dreamweaver. Разработка интерактивных Web-сайтов; БХВ-Петербург - М., 2017. - 480 c. Зыков С.В. Основы современного программирования: Учебное пособие для вузов / С.В. Зыков. - М.: ГЛТ , 2014. - 444 c. Кауфман В.Ш. Языки программирования. Концепции и принципы / В.Ш. Кауфман. — М.: ДМК, 2014. — 464 c. Кундиус В.А. Теоретические основы разработки и реализации языков программирования / В.А. Кундиус. - М.: КноРус, 2013. - 184 c. Лутц М. Изучаем Python, 4-е издание. – Пер. с англ. – СПб.: Символ-Плюс, 2015. – 1280 с. Семакин И.Г. Основы алгоритмизации и программирования. Практикум: Учебное пос. для студ. учреждений сред. проф. образования / И.Г. Семакин, А.П. Шестаков . - М.: ИЦ Академия, 2016. - 144 c. Хэл Фултон. Программирование на языке Ruby. — 2-е изд. — М.: ДМК Пресс, 2017. — С. 21. Черпаков И.В. Основы программирования: Учебник и практикум для СПО / И.В. Черпаков. - Люберцы: Юрайт, 2016. - 219 c. McALLISTER N. InfoWorld. «10 языков программирования, которые могут перевернуть мир IT» // Компьютерные вести [Электронный ресурс]. URL: http://www.kv.by/content/325498-10- yazykovprogrammirovaniya-kotorye-mogut-perevernut-mir-it (дата обращения: 11.07.2018) Симакова В.Е., Бедняк С.Г. Новые информационные технологии. Виртуализация // Научное сообщество студентов XXI столетия. ТЕХНИЧЕСКИЕ НАУКИ: сб. ст. по мат. VII междунар. студ. науч.-практ. конф. № 7. URL: http://sibac.info/archive/technic/7.pdf (дата обращения: 15.07.2018) Koenig J., Rustan K., Leino M. Programming Language Features for Refinement. EPTCS 209. – 2016. – pp. 87-106. ПРИЛОЖЕНИЕ |