Его Правительские Звания
|
|||||||||||||||||||||
1 | |||||||||||||||||||||
Какие преимущества у Java перед C#?11.10.2020, 11:42. Просмотров 3442. Ответов 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 | |
Какие преимущества в .NET 5 будут перед Java? Какие преимущества у программы SolidWorks - перед Компас3Д и Автокад ? Какие преимущества у приложения на Android перед Web приложением В чем преимущества Java перед php? |
|
Модератор
1425 / 425 / 140
Регистрация: 11.08.2017
Сообщений: 1,445
|
|
11.10.2020, 12:38 | 2 |
Ага, ага не холиварная тема. Есть все посылы...
большего бреда не читал вместе со студией комп замусорится что аж мама не горюй, там поставится куча всего на десяток другой гигов и полсотни программ. когда в джаве можно обойтись всего в несколько сотен мегабайт. то что ты чего-то не сумел не делает язык плохим. я например сколько не пытался не сумел на шарпе программу собрать так чтобы она смогла запуститься на другом компе, когда на джаве можно без проблем создать полностью портативную сборку которая будет работать почти везде вот это спорное замечание, открытый исходный код всегда плюс, да и на нормальном языке (я про с++) почти все библиотеки надо собирать руками из исходников. шарп это язык корпорации зла и это много объясняет)) вот с этим соглашусь, на джаве декомпилированный файл нуждается почти в полном переписывании а в шарпе можно почти сразу использовать для меня сейчас единственный минус джавы так это отсутствие полноценной компиляции в нативы, но раз нужны нативы то логичней выбрать другой язык, так что это не минус можно сказать теме место в холиварах, вряд ли кто тут будет чтото доказывать, нормальным людям это не надо и такие темы всегда будут воспринимать как начала войн между языками
1
|
Его Правительские Звания
|
|
11.10.2020, 13:02 [ТС] | 3 |
В чем бред? В Жабе есть только массивы массивов в периоде, а в Шарпе - НАСТОЯЩИЕ многомерные массивы (имеющие форму прямоугольного гиперпараллелепипеда, а не зубчатые).
C++ - это язык, который с самого начала создавался как "высокоуровневый ассемблер", он сравниваться с истинно высокоуровневыми языками не может по определению. А прямо в Oracle работают одни ангелы? Мне кажется, и там, и там - обычные люди, среди которых есть как добрые, так и злые по своей натуре, но на качество языков это не влияет.
0
|
2888 / 2464 / 761
Регистрация: 05.07.2013
Сообщений: 11,915
|
|
11.10.2020, 13:32 | 4 |
![]() Решение
Плюсов нет, пиши на шаре, гордись /тхреад
1
|
3251 / 2314 / 421
Регистрация: 28.04.2012
Сообщений: 7,713
|
||||||
12.10.2020, 10:03 | 5 | |||||
Например?
В чём отличия? Ты про EnumSet и EnumMap? Например? Ты какой-то опрос проводил? Конкретно: отлаженыый и оптимизированный годами рантайм с множеством тонких настроек под разные production-окружения, например возможность выбора GC. В Шарпе можно выбрать GC? Добавлено через 1 час 16 минут О, это тебе нужно пойти в раздел по C++ и там создать тему с таким сообщением. Не для холивара, конечно. Добавлено через 17 минут Зачем гадать, если можно посмотреть исходник?
2
|
![]() 2359 / 2189 / 558
Регистрация: 28.12.2010
Сообщений: 8,566
|
|
12.10.2020, 10:41 | 6 |
щас бы устраивать перформанс тесты не имея о них никакого понятия....
можно сорсы посмотреть если очень интересно за много лет вот ни разу не понадобилась подобная конструкция, но в целом Джава довольно многословна это да. рукалицо жеж IDEA + JDK (неважно какой версии). Больше ничего не требуется. Я так же могу сказать про C#. Как-то понадобилось написать небольшой код. Запустить хеллоу ворлд смог только часа через 1.5 это при том что в универе писал когда-то на нем. Вопрос навыков В целом на джава для любой задачи обычно уже есть готовая библиотека и есть maven, который эту библиотеку позволяет добавить за 3 строки конфигурации. Есть большое коммьюнити, где на любой вопрос уже есть ответ Много решений написаны на джава поэтому их интеграция проходит намного легче. Возможно мне попадались криворукие люди, но любые решения, с которыми мне приходилось интегрироваться на .NET и ему подобных, были полны багов, и очень трудно поддавались изменениям
2
|
107 / 217 / 10
Регистрация: 21.06.2019
Сообщений: 1,116
|
|
12.10.2020, 16:36 | 7 |
Все настраивается за полчаса, если знать что делать. Ну а если не знать, то никакой сишарп не поможет.
Да начхать. 95% области применения жабы - всякие веб-сервисы, перекладывающие данные из одного места в другое. Там различия в производительности будут совершенно незаметны, потому что основные тормоза будут уходить на сетевое взаимодействие и ожидание ответов. А ни в embedded, ни где бы то ни было где нужна производительность жабу никто не использует. И сишарп кстати тоже. Именно поэтому он или С и применяются там, где нужна производительность вычислений. Ага, поэтому многие банки и околобанковские конторы и сидят плотно на жабе ![]() Так на жабе никто десктопы и не пишет, а те, кто пытались - давно перестали. А есть разница с массивами массивов? Ну вы вот спрашиваете, как устроет BigInteger и BigDecimal, значит вам нужен? И не увидите, потому что сишарп и вся дотнет платформа - целиком и полностью скопирована мелкомягкими с жабы после того, как им запретили выпускать свою не совместимую ни с кем жабу. Ну а поскольку у них уже была перед глазами жаба, то они и пофиксили некоторые ее косяки, которые в жабе нельзя или очень сложно починить из-за обратной совместимости. Добавлено через 5 минут Вообще же, жаба сама по себе убога чуть менее, чем полностью, из-за крайне примитивного синтаксиса. Потому ни для чего кроме как погонять данные практически и не применяется. Но на жвм есть другие языки, которые гораздо поприятнее жабы - скала например, или котлин. А гордиться надо знанием фундаментальных независимых от языка основ CS, а не знанием конкретного языка.
1
|
12.10.2020, 16:36 | |
Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь. Какие можно выделить преимущества C# относительно языков C++, java в рамках разработки мессенджера? Преимущества 12.10 перед 12.04 34 преимущества кирпича перед пистолетом
Есть ли в MySql преимущества перед файлами? Преимущества ActiveRecord перед обычным MySQL Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |