|
Нарушитель
|
|||||||||||||||||||||
Какие преимущества у Java перед C#?11.10.2020, 11:42. Показов 5703. Ответов 6
Метки нет (Все метки)
Я умышленно создаю тему в разделе по Жабе, чтобы увидеть мнение программистов на этом языке. Недостатки, как для меня, очевидны, даже если опустить "синтаксический сахар", хотя без некоторых видов сахара, таких как LINQ, очень тяжело. Но пусть. Одинаково вот далеко не полный список:
1. Отсутствие интегрированности. С Шарпом все просто - установил Visual Studio и никаких проблем, там и .NET Framework в комплекте, и SDK, и все, что надо. А здесь надо сначала установить какую-то среду выполнения, называемую на сайте Oracle просто "Java", затем JDK, затем IDE, а ее Oracle не предлагает, нужно искать в другом месте, а еще следить, чтобы во всех трех продуктах версии совпадали и т. д. Я, например, скачав и установив все, еще 40 минут мучался, прежде чем скомпилировать и запустить проект. 2. Преимущество в виде кроссплатформенности с появлением .NET Core аннулировано, эта платформа также работает под разными операционными системами. 3. То, что "Жаба быстрее", проявляется далеко не всегда. Вот четыре примера:
1038
143 Тут действительно Жаба примерно в два раза быстрее.
1600
Но прежде чем эта ошибка вылетела, прошло явно намного больше, чем 1613 миллисекунд, да и на объеме в 100 миллионов Жаба была существенно медленнее. Вывод - когда Жабе удобно, она быстрее, как только стало немного неудобно - сразу пасует. Ну можно там спорить, что Vector - очень медленная коллекция и т. д. Ну допустим, Жаба быстрее. Но C++ еще быстрее, а язык машинных кодов - так вообще сказочно быстрый. Но удобство изменяется обратно пропорционально скорости. А вместе с удобством и скорость написания программы. А мне кажется, любому нормальному программисту лучше писать программу полчаса и выполнять минуту, чем писать месяц и выполнять 5 секунд. Ну, если это программа, где требуется реагировать в течение наносекунд, то можно и пожертвовать временем написания, но тогда и Жаба в ауте. А если это среднестатистическое десктопное приложение, то его удобнее всего писать на максимально высокоуровневом языке. Уверен, что и Шарп - не навеки, но в данный момент по данному пункту он в лидерах. 4. Частично уже затронул это в предыдущем пункте. Несоизмеримо большее потребление памяти из-за того, что в Жабе нет коллекций примитивных типов. Например, список из 100 миллионов байт в Шарпе около 100 миллионов байт и займет (плюс служебная информация - несколько десятков байт), а в Жабе - 2.1 миллиарда байт (так как над каждым байтом необходимо создавать объектную обертку). Как вы считаете, это не перебор? 5. Отсутствие беззнаковых целых типов. В инструкциях всех нормальных процессоров они есть, а в Жабе нет?! И это - не "сахар", а серьезная проблема. Остается только догадываться, как здесь реализован BigInteger... 6. Отсутствие констант времени компиляции, которые во время выполнения заменяются своим текстом. Есть сочетание модификаторов static и final, дающее тот же эффект, что и константа, но развертываются такие "константы" не во время компиляции. 7. Отсутствие свойств и особенно индексаторов. Возможно, это и "сахар", но я не представляю себе программирование без этого. Пользоваться вместо list[i] = 100; громоздкой и неочевидной конструкцией list.set(i, 100); или еще хуже - list.setElementAt(100, i);? Ну, если университет требует, я могу в это поиграть, но точно, что не для профессионального программирования.8. Отсутствие выходных параметров у функций. Это точно не "сахар", так как, хоть это и не соответствует положениям "чистого кода", но иногда без этого просто никак. 9. Отсутствие типа decimal. Это значит - все финансовые дела на Жабе решать нельзя. (Есть java.math.BigDecimal, но это не то же самое.)10. Невозможность переменной перечисляемого типа со значением набора констант. Можно сделать набор перечислений, но сколько же это потребует ресурсов! 11. Отсутствие перегрузки операторов (No comments). 12. Отсутствие многомерных массивов (No comments). Замеченных мной преимуществ существенно меньше, и они существенно менее значимые: 1. Большинство внешних конструкций на Жабе имеют открытый исходный код. Но большинству программистов он не нужен. 2. Возможность выйти из вложенных циклов без использования "плохого" оператора goto. 3. Говорят, намного труднее декомпиляция, но лично я не сравнивал. 4. Являются ли преимуществом или недостатком проверяемые исключения, вопрос спорный. Повторюсь, все вышеперечисленное без учета LINQ и прочего явного "сахара", а если его учесть, количество преимуществ Шарпа перевалит за сотню. Возможно, моя позиция предвзятая, поэтому я и хочу увидеть позицию программистов на Java. Прошу не разводить холивар, а написать конкретно и по сути - название конструкции, где применяется и почему лучше, чем в Шарпе. Пока что я не вижу существенных преимуществ Жабы, поэтому программирую на Шарпе и горжусь этим.
0
|
|||||||||||||||||||||
| 11.10.2020, 11:42 | |
|
Ответы с готовыми решениями:
6
Какие преимущества в .NET 5 будут перед Java? Какие преимущества у программы SolidWorks - перед Компас3Д и Автокад ? Какие преимущества у приложения на Android перед Web приложением |
|
Модератор
|
||||||
| 11.10.2020, 12:38 | ||||||
|
шарп это язык корпорации зла и это много объясняет)) для меня сейчас единственный минус джавы так это отсутствие полноценной компиляции в нативы, но раз нужны нативы то логичней выбрать другой язык, так что это не минус можно сказать теме место в холиварах, вряд ли кто тут будет чтото доказывать, нормальным людям это не надо и такие темы всегда будут воспринимать как начала войн между языками
1
|
||||||
|
Нарушитель
|
||||
| 11.10.2020, 13:02 [ТС] | ||||
|
0
|
||||
|
3639 / 2971 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
|
|
| 11.10.2020, 13:32 | |
Сообщение было отмечено reisal78 как решение
Решение
Плюсов нет, пиши на шаре, гордись /тхреад
1
|
|
|
4575 / 2774 / 491
Регистрация: 28.04.2012
Сообщений: 8,765
|
|||||||||||||||
| 12.10.2020, 10:03 | |||||||||||||||
Добавлено через 1 час 16 минут Добавлено через 17 минут
2
|
|||||||||||||||
|
2399 / 2224 / 565
Регистрация: 28.12.2010
Сообщений: 8,672
|
||||||
| 12.10.2020, 10:41 | ||||||
|
Я так же могу сказать про C#. Как-то понадобилось написать небольшой код. Запустить хеллоу ворлд смог только часа через 1.5 это при том что в универе писал когда-то на нем. Вопрос навыков В целом на джава для любой задачи обычно уже есть готовая библиотека и есть maven, который эту библиотеку позволяет добавить за 3 строки конфигурации. Есть большое коммьюнити, где на любой вопрос уже есть ответ Много решений написаны на джава поэтому их интеграция проходит намного легче. Возможно мне попадались криворукие люди, но любые решения, с которыми мне приходилось интегрироваться на .NET и ему подобных, были полны багов, и очень трудно поддавались изменениям
2
|
||||||
|
282 / 485 / 12
Регистрация: 21.06.2019
Сообщений: 3,018
|
||||||||||
| 12.10.2020, 16:36 | ||||||||||
Юзают BigDecimal и не парятся, хоть это и выглядит убого. Добавлено через 5 минут Вообще же, жаба сама по себе убога чуть менее, чем полностью, из-за крайне примитивного синтаксиса. Потому ни для чего кроме как погонять данные практически и не применяется. Но на жвм есть другие языки, которые гораздо поприятнее жабы - скала например, или котлин.
1
|
||||||||||
| 12.10.2020, 16:36 | |
|
Помогаю со студенческими работами здесь
7
В чем преимущества Java перед php? Какие можно выделить преимущества C# относительно языков C++, java в рамках разработки мессенджера? Преимущества 12.10 перед 12.04 34 преимущества кирпича перед пистолетом
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
|
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма).
На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
|
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ *
Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам
Кирхгофа, решает её и находит переходные токи и напряжения на элементах схемы. . . .
|
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым.
Но восстановить их можно так.
Для этого понадобится консольная утилита. . .
|
|
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
|
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11
— это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
|
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11
Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
|
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
|