LINUX.ORG.RU
ФорумTalks

[Java vs C+] Ну что, есть готовые выступить вне конкурса? :)


0

0

http://balancer.ru/2008/08/25/post-1649892.html

Увы, сишник окончательно сдулся. Хотя на него возлагались надежды...

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

★★★★★

Кастую лисперов в тред.

anonymous
()

Каждый раз, когда читаю такое, вспоминаю фразу "из двух спорящих один дурак, а другой - сволочь".

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

>из двух спорящих один дурак, а другой - сволочь

Да, там примерно так и вышло :) Явист немного перегибает палку...

KRoN73 ★★★★★
() автор топика

Всё тот же тред-писькомерка "я подозреваю, что на С/С++ всё же возможно написать так, что будет быстрее Жабы, но сможет ли кто-то из вас, ламеров, это асилить" или я ошибаюсь?

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

Не совсем, но близко :) В этот раз пытались организовать независимую комиссию, которая бы оценила ряд факторов - скорость готового продукта, функционал готового продукта, время, затраченное на написание, надёжность, расширяемость... Увы, в этом заходе комиссии не пришлось работать. Результат сишника (задание было на написание интерпретатора, что-то уровня Бейсика), написанный за сопоставимое время, был быстрее java-варианта процентов на 10, но не обеспечил даже самого базового функционала и был невероятно сыр. Так что комиссия таже постеснялась результат озвучить :)

Посему и интересно посмотреть на альтернативные решения со стороны.

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

А, уже до интерпретаторов добрались.... я думал всё ферзей гоняете :)

>Результат сишника .... написанный за сопоставимое время, был быстрее java-варианта процентов на 10, но не обеспечил даже самого базового функционала и был невероятно сыр

А вот тут сами виноваты, ибо надо чётко условия ставить: описать функционал, тест-кейсы и так далее. А то сначала задание одно ("пишите интерпретатор!"), а результаты, как я понимаю, сверялись по совсем другим критериям ("а почему нет вот этого и вот этого?" и тэ дэ).

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

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

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

Вы что, гоните что-ли, жвачку для мобилок сравнивать с ведущим языком программирования? :)

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

>Кстати, не кинешь ли прямую ссылку туда, где закончились ферзи и начались парсеры?

Задание сформулировано тут: http://balancer.ru/2008/08/05/post-1620964.html

Дальше ещё на одной, наверное, странице (в смысле - следующей) - уточнения некоторых неопределённостей. Потом - разбор полётов. Потом - опять флейм :)

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

>а там flex и bison использовать?

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

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

>>а там flex и bison использовать?

> В задании оговаривалось не использовать решений за пределами стандартных либ языка.

> Более того, явист, вроде бы, добровольно отказался от ряда Java-либ, дающих серьёзную фору, типа хэшмапов и т.п.

И что в результате получилось? Гонки на сферических конях по вакууму?

gods-little-toy ★★★
()
Ответ на: комментарий от gods-little-toy

>И что в результате получилось?

Да нет, оба сваяли интепретатор, но про результаты я выше писал: «Результат сишника (задание было на написание интерпретатора, что-то уровня Бейсика), написанный за сопоставимое время, был быстрее java-варианта процентов на 10, но не обеспечил даже самого базового функционала и был невероятно сыр.»

Собственно, проще процитировать членов комиссии :)

=== cut ===

Из 25-ти тестов у меня на "тестланге" успешно прошло 2.
Это где-то 8% функциональности. Чтобы быстродействие можно сравнивать по баллам, нужно, чтобы хотя бы на этих работающих тестах "тестланг" был в десяток раз быстрее "контеста". А этого сейчас нет.

=== cut ===

И другой:

=== cut ===

Гм. Да. Жесть. Ну так вот :)

Быстренько сваяв 6 тривиальных, но разнотипных тестов, обнаружил, что на варианте Реконструктора [C++ - KRoN73] выполняются только 2. После этого взял готовые тесты Сергея [Java - KRoN73], не содержащие избыточные по отношению к спецификации фичи (их нашёл 8: 1, 2, alg, indexed, simple, compare, nums, test1) и попробовал. Результат: аварийное завершение интерпретатора Реконструктора во всех случаях, кроме simple (который, однако всё равно не работает) ЖР Таким образом, по правилу "отсутствие функциональности = нулевому быстродействию" получаем 2/14, округляя до целых - 0. Ноооо! (вдыхает) Учитывая, что code_test Реконструктора после модификации для соответствия спеке (все "%" заменены на "^") выполняется на моей машине *аж* почти в полтора раза быстрее, чем на интерпретаторе Сергея (687 мсек против 1031), считаю возможным поставить Реконструктору за быстродействие 1 балл. 4, соответственно, идут Сергею.

Так же он получает 3 балла за скорость написания :)

По внутренней эстетике кода: после уже указанных весёлостей не считаю возможным поставить Реконструктору ни одного балла. У Сергея же особенно придраться не к чему. Ну, разве что к именам переменных большими буквами и с подчёркиванием в начале. Но это уже чистая вкусовщина :) В общем, ещё +2 балла Сергею.

Итого: 9:1 в пользу Сергея. Не flawless victory, но вполне себе fatality :) :)

ЗЫ вообще, не подразумевалось, что сумма оценок обоих участников должна быть 10, просто мне так проще :) :) :)

=== cut ===

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

такой вопрос - если джавист ото всякого java-вского по отказывался, что мешает взять java-реализацию, довести ее поиском-с-заменой до состояния "программа C++ без освобождения памяти", и предъявить? Не думаю, что оно будет сильно медленнее чем java-реализация. Тесты оно пройдет.

Если jav'eры заорут что сие есть обман, обратить внимание что скорость их проги тоже небось замерялась без учета сборки мусора.

gods-little-toy ★★★
()
Ответ на: комментарий от gods-little-toy

>что мешает [...] предъявить?

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

...

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

>Если jav'eры заорут что сие есть обман, обратить внимание что скорость их проги тоже небось замерялась без учета сборки мусора.

Сборка мусора мало ресурсов отжирает, знаю по своему MMORPG-серверу :)

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

>что мешает [...] предъявить?

> Потому и пишу про «вне конкурса». Просто на честность людей, которым за свой любимый язык может быть обидно.

Проблема в том, что это как устраивать соревнования "синий цвет кроссовок против красного". Победа в таком состязании будет зависеть от (по порядку влияния величин):

1. имеет ли участник практический/теоретический опыт с интерпретаторами 2. общий уровень участника 3. потраченное количество времени/мыслительных усилий 4. <тут может быть что-то еще> 5. используемый ЯП

то есть корреляция победы X над Y с тем что ЯП используемый X лучше чем ЯП используемый Y будет практически нулевая.

gods-little-toy ★★★
()
Ответ на: комментарий от KRoN73

> В задании оговаривалось не использовать решений за пределами стандартных либ языка.

Вообще-то это не либы, а кодогенераторы :-). И потом, насколько я помню, у C вообще нет стандартных либ...

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

>> что мешает [...] предъявить?

> Потому и пишу про «вне конкурса». Просто на честность людей, которым за свой любимый язык может быть обидно.

я имел ввиду не обман а то что эквивалент предъявленной jav-овской программы могли и на C++ написать. Костыль из каких-нибудь аллокаторов прицепить cкорее всего не трудно. Метода проведения бенчмарков у вас там скорее всего не столь жесткая чтобы засечь что этот костыль хуже чем jav-овский сборщик мусора (что для этой конкретной задачи еще не факт)

gods-little-toy ★★★
()
Ответ на: комментарий от gods-little-toy

>1. имеет ли участник практический/теоретический опыт с интерпретаторами

Ну, это, как бы, из области, которую приличный программист обязан знать.

>2. общий уровень участника

Так не языки-то и сравниваются. И решения. Квалификация программиста тоже входит. Если бы это не учитывалось, то победу бы записали Java, а не Сергею-4030 :)

>3. потраченное количество времени/мыслительных усилий

Учитывается комиссией.

>5. используемый ЯП

Угу.

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

>Вообще-то это не либы, а кодогенераторы :-)

«Не использовать решений».

>И потом, насколько я помню, у C вообще нет стандартных либ...

А stdio.h куда дел? :)

KRoN73 ★★★★★
() автор топика
Ответ на: комментарий от gods-little-toy

>я имел ввиду не обман а то что эквивалент предъявленной jav-овской программы могли и на C++ написать. Костыль из каких-нибудь аллокаторов прицепить cкорее всего не трудно.

Могли. Но не сделали.

KRoN73 ★★★★★
() автор топика

Поддерживать конкурс не буду, но, почитав немного тред по ссылке (времени немного), сложилось неприятное мнение о "Сергей-4030". Может он и крут как программист, но как человек, по моему - весьма неприятен в силу чрезмерной самоуверенности и заносчивости.

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

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

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

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

Похоже, молодость и сложившийся имидж обязывают :-)

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

> в С/С++ присутствует неразрывная связь между заголовком и библиотекой.

Как говорят на ЛОРе, "неразрывная связь" -- это дикий ГСМ :-).

> и stdio и еще много чего входят в стандарт языка.

Цитату из стандарта -- в студию :-).

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

> «Не использовать решений».

В исходном задании нигде нет этой фразы. Я смотрю, первую версию делали без учета этого замечания.

> А stdio.h куда дел? :)

Ну хорошо, а в каком "стандарте" C описана работа с графическими примитивами?

> plot(переменная1, переменная2, переменная3, переменная4) - ставит в окне программы/на экране точку с координатами (х=переменная1, у=переменная2), цветом переменная3 и ключом переменная4.

Не многовато-ли хотим от кроссплатформенного ассемблера? Тут нужна, хотя бы, GTK или Qt. А если их можно использовать, то и хэши тогда тоже не под запретом. Да и мало верится, что у Java для plot было использовано нечто стандартное. Не заглядывал пока в исходники, но ЕМНИП, в Java есть минимум 2 GUI Toolkit, и, опять же ЕМНИП, "стандартный" имеет серьезные тормоза для обеспечения кроссплатформенности.

Да и вообще, я, вроде бы, видел, что для Java тоже есть парсер-генераторы. Почему бы ими не воспользоваться? Или опять же боимся тормозов?

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

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

Тю, так он же вендузятнег:

> Честно говоря, никогда не пробовал эту штуку под Linux.

И почему я ничему не удивляюсь? :-)))

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

>> и stdio и еще много чего входят в стандарт языка.
>Цитату из стандарта -- в студию :-).
да за ради бога
ISO/IEC 9899:1999
$7.1.2
2 The standard headers are
        <assert.h>         <inttypes.h> <signal.h>  <stdlib.h>
        <complex.h>        <iso646.h>   <stdarg.h>  <string.h>
        <ctype.h>          <limits.h>   <stdbool.h> <tgmath.h>
        <errno.h>          <locale.h>   <stddef.h>  <time.h>
        <fenv.h>           <math.h>     <stdint.h>  <wchar.h>
        <float.h>          <setjmp.h>   <stdio.h>   <wctype.h>

Vinick ★★
()

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

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

>Во-первых, это не либа, а хедер

Это уже только название. Факт, что мы может подключить системные функции.

>а во-вторых, насколько я помню, это не стандарт в смысле спецификации.

Вот тут я сам не помню, но, скорее всего, всё же стандарт. И уж точно - стандарт де факто :)

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

>Похоже, молодость и сложившийся имидж обязывают :-)

У товарища уже взрослый сын. Вот его - да, молодым назвать можно ;)

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

>Не многовато-ли хотим от кроссплатформенного ассемблера?

Всё понимаю, но почему там, где Явист спрашивает «а, может, я вам ещё это реализую?» сишники начинают искать отмазки? :D

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

>сейчас зарегюсь и предложу посоревноваться, только недельки через две

Можно придумать новое задание и конкурс уже на троих запустить.

Хотя недельки через две и я, может, смогу присоединиться, потренироваться на чём-нибудь типа D или Python...

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

> Всё понимаю, но почему там, где Явист спрашивает «а, может, я вам ещё это реализую?»

Потому что явисты -- это не программисты, а быдлокодеры в стиле "чего изволите" :-).

> сишники начинают искать отмазки? :D

Угу. То, что явисты ниасилили арифметику бесконечной точности -- это тоже отмазки. Некий явист там две страницы отмазывался на эту тему :-)

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

> У товарища уже взрослый сын. Вот его - да, молодым назвать можно ;)

Ну тогда значит сложившийся имидж явиста и вендузятнега. Вендузятники -- знатные тролли :-).

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

тогда boost.spirit и ANTLR тоже можно стандартом считать. :)

Vinick ★★
()

Как-то начал писать на C# для проверочки. Не закончил. Как будет время - обязательно отпишусь.

ЗЫ. имхо, сравнение не совсем правильное - сравнивать по скорости языки/вм надо на одинаковых алгоритмах. А то получается что это соревнование алгоритмов но не языков/вм.

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

>Угу. То, что явисты ниасилили арифметику бесконечной точности -- это тоже отмазки.

У сишника её тоже нет. Это было обоюдное согласие.

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

>Тогда и lex/yacc -- тоже стандарт де-факто :-).

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

Явист никаких условий не выдвигал, был готов изначально работать в любых заданных условиях :)

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

>ЗЫ. имхо, сравнение не совсем правильное - сравнивать по скорости языки/вм надо на одинаковых алгоритмах. А то получается что это соревнование алгоритмов но не языков/вм.

Уже говорилось. Сравнение не языков, не скорости, а конкретных решений конкретных людей.

Сама постановка задачи.

Сишник заявлял, что Java-программисты как один нифига программировать не умеют, и он на Си++ уделает...

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

>Поддерживать конкурс не буду, но, почитав немного тред по ссылке (времени немного), сложилось неприятное мнение о "Сергей-4030". Может он и крут как программист, но как человек, по моему - весьма неприятен в силу чрезмерной самоуверенности и заносчивости.

Это да. Аналогичное впечатление. Ещё во времена задачи про ферзей он начал выпендриваться так, что я только диву давался, а тут я почитал тред начиная от задачи про парсер и до конца --- сложилось впечатление, что он просто редкостный мудак. Даже несмотря на то, что хороший программист (но одно никак не исключает другое). Реконструктор, конечно, тоже ни хрена не подарок, и гонор у него намного превышает способности, как выяснилось, но это ни разу не оправдывает Сергея-4030. Потому что человек должен оставаться человеком в любой ситуации, а тут из него ТАКОЕ говно полезло, которого я, если честно, вообще ни разу не встречал.

На Лестера так вообще с порога накинулся "ну что, ну давай на бабки? а? чо? зассал, да?"

Читать противно, ей-богу.... =\

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

>Потому что явисты -- это не программисты, а быдлокодеры в стиле "чего изволите" :-)

Бггг, ещё один :)))))

Ну сходи, утри нос тому "быдлокодеру" :))))) Один такой там уже обделался :)))))

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

>На Лестера так вообще с порога накинулся "ну что, ну давай на бабки? а? чо? зассал, да?"

Это уже в теме мем такой :)

...

А так - Сергей-4030 получил уже штраф за переходы на личности. И будет продолжение в том же духе - огребёт ещё. Как и тот же Ресурректор. Собственно, склока-то началась с его стороны :) Но это история уже история полугодичной, если не более давности.

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

>имхо, сравнение не совсем правильное - сравнивать по скорости языки/вм надо на одинаковых алгоритмах. А то получается что это соревнование алгоритмов но не языков/вм.

Там сравнивались не языки/вм в чистом виде, а языки+программисты. Один плюсовик имел неосторожность заявить (в точности как один персонаж в этом треде), что мол жабисты --- не программисты, а быдлокодеры, ни хрена программировать не умеют, а только из готовых кубиков домики собирают, а вот сишники/плюсовики --- это ниипаццо труЪ и круче только яйца. Ну и плюс жаба ацтой, да.

Вот и "дозаявлялся", ага....

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