Comments 64
К 11-й Java Oracle отдал почти всё, что было в OracleJDK в OpenJDK. Т.е. наоборот, то, что раньше было платным — теперь бесплатно и открыто.
Публикация-«баян», так как многое из написанного здесь я уже рассказывал на хабре в «Жизнь с Java SE 8 и Java SE 11 по $25 за процессор в месяц» еще в июле.
Кроме того, ситуация постоянно меняется. Уверен и июле Вы не ожидали таких новостей от Амазона aws.amazon.com/corretto
И ничего — Линус как-то справляется.
даже одной организацией (Oracle) становится слишком сложно по причине ускорения развития этих ЯП.
выглядит надуманным.
А позиция Гвидо мне совершенно непонятна.В качестве предположения: есть люди, которые живут профессией, и занимались бы ею даже, если бы им за это не платили. Живут, живут… а потом перестают, и начинают жить чем-то другим.
Python появился двадцать восемь лет назад. За это время интересы у человека могут измениться не то, что серьезно, а неоднократно.
И ничего — Линус как-то справляется.Да вроде бы относительно недавно были новости по поводу того, что Линус склоняется к тому, чтобы снять с себя часть полномочий (не уверен за точность формулировки).
Сейчас на рынке такого языка нет.
К тому же, не нужно искать умысел там, где все можно объяснить случайностью или человеческой глупостью.
Одноклассники, наверно тоже не просто так с C# на java переходили.
Только учитывайте, что PHP сейчас и PHP 6 лет назад — две несравнимые технологии.
Разумеется.
Навскидку (php 7):
- Однопоточное
- Не комплириуется (максимум OPCache в озу на момент исполнения)
- Изначальная архитектура: запуститься — отработать — умереть. Было тогда — остается и сейчас. Хотя сейчас и можно писать долгоживущие скрипты (демоны, RectPHP и пр.) и не протекает — все равно писать на нем подобное сомнительное удовольствие.
- Контроль типов для интерпрайза должен быть тотальным ИМХО
- Не удобно работать с математикой
pthreads.
К тому же я никогда не любил потоки, процессы удобнее.
Слышал, что там тоже не все гладко. С этим пунктном я перегнул.
Почему это минус? Если вы хотите все в один файл собрать, то есть phar.
Или просто пакет сделать.
Имелось ввиду, хотябы в байт-код собиралось, типа .pyc в питоне. А phar это немного не то.
Я бы назвал это одним из основных плюсов экосистемы.
Но если вам это мешает, то никто не заставляет вас так делать.
Я не говорю что это плохо. Мне такая модель подходит в текущих моих задачах, но для энтерпрайз каждый раз умирать, такое себе решение.
Всякие вебсокет-серверы на ратчете прекрасно работают в крупных продакшенах, проверял лично.
Честно, тут не могу что-то конкретного сказать про данное решение, работал только с SSE на ReactPHP, и то недолго.
И в джаве неудобно. Причина та же самая — нет перегрузки операторов.
С другой стороны отсутствие перегрузки позволяет сделать код более читаемым.
К сожалению синтаксис php не позволит сделать математический код более читаемым.
Видимо у нас с вами слишком разный взгляд на то, как это все должно быть.
Я думаю, что проблема php vs java в enterprise существенно шире и за пределами одних только технических характеристик.
Взять ту же экосистему. Для Java есть полный спектр решений для аудита и проверки качества кода (статический анализ и т.п.).
Обоснуйте, пожалуйста. Я вижу неоспоримый плюс: надежность повышается за счет отсутсвия утечек памяти и всяких сайд-эффектов. Как раз как любит энтерпрайз: надежность в обмен на производительность.
абсолютно нерелевантно. Можно строить надежные системы на уровне архитектуры.
Исходный код гораздо удобнее.
Тоже. Java прекрасно пакуется в jar и бинари версионируются. Деплоить сурцы прямо на сервер — такое себе удовольствие. К тому же, в проде все равно не понадобится смотреть исходный код на сервере. Хочешь правки — отдельный feature-branch и через процесс аудита кода/деплоя.
Самый близкий язык к PHP по синтаксису — это Java.
WTF!?
pthreads.
К тому же я никогда не любил потоки, процессы удобнее.
мне кажется, что сейчас об спорить тоже тухлое дело. Можно легко делать системы в несколько процессов. Все равно упремся в что-то: тот же io, или обращения к внешней БД. Здесь спасает асинхронщина, всякие future/promise. Не знаю завезли ли их в php, но это непринципиально.
В PHP все отлично с асинхронщиной.
видимо не очень, раз такие статьи получаются:
habr.com/company/mailru/blog/329258
Эта реплика будет как-то обоснована?
Вы сделали очень громкое и спорное заявление, абсолютно не обосновав его. И вообще как влияет синтаксис PHP/Java на вопрос их применимости в энтерпрайзе? Логика какая?
Однако приятно, когда экосистема помогает.
несомненно. Но я в php этого не вижу. А в java есть все необходимое. Хотя у меня возникает ощущение, что количество фреймворков для java уже зашкаливает за все мыслимые пределы.
Вы так говорите, как будто подразумеваете, что для PHP нет подобного. Конечно же есть.
Да, конечно. Очень помогает, видимо, писать надежный код. ))) У меня строгое предубеждение, что действительно серьезный и надежный код на PHP не написать в принципе. Именно из-за вещей вроде «динамическая типизация», то, что интерпретируемый, своеобразной обработки ошибок и пр. Это же насколько умный должен быть тулинг, чтобы ловить промахи программиста.
С какой целью? Можно было всякими ioncube и Zend guard, но смысла не было, поэтому такие инструменты вымерли.
Как я понял из описания это обфускаторы, я говорил про байт-код. Потому и вымерли.
Обоснуйте, пожалуйста. Я вижу неоспоримый плюс: надежность повышается за счет отсутсвия утечек памяти и всяких сайд-эффектов. Как раз как любит энтерпрайз: надежность в обмен на производительность.
Боюсь, тут конструктивно не смогу обосновать.
Мне кажется, что такой размен стабильности на скорость слишком неподходящий что-ли.
Пусть будет субъективным мнением.
А более предметно можете сказать?
Он тяжело читается из-за знаков долларов. Открыв даже простейшие вычисления написанные на php, приходится вчитываться в то, что там происходит. Грандиозных примеров привести не смогу, но даже в таком, немного утрированном, примере уже не удобно:
public function countPages()
{
$rowsNumber = $this->countRows();
$pagesCount = 1;
if ($rowsNumber > $this->limit) {
$division = $rowsNumber / $this->limit;
$pagesCount = floor($division);
if ($pagesCount != $division) {
$pagesCount++;
}
}
return $pagesCount;
}
Питон или C# мне гораздо легче читать и понимать, что там происходит.
Самый близкий язык к PHP по синтаксису — это Java.
Видел java "только на картинках". Мне всегда казалось, что общий синтаксис больше на плюсы похож.
Он тяжело читается из-за знаков долларов. Открыв даже простейшие вычисления написанные на php, приходится вчитываться в то, что там происходит. Грандиозных примеров привести не смогу, но даже в таком, немного утрированном, примере уже не удобно:
согласен. Но дело не только в долларах.
Еще проблема в ===, <=> и прочих операторах. А еще много странностей в пыхе (в том числе, и возможность легко писать код-лапшу: часть в процедурном стиле, часть в ООП и все выглядит… на любителя)
Видел java «только на картинках». Мне всегда казалось, что общий синтаксис больше на плюсы похож.
+1. Думаю, что действительно разработчики php вдохновлялись Си (как разрабы java — тоже сями). Но сказать, что у php и java синтаксис одинаковый… Ну, слишком смелое заявление, на мой взгляд.
Еще проблема в ===, <=> и прочих операторах. А еще много странностей в пыхе...
Вот, кстати, да. Забыл про это. Видимо глаз уже замылился и не воспринимается так серьезно, потому что уже на автомате эти места обходишь.
Но сказать, что у php и java синтаксис одинаковый… Ну, слишком смелое заявление, на мой взгляд.
Кажется я вспомнил откуда ноги растут у этого утверждения. В одном из тредов про популярность ЯП (кажется), было упоминание, что пыха со своими namespace становится похожа на Java. И, если не путаю, это было в контесте symfony.
И чтоб это было: не битрикс какой-нибудь, не интернет-магазины, не какие-нибудь avito/booking.
Желательно (типичные консервативные бизнесы, почему-то тяготеющие к java): банки, логистика-перевозки (ж/д, авиа, морские), страховые компании, госы и пр.
в которых Java используется в энтерпрайзе:
я не понимаю. Это что? Приклад?
Просто меня интересует только одно применение — Java в backend, ну, еще может быть Scala для задач DS/DE. Понятно, что для этих задач .NET такое себе (обычно backend на linux серверах крутится) и на PHP высокоскоростную обработку больших данных не сделаешь.
Что вообще происходит? Кто-то решил потопить все мэйнстримные ЯП?
Призрак Borland-а проснулся и мстит. Си шарп на очереди.
Стоимость десктопной версии составляет $2.50 за пользователя в месяц
Я правильно понял, что если у компании сайт на Джаве, на котором зарегистрировано 1000 человек, то нужно платить 2500$ в месяц? А если за следующий месяц зарегистрируется ещё столько же, то платить в 2 раза больше? Это же грабёж.
«Перейти на OpenJDK, использовать только релизы с долгосрочной поддержкой, и устанавливать версии с исправленными ошибками, доступные для OpenJDK. Это жизнеспособное решение для компаний, которые не могут или не хотят менять стоимость инфраструктуры Java, могли обходиться без коммерческой поддержки в прошлом и полагают, что также смогут и в долгосрочной перспективе.»
Вот график поддержки
![image](https://habrastorage.org/getpro/habr/comment_images/642/f37/79d/642f3779df3b4713152178ba74420446.png)
Взят тут
stackoverflow.com/questions/22358071/differences-between-oracle-jdk-and-openjdk
По поиску OpenJDK LTS первые гугла ваших слов не подверждают.
Вот, например, по второй ссылке в гугл (http://mail.openjdk.java.net/pipermail/jdk-dev/2018-August/001830.html):
OpenJDK is a community project. It's up to the community to support
it. In practice this means that a group of organizations and
individuals will maintain each OpenJDK LTS release for some period
(TBA for 11, but it's sure to be a *lot* longer than six months.) I am
certain that there will be a jdk11u project, and it will be properly
and professionally run. I think it's likely that I'll be leading the
project, but someone else may be chosen. Given that we don't know when
Oracle will end their support it's hard to say any more.
Для ubuntu есть пакет openjdk-lts: launchpad.net/ubuntu/+source/openjdk-lts
Вот тут RedHat обещает, что OpenJDK 11 будет поддерживаться вплоть до октября 2024 года.
Первые три ссылки в google по запросу openjdk lts, что я делаю не так?
P.S. Также обратите внимание на AdoptOpenJDK
У RedHat LTS только для RHEL
AdoptOpenJdk не предоставляет LTS
У OpenJDK время жизни — 6 месяцев после релиза.
OpenJDK 12 еще не вышла, но багфиксы уже не бекпортят в OpenJDK 11
bugs.openjdk.java.net/browse/JDK-8210483
www.opennet.ru/opennews/art.shtml?num=49623
«LTS releases as long as the corresponding upstream source is actively maintained.»
Они ничего не фиксят и не бекпортируют.
Процесс развития, изменения в определении Java, API – все это находится в руках Java Community Process, вступить в которое может каждый.
Так оракл же судился с гуглом из-за использования java API в андроиде?
ещё смешнее читать вопли про то, что джава умирает, оракл её умертвляет, оракл не даёт писать на джаве и так далее.
для простого «скрипт киди» ничего не меняется, для тех кто запускает халтурки сам тоже — используй openjdk или другие сборки коих скоро будет овер дофига. хочешь персонально чего-то от оракла — заплати, в этом мире ничего не делается бесплатно, тем более сам деньги зарабатываешь гоняя jvm
Есть только одна вещь, которую запрещено делать всем, включая Oracle: вносить изменения в код и публиковать его с закрытой исходной лицензией.
Это не так. Oracle может под какой угодно лицензией публиковать измененный код, так как у него copyright на этот код. А вот остальные да, не могут. И на самом деле никто не мешает Oracle выпускать новые версии чисто под коммерческой лицензией, кроме того, что кто-то сделает форк OpenJDK, будет его развивать и все разработчики переключаться на этот форк. Правда, фишка в том, что как раз тот кто сделает форк не сможет его публиковать под коммерческой лицензией (в этом смысл GPL лицензий), поэтому мотиваций делать форк кому-либо по большому счету не так много.
ЗЫ: Похоже автор забывает, что Oracle не просто продолжил развитие и поддержку Java, а купил целиком того, кто ее разрабатывал.
За Oracle JDK нужно будет платить. Какие теперь варианты?