LINUX.ORG.RU
ФорумTalks

What a horrible language.

 


0

2

Прочитал интервью Линуса о патентах. Заканчивает он историей Oracle vs Google.

Цитата:

I don't actually know the details. I mean Java I really don't care about. What a horrible language. What a horrible VM. So, I am like whatever, you are barking about all this crap, go away. I don't care.

источник

Здесь на лоре тоже видел много кто ругает Java. Я нуб в этом всем, поэтому интересно узнать основные аргументы.

Перечислите, почему Java, по-вашему, хуже чем, скажем, C или С++. И что не так с виртуальной машиной Java. Только важно не само сравнение, а именно аргументы против Java. То есть, не почему C лучше, а почему Java хуже.


как язык ява лучше плюсов. Но vm там какой-то странный да, вроде и оптимизировали его оптимизировали, а всё равно какое-то кривое тормозилово.
Моно как-то приятнее.

Bad_ptr ★★★★ ()
Ответ на: комментарий от Sonsee

Что значит странный?

Вот это:

вроде и оптимизировали его оптимизировали, а всё равно какое-то кривое тормозилово

Bad_ptr ★★★★ ()
Ответ на: комментарий от GanGSISoft

Так я ж и говорю, тред не про сравнение, а почему Java плохой язык, какие недостатки в VM?

Sonsee ()
Ответ на: комментарий от Sonsee

Конкретики никакой?

да. В основном по ощущениям от использования ява-программ. Вопреки всем тестам, где ява обгоняет процессор.

Bad_ptr ★★★★ ()
Ответ на: комментарий от Bad_ptr

Моно как-то приятнее.

Вот честно, я бы поостерегся использовать Mono в своих проектах. Устное обещание многомиллионной корпорации никого не засудить за его использование как-то не очень меня вдохновляет...

Pinkbyte ★★★★★ ()
Ответ на: комментарий от Bad_ptr

тормозилово

GUI правда сильно лагает, а вот остальное очень даже неплохо, особенно относительно других интерпретируемых/JITируемых языков. Как я понимаю, сейчас основные тормоза из-за сборки мусора.

h31 ★★★★ ()
Ответ на: комментарий от Pinkbyte

поостерегся использовать Mono в своих проектах

Ну в серьёзных проектах конечно. А в любительских — можно. :)

Bad_ptr ★★★★ ()

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

JFreeM ★★★☆ ()
Ответ на: комментарий от wota

шикарный у вас разговор, вы хотя бы круг задач очертите.

JFreeM ★★★☆ ()
Ответ на: комментарий от wota

требует писать больше кода

возможно. Не всегда это плохо.

меньше возможностей

Дану? Что за возможности ? :)

Bad_ptr ★★★★ ()

ну и вообще по-моему, Линуса заносит. Мое мнение о нем резко упало после его финта с нвидией. Такого приличные люди себе не позволяют.

JFreeM ★★★☆ ()
Ответ на: комментарий от JFreeM

да верьте во что хотите, мне то что.

Я пока верить ни во что не собрался, мне интересны аргументы против, что бы не верить, а точно знать что к чему. Пока, кроме «кривого тормозилова» никто ничего конкретного не привел.

Sonsee ()

обиженные джаверы набежали ) отвечу всем сразу- может вам хватает ООП, недодженериков, а отсутствие списков инициализации, перегрузки операторов, unsigned типов (вроде хотели добавить), множественного наследования и пр. и пр.- только плюс, но факт есть факт - Java проектировали как очень простой ЯП, а то что к нему начали прикручивать со временем - зачастую убого и криво, как те же дженерики

wota ★★ ()
Ответ на: комментарий от JFreeM

Алсо, Линус сишник, что от него ждать. Он даже не плюсовик.

всё правильно делает, Православный нужен, кресты не нужны, и Линус тому свидетель :)

(я очень надеюсь, что незримое присутствие Отца не даст модераторам вырезать этот в высшей степени правдивый и полезный комментарий с -20)

stevejobs ★★★★☆ ()
Ответ на: комментарий от stevejobs

кресты не нужны

к счастью, не все так думают, а то вы бы до сих пор сидели бы в консоли. Был давно тред, сколько дестопных приложений написано на голом си. (GObject не появился бы без плюсов, он оттуда всю идею ООП взял)

JFreeM ★★★☆ ()
Ответ на: комментарий от wota

не надо ничего прикручивать, чем проще - тем лучше :) И главное - никакой динамики, а то выйдет какая-нибудь похапятина или перлятина, можно будет сразу закапывать.

stevejobs ★★★★☆ ()

что не так с jvm

Обещания что VM типа жавовской и дотнетовской будут уделывать нативную компиляцию не сбылись.
Казалось бы, JIT имеет больше информации о программе чем статический компилятор, однако ж время компиляции тоже важно, вот и не взлетело.
Как итог, использование VM вместо нативной компиляции ничем не оправдано. Вообще ничем.
И да, это не относится к LLVM.

rand ()
Ответ на: комментарий от JFreeM

а то вы бы до сих пор сидели бы в консоли.

либо та консоль была бы написана не на крестах, а на Жабе или чем-нибудь еще богоугодном. Представь, что было бы, если весь высокоуровневый код написали бы на Эрланге, например, да доплили к тому эрлангу всякие ООП-шные расширения.

stevejobs ★★★★☆ ()

Нет темплэйтов, дженерики тоже своеобразные.
Очень плохая и медленная работа с не-жаба библиотеками.
Всё-объект, значит память и сборщик мусора часто мешают, к примеру когда сборщик начинает работать в непожходящий помент и все отваливается по таймайтам(коллеги в парралельном тиме с этим борются)
Всё очень многословно, хотя наметились подвижки к лучшему и лет через 30 возможны улучшения.
ОЧЕНЬ медленно стартует, так как загружает и ВМ и библиотеки, которые не шаратся между приложениями. Изза этого и десктоп приложения на жабе не пишут.
А вообще критиков жабы много. Гугл в помощь.

grim ★★★☆ ()
Ответ на: комментарий от JFreeM

GObject не появился бы без плюсов, он оттуда всю идею ООП взял

OMG!
Так это Страуструп ООП изобрёл по вашему?

Кул!

grim ★★★☆ ()
Ответ на: комментарий от stevejobs

не надо ничего прикручивать, чем проще - тем лучше :)

очень хороший лозунг, но под него даже С не подпадает со своими нюансами под разные платформы и компиляторы

wota ★★ ()
Ответ на: комментарий от JFreeM

Ты только сейчас понял, какое Линус трололо? :}

Deleted ()
Ответ на: комментарий от tailgunner

Вот интересно - зачем тебе unsigned-типы?

ну вот, например, кол-во элементов - это чистый unsigned-тип, наличие которого на этапе компиляции вполне полезно в плане выдачи ошибок и варнингов

wota ★★ ()
Ответ на: комментарий от wota

ну вот, например, кол-во элементов - это чистый unsigned-тип

То есть для натурального числа больше, чем int. Проблема в том, что unsigned-типы никогда не были для этого предназначены.

tailgunner ★★★★★ ()

Why Git is so fast
Сравнение, почему git на си быстрее чем jgit на жабе.
Ъ: zero-copy, mmap, unsigned-типы, memcpy.

rand ()
Ответ на: комментарий от tailgunner

чтобы копипастать реализацию поиска-сортировочек из сишных книг, без модификации кода -)

stevejobs ★★★★☆ ()
Ответ на: комментарий от Sonsee

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

rand ()

Перечислите, почему Java, по-вашему, хуже чем, скажем, C или С++. И что не так с виртуальной машиной Java. Только важно не само сравнение, а именно аргументы против Java. То есть, не почему C лучше, а почему Java хуже.

go away. I don't care.

gensym ★★ ()
Ответ на: комментарий от stevejobs

Тебе. А Линус, что Линус? Собака лает, а караван то идёт :}

EDIT: also, гуглозонд не нужен.

Deleted ()
Последнее исправление: Mystra_x64 (всего исправлений: 1)
Ответ на: комментарий от Sonsee

ЯП без недостатков не придумали.
Как и не придумали универсального ЯП

grim ★★★☆ ()
Ответ на: комментарий от tailgunner

больше, чем int.

не уловил мысль, если это про дополнительный бит - не суть важно

Проблема в том, что unsigned-типы никогда не были для этого предназначены.

size_t - пример стандартного «количественного» типа, и тот же gcc с флагом -Wconversion ругается на код:

size_t count = -1;

wota ★★ ()

VM/платформа

  • VM отжирает гору памяти. Nuff said. Причем делает это не объектами, которые нужны, а просто незанятыми областями чтобы сборщику мусора было где разогнаться. Для десктопных приложений это значит что запускать более 1 или 2 java приложений лучше не надо.
  • VM любит оптимизировать код на лету на основе PGO в составе кажется более 100 оптимизаций. Но нафейхоа делать это заново при каждом запуске? Силушки богатырской сделать кеш бинарей не хватило? Или возможно второй запуск будет иметь совершенно другие паттерны работы?
  • Generics через стирание. Пихаешь в список int's и получаешь гору объектов по 16 байт, в идеале рядом в памяти, но не факт. Потом их все периодически пережевывает сборщик мусора.
  • Отсутствие беззнаковых типов. Хочешь беззнаковые 32 бита, юзай 64. Бакланопоцит создателей. Причин вменяемых нет, просто упоролись и все.
  • Гуи фреймворки overengineered и не угадали с концепцией. AWT и SWT в мусорку, апи отвратительное. Swing заставляет делать много телодвижений, нехило жрет память и ненависть к JTable.
  • В 90-е создатели страдали графоманией, манией величия, корпоративизмом и waterfallом, видно в любой технологии типо EJB

Язык

  • Нет лямбд. Добавь их и все приложения станут меньше в 2 раза и чище в 8. Лямбды уже добавили в паскаль, но не в Java
  • Нет traits
  • Генерить getters/setters тупняк, вполне можна было сделать universal access

Хорошие стороны Java перевешивает плохие, но ты спрашивал только поругать.

vertexua ★★★★★ ()
Последнее исправление: vertexua (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.