У нас тут с павлентусом очередной спор вышел в топе язык программирования. Я подумал что неплохо бы открыть новый топ и обсудить здесь преимущества и недостатки этих двух языков.
И конечно выделить лидера ( хотя помоему и так все ясно )
|
У нас тут с павлентусом очередной спор вышел в топе язык программирования. Я подумал что неплохо бы открыть новый топ и обсудить здесь преимущества и недостатки этих двух языков.
И конечно выделить лидера ( хотя помоему и так все ясно )
Начнем-с
1. Производительность Java в два раза меньше чем у С++ ( если брать большие серверные приложения, требовательные игрушки и проги для серьезных вычислений ).
2. Отсутствие множественного наследования.
3. Отсутствие перегрузки операторов.
4. Отсутствие шаблонов.
5. На Java не напишешь драйвера и другие системные программы
откуда дровишки???Сообщение от THRESHE
http://www.codenet.ru/webmast/java/javavscpp.php
гм , хочу я посмотреть как ты на си напишеш сложную распределенную и запутанную логикой систему...Сообщение от THRESHE
мораль: у каждого свои плюсы и минусы..
Чтоб такие заявления делать, надо хотя бы быть компетентным в обеих областях.Сообщение от THRESHE
1. Т.е. у вас есть набор тестов доказывающих, что производительность Java программы(_любой_) ровно в 2 раза меньше, нежели аналогичной(по алгоритмам и архтектуре) на C++? Если так - то это революция! Выложите свои материалы.
2. Это спасительное свойство явы, это упрощение показывает логичность языка и его простоту, по сравнению с С++.
3. За 3 года разработки на Java не возникало острой нобходимости иметь такую возможность.
4. Уже около 2х лет как вышла Java 5, где появились generics - они аналогичны шаблонам, опять Вы показали свою некомпетентность. При этом их использование никак не отражается на быстродействии собранных программ, в отличие от использования их в C++.
5. На Java пишут даже ОС. Хотя им и нужен небольшой загрузчик на ассемблере, но это мелочь, дрова писать можно, хотя и нет необходимости.
И самое главное что Вы не учли, это разные секторы рынка и области применения языков, у Java и С++ они совершенно разные. Пересекаются они очень редко.
н-а-ч-а-л-о-с-ь
THRESHE,
сразу видно что с javoй вы либо вообще незнакомы, либо поверхностно.
OS GNU/LinuxСообщение от optic
The future is already here - it is just unevenly distributed. (c) W. Gibson
Как я и говорил: "С++талинизм"
Кстати, на любые тесты Java vs C(++) надо делать поправку.
Потому что Java - технология, в раскрутку которой (в т.ч. и публикацией таких тестов и созданием программерских сообществ) вкладыватся огромные деньги.
В раскуртку С++ Б.С. насколько мне известно не вложил ни копейки и никакая фирма не была напрямую заинтересована во вложениях в пиар-компанию С++ (хотя косвенные вложения были).
Для Sun и MS идет война в мозгах программеров за продвижение собственных средств разработки, а на войне все средства хороши... ИМХО на войне лучше держаться подальше от начальства - и поближе к кухне. ;-)
Не то, что я не доверяю ничему публикуемому, но то, с чем я лично сталкивался в мире джава-программ выглядело потрясающе. Если у вас стоит суперкомп класса DeepBlue.
Для реальных приложений оно давало много денег и комфорта программистам (и сертифицированным преподавателям). И огромный геморрой заказчикам. Всегда. Я не видел ни одной эффективной реализации, которая бы не демонстрировалась на сайтах и презентациях, а стояла на рабочем столе директора или в серверной.
Зато видел много примеров, когда такие системы умирали перед сдачей либо сразу после сдачи заказчику.
Это не означает, что таких систем нет, но увы, мне они не попадались.
The future is already here - it is just unevenly distributed. (c) W. Gibson
Вот с этого и надо начинать, поэтому считаю что топик нужно ЗАКРЫТЬ , пока не разгорелась религиозная война.И самое главное что Вы не учли, это разные секторы рынка и области применения языков, у Java и С++ они совершенно разные. Пересекаются они очень редко.
Потому как люди, "компетентные в обеих областях" не будут устраивать спор C++ vs Java, так как "у каждого свои плюсы и минусы.. "
На счет "системные программы" - не совсем то, но все же : вот - как вы дуамете ЧТО там внутри ??
З.Ы. а вообще из подписи автора " C++ & AMD forever" - сразу ясно, что фанат .. а с фанатами спорить бесполезно
Последний раз редактировалось Пилигрим; 30.01.2007 в 12:33.
Откровенно говоря, я - любитель С++. Однако, как уже неоднократно здесь сказали, нельзя категорично заявлять, что С++ лучше Java или наоборот. У каждого из этих средств есть свои сильные и слабые стороны. И любой квалифицированный специалист должен это понимать, и пользоваться этими инструментами наиболее подходящим образом. Представьте себе, что будет, если люди начнут спорить о том, что лучше, вантуз или бензопила? Я согласен с тем, что области применения этих технологий сейчас практически не пересекаются. Однако, с появлением Java-технологии, С++ несколько утратил свои позиции на рынке серверных приложений.
А что касается отсутствия в Java множественного наследования, перегрузки операторов и других возможностей С++, так это объясняется тем, что в Java это просто не нужно. У каждого из этих языков своя идеология и методы проектирования. И если, THRESHE, вы чувствуете, что вам не хватает в Java, скажем, виртуального наследования, то читайте книги или документацию по паттернам проектирования на Java.
С уважением, Андрей.
Почему бесполезно ? Может вы меня переубедите В С++ я пришел тоже после Паскаля так что сменить язык не страшно (тем более что они похожи)
А насчет того где пересекаются например в серверных приложениях
Религиозной войны не будет не волнуйтесь я просто предложил обсудить плюсы и минусы этих языков
А насчет некомпетентности то в каком то смысле вы правы потому что пробовал программировать на Java всего две недели и перешел обратно так как не понравилось
А очередной спор возник не по моей вине https://forumodua.com/showpost.php?p=932558&postcount=189
для этого существует приват (ЛС - личные сообщения).Сообщение от THRESHE
А почему не обсудить этот вопрос всем вместе ? Ведь я только студент, а у нас на форуме тусуются уже сформировавшиеся программеры
Интересно услышать мнение не только павлентуса Java-ортодокса но и других
Последний раз редактировалось THRESHE; 30.01.2007 в 19:53.
Как тебя еще не забанили Фразочки выбирайСообщение от THRESHE
конечно, все программы на java тормозят по разному, но некоторые и поболеСообщение от Gothy
меня всегда забавляли подобные извинения2. Это спасительное свойство явы, это упрощение показывает логичность языка и его простоту, по сравнению с С++.
одно дело, если бы в с++ все классы надо было наследовать от как минимум двух, так нет же: надо один - используй один, надо десять - используй десять.
а если в недоязыке десять нельзя, то это никак нельзя считать плюсом, т.к. один можно и там и там.
проблемы сборщиков мусора не волнуют тех, кто ими не пользуется
не удивительно, т.к. во-первых, эта возможность нацелена на разработчиков библиотек, а во-вторых, наиболее эффективна совместно с нормальной реализацией шаблонов3. За 3 года разработки на Java не возникало острой нобходимости иметь такую возможность.
в чем-то вы правы, т.к. в с++ шаблоны поддерживают static polymorphism и по сравнением с dynamic polymorphism ( виртуальными функциями ), благоприятно отражаются на быстродействии программы. generics же с шаблонами имеют мало общего, а гораздо ближе к виртуальным функциям. потому и тормозят и к http://en.wikipedia.org/wiki/Template_metaprogramming никаким боком. "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"4. Уже около 2х лет как вышла Java 5, где появились generics - они аналогичны шаблонам, опять Вы показали свою некомпетентность. При этом их использование никак не отражается на быстродействии собранных программ, в отличие от использования их в C++.
ни java ни с# не просматривается
много чего пишут на непредназначенных для этого языках5. На Java пишут даже ОС. Хотя им и нужен небольшой загрузчик на ассемблере, но это мелочь, дрова писать можно, хотя и нет необходимости.
это верно. сектор java - апплеты.И самое главное что Вы не учли, это разные секторы рынка и области применения языков, у Java и С++ они совершенно разные. Пересекаются они очень редко.
раньше я думал, что java это для rad. типа сляпать что-то одноразовое по быстрому. однако, это как раз технология, по которой производится большинство игр.
и почему-то их пишут на с++. арканоиды и прочие кваки для телефонов не рассматриваем - это ближе к апплетам.
Тема на самом деле не корректна.
Оба языка хороши.
Ява, как более поздний язык - проще и красивей.
Но дело не в языках, а в задачах,
требованиях заказчика и т.п.
В идеале, программист должен знать одну технологию,
но очень досконально. И находить под нее работодателя.
На деле фирмам часто приходится переключаться:
появился новый заказчик,
или у старого появился новый бзык,
или директору вещий сон приснился,
и тогда - вперед на мины: ать, два и завтра пишем на Smalltalk + Objective C.
Папы всякие важны,
папы всякие нужны.
Подброшу-ка я полешко в дискуссию
Опасности обучения на Java
Битая ссылка =(Сообщение от fenikso
похоже ссылка бьется, лучше перейти из http://local.joelonsoftware.com/mediawiki/index.php/Russian
на пункт "Опасности обучения на Java".
The future is already here - it is just unevenly distributed. (c) W. Gibson
Счастливые выпускники школ Java никогда не возьмутся за ужасные, выходящие за границы их понимания операции с основанными на указателях хеш-таблицами. Они никогда не будут делать великолепных, безумных, сумасшедших попыток упаковать что-то в несколько битов. Они никогда не будут загружать свои головы мыслями о том, как, в полностью функциональных программах, значение переменной никогда не изменяется, и все-таки, оно постоянно изменяется! Парадокс!
Социальные закладки