Информация об изменениях

Сообщение Re: Язык программирования Java нужно популяризировать. от 06.07.2024 5:00

Изменено 06.07.2024 5:05 Worminator X

Re: Язык программирования Java нужно популяризировать.
Здравствуйте, Эйнсток Файр, Вы писали:

ЭФ>Сейчас он воспринимается как что-то древнее и неудачное (примерно как Delphi),

ЭФ>но, возможно, это (по моему мнению) ошибочное восприятие.

Java и так вполне популярна. Многие изучают ее даже первым языком. Есть сайт JavaRush, популярный у школьников и студентов младших курсов.

В энтерпрайзе (банках и др.) Java является стандартом, и в ближайшее время никто не будет от нее отказываться. Т.к. множество решений завязаны именно на Java стеке — Kafka, ELK, Hadoop и др. Максимум переписывают отдельные микросервисы на Go для ускорения. Жаба будет существовать не меньше Кобола (который до сих пор используется местами). По сути она умерла только на десктопах и постепенно уходит из мобильного сектора, но на backend живее всех живых.

По поводу самой архитектуры JVM (и клона .NET), да, она действительно устарела. Здесь я совершенно согласен с доцентом Андреем Столяровым:

Фоннеймановский стиль программирования исходно противоестественный, все эти присваивания с циклами кажутся простыми только тем, кто к ним привык. Существование фоннеймановского стиля оправдано только одним: машиной фон Неймана (ну, с точностью до ряда оговорок, но тем не менее) является тот базовый вычислитель (т.е., попросту говоря, компьютер), для которого мы пишем программы.

Если мы готовы отойти от возможностей базового вычислителя настолько далеко, что нас перестаёт смущать даже сборщик мусора, то тащить за собой адреса, присваивания, циклы, вообще все прелести (на самом деле, просто извращения), продиктованные машиной фон Неймана, нет никакого смысла, нужно брать в руки другие инструменты — языки высокого уровня, тот же Лисп, или Пролог, или какой-нибудь Haskell, Scala, мало ли их. Конечно, мы из компьютера больше десяти процентов его возможностей при этом не выжмем, но на языках со сборкой мусора — тоже не выжмем.


http://stolyarov.info/guestbook/archive/6#comment-6097

Лисп — не императивный, сиречь не фоннеймановский. Если мы от базового вычислителя (машины фон Неймана) отходим настолько далеко, что готовы не обращать внимания на мусор (добавив GC), то тогда нет смысла оставлять присваивания, циклы и прочие исходно противоестественные концепции, навязанные именно что машиной фон Неймана.


http://stolyarov.info/pvt/anti_c#comment-129

Однако пока альтернативные идеи (Scala, Rust, Haskell, Erlang и др.) еще не получили распространения. И в целом функциональное программирование требует серьезной математической подготовки. В то время как языки Си, Turbo Pascal/Delphi, Java, C#, Python имеют минимальный порог вхождения и легко усваиваются даже самыми посредственными программистами. Армия дешевой рабочей силы — то, что нужно бизнесу, а за качество кода отвечают юнит-тесты, паттерны и AGILE/SCRUM процесс. А программиста, знающего, что такое комбинатор неподвижной точки, легко и быстро не заменишь и не снизишь ему зарплату (что массово наблюдается в IT в последнее время).

Мне в Java сильно не нравится другое, а именно контроль Oracle'а. Когда-то Си принадлежал AT&T/Bell Labs, но был отобран у них, фактически национализирован и стал свободным языком, не зависимым от корпораций. Аналогично Java не должна никому принадлежать. Оракл должен ограничиваться своей коммерческой JDK (наряду с остальными, вроде Axiom, Amazon и др.), но не более того. И вообще следует прописать в законах абсолютный запрет на патенты и авторские права на любые языки программирования (только на ПО, т.е. конкретные реализации в виде компиляторов и интерпретаторов). По российскиму авторскому праву, например, запрещены патенты на алгоритмы и научные идеи. Но это уже более сложный и не технический вопрос.
Re: Язык программирования Java нужно популяризировать.
Здравствуйте, Эйнсток Файр, Вы писали:

ЭФ>Сейчас он воспринимается как что-то древнее и неудачное (примерно как Delphi),

ЭФ>но, возможно, это (по моему мнению) ошибочное восприятие.

Java и так вполне популярна. Многие изучают ее даже первым языком. Есть сайт JavaRush, популярный у школьников и студентов младших курсов.

В энтерпрайзе (банках и др.) Java является стандартом, и в ближайшее время никто не будет от нее отказываться. Т.к. множество решений завязаны именно на Java стеке — Kafka, ELK, Hadoop и др. Максимум переписывают отдельные микросервисы на Go для ускорения. Жаба будет существовать не меньше Кобола (который до сих пор используется местами). По сути она умерла только на десктопах и постепенно уходит из мобильного сектора, но на backend живее всех живых.

По поводу самой архитектуры JVM (и клона .NET), да, она действительно устарела. Здесь я совершенно согласен с доцентом Андреем Столяровым:

Фоннеймановский стиль программирования исходно противоестественный, все эти присваивания с циклами кажутся простыми только тем, кто к ним привык. Существование фоннеймановского стиля оправдано только одним: машиной фон Неймана (ну, с точностью до ряда оговорок, но тем не менее) является тот базовый вычислитель (т.е., попросту говоря, компьютер), для которого мы пишем программы.

Если мы готовы отойти от возможностей базового вычислителя настолько далеко, что нас перестаёт смущать даже сборщик мусора, то тащить за собой адреса, присваивания, циклы, вообще все прелести (на самом деле, просто извращения), продиктованные машиной фон Неймана, нет никакого смысла, нужно брать в руки другие инструменты — языки высокого уровня, тот же Лисп, или Пролог, или какой-нибудь Haskell, Scala, мало ли их. Конечно, мы из компьютера больше десяти процентов его возможностей при этом не выжмем, но на языках со сборкой мусора — тоже не выжмем.


http://stolyarov.info/guestbook/archive/6#comment-6097

Лисп — не императивный, сиречь не фоннеймановский. Если мы от базового вычислителя (машины фон Неймана) отходим настолько далеко, что готовы не обращать внимания на мусор (добавив GC), то тогда нет смысла оставлять присваивания, циклы и прочие исходно противоестественные концепции, навязанные именно что машиной фон Неймана.


http://stolyarov.info/pvt/anti_c#comment-129

Однако пока альтернативные идеи (Scala, Rust, Haskell, Erlang и др.) еще не получили распространения. И в целом функциональное программирование требует серьезной математической подготовки. В то время как языки Си, Turbo Pascal/Delphi, Java, C#, Python имеют минимальный порог вхождения и легко усваиваются даже самыми посредственными программистами. Армия дешевой рабочей силы — то, что нужно бизнесу, а за качество кода отвечают юнит-тесты, паттерны и AGILE/SCRUM процесс. А программиста, знающего, что такое комбинатор неподвижной точки, легко и быстро не заменишь и не снизишь ему зарплату (что массово наблюдается в IT в последнее время).

Мне в Java сильно не нравится другое, а именно контроль Oracle'а. Когда-то Си принадлежал AT&T/Bell Labs, но был отобран у них, фактически национализирован и стал свободным языком, не зависимым от корпораций. Аналогично Java не должна никому принадлежать. Оракл должен ограничиваться своей коммерческой JDK (наряду с остальными, вроде Axiom, Amazon и др.), но не более того. И вообще следует прописать в законах абсолютный запрет на патенты и авторские права на любые языки программирования (авторские права могут быть только на ПО, т.е. конкретные реализации в виде компиляторов и интерпретаторов). По российскиму авторскому праву, например, запрещены патенты на алгоритмы и научные идеи. Но это уже более сложный и не технический вопрос.