Здравствуйте, criosray, Вы писали:
C>И Вам сказать по сути нечего? К чему этот пустой трёп?
Тебе по сути vdimas всё сказал.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
По сути группа поклонников не самого популярного языка доказывает группе поклонников другого не самого популярного языка, но примерно равному по популярности, что язык противников тухлый.
Ценность данного графика в контесте данного спора близка к нулю
Например, на том же RSDN вопросы по покетам задают восновном в контестке CF. Однако вопросы задают восновном нубы (создают статистику), а профи пишут на С++ (реальность).
Здравствуйте, NikeByNike, Вы писали:
NBN>Например, на том же RSDN вопросы по покетам задают восновном в контестке CF. Однако вопросы задают восновном нубы (создают статистику), а профи пишут на С++ (реальность).
VD>Теперь я тебе открою правду о шаблонах. VD>1. Шаблон — это не более чем синтаксический препроцессор который позволяет во время компиляции подставить что-то вместо плэйсхолдеров. Так вот есть куда более мощьные системы типов (например, система типов Haskell) на фоне которых препроцессор вроде С++ просто меркнет.
С какой это радости система типов более мощная? ИМХО, гораздо более простая, в плане параметрических типов (мощная она по сравнению с Nemerle разве что). Или ты считаешь, что если пользовательские типы ограничить только до алгебраических, то система типов от этого мощнее становится? Она становится проще гораздо и ограниченнее.
VD>2. Есть куда более мощные синтаксические препроцессоры (например, Nemerle и Лисп) которые по возможностям и удобству рвут С++ как тузик грелку. К примеру, я воспроизвел linq из спецификации C# написав два макроса. С++ такое сделать не может в приципе.
И? 99.99% языков такое сделать не могут в принципе, ибо давать дорабатывать компилятор простым программистам — это спорное занятие. Не зря на Лиспе и Форте не так уж много людей лабали.
С# 5/6/7 тоже мочь не будет однозначно, эта фишка "не на каждый день", в массы его вряд ли выпустят.
VD>3. Кроме того шаблоны в С++ были задуманы как средство релизации параметрического полиморфизма. Оных намного лучше реализован почти во всех языках в которых он вообще реализован. И те же дженерики тоже лучше шаблонов за исключением пары неудобств.
Дженерики слабее на порядок примерно, не знаю, откуда ты берешь свое "лучше"? Банально хрен обобщишь алгоритм на float и на double, а тебе от этого лучше. Реально и с размахом эти дженерики используются только по одному назначению — улучшить статическую типизацию, дабы меньше было динамической или тупого боксинга на ровном месте — офигенная, однако, у нас разновидность полиморфизма-то.
У меня за эти годы сложилось четкое убеждение, что дженерики — это способ обходить перечисленные недостатки платформы .Net, не более того.
VD>А уж параметрический полиморфизм в современных ФЯ сделан несравнимо лучше шаблонов С++.
Голословие. Если по возможностям — то так же или хуже (где есть явная специализация — то примерно так же, где нет — хуже). "Лучше" разве что по минималистическому синтаксису всего одного языка. Дык по этому критерию и Немерле — убожество еще то.
VD>Просто использование шаблонов выходит за рамки параметрического полиморфизма и входят в область метапрограммирования. Но в этой области безоговорочно царят макросы. И убогим возможностям С++ тут делать не чего.
Ты то отсылаешь к Хаскелю и ОКамлу, то называешь языки без макросов убогими (значит и их тоже). А ведь системе типов Немерле даже до Хаскельной как до луны раком. В общем, более чем сумбурно.
VD>Если же серьезно говорить о метапрограммировании, то С++ тут откровенный лузер, если сравнивать его с такими языками, реализованными поверх дотнета, как Nemerle и Lisp. Вот где МП доведено до высшего пилотажа. Причем оно исходно предусмотрено в языка, а не достигается использованием побочных эффектов системы типов.
Не надо из МП делать священную корову, иногда и просто попрограммировать надо. У вас в том большом реальном проекте доля МП так себе, прямо скажем. А все остальные многие и многие тыщщи строк делать на Лиспе — увольте и в пример больше не приводите.
И что касается макросов, то Лисп тут проигрывает даже Форту, по удобству пользования этой фичей... Так что, отличное вышло у тебя пюре, надо сказать.
C>В том, что для С# никогда не будет "десятков компиляторов и платформ" — язык будет продолжать развиваться во много раз быстрее С++ до тех пор, пока будет куда развиваться, а путей развития для него все еще — море.
Давно таких горячих и выспренных не видел. Это нормально по-студенчеству, главное не сильно переживай, когда с разбегу начнешь налетать на детские болезни программистов и прочие грабли.
Здравствуйте, vdimas, Вы писали:
C>>В том, что для С# никогда не будет "десятков компиляторов и платформ" — язык будет продолжать развиваться во много раз быстрее С++ до тех пор, пока будет куда развиваться, а путей развития для него все еще — море.
V>Давно таких горячих и выспренных не видел. Это нормально по-студенчеству, главное не сильно переживай, когда с разбегу начнешь налетать на детские болезни программистов и прочие грабли.
На детские болезни программистов и прочие грабли я налетал примерно 11 лет тому назад, когда работал С/С++ программистом. Так что Ваш комментарий, молодой человек, несколько "мимо тазика".
Здравствуйте, VladD2, Вы писали:
VD>Не возьмусь оценить точные проценты применения, но почему-то мне кажется, что C#, а уж тем более Ява применяется гораздо чаще на сегодняшний день. И объясняется это тем, что он применяется для автоматизации предприятий и создания сайтов в интернет. В этих областях есть много нюансов и написать единый коробочный софт для них в принципе невозможно. А это ниша для огромных стад разработчиков.
Ну и? Писали раньше на VB/ASP, теперь C#/ASP.Net. Эти стада заняты разработкой, которую считалось плохим тоном делать на С++ во все времена.
VD>С++ же используется в последнее время больше частью для создания высокотиражных продуктов где стоимость разработки не так важна
Правда твоя, он теперь преимущетсвенно используется для разработки высококачественного софта, и в каждую дырку его теперь не суют, что не может не радовать.
VD>так как окупается количеством продаж (т.е. — игры, ОС, офисные приложения), а меньшее потребление компьютерных ресурсов может увеличить объем продаж.
Ты еще забыл кодеки, мультимедиа, реалтайм протоколы и т.д. И еще забыл, что последние года 4 тактовая частота процов практически не растет, а обсуждаемого скачка оптимизации JIT-а при переходе на 3.0 версию не было ВООБЩЕ
Здравствуйте, vdimas, Вы писали:
V>[чушь всякая вырезана цензурой]
V>Ты еще забыл кодеки, мультимедиа, реалтайм протоколы и т.д. И еще забыл, что последние года 4 тактовая частота процов практически не растет, а обсуждаемого скачка оптимизации JIT-а при переходе на 3.0 версию не было ВООБЩЕ
Пример классического ламеризма. Может стоило бы для начала что-то узнать о предмете обсуждения? Например, что версия CLR все еще 2.0.х, а не 3.0
Здравствуйте, samius, Вы писали:
S>Здравствуйте, Sorantis, Вы писали:
S>>А вы тут Си, СиШарпы.. Аж смешно S>Ну PHP-то до С и Java недорос еще.
А ему это надо?
Что-то слишком много чести им в последнее время... Хотя до сих пор наиболее популярные во всем мире моки — это ручные моки, они же заглушки и этому способу тестирования учат у нас вроде на 3-м курсе.
Просто надо четко понимать, что автоматически-генерённые моки — это костыль по сути, для ситуаций чудесного дизайна, когда одно гвоздями прибито к другому. А так, там где можно обойтись в юнит-тестах классичесскими ассертами — это и синтаксис нагляднее, и проще поддерживать.
У нас в последней системе в центре тупой диспетчер сообщений, и все тупо шлют в систему сообщения, никто ни о ком не знает... что по одиночке, что в любой комбинации прекрасно все тестируется, и произвольные тестовые заглушки прекрасно пишутся с логикой произвольной сложности, которая автомокам и не снилась. Так что лично мне они как стразы на ж-пе, модно, но не практично.
Здравствуйте, Sorantis, Вы писали:
S>Здравствуйте, samius, Вы писали:
S>>Здравствуйте, Sorantis, Вы писали:
S>>>А вы тут Си, СиШарпы.. Аж смешно S>>Ну PHP-то до С и Java недорос еще. S>А ему это надо?
Тут показано как C# и C++ сливают PHP по популярности.
Не надо сравнивать апельсины с яблоками. В контексте С++ и СиШарпа ваша ссылка никакой значимости не имеет.
Очевидно, что Джава и всеми (и мною тоже) нелюбимый ПХП обскакали, скажем, по популярности как С++ так и СиШарп.
Здравствуйте, vdimas, Вы писали:
V>Здравствуйте, samius, Вы писали:
S>>А моки вообще не в почете?
V>Что-то слишком много чести им в последнее время... Хотя до сих пор наиболее популярные во всем мире моки — это ручные моки, они же заглушки и этому способу тестирования учат у нас вроде на 3-м курсе.
Моки и заглушки — разные вещи, использующиеся в разных сценариях тестирования.
V>Просто надо четко понимать, что автоматически-генерённые моки — это костыль по сути, для ситуаций чудесного дизайна, когда одно гвоздями прибито к другому. А так, там где можно обойтись в юнит-тестах классичесскими ассертами — это и синтаксис нагляднее, и проще поддерживать.
V>У нас в последней системе в центре тупой диспетчер сообщений, и все тупо шлют в систему сообщения, никто ни о ком не знает... что по одиночке, что в любой комбинации прекрасно все тестируется, и произвольные тестовые заглушки прекрасно пишутся с логикой произвольной сложности, которая автомокам и не снилась. Так что лично мне они как стразы на ж-пе, модно, но не практично.
Разве речь о Вас в совокупности с тупым диспетчером сообщений?
Здравствуйте, vdimas, Вы писали:
S>>А моки вообще не в почете?
V>Что-то слишком много чести им в последнее время... Хотя до сих пор наиболее популярные во всем мире моки — это ручные моки, они же заглушки и этому способу тестирования учат у нас вроде на 3-м курсе.
V>Просто надо четко понимать, что автоматически-генерённые моки — это костыль по сути, для ситуаций чудесного дизайна, когда одно гвоздями прибито к другому.
С точностью до наоборот — нормальные моки и стабы генерируются автоматически. т.к. автоматическая генерация исключает возможность допустить ошибку или не учесть чего-то.
V>А так, там где можно обойтись в юнит-тестах классичесскими ассертами — это и синтаксис нагляднее, и проще поддерживать.
Вы вообще не понимаете что такое юнит-тесты. Не надоело показывать неграмотность?
V>У нас в последней системе в центре тупой диспетчер сообщений, и все тупо шлют в систему сообщения, никто ни о ком не знает... что по одиночке, что в любой комбинации прекрасно все тестируется, и произвольные тестовые заглушки прекрасно пишутся с логикой произвольной сложности, которая автомокам и не снилась.
Перечень того, что не возможно сделать средствами RhinoMocks + xUnit в студию, как говорится.