Есть ли какое-либо ядро/настольные приложения Java? [закрытый]

7
задан Jichao 5 January 2010 в 08:52
поделиться

8 ответов

1.
Java плохо подходит для разработки ядра. Основной причиной является control. Дело не только в скорости (хотя это ее часть). Java не дает программистам такого же количества контроля над памятью, над тем, как именно выполняется их код. В языке Си/Си++ обычно можно угадать точно , какой ассемблерный код будет создан на основе вашего кода. На Java это не так.

Замечание: Это справедливо и для C, и для -частей C++: Если вы используете много более высокоуровневой функциональности в C++, то вы, очевидно, имеете такую же потерю контроля. Но Си++ дает возможность идти в любом направлении.

2.
Си/Си++ используется больше, чем Java для рабочего стола по многим причинам. Вероятно, некоторые из них являются историческими (они использовались гораздо дольше), вероятно, некоторые из них - это проблема "Взгляд и ощущение", что в основном означает, что Java-программы имеют тенденцию выглядеть как Java-программы, а не как большинство программ на машине пользователя (есть решения, но это было верно почти для всех программ на Java, что заставляло программистов держаться подальше).

Но самое главное, чтобы понять, я думаю, что Си и Си++ в настоящее время также гораздо меньше используются для графического интерфейса. Очевидно, что они все еще используются, но многие программисты переходят на другие языки, такие как C# и другие.

3.
Если говорить о знаменитых настольных приложениях, то я думаю, что самым известным (конечно же, для программистов) является Eclipse. Это также действительно отличное приложение, и, конечно, выглядит отлично, что просто показывает, что Java может быть использована для хороших естественно выглядящих настольных приложений.

Я не знаю ни о каких других.

.
6
ответ дан 6 December 2019 в 08:14
поделиться

Почему Java не подходит для приложений ядра? Если причиной является ее медленность, то сколько раз она медленнее, чем C/C++?

Java - это запущенная на виртуальной машине. Чтобы заставить ее где-то выполняться, вы должны перенести это ядро (которое написано на Си++) на платформу. Основной причиной этого является то, что в настоящее время нет (широко распространенного) процессора, который мог бы понимать Java нативно. Обычные процессоры понимают только сборку.

Сегодня Java так же быстра, как и сопоставимый C/C++.

Почему программисты предпочитают C/C++, чтобы делать настольные приложения[...]?

Потому что Microsoft не поддерживает Java (по крайней мере, не так, как, скажем, C#).

Есть ли какие-нибудь известные приложения, делающие Java с точки зрения пользователя (значит, мы используем его каждый день)?

Большинство сервисов в 'сети написаны на Java. Множество программного обеспечения на вашем мобильном телефоне - это Java. С появлением Qt Jambi и SWT, Java приложения выглядят и чувствуются как любой другой вид приложения (включая безумное время запуска), так что это уже не так очевидно.

Причины, по которым это не так много рекламируется, это а) люди все еще верят в миф "Java медленно" и б) людям все равно, на каком языке что-то написано. Их волнует, работает ли это для них. Плюс, Солнце действительно провалило это, когда дело доходило до развертывания. Чтобы создать установщик Windows из VisualStudio, нужно просто нажать кнопку. Для Java требуется написание сценариев запуска, проблемы с лицензиями, проблемы с размерами (включать ли JRE или нет?), страх, что на ПК не может быть установлено больше одного Java и т.д. Кроме того, апплеты не очень помогли собрать положительные чувства к Java.

.
2
ответ дан 6 December 2019 в 08:14
поделиться
  1. Java не подходит для написания программ на ядре, так как программы на Java разрабатываются для запуска под виртуальной машиной, а не под базовой ОС нативно. Под виртуальной машиной то, что мы можем сделать, будет ограничено в обмен на более высокий уровень безопасности. В то время как скорость здесь едва ли является главной проблемой.

  2. Я не уверен для других разработчиков, но мой личный опыт показывает, что, несмотря на то, что Java, как утверждается, "пишет один раз, бегает где угодно", существует довольно много непоследовательного поведения JVM под разными операционными системами. Чтобы преодолеть эти несоответствия, разработчикам, возможно, придется прибегнуть к обходным путям в своих программах, чтобы обеспечить уникальный пользовательский опыт. В худшем случае это просто невозможно исправить без модификации самого JVM. В результате, выполнение кроссплатформенной базы с библиотеками C/C++ может быть менее болезненным, так как вы будете иметь контроль над всеми компонентами, которые вы пишете.

  3. Существует битторент-клиент Vuze (раньше это был Azureus), который является довольно известным IMO. Вы можете посмотреть здесь.

0
ответ дан 6 December 2019 в 08:14
поделиться

Я ставлю под сомнение ваше использование "приложения ядра", думаю, такого термина не существует. Либо какой-то код является частью ядра операционной системы, и в этом случае обычно он HAS должен быть написан на языке операционной системы, либо это приложение, и в этом случае он может быть написан на любом языке, который поддерживает операционная система.

Сейчас есть много используемых, возможно "необходимых" приложений, которые некоторые люди могли бы назвать "ядром" приложений, таких как браузеры, DBM и так далее. Может быть, вы об этом и говорите.

Большинство приложений имеют визуальный интерфейс. Все программы на Си/Си++ имеют внешний вид и ощущения, которые более или менее распространены и являются общими (несколько общих инструментальных комплектов), и могут быть модифицированы в некоторой степени с помощью настроек в операционной системе. Java (обычно) "делает" свой собственный вид и ощущения, и обычно выглядит намного иначе, чем обычный вид; многие люди считают его уродливым.

Java тем временем хорошо работает наравне с приложениями на Си, но это не включает в себя JVM-стартап. Запуск Java-программ занимает относительно долгое время, и пользователи ненавидят ждать.

На Java написано несколько движков баз данных. На ум приходит Дерби, и я думаю, что это HQL. Но это не то, что пользователи программного обеспечения видят многого. Аналогичным образом, серверы веб-приложений Jetty и Tomcat написаны на Java, и, конечно, серверы корпоративных приложений, таких как WebSphere, WebLogic, JBoss, GlassFish. Но опять же, это не пользовательские приложения

.
2
ответ дан 6 December 2019 в 08:14
поделиться

Почему Java не подходит для работы с приложениями ядра? Если причина в ее медлительности, то сколько раз она медленнее, чем C/C++?

Это не единственная причина или не обязательно единственная. Приложениям на ядре, таким как операционные системы, необходим доступ к ядру, а машина, к которой доступен java, является виртуальной.

Почему программисты предпочитают делать настольные приложения на Си/Си++, несмотря на то, что Java предоставляет последовательную и отличную библиотеку API. Я думаю, что для разработки большинства настольных приложений (например, карточных игр) требуется меньше кода с использованием Java вместо Си/Си++, и разработанное приложение может быть легко развернуто на другой платформе.

Это верно, Но оказывается, что для бесперебойной работы настольного приложения необходимо иметь доступ к нескольким родным ресурсам. Windows, Linux и OSX имеют свои сложности, и большинство java-приложений выглядят неуместно.

Работа с родными библиотеками обеспечивает бесшовную интеграцию с хост-системой.

Тем не менее, я думаю, что возможно написать все общие части и ядро приложения на Java, а затем добавить немного нативного кода для корректного подключения к хосту.

Так написаны IDE, как NetBeans, Eclipse и Idea.

О браузерах и других основных приложениях, причина их присутствия на С++ не только в скорости работы, но и в том, что это унаследованный от десятилетий код.

Приведем только один недавний пример. Google Chrome, наследует от WebKit много кода, сотни тысяч строк. Можно сказать, что они только что сделали "хром" браузера (как будто это было легко)

Есть ли какие-нибудь известные приложения, сделанные с Java с точки зрения пользователя (значит, мы используем его каждый день)?

Слышали ли вы когда-нибудь о gmail LimeWire?

.
1
ответ дан 6 December 2019 в 08:14
поделиться
  1. На Java реализованы, по крайней мере, некоторые операционные системы, а именно JNode, JOS и JX. Конечно, вы не увидите ни одной операционной системы, начавшей свою историю до рассвета Java, которая бы была реализована на этом языке. Более того, кажется, что существует давняя предубежденность против управляемых языков для ядра операционной системы; есть некоторые исследовательские проекты, такие как Singularity, которые пытаются реализовать такой подход, но мы еще не приблизились к тому моменту, когда это будет готово для "нормального" использования. Однако, вам всегда понадобится "ядро" ядра, которое делается на ассемблере или другом низкоуровневом языке, который даст вам доступ к частям, которых у вас обычно не будет. Но это можно оставить очень маленьким.

  2. Является ли Java API последовательным или отличным, может быть спорным, но для многих сред предпочтительными языками являются либо C (UNIX-лики в основном, многие части Windows API), либо производные, такие как Objective-C (Mac OS X) или C++ (COM-ориентированное программирование на Windows, KDE, Qt). Это не означает, что вы не могли сделать это на другом языке, но документация обычно предполагает, что вы придерживаетесь предпочтительных языков. Другой большой фактор, на который Вы, очевидно, рассчитываете, это то, что Вам понадобится JVM на целевой системе. Единственная операционная система, которая поставляется с Java, о которой мне известно, это Mac OS X. Поэтому вы будете беспокоить пользователей дополнительными зависимостями. Корпорации, такие как Microsoft, также очень неохотно даже рассматривают возможность выпуска программного обеспечения сторонних производителей, которое они не контролируют с Windows, так что вы никогда не увидите JVM, выпускаемого с этой ОС. (Да, когда-то была Java 1.1, iirc, но эти дни давно прошли и вряд ли вернутся. Также эта была поставлена самим Microsoft.)

  3. Большинство разработчиков Java, вероятно, используют по крайней мере одну из них изо дня в день, Eclipse и Netbeans, например, написаны на Java. Как и некоторые другие средства разработки программного обеспечения, такие как Maven или Ant. Другой популярной программой является, например, Vuze (бывший Azureus) BitTorrent клиент. Но, по крайней мере, для меня в настоящее время не так много Java десктопных приложений, которые я даже использую еженедельно.

    Для веб-приложений, по крайней мере, это совсем другое дело, так как вы не можете сказать, чем они написаны извне.

7
ответ дан 6 December 2019 в 08:14
поделиться

Одним из самых известных приложений, написанных на Java, вероятно, является Vuze (ранее известный как Azureus), битторент-клиент для Windows и Linux.

.
4
ответ дан 6 December 2019 в 08:14
поделиться
[

] Ты слышал о Лаймвайре? [

]
0
ответ дан 6 December 2019 в 08:14
поделиться
Другие вопросы по тегам:

Похожие вопросы: