IMHO.WS

IMHO.WS (https://www.imho.ws/index.php)
-   Программирование (https://www.imho.ws/forumdisplay.php?f=40)
-   -   "java" Vs. "c" (https://www.imho.ws/showthread.php?t=41217)

7en 18.10.2003 00:47

"java" Vs. "c"
 
Говорят, что "Java" начал заменять "C" и что в учебных заведениях уже по немногу переходят на "Java" (как основной язык) так ли это? Хотелось бы узнать ваше мнение.

П.С. И если у кого вдруг есть книжки для начинающих скиньте плз. Я нашел "The Java Language Specification" (говорят очень хорошая), но хотелось бы на русском.

RaZEr 18.10.2003 09:14

Зайди на sun.com ... там все написано.

CEO 18.10.2003 11:32

http://www.pingwin.ru/node/folder-0774/ -- найдешь много нужного для программиста на Java.

Цитата:

Говорят, что "Java" начал заменять "C"
Мое мнение -- у каждогоя зыка программирования своя ниша. Насколько я знаю, для запуска программ на Java -- нужна программа-интерпретатор, как же он заменит C? Можно скомпилировать и java-программу, но какие приимущества тогда дает этот язык? Если мне например нужна очень мальенькая программка для прошивки микроконтроллера. К томуже по скорости программы на C должны превосходить программы на Java.

Цитата:

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

А вообще Java сейчас преобретает популярность повсюду, слышал, что даже пишут Java-программы для мобилок.
И еще, внешне Java очень напоминает C.

RaZEr 18.10.2003 11:44

Цитата:

К томуже по скорости программы на C должны превосходить.
Си это язык программирования, а бинарник создает компилятор (к примеру C++.net бинарник не создает, а создает MSIL). Java при желании можно тоже скомпилировать в бинарник, но этого не делают потому что это лишит Java основного преимущества - кросплатформенности.

Цитата:

И вероятно все только хорошее, ктож свое творение будет с плохой стороны показывать
На любом независимом ресурсе информация столь же объективна как и на sun.org ...

jutky 19.10.2003 14:22

Re: "java" Vs. "c"
 
Цитата:

Первоначальное сообщение от 7en
Говорят, что "Java" начал заменять "C" и что в учебных заведениях уже по немногу переходят на "Java" (как основной язык) так ли это?
Да , это так, там где я учился на первую степень сейчас учат java вместо C, а у нас был только общий курс по java.

melk 20.10.2003 19:53

Цитата:

Java при желании можно тоже скомпилировать в бинарник
КАК?! и главное ЧЕМ???

RaZEr 20.10.2003 20:01

Например J++ ...

cd19 20.10.2003 20:02

melk
Excelsior JET

BigFoot 21.10.2003 16:09

Господа! Не надо путать теплое с мягким (с) Гоблин.
С++ - язык с компилятором, а Java как была с интерпретируемой, так таковой и останется. Если какая-то прога умеет из Java делать exe - это значит только то, что на выходе пак джавы и интерпретатора.
Я не понимаю как можно заменить С с его свободными преобразованиями типов и "опасными" операциями с указателями Джавой.
Кстати может меня кто-нть просветит можно ли на Java сделать "книжный" или, если угодно, классический пример связанного списка или дерева при отсутствии указателей как таковых? Вообще любой пример с использованием указателей на объекты. Я серьезно. Может я просто так сильно избалован Си-шником или слишком хреново Java знаю?
Если преподают чисто объектно ориентированное программирование, то Java подходит как нельзя лучше.

RaZEr 21.10.2003 16:27

А кто сказал что языки программирования завтрашнего дня - компилируемые ?

BigFoot 22.10.2003 10:37

RaZEr
Хех... Оригинальное замечание.
Думаю, что все-таки компилируемые языки "останутся на своих позициях" и не будут заменены интерпретируемыми. Компилированный код как был самым быстрым так таким и останется. Более того, time critical куски в компилируемом языке можно написать на языке низкого уровня, а на интерпретируемом...
Вообще вся эта бодяга с повальным, финансово оправданным RAD-бардаком довела до того, что для работы современной операционки уже и 256Мб мало. Я не говорю, что все нужно писать на асме, но уважать хотя бы самого себя и искать компромис между скоростью написания программы и качеством кода нужно.

RaZEr 22.10.2003 13:26

Цитата:

Вообще вся эта бодяга с повальным, финансово оправданным RAD-бардаком довела до того, что для работы современной операционки уже и 256Мб мало
А интерпретируемые языки причем ?

BigFoot 22.10.2003 15:31

RaZEr
Да притом, что они поддаются оптимизации только на "высоком уровне", т.е. на уровне конкретного языка высокого уровня.
Окончательная интерпретируемая программа, которая будет выполняться на данном компе и данной операционке посредством интерпретатора, заведомо будет расходовать больше системных ресурсов нежели чем компилированная. С интерпретатором мы получаем дополнительные требования по памяти, выделямую под виртуальную машину (среду) и дополнительный исполняемый код модулей с функциями, которые могут и не вызываться программой, в то время как грамотно скомпилированная программа не содержит ничего лишнего.

Причем тут интерпретируемые языки? Да просто становится не по себе если представить себе, скажем, офис от мелкософта, который в рекламных целях может быть переписан на .NET или VisualBasic (я подозреваю, что морда ворда :biggrin: уже написана ма бейсике). А ведь это майкрософтовая пародия на Java, как последствия непрекращающейся ругани с Sun'ом.

И это не только микрософт. В качестве отечественого примера могу привести 1С. "Морда" нарисована на Васике, а ядро на си.

Поверь, я не являюсь противником интерпретируемых языков. Меня удивляет нездоровое, на мой взгляд, увлечение многих серьезных софтопроизводителей этими языками. Это в конечном счете ударит и по моему карману когда я через год пойду докупать "еще 512" к своему "гигу". Для того чтобы комфортно работать в виндоусе XXX.

В области написания мультиплатформенных приложений у той же джавы очень немного конкурентов. С другой стороны можно придерживаться стандартов ansi и писать портируемые программы и на том же си.

RaZEr 22.10.2003 16:01

А что плохого в .net ... GAC (Global Assembly Cache) позволяет добиться быстродействия компилируемых языков. Ты так беспокоишься за оперативную память, но ты не думаешь что библиотека в которую для совместимости напиханы ф-ии всех предыдущих стадий разработки сожрет в конечном счете памяти больше чем весь .net framework вместе взятый.

BigFoot 22.10.2003 17:32

RaZEr
Да, я беспокоюсь за оперативную память! А еще за свободное место на винте и скорость работы нужной мне программы.

Библиотека может быть прилинкована статически (я писал о ГРАМОТНО СОБРАННОЙ программе). Оптимизирующего компилятора, выкидывающего dead code, который никогда не вызывался и не будет вызываться, никто не отменял...

Ничего плохого в GAC нет. Я это уже сказал. Добиваемся скорости работы увеличивая системные требования? Тот же самый .NET framework обрастет устаревшими ф-циями для совместимости с предыдущими версиями гораздо быстрее чем обычный Си-шник и их уже никуда не выкинешь!
Да, самое веселое... 46 мегабайт framework'а (я просто посмотрел размер папки %systemroot%\assembly) для того чтобы показать 1 диалог крохотной програмки? Проект в 750 тысяч строк компилится в четырехмегабайтный бинарник, которому ничего (кроме ADO) снаружи не требуется. Я думаю, что есть небольшая разница...

RaZEr 22.10.2003 18:10

Цитата:

Библиотека может быть прилинкована статически
У меня один system32 с гигабайт ... дураки аки какие все, ... можно же было статически все это :)
Цитата:

Да, самое веселое... 46 мегабайт framework'а (я просто посмотрел размер папки %systemroot%\assembly) для того чтобы показать 1 диалог крохотной програмки?
Framework run-time весит 20 метров и ставиться 1 раз. У меня игр стоит не на один десяток гигабайт, и что ... мне убиваться где они там забыли сэкономить пару метров ?

Впрочем ты можешь жить убеждениями о бессмертности компилируемого С++. Так или иначе время все расставит на свои места.

BigFoot 23.10.2003 11:21

Цитата:

Впрочем ты можешь жить убеждениями о бессмертности компилируемого С++.
Впрочем, ты можешь жить убеждениями о бессмертности интерпретируемого .NET. :)
Цитата:

Так или иначе время все расставит на свои места.
Абсолютно согласен.

RaZEr 23.10.2003 14:18

Цитата:

Впрочем, ты можешь жить убеждениями о бессмертности интерпретируемого .NET
Разве я где-то сказал что .net будет бессмертен ? - нет, он будет лишь ступенью в развитии, такой же какой был C++.

BigFoot 24.10.2003 12:53

RaZEr
Ок. Чтобы закончить этот разговор объясню. Я не живу убеждениями о бессмертности Си как такового. Разговор начался с принципа компилируемых программ и интерпретирумых. Я еще раз повторю, что на мой взгляд и те и те языки будут сосуществовать, но компилируемые не "сдадут своих позиций".

Мое высказывание об "убеждениях" было написано в качестве ответной шутки иначе в конце не стоял бы смайлик.

RaZEr 24.10.2003 18:10

Есть грань между шуткой и насмешкой.

SpacerV 24.10.2003 19:41

RaZEr

Ты не прав, если считаешь, что интерпретируемые языки следующая ступень развития после компилируемых. Яркий пример (если помнишь или слышал) - GWBasic - полностью интерпретируемый язык и явно не вчера появился ;-). Просто Софт-индустрию постоянно "кидает" то в сторону компиляторов, то интерпретаторов. А популяризируется то, что продается, а продается то, что ново, а в компиляторах в последнее время ничего нового не появлялось (нужен новый "скачок" технологий).

Кстати для прикола (и размышлений): процессор ИНТЕРПРЕТИРУЕТ программный код, который был СКОМПИЛИРОВАН для того, чтобы ИНТЕРПРЕТИРОВАТЬ программу на Java.

Вывод: выбирать что лучше - Глупо, пытаться объединять выгодные стороны обоих - Намного умнее.

RaZEr 24.10.2003 20:24

Цитата:

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

SpacerV 24.10.2003 20:42

RaZEr
Во фразе:
Цитата:

Ты не прав, если считаешь, что интерпретируемые языки следующая ступень развития после компилируемых
я имел ввиду то, что интерпретаторы не новизна, а хорошо забытое старье. Просто про них "вспомнили" из-за "ускорения" компов.

Но, боюсь, полноценную 3Д игрушку, созданную на интерп. языке ты увидишь не скоро. А компиляторы снова будут "на волне" после инерпретаторов, когда исчезнут проблемы несовместимости платформ и/или когда появятся задачи, требующие наиболее быстро работающего решения.

RaZEr 24.10.2003 20:53

А что есть компилятор ? Программа создающая код понятный процессору ... так вот вероятность того, что изобретут процессор который станет первым и последним и других не будет, крайне мала. А значит будут разные поцессоры, старые и новые, большие и маленькие, дорогие и дешевые, и чтобы решения (программы) могли работать везде, придумали двухуровневую компиляцию ... с промежуточным кодом, который уже под конкретной системой и компилируется. По нынешним меркам потеря в скорости не критичная, а ресурсоемкие процедуры можно по прежнему писать используя unsafe code, т.е. тот код, который будет скомпилирован не в промежуточный код для виртуальной машины, а в конечный - для процессора.

rg_software 25.10.2003 07:17

По-моему, обсуждение уже далеко отошло от темы :)

Изначально утверждалось, что Java якобы заменяет C/C++ в учебных заведениях. IMHO Java куда проще их, поэтому вполне разумным представляется обучать программированию на Java, а уж потом переходить на С/С++, если потребуется.

Java действительно не заменит С/С++, в чём я уверен, по причинам производительности в частности и по многим другим причинам тоже. Например, потому, что Java - эта некая задокументированная среда, включающая не только язык, но и библиотеки. Все разработки ведутся только в рамках этой среды. Если появляется какая-либо совершенно новая технология, то органично "подрубить" её к Java гораздо сложнее, чем к языку С/С++. Пример - колёсико мыши, которое, с одной стороны, уже невесть сколько времени существует, а с другой - нельзя было поюзать под Java буквально до 2002 года.

А насчёт разницы между компилятором и интерпретатором - на самом деле она довольно условна. Теоретически никто не мешает создать процессор, машинным языком которого будет Бейсик - вот и привет ;)
Кстати, процессоры, для которых машинным языком является разновидность Java, существуют (picoJava II).

А ситуация с .net ещё более интересна. Разработчики утверждают, что скорость работы .net кода будет выше, чем обычный компилированный EXE C/C++. Причина в том, что система .net осуществляет компиляцию кода на лету (just in time), а поэтому может провести некоторую оптимизацию, рассчитанную конкретно на вашу систему. А средняя среда разработки до сих пор обычно создаёт, по умолчанию совместимый с 386 процессором - т.е. никакого использования инструкций Pentim IV вы не найдёте.

RaZEr 25.10.2003 07:48

С процессорами вроде разобрались ;) ... есть конструктивная критика по Java ?

rg_software 25.10.2003 10:59

Цитата:

Первоначальное сообщение от RaZEr
С процессорами вроде разобрались ;) ... есть конструктивная критика по Java ?
Знаете, вообще в подобных дискуссиях главное - не перейти в религиозную войну ;)

Если не затрагивать вопросы компиляции/интерпретации/переносимости/etc., а рассматривать Java именно как язык, то на мой взгляд, он не лишён синтаксических и семантических проблем.

1) В языке Java слабая типизация. С одной стороны, это увеличивает гибкость, с другой - провоцирует ошибки. К примеру, я могу положить в массив любой объект, не заботясь о его типе. А вот когда я его буду вынимать - контроль типов лежит на мне, а не на компиляторе (как в С++).

2) как следствие - постоянные скобки, вызывающие уродливый синтаксис. В С++ "выемка" элемента из хорошего класса массива выглядит естественно:
MyObject c = thearray[i];
навряд ли меня кто-то убедит, что синтаксис Java удобнее:
MyObject c = (MyObject)(thearray.get(i));

3) язык Java менее выразителен. Т.е. существуют хитрые философские концепции, которые можно выразить на С++, но нельзя выразить на Java (к примеру, так называемое "наследование реализации" без наследования интерфейса)

4) язык Java порою оказывается непоследовательным в определениях операций над объектами (например, string в ряде случаев ведёт себя как встроенный тип, а в других случаях - как класс).

5) отсутствие шаблонов (templates) трудно понять

6) нерасширяемость языка (перегрузка операций) - момент спорный, но я бы предпочёл, чтобы она была ;)

CEO 25.10.2003 12:15

"От Java ждут очень многого, особенно в связи с интеграцией с Web, и эти ожидания подстегиваются дорогостоящими маркетинговыми акциями. Время покажет, будет ли Java дееспособен как универсальный язык. Хотелось бы посмотреть, как большинство программистов и менеджеров будут реагировать на "открытие" (для многих уже сейчас очевидное), что безопасность Java и в особенности JavaScript оставляет желать много лучшего. Часто путают безопасность типов языка программирования (что корректная реализация Java обеспечивает) с собственно безопасностью - поддержкой целостности системы и обеспечением конфиденциальности и секретности, что, по-видимому, может серьезно пострадать при использовании Java. В шутку называют Java "языком реализации вирусов". Если же вернуться к сравнению С++ и Java, то вспомним следующие фундаментальные характеристики С++: абстракция данных; поддержка объектно-ориентированного программирования (ООП); "обобщенные" (generic) классы..."

RaZEr 25.10.2003 15:30

Кстати о сравнении:
http://ru.sun.com/win/java/start/intro/compar.gif

aleh 25.10.2003 16:54

Java уже очень давно (1996-1998) используется в качестве языка-для-студентов. Естественно, что при переходе с Бейсика или ещё чего на "язык покруче", при тех же преподавателях и уровне обучения, пользы мало, если не вред. Многие путают Java и JavaScript (выпускник-программист должен свободно владеть 5-6 языками программирования -- Asm, C/C++, Object Pascal, а ещё 2-3???). Проблем более чем хватает (Особенно если учесть номерацию от самой Sun -- Java2 = JSDK1.2 ~ 1.4).

Преимущество Java перед C/C++, C# и другими языками частично кроется в наличие значительного количества (более 100-150) сред разработки различного уровня. Среди них есть много "за так" -- что для _непередового_ американского вуза весьма хорошо (даром + легально). Хотя для образования существует Academic Edition за $100-200, но они обычно являют собой урезанные варианты. Для Java можно найти несколько _условно свободных_ пакетов для любой области от мобильных устройств (включая embedded) до кластерного ПО уровня предприятия (J2EE). И люди есть толковые, а это важнее красивых коробок...

Богатсво разнообразия, хреновый маркетинг и и проблемы со стабильностью (для начала) конечных продуктов самой Sun Microsystems (да, её русский вариант сайта совсем не в дугу :( ) привело к тому что есть -- много шума и падение акций. Слава богу свои JSDK делает ещё и IBM и др.

НО... Java, как торговая марка (tm), двигается слишком большим количеством различных производителей (от стиральных машин до корпоративных систем) -- слишком большая инерция у этого поезда -- главное чтобы он нас не подавил. А работы в ближайшее время на Java будет много, особенно в J2EE.
Как говорил один мой знакомый -- главное чтобы хорошо платили!!!

rg_software 25.10.2003 19:03

Цитата:

Первоначальное сообщение от RaZEr
Кстати о сравнении:
http://ru.sun.com/win/java/start/intro/compar.gif

Очень любопытная картинка!
В строке "Simple" Java получает сто из ста (типа, проще некуда), зато С++ - "ужасно сложно"... это кто так оценивал?
Дальше читаем: "Object Oriented" - Java получает статус "полностью ОО", а С++ - наполовину?! Объясните, почему...
Что означает загадочная строка "Server", по которой С++ получил полный нуль? ;)
Почему "Exceptions" для Java - 100%, для С++ - 50%?
100% Portable для Java - тоже в большой степени рекламный трюк.
Ну а самая смешная строка - Perfomance: Java = C++ = HIGH :))
Это просто без комментариев. Все критичные по скорости программы (например, игры) пишем на Java! В добрый путь...

Одним словом, не внушает доверия.

Кстати, существуют приложения, которые в принципе нельзя писать на Java. Например те, которые должны работать строго с постоянной скоростью (кардиостимулятор). Представьте себе, что этот стимулятор стимулирует себе, и тут в один прекрасный момент Garbage Collector решает произвести сборку мусора...

RaZEr 25.10.2003 19:21

Цитата:

В строке "Simple" Java получает сто из ста (типа, проще некуда), зато С++ - "ужасно сложно"... это кто так оценивал?
Небезосновательно:
Цитата:

В Java не включены некоторые редко используемые, плохо понимаемые и усложняющие работу возможности С++, которые приносят больше проблем, чем преимуществ. Пришлось отказаться от

- перегрузки операторов (но перегрузка методов в Java осталась),
- множественного наследования,
- автоматического расширяющего приведения типов.

Добавилась автоматическая сборка мусора, упрощающая процесс программирования, но несколько усложняющая систему в целом. В С и С++ управление памятью вызывало всегда массу проблем, теперь же об этом не придется много заботиться.
Цитата:

"Object Oriented" - Java получает статус "полностью ОО", а С++ - наполовину?! Объясните, почему...
Относительно того, что С++ не полностью ООП язык, говорили уже сто раз. И как Java, так и C# все-таки более ООП языки нежели С++.
Цитата:

Что означает загадочная строка "Server", по которой С++ получил полный нуль?
Это видимо типа "бесопасность" ... подтвердить или опровергнуть это утверждение невозможно без хорошего опыта создания корпоративных систем наобоих языках.
Цитата:

100% Portable для Java - тоже в большой степени рекламный трюк
Ну если использовать три значения - 0%, 50% и 100%, то тут все верно, С++ действительно уступает в портируемости.
Цитата:

Ну а самая смешная строка - Perfomance: Java = C++ = HIGH
На Java и игры пишут, наверно тормозные, но пишут :) . Кстати об играх. Критиные по производительности части кода реализуют не на С++, а на ASM (Это я к вопросу об OpenGL). Ну Sun и тут подкрепил свои слова аргументами, которые нельзя как принять так и опровергнуть:
Цитата:

Производительность всегда заслуживает особого внимания. Java достигает высокой производительности благодаря специально оптимизированному байт-коду, легко переводимому в машинный код. Автоматическая сборка мусора выполняется как фоновый поток с низким приоритетом, обеспечивая высокую вероятность доступности требуемой памяти, что ведет к увеличению производительности. Приложения, требующие больших вычислительных ресурсов, могут быть спроектированы так, чтобы те части, которые требуют интенсивных вычислений, были написаны на языке ассемблера и взаимодействовали с Java платформой. В основном, пользователи ощущают, что приложения взаимодействуют быстро, несмотря на то, что они являются интерпретируемыми.

rg_software 26.10.2003 02:19

Ну знаете ;)

Цитата:

Небезосновательно:
quote:
--------------------------------------------------------------------------------
В Java не включены некоторые редко используемые, плохо понимаемые и усложняющие работу возможности С++, которые приносят больше проблем, чем преимуществ. Пришлось отказаться от

- перегрузки операторов (но перегрузка методов в Java осталась),
- множественного наследования,
- автоматического расширяющего приведения типов.
Слова "редко используемые", "плохо понимаемые", "усложняющие работу" я бы использовал с гораздо большей осторожностью! Это следует читать: "плохо понимаемые, редко используемые, усложняющие работу авторов приведённого тезиса", и никак не иначе. Перегрузка операторов, множественное наследование и приведение типов (в большинстве своём) прекрасно используется и отлично понимается программистами на С++. Не буду ссылаться на личный опыт (хотя есть возможность), но даже стандартная библиотека С++ весьма интенсивно использует приведённые возможности. Кроме, разве что множественного наследования.
Более того, если некто не способен применять эти средства выражения своих мыслей, язык не принуждает к их использованию. Вы можете писать программы на С++ без применения средств, которые вы плохо понимаете. Зато те, кто понимает, может извлечь из этого весьма заметную выгоду.

Иными словами, ваша цитата - не более, чем частное мнение некоего человека.

разумеется, под словом "вы" я понимаю автора цитируемого тезиса

Цитата:

Добавилась автоматическая сборка мусора, упрощающая процесс программирования, но несколько усложняющая систему в целом. В С и С++ управление памятью вызывало всегда массу проблем, теперь же об этом не придется много заботиться.
Теперь это вызвало другие проблемы. Во-первых, на Java невозможно писать приложения, скорость выполнения которых не должна меняться (я уже об этом говорил). Во-вторых, утечки памяти в Java всё равно происходят, но диагностика их затруднена (см. книгу Б.Тейта "Горькая чашка Java").

Цитата:

Относительно того, что С++ не полностью ООП язык, говорили уже сто раз. И как Java, так и C# все-таки более ООП языки нежели С++.
Если С++ позволяет использовать ОО стиль, но не заставляет вас делать это принудительно, следует ли, что С++ - не полностью ОО-язык?
Вы МОЖЕТЕ написать на С++ НЕ-ОО программу, но это ваш личный выбор, а не ограничения языка.

Цитата:

Ну если использовать три значения - 0%, 50% и 100%, то тут все верно, С++ действительно уступает в портируемости.
Да, но портируемость Java сродни переносимости эмулятора. Велком в 80-е! Давайте писать для Yamaha MSX или ZX Spectrum! На любой платформе, где есть эмуляторы этих машин (а они есть), программы окажутся 100% переносимыми.

Цитата:

В основном, пользователи ощущают, что приложения взаимодействуют быстро, несмотря на то, что они являются интерпретируемыми.
Для одной лишь поддержки приемлимой скорости выполнения любого Java приложения, написанного для JRE 1.4 требуется хотя бы процессор класса Pentium II и 128 (если не больше) мегабайт памяти. Заметьте, чтобы ваша программа "Hello, world" хотя бы загружалась и запускалась с нормальной скоростью. Мой личный опыт говорит, что тормозит это дело просто дико :)

RaZEr 26.10.2003 04:03

Цитата:

Теперь это вызвало другие проблемы. Во-первых, на Java невозможно писать приложения, скорость выполнения которых не должна меняться (я уже об этом говорил). Во-вторых, утечки памяти в Java всё равно происходят, но диагностика их затруднена (см. книгу Б.Тейта "Горькая чашка Java").
То, что утечки памяти происходят это конечно печально, а вот приложения скорость которых не должна меняться, это не особое препятствие, т.к. таких приложений не так много.
Цитата:

Если С++ позволяет использовать ОО стиль, но не заставляет вас делать это принудительно, следует ли, что С++ - не полностью ОО-язык?
Вы МОЖЕТЕ написать на С++ НЕ-ОО программу, но это ваш личный выбор, а не ограничения языка.
Нет, ну что можно отказаться от ООП, это неплохо, но к примеру в C# нельзя отказаться и я бы не сказал что это напрягает.
Цитата:

Для одной лишь поддержки приемлимой скорости выполнения любого Java приложения, написанного для JRE 1.4 требуется хотя бы процессор класса Pentium II и 128 (если не больше) мегабайт памяти. Заметьте, чтобы ваша программа "Hello, world" хотя бы загружалась и запускалась с нормальной скоростью. Мой личный опыт говорит, что тормозит это дело просто дико
PHP тоже тормозит дико, однако его использует куча народа и никто особо не жалуется. Главное чтобы можно было реализовать поставленные задачи.
Цитата:

Да, но портируемость Java сродни переносимости эмулятора. Велком в 80-е! Давайте писать для Yamaha MSX или ZX Spectrum! На любой платформе, где есть эмуляторы этих машин (а они есть), программы окажутся 100% переносимыми.
Под эти эмуляторы много не напишешь.

PS: А как насчет плюсов ? Есть предложения :biggrin: ?

BigFoot 28.10.2003 13:24

Цитата:

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

PHP тоже тормозит дико, однако его использует куча народа и никто особо не жалуется. Главное чтобы можно было реализовать поставленные задачи.
У PHP немножко другое "положение в жизни". У него нет достойных и достаточно дешевых конкурентов в своей области. ASP - не прижился (я имею в виду в мировом масштабе), CGI стар и слаб, Java то попадает в майкрософтовые операционки, то нет...
"На халяву" получай PHP - сильный интерпретируемый язык.

aleh 28.10.2003 15:57

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

2) качественно написанные задачи (везде есть свои нюансы :) ) работают нисколько не медленнее своих собратьев на C++. В некоторых задачах скорость определяется временем реагирования пользователя а не количеством терафлопс. Правда нужно вдвое больше памяти...

3) при производстве ПО играет роль стоимость: среды разработки, дополнительных пакетов, лицензионных отчислений, времени кучи людей (аналитик, постановщик задач, технический писатеоль, кодер, тестер...) и прочего. Главное чтобы в итоге был $++ :biggrin:

4) Знание (ну и опыт конечно)! Уже сколько спорят про Win* VS *nux -- сплошные повторы (очень интересная тема для диссертации). Если человек знает *чего* хочет, и при этом хорошо понимает *как* этого добится, то выбор языка программирования чисто технический фопрос -- молоток или кувалда ;)
Java имеет ряд заточек под конкретные задачи.

5) В Java есть поддержка 3D Graphics, Music & Sound, Даже поддержка речи -- все модные слова. На W3C есть проект JigSaw -- это реализация прокси на Java. Кто чего ещё хочет?

По поводу кардиологии -- что-то в медицине я видел только специализированную технику, спец. ПО (можно конечно использовать супер комплекс LinWin-PC-Ухо-Горло-Проктолог++). Для таких вещей есть Embedded Java (это вам не стандартная JRE). В мобильниках памяти не так уж и много, а в Prince of Persia играть можно! Java такое же широкое слово как и "Персональный Компьютер" -- кто что имеет, тот то и понимает...

P.S.
В последнее время слишком много пошло _разборок_ по поводу Java -- Java vs C++, Java vs C#, Java vs $$$, SUN vs MS... Ну не умеете программировать, или не хотите, то так и скажите. Лично я имеют опыт работы с Asm, Object Pascal, C/C++, Perl, Java и ещё пару языков (причём не только для x86 платформы) и в упор не вижу причин так сильно "бузить". Обычно выбор стоит не между языками программирования, а между -- быстро, красиво, за $. Сначала из этого и исходят, если другое не оговорено в контракте/постановке_задачи (учтно или писменно, роли не играет). В противном случае вы будете много знать и считатся крутым во всём-и-везде, но реальных завершённых дел будет мало :(

Java так просто Вам не здастся!!! Боритесь с этой заразой! (Если зашли в тупик, то лучше на время переключится на что-то другое, не Java). Одним словом дерзайте :yees:

BigFoot 28.10.2003 17:23

aleh
Цитата:

Ну не умеете программировать, или не хотите, то так и скажите.
Так аккуратненько опустил дискутирующих... :)
Может быть стаж не так велик, но за 7 лет работы программистом (читать программистом, а не эникейщиком) можно составить свою точку зрения о языках программирования и обсудить ее с себе подобными...
Не надо сразу клеймить людей. :yees:

aleh 28.10.2003 18:08

BigFoot
Не надо сразу же всё принимать на свой счёт. :)

Просто я уже устал от таких тем: *чтото-с-Java vs нечто-другое. Особенно после того, когда после злобных дебат в какой-то теме оппонент спрашивает в другой теме как сделать что-то простое (Опять не надо всё принимать на свой счёт :biggrin: ).

Очень много таких "бесед", за последние полгода, было на:
www.theserverside.com
www.javalobby.org
www.javable.com
-- иногда доходило до драки :blin:

P.S.
Извините и простите...

Наверное лучше создать отдельный раздел и рассматривать конкретные темы/направления. Иначе это грозит перерости в вариант флейма.
Мир можно облететь за 80 дней... чтобы жениться этого хватит, но чтобы узнать его -- нет.

RaZEr 29.10.2003 22:18

Еще мнение:
http://www.fcenter.ru/articles.shtml?interview/7796


Часовой пояс GMT +4, время: 04:28.

Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.