Будет ли Java уничтожена посредством JavaScript? Таким вопросом задались пользователи сайта Quora. Самые интересные ответы KV.by собрали в материале.
Джерасон Бэнс, главный инженер
- Будет ли машинный код уничтожен ассемблером?
- Будет ли ассемблер уничтожен при помощи C?
- Будет ли C/C++ уничтожен при помощи Java?
Ответ на все эти вопросы – да и... нет. Давайте порассуждаем:
Если бы я создавал документальную базу данных, то я бы скорее предпочел делать это в Java, нежели при помощи C ++. Проработанный сборщик мусора в сочетании с JIT-оптимизацией, а также поразительные структуры данных позволяют сделать процесс программирования намного более быстрым и надежным. Я мог бы сделать это и в C или C++, но тогда потребуется большего количества приложенных усилий.
Бинарную или реляционную базу данных я бы создавал скорее при помощи C, нежели Java или ассемблера. Структуры данных на уровне байтов гораздо проще выразить с помощью структур языка программирования C. А операция разыменования указателя позволяет мне написать невообразимо искусный код, при помощи которого можно будет добиться великолепных показателей производительности во время операций по манипулированию данными. Я могу также сделать это в ассемблере, но это потребует большего количества усилий.
Для низкоуровневых операций с аппаратными средствами я бы скорее использовал ассемблер, нежели C или машинный код. Я также могу сделать это в C, но в этом случае может быть сложно понять, какие операции происходят в тот момент, пока я в критической секции. Кроме того, будет крайне тяжело диагностировать и устранить баги.
Занимаясь разработкой электрически стираемого перепрограммируемого ПЗУ (EEPROM), я бы скорее использовал машинный код, нежели ассемблер. Это можно было бы сделать в ассемблере, но тогда мне бы пришлось повозиться с настройками, чтобы удалить ненужную информацию. У меня есть только 512 байт для этого, поэтому каждая команда имеет значение! Намного проще открыть шестнадцатеричный редактор и сделать все в нем.
Каждая из вышеназванных технологий все еще существует, хотя и предполагалось, что они должны были быть «уничтожены» новыми заменителями. И мы все равно достаточно часто используем более старые инструменты, находящиеся на более низком уровне, чтобы создать то, что нам необходимо.
Если мы применим к Javascript выводы, сделанные выше, то мы обнаружим, что пользовательский интерфейс я бы предпочел создавать в Javascript, а не в Java. Функциональный дизайн Javascript’s, а именно однопоточная модель цикла событий с неблокируемыми I/O, а также встроенные структуры данных позволили бы мне качественно взаимодействовать с пользователем и иметь дело со множеством параллельных элементов управления, написав при этом минимальный код. Я могу также сделать все это в Java, но код тогда будет более громоздким, кроме того, в этом случае я должен буду хорошо разбираться в параллельном программировании.
Камерон Перди, программист
Во-первых, JavaScript умудрился почти в одиночку уничтожить Java-апплеты, Silverlight и мультимедийную платформу Adobe Shockwave / Flash. На данный момент для работы в браузере (а также почти для всех практических целей) чаще всего используется JavaScript (а также те инструменты, которые с ним совместимы). Поэтому если мы ведем речь о коде, выполняемом в веб-браузере, который запущен на телефоне, планшете, ноутбуке или ПК, тогда да, JavaScript уничтожил Java.
Во-вторых, это лишь вопрос цены. Я бы предположил, что следующим языком, который JavaScript будет уничтожать, будет… JavaScript! Причина такого вывода проста и очевидна для любого, кто когда-либо использовал JavaScript или любой другой уважаемый язык программирования: для любого значительного приложения затраты на поддержку приложений, функционирующих на базе JavaScript, существенно превышают затраты на замену тех же самых JavaScript-приложений. Или как гласит одна старая поговорка: «Всегда не хватает времени, чтобы выполнить работу как надо, но на то, чтобы ее переделать, время находится». JavaScript уже умирает под собственным весом, но пока нет альтернативы, которая бы смогла его заменить, количество программ, написанных и переписанных на этом языке, только растет.
Питер Шинек, программист
Серьезно, ребята, хватит разводить шумиху по этому поводу. Я знаю, о чем я говорю – я был там до релиза Ruby on Rails 1.0. Шумиха была просто невообразимая!
Спустя 10 лет я все также работаю с Ruby/Ruby on Rails всегда, когда есть подобная возможность. Но при этом я никогда не стану использовать этот фреймворк для следующих целей:
- Машинное обучение/Искусственный интеллект. Использование языка программирования Python в этом случае более чем очевидно.
- Задачи, для выполнения которых важное значение имеют вычисления или скорость выполнения. В этом случае я бы начал с Crystal, а если бы его инструментов не хватало, то перешел бы на C++/C/ассемблер.
- Задачи, во время выполнения которых необходимо обеспечить высокий уровень безопасности, например, банковские операции, крайне конфиденциальные государственные программы и прочее. Можете ли вы использовать для этого Rails/Ruby? Конечно. Станете ли вы это делать? Надеюсь, что нет. Для этого есть Java.
- Высоко параллельная/распределенная обработка данных. Задача непроста только потому, что существует огромное количество доступных инструментов: Elixir, Scala, Go, Rust.
И список можно продолжать и дальше. Суть заключается в том, что необходимо выбирать наилучший инструмент для выполнения конкретной задачи.
Благодаря технологии быстрого прототипирования, Rails прекрасно подходит для технологических программ. Ruby все еще достаточно приятно использовать (в то время, как, по моему личному мнению, Javascript как раз-таки не столь удобен в работе. Но это чисто мое субъективное мнение).
Вы собираетесь стать создателем следующего Facebook/Google/Snapchat? Тогда, возможно, для вас было бы неплохо пересмотреть архитектуру кода и начать реорганизацию его критических моментов.
Если же вы хотите и дальше использовать привычные вам инструменты, то это не так уж и плохо, но тогда разумно было бы выбрать домен, в котором выбранный вами язык программирования\фреймворк функционирует наилучшим образом. На мой взгляд, делать что-либо при помощи JavaScript только потому, что он повсеместно используется, не самое логичное и разумное решение.
И, напоследок, еще один вопрос на размышление: сможет ли Javascript уничтожить один из старейших языков программирования COBOL?
Паулина Йонушайте, более 15 лет тщательно изучала и применяет различные языки программирования
Вот полный список людей, заинтересованных в разработке настольных приложений с использованием JavaScript:
- Люди, которые раньше работали в сфере разработки веб-интерфейса, но потом осознали, что данная сфера не столь прибыльна, как им бы хотелось.
Вот неполный список людей, которые не хотят иметь никаких дел с JavaScript при разработке настольных приложений:
- Большие компании, которые задействованы в круговороте 95% всех финансов в данной сфере и стремятся принимать только здравые решения касательно повышения уровня доходов. Вы знаете, это такие парни, которые, когда все идет наперекосяк, ищут профессионала для решения проблем, а не говорят что-то наподобие «Слушай, Боб, тут на форуме написано, что у такой-то фирмы была похожая проблема и им помогло вот это вот решение. Давай и мы так попробуем?».
JavaScript является крайне неподходящим для крупных игроков в данной сфере, и нет никаких признаков, которые бы сигнализировали об изменении этой ситуации в ближайшее время. Людям нужна такая продукция, которая будет пользоваться спросом годами или даже десятилетиями.
Для того чтобы JavaScript хотя бы каким-то образом попытался начал угрожать существованию Java, понадобится не что иное, как революция.
Это совсем не означает, что Java неприкасаемый и находится в полной безопасности. У него есть достаточное количество конкурентов, например C++, C#, огромное количество JVM-языков. Таких, как Scala, Groovy, Kotlin и прочие. Однако на данный момент я не могу представить JavaScript занимающим достойное место среди них.
Мартин Бок, программист, предприниматель
Нет. Javascript и Java используются для разных целей. Главным преимуществом JavaScript является то, что он запускается в браузере. Кроме того, его можно использовать для работы в режиме сервера, и этот язык именно тем и прекрасен, что его можно использовать как в первой, так и во второй ситуациях. Но, при этом есть и другие языки, разработанные и гораздо более подходящие для работы в режиме сервера, нежели JavaScript.
Существует огромное количество корпоративного программного обеспечения, которое было написано на Java и которое до сих пор продолжают писать на этом языке, и многие предприятия не признают другие языки программирования в качестве альтернативы, потому что слишком малое количество языков может дать им то, что дает им Java. (Именно по этой причине я часто называю Java новым Cobol. К счастью, Java не столь плох, как Cobol)
Главным преимуществом Java является не сам язык (громоздкой и часто многословный), но виртуальная Java-машина (JVM), на которой он работает. Именно эта виртуальная машина обладает как раз теми характеристиками, которые привлекают людей, а именно, быстротой, надежностью, мощностью и безопасностью.
Это совсем не означает, что нет места для других языков, таких как, к примеру, JavaScript. У каждого языка есть свои преимущества и недостатки, а также определенная область применения. Это прекрасно, что создаются новые инструменты, позволяющие использовать JavaScript более эффективно, но это никоим образом не означает, что именно этот язык заменит все остальные. Уже существует возможность создавать кроссплатформенные приложения на основе Java и других языков. Почему же тогда люди все равно переключаются на JavaScript? Это происходит потому, что у JavaScript есть интересные функции, которые, к сожалению, подходят не для всех ситуаций. Преимущества Javascript делают работу с ним достаточно приятной, но недостатки так же имеют место быть. И они останутся, так как существует необходимость в обратной совместимости.
Комментарии
Интересно: поставил кол, оценка -- 5 и голосов 1.
А кол был за постановку вопроса: кто кого: кофе или чай? Ой, не могу: !
JavaScript мне напоминает тут "млекопитающую мышь" что вертелась между ног динозавров десятки миллионов лет назад и совала нос во все щели.
А потом ... прилетел метеорит. (С)
Ничего Java не грозит. Даже на Коболе до сих пор пишут, а на нем до того написано было гооооораздо меньше. Нет ни одного языка из коммерческой разработки, на котором бы никто сейчас что-нибудь не поддерживал. Даже Visual Basic и Pascal до сих пор нужны.
Дело не в этом. Дело в пропорциях. Пишут и на Коболе - 0,00000000001% всего пишущегося кода. Примерно
И даже на Фортране. Но -- тсс!..
На Фортране физики обычно пишут. - Их одно время хотели переучить на Java - и даже перевели (автоматом) много-много кода на Java (библиотек, конечно, там обычно функции для вычисления всего математического закодированы то, на Фортране то), но физиков заставить перейти на что-то новое, если и на старом можно получить тот-же результат, практически невозможно. (С)