Клубове Дир.бг
powered by diri.bg
търси в Клубове diri.bg Разширено търсене

Вход
Име
Парола

Клубове
Dir.bg
Взаимопомощ
Горещи теми
Компютри и Интернет
Контакти
Култура и изкуство
Мнения
Наука
Политика, Свят
Спорт
Техника
Градове
Религия и мистика
Фен клубове
Хоби, Развлечения
Общества
Я, архивите са живи
Клубове Дирене Регистрация Кой е тук Въпроси Списък Купувам / Продавам 18:31 12.07.25 
Клубове/ Компютри и Интернет / Програмисти Пълен преглед*
Информация за клуба
Тема Като по учебник [re: Masklin]
Автор Colombino (ИП)
Публикувано15.12.04 10:04  



На теория не би трябвало да има разлика между теорията и практиката, но на практика не е точно така

Тия неща дето ги казваш могат да се прочетат във всеки жабешки учебник и повечето са абсолютно грешни, или са откровена рекламна лъжа. За сметка на това някои аспекти са пропуснати ( премълчани ). Аз съм работил и на двата езика и имам някои наблюдения. Ето и моя анализ на казаното:

В отговор на:

Основното предимство на Java е, че е платформа, контролираща изпълнението на програмата.



ОК, това е добре - така си независим от OS ( поне на теория. На практика не е съвсем така, но това е друга тема ).

В отговор на:

Не се занимаваш директно с управлението на паметта



На теория това е много хубаво, ако е направено добре и работи. Но не е, а липсата на каквито и да е механизми за 'ръчен' контрол на паметта прави нещата трагични.
Какво се получава на практика? Получава се, че хората пишат Object Pools и правят всякакви еквилибристики за Object Reusing за да задържат консумацията на памет в разумни граници. Т.е. не се занимават директно, а индиректно с управлението на паметта, което е значително по-трудно.

В отговор на:

и освен това всяка команда се проверява за коректност (примерно индексиране на масив).



Предобрили са го. Ако имаш random access и искаш достъп до произволен елемент е приемливо. Ама като имам нещо от рода на

for( i = 0; i < arr.size(); ++i ) // не помня как се пишеше това на Жаба

( i не се бара в цикъла ) проверката си е живо разточителство.
C++ също има такъв механизъм за проверка в контейнерите си, чрез достъп до елементите не по индекс а с container.at(index)

В отговор на:

Като по-съвременен език от C++, Java няма нужда от препроцесор



И тук работата като при паметта - теорията и практиката съществено се разминават. Ако извикването на функции с празно тяло нямаше никакъв ефект - добре. Но нещата не са направени както трябва и в момента няма добър начин да е направи trace( .. ) функция. Извикването на функция, заедно с целия текст влиза в изходния код, макар функцията да е празна. Не помагат и модификатори static final. Затова вмесо
trace("bla bla")
хората пишат
if( traceEnabled ) trace("bla bla");
Тъпо!

В отговор на:

стандартните библиотеки, които ти дават почти всичко



Дават, но са лошо документирани и са на светлинни години от MSDN. Затова често се налага да се прави reverse engineering.

В отговор на:

от мениджърска гледна точка изглежда, че с Java е много по-лесно да се напише работещ код, без класическите програмистки грешки като изтичане на памет, препълване на буфери, използване на различни декларации или параметри на интерфейси и т.н., които изяждат много време за дебъгване.



Абе не знам мениджърите какво разбират от тия неща дето ги изброи. Според мен това което те най-харесват в Жабата е лесното портване на различни OS.
Що се отнася до 'класическите' грешки - от години не съм допускал нито една от тях. Те не са трудни за избягване с добра практика.

В отговор на:

Основният проблем при Java е, че контролирания код е тежък - изисква много процесорна мощ и памет. Поради това, макар че теоретично не трябва да има голяма разлика в скорстта между приложение, писано на Java и такова, писано на C++, хората забелязват без особени усилия в повечето случаи тромавия Java код.



Основният проблем е, че жабата действа на програмиста отпускащо и той не се замисля за ресурса. С лекота се правят нови обекти, копират се данни ненужно и т.н. Кой жабар сте видели да ползва StringBuf вместо да си събира стринговете с '+'? А ресурсите за контрол отдавна не се смятат за големи.

Някои недостатъци на езика:

- Няма еквивалент на const * предаването на аргументи на функция. Това прави трудно проследяването на даден аргумент дали се модифицира.
- Няма const модификатори на функции. Това затруднява проследяването дали се модифицират членове на класа.
- Няма templates ( всъщност напоследък май са сложили, но това е твърде ново за да влияе ). Това налага чест typecast и ненужни RTTI проверки.
- Няма слаби, или профилирани кастове. А езикът налага прекалено често ползване на typecast. Това е потенциален извор на грешки и ненужни RTTI проверки.
- Няма беззнаково разширение на целочислените типове ( но пък има беззнаково шифтване на дясно, което е добре ). C++ програмистите често остават неприятно изненадани, че ако в буфера има байт със стойност FF като го разширят не става 255, а -1. Затова се налага да се пише нещо от рода на
i = b&0xFF;

System Doctor Error:
Your girlfriend is pregnant.
(A)bort, (M)arry, (I)gnore?_


Цялата тема
ТемаАвторПубликувано
* Защо Java Kaндидaт Джaбap   13.12.04 19:49
. * Re: Защо Java RepeatableRead   14.12.04 00:49
. * Re: Защо Java Гypy   14.12.04 01:11
. * САП, а ? ЯPOCTcлaв   14.12.04 09:20
. * Re: Защо Java nasko   14.12.04 09:43
. * Re: Защо Java nasko   14.12.04 09:53
. * А вие защо биете негрите, а ? ЯPOCTcлaв   14.12.04 10:14
. * Re: А вие защо биете негрите, а ? nasko   14.12.04 11:24
. * От много жаба елементарни неща не разбираш ЯPOCTcлaв   14.12.04 11:48
. * Re: Защо Java Mypy   14.12.04 12:27
. * Re: Защо Java Гypy   14.12.04 21:25
. * Re: Защо Java Mypy   15.12.04 11:40
. * Или защо C#, защо .NET и др. подобни защота ЯPOCTcлaв   14.12.04 09:16
. * Re: Защо Java жaбa   14.12.04 09:41
. * Re: Защо Java ЯPOCTcлaв   14.12.04 09:51
. * Re: Защо Java Pekoнcтpykтop   14.12.04 10:17
. * По следните причини: pyrx   14.12.04 12:56
. * Опит за отговор Masklin   14.12.04 15:51
. * Re: Опит за отговор fd   14.12.04 17:56
. * Re: Опит за отговор Questor   14.12.04 18:15
. * Не беше ли... G.Kreisel   14.12.04 19:09
. * Re: Опит за отговор фд   14.12.04 19:31
. * Re: Опит за отговор Questor   14.12.04 19:41
. * Re: Опит за отговор фд   14.12.04 21:16
. * Re: Опит за отговор Barracuda   15.12.04 09:05
. * Re: Опит за отговор fd   15.12.04 11:04
. * да ама никой не отчита, че ~!@$%^amp;*()_+   15.12.04 19:49
. * Теоретично, Masklin   16.12.04 12:24
. * Re: Теоретично, Nero   17.12.04 13:48
. * Re: да ама никой не отчита, че Nero   17.12.04 13:45
. * Re: Опит за отговор nasko   15.12.04 09:47
. * Re: Опит за отговор Pekoнcтpykтop   15.12.04 12:09
. * Re: Опит за отговор Гypy   16.12.04 01:02
. * Re: Опит за отговор lnformatora   16.12.04 01:44
. * Re: Опит за отговор Pekoнcтpykтop   17.12.04 11:51
. * Не са точно глупости Masklin   15.12.04 10:21
. * Re: Опит за отговор Paдo   15.12.04 08:26
. * Като по учебник Colombino   15.12.04 10:04
. * Доста си краен Masklin   15.12.04 10:46
. * Re: Доста си краен Colombino   15.12.04 12:11
. * Мда Masklin   15.12.04 12:43
. * Re: Като по учебник Nero   17.12.04 13:40
. * Re: Като по учебник Colombino   17.12.04 15:08
. * Re: Като по учебник Nero   17.12.04 15:54
. * Бе кви неизползвани обекти! Colombino   17.12.04 16:41
. * Re: Бе кви неизползвани обекти! Nero   17.12.04 19:09
. * Re: Като по учебник Pekoнcтpykтop   17.12.04 18:18
. * Re: Като по учебник Colombino   17.12.04 18:38
. * Re: Като по учебник Pekoнcтpykтop   17.12.04 19:12
. * Re: Като по учебник Nero   17.12.04 19:16
. * Re: Като по учебник Colombino   17.12.04 19:42
. * GC G.Kreisel   17.12.04 19:13
. * Re: GC Nero   17.12.04 19:33
. * Лисп G.Kreisel   17.12.04 19:51
. * Re: Лисп Nero   17.12.04 20:07
. * Това е несериозно Colombino   17.12.04 20:23
. * Re: Това е несериозно Дeшeв   17.12.04 23:56
. * Re: Това е несериозно Paдo   18.12.04 11:39
. * Re: Това е несериозно Дeшeв   18.12.04 22:44
. * Re: Това е несериозно Paдo   19.12.04 10:50
. * Re: Това е несериозно жaбa   20.12.04 10:53
. * Re: Това е несериозно lngon   18.12.04 15:37
. * Не е същото Colombino   18.12.04 16:24
. * Re: Не е същото lngon   18.12.04 22:16
. * Сериозно? G.Kreisel   19.12.04 12:17
. * Re: Сериозно? fg   19.12.04 13:17
. * Re: Сериозно? Colombino   19.12.04 16:11
. * Re: Сериозно? Questor   19.12.04 17:48
. * Кажи и на нас тая конвенция, де Colombino   19.12.04 23:48
. * Re: Кажи и на нас тая конвенция, де Paдo   20.12.04 10:07
. * Re: Кажи и на нас тая конвенция, де Pekoнcтpykтop   20.12.04 10:45
. * Re: Кажи и на нас тая конвенция, де Paдo   20.12.04 11:02
. * Re: Кажи и на нас тая конвенция, де Pekoнcтpykтop   20.12.04 11:10
. * Re: Кажи и на нас тая конвенция, де Paдo   20.12.04 12:02
. * Re: Кажи и на нас тая конвенция, де Questor   20.12.04 12:17
. * Re: Като по учебник qwerty   22.12.04 23:40
. * Многоплатформеност Colombino   23.12.04 02:53
. * Re: Многоплатформеност Johny Cage   23.12.04 10:13
. * Re: Многоплатформеност dc   23.12.04 11:07
. * Re: Многоплатформеност qwerty   23.12.04 20:30
. * Re: Като по учебник Nero   23.12.04 12:40
. * Re: Като по учебник dc   23.12.04 15:04
. * Re: Като по учебник qwerty   23.12.04 20:26
. * Re: Като по учебник tonio   25.12.04 21:30
. * Re: Като по учебник Язвaджия   25.12.04 22:23
. * Re: Опит за отговор Dark_Dirk   17.12.04 20:50
. * А?!? Colombino   17.12.04 21:16
. * Re: Опит за отговор asdf   18.12.04 13:40
. * за без пари G.Kreisel   19.12.04 12:24
. * Re: Защо Java Kaндидaт Джaбap   14.12.04 18:06
. * Тип приложения pyrx   14.12.04 22:57
. * Re: Защо Java Oracle   16.12.04 13:53
. * Re: Защо Java Questor   16.12.04 14:20
. * Oracle Oracle   16.12.04 15:52
. * Re: Oracle Mиpaж   17.12.04 11:45
. * Не обобщавай Colombino   17.12.04 12:15
. * Re: Не обобщавай Pekoнcтpykтop   17.12.04 12:27
. * Java IDE Colombino   17.12.04 12:40
. * Re: Java IDE Pekoнcтpykтop   17.12.04 13:06
. * Re: Java IDE Duncan Griffin   17.12.04 13:57
. * Re: Java IDE Pekoнcтpykтop   17.12.04 17:51
. * O Santa simplicitas! Colombino   17.12.04 17:58
. * Re: O Santa simplicitas! Pekoнcтpykтop   17.12.04 18:03
. * Re: O Santa simplicitas! Duncan Griffin   17.12.04 18:15
. * Re: O Santa simplicitas! Pekoнcтpykтop   17.12.04 18:20
. * Re: O Santa simplicitas! Colombino   17.12.04 18:28
. * Re: O Santa simplicitas! Pekoнcтpykтop   17.12.04 18:45
. * Re: Защо Java purist   20.12.04 07:04
. * Re: Защо Java Гypy   20.12.04 07:50
. * Тва да не е някаква тайна? Colombino   20.12.04 09:11
. * Re: Защо Java voyager   20.12.04 10:40
. * Re: Защо Java efd   20.12.04 10:53
. * Re: Защо Java xxx   24.12.04 15:32
. * azureus - 3 милиона purist   26.12.04 00:14
. * Re: azureus - 3 милиона Гypy   26.12.04 00:39
. * Re: azureus - 3 милиона purist   26.12.04 02:38
. * Re: azureus - 3 милиона xмм   26.12.04 01:34
. * Re: azureus - 3 милиона purist   26.12.04 02:33
. * Re: azureus - 3 милиона qwerty   26.12.04 11:39
. * Re: azureus - 3 милиона Hmm   26.12.04 13:08
. * Re: azureus - 3 милиона Дeшeв   26.12.04 15:35
. * Re: azureus - 3 милиона Questor   26.12.04 14:41
. * Re: azureus - 3 милиона purist   26.12.04 19:29
. * Re: azureus - 3 милиона Дeшeв   26.12.04 15:20
Клуб :  


Clubs.dir.bg е форум за дискусии. Dir.bg не носи отговорност за съдържанието и достоверността на публикуваните в дискусиите материали.

Никаква част от съдържанието на тази страница не може да бъде репродуцирана, записвана или предавана под каквато и да е форма или по какъвто и да е повод без писменото съгласие на Dir.bg
За Забележки, коментари и предложения ползвайте формата за Обратна връзка | Мобилна версия | Потребителско споразумение
© 2006-2025 Dir.bg Всички права запазени.