В этом месяце Java 30 лет, но продолжает процветать, и, по словам Брайана Фокса, основателя Sonatype и стюарда Maven Central, величайшим наследием языка может быть его роль в демократизации разработки программного обеспечения с открытым исходным кодом.
«Это заставляет меня чувствовать себя старым»,-со смехом признается Фокс, когда его спрашивают о трехлетнем этапе Явы. Но в этом случае возраст идет с мудростью и впечатляющим послужным списком, который продолжает расти.
Катализатор с открытым исходным кодом
По словам Фокса, до того, как Java появилась в 1995 году, включить открытый код в проекты было затруднено. Разработчики столкнулись с разочаровывающим ритуалом охоты на файлы C, копировании и вставки кода, а также провели недели, просто пытаясь сделать что -нибудь компиляцию, отметил он. «Всегда казалось, что это было больше работы, чем просто писать код самостоятельно», — сказал Фокс новому стеку.
Тем не менее, Java изменила все. Внедрение файлов Java Archive (JAR) создало легко потребляемые модули, в то время как прибытие Maven позволило управлять зависимостью возможным. Внезапно разработчики могли понимать и управлять сложной паутиной зависимостей, которые поставлялись с любой значительной библиотекой — те «15 или 100 других вещей», необходимых для выполнения одной работы файла JAR. Maven — это инструмент для управления проектами и автоматизации сборки, используемый в основном для Java Projects.
«Я отчетливо помню, когда впервые я действительно смог создать проект с открытым исходным кодом», — сказал Фокс. «Вы могли бы посмотреть на код и сказать:« Я хочу изменить его таким образом », но вы можете потратить неделю, просто пытаясь выяснить, как что -то построить».
Воздействие было преобразующим. Снив барьеры для входа, Java позволила поколению разработчиков внести свой вклад в проекты с открытым исходным кодом. По словам Фокса, модульность и портативность языка в сочетании со стандартизированным подходом Maven к зависимостям создали план, который повлияет на другие последующие языки программирования.
Шаблон для современного развития
Фокс сказал, что если вы посмотрите на экосистему какого -либо современного языка программирования сегодня, вы увидите некоторые из Java’s DNA: NPM для JavaScript, PIP для Python, Nuget для .net и Gem для Ruby, заимствованных из концепций Java и Maven Pioneered, сказал он.
«Языки, которые пришли после того, как он в основном скопировал все эти концепции», — сказал он. «Вы могли видеть, что была своего рода точка перегиба, которая, как мне кажется, пришла от Java и Maven с точки зрения влияния на языки, которые пришли».
Но одно заметное исключение доказывает правило, сказал Фокс. По словам Фокса, когда Go запустил без менеджера пакетов по умолчанию, он боролся с 10-15 конкурирующих стандартами. «Я думаю, что на самом деле замедлило усыновление», — отметил он. «Только когда они действительно сосредоточились на одном, четко определенном менеджере пакетов для этой экосистемы, она стала более доступной».
Все еще растут после всех этих лет
Несмотря на частые прогнозы кончины Java, цифры рассказывают другую историю. По словам Фокса, Maven Central, которой работает Sonatype, проводит более 671 000 проектов с открытым исходным кодом — и это число растет на 7% годового года. Еще более впечатляющие, загрузки этих проектов выросли на 36% только в прошлом году. По словам Фокса, Maven Central является крупнейшим в мире хранилищем компонентов Java с открытым исходным кодом.
«Мы говорим о том, что Java стала старой и больше не крутой, и все хотят сделать что -то другое», — сказал Фокс. «Но реальность такова, что объем программного обеспечения, все еще разрабатывающего на Java, продолжает расти. Мы еще не видели вершину кривой».
Этот устойчивый рост отличает Java от специализированных языков, которые появились в последние годы. Python доминирует в Data Science и AI, JavaScript Rules Development и GO обнаружил свою нишу в облачных развертываниях. Но никто не достиг ширины Java как языка общего назначения, объяснил Фокс.
Преимущество зрелости
Одним из серьезных нарушений произошло переход от Java 8 к более новым версиям, в частности, введение модульной системы. По словам Фокса, это создало препятствия для усыновления, напоминающие болезненный релиз Python, чтобы выпустить 3 миграции, хотя и не такую сильную. Многие организации по -прежнему застряли на Java 8, но Фокс отмечает, что, как только они проясняют это препятствие, оставаться током становится намного проще.
Безопасность через стабильность
У зрелой экосистемы Java есть еще одно преимущество: безопасность. Фокс указывает, что в Maven Central за эти годы наблюдается лишь несколько мощных компонентов, по сравнению с сотнями тысяч в репозиториях NPM и Python. Это не случайно — это результат установленных стандартов и тщательного курирования, которые развивались на протяжении десятилетий.
«Частично это происходит от некоторых стандартов, которые были установлены не только от Java, но и от Maven, а также сонатипа, управляющего центральным репо», — объяснил Фокс. Его компания потратила более 20 лет, помогая организациям в поисках открытого исходного кода ответственно, избегая лицензионных нарушений и уязвимостей безопасности.
Что будет дальше?
Итак, что в конечном итоге заменит Java? Фокс освежающе честен: «Что -то, очевидно, в какой -то момент, но я ждал этого очень долго».
Он изо всех сил пытался определить четкого преемника среди нынешних языков. По словам Фокса, GO казался многообещающим десять лет назад, но он поселился в своей облачной нише. По его словам, следующим крупным сдвигом может быть не новый читаемый на человеке язык.
«Я думаю, что это, вероятно, переворот монеты, что следующий язык предназначен только для ботов ИИ, а не для людей, чтобы потреблять», — предполагает Фокс. «Может быть, то, что никто из нас не может прочитать, потому что это Gobbledygook, сгенерированный AI».
Бабушка современных языков
Оглядываясь назад на три десятилетия Java, Фокс видит это как переломный момент в истории программирования. Языки перед Java — C, C ++, Fortran, ADA — были принципиально различны в своем подходе к повторному использованию и управлению зависимостями. Java установила шаблоны, которые стали стандартными практически для каждого последующего языка.
«Я чувствую, что Java — это своего рода бабушка и дедушка всех современных языков», — размышляет он.
Когда Java входит в свое четвертое десятилетие, она сталкивается с теми же вопросами, которые следовали за ней годами: слишком бывает слишком старая? Заменит ли это что -то новое и блестящее? Но если последние 30 лет научили нас чему -то, то это то, что ставки против оставшейся власти Явы — рискованное предложение.
Trending Stories youtube.com/thenewstack Tech движется быстро, не пропустите эпизод. Подпишитесь на наш канал YouTube, чтобы транслировать все наши подкасты, интервью, демонстрации и многое другое. Группа подпишитесь с эскизом. Дэррил К. Тафт охватывает DevOps, инструменты разработки программного обеспечения и проблемы, связанные с разработчиком из своего офиса в районе Балтимора. Он имеет более чем 25 -летний опыт работы в бизнесе и всегда ищет следующий совок. Он работал … читайте больше от Дэррила К. Тафта