Автор Тема: Защо никой не обича Java?/Sprechen Sie Java? (слети теми)  (Прочетена 18148 пъти)

Lord Bad

  • Напреднали
  • *****
  • Публикации: 1667
  • Distribution: Fedora 13
  • Window Manager: GNOME
  • Jedi Knight
    • Профил
Re: Защо никой не обича Java?
« Отговор #30 -: May 09, 2010, 09:14 »
Не става дума на какво е писан Spellbook(днес между другото ще пусна най-сетне версия 0.3). Просто помня времето, когато преди 5 години във форума се водеха много смислени дискусии и беше полезно човек да прекарва време тук. Напоследък като преглеждам темите - всичко е или безсмислени спорове с не особено солидна обосновка от всяка страна и предъвкване на елементарни неща, които са дискутирани по хиляда пъти. Затова и рядко пиша вече - ама тая тема като я видях - не можах да се сдържа. Аз съм сигурно съм критикувал Java (езика) повече от всеки друг - но критиката от мен е в духа - "Грануляритета на многонишковите програми можеше да е по-добър", "Ех, да имаше поддръжка на closures", "Кой идиот направи switch-а без поддръжка на низове", "Не можеха ли да сложат някакъв културен ситанксис за директно манупулиране на колекции", "Ама от getter-и и setter-и", "Кой измисли тая грешка на природата checked exceptions" и т.н. За JVM-а единственото, което ме дразни е малко големия memory footprint като boot-не, и че няма поддръжка за динамично изпълнение на методи. Много от тези неща ще бъдат оправени в Java 7, която ще излезе тази година между другото...

Та мисълта ми е следната - едно е да се впуска човек в градивна критика - друго е да повтаря едни и същи не особено верни нещо. JVM беше действително много неефективен до 1.4, в 1.6 имаше огромни подобрения в тази сфера - повечето хора, обаче, не следят, тези развития. Те просто си говорят каквото си знаят. Едно дългроработещо Java приложение поне на теория е възможно в един момент да заработи по-бързо дори от приложение компилирано директно до машинен код благодарение на това, че виртуалната машина идентифицира с времето ключовите места в приложението, кешира и оптимизира генерирания код за конкретната микроархитектура. Като компилирате едно С приложение е малко досадно да правите отделен билд за всяка възможна целева платформа за да използва човек всички възможни процесорни възможности - за това приложенията обикновено се компилират с консервативни опции, за да работят на най-много машини.

И още нещо - не обичам Java чак толкова много :-) Любовта ми към Lisp не познава граници, но ми е неприятно да чета тоя flame подобен контент и просто затова се издразних толкова. Мир, братя! (и код и бира) ;-)

@dvd - статия от 2007ма не е мерило - JRuby се развива изключително активно. Версия 1.5 е почти готова и тя се очаква съвсем да ликвидира задочния спор с MRI. Въвеждането на invoke dynamic инструкцията в JDK 7 ще вдигне производителността на JRuby в пъти - алтернативните имплементации да му мислят...

@backtolife,
Аз съм дългогодишен C/C++ програмист - на С можеш да направиш абсолютно всичко! Въпроса, обаче, е - искаш ли да си го причиниш. Хората рядко си дават сметка, че най-ценния ресурс на един програмист е неговото време и понякога е безумно да си загубиш много време за да спечелиш малко производителност. Много лоша идея е да тръгнеш да пишеш уеб или enterprise приложения на C - за леко натоварените сайтове php, ruby, python царуват(а дори и за не толкова леки), java и .net са ествествения избор за супер тежки enterprise приложения.

На Java не можеш да пишеш системен софтуер - примерно ядро на OS, драйвери и т.н., т.е. ти можеш да ги пишеш на езика Java, ама това ще трябва да си компилирал до машинен код, освен ако не намериш начин да bootstrap-неш някаква малка jvm преди да ти напали ядрото на системата. Помня, че имаше нещо такова писано на .нет, а навремето имаше и едно недоразумение JavaOS. Във всеки случай - системния софт е едно от местата, където ефективността е критична и С и асемблер се очертава да царуват там вечно. Подобно е ситуацията с игрите - никой не иска да играя Doom 6/7/8 върху виртуална машина, всеки иска максимум производителност и затова почти всички игри се разработват на C++. Всеки език и платформа си имат предимствата и минусите - важно е човек да е запознат с тях, която селектира технологиите, в който и да е нов проект.
« Последна редакция: May 09, 2010, 09:25 от Lord Bad »
Активен

Fuelled by Fedora 13 "Goddard"
====================================
Rock it!

niakoi

  • Напреднали
  • *****
  • Публикации: 49
    • Профил
Re: Защо никой не обича Java?
« Отговор #31 -: May 09, 2010, 10:16 »
да дам и моите 2 цента:
http://googlewebtoolkit.blogspot.com/2010/04/tale-of-two-and-more-apps.html
разглеждайки езика за програмиране като средство за изразяване на идеи и мисли, с джава можеш да обясниш много неща. подкрепям лорд–бад за мнението, но все пак създаване на език за всичко не е търсената панацея, а ние трябва да имаме инструменти за всеки материал.

'кой какво обича' се свежда по-скоро до 'кой какви интереси има' в програмирането и тук няма нищо лошо, защото ако всички обичахме С, никога нямаше да се роди скала или руби или каквото и да е. ако не ни мързеше да управляваме паметта си, никога нямаше да има gc-та и т.н. (няма да се отплесвам за теорията, че мързела е в корена на прогреса)

поздрави
нас
Активен

go_fire

  • Global Moderator
  • Напреднали
  • *****
  • Публикации: 6063
  • Distribution: Дебиан Сид
  • Window Manager: ROX-Desktop / е17
  • кашик с гранатомет в танково поделение
    • Профил
    • WWW
Re: Защо никой не обича Java?
« Отговор #32 -: May 09, 2010, 10:28 »
Цитат
Понякога Java не е достатъчно стабилен
Докато въпросът за скоростта не е толкова важен стабилността на дадена програма е нещо от първостепенно значение. Java е идеален за програми които работят известно време (до няколко часа), но все още не е достатъчно стабилен за сървър приложения, които трябва да работят дни, месеци даже години без спиране или изключване. Авторът лично е изпитал това когато е писал WWW сървър на Java. Въпросният WWW сървър (с "кодово" име `Octtarion`) е достатъчно бърз, но недостатъчно надежден. Въпросният сървър `забива` след 4-5 часа работа при максимално натоварване, когато оперативната памет е вече доста фрагментирана и "garbage collector", не успява да си 'свърши работата'. Ако се направи анализ обаче тези 4-5 часа биха се равнявали на 4-5 месеца в един не чак толкова натоварен Web сайт.
Това сериозно ли?

Цитат
4) Езика отдалечава програмиста от компютъра. Повечето джава програмисти, с който съм говорил си нямат на идея какво е това стек, хийп и въобще какво става в паметта, колко бързо се изпълнява кода им и колко памет заема. Никой не мисли за оптимизицаии :( Явно паметта и прозосорното време са безкрайни ...

И какво от това? Който иска ще се научи който не иска няма, това не прави един програмист добър или лош, нито програмата.

Ами сериозно tyuio. Статията е писана през 1998 г. (помниш в началото твърдението, че езика е на три години, нали?). По това време, ако не се лъжа версията беше 1.3 и всичко това беше наистина вярно за нея.

Въпреки всички оптимизации, за които говори многоуважавания Лорд Бед, все пак жабата си е алчна. И това не е оправдано, защото разбирате ли се били появили по-алчни езици. И все пак спасение има. За настолни машини- днес паметта е голямо количество и по-евтина от всякога. За ентрепрайза, който аз наричам енъртеймънта спасението е друго- рота кодонабивачи начело с умен водач, които изолират тесните места.
Активен

В $por4e2 e истината  ;)

***

Aко даваха стипендия за най-глупави, щях да съм човека с най-много Mини Kупъри

***

Reborn since 1998 || 15.09.2007 totally М$ free && conscience clear

tyuio

  • Гост
Re: Защо никой не обича Java?
« Отговор #33 -: May 09, 2010, 12:54 »
@go_fire
Еми тогава да взема да поместя и една статия за рнр3 и да кажа на програмистите какви смешници са а? Какво ме интересува какво е било преди 100 години. Миналата година си играх с опън браво 3 месеца който си е доста жаба сървърно приложение, и да ти кажа има критика само за използваемоста му но не и за начина на работа. Както знаеш моята машина не е тавана на технологиите обаче изобщо не се затрудни само дето интерфейса му беше скапан и адски не интуитивен но за това вина няма жабата. А пък за малко неща azureus да не би да е лош торент клиен даже взех да се замислям да мина изцяло ан него особенно като компа с торентите не е същия на който ги гледам вече.
Освен това какво значи тежка бе, жабата за телефони тежка ли е или онова е различно? Щом там може значи зашо и другаде да не може бъдещето да не е зад нас, мисля че е в обратна посока!
Само да мис върши сесията и лятото си обещавам да седна да почета от онази книжка за жаба дето си я купих преди години.
Активен

bop_bop_mara

  • Напреднали
  • *****
  • Публикации: 2433
  • Distribution: Debian Testing
  • Window Manager: LXDE
  • Cute and cuddly
    • Профил
Re: Защо никой не обича Java?
« Отговор #34 -: May 09, 2010, 14:39 »
@backtolife - ми то на C това му е хубавото, че не е ОО :) Изобщо кой е казал, че ООП е най-великото нещо на света :) То е точно толкова велико, колкото останалите стилове за програмиране, защото всеки си има свое местенце под слънцето, където е незаменим.

Пък пак на въпроса за Java-та - еми явно хората, които не я харесват, или са попаднали на програми, за които тя е била избрана погрешно като език, и са се разочаровали и/или или пък просто се интересуват от (харесват, пишат) такъв софтуер, за който тя е неподходящ език в сравнение с някои други (да речем системен софтуер).
Активен

koleto

  • Напреднали
  • *****
  • Публикации: 52
  • Distribution: Ubuntu
  • Window Manager: Gnome
    • Профил
    • WWW
Re: Защо никой не обича Java?
« Отговор #35 -: May 15, 2010, 14:39 »
Понякога Java не е достатъчно стабилен
Докато въпросът за скоростта не е толкова важен стабилността на дадена програма е нещо от първостепенно значение. Java е идеален за програми които работят известно време (до няколко часа), но все още не е достатъчно стабилен за сървър приложения, които трябва да работят дни, месеци даже години без спиране или изключване.

В отговор на това ще дам един пример - Hadoop. Това е гръбнака на Twitter, Facebook и Yahoo. Писан е на Java.
Активен

Поражение не съществува, докато човек не се признае за победен!

c111100101

  • Гост
Re: Защо никой не обича Java?
« Отговор #36 -: May 15, 2010, 15:19 »
Java е прекрасен език и всеки, който отдели време да го научи няма да съжалява. Същото важи и за C++.  :)
Така, че ако владееш добре Java и C++ си супер. А ако към тях добавиш и Python, цена нямаш.
За да постигнеш обаче това се иска да жертваш много голяма част от времето си, да си упорит и да не се отказваш лесно, и не на последно място програмирането да ти доставя удоволствие.  [_]3
« Последна редакция: May 15, 2010, 15:21 от c111100101 »
Активен

BlackMetal

  • Напреднали
  • *****
  • Публикации: 93
    • Профил
Re: Защо никой не обича Java?
« Отговор #37 -: May 15, 2010, 15:48 »
Аз харесвам Java и често пиша на този език.
Харесва ми автоматичното управление на памета.
Мнгото Абстрактни Типове Данни които вече са препрограмирани.
Интуитивният синтаксис.
Логичната конвенция за наиминуване на неща.
И куп други неща.

Като профисионалист, аз не програмирам само на Java, така че имам знания в много други езици, и ползвам това което за конкретният случай ми е най удобно, ако ще програмирам приложение за Windws * няма да взема Java, или... (зависи от приложението :D, wв момента пиша едно такова).

Който ти отговаря с такива глупости е поредният кре*ен, който само говори, и не знае нищо.
Активен

iivapetrova

  • Участници
  • ***
  • Публикации: 3
    • Профил
    • WWW
Re: Защо никой не обича Java?
« Отговор #38 -: May 22, 2010, 11:23 »
Аз харесвам Java и често пиша на този език.
Харесва ми автоматичното управление на памета.
Мнгото Абстрактни Типове Данни които вече са препрограмирани.
Интуитивният синтаксис.
Логичната конвенция за наиминуване на неща.
И куп други неща.

Като профисионалист, аз не програмирам само на Java, така че имам знания в много други езици, и ползвам това което за конкретният случай ми е най удобно, ако ще програмирам приложение за Windws * няма да взема Java, или... (зависи от приложението :D, wв момента пиша едно такова).

Който ти отговаря с такива глупости е поредният кре*ен, който само говори, и не знае нищо.

Не съм съгласна с теб. Java е един от най-простите езици.
Активен

Acho

  • Напреднали
  • *****
  • Публикации: 3537
  • Distribution: Slackware, MikroTik - сървърно
  • Window Manager: console only
    • Профил
    • WWW
Re: Защо никой не обича Java?
« Отговор #39 -: May 22, 2010, 11:48 »
Цитат:

"Не съм съгласна с теб. Java е един от най-простите езици."

Аз не съм програмист, или поне отдавна не се занимавам вече, ама това ми идва в повече. ЕДИН ОТ НАЙ-ПРОСТИТЕ, как може такова мнение ? Нищо лично колежке.
« Последна редакция: May 23, 2010, 21:27 от Acho »
Активен

CPU - Intel Quad-Core Q8400, 2.66 GHz; Fan - Intel Box; MB - Intel G41M-T2; RAM - DDR2-800, Kingston HyperX, 2X2048 MB; VC - onboard, Intel G41 Express Chipset; HDD - SeaGate, 160 GB, SATAII; SB - Realtek HD Audio; DVD-RW - TSSTcorp DVD-RW; LAN - Realtek PCI-E GBE Controller; PSU - Fortron 350 Watt.

BlackMetal

  • Напреднали
  • *****
  • Публикации: 93
    • Профил
Re: Защо никой не обича Java?
« Отговор #40 -: May 22, 2010, 12:04 »
Не съм съгласна с теб. Java е един от най-простите езици.

щом казвашл
Активен

Oxy

  • Напреднали
  • *****
  • Публикации: 253
  • Distribution: Fedora / Gentoo / Debian
  • Window Manager: KDE (4.2/ 3.5)
    • Профил
    • WWW
Sprechen Sie Java?
« Отговор #41 -: May 31, 2011, 17:21 »
Малко офтопик тема ще се получи, но тъй като последната година основно се занимавам с този език ми е интересно какво мислят другите за него...
Аз лично много го харесвам. Отделен е въпросът колко е производителна тази джава... ясно е, че джава с/у С и С++ губи по този показател като език който не се изпълнява директно върху хардуерната равнина, но все пак за Големи уеб-базирани приложения какво друго ползвате? От друга страна съм наясно, че силно оптимизиран и изчистен джава код далеч не работи токова бавно, колкото се говори...
Според мен една от причините много хора да говорят за ниска производителност при джава е, това че “Лесно се учи“, ама тия дето лесно са научили джава после пишат едни приложения за чудо и приказ...

И сега нека флейма започне [_]3

jet

  • Напреднали
  • *****
  • Публикации: 2108
  • Distribution: debian
  • Window Manager: kde
    • Профил
Единствените хора които обичат Java са една малка фракция програмисти. Всички останали - потребители, администратори, тек съпорт, другата част програмисти я мразят.
Няма как като потребител да ми хареса едно бавно приложение което иска топ машина.
Няма как да ми хареса като администратор  като JVM e едно от най-продупчените откъм секюрити приложения (само флаша го бие)
Само феновете на нишки и гарбидж колектъри му се кефят.
Като се избуши някое Джава приложение под Tomcat - като отвориш лог / дъмп файла даже Джаваджиите не могат да разберат къде е проблема щото е заровен в 9 слоя та в десети абстракции.
« Последна редакция: Jun 01, 2011, 14:51 от bop_bop_mara »
Активен

..⢀⣴⠾⠻⢶⣦⠀
  ⣾⠁⢠⠒⠀⣿⡁
  ⢿⡄⠘⠷⠚⠋
  ⠈⠳⣄⠀⠀⠀⠀  Debian, the universal operating system.

lkr

  • Напреднали
  • *****
  • Публикации: 81
    • Профил
Аре стига глупости, на всички им стана ясно, че Java haters говорят от гъза си тука. Никой няма идея за какво иде реч. С това че C++/Java са едни от най-големите изцепки като езици на програмиране съм напълно съгласен (особено за първия), обаче това че Java е тромаво е крайно време да престане.

Java е било тромаво едно време, когато още е нямало JIT и VM-то е било крайно неефективно. В момента обаче JVM е една от най-стабилните индустриални платформи с повече от 15 години опит. JIT кодът в много от случаите се компилира до по-бърз от този на C++, тъй като има много повече информация от C++ компилатора. Който не е съгласен с това твърдение е напълно некомпетентен по темата и няма нужда да противоречи. Java е единствено бавна при GUI приложенията, защото не използва native widgets на операционната система, ами свои собствени. Това че Java била бавна, защото се изпълнява на VM е някакъв мит от 90те. Модерните JIT компилатори са изключително ефективни, генериращи код по-добър от обикновен компилатор. Да не говорим за GC, който в много случаи е по-бърз от ръчен malloc/free! Има доста материали по темата, който не вярва може да провери. Java има други проблеми като non-value types и locality на данните, което го прави значително по-неефективно за multicore performance в сравнение с F# примерно.
« Последна редакция: Jun 01, 2011, 14:51 от bop_bop_mara »
Активен

rcbandit

  • Напреднали
  • *****
  • Публикации: 144
    • Профил
А какви с ви наблюденията когато Java се използва за web приложения?
Как може да се оптимизира по-бързо да се зареждат страниците?
« Последна редакция: Jun 01, 2011, 14:51 от bop_bop_mara »
Активен

Подобни теми
Заглавие Започната от Отговора Прегледи Последна публикация
приложение на Java
Общ форум
laik 3 2247 Последна публикация Jun 17, 2004, 13:10
от JOKe
JAVA програмиране
Общ форум
smitev 8 3137 Последна публикация Jul 13, 2004, 00:26
от JOKe
За Java програмисти
Общ форум
smitev 1 1894 Последна публикация Sep 15, 2004, 21:49
от JOKe
Стартиране на Java приложение !
Общ форум
Diabolic_Soul 4 3229 Последна публикация Feb 22, 2005, 00:22
от JOKe
Java IDE?
Идеи и мнения
toxigen 9 3775 Последна публикация Apr 06, 2005, 23:00
от Ivozen