У нас тут с павлентусом очередной спор вышел в топе язык программирования. Я подумал что неплохо бы открыть новый топ и обсудить здесь преимущества и недостатки этих двух языков.
И конечно выделить лидера ( хотя помоему и так все ясно;) )
Вид для печати
У нас тут с павлентусом очередной спор вышел в топе язык программирования. Я подумал что неплохо бы открыть новый топ и обсудить здесь преимущества и недостатки этих двух языков.
И конечно выделить лидера ( хотя помоему и так все ясно;) )
Начнем-с
1. Производительность Java в два раза меньше чем у С++ ( если брать большие серверные приложения, требовательные игрушки и проги для серьезных вычислений ).
2. Отсутствие множественного наследования.
3. Отсутствие перегрузки операторов.
4. Отсутствие шаблонов.
5. На Java не напишешь драйвера и другие системные программы
[QUOTE=THRESHE]Начнем-с
1. Производительность Java в два раза меньше чем у С++ ( если брать большие серверные приложения, требовательные игрушки и проги для серьезных вычислений ).
[/QUOTE]
откуда дровишки???
[url]http://www.codenet.ru/webmast/java/javavscpp.php[/url]
[QUOTE=THRESHE]
2. Отсутствие множественного наследования.
3. Отсутствие перегрузки операторов.
4. Отсутствие шаблонов.
5. На Java не напишешь драйвера и другие системные программы[/QUOTE]
гм ;), хочу я посмотреть как ты на си напишеш сложную распределенную и запутанную логикой систему... ;)
мораль: у каждого свои плюсы и минусы.. ;)
[QUOTE=THRESHE]Начнем-с
1. Производительность Java в два раза меньше чем у С++ ( если брать большие серверные приложения, требовательные игрушки и проги для серьезных вычислений ).
2. Отсутствие множественного наследования.
3. Отсутствие перегрузки операторов.
4. Отсутствие шаблонов.
5. На Java не напишешь драйвера и другие системные программы[/QUOTE]
Чтоб такие заявления делать, надо хотя бы быть компетентным в обеих областях.
1. Т.е. у вас есть набор тестов доказывающих, что производительность Java программы(_любой_) ровно в 2 раза меньше, нежели аналогичной(по алгоритмам и архтектуре) на C++? Если так - то это революция! Выложите свои материалы.
2. Это спасительное свойство явы, это упрощение показывает логичность языка и его простоту, по сравнению с С++.
3. За 3 года разработки на Java не возникало острой нобходимости иметь такую возможность.
4. Уже около 2х лет как вышла Java 5, где появились generics - они аналогичны шаблонам, опять Вы показали свою некомпетентность. При этом их использование никак не отражается на быстродействии собранных программ, в отличие от использования их в C++.
5. На Java пишут даже ОС. Хотя им и нужен небольшой загрузчик на ассемблере, но это мелочь, дрова писать можно, хотя и нет необходимости.
И самое главное что Вы не учли, это разные секторы рынка и области применения языков, у Java и С++ они совершенно разные. Пересекаются они очень редко.
н-а-ч-а-л-о-с-ь :)
THRESHE,
сразу видно что с javoй вы либо вообще незнакомы, либо поверхностно.
[QUOTE=optic]
гм ;), хочу я посмотреть как ты на си напишеш сложную распределенную и запутанную логикой систему... ;)
[/QUOTE]
OS GNU/Linux
Как я и говорил: "С++талинизм" :)
Кстати, на любые тесты Java vs C(++) надо делать поправку.
Потому что Java - технология, в раскрутку которой (в т.ч. и публикацией таких тестов и созданием программерских сообществ) вкладыватся огромные деньги.
В раскуртку С++ Б.С. насколько мне известно не вложил ни копейки и никакая фирма не была напрямую заинтересована во вложениях в пиар-компанию С++ (хотя косвенные вложения были).
Для Sun и MS идет война в мозгах программеров за продвижение собственных средств разработки, а на войне все средства хороши... ИМХО на войне лучше держаться подальше от начальства - и поближе к кухне. ;-)
Не то, что я не доверяю ничему публикуемому, но то, с чем я лично сталкивался в мире джава-программ выглядело потрясающе. Если у вас стоит суперкомп класса DeepBlue.
Для реальных приложений оно давало много денег и комфорта программистам (и сертифицированным преподавателям). И огромный геморрой заказчикам. Всегда. Я не видел ни одной эффективной реализации, которая бы не демонстрировалась на сайтах и презентациях, а стояла на рабочем столе директора или в серверной.
Зато видел много примеров, когда такие системы умирали перед сдачей либо сразу после сдачи заказчику.
Это не означает, что таких систем нет, но увы, мне они не попадались.
[quote]И самое главное что Вы не учли, это разные секторы рынка и области применения языков, у Java и С++ они совершенно разные. Пересекаются они очень редко.[/quote] Вот с этого и надо начинать, поэтому считаю что топик нужно ЗАКРЫТЬ , пока не разгорелась [B]религиозная война.[/B]
Потому как люди, "компетентные в обеих областях" не будут устраивать спор C++ vs Java, так как "у каждого свои плюсы и минусы.. "
На счет "системные программы" - не совсем то, но все же : [URL="http://www.tivo.com/1.0.asp"]вот[/URL] - как вы дуамете ЧТО там внутри ??
З.Ы. а вообще из подписи автора " C++ & AMD forever" - сразу ясно, что фанат .. а с фанатами спорить бесполезно
Откровенно говоря, я - любитель С++. Однако, как уже неоднократно здесь сказали, нельзя категорично заявлять, что С++ лучше Java или наоборот. У каждого из этих средств есть свои сильные и слабые стороны. И любой квалифицированный специалист должен это понимать, и пользоваться этими инструментами наиболее подходящим образом. Представьте себе, что будет, если люди начнут спорить о том, что лучше, вантуз или бензопила? Я согласен с тем, что области применения этих технологий сейчас практически не пересекаются. Однако, с появлением Java-технологии, С++ несколько утратил свои позиции на рынке серверных приложений.
А что касается отсутствия в Java множественного наследования, перегрузки операторов и других возможностей С++, так это объясняется тем, что в Java это просто не нужно. У каждого из этих языков своя идеология и методы проектирования. И если, THRESHE, вы чувствуете, что вам не хватает в Java, скажем, виртуального наследования, то читайте книги или документацию по паттернам проектирования на Java.
Почему бесполезно ? Может вы меня переубедите :) В С++ я пришел тоже после Паскаля так что сменить язык не страшно (тем более что они похожи)
А насчет того где пересекаются например в серверных приложениях
[B]Религиозной войны[/B] не будет не волнуйтесь я просто предложил обсудить плюсы и минусы этих языков
А насчет некомпетентности то в каком то смысле вы правы потому что пробовал программировать на Java всего две недели и перешел обратно так как не понравилось
А очередной спор возник не по моей вине [url]https://forumodua.com/showpost.php?p=932558&postcount=189[/url]
[quote=THRESHE]
А очередной спор возник не по моей вине [URL="https://forumodua.com/showpost.php?p=932558&postcount=189"]https://forumodua.com/showpost.php?p=932558&postcount=189[/URL][/quote]
для этого существует приват (ЛС - личные сообщения).
А почему не обсудить этот вопрос всем вместе ? Ведь я только студент, а у нас на форуме тусуются уже сформировавшиеся программеры :)
Интересно услышать мнение не только павлентуса Java-ортодокса но и других :)
[QUOTE=THRESHE]А почему не обсудить этот вопрос всем вместе ? Ведь я только студент, а унас на форуме тусуются уже сформировавшиеся программеры :)
Интересно услышать мнение не только павлентуса Java-ортодокса на и других :)[/QUOTE]
Как тебя еще не забанили :) Фразочки выбирай :)
[QUOTE=Gothy]
1. Т.е. у вас есть набор тестов доказывающих, что производительность Java программы(_любой_) ровно в 2 раза меньше, нежели аналогичной(по алгоритмам и архтектуре) на C++? Если так - то это революция! Выложите свои материалы.
[/quote]
конечно, все программы на java тормозят по разному, но некоторые и поболе ;)
[quote]
2. Это спасительное свойство явы, это упрощение показывает логичность языка и его простоту, по сравнению с С++.
[/quote]
меня всегда забавляли подобные извинения
одно дело, если бы в с++ все классы надо было наследовать от как минимум двух, так нет же: надо один - используй один, надо десять - используй десять.
а если в недоязыке десять нельзя, то это никак нельзя считать плюсом, т.к. один можно и там и там.
проблемы сборщиков мусора не волнуют тех, кто ими не пользуется
[quote]
3. За 3 года разработки на Java не возникало острой нобходимости иметь такую возможность.
[/quote]
не удивительно, т.к. во-первых, эта возможность нацелена на разработчиков библиотек, а во-вторых, наиболее эффективна совместно с нормальной реализацией шаблонов
[quote]
4. Уже около 2х лет как вышла Java 5, где появились generics - они аналогичны шаблонам, опять Вы показали свою некомпетентность. При этом их использование никак не отражается на быстродействии собранных программ, в отличие от использования их в C++.
[/quote]
в чем-то вы правы, т.к. в с++ шаблоны поддерживают static polymorphism и по сравнением с dynamic polymorphism ( виртуальными функциями ), благоприятно отражаются на быстродействии программы. generics же с шаблонами имеют мало общего, а гораздо ближе к виртуальным функциям. потому и тормозят и к [url]http://en.wikipedia.org/wiki/Template_metaprogramming[/url] никаким боком. "The technique is used by a number of languages, including C++, D, Eiffel, Haskell, ML and XL, of which the C++ programming language is probably the most prominent"
ни java ни с# не просматривается ;)
[quote]
5. На Java пишут даже ОС. Хотя им и нужен небольшой загрузчик на ассемблере, но это мелочь, дрова писать можно, хотя и нет необходимости.
[/quote]
много чего пишут на непредназначенных для этого языках
[quote]
И самое главное что Вы не учли, это разные секторы рынка и области применения языков, у Java и С++ они совершенно разные. Пересекаются они очень редко.[/QUOTE]
это верно. сектор java - апплеты.
раньше я думал, что java это для rad. типа сляпать что-то одноразовое по быстрому. однако, это как раз технология, по которой производится большинство игр.
и почему-то их пишут на с++. арканоиды и прочие кваки для телефонов не рассматриваем - это ближе к апплетам.
Тема на самом деле не корректна.
Оба языка хороши.
Ява, как более поздний язык - проще и красивей.
Но дело не в языках, а в задачах,
требованиях заказчика и т.п.
В идеале, программист должен знать одну технологию,
но очень досконально. И находить под нее работодателя.
На деле фирмам часто приходится переключаться:
появился новый заказчик,
или у старого появился новый бзык,
или директору вещий сон приснился,
и тогда - вперед на мины: ать, два и завтра пишем на Smalltalk + Objective C.
Папы всякие важны,
папы всякие нужны.
Подброшу-ка я полешко в дискуссию :)
[url="http://local.joelonsoftware.com/mediawiki/Опасности_обучения_на_Java"]Опасности обучения на Java[/url]
[QUOTE=fenikso]Подброшу-ка я полешко в дискуссию :)
[url="http://local.joelonsoftware.com/mediawiki/Опасности_обучения_на_Java"]Опасности обучения на Java[/url][/QUOTE]
Битая ссылка =(
похоже ссылка бьется, лучше перейти из [url]http://local.joelonsoftware.com/mediawiki/index.php/Russian[/url]
на пункт "Опасности обучения на Java".
[QUOTE]Счастливые выпускники школ Java никогда не возьмутся за ужасные, выходящие за границы их понимания операции с основанными на указателях хеш-таблицами. Они никогда не будут делать великолепных, безумных, сумасшедших попыток упаковать что-то в несколько битов. Они никогда не будут загружать свои головы мыслями о том, как, в полностью функциональных программах, значение переменной никогда не изменяется, и все-таки, оно постоянно изменяется! Парадокс! [/QUOTE]
:rzhu_nimagu: