В статье рассмотрен вопрос использования облачных технологий будущими IT-специалистами. Сформулировано понятие облачных IDE, выделены их преимущества и недостатки. Проведен сравнительный анализ существующих на рынке облачных IDE программных решений, сделан вывод о перспективах их использования в учебном процессе, а также профессиональной деятельности программистов.
Ключевые слова: IDE, облачные IDE, облачные технологии, облачные сервисы, облако.
Широкомасштабное внедрение информационных и коммуникационных технологий (ИКТ) в различные сферы деятельности человека определяет стремительное развитие процесса информатизации как одну из основных тенденций современного этапа образования.
В связи с чем, особого внимания заслуживает вопрос подготовки современного поколения специалистов, рожденных в последнее десятилетие XX века, формирование ИКТ-компетентности которых происходит с раннего детства. Использование ИКТ с самого раннего детства позволяет молодому поколению, с одной стороны, стать более мобильным и коммуникабельным, с другой — определяет абсолютно новый образ мышления нынешних студентов. Широкомасштабное распространение и всеобщая доступность интернет-технологий меняют коммуникационные возможности в молодежной среде за счет активного использования мобильных устройств (телефонов, смартфонов, планшетов) для поиска информации и общения.
Таким образом, современное поколение студентов отличается от предыдущего когнитивным стиля (особенностями познавательных процессов), что определяет необходимость использования современных аппаратных средств и новейшего программного обеспечения не только в качестве средств и технологий обучения, но и инструмента стимулирования познавательной деятельности нынешних студентов. В данном контексте более детального рассмотрения заслуживает вопрос подготовки специалистов в области информационных технологий (ИТ), поскольку они в большей степени ориентированы на использование современных средств ИКТ в будущей профессиональной деятельности [1].
На сегодняшний день одной из ключевых тенденций ИТ-отрасли выступают облачные технологии, реализация потенциала которых возможна за счет высокого уровня развития ИКТ, повсеместного распространения широкополосного и мобильного интернета, наличием не только персональных компьютеров, но и мобильных устройств у подавляющего большинства обучающихся. Это стало возможным лишь в последнее десятилетие XX века (в следствие появления высокотехнологичных интернет-технологий и мейнфреймов): вплоть до 1999 года пропускная способность интернета и слабая аппаратная мощность компьютеров в значительной степени сдерживали развитие информационных технологий.
Под облачными технологиями будем понимать отрасль вычислительных технологий, обеспечивающих по требованию пользователя удаленный доступ к целому набору вычислительных ресурсов (приложений, сервисов, хранилищ данных), расположенных на серверах в сети Интернет. При этом доступ к ресурсам предоставляется пользователям посредством облачных сервисов — бесплатных или условно бесплатных облачных приложений, программные и аппаратные требования которых не предполагают наличия у клиентов высокопроизводительных и ресурсопотребляемых компьютеров [2].
Первым шагом перехода к облачной парадигме стала разработка «cloudweb-service» компанией Amazon в 2002 году. Веб-сервис позволял хранить различную информацию, и проводить многочисленные вычисления, а уже спустя 5 лет Amazon запускает новый сервис, под названием ElasticComputeCloud, который позволял запускать свои собственные приложения уже непосредственно в облаке.
Вышесказанное определило тенденции не только к переносу в облако различных пользовательских данных (документов, фотографий и др.), но и целых проектов — благодаря появлению на IT-рынке облачных IDE. Экспоненциально растёт спрос на специалистов, которые работают в среде облачных IDE, в следствии того, что эти технологии позволяют использовать большие вычислительные мощности при разработке проектов, чем пользовательские компьютеры. Очень важно знакомить будущих IT-специалистов с облачными технологиями начиная с первых этапов их обучения. Необходимость получения профессиональных знаний, умений и навыков еще в процессе обучения обусловлена современными тенденциями и спецификой сферы IT: максимальное упрощение процесса разработки и повышение качества создаваемых проектов. Для будущих IT-специалистов облачные технологии можно рассматривать и как средство обучения, и как предмет изучения, в рамках которого может быть рассмотрен ряд современных технологий, таких как git, svn, и др. На сегодняшний день можно констатировать тенденцию к увеличению спроса на облачные IDE (IntegratedDevelopmentEnvironment) — интегрированные среды разработки, комплекс программных средств, который используют для разработки программного обеспечения, включающие в себя текстовый редактор, компилятор/интерпретатор, отладчик и, в зависимости от используемой IDE, ещё множество полезных инструментов для разработчика [4]. Переход к активному использованию IDE обусловлен следующими факторами:
− гибкое распределение вычислительных мощностей облачных IDE;
− облачные технологии позиционируют себя как безграничное хранилище данных;
− эффективное использование вычислительных ресурсов многопроцессорных систем.
Следует отметить, что облачные IDE приходят на смену устоявшихся паттернов. В следствии того, что для создания и поддержки приложений, с помощью облачных IDE, необходим лишь браузер — это в корне меняет весь процесс разработки приложений. Программистам больше не нужны специальные программы и оборудование для создания полноценных проектов. Поскольку большая часть нагрузки ложится на браузер, то он выступает главным потребителем ресурсов. Разработчик, со своей стороны, обеспечивает ресурсами лишь браузер, а с другой, остальную нагрузку на себя берёт сервер, который занимается поддержкой облачной IDE. В соответствии с чем, программистам больше не нужны высокопроизводительные компьютеры для работы над крупными проектами [3].
Отталкиваясь от вышеописанных фактов, выделим положительные свойства облачных IDE:
− безопасность исходного кода: компьютер со стороны обычного пользователя менее защищён, чем облачные сервисы;
− отсутствие в потребности мощной системы: браузер — мощная среда разработки, все затраты на производительность ложатся на мейнфреймы, которые обслуживают облачные сервисы;
− удалённый доступ к своему проекту, или проектам, что позволяет любому разработчику получить необходимую информацию и включиться в работу в любом месте и с различных устройств;
− независимость выбора ОС: отсутствие необходимость специфической настройки инструментов разработки.
Облачная IDE представляет собой веб-интегрированную платформу разработки, находящуюся в облаке, где все вычислительные процессы происходят на сервере. Сегодня большая часть разработки приложений ложится на web-ресурсы. Разработчики со всего мира стараются обеспечить других программистов максимальным комфортом, создав комплекс программных средств, который содержит в себе возможность написания на различных языках программирования программного обеспечения находясь в облаке. IDE может использоваться как для одного языка программирования, так и может совмещать в себе разные языки, например, как это делает MicrosoftVisualStudio — в стандартном виде, она может использоваться для C++/C#/C.
Облачные IDE нужны будущим программистам как средство взаимодействия онлайн — то есть коллаборативной деятельности в сети, для производства комплексного программного продукта необходима полипрофессиональная команда, состоящая и работников с различной профессиональной специализацией, которые сопровождают продукт на разных этапах его жизненного цикла. В работе рассматривается полипрофессиональное взаимодействие в команде разработчиков программного продукта как самостоятельный компонент деятельности, представляющий процесс, направленный на решение профессиональных задач по созданию и продвижению программного продукта группой специалистов различных профессий, объединенных общей целью. Вопросы коллективной разработки ПО изучены преимущественно в западноевропейском проф. образовании [7].
На сегодняшний день на рынке облачных IDE существует ряд программных продуктов, позволяющих решать широкий спектр задач в области программирования (Cloud9, CodeEnvy, Codeanywhere, Erbix, Compilr).
− Cloud9 — комплект инструментов web-разработчика. Одна из лучших облачных IDE, которая нацелена в первую очередь для node.js-разработчика. Создание и интеграция существующих проектов в Cloud9 абсолютно прозрачна. Интеграция проекта осуществляется за счёт протокола FTP и терминала SSH, а благодаря тому, что Cloud9 позволяет в полной мере пользоваться командной строкой и за счёт того, что он использует систему контроля версий — пользоваться Git. Ключевая особенность проекта заключается в том, что разработчики постоянно обновляют Cloud9 — сервис постоянно развивается, исправляются ошибки, переписываются уже существующие функции для их большей производительности.
Недостатком является обильное количество AJAX (асинхронный JavaScript и XML), который позволяет локально обновлять страницу и обеспечивающий другие функции, интерфейс в следствии этого немного подтормаживает. Но так как работа по улучшению C9 ведётся постоянно, то в ближайшем будущем эта проблема будет тоже решена.
− Codenvy — это среда разработки на базе контейнеров. Дизайн направлен в сторону настольных IDE, поэтому переходя к облачным решениям в среде Codenvy какого-либо дискомфорта разработчик не замечает.
Ключевые особенности CodeEnvy:
− Библиотека с более чем 35 уже настроенных сред
− Взаимосвязь между разработчиками — гарантия согласованности
− Возможность создания своего облака.
С технической точки реализации всё выполнено качественно. Упрощённый интерфейс позволяет свести задержки работы к минимуму и в связи с этим среда ведёт себя отзывчиво.
− ShiftEdit. Представляет собой больше облачный редактор, нежели полноценную облачную IDE. В ShiftEdit доступно 28 языков, в том числе JSON, SASS, LESS, SVG. Возможность работы с протоколами FTP, SFTP, сервисами Dropbox, GoogleDrive. Недостаток — отсутствие системы контроля версий, частичная поддержка SVN, возможность написания только небольших проектов.
− Codeanywhere. Целевая аудитория сервиса — разработчики, которые специализируются на создании веб-приложений с помощью таких языков программирования, как ECMASCRIPT, PHP, HTML, CSS. CAW предоставляет возможность тестирования приложений, взаимодействие с системой контроля версий git, наличие СУБД MySQL. Упрощённый дизайн и работа с любого устройства с доступом в интернет.
− Erbix. Пользуется популярностью среди JavaScript разработчиков. У этого сервиса присутствует возможность публикации созданных приложений в собственной AppStore, поддержка СУБД PostgreSQL. Поддержка модулей CommonJS и RingoJS.
Недостатком является устаревший интерфейс, который не соответствует сегодняшним стандартам в области минимализма и простоты.
− Compilr. Из положительных качеств Compilr можно выделить упрощённый и удобный пользовательский интерфейс, невысокая цена на пользование сервисом, большое число поддерживаемых языков программирования.
Минусами же является отсутствие системы контроля версий, отладчика, возможность написания больших проектов. Compilr выступает больше в роли образовательного сервиса.
В рамках проводимого исследования был проведен анализ облачных IDE (Cloud9, ShiftEdit, Codeanywhere, Erbix, Compilr) по ряду критериев: условия использования, стоимость платной подписки, поддерживаемые языки программирования, система контроля версий (таблица 1) [5].
Таблица 1
Сравнение существующих облачных IDE
Cloud9 |
ShiftEdit |
Codeanywhere |
Erbix |
Compilr |
|
Условия использования |
Free (один приватный репозиторий) / Share |
Free/Share |
Free/Share |
Share/Free |
Free/Share |
Стоимость платной подписки |
12$ в месяц |
5.99$ в месяц/55.99$ в год |
5$ в месяц/50$ в год |
14.95–69.95$ в месяц |
20–40$ в месяц |
Поддерживаемые языки программирования |
ECMASCRIPT, PHP, Python, Ruby, HTML, CSS |
ECMASCRIPT, PHP, Python, C++/C#, HTML, CSS, Go, Perl, Java, Scala |
ECMASCRIPT, CSS, HTML, XML, PHP |
JavaScript |
C, C#, Fortran, PHP, Ruby, Python, VB, Objective C |
Система Контроля версий |
Git |
- |
Git |
Git |
- |
Анализ таблицы показал, что в данный момент на рынке предоставлен большой перечень веб-сервисов. В таблице можно увидеть, что примерно 70 % продуктов имеют систему контроля версий git. Сервисы могут выступать в качестве полноценных платформ для создания больших проектов, идеальным примером служат сервисы (Cloud9, ShiftEdit), либо они могут быть заточены только для одного языка программирования, как это делает сервис Erbix, его задача заключается в обеспечении полноценной работы для JavaScript-программистов. Проведя анализ цен между настольными (PHPStorm, WebStorm) [6] и облачными IDE, указанных в таблице 1. — можно сказать, что цена на некоторые настольные сервисы, в итоговой сумме, не превышает облачные — отсюда можно сделать вывод о выгоде пользования облачными сервисами. В среднем цена варьируется в диапазоне 8$ в месяц и в районе 39$ в год. (таблица 1.) — на облачные IDE, а настольные от 99$ до 199$ за пользовательскую и коммерческую лицензии — исходя уже из этих данных, разработчик может решить, что именно ему подходит в ежедневной трудовой деятельности.
Анализ положительных и отрицательных свойств облачных IDE, рассмотрение современных облачных сервисов и их сравнение по критериям показало, что на данный момент они ещё не достигли уровня производительности настольных IDE. Но уже сейчас могут решать такие задачи, как: независимость условий труда, освобождение от необходимости обладать высокопроизводительными компьютерами — любое, даже не современное устройство, может выступать в качестве создателя качественных проектов, возможность работы людей с ограниченными физическими возможностями — одна из важнейших задач, которую позволяет решать облачные технологии.
Литература:
- Ступина М. В. Смешанное обучение в подготовке студентов ИТ-направленности // В мире научных открытий. — 2015. — № 7. — С. 67.
- Ступина М. В. Об использовании облачных технологий работы с учебным контентом // Сборник Материалов международной научно-практической конференции «Информатизация образования — 2015». — Казань: АСО, 2015. — С. 448.
- Облачные IDE // iantonov.me URL: http://iantonov.me/page/obzor-oblachnyh-ide (дата обращения: 03.04.2016)
- Облачные сервисы // ru.wikipedia.org URL: http:// ru.wikipedia.org (дата обращения: 04.04.2016)
- Облачные IDE // xakep.ru URL: http:// xakep.ru/2014/10/14/dropbox-accounts/ (дата обращения: 02.04.2016)
- Цена настольных IDE // http://rmcreative.ru URL: http://rmcreative.ru/blog/post/tseny-na-phpstorm (дата обращения: 24.04.2016).
- Папуловская Н. В. Формирование социально-профессиональных компетенций для полипрофессионального взаимодействия у будущих разработчиков продуктов: автореф. дис. канд. пед. наук: 13.00.08. — Екатеринбург, 2012. — 28 с.