Встреча с Олегом Хусаеновым: «Почему кризис не повод ставить бизнес на паузу». Как туда попасть? 👨🏻‍💻
Support us

13 оупен-сорс проектов, используемых в массовой коммерческой разработке

Оставить комментарий
13 оупен-сорс проектов, используемых в массовой коммерческой разработке
Если в open source модели и есть участок процветания и востребованности на поле применения, на котором она показывает себя наиболее перспективной, так это средства разработки. Предсказание прославленным Линусом Торвальдом мирового господства open source программ на рабочих столах всех подряд, от клерков до менеджеров, судя по всему, никогда не сбудется, но приложения с открытым кодом уже присутствуют на компьютерах практически всех программистов. Даже в самых глухих уголках проприетарного мира собственничества, средства разработки с открытым кодом обнаруживаются, причём исполняющими ведущую роль. Причина подобной популярности очевидна - open source лицензии позволяют пользователям пересматривать, исправлять и добавлять функциональности закодированных в них приложениях. Парикмахеру или полицейскому возможность править код и близко не нужна, но, а уж программисты точно знают, как и для чего можно покопаться в коде. В результате получаем благодатную почву из открытого кода для реализации своих идей энтузиастами, у которых всегда руки чешутся что-то подправить и оптимизировать. Открытый код позволяет программистам расшарить свои собственные наработки и добиваться того, чего они хотят наиболее эффективным путём. Ниже предлагается очень ненаучный обзор средств разработки с открытым кодом, заслуживающих внимания. Некоторые из них совсем новые проекты, некоторые уже прекрасно многим известные, но при этом не прекращающие удивлять, видоизменяться и преображаться, следуя последним трендам в разработке. В этом вся прелесть open source. Подстрой, переделай и перекомпилируй – и ваш старый тул обретает вторую молодость.

Rhomobile Rhodes

rhoRuby может и является втором по популярности я зыком на Github, но толку вам от него, если вы хотите разработать приложение под iPhone будет немного, это вотчина Objective-C. Rhomobile Rhodes – это open source платформа для сборки Ruby вебсайтов и превращения их в мобильное приложение для того же iPhone. Вы можете даже использовать jQuery Mobile для создания желаемого интерфейса. В целом это как разработка веб-приложения, только в голове держать необходимо, что у юзера большие толстые пальцы, а не куда более точный курсор.

Git

GitПока многие девелоперы продолжают использовать CVS и Subversion, достаточно заметное количество проектов мигрировало на Git, систему управления версиями, хорошо подходящую для децентрализованных команд, у которых может не существовать доминантного центрального репозитория. Что делает Git – так это превращает практически каждую копию в самостоятельный центральный репозиторий и предлагает продвинутые инструменты для результирующего слияния всех этих репозиториев. С SVN или CVS пользователи чек-аутят только копии, подчинённые версии кода, которые потом необходимо время от времени обратно присоединять к основной части. Пользователи же Git'a создают свои собственные репозитории со всеми правами и привилегиями главного репозитория. С помощью Git'a вы сможете создать четыре или пять репозиториев и затем слить их воедино. Выражаясь образно, Git – это демократия, в то время как CVS – это своеобразный феодализм. Конечно, не все приветствуют ту степень гибкости, которую даёт Git. Некоторые считают, что подобная свобода порождает только путаницу и неразбериху. Их оппоненты указывают на то, что вам совсем не обязательно задействовать мощь Git'a на полную катушку, он создан в первую очередь для того случая, когда проект требует больше чем один единственный центру управления. Некоторые девелоперы создают Repo для того, чтобы обходить сложность Git. Тул для проведения изменений через несколько репозиториев, в каком то смысле представляющий собой вариант перерождения центрального управления в экосистеме Git.

Gerrit

gerritНабор популярности практики code review в больших компаниях по разработке ПО, мог привести только к одному: созданию тула для автоматизации данного процесса. Вот он – Gerrit. Предназначенный для тесной работы с Git и Repo, Gerrit позволяет валидаторам кода отправлять комментарии в центральный Git репозиторий в онлайн режиме, создавая тем самым обширный мета-уровень обсуждения непосредственно над самим кодом. В старые добрые времена дискуссии разворачивались в комментариях в заголовке, но сейчас разделяя комментарии на соответствующие уровни обсуждения, Gerrit делает его куда более осмысленным и удобным, не заставляя заодно будущих читателей прорываться через дебри дискуссии, перед тем как добраться до самого кода

Hadoop

hadoop-logoМощь Hadoop в том, что он сделал общедоступным фреймворк, использовавшийся в машине по распознавании речи и поиску ответов IBM DeepQA/Watson, которая недавно победила в игру Jeopardy (в русскоязычном ТВ-аналоге "Своя Игра") двух лучших представителей человеческой расы (Вассерман негодует). Данный фреймворк предназначался для управления дюжинами алгоритмов, параллельно ищущих ответы на вопросы викторины. Hadoop – набор инструментов для разделения работы на части, которые могут быть вычислены на отдельных серверах, а впоследствии объединены в финальный продукт. Google был пионером в создании подобных систем, когда ему понадобилось каким-то образом управлять армией серверов, прочёсывающих сеть, а сейчас Hadoop стал основным фреймворком, который используется для задач данного плана раз за разом. Оригинальному ядру Hadoop уже несколько лет, но наибольший интерес вызывают некоторые последующие решения, которые создавались с использованием Hadoop кода для решения каких-то конкретных проблема. Mahout, к примеру, –масштабируемый machine-learning фреймворк, которые анализирует большие объёмы данных в поиске каких-то совпадений, моделей поведения или шаблонов ситуаций. Hive предлагает хранилище данных, к которому можно обращаться с помощью параллельного поиска используя HiveQL. Такое решение набирает популярность при работе с большим количеством веблогов.

jQuery

jQueryjQuery – далеко не новый инструмент для людей, занимающихся разработкой динамичных вебстраничек с JavaScript управлением DOM элементами. Многие вебдевелоперы начинали изучать jQuery раньше, чем пытались понять чистый JavaScript, поскольку это куда проще и эффективнее. Одной из причин подобного успеха jQuery является уровень плагинов, созданных многочисленной армией его поклонников. Эта коллекция плагинов представляет собой быстроизменяющуюся экосистему, полную креативных и классных инструментов для развития и улучшения вебсайтов. Их слишком много, чтобы даже начинать перечислять. Эти плагины, как правило, легко увязывать и сочетать друг с другом, а также составлять в единый дисплей. Существует даже некоторые ещё большие коллекции, призванные гармонизировать работу виджетов. jQuery Mobile, к примеру, предназначен для разработки приложений, которые успешно работают на маленьких экранах смартфонов.

Emacs LISP

Emacs-logoВсякий раз, когда я возвращаюсь к emacs, я восхищаюсь тем, насколько же он прекрасен, даже через двадцать с лишним лет после того, как первый раз имел с ним дело. Даже сейчас проще записывать макросы, переназначать клавиши и кастомизировать набор инструментов в нём, чем во многих, куда более больших и красивых средствах разработки. Вообще это, наверное, не очень честно называть emacs "новым" или "набирающим популярность", но платформа в любом случае не пропадает с радаров. Git ставит ''emacs lisp" на тринадцатую строчку в популярности языков по количеству проектов и интереса разработчиков. К примеру, С# при этом всего ступенькой выше. Большинство кода на Emacs LISP написано программистами и только для программистов. Один проект Rinari, например, превращает emacs в Ruby IDE. Другой, MozRepl, позволяет пользователям Mozilla поковыряться во внутренностях Firefox, используя emacs.

Eclipse и Eclipse Market Place

eclipseСложно писать о средствах разработки, не упоминая Eclipse. В то время, как его IDE может имтак пощеголять своей основательностью, плагины продолжают придавать ему новые импульсы и направления развития. Хотя бы взять тот факт, что Eclipse плагины существуют практически для каждого значимого языка разработки. PHP, Ruby, Python и С – все чувствуют себя комфортно в окружении этого IDE, благодаря развитой экосистеме плагинов. Также важны, как и плагины, и их продвинутые среды, поддерживающие их, многие из которых вполне себе open source. Eclipse Marketplace – один из таких репозиториев, помогающий пользователю найти нужные им инструменты. Он оснащён и "социальным уровнем", показывающим наглядно, кому и как нравится какой-то конкретный плагин, при этом также предлагает и похожее или конкурирующее решение, расширяя тем самым поиск инструмента за пределы стандартных "наиболее популярных" и "самых скачиваемых".

Firebug

firebug-logoБольшинство людей рассматривает браузер как механизм обновления статусов в Facebook и штуку для поиска маршрутов в Google Maps. Программисты, при этом, теперь всё чаще имеют возможность пользоваться инструментами разработками, встроенными прямо в браузер, и плагин Firefox'a Firebug здесь в первых шеренгах. Firebug оказался настолько благодатной штукой в плане развития, что к нему появились в свою очередь плагины, расширяющие его возможности порой в довольно неожиданном направлении. FirePython представляет собой отладчик для веб-приложений, разработанных на Python, причём в браузере непосредственно осуществляется только вывод результатов логгирования кода, а вторая основная часть плагина работает на сервере. Благодаря в какой-то мере популярности Firebug среди разработчиков, все основные браузеры сейчас могут выводить подробную информацию об изображениях, структурированный код и еще много чего, что обычно остаётся скрытым от пользователя – подход, который станет еще более популярным, так как всё больше ПО пишется, заточенного под использование во всё более быстрых и надёжных браузерах.

Препроцессоры

Многие программисты часто говорят: "Мне нравятся библиотеки, мне нравится распространенность и надёжность X, но я не выношу его синтаксис". Вот почему сейчас получили такое распространение препроцессоры, которые модифицируют код перед тем, как в дело вступает компайлер. Они позволяют вам программировать на языке X, в то время как в реальности вы пишите несколько другой код, ведь всё, что вы напишите, всё равно будет конвертировано в чистый язык X перед компиляцией. CoffeeScript выглядит как прекомпайлер для JavaScript, но в реальности это полный компилятор, созданный как все компиляторы. Его автор говорит: "За всеми этими скобками и точками с запятыми у JavaScript всегда скрывалось объектная модель. CoffeeScript – это попытка показать все лучшие стороны JavaScript в простом и понятном виде". В сущности, это делает разработку под него похожим на программирование на Python – пробел делает всю работу за фигурные скобки и некоторые другие знаки препинания.

Инструменты управления сборками

За последние несколько лет инструменты разработки проектов на Java проэволюционировали от чего-то, запущенного в одиночку на рабочем столе, к штукам, запускаемым на сервере каждые несколько секунд, координирующих работу команды программистов. Сервер постоянно мониторит дерево кода, выполняет Ant или Maven скрипт каждый раз, когда появляется новый код. Компиляция и результаты тестов потом выводятся сразу для всех программистов. Симпатичные панельки, выводящие баги и их фиксинг в режиме реального времени, стали привлекать внимание всех и вся. Богатство набирающих популярность и распространённость open source проектов в этой сфере служит признаком того, что программисты пока ещё не нашли оптимальный набор фич. Cruise Control – оригинальный open source тул, который хорошо интегрируется с большинством репозиториев и базами данных багов. Apache Continuum хорошо интегрирован с Maven и пользователи Continuum говорят "все, что вам нужно сделать - это указать pom.xml в репозитории". Другой популярный проект, известный ранее как Hudson, более открыт для написания скриптов для Ant и некоторых других. В конце 2010 года команда, работавшая над Hudson, разделилась на две части, и первая, возглавляемая разработчиками, работающими на Oracle, сохранила имя Hudson, в то время как остальные участники проекта создали новую open source систему управления сборкой названную Jenkins. Многие пользователи отмечают, что постоянные билд и его последующее разворачивание, повышает гармоничность отношений в команде и препятствует программистов от ухода в себя и отдаления от команды, а возвращение последних в дружный тим потом занимает, к слову, много времени. Постоянный ребилд программы и использование юнит тестов делает команду более взаимнооткрытой и сплочённой.

OpenVidia

GPU больше всего известны за обработку немыслимого количества треугольников из неведомых миров, в которых люди всегда стреляют друг в друга. Но такое представление быстро меняется, и как производители видеокарт, так и программисты осознают, что чипы видеокарт – мощные параллельные компьютеры способны выполнять любой код, а не только игровой. Учёные везде учатся понимать тот факт, что крутая графическая карта для игры в GTA очередной вегас-элэй также может проводить вычисления, способные, к примеру, помогать лечению людей. Многие научные проблемы могут быть представлены в виде большого количества событий происходящих одновременно – отличная задача для мощного компьютера, выполняющего параллельные вычисления, сиречь видеокарты. OpenVidia репозиторий полон проектов по распознаванию изображений, алгоритмов продвинутого поиска и многих других. Это прекрасная отмазка попросить босса купить дорогую видеокарту с потенциалом давать очень высокий фрэймрэйт... ммм.. я имел в виду высокий рэйт симуляций лечения рака.

NoSQL

nosql-logoNoSQL тренд начался несколько лет назад, но продолжает оставаться актуальным, так как всё больше вебсайтов осознают, что их будущее в больших объемах данных, которым не требуются все навороты и защита Oracle. Новейшие инструменты облегчают развертывание NoSQL в облаках, многие из которых в настоящее время продаются непосредственно в ИТ-отдел. Amazon SimpleDB может быть оплачен чуть ли не с точностью до байта, а многие другие команды предлагают дополнительные инструменты NoSQL как услуги. Cassandra, например, поддерживается DataStax. MongoDB вдохновила более сразу несколько хостов облаков. Инструменты продолжают размножаться, их даже уже слишком много, чтобы перечислить. Слава богу, кто-то поддерживает список всех баз данных NoSQL.

Системы управления контентом

Раньше был код, который разрабатывался, и код, который запускался. Даже сейчас большинство программистов набирают код в текстовых редакторах и нажимают кнопку запустить компилирование и исполнение кода. Это постепенно меняется, поскольку пользователи получают все больше и больше контроля для изменения программного обеспечения, как он работает. Сайты на друпале, например, часто смешивают традиционные модули с дополнительным кодом, вставленным для принятия решения о выделении данных и их форматировании. Хотя в большинстве случае это происходит на бэк-энде, Drupal может быть так сконфигурирован, чтобы позволять пользователям вставлять PHP код в отдельные поля данных. В результате программисты больше не жмут "скомпилировать и запустить" вместо этого они апдейтят часть кода на лету. Обычно они достаточно умны для того, чтобы практиковать подобное на тестовой версии сайта, но временами они даже апдейтят реальный код на лету, поскольку это не так сложно. Что же может пойти не так? Это логическое завершение концепции open source, когда всё может быть переделано на лету.
Перевод с www.infoworld.com
Олег Хусаенов в DZ CLUB в эту субботу

Успеть купить билет

Читайте также
Обработка больших данных: первые шаги в понимании Hadoop MapReduce и Spark
Обработка больших данных: первые шаги в понимании Hadoop MapReduce и Spark
Обработка больших данных: первые шаги в понимании Hadoop MapReduce и Spark
Big Data как концепт довольно понятна, но из-за того, что она включает в себя множество процессов, сложно сказать, с чего именно нужно начать изучение. Как хранятся файлы? Или как получать эти файлы? А может, сразу — как анализировать данные? О своём опыте работы с Big Data и почему Spark лучше, чем Hadoop MapReduce в обработке данных, рассказывает Эмилия Межекова, ETL-developer в Luxoft.
В России хотят создать собственный фонд для open source софта
В России хотят создать собственный фонд для open source софта
В России хотят создать собственный фонд для open source софта
3 комментария
GitHub Pages опять был недоступен из Беларуси, как в августе. Что это было?
GitHub Pages опять был недоступен из Беларуси, как в августе. Что это было?
GitHub Pages опять был недоступен из Беларуси, как в августе. Что это было?
Состоялся первый публичный релиз децентрализованной платформы совместной разработки Radicle
Состоялся первый публичный релиз децентрализованной платформы совместной разработки Radicle
Состоялся первый публичный релиз децентрализованной платформы совместной разработки Radicle

Хотите сообщить важную новость? Пишите в Telegram-бот

Главные события и полезные ссылки в нашем Telegram-канале

Обсуждение
Комментируйте без ограничений

Релоцировались? Теперь вы можете комментировать без верификации аккаунта.

Комментариев пока нет.