LINUX.ORG.RU

Производительность Java, C и C++

 , , ,


4

6

Предположим я не тролль, а правда знаю C, C++ и Java.

Java умеет оптимизировать «горячий путь», т.е. в среднем должна быть быстрее на этом пути, чем программы на C или C++. С другой стороны при отклонении от этого «горячего пути» начинаются тормоза.

В большинстве случаев в интерпрайзе(вэб/промышленное ПО) применение java оправдано(там где регулярно выполняется всего 10 основных действий). Т.к. порог вхождения у java ниже - можно найти больше программистов, следовательно дешевле разработка.

Вопрос: чем вызвано массовое увлечение написанием десктопного ПО на java, ведь явного «горячего пути» в десктопных ПО обычно не существует?

ЗЫ программисты на Qt, а не на C++ проходите мимо, вопрос к людям постарше.


Ответ на: комментарий от anonymous

И, в отличие от кода на крестах, сишный код может читать любой человек без желания сблевать!

Сейчас придёт Женька и будет показывать как из-за исключений на цепепе можно писать и читать легче, чем на Си :-) Возможно, расскажет заезженную мантру про шаблоны и про проверки компилятора, которых нет в Си :-) А может быть даже про превосходство цепепе над Си в скорости из-за того, что компилятору больше информации известно!!1 :-)

anonymous
()
Ответ на: комментарий от anonymous

С++ — ненужное зло! Все задачи можно решить обычным C89!

и это чмо наверняка называет себя инженером

anonymous
()
Ответ на: комментарий от anonymous

Нет, дебил, «это чмо» называет себя научным сотрудником ☺

anonymous
()
Ответ на: комментарий от curufinwe

Так они действительно написаны под .NET, или просто имеют биндинги к .NET?

Вот когда мне нужно будет залезть в дисяточку максимальную по работе, я посмотрю что там и как и кастану тебя.

EXL ★★★★★
()
Ответ на: комментарий от anTaRes

А потом пришли чуваки с машинными кодами и наехали. И победили. Теперь пишут только на них.

Думали все? Пришли чуваки из интела и намекнули про микрокод и скзали, что оптимизировать бы под их внутренний компилятор надо-с.

Жги, Господь, этот тред достоин твоего гнева.

JAkutenshi ★★
()
Ответ на: комментарий от Iron_Bug

Компиляция - процесс преобразования кода с одного языка на другой (обычно с более высокоуровневого на низкий). То, что там нету, напрмиер, какой-то оптимизации или то, что он простой, не делает moc не компилятором. Как бы, да, ничего сверхъестественного, но там человек дое^w докопался до терминов, на что ему и ответили, что он не прав.

JAkutenshi ★★
()
Ответ на: комментарий от JAkutenshi

Компиляция - процесс преобразования кода с одного языка на другой

я свой код на крестах через гугл-транслейт прогнал - он теперь тоже компилятор.

anonymous
()
Ответ на: комментарий от anonymous

Из QT в C++ очевидно.

IDE - тоже компилятор, преобразует из IDE в С++. можно написать «cl», нажать хот-кей компиляции(в большинстве IDE - это Ctrl+Space) и скомпилировать в язык C++

anonymous
()
Ответ на: комментарий от anonymous

С++ — ненужное зло! Все задачи можно решить обычным C89!

Только K&R, только хардкор!

rupert ★★★★★
()
Ответ на: комментарий от anonymous

IDE - тоже компилятор, преобразует из IDE в С++. можно написать «cl», нажать хот-кей компиляции(в большинстве IDE - это Ctrl+Space) и скомпилировать в язык C++

с такой логикой и С++ не существует :)

anonymous
()
Ответ на: комментарий от anonymous

с такой логикой и С++ не существует :)

Зато костыли существуют, понятно же :-) Лол :-)

anonymous
()
Ответ на: комментарий от anonymous

с такой логикой и С++ не существует :)

Просто никто напрямую на цпп не пишет, все давно в него компилируют мощными современными компиляторами. Например пальцы - компилятор мыслей в c++, комитет по стандартизации - компилятор стандарта в stl на c++, stackoverflow - компилятор вопросов в c++.

anonymous
()
Ответ на: комментарий от anonymous

github - компилятор пул-реквестов в C++ O_o

clover
() автор топика
Ответ на: комментарий от anonymous

Но ведь это лучше, чем годами проповедовать «канонические» способы создания ПО на «настоящих» языках программирования, используя «настоящие» всякие прочие ООП, policy design, MVC и т.д. (тысячи их) :-) При этом, не имея денег, скажем, на придание зубам настоящей белизны голливудской улыбки :-) Или на покупку жене новой шубы :-) Или на покупку новых джинсов себе :-) Или лучше без штанов с жёлтыми зубами проповедовать Ъ-путь Ъ-разработчика? :-)

А потом данные персонажи с зубами, шубами и штанами, скачут на болотных «против жуликов и воров». Какая прелесть.

anonymous
()
Ответ на: комментарий от anonymous

А потом данные персонажи с зубами, шубами и штанами, скачут на болотных «против жуликов и воров». Какая прелесть.

4.2 не скачут, а компилируют мысли в митинги

clover
() автор топика

Мне 34, это по поводу постарше. Ты считаешь, что Qt это чисто десктопное ПО? На чистом с++ тоже пишу, но тащить за собой буст не охота. Вопрос твой не очень понятен.

golodranez ★★★★
()

Вы все г*вно. Я Д'Артаньян!!! А-ХА-ХА :-)

anonymous
()
Ответ на: комментарий от golodranez

Мне 34, это по поводу постарше. Ты считаешь, что Qt это чисто десктопное ПО? На чистом с++ тоже пишу, но тащить за собой буст не охота. Вопрос твой не очень понятен.

напомнило :)

clover
() автор топика
Ответ на: комментарий от EXL

Вот есть такая программа McIDAS. Служит для обработки, визуализации всяких метео,гео-данных. Она реализована в двух вариантах, на Java и Си. Один из вариантов - экспериментальный опенсорсный, другой (закрытый) используется в серьезной работе(типа энтерпрайз). Можно сразу догадаться, какой где... Хотя я не спорю, виртуальная машина - это очень полезно для надежности.

anonymous
()

ЗЫ программисты на Qt, а не на C++ проходите мимо, вопрос к людям постарше.

ЗЫ Десктопное ПО на голом C++(STL хоть оставишь или его тоже надо реализовывать своими велосипедами), а чего не в машинных кодах а программисты на Qt , С++ не используют? у них там свой язык? ЯЗабан...

grigoreo
()
Ответ на: комментарий от clover

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

grigoreo
()
Ответ на: комментарий от eao197

при известном умении жопа превращается... но для этого нужны руки от плеч, а если от жопы то да итого такой же...

grigoreo
()
Ответ на: комментарий от grigoreo

так это понимай не понимай , а он будет жить без твоего мнения...

В этой теме уже был один ыксперт, тоже не понимал, как Qt можно с чем-то сравнивать. А потом бах! И поисками альтернативы озадачился: Ищу живую альтернативу libui

Но он-то хоть код писать умеет. А ваши испражнения-однострочники, вот они к чему написаны?

eao197 ★★★★★
()
Ответ на: комментарий от grigoreo

если Х производное от Y, это не значит что Х есть Y.

Qtшный диалект обычным С++-компилятором не соберётся. Хотя через qmake очень даже соберётся. С++ный код соберется а Qtшный нет. Вот и всё.

Разговоры про то, что там внутре кодогенератор -это для бедных. С++ изначально тоже кодогенератором в С преобразовывался, но это же другой язык.

ckotinko ☆☆☆
()
Ответ на: комментарий от ckotinko

Qtшный диалект обычным С++-компилятором не соберётся. Хотя через qmake очень даже соберётся. С++ный код соберется а Qtшный нет. Вот и всё.

Тут вы не правы,для сборки приложения с использованием Qtsdk - нам нужен moc(а qmake нам не обязателен), которому скармливаем хедары? содержащие специфичные объекты qt, после чего скармливаем их вместе с остальными gcc. qmake - генерит шаблон проекта и сценарий сборки для компилятора.

Silerus ★★★★
()
Ответ на: комментарий от eao197

И поисками альтернативы озадачился:

Спойлер: это был шуточный пост. Посмотрите на теги.

И спойлер номер два: альтернатив Qt так и не нашлось.

RazrFalcon ★★★★★
()
Последнее исправление: RazrFalcon (всего исправлений: 1)
Ответ на: комментарий от ckotinko

ну не совсем, ониж moc и подменяют свои конструкции, на стандартные c++. Если посмотреть в этих мок файлах - то найдется как идет подмена connect на бинды и callback и т.д - они просто создали некие алиасы(если можно так выразиться), что бы скрыть рутину от программиста. Так что верно сказать, что это заретушированный с++

Silerus ★★★★
()
Ответ на: комментарий от eao197

ну если взять официальную доку то это расшифровывается Meta-Object Compiler, конечно кто я такой перед такими источниками знаниями, кто говорит что это не так...

grigoreo
()
Ответ на: комментарий от eao197

так он до сих пор это утверждает, спасибо за мою оценку... и повторюсь Qt живет без твоих 2х строчных испражнений, понимай ты это не понимай,

поделишься из какого кащенко выпусткают детекторов умений по одной строчке?

grigoreo
()
Ответ на: комментарий от ckotinko

так пара макросов уже создает новый язык? что там не так другая STL я не могу бесшовно C++ классы использовать,

Qt это фреймворк для облегчения жизни программисту C++. Остальное это жалкие попытки оправдывать свой бред...и софистика

grigoreo
()
Последнее исправление: grigoreo (всего исправлений: 1)
Ответ на: комментарий от ckotinko

а если я иногда для Qt проектов не использую qmake? есть проекты которые без буста не соберутся так что теперь это новым языком называть... не гоните бред...

так к чему этот пост, Qt это офигенский фреймворк для разработчиков на C++, и кстати не только для Гуя , а те кто кричат что он им не нравится , так не пользуйтесь ... и вообще кто сказал что должно быть однообразие, юзайте то что подходит под конкретную задачу...

PS

Разговоры про то, что там внутре кодогенератор -это для бедных. С++ изначально тоже кодогенератором в С преобразовывался, но это же другой язык.

здесь мне бедному для вас богатых можно до смерти в этой фразе спорить, смотря как вертеть терминами... например если С++ вышел как подмножество языка С.

в итоге язаБАН

grigoreo
()
Ответ на: комментарий от grigoreo

ну если взять официальную доку то это расшифровывается Meta-Object Compiler, конечно кто я такой перед такими источниками знаниями, кто говорит что это не так...

Может moc какие-то мета-объекты и компилирует. Но вот компилятором некого вымышленного языка Qt C++, о котором здесь Qt-шые дебилоиды говорят, он не является. И причины того уже описывались здесь несколько раз. В частности: компилятор делает трансляцию из представления A в представление B, после чего в дальнейшую работу идет представление B, а представление A уже не нужно. Так работал Cfront, так работает компилятор Eiffel до сих пор (Eiffel -> C), так работает компилятор Vala и т.д. В случае же с moc-ом при трансляции из описаний в .hpp/.cpp строится дополнительный .cpp файл с дополнительным C++ным кодо, но в дальнейшую работу в обязательном порядке идут и исходные .hpp/.cpp файлы (и, сюрпрайз-сюрпрайз, C++ный компилятор их спокойно хавает, поскольку всякие signals/slots/emit — не более чем макросы для него).

Так что здесь хотелось бы видеть не апелляцию к авторитетам, и не утверждения о том, что «я 20 лет пишу на Qt, это офигенский фреймворк, а moc называется Meta-Object Compiler», а какую-то элементарную логическую цепочку.

так он до сих пор это утверждает, спасибо за мою оценку... и повторюсь Qt живет без твоих 2х строчных испражнений, понимай ты это не понимай,

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

поделишься из какого кащенко выпусткают детекторов умений по одной строчке?

Какой мощный заход, внушаить. Еще мощнее можете?

eao197 ★★★★★
()
Ответ на: комментарий от eao197

Но вот компилятором некого вымышленного языка Qt C++, о котором здесь Qt-шые дебилоиды говорят, он не является. И причины того уже описывались здесь несколько раз. В частности: компилятор делает трансляцию из представления A в представление B

facepalm.tar.gz. Где в стандарте С++ slots, signals? Где Q_INVOCABLE? Если представление Qt == представлению С++, то продемонстрируйте мне компиляцию Qtшных программ компилятором С++.

C++ные программы компилируются компилятором С++. Если Qt=C++, то мы без проблем соберем любую Qt-программу с помощью gcc+makefile. Просто продемонстрируйте это, ведь мы же знаем что вы туфту не гоните.

signals/slots/emit — не более чем макросы для него

в каком заголовочном файле эти макросы представлены? вы утверждаете что это макросы, то наверно знаете где их найти.

ckotinko ☆☆☆
()
Ответ на: комментарий от grigoreo

а если я иногда для Qt проектов не использую qmake?

собери мне Qt-шный класс с сигналами и слотами компилятором С++. докажи что Qt=C++ на практике, посрами оппонента.

ckotinko ☆☆☆
()
Ответ на: комментарий от ckotinko

Где в стандарте С++ slots, signals?

Где в стандарте BOOST_SCOPE_EXIT или BOOST_FOREACH?

Если представление Qt == представлению С++, то продемонстрируйте мне компиляцию Qtшных программ компилятором С++.

В последний раз когда имел дело с Qt, компилировал Qt как раз С++-ным компилятором. Что-то за последние годы произошло?

в каком заголовочном файле эти макросы представлены? вы утверждаете что это макросы, то наверно знаете где их найти.

Ну как же можно быть настолько дебилом? Вот, по поводу slots: https://github.com/qt/qtbase/blob/401d9b527823ffc8691e8a624ee3d40495622359/sr... Ну и emit там чутка пониже: https://github.com/qt/qtbase/blob/401d9b527823ffc8691e8a624ee3d40495622359/sr...

eao197 ★★★★★
()
Ответ на: комментарий от ckotinko

собери мне Qt-шный класс с сигналами и слотами компилятором С++

Деточка, вы разницу между компилятором и линкером понимаете? Собирает как раз линкер.

eao197 ★★★★★
()
Ответ на: комментарий от eao197

Окей, скомпилируй мне какой-нибудь Qtшный класс С++ным компилятором, мистер grammar nazi. Теперь что скажешь? что запятая не там стоит?

ckotinko ☆☆☆
()
Ответ на: комментарий от ckotinko

Вы тут на слабо меня уже пытались взять с ключевыми словами slots/signals/emit, но ожидаемо обосрались. Ради чего мне тратить время дабы вы обосрались еще раз?

eao197 ★★★★★
()
Ответ на: комментарий от eao197

да я знаю что мы тут умный, а я дурак.

и что представление до moc и после moc одинаковое. можно даже moc выкинуть и всё будет работать. зачем вообще его придумали, если всё и так работает.

да кстати, вы ведь читали файл на который ссылаетесь?

// The following macros are our "extensions" to C++

слово extensions вам перевести или вы сами с гуглом справитесь?

ckotinko ☆☆☆
()
Последнее исправление: ckotinko (всего исправлений: 1)
Ответ на: комментарий от ckotinko

и что представление до moc и после moc одинаковое.

Одинаковое.

можно даже moc выкинуть и всё будет работать.

Если выкинуть, то работать не будет.

зачем вообще его придумали, если всё и так работает.

Придумали для того, чтобы генерировать дополнительный код, который получается в результате анализа moc-ом исходного C++ного кода.

Что не делает moc компилятором. И не приводит к появлению нового языка Qt или Qt/C++. И не ведет к тому, что Qt-шные программы компилируются moc-ом, а не C++ным компилятором.

а я дурак.

Вы упорно заставляете участников дискуссии так думать.

eao197 ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.