C+ vs C#
От: alexeiz  
Дата: 09.02.06 11:41
Оценка: 112 (10) +10 -2
Здравствуйте, WolfHound, Вы писали:

WH>Здравствуйте, Cyberax, Вы писали:


>>> C# писать проще чем на С++?

C>>Нужно. И еще нужно обосновать почему софт должен писаться на С#.
WH>Ну можно еще и на немерле...
WH>В любом случае чем выше уровень языка и чем меньше возможностей там накосячить тем лучше.
WH>А в С++ очень много возможностей накосячить. Даже не смотря на то что я знаю С++ лучше чем подавляющие большинство читающих я не стану писать на нем программу если можно взять C# ибо это непростительное расточительство средств.

У меня всё наоборот. В последние несколько лет C++ открылся для меня как исключительно мощное средство для быстрого создания программ. Всё дело в правильных абстракциях. Найдя эти правильные абстракции в C++, я понял, что более удобного средства пока нет. Странно, C# я даже и не рассматриваю, как альтернативу. Не укладывается у меня мышление в модель C#-па. Она меня сильно ограничивает. Вот о месте C++/CLI я некоторое время подумывал. Но его объектная модель для меня оказалась запутанной. С точки зрения C++ идиом непонятно, с какой стороны модель C++/CLI к ним подходит. Поэтому сравнивая C++ с .NET языком (который обычно C++/CLI) я всегда задаюсь вопросом: а что такого привлекательного есть в этом языке, что заставит меня разобраться в его объектной модели и перевесит моё желание использовать идиомы C++?

И в любом случае уровень языка C++ не меньше чем у C#. Главное опять же выбор абстракций.

Если кто подумал, что я C# никогда не использовал, это не так. 3 года высоко оплаченного труда. Никаких великих успехов продуктивности не замечено.

Основная ошибка людей программирующих на C++ — это автоматический выбор низкоуровневых абстракций. Так или иначе такой выбор превращает язык в подобие C. Глядя на код C++ очень легко понять на каком языке он действительно написан (на каком языке думает его создатель). Как недавно отлично выразился Francis Glassborow:

We know that C and C++ are different languages (well some of us
understand that) because even when source code will compile as either,
the idioms are different. Any experienced programmer in C and C++ can
look at code and identify the language in which the programmer is
thinking even if the code requires a C++ compiler. That is what makes
them different languages, they have a different look and feel.


Страуструп о таком выборе низкоуровневых абстракций говорил: If that's C++ I don't like it either.

Кстати люди, которые мыслят на C, даже на C# программируют как на C. Мне такое предоставилось наблюдать. На мой вопрос, почему было решено выбрать C#, я получил типичный ответ о продуктивности. Хм, какая может быть продуктивность, когда в программе половина функций была объявлена как unsafe? Файлы не закрывались при исключениях, и т.п.

11.02.06 22:30: Ветка выделена из темы Еще раз об управляемых ОС
Автор: WolfHound
Дата: 02.02.06
— WolfHound
13.02.06 14:25: Перенесено модератором из 'Философия программирования' — WolfHound
Re[5]: C++ vs basic
От: Sheridan Россия  
Дата: 17.02.06 11:48
Оценка: -12 :))) :)))
Здравствуйте, Lorenzo_LAMAS, Вы писали:

S>>Не круть немерянная конечно но не потеряюсь.


L_L>И чем же C# похож на basic (visual, как ты вроде уточнил)


Тем что он for dummies (или как там правильно пишется). Тем что интепритатор. Тем что некроссплатформен. Тем что требуетъ кучу либ. Тем что памятью нельзя управлять. Тем что тормоз в конце концов.
Думаете еслибы бэйсик не был именем нарицательным микрософт бы шарп придумала? Да фиг! А так — переделали синтаксис под С, придумали фреймворк и вперед. У БГ же мечта чтоб кажная домохозяйка на холодильнике программила.

[RSDN@Home][1.2.0][alpha][643]
[Земной человек — это слабая душа, обремененная трупом. [Эпиктет]]
Matrix has you...
Re[56]: C+ vs C#
От: VladD2 Российская Империя www.nemerle.org
Дата: 11.02.06 18:14
Оценка: :))) :))) :))
Здравствуйте, Дарней, Вы писали:

C>>Да http://www.elewise.ru/products/others/index.html


C>>Продукт еще не завершен, но уже вполне шевелится на PPC.


Д>не вижу никаких принципиальных проблем, которые мешают реализовать это под .NET CF. у нас прога и посложнее была.


Да, уж. Данная ссылка это самое бредовое доказательство которе я видел.

Система интеграции с платформно-зависимым МС Аутлуком пишется на С++ чтобы выпячивать кросплатформность.

А вот этот перл мне больше всего понравился:

Использование C++ гарантирует корректную и экономную работу с памятью, а также высокую скорость работы.


Думаю, здесь забыли "не" вписать. Только не знаю где. То ли перед "гарантирует", то ли перед "корректную".
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[46]: C+ vs C#
От: Alxndr Германия http://www.google.com/profiles/alexander.poluektov#buzz
Дата: 13.02.06 11:19
Оценка: +5 -1 :))
Здравствуйте, Дарней, Вы писали:

Д>Здравствуйте, alexeiz, Вы писали:


A>>Ну, ёлки палки!


Д>я раньше тоже думал в точности, как ты


Что меня всегда удивляет в выступлениях (большинства) защитников .Net-языков — это упорство, с которым вы пытаетесь обобщить свой опыт на всех
Типичный пример: раз у тебя нет печального опыта работы с C++ — значит, ты еще маленький; подрастёшь — всё поймёшь

Человек, высказывающий предположение, что кто-то может быть более продуктивен, программируя на C++, изначально рассматривается как еретик, подлежащий обращению в "Истинную Веру". Печально.
Re[57]: C+ vs C#
От: Ellin Россия www.rsdn.ru
Дата: 12.02.06 12:25
Оценка: +1 -3 :)))
Cyberax! — ряспёкт! Мочи его, мочи! Я плюсами/минусами тебя поддержу. Ты круто прав относительно PreProcessMessage.
Re[36]: C+ vs C#
От: alexeiz  
Дата: 10.02.06 09:10
Оценка: 16 (2) +3 :)
Здравствуйте, WolfHound, Вы писали:

WH>Здравствуйте, alexeiz, Вы писали:


A>>И в любом случае уровень языка C++ не меньше чем у C#. Главное опять же выбор абстракций.

WH>А ты не думал что на C# тоже можно абстракциясми поиграть?

Я играл. Я знаю этот язык достаточно хорошо.

В том, что возможности C++ гораздо богаче, чем у C#, меня никто не переубедит. Я описал тебе причины, почему некоторые люди думают, что это не так. Для меня богатство возможностей очевидно. Даже если в C# можно найти более или менее эквивалентные пути, меня это мало интересует. Зачем пытаться искать эквиваленты в языке с меньшими возможностями, для тех вещей, которые на C++ выражаются легко и естественно? Я предпочитаю язык, на котором мои мысли будут выражены легко и естественно.

...
WH>ЗЫ Кстати можешь посмотреть историю моих сообщений... я некоторое время назад сам С++ защищал... Вот только чем больше я думаю об управляемых языках и операционках тем перспективы С++ с моей точки зрения все мение радужные.

Я не защищаю C++. Я не думаю, что C++ в этом нуждается. Я просто выражаю своё мнение.
Re[58]: C+ vs C#
От: Vermicious Knid  
Дата: 15.02.06 06:47
Оценка: 10 (4) +2
Здравствуйте, alexeiz, Вы писали:

A>Все примены из Nemerle идут лесом. Сравнивать C++ с функциональным языком, это слоны и бегемоты. Подумай тот ли язык программирования ты выбрал, если тебе приходится писать функциональный код. Здесь идет сравнение с C# — основным языком программирования для .NET.


Эти примеры идут скорее дорогой, ровной и прямой. Во-первых Nemerle это не функциональный язык. Это чистой воды императивный язык, имеющий ряд заимствований из современных функциональных языков(главным образом ML). В дизайне C++ тоже есть заимствования из ML(это не мои слова, это Страуструп сказал), это делает его функциональным?

То, что функции поддерживаются в этом языке на более высоком уровне еще не делает его функциональным(скажем в C# 2.0 тоже есть анонимные функции, замыкания и делегаты). Главные отличительные особенности функциональных языков — программа как композиция функций, значение это функция, ссылочная прозрачность, отсутствие переменных.

В Nemerle программа это не композиция функций, значение это не функция, гарантия ссылочной прозрачности даже в элементарных случаях невозможна, переменные есть. Каким боком это функциональный язык, если ни один из принципов ФЯ не соблюден? Он не более функциональный чем скажем C# или например Javascript.

Раз уж мы разговариваем в священных войнах, то не побоюсь сказать — такой вывод ты сделал "благодаря" очень поверхностному знакомству с функциональными языками. Лично я с ними тоже знаком преимущественно поверхностно и мое отношение к ФП можно охарактеризовать как весьма сложное(мои любимые парадигмы скорее метапрограммирование и логическое программирование), но элементарные принципы функциональных языков даже я знаю.

Кё>>Ты можешь сказать, что у тебя таких ситуаций не было. А почему не было? Потому что тебе не приходило в голову, что так можно, исключительно из-за того, что на С++ это делать трудно и результат получается непонятным.


A>Твоё обобщение не имеет смысла. Пока что ты показал, что из C++ трудно сделать функциональный язык. Это так. Но не то, что C++ — не является языком высокого уровня.


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

В C# есть абстрактные классы, интерфейсы, делегаты, свойства. Что из этого может предложить C++? Правильно, ничего. Вместо всего этого используются костыли на шаблонах. Написание костылей — это наиболее популярное занятие в среде C++. Для многих "С++-героев" это уже давно стало прибыльным бизнесом. В C++ как нигде более был востребован consulting. К сожалению их мир схлопывается на глазах. Один из инструментов самораскрутки(С++ journal) уже закрылся.

A>Опять в том же стиле. Ты не понимаешь о чём речь. Никто не пытается сказать, что всё можно сделать на C++ (легко).


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

От C++ у меня осталось одно яркое воспоминание — книга "C++ Modern Design". В отличие от многих книг по С++ книга написанна хорошим, живым, понятным языком. Код к книге это эталон изящности и читабельности, несмотря на то, что автору постоянно приходится бороться с недостатками и недоработками C++, в том числе и главным — хроническим отсутствием нормальных компиляторов(шутка ли — во время написания книги для Windows не существовало ни одного компилятора кроме весьма специфического Comeau C++, который бы скомпилировал его код). К сожалению ни ему, ни контрибуторам boost так и не удалось окончательно "побороть" С++. У них наверняка другое мнение, но на деле они вышли из этой борьбы проигравшими.

Кё>>Не раз в форуме C++ были темы с безобидной функцией, в которой находили до десятка потенциальных проблем. Проблема как раз в выделенном — трудно сразу сказать, является код ill-formed, или это well-formed с UB, или всё правильно. К примеру:


Кё>>
Кё>>struct A
Кё>>{
Кё>>  T* x, y; 
Кё>>  A() : x (new T), y (new T) {}
Кё>>};
Кё>>


Ну во-первых T * x, * y; Это очередной пример грабель.

A>Никаких проблем. Каждый человек, знакомый с исключениями не по наслышке увидит в этом коде ошибку. Конечно, тот, кто имел дело с C, может такое написать. Но о том и речь. C++ нужно изучать. В изучение входит не только синтаксис языка, но и основные методы программирования на нём.


Ты удивишься, но я подобный код встречал много раз, в самых разных местах, включая некоторые неплохие open source библиотеки. То-ли авторы не знакомы с исключениями, то-ли с языком, но в остальном это был вполне рабочий, качественный код.

Не знаю интересно ли тебе мое мнение, но мне не хотелось бы постоянно обращать внимание на такие пустяки при написании программы. Хорошие программисты на C++ видимо вообще очень замороченные и параноидальные субъекты.

A>А, вот что ты имел ввиду в своем коде. Абсолютно бредовый код, честно говоря. Но C++ — это язык не для новичка. Про новичков вопрос отдельный. C++ в настоящее время больше ориентирован на профессионалов.


A>Более высоком, чем на C#. См название темы. Я не собираюсь обсуждать здесь функциональные языки программирования.


Полный бред. Во-первых реальных приложениях уровень C++ значительно ниже уровня C# 2.0. Для 90% приложений это так. Ты конечно можешь сколько угодно говорить о "мифических профессионалах" на которых рассчитан С++, но в действительности хороших профессионалов, программирующих на C++ не так уж много. Я бы сказал не более 5% от общего числа. Поздравляю тебя с тем, что ты входишь в это число. Собственно чего уж греха таить, для многих людей это едва ли не основной жизненный приоритет, войти в "элитный клуб" С++-профессионалов. Кстати многие люди посредственно знающие С++ как программисты и архитекторы несоизмеримо лучше даже самых крутых C++-профессионалов. При всем уважении к присутствующим и особенно не присутствующим(видимо boost не оставляет свободного времени на форумы) здесь C++-профессионалам из MetaCommunications, мне бы не хотелось работать над их продуктами, ибо это крайне скучно и вообще неинтересно. А вот посредственным контрибуторам Mozilla как-то удается создать очень качественный и крайне увлекательный программный продукт(есть такие примеры и среди коммерческих продуктов).

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

Во-вторых скорее нужно доказывать, что уровень C++ выше уровня C#. Imho это практически невозможно доказать. Есть несколько областей, в которых C++ далеко позади C#, причем и как язык и как runtime среда. Например модульность, ООП возможности, синтаксический сахар. Те же дженерики в определенных случаях гораздо удобнее шаблонов C++.

А если еще отбросить бред про "функциональные языки программирования" и сравнить таки C++ с Nemerle(который семантически является лишь надстройкой над C#), то C++ остается в глубоком пролете.

Тем не менее я считаю, что C++ это достаточно мощный язык и у него еще очень долгое время будет оставаться своя достаточно широкая ниша. Но лично я предпочту держаться от него как можно подальше, хотя знаю его неплохо(действительно неплохо). Это просто напросто экономически неэффективно. Даже если в денежном выражении результат будет выше, то количество затраченных сил будет несоизмеримо выше.

Мой прогноз — C++ протянет еще лет 15-20. Если бы они поторопились с новым стандартом, то этот срок увеличился бы еще лет на пять. А если бы приняли за правило выпускать новый стандарт, то можно было бы еще лет 10 накинуть. Но очевидно, что этого не произойдет.

Я думаю часть рынка C++ мог бы не без успеха занять D, но пока у него есть принципиальные недоработки и проблемы с "комитетом"(в количестве одного человека). Если к версии 1.0 хотя бы половина из них будет исправленна и появится implicit template instantiation, то срок жизни C++ можно смело сокращать еще на пять лет.

А вообще равнение C# и C++ изначально не совсем корректно. Строго говоря они друг другу не конкуренты. Более того они даже не конкурируют за "умы" программистов. На C# или Java переходят только самые прагматичные, циничные и ленивые профессиональные C++-разработчики. Все романтики, крепкие C++-профессионалы и трудоголики останутся на своих местах. А то, что C# привлекает армию индусов и прочих одноклеточных — это не проблема. На таком фоне гораздо проще выделиться.

A>Где?


Кто здесь? А ты хто?
Re[5]: C++ vs C#
От: Ellin Россия www.rsdn.ru
Дата: 13.02.06 21:30
Оценка: 3 (1) +2 :)))
Здравствуйте, WolfHound, Вы писали:

WH>Да вы батенька просто изощеренный садистЪ. Мои тапочки просто лопоются от смеха... Бедные мои тапочки... как мне их жалко...


[Ответ]
Эх не знаю, не знаю. Написать новый язык программировани, новую среду, новую технологию, кучу библиотек, потом
переписать весь свой софт — это со стороны MS не садизм?(исклчительно в техническом плане, без учета прибыли?) Вместо того, чтобы доработать уже имеющееся. Дописать для С++ новые ключевые слова типа reflection class или т.п., путем расширения языка создать основу для нового стандарта, как это было в прошлом.

WH>Настольконе соответствующие действительности высказывания я даже коментировать не хочу.

WH>Вобщем С++ хороший язык... когдато был...

[Ответ]
Вот ... вот. Это не модно, это старо. Постоянно встречаю людей, которые совершенно не разбираются в музыке, но пытаются с тобой говорить как знатоки, на высоком уровне. Они говорят: "Слышал группу ... — новое, полный улет. Новое." Это ведь внемузыкальная характеристика — новое. И новое не обязательно должно быть гораздо лучше старого или хотябы того же уровня. Случается так, что долго не появляется аналога чему-то классическому, эпохальному, культовому. Одим словом, просто сказать любимые маркетинговые термины — новое, уникальное этого мало. Нужно указать и на качественные преимущества продукта.

[Еще про C#]
Меня просто донимает отсутсвие в нем банальных вещей: 1) множественного наследования (писать в каждом классе одну и ту же реализацию просто устал), 2) перегрузки оператора (), 3) шаблонов С++ со всеми их возможностями, без всяких урезок.

[Кросс-платформенность]
Уважаемые! .NET даже под Windows 95 не портировали, а вы хотите Linux? Когда в MS говорят про кроссплатформенность, они скорее всего подразумевают перенос с Win2000 на WinXP, c WinXP на Win98, c Win98 на WinXP, а Linux — что такое Linux?


WH>А сейчас рулят ковровые клинья и танковые бомбандировки тфу ты управляемые среды, а дальше будут рулить упровляемые ОС типа Singularity для которых на С++ вобще писать будет довольно проблематично.


[Ответ]
Все это похоже на перепродажу уже имеющегося у меня товара. Я не хочу покупать то, что я уже покупал, но под другим названием. Те же виртуальные машины Win95 не могут для меня не ассоциироваться с виртуальными машинами Джавы. Та же идеалогия и даже терминалогия. Win95 — в некотором смысле управляемая ОС.
Re[52]: C+ vs C#
От: Cyberax Марс  
Дата: 11.02.06 15:53
Оценка: 2 (1) +2 -3
WolfHound wrote:
> C>1. Десктопные приложения (поверю, что C# до них дорос в тот день,
> когда выйдет Word на C#).
> А в чем проблема?
Не знаю. Но серьезных десктопных систем на C# я пока не вижу. Софт для
разработчиков — не в счет.

> C>2. Небольшие быстрые утилиты.

> Бинарный diff шенкующий 4х гигабайтные файлы подойдет?
Запускающийся за сотые доли секунды?

> C>3. Встраиваемые приложения (Memory is at premium).

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

> Кстати... а то что жаба работает в кофевырках это нормально? А ведь она

> по прожорлевей...
Плохо оно работает.

> C>4. Приложения для систем без .NET Framework.

> Надеюсь ты понимаешь что нет никаких теоритических препядствий
> портированию .NET практически куда угодно.
Я практик, а не теоретик.

Да, и как вы собираетесь портировать функции типа PreProcessMessage у
Control, например?

> C>5. Приложения для OLE2.

> Ну и нафига этот OLE2 нужен?
Cut&paste из Visio в Word, например.

> C>6. Кросс-платформенные приложения (не надо про Mono).

> Почему?
Он пока дааааалеко не везде работает.
Posted via RSDN NNTP Server 2.0
Sapienti sat!
Re[42]: C+ vs C#
От: Геннадий Васильев Россия http://www.livejournal.com/users/gesha_x
Дата: 12.02.06 09:31
Оценка: +6
Здравствуйте, VladD2, Вы писали:

VD>Я выдвину свою версию — я знаю С++ и темболее C# значительно лучше тебя. Теперь ты можешь разбиться о стену даказывая обратное.


А что тут доказывать-то? Скептическое отношение к твоим словам о том, как ты "умеешь C++" появилось ещё тогда, когда ты опубликовал куски из ascLib. Что-то я не верю, что с тех пор состояние дел сильно поменялось. Масла в огонь подлили ещё и твои "анти-C++-ные" высказывания. Так что, это уж ты доказывай, что умеешь C++. Мне, как читателю, пока что очевидно обратное. А очевидное в доказательстве, как известно, не нуждается.

A>>LOL Кто бы рассказывал. Ты извени, но в области C++ твои слова — пустой звук. Кстати, так как ты не считаешь нужным читать посты твоих собеседников, рекомендую тебе всё таки посмотреть мой пост, где я писал про уровень абстракции.


VD>Ты извини но ты не имешь ни малейшего права оценивать мои возможности, и следовательно значимость моих слов. Так что, то что мои слова для тебя пустой звух — это всего лишь твои личные проблемы. Вот такая диалектика.


Однако, это может означать и отсуствие значимого содержания в твоих словах. Не находишь?
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Re[12]: C++ vs C#
От: WolfHound  
Дата: 14.02.06 10:06
Оценка: +2 :))) :)
Здравствуйте, Ellin, Вы писали:

E>Кстати Энштейн говорил вроде: "Если вы не можете объяснить пятилетнему ребёнку чемы занимаетесь — значит вы шарлотан."

Пятилетниму ребенку могу. Тролю нет.
... << RSDN@Home 1.1.4 beta 6a rev. 436>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[55]: C+ vs C#
От: VladD2 Российская Империя www.nemerle.org
Дата: 11.02.06 19:30
Оценка: 6 (1) -2 :))
Здравствуйте, Cyberax, Вы писали:

>> C>Не знаю. Но серьезных десктопных систем на C# я пока не вижу. Софт для

>> C>разработчиков — не в счет.
>> Сильно старашся не замаечать. Так будет вернее.
C>Ну так называйте имена.

Одного достаточно? Тогда RSDN@Home.

C> И цифры распространенности.


1, 2, 3.. 295. Подойдут?

>>> > C>2. Небольшие быстрые утилиты.

>>> > Бинарный diff шенкующий 4х гигабайтные файлы подойдет?
>> C>Запускающийся за сотые доли секунды?
>> Зачем программе работающей по 10 минут загружаться за сотые доли
>> секнуны? Хотя в общем-то запускается она точно меньше десятых долей
>> секунды, так как заметить на глаз ее запуск вряд ли получится.
C>Во-первых, у меня обычно утиллиты работают очень быстро.

У меня тоже. И что?

C> Во-вторых,

C>время запуска .NET-программ вполне заметно.

Используй ngen если уж тебе не втерпежь. К тому же после первого запуска ты вряд ли замешь склько запускается любое дотнетное приложение.

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

>> К твоему сведению, утилита о которой идет речь уже более года бэкапит

>> данные на нашем сервере. Причем данные измеряются гигабайтами.
C>Да я верю, что C# может работать с гигабайтами. Сам писал на Java
C>программы, которые с гигабайтами работали.

C>Меня больше интересует удобство использования.


И чем же тебя не удовлетворяет удобство использования? И вообще причем тут оно?

>>> > Кстати... а то что жаба работает в кофевырках это нормально? А ведь она

>>> > по прожорлевей...
>> C>Плохо оно работает.
>> Потрудсь подтвердить свои слова фактами, или не бросаться ими как попало.
C>Например, возьмите телефон Nokia с Symbian-OSом — для него есть порт
C>Doom на С, но на Java есть только достаточно простые игрушки (которые
C>заметно тормозят).

И это доказательство? Это скорее доказательство того, что ты не умешь делать элементарные выводы. Если пользоваться твоей "логикой", то можно сделать вывод, что С++ дерьмо, ведь Дум портирован на С, а не на нем. А у меня на телефоне есть куча игр на Яве которые отнюдь не тормозят, а на С вообще нет. Так что и С дерьмо ведь у меня на телефоне на них игр нет.

В общем, это несерьезно. Если мы говорим о Яве в кофеварках, то нужно о ней и говорить. У тебя есть претензии по потребительским свойствам кофеварок в которых встроена Ява? Нет? Тогда приходится признать, что твои слова являются мягко говоря голословными.

C>Я говорю, что в теории .NET Framework _можно_ портировать хоть на тостер

C>и холодильник, но на _практике_ он полностью есть только в Windows.

Он на прктике есть на куче девайсов. Не надо говорить заведомую неправду.

>> А что какие-то проблемы? Скачай Mono погляди как там это сделано.

C>Ну да, есть маленькая проблема — нужно полностью реализовать Win32
C>Common Controls В Mono на это забили, хотя до этого пытались
C>использовать Wine. Если поискать, то таких мест в .NET еще можно найти.

Для особо уперты повторяю. Скачай Моно. Там реализована базовая часть ВыньФормс. ВыньФормс платформно зависимая библиотека. Чтобы реализовать ВыньФормс на платформе отличной от Выньдовс прийдется эмулировать систему сообщений Виндовс. Но это не явлется непредолоимой проблемой. Например, есть порты MFC на Линукс. К тому же, даже невозможность портирования одной библотеки на другую платформу не говорит о том, что не возможно портировать рантайм.

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

>> Я вот пользуюсь и Visio, и Word, а OLE 2 не ползуюсь.

C>То есть не вставляете диаграммы из Visio в Word?

Да. Я сохраняю их как файлы и вставляю в Ворд уже готовые файлы. И делаю я это по сображениям надежности и удобста.

C>Я вот часто этим пользуюсь.


Сочувствую. Лично я сбебе этого позволить не могу, так как проффесионально занимаюсь допечатной подготовкой материлов.

>> К тому же можно объяснить, что за непреодалимые пробелмы в реализации

>> OLE 2 на дотнете?
C>То что его нет, и не планируется.

Кого нет? OLE 2 — это COM-спецификация! Каждый может реализовать ее.

C> Нет фундаментальных проблем написать

C>Word на brainf**k.

Очередной пример передергивания. Если ты проводишь некие аналогии между Брэйнфак и C#, то потрудись вырзить их явно.

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

>> И кстати, очень интересен следующий вопрос... Вот в Линукс в принципе

>> невозможно использовать OLE 2.
C>Ну во-первых, под Линукс есть по крайней мере две реализации OLE2 и DCOM

OLE2? Можно ссылкочку? Они как минимум не законны.
А DCOM никакого отношения к OLE2 не имеет. И его без каких либо трудов можно использовать из C#.

>> Стало быть на С++ нельзя написать OLE 2,

>> а программы поддерживающие OLE 2 не пререносимы и стало быть
>> С++-программы тоже не все переносимы.
C>Примерно. OLE2 непереносим — на других платформах нет такого мощного
C>cut&paste-механизма.

Да его вообще нет нигде кроме Виндовс. Если есть клоны, то уверен, что они кривые и уж точно есть не везде. А знаешь почему его нет? На фиг не упал.

C>То что на C# достаточно сложно писать портируемо.


Очередная громкие заявления не подтвержденные ничем. Говоря по простоу — треп.

>>> > Почему?

>> C>Он пока дааааалеко не везде работает.
>> А что С++-код везде работает? А если С++-компилятора нет?
C>С++ есть уже почти везде.

Ну, то есть ты согласен, что не везде? Ваши же любимые аргументы про голимые встраиваемые платформы.

C> Исключения составляют фактически всякие микроконтроллеры.


Гы. Дык вы тут постоянно на них киляете как на то где нет дотнета. А оказывается там и С++ нет. Во как?!

>> Или код цепляет тот же OLE 2?

C>Это да.

Та что? Признаем С++ непереносимым или C# переносимым? Иначе у нас получается какое-то противоричие.

ЗЫ

Подитожу.

Итак C# принципиально позволяет писать любой код. Это язык общего назначения позволяющий присать лбой императивный код. Дотнет как управляемая среда не позволяет его использовать в таких областях как ядро ОС, но уже есть компиляторы C# позволяющие делать и это. Еще одной областью где пока не работает дотнет — это системы реального времени. Обусловлено это тем, что в дотнете используется основанный на иделогии поколений GC, а эта иделогия принципиально не рассчитана на реальное время. Опять же в Сингулярити ядро отвечает требованиям SRT-систем так как применяет соотвествующих инкрементальный GC.

Во всех остальных случаях C# не просто принципиально применим но и реально применяется.

Все ваши слова явлются выдачей желаемого (причем только вам) за действительное. А все разговоры о переносимости, ресурсоемкости и т.п. являются всего лишь попытками опровергнуть очевидные факты.

Откровенно говоря тратить время на дисксси по столь очевидным вещам бессмысленно. Это вера. Бороться с верой бессмысленно. Так что счасливо оставаться со своей верой на едене.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[43]: C+ vs C#
От: Дарней Россия  
Дата: 11.02.06 09:51
Оценка: -3 :))
Здравствуйте, alexeiz, Вы писали:

A>Не угадал.


Значит, ты еще не дозрел
... << RSDN@Home 1.1.4 stable rev. 510>>
Всех излечит, исцелит
добрый Ctrl+Alt+Delete
Re[52]: C+ vs C#
От: eao197 Беларусь http://eao197.blogspot.com
Дата: 11.02.06 22:01
Оценка: +4 :)
Здравствуйте, WolfHound, Вы писали:

E>>* Вычислительные задачи. Прогнозирование погоды, моделирование аэродинамики, термодинамики, имитационное моделирование, компьютерная графика...

WH>Гм?... А в чем проблема?
WH>Я лично написал бинарный diff который режет многогигабайтные файлы... там вычисления хоть и простые но их много.

Боюсь, что это не то. Есть вычисления, в которых даже compile-time вычисления (хоть я от них и отплевываюсь) начинают играть существенную роль.

Из собственного опыта. В радиолокации используются высчислительные задачи, где требуется перемножать матрицы комплексных чисел большой размерности. Очень ресурсоемкая, надо сказать операция. Да еще не одна и в рилтайме. Для этих целей даже спецвычислители привлекают (иногда встраиваемые в компьютер в виде дополнительных PCI плат). Бодаться со всем этим делом в C++ можно. Привлекать для этого managed языки? А для чего? Весь managed нужно будет отключать либо для обеспечения нужной производительности, либо для обеспечения предсказуемости, либо для эффективной работы с железом.

E>>* Обработка больших объемов данных (статистика, к примеру). Насколько я знаю, ПО для обработки данных для самой большой в мире базы данных BaBar разрабатывается на C++.

WH>И? На С++ вобще много чего разрабатывается. И в том числе то что на С++ разрабатывать просто глупо. Что это доказывает то?

Это ничего не доказывает. Я просто привел пример области, где размер имеет значение и работают законы больших цифр. Если на C++ мы изначально ничего не теряем при работе с памятью (нет проверок на выход за диапазон) и в предсказумости (GC в ненужный момент не стартует), то на managed языках об этом нужно думать. И проигрыш managed решения на одной операции в 1-2% в реальных расчетах будут давать часы (если не дни) лишней работы программы.

E>>* Системное ПО (ядра СУБД, к примеру).

WH>В чем проблема?

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

Для меня очевидно, что для многих задач C++ менее пригоден, чем C# или Java. Что из многих областей managed языки C++ вытеснят совсем. Вероятно ты и Дарней как раз в таких областях и работаете, поэтому почувствовали разницу после перехода с C++ на C#. Вот и здорово. Но это одна сторона медали.

Вторая сторона -- за C++ останутся его ниши (часть из них мы с тобой обсудили). И в этих нишах C++ будет отличным языком, сочетающий относительную высокоуровневость с относительной низкоуровневостью. Да, C++ будет продолжать бить по рукам за просчеты. Но на нем станут меньше программировать разные ламеры, которых к C++ подпускать не стоило воовсе (со временем они начнут свое черное дело по отношению к C#). Не будет больших команд, в которых C++ демонстрирует свою недружелюбность к пользователям, зато будут небольшие командочки, которые знают, как им пользоваться. По крайней мере мне хотелось бы видеть такой сценарий развития.

Так вот, в своей нише C++ будет действительно отличным языком. Да он и сейчас такой есть. Просто период, когда на C++ пытались делать все, что ни попадя, завершается. Ну и ладно. Smalltalk, к примеру, отличный язык. Живет себе, smalltalk-ерам дает жить. Или Prolog. Он ведь до сих пор есть, и системы на нем серьезные делают. Вот и на C++ будут делать. Надеюсь, что и я то же.





Жалко, что скоро мы в "Священных воинах" окажемся. alexeiz очень толково высказался
Автор: alexeiz
Дата: 09.02.06
.


SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Re[42]: C+ vs C#
От: alexeiz  
Дата: 12.02.06 07:38
Оценка: +5
Здравствуйте, VladD2, Вы писали:

VD>Здравствуйте, alexeiz, Вы писали:


A>>По сравнению с C++? Это уже смотря как хорошо ты его знаешь (а по твоим постам видно, что ты не различаешь C и C++). У меня изначально производительность была высокая. C# ничего улучшающего не принёс.


VD>Я выдвину свою версию — я знаю С++ и темболее C# значительно лучше тебя. Теперь ты можешь разбиться о стену даказывая обратное.


Элементарно. Смотри сюда: http://rsdn.ru/Forum/Message.aspx?mid=1547274&amp;only=1
Автор: VladD2
Дата: 17.12.05
. Может ли человек, знающий C++, написать void main(). Навряд ли. А на стандартную библиотеку C++ ты вообще плевал. Человек, не знающий стандартной библиотеки, не может считаться знающим современный C++. Но не волнуйся, ты не один такой.

VD>>>Кстати после того, как изучишь эту идеологию, то и на С++ станешь писать по другому. Начнешь понимать весь вред кулхакерских решений выжимающих пару тактов процессора иди делающих код чуть короче, но при этом нарушающих принципы безопасности и надежности.


A>>LOL Кто бы рассказывал. Ты извени, но в области C++ твои слова — пустой звук. Кстати, так как ты не считаешь нужным читать посты твоих собеседников, рекомендую тебе всё таки посмотреть мой пост, где я писал про уровень абстракции.


VD>Ты извини но ты не имешь ни малейшего права оценивать мои возможности, и следовательно значимость моих слов. Так что, то что мои слова для тебя пустой звух — это всего лишь твои личные проблемы. Вот такая диалектика.


На протяжении долгого времени ты ничего разумного про C++ не сказал. С какой стати я буду серьёзно относиться к твоим словам?

VD>>>Вообще-то Нэмерл явно создавался как развитие C#. Это можно сказать такой идеальный C#. C# в который хорошо интегрированы функциональная парадигма и парадигма метапрограммирования. Так что совершенно ясно причем тут он.


A>>Отнюдь. Спорный вопрос, что это развитие C#.


VD>Ты бы хоть зашел ради хохмы на сайт Нэмерла и почитал хоть что-то о нем прежде чем разглаглоствовать о нем.

VD>http://nemerle.org/Main_Page
VD>

Nemerle is a high-level statically-typed programming language for the .NET platform. It offers functional, object-oriented and imperative features. It has a simple C#-like syntax and a powerful meta-programming system. more...

VD>

...Nemerle is not far away from C#.
VD>Semantically Nemerle is mostly a C# superset...


Вот как будет там написано evolution, так и поговорим. А пока эти слова не делают Nemerle и близко к развитию C#.
Re: C++ vs basic
От: Sheridan Россия  
Дата: 15.02.06 05:59
Оценка: +1 -4
Именно так.

[RSDN@Home][1.2.0][alpha][643]
[Hаслаждение бренно — честь бессмертна. [Периандр]]
Matrix has you...
Re[56]: C+ vs C#
От: Кодёнок  
Дата: 13.02.06 12:51
Оценка: 3 (2) +2
Здравствуйте, alexeiz, Вы писали:

Д>>4. Замыканий


A>Функторы.


Бред. Вот пара примеров навскидку:

Придуманный:
def MakeInvertedPredicate(p) { fun(x) { !p(x) } }


Как это реализовать на С++? Знаю что можно, да думать лень, когда уже повсюду реализованы нормальные средства.

Реальный:

def Sort(item : int, reverse : bool) : void
{
    def pred(av, bv) : bool
    {
        def (a, b) = if (reverse) (bv, av) else (av, bv);
        some_natural_order_string_compare(a[item], b[item]) < 0
    }
    some_standart_sort(m_data.begin(), m_data.end(), pred)
}


А как это делается на С++? Обрати внимание на необходимость вручную передать члены класса, скопировать в конструкторе...
    void Sort(int item, bool reverse)
    {
        struct Pred
        {
            int m_nItem;
            bool m_reverse;
            Pred(int nItem, bool rev) : m_nItem(nItem), m_reverse(rev) {}
            bool operator()(std::vector<CString> const& av, std::vector<CString> const& bv)
            {
                CString const& a = (m_reverse ? bv : av)[m_nItem];
                CString const& b = (m_reverse ? av : bv)[m_nItem];
                return strnatcasecmp(a, b) < 0;
            }
        };
        std::sort(m_data.begin(), m_data.end(), Pred(item, reverse));
    }

Надеюсь не надо пояснять, что будет, если таких передаваемых параметров будет 8-10? А что если в их числе должны будут быть другие предикаты (которые могут быть статическими функциями или членами классов), которым тоже надо что-то передать?

Ты можешь сказать, что у тебя таких ситуаций не было. А почему не было? Потому что тебе не приходило в голову, что так можно, исключительно из-за того, что на С++ это делать трудно и результат получается непонятным. Вот тебе косвенный показатель "высокости уровня": на каждом "уровне" свои проблемы. Например, трудно представить программиста на Си, перетряхивающего большую иерархию классов

Наличие замыканий — это дополнительный уровень абстракции. Недавно всплывали числа Черча — чем не абстракция? На С++ эта абстракция недоступна.

Д>>5. Уверенности в том, что безобидный на вид код не окажется злостным UB

A>Не замечено. Давай ты приведёшь пример well-formed C++ кода, использующего высокоуровневые абстракции, в котором тебя ждут упомянутые тобой проблемы.

Не раз в форуме C++ были темы с безобидной функцией, в которой находили до десятка потенциальных проблем. Проблема как раз в выделенном — трудно сразу сказать, является код ill-formed, или это well-formed с UB, или всё правильно. К примеру:

struct A
{
  T* x, y;
  A() : x (new T), y (new T) {}
};


Д>>2. Необходимость писать килограммы оберток каждый раз, когда тебе нужно использовать чужую библиотеку (см п.1 и п.2)

A>Проблемы библиотек. Объясни мне, как херовые сторонние библиотеки вдруг стали проблемой языка?

Всегда были. Я тебе продемонстрировал Такие мелочи, когда из-за недостатка фич в языке неожиданно приходится писать какую-то муть, в совокупности заставляют отказаться от некоторых выгодных стилей программирования. Например, мне бы хотелось услышать, как ты объяснишь новичку в С++ (умеющему создать вектор чисел и отсортировать) приведенную реализацию Sort, зачем там ещё класс, почему так? Или может приведёшь более понятную реализацию (отсортировать два двухмерных массива (jagged) по заданному номеру столбца, опционально с инверсией)?

Д>>3. Заботливо разложенные на каждом шагу грабли, в качестве ярких примеров — vector<bool>, auto_ptr в котейнерах, и прочие радости.

A>Эти грабли хорошо изветсны и никакой опасности не представляют.



Про массив auto_ptr все знают. Везде написано. А вот про это — не везде:

void foo(auto_ptr<T> param)
{
}


A>Все твои "аргументы" даже и на йоту не ближе к тому, чтобы показать, что на С++ нельзя программировать на высоком уровне абстракции.


Насколько высоком? Более высоком, чем на Си? Да. На не менее высоком, чем позволяет любой другой существующий язык? Увы, нет.

Факт в том, что в других языках есть нужные и полезные возможности, которых в С++ нет. Следующий стандарт готовят через несколько лет и там их тоже нет. Это возможности вроде замыканий или макросов, которые средствами языка, без привлечения дополнительного препроцессора, реализовать в принципе никак. В редких случаях возможны извраты (благодаря которым переменные приходится объявлять как DECLARE(int, x) и т.п.), дающие некое подобие.
Re[6]: C++ vs basic
От: IT Россия linq2db.com
Дата: 19.02.06 03:35
Оценка: 3 (1) +1 :))
Здравствуйте, Sheridan, Вы писали:

S>Тем что он for dummies (или как там правильно пишется).


Ещё один крутоголовый? Череп не жмёт?

S>Тем что интепритатор.


Садись, два.

S>Тем что некроссплатформен.


Ты в своей жизни много кроссплатформенных программ написал?

S>Тем что требуетъ кучу либ.


А кто не требует?

S>Тем что памятью нельзя управлять.


Это ты про лики и протухщие указатели?

S>Тем что тормоз в конце концов.


Ну понятное дело, это же некросплатформенный интерпретатор
... << RSDN@Home 1.2.0 alpha rev. 0>>
Если нам не помогут, то мы тоже никого не пощадим.
Re[53]: C+ vs C#
От: VladGalkin Украина  
Дата: 11.02.06 20:31
Оценка: 2 (1) -1 :))
Здравствуйте, Cyberax, Вы писали:

C>Да ни в чем, в общем-то. Уже 5 лет прошло, а софта на С# не так уж и

C>много для следующей революционной технологии.
В США востребованы .NET разработчики лично мне это говорит, что эти приложения очень активно пишутся.
Назовите приложения на Smalltalk? А их много, и не только реализации языка.
Назовите приложения использующие ООСУБД (не постреляционные), а их в мире довольно много.
Исторически, на территории бывшего СССР сложилась некоторая монополия C++, которая способствовала росту касты "плюсеров", занимающихся цитированием Языкового Стандарта C++, толкованием кода и изголяющимся в реализации различных концепций/средств на языке, который эти концепции и средства либо слабо поддерживает, либо не поддерживает вообще. Это в основном про Boost. По поводу концепций, приведу цитату Страуструпа об использовании С++ для кодирования идиом из динамических языков, таких как Lisp или Smalltalk:

"Smalltalk — лучший из всех существующих smalltalk-ов."


Данную монополию ничем, кроме советского образа мышления (все ДОЛЖНЫ использовать С++, C++ лучше всех) я объяснить не могу.
Многие не хотят бросать эту монополию, поскольку это ведет к ряду проблем (изменение мышления, изменение профессионального/социального? статуса, существующее legacy etc.)

ЗЫ Целью данного поста не является кого-либо унизить/обидеть/возвысить. Я просто высказал свою точку зрения. Я ни в коем случае не являюсь сторонником какого-либо одного языка.
... << RSDN@Home 1.1.4 stable rev. 510>>
ДЭ!
Re[8]: C++ vs basic
От: Alxndr Германия http://www.google.com/profiles/alexander.poluektov#buzz
Дата: 20.02.06 14:29
Оценка: 2 (1) +3
Здравствуйте, Sheridan, Вы писали:

S>Я понимаю что на этом форуме все без ума от шарпа с микрософтом, молятся им... Но это не повод для насмешек над считающими иначе.


Я вот, например, терпеть не могу C# сотоварищи и, между прочим, переползаю на *nix (кстати, в грудь себя по этому поводу не бью, обрати внимание).
Поэтому со всей объективностью заявляю: дело тут не в том, что все молятся на шарп с микрософтом.
Просто ты проявляешь незнание охаиваемого тобой предмета.

Зачем?
Re[50]: C+ vs C#
От: Cyberax Марс  
Дата: 11.02.06 14:35
Оценка: 1 (1) +1 -1 :)
WolfHound wrote:
> C>Нет, просто C# и прочие языки еще не доросли до тех задач, которые С++
> хорошо решает.
> 1)Ядро ОС
> 2)Драйверы
> 3)Жесткое реальное время
> Я ничего не забыл?
Забыл, забыл. Еще есть:
1. Десктопные приложения (поверю, что C# до них дорос в тот день, когда
выйдет Word на C#).
2. Небольшие быстрые утилиты.
3. Встраиваемые приложения (Memory is at premium).
4. Приложения для систем без .NET Framework.
5. Приложения для OLE2.
6. Кросс-платформенные приложения (не надо про Mono).

И т.п.
Posted via RSDN NNTP Server 2.0
Sapienti sat!
Re[40]: C+ vs C#
От: eao197 Беларусь http://eao197.blogspot.com
Дата: 10.02.06 16:22
Оценка: +4
Здравствуйте, VladD2, Вы писали:

VD>Начнешь понимать весь вред кулхакерских решений выжимающих пару тактов процессора иди делающих код чуть короче, но при этом нарушающих принципы безопасности и надежности.


Этот вред всегда был понятен. Для этого вовсе не нужно было переключаться на другие языки.

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


SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Re[59]: Еще раз об управляемых ОС
От: VladGalkin Украина  
Дата: 11.02.06 20:44
Оценка: :))) :)
Здравствуйте, Cyberax, Вы писали:


C>Нет. Это ведь каждый знает — в С# ведь нет таких необходимейших вещей

C>как мультиметоды!
Сейчас Вы прослушаете обзор возможностей Nemerle от Влада.
... << RSDN@Home 1.1.4 stable rev. 510>>
ДЭ!
Re[57]: C+ vs C#
От: VladD2 Российская Империя www.nemerle.org
Дата: 11.02.06 21:11
Оценка: +1 -3
Здравствуйте, Cyberax, Вы писали:

VD>>Одного достаточно? Тогда RSDN@Home.

C>Слово "имена" — множественное число

Хм. Имена конечно можно назвать. Вопрос толко зачем?
Ты утверждал:

Но серьезных десктопных систем на C# я пока не вижу

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

C>>> И цифры распространенности.

VD>>1, 2, 3.. 295. Подойдут?
C>Маловато будет.

ОК, 1452345. Это не мало?

C>>>Во-первых, у меня обычно утиллиты работают очень быстро.

VD>>У меня тоже. И что?
C>Потому что на .NET они НЕ написаны.

Они как раз все как одна написаны на дотнете, так как у меня нет желания убивать время на написание их на С++. Мне их нужно было быстро сделать и забыть.

VD>>Используй ngen если уж тебе не втерпежь. К тому же после первого запуска ты вряд ли замешь склько запускается любое дотнетное приложение.

C>Замечаю, когда .NET не висит в памяти.

Ну, так один запуск и он весь "повиснит" в памяти. Ведь это просто набор ДЛЛ-ек.

VD>>И чем же тебя не удовлетворяет удобство использования? И вообще причем тут оно?

C>В удобство входит скорость запуска и объем занимаемой памяти. А с этим что у .NET, что у Java — проблемы.

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

Теперь на счет памяти. Утебя проблемы с ее обхемом? Я вот ни разу не видел, чтобы реальное дотнет-приложение имело какие-то проблемы с ней связанные. Пусть таскменеджер показывает большие цифры на управляемые процессы, но в итоге то какая разница? Особоенно для утилит.

Еще раз могу тынуть на утилиту diff на нашем сервере. Она работает с файлами объемом в несколько гигабайт. И никаких проблем с памятью.

ЖЦ банально эффективнее работает если жрет больше памяти. Таковы алгоритмы.

VD>>И это доказательство? Это скорее доказательство того, что ты не умешь делать элементарные выводы. Если пользоваться твоей "логикой", то можно сделать вывод, что С++ дерьмо, ведь Дум портирован на С, а не на нем.

C>Давайте я изменю у файлов расширение с "c" на "cpp" — специально для вас. Ну еще могу где-нибудь добавить std::vector.

Опять треп. Портировать большую С-программу на С++ очень не просто. Если не пробовл, так не трепись почем зря. Да и смысл в таком "портировнии"? Программа все равно останется С-шной. Только увеличатс проблемы с переносимостью.

VD>> А у меня на телефоне есть куча игр на Яве которые отнюдь не тормозят, а на С вообще нет. Так что и С дерьмо ведь у меня на телефоне на них игр нет.

C>У вас нет BREW на телефоне? Отстойный телефон.

Значит если на моем телефоне хорошо работает Ява, то он отстойный.

VD>>В общем, это несерьезно. Если мы говорим о Яве в кофеварках, то нужно о ней и говорить. У тебя есть претензии по потребительским свойствам кофеварок в которых встроена Ява? Нет? Тогда приходится признать, что твои слова являются мягко говоря голословными.

C>Я сравнивал быстродействие. При прочих равных С/C++ позволяет достичь на встраиваемых устройсвах значительно больших результатов.

Ты сказал, что Ява плохо работает в кофеварках:

> Кстати... а то что жаба работает в кофевырках это нормально? А ведь она
> по прожорлевей...
Плохо оно работает.


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

Что касается прочих равных. Недавно был случай. На КПК АВК нужно было копировать с 256-метровой КомпактФлэш-краты, на SD. Попробывали копировать идущей в поставке (WinCE) утилитой написанной на С++. Получилось ОООЧЕНЬ медленно. Один файл размером около 2.5 метров копировался 3 часа. Ну, что же... Я взял VS 2005 и написал на Компакт Фрэймворке 2.0 утилиту копирующую файлы. Копирование стало занимать пару минут (все флэйшки).

Теперь внимание вопрос, так как после тэтого смотреть на твои голословные утверждения?

VD>>Он на прктике есть на куче девайсов. Не надо говорить заведомую неправду.

C>.NET? Не CF, а полный .NET и не в Windows (CE — это тоже Windows)?

А какая разница полный он или CF? В CF точно такой же рантайм как у любого друго фрэймворка. Разница тольк в том, что расходывание памяти в нем производится более экономно и библотеки по скуднее. Первое тебе вообще не должно колыхать. Это просто оптимизация на область применения. А второе... Да что правда, то прада. Библиотека гораздо скуднее. Вот только она в сто раз богаче чем у С++. В его стандартную библиотеку нихрена не входит. Библиотека контейнеров и изумительный набор функций для копирования и сравнения памяти. Ну, а любая программа для CF запускается на полном дотете без проблем. Причем даже без перекомпиляции.

Так что еще раз повторюсь. Преестать говорить откровенную не првду и начни проверять свои утверждения.


VD>>Для особо уперты повторяю. Скачай Моно. Там реализована базовая часть ВыньФормс. ВыньФормс платформно зависимая библиотека. Чтобы реализовать ВыньФормс на платформе отличной от Выньдовс прийдется эмулировать систему сообщений Виндовс. Но это не явлется непредолоимой проблемой. Например, есть порты MFC на Линукс. К тому же, даже невозможность портирования одной библотеки на другую платформу не говорит о том, что не возможно портировать рантайм.

C>Ну так наличие огромной стандартной библиотеки является плюсом C#.

Одним из плюсов. К тому же размер библиотеки даже без ВыньФормс поражующи велик по сравнению с тем, что идет в стандартной поставке любого С++-компилятора. Особенно если рассматривать только лекго портируемые библиотеки. Переносимые же библиотеки обычно имеют кучу своих проблем и зависимостей. Тот же GTK большой в принципе, а те только в версии для дотнета.

C> А тут оказывается, что интерфейсная либа не совсем портируема. И ADO.NET тоже имеет досадные несовместимости, а Web.Forms совсем почти не работают.


ADO.NET полностью реализован в Моно. Более того лющи занимающиеся БД зачастую берут их провайдеры для использования под дотнетом.

Мне вот хотелось бы услышать о библиотеки для С++ которая была бы доступна на всех платформах где есть С++ и не имела бы проблем. Из стандартов для доступа к БД на С++ я знаю только ODBC — библиотеку созданную МС. И она имет массу проблем.

C>Так и пропадает радужная картина кросс-платформенности.


Я уж не знаю нафиг тебе лично унжна кросплатформность. Но что то я сомневаюсь, что испльзование КОМ, МФЦ или любой другой библиотеки увеличит кросплатформность. А без непереносимых библиотек разницы нет. Даже дотнетыный код более переносим, так как не имет такой сильной зависимости кода от ОС как это часто бывает в С++-коде. И может переноситься без перекомпиляции.

C>Зато есть wxWidgets, QT, GTK, FLTK. С разными степенями оверхеда (от минимального в случае wxWidgets до максимального в GTK/QT).


Да, ты что? Првда? Тогда зайди сюда http://wxnet.sourceforge.net/

VD>>Да. Я сохраняю их как файлы и вставляю в Ворд уже готовые файлы. И делаю я это по сображениям надежности и удобста.

C>И эти люди не дают мне копатсья в носу...

Кто же тебе не дает копаться в носу? Просто козявки после этого не нужно по столу раскладывать.

C>Про функцию "Convert" у OLE-объектов слышали? Советую посмотреть.


Про качество слышал? И вообще, забавно слышать как человек не имеющий отношения к DTP учит того кто этим занимается последние 15 лет.

VD>>Кого нет? OLE 2 — это COM-спецификация! Каждый может реализовать ее.

C>Не может. Точнее может, но в C# будет требоваться unsafe.

1. Можно обойтись и без ансэйва.
2. А какая разница? В классе string море ансэйфа, но что то никто не слышит воплей по этому поводу.

C>>> Нет фундаментальных проблем написать

C>>>Word на brainf**k.
VD>>Очередной пример передергивания. Если ты проводишь некие аналогии между Брэйнфак и C#, то потрудись вырзить их явно.
C>Это я к тому, что в теории можно одной левой переписать Word на C#. А вот на практике что-то не сростается.

Покажи мне кто и где тут говорил о том, что написать Ворд — это раз плюнуть? Или ты будешь утверждать, что реализовать поддержку OLE 2 задача по слдожности сопоставимая с созданием полного аналога Ворда?

Еще рез. OLE 2 — это COM-спецификация. Нет никакой разницы на чем ее реализовывать. И она не реализована на 100% на C# только потому, что это никому не нужно. Хотел бы я поглядеть как кто-то реализует OLE 2 без MFC.

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

C>Есть такой литературный прием — называется "гипербола"...

Ага. Он же утрирование или передергивание.

VD>>OLE2? Можно ссылкочку? Они как минимум не законны.

C>Законны. Так как по лицензии от MS. Вот тут DCOM http://www.softwareag.com/corporate/products/entirex/downloads/download_exxdcom.asp .

А зачем мне DCOM? DCOM в дотнете поддерживается намного лучше чем в любом линукс-приложении.

C>Точную ссылку на OLE лень искать, но у них оно было.


А, ну, тогда пока ссылки не будет будем считать, что ты снова сказал не подумав.

VD>>А DCOM никакого отношения к OLE2 не имеет. И его без каких либо трудов можно использовать из C#.

C>Это я сказал просто чтобы показать, что все COM-технологии есть под Linux.

А об этом тебя никто не просл. Я попросил дать подтверждение твоим словам про OLE2 под Линукс, так как никогда не слышал о таком. Единственное что мне извесно — это что по Линкус есть набор кастрированной поддержки для запуска Виндовс приложений. Но я даже не уверен, что в них действительно поддерживмется OLE2.

VD>>Да его вообще нет нигде кроме Виндовс. Если есть клоны, то уверен, что они кривые и уж точно есть не везде. А знаешь почему его нет? На фиг не упал.

C>Ну да, ведь в C# его нет

Тут связь обратная. Его нет в C# так как не сильно нужно. Нельзя объять необъятное.

C>>>То что на C# достаточно сложно писать портируемо.

VD>>Очередная громкие заявления не подтвержденные ничем. Говоря по простоу — треп.
C>Давайте сравним количество распространенного портируемого софта на С++ и C#?

Сколько лет С++? Вот через 25 лет и сравним. Можно еще задаться вопросмо почему Ворд и Виндовс приемущественно написаны на С, а не на С++. Тоже позновательно.

C> Вот почему такой замечательный RSDN@Home не работает под Линуксом?


Потому, что Линкус на фиг никому не упал. И потому, что Хоум использует С++-ный JET не портируемый на Линукс, и С++-ный же MS IE опять же отсуствующий на Линукс. В остальном портировать было бы можно.

У меня вот есть приложения которые дейсвтвильно без пробелм можно было бы портировать на Линукс, только зачем? Кому они там нужны? Точнее кому этот Линукс нужен? Фанатики обойдутся и тем, что на нем уже есть.

VD>>Ну, то есть ты согласен, что не везде? Ваши же любимые аргументы про голимые встраиваемые платформы.

C>Там где есть .NET — С++ точно есть. Обратное неверно.

Хм. И что? Это имеет отношение к обсуждаемым вопросам? Опять же тот же аргумент применим к С/С++. Что же теперь не писать на С?

C>С++ нет только на самых скромных платформах (типа микроконтроллеров с килобайтами памяти) — там он просто не нужен, все часто на ассемблерах пишут.


О. С++ нет очень много где, так как людям просто влом портировать его туда где он на фиг не уперся. А есть даже платформы где он в принципе быть не может. Например, он физически не пригоден в системах с программной изоляцией процесса вроде Сингулярити, Оберон ОС и т.п.

C>Ну вот на HP-UX есть .NET?


Я балдею. Что только не придумашь лиш бы доказать себе какю нибудь глупость.
Есть он на HP-UX http://www.mono-project.com/Supported_Platforms
В виде интерпретатора.
Сразу отвечу почему нет джтита. Нафиг не упал. Портирование компилтора — это работа которую делают только если оно действительно нужно.

VD>>Во всех остальных случаях C# не просто принципиально применим но и реально применяется.

C>Только практических результатов не видно. А 5 лет уже прошло.

Значит вопрос о невозможности уже снят? Уже не плохо. Что до результатов... Достаточно того, что их уже не мало. Объем софта создаваемого на пуравляемых языках постоянно растет. Ява уже давно занимает первое места на сорсфордже. Шарп тоже не последнее. У многих на машине по несколько управляемых приложений. Со временим его процент явно будет расти.

Все очевидно. В чем ты тут кого-то хочешь убедить?

VD>>Откровенно говоря тратить время на дисксси по столь очевидным вещам бессмысленно. Это вера. Бороться с верой бессмысленно. Так что счасливо оставаться со своей верой на едене.

C>Почему же, я вот вам привожу пример: нет распространенных end-user'ских настольных приложений на .NET. Хотите доказать обратное? Давайте примеры.

Я не хочу тебе что-то даказывать. Тысячи человек пользуются такими продктами как RSDN@Home, RSS/News Reader-ами написанными на C#, VS 2005 и HTML Help 2.0. Все эти продукты используют внутри себя фрэймворк или написаны целиком на дотнете.

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

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

Что же счастливо продолжать это плодотворное занятие. А мы тем временм посмемся отвечая тебе их тех самых "end-user'ских настольных приложений" кторые по твоим словам вообще невозможно написать на дотнете.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re: C+ vs C#
От: Hasmik Армения  
Дата: 06.05.06 09:55
Оценка: :))) :)
Мне больше нравится С#. На С++ морока переводить числа в стринг и наоборот. А за foreach можно все отдать. Вместо того, чтобы писать шаблонные циклы, вводить переменные для индекса. Всего этого в С++ не хватает.
Re[54]: C+ vs C#
От: Геннадий Васильев Россия http://www.livejournal.com/users/gesha_x
Дата: 12.02.06 05:22
Оценка: 1 (1) +1 :)
Здравствуйте, VladGalkin, Вы писали:

VG>Исторически, на территории бывшего СССР сложилась некоторая монополия C++, которая способствовала росту касты "плюсеров", занимающихся цитированием Языкового Стандарта C++, толкованием кода и изголяющимся в реализации различных концепций/средств на языке, который эти концепции и средства либо слабо поддерживает, либо не поддерживает вообще. Это в основном про Boost.


А что, Boost создан и поддерживается исключительно выходцами из СССР? Хотя вот, Алекс Степанов (один из создателей STL) вроде как имеет некое отношение к СССР.

VG>По поводу концепций, приведу цитату Страуструпа об использовании С++ для кодирования идиом из динамических языков, таких как Lisp или Smalltalk:

VG>

VG>"Smalltalk — лучший из всех существующих smalltalk-ов."


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

VG>Данную монополию ничем, кроме советского образа мышления (все ДОЛЖНЫ использовать С++, C++ лучше всех) я объяснить не могу.


Это отнюдь не "советский", а "стадный" образ мышления. Не стоит путать. И он в не меньшей, а то и в большей степени распространён сейчас (Все ДОЛЖНЫ писать под .Net, потому что все УЖЕ перешли на .Net). На самом деле, на территории бывшего СССР Pascal пользовался не меньшей популярностью, чем C++. Скорее даже большей.

VG>Многие не хотят бросать эту монополию, поскольку это ведет к ряду проблем (изменение мышления, изменение профессионального/социального? статуса, существующее legacy etc.)


Проблема не в этом. C++ стал популярен у программистов без маркетинговых вливаний со стороны AT&T, а C# в немалой степени продукт маркетологический: результат исследования потребностей "усреднённого программиста". Естественно, что поскольку C++ умеют пользоваться, хорошо, если десятая часть "C++-програмистов", то и получился на выходе "С++ урезанный". Например, пресловутый отказ от множественного наследования. Плюс определённые технические проблемы. Вот в этом и есть причина того, что C# подвергается остракизму со стороны C++-ников. Так что, почувствуй разницу: где тут на самом деле порылись примитивные стадные черты.


Если продать каждому человеку что-то за доллар, то можно озолотиться. Что нужно любому человеку? Туалетная бумага! Давайте ВСЕ будем делать туалетную бумагу? Озолотимся!
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Re[59]: C+ vs C#
От: Cyberax Марс  
Дата: 15.02.06 07:24
Оценка: 1 (1) +1 -1
Vermicious Knid wrote:
> В C# есть абстрактные классы, интерфейсы, делегаты, свойства. Что из
> этого может предложить C++? Правильно, ничего.
Бред. В С++ есть:
1. Абстрактные классы:
class Base
{
public:
    virtual ~Base(){};
    virtual void squack() = 0;

    void some_method(){squack();}
};


2. Интерфейсы:

class Base
{
public:
    virtual ~Base(){};
    virtual void squack() = 0;
    virtual void another_method() = 0;
};

Base *base=dynamic_cast<Base*>(some_obj);
base->squack();


3. Свойств нет (они к ООП и не относятся). Но при желании:
https://secure.codeproject.com/cpp/cppproperties.asp
http://www.codeproject.com/samples/cppprops.asp
Posted via RSDN NNTP Server 2.0
Sapienti sat!
Re[41]: C+ vs C#
От: Дарней Россия  
Дата: 11.02.06 06:42
Оценка: -3
Здравствуйте, eao197, Вы писали:

E>Но, видишь ли, есть программисты, у которых подобного печального опыта нет. Вероятно, alexeiz как раз пример. И я так же.


Наверно, эти программисты просто никогда не работали над большими проектами на плюсах. В команде от десяти человек и больше, объемом от n*10 человеко-лет.
Или я неправильно угадал?
... << RSDN@Home 1.1.4 stable rev. 510>>
Всех излечит, исцелит
добрый Ctrl+Alt+Delete
Re[48]: C+ vs C#
От: Cyberax Марс  
Дата: 11.02.06 14:07
Оценка: +1 :))
WolfHound wrote:
> Д>>я раньше тоже думал в точности, как ты
> A>Т.е. как конкретно? Ты ещё не выразил своего мнения. Милости просим.
> Ну примерно так: С++ крут! С++ мега крут! Нет ничего круче С++! Если
> правильно использовать С++ то все эти новомодные финтифлюшки тапа .NET'а
> просто ерунда!
Нет, просто C# и прочие языки еще не доросли до тех задач, которые С++
хорошо решает.
Posted via RSDN NNTP Server 2.0
Sapienti sat!
Re[51]: C+ vs C#
От: WolfHound  
Дата: 11.02.06 15:04
Оценка: -3
Здравствуйте, Cyberax, Вы писали:

C>1. Десктопные приложения (поверю, что C# до них дорос в тот день, когда выйдет Word на C#).

А в чем проблема? Кроме того что ктото должен сесть и написать..., а это в любом случае большие затраты которые довольно трудно окупить ибо придется воевать с офисом...
C>2. Небольшие быстрые утилиты.
Бинарный diff шенкующий 4х гигабайтные файлы подойдет?
C>3. Встраиваемые приложения (Memory is at premium).
Таких становится все меньше и меньше, и управляемые среды тоже работыют на уменьшением потребления памяти...
Кстати... а то что жаба работает в кофевырках это нормально? А ведь она по прожорлевей...
C>4. Приложения для систем без .NET Framework.
Надеюсь ты понимаешь что нет никаких теоритических препядствий портированию .NET практически куда угодно.
C>5. Приложения для OLE2.
Ну и нафига этот OLE2 нужен?
C>6. Кросс-платформенные приложения (не надо про Mono).
Почему?
... << RSDN@Home 1.1.4 beta 6a rev. 436>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[53]: C+ vs C#
От: VladD2 Российская Империя www.nemerle.org
Дата: 11.02.06 18:14
Оценка: -3
Здравствуйте, Cyberax, Вы писали:

C>Не знаю. Но серьезных десктопных систем на C# я пока не вижу. Софт для

C>разработчиков — не в счет.

Сильно старашся не замаечать. Так будет вернее.

>> C>2. Небольшие быстрые утилиты.

>> Бинарный diff шенкующий 4х гигабайтные файлы подойдет?
C>Запускающийся за сотые доли секунды?

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

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

>> Кстати... а то что жаба работает в кофевырках это нормально? А ведь она

>> по прожорлевей...
C>Плохо оно работает.

Потрудсь подтвердить свои слова фактами, или не бросаться ими как попало.

>> C>4. Приложения для систем без .NET Framework.

>> Надеюсь ты понимаешь что нет никаких теоритических препядствий
>> портированию .NET практически куда угодно.
C>Я практик, а не теоретик.

Это переход на личности, не будем обсуждать вопрос о том кто ты.

C>Да, и как вы собираетесь портировать функции типа PreProcessMessage у

C>Control, например?

А что какие-то проблемы? Скачай Mono погляди как там это сделано.

>> C>5. Приложения для OLE2.

>> Ну и нафига этот OLE2 нужен?
C>Cut&paste из Visio в Word, например.

Я вот пользуюсь и Visio, и Word, а OLE 2 не ползуюсь.
К тому же можно объяснить, что за непреодалимые пробелмы в реализации OLE 2 на дотнете?
И кстати, очень интересен следующий вопрос... Вот в Линукс в принципе невозможно использовать OLE 2. Стало быть на С++ нельзя написать OLE 2, а программы поддерживающие OLE 2 не пререносимы и стало быть С++-программы тоже не все переносимы. Тогда же в чем разница между программой на дотнете и С++-программой? Если программа использует платформно-зависимую библиотеку, то она принципиально не переносима.

>> C>6. Кросс-платформенные приложения (не надо про Mono).

>> Почему?
C>Он пока дааааалеко не везде работает.

А что С++-код везде работает? А если С++-компилятора нет? Или код цепляет тот же OLE 2?
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[54]: C+ vs C#
От: eao197 Беларусь http://eao197.blogspot.com
Дата: 12.02.06 06:45
Оценка: +3
Здравствуйте, VladD2, Вы писали:

VD>Видимо по этому их перемножают на допотопной, чуть ли не ламповой, технике. Да?


Ты точно уверен, что понимаешь о чем говоришь?


SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Re[54]: C+ vs C#
От: Дарней Россия  
Дата: 13.02.06 10:28
Оценка: -3
Здравствуйте, alexeiz, Вы писали:

A>Меня уже достали твои общие слова. Ты отрицаешь наличие высокоуровневых возможностей в C++?


А меня достал ты со своей уверенностю в том, что ты здесь лучше всех знаешь С++.

Там нет:
1. Стандарта на массивы и строковый тип. std::vector и std::string на эту роль не подходят, потому что все равно авторы каждой библиотеки изобретают собственные велосипеды.
2. Стандарта на политику обработки ошибок
3. Нормальной возможности использовать функциональные типы (заменители на килобайтах шаблонов и макросов — не считаются)
4. Замыканий
5. Уверенности в том, что безобидный на вид код не окажется злостным UB

Там есть:
1. Хреновая поддержка стандарта в распространенных компиляторах
2. Необходимость писать килограммы оберток каждый раз, когда тебе нужно использовать чужую библиотеку (см п.1 и п.2)
3. Заботливо разложенные на каждом шагу грабли, в качестве ярких примеров — vector<bool>, auto_ptr в котейнерах, и прочие радости.
... << RSDN@Home 1.1.4 stable rev. 510>>
Всех излечит, исцелит
добрый Ctrl+Alt+Delete
Re[55]: C+ vs C#
От: alexeiz  
Дата: 13.02.06 11:17
Оценка: +2 -1
Здравствуйте, Дарней, Вы писали:

Д>Здравствуйте, alexeiz, Вы писали:


A>>Меня уже достали твои общие слова. Ты отрицаешь наличие высокоуровневых возможностей в C++?


Д>А меня достал ты со своей уверенностю в том, что ты здесь лучше всех знаешь С++.


Да, я вижу поголовное плохое знание С++. Это большая проблема.

Д>Там нет:

Д>1. Стандарта на массивы и строковый тип. std::vector и std::string на эту роль не подходят, потому что все равно авторы каждой библиотеки изобретают собственные велосипеды.

В этом виноваты авторы каждой библиотеки. Стандарт на то и нужен, чтобы перестать изобретать велосипеды. Начни использовать стандартные средства. Стандарт на стоковой тип есть.

Д>2. Стандарта на политику обработки ошибок


Не меньше, чем в других языках. Исключения поддерживаются на нужном уровне.

Д>3. Нормальной возможности использовать функциональные типы (заменители на килобайтах шаблонов и макросов — не считаются)


Это камень предкновения? Программируй на функциональном языке.

Д>4. Замыканий


Функторы.

Д>5. Уверенности в том, что безобидный на вид код не окажется злостным UB


Не замечено. Давай ты приведёшь пример well-formed C++ кода, использующего высокоуровневые абстракции, в котором тебя ждут упомянутые тобой проблемы.

Д>Там есть:

Д>1. Хреновая поддержка стандарта в распространенных компиляторах

К языку не относится. Не нужно путать язык и его реализации. К тому же в распостранённых компиляторах поддержка стандарта уже oчень хорошая.

Д>2. Необходимость писать килограммы оберток каждый раз, когда тебе нужно использовать чужую библиотеку (см п.1 и п.2)


Проблемы библиотек. Объясни мне, как херовые сторонние библиотеки вдруг стали проблемой языка?

Д>3. Заботливо разложенные на каждом шагу грабли, в качестве ярких примеров — vector<bool>, auto_ptr в котейнерах, и прочие радости.


Эти грабли хорошо изветсны и никакой опасности не представляют. Читай документацию, что называется. В auto_ptr написано, как он должен использоваться. Ты можешь положить его в контейнер, только если не прочтёшь его документацию. Я уже не говорю о том, что компилятор тебе по рукам даст.

vector<bool> настолько искуственный пример, что если тебе не сказали о его проблемах, ты бы даже и не подозревал.

---
Все твои "аргументы" даже и на йоту не ближе к тому, чтобы показать, что на С++ нельзя программировать на высоком уровне абстракции.
Re: C++ vs C#
От: Ellin Россия www.rsdn.ru
Дата: 13.02.06 13:25
Оценка: +1 -2
Совершенно не понятно, зачем Microsoft было затевать эту разработку технологии .NET, Новых языков, сред программированию. С точки зрения технической пользы, понятно. что финансовую выгоду они с этого получат — факт.
1. Однако, если кто-то забыл, то и C и С++ задумывались как своеобразные средства переноса программ с одного компьютера на другой. Достаточно было написать новый компилятор для программы и она запускалась на требуемой машине. И это кажется более логичным, чем таскать виртуальную машину или какую-то среду исполнения на каждой машине и даже каждой ОС, для которой хотели бы запуститься. Чувствуете разницу — в одном случае мы имеем дело с типом машин, а в случае подхода C# с каждой машиной в отдельности.
2. Все, что реализовано в .NET можно было смело реализовывать и в Visual C++ 8.0. Что мешало? При этом С++ является хорошо изученным + куча библиотек. Почему бы не расширять/урезать этот язык? ... Маркетинг?

И еще: в заголовке опечатка.
Re[3]: C++ vs C#
От: Ellin Россия www.rsdn.ru
Дата: 13.02.06 16:04
Оценка: -2 :)
Здравствуйте, Sinclair, Вы писали:
Эмоциональный выпад, однако.

S>Здравствуйте, Ellin, Вы писали:


E>>Совершенно не понятно, зачем Microsoft было затевать эту разработку технологии .NET, Новых языков, сред программированию. С точки зрения технической пользы, понятно. что финансовую выгоду они с этого получат — факт.

S>
E>>1. Однако, если кто-то забыл, то и C и С++ задумывались как своеобразные средства переноса программ с одного компьютера на другой. Достаточно было написать новый компилятор для программы и она запускалась на требуемой машине.
S> Какая наивность! Такую программу, которая заустится на любой требуемой машине, еще поискать.
E>> И это кажется более логичным, чем таскать виртуальную машину или какую-то среду исполнения на каждой машине и даже каждой ОС, для которой хотели бы запуститься. Чувствуете разницу — в одном случае мы имеем дело с типом машин, а в случае подхода C# с каждой машиной в отдельности.
E>>2. Все, что реализовано в .NET можно было смело реализовывать и в Visual C++ 8.0. Что мешало? При этом С++ является хорошо изученным + куча библиотек. Почему бы не расширять/урезать этот язык? ... Маркетинг?
S> Это как например? Можно услышать некоторые комментарии, как можно было бы реализовать сборку мусора и reflection вместе с reflection.emit в рамках C++ 8.0?

1. Уборка мусора.
Про сборку мусора можешь почитать в классической книге Дж. Коплиена "Программирование на С++" за 1992 год(!),
страница 333 9.5. Уборка мусора.
2. Рефлексия. Этот вопрос уже неоднократно обсуждался на форуме С/С++ вот ссылка на библиотеку, которая позволяет реализовать рефлексию для С++ в его нынешнем состоянии: rsdn
Автор: Batiskaf
Дата: 30.04.04
. Вобщем не вижу сложностей с реализацией рефлексии на С++ такой карпорацией, как MS.
3. Emit Собственно есть рефлексия — есть Emit.
И последнее, надеюсь с твоей стороны есть понимание, что я имел ввиду потенциальный C++ 8.0, когда говорил о нем, с ключевыми словами, с типами классов — типа рефлексируемый и пр., не нынешний?

E>> И еще: в заголовке опечатка.

S>Неа, нету.
И всетаки есть. На моё сообщение не смотри, смотри выше.

S>З.Ы. Прежде чем делать столь уверенные заявления, не мешает немножко поближе познакомиться с предметом. Хотя бы с одним из вынесенных в заголовок темы.

Многие программисты — аутентичные интраверты. Они очень стеснительны и неуверены в себе, ни с девушками, ни в обычной беседе. Смелые заявления — это не для них. У меня такое ощущение, что это и про тебя. Я прав?
Re[2]: C++ vs basic
От: Alxndr Германия http://www.google.com/profiles/alexander.poluektov#buzz
Дата: 15.02.06 11:19
Оценка: +2 -1
Здравствуйте, Sheridan, Вы писали:

S>Именно так.


Троллим потихоньку?
Займись лучше чем полезным
Re[58]: C+ vs C#
От: Кодёнок  
Дата: 15.02.06 10:41
Оценка: 3 (2)
Здравствуйте, alexeiz, Вы писали:

A>Все примены из Nemerle идут лесом. Сравнивать C++ с функциональным языком, это слоны и бегемоты. Подумай тот ли язык программирования ты выбрал, если тебе приходится писать функциональный код. Здесь идет сравнение с C# — основным языком программирования для .NET.


1. Тебя дезинформировали, Nemerle — не функциональный язык. Оба примера можно реализовать на C# так же кратко, с тем исключением, что придётся явно указать типы аргументов и переменных (т.к. выводить он их не умеет). Так что эти примеры остаются в силе.

2. Функциональное и императивное программирование не взаимоисключают друг друга, а дополняют. Очень многие куски кода становятся в разы короче. Тот же STL в С++ использует функциональный стиль для алгоритмов, но из-за отсутствия поддержки замыканий компиляторами, это разочаровывает не меньше, чем даёт выгоды. Никуда ты от темы ФП не денешься, т.к. в ФП есть очень и очень полезные вещи, которые сейчас появляются в других не-функциональных языках как грибы.

3. В указанных мной примерах не ни одного элемента, свойственных лишь функциональным языкам. Вообще тему о ФЯ ты поднял не к месту. Я лишь продемонстрировал, что такое замыкания, и что в C++ их нет и эмулировать никакими ухищрениями в принципе нельзя. Зато замыкания есть в других (императивных) языках, к примеру, в Python.

Жду реализации Sort более краткой и понятной, чем это сделано с использованием элементов функционального программирования.

A>Опять в том же стиле. Ты не понимаешь о чём речь. Никто не пытается сказать, что всё можно сделать на C++ (легко).


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

A>А, вот что ты имел ввиду в своем коде. Абсолютно бредовый код, честно говоря.


Давай лучший код. Задача повседневная, с сотнями решений — сортировать матрицу строк по значениям в столбце, по возрастанию или по убыванию. Для каждого listview-контрола с сортировкой она решена. Просто попробуй привести решение без замыканий, лучшее, чем с ними.

Кё>>Факт в том, что в других языках есть нужные и полезные возможности, которых в С++ нет.

A>Где?

Что где? Где рефлешн без изменения синтаксиса объявлений и привлечения DDL? Где замыкания? Там, в документации. А если вспомнить, что Nemerle прочат в C# 4.0, то тут нельзя не упомянуть метапрограммирование с ествественным синтаксисом, вывод типов, функциональные типы, pattern matching.
Re[56]: C+ vs C#
От: Cyberax Марс  
Дата: 11.02.06 16:50
Оценка: 1 (1) -1
Дарней wrote:
> C>Да http://www.elewise.ru/products/others/index.html
> C>Продукт еще не завершен, но уже вполне шевелится на PPC.
> не вижу никаких принципиальных проблем, которые мешают реализовать это
> под .NET CF. у нас прога и посложнее была.
А можно сделать так, чтобы потом этот код работал нормальной Windows и Unix?

Сразу скажу, что нельзя Ну и просто по потреблению памяти и скорости
не пойдет.

Про мелочи типа необходимости интероперабельности с Outlook я вообще молчу.

> C>А вот платформы без .NET _Framework_ — это все не-Windows системы.

> ну всё, началась сказка про белого бычка.
А вы можете их перечислить?

> C>Портировать GCC на новую платформу — задача на месяц (если платформа

> C>вообще способна поднять C/С++).
> написать полноценный кодогенератор под другой процессор за месяц? Не верю.
Спорим?

В GCC мне нужно описать модель процессора на специальном языке (md —
Machine Description), остальное сделает сам gcc (ну еще придется
написать несколько утилитных функций). Например, для m68k это файлик в
200Кб, а для pdp11 — в 50Кб.

> C>Я могу использовать wxWidgets и получить нативные виджеты, например.

> C>Оверхед минимален.
> ну напиши под них обертку на C++/CLI. Или религиозные убеждения мешают?
Ну да, легко и непринужденно за пару месяцев.
Posted via RSDN NNTP Server 2.0
Sapienti sat!
Re[35]: C+ vs C#
От: WolfHound  
Дата: 10.02.06 08:09
Оценка: +1 -1
Здравствуйте, alexeiz, Вы писали:

A>И в любом случае уровень языка C++ не меньше чем у C#. Главное опять же выбор абстракций.

А ты не думал что на C# тоже можно абстракциясми поиграть?

A>Если кто подумал, что я C# никогда не использовал, это не так. 3 года высоко оплаченного труда. Никаких великих успехов продуктивности не замечено.

Странно. А вот я заметил...

A>Основная ошибка людей программирующих на C++ — это автоматический выбор низкоуровневых абстракций. Так или иначе такой выбор превращает язык в подобие C. Глядя на код C++ очень легко понять на каком языке он действительно написан (на каком языке думает его создатель). Как недавно отлично выразился Francis Glassborow:

Ты кого за ламера инсталишь маздай не пропатченый!?
Если я пишу на С++ то я пишу на С++, а не на С с классами.

A>Кстати люди, которые мыслят на C, даже на C# программируют как на C. Мне такое предоставилось наблюдать. На мой вопрос, почему было решено выбрать C#, я получил типичный ответ о продуктивности. Хм, какая может быть продуктивность, когда в программе половина функций была объявлена как unsafe? Файлы не закрывались при исключениях, и т.п.

Хотел бы я посмотреть что бы у них получилось на С++
В таких случаях нормальный ПМ просто запрещает использовать unsafe и наказывает рублем за открытие файла без using'а.

ЗЫ Кстати можешь посмотреть историю моих сообщений... я некоторое время назад сам С++ защищал... Вот только чем больше я думаю об управляемых языках и операционках тем перспективы С++ с моей точки зрения все мение радужные.
... << RSDN@Home 1.1.4 beta 6a rev. 436>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[37]: C+ vs C#
От: WolfHound  
Дата: 10.02.06 10:02
Оценка: +2
Здравствуйте, alexeiz, Вы писали:

A>В том, что возможности C++ гораздо богаче, чем у C#, меня никто не переубедит. Я описал тебе причины, почему некоторые люди думают, что это не так. Для меня богатство возможностей очевидно. Даже если в C# можно найти более или менее эквивалентные пути, меня это мало интересует. Зачем пытаться искать эквиваленты в языке с меньшими возможностями, для тех вещей, которые на C++ выражаются легко и естественно? Я предпочитаю язык, на котором мои мысли будут выражены легко и естественно.

Если говорить только о языке то я даже соглашусь. Вот только тут играет роль не только язык, а C# особенно C#2 не такой уж и бедный язык. Но и платформа .NET! И вот тут и начинается очень интересная история... Рантайм .NET'а позволяет легко делать такие вещи которые на С++ превращаются в огромную гору шаблонов и макросов которые очень не просто отладить... даже не смотря на то что я на этом не одну собаку съел.
А когда надо писать просто код то тут C# с качественной IDE которая для С++ вобще не реализуема рулит просто не по детски.
Кстати для .NET кроме C# существует еще и Nemerle, а этот язык С++ вобще уделывает как котенка.

А если говорить об управляемых ОС вобще то как я уже говорил я считаю что CLR это не самое подходящее основание для таких операционок. Но если создать правильную VM и сделать архитиктуру как в сингулярити то ИМХО получится очень мощьная штука которая позволит произвести качественный скачек всей индустрии.
... << RSDN@Home 1.1.4 beta 6a rev. 436>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[38]: C+ vs C#
От: alexeiz  
Дата: 10.02.06 10:49
Оценка: :))
Здравствуйте, WolfHound, Вы писали:

WH>Если говорить только о языке то я даже соглашусь. Вот только тут играет роль не только язык, а C# особенно C#2 не такой уж и бедный язык. Но и платформа .NET!


Вот это и моё мнение. Использовать C# имеет смысл ради доступа к библиотеке .NET. Другой вопрос насколько она важна для тех или иных целей, и насколько ради доступа к библиотеке ты согласен поменять стиль программирования, перейти на другие идиомы и т.д.

>И вот тут и начинается очень интересная история... Рантайм .NET'а позволяет легко делать такие вещи которые на С++ превращаются в огромную гору шаблонов и макросов которые очень не просто отладить... даже не смотря на то что я на этом не одну собаку съел.


Приведи примеры. Хотя нетрудно догадаться. Сериализация, reflection? Вообщем, всё, что строится на reflection'е?

WH>А когда надо писать просто код то тут C# с качественной IDE которая для С++ вобще не реализуема рулит просто не по детски.


Трудно представить, что IDE имеет решающее значение.

WH>Кстати для .NET кроме C# существует еще и Nemerle, а этот язык С++ вобще уделывает как котенка.


Абсолютно другой язык, не имеющий ни к C# ни к C++ никакого отношения. Зачем ты его здесь привёл?
Re[39]: C+ vs C#
От: VladD2 Российская Империя www.nemerle.org
Дата: 10.02.06 16:02
Оценка: :))
Здравствуйте, alexeiz, Вы писали:

A>Вот это и моё мнение. Использовать C# имеет смысл ради доступа к библиотеке .NET. Другой вопрос насколько она важна для тех или иных целей, и насколько ради доступа к библиотеке ты согласен поменять стиль программирования, перейти на другие идиомы и т.д.


Видиш ли, я не верю, что ты действительно 3 года программировал на C#. За такой срок можно оценить повышение производительности.

Бессмысленно пытаться найти одно приемущество C# или дотнета. Каждое отдельное приемущество не столь существнно. Приемущество получается в свете того комулятивного эффекта который получается в итоге. Важно все. И типобезопасность языка, и поддержка IDE, и полнота/непротиворичивость библиотеки, и простата реализации идиом/паттернов, и выразительность конструкций, и возможности рефакторинга, и дизайнеры (классов, компонентов, форм). В общем, важно все. Все вместе дает нехилое упрощение работы. В итоге ты можешь делать больше, решать более сложные задачи и тратить на все это меньшее время.

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

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


A>Абсолютно другой язык, не имеющий ни к C# ни к C++ никакого отношения. Зачем ты его здесь привёл?


Вообще-то Нэмерл явно создавался как развитие C#. Это можно сказать такой идеальный C#. C# в который хорошо интегрированы функциональная парадигма и парадигма метапрограммирования. Так что совершенно ясно причем тут он.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[42]: C+ vs C#
От: eao197 Беларусь http://eao197.blogspot.com
Дата: 11.02.06 09:15
Оценка: +2
Здравствуйте, Дарней, Вы писали:

Д>Наверно, эти программисты просто никогда не работали над большими проектами на плюсах. В команде от десяти человек и больше, объемом от n*10 человеко-лет.

Д>Или я неправильно угадал?

Угадал правильно.
Был другой опыт. Небольшие команды, средние проекты с временем жизни в несколько лет. На каждого разработчика в результате по 150-200т. строк кода (за год где-то по 50-60т. строк). В таких условиях кулхакерские приемы валят проекты напрочь.


SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Re[47]: C+ vs C#
От: WolfHound  
Дата: 11.02.06 11:31
Оценка: -1 :)
Здравствуйте, alexeiz, Вы писали:

Д>>я раньше тоже думал в точности, как ты

A>Т.е. как конкретно? Ты ещё не выразил своего мнения. Милости просим.
Ну примерно так: С++ крут! С++ мега крут! Нет ничего круче С++! Если правильно использовать С++ то все эти новомодные финтифлюшки тапа .NET'а просто ерунда!
... << RSDN@Home 1.1.4 beta 6a rev. 436>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[51]: C+ vs C#
От: Дарней Россия  
Дата: 11.02.06 15:23
Оценка: +1 :)
Здравствуйте, Cyberax, Вы писали:

C>3. Встраиваемые приложения (Memory is at premium).


пиши уж тогда точнее — проги для микроконтроллеров. Потому что для всяких PPC на .NET уже пишут без проблем.

C>4. Приложения для систем без .NET Framework.


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

C>6. Кросс-платформенные приложения (не надо про Mono).


а почему это вдруг не надо? Чтобы не разрушать твою стройную систему доказательств?
... << RSDN@Home 1.1.4 stable rev. 510>>
Всех излечит, исцелит
добрый Ctrl+Alt+Delete
Re[41]: C+ vs C#
От: VladD2 Российская Империя www.nemerle.org
Дата: 11.02.06 16:06
Оценка: -2
Здравствуйте, alexeiz, Вы писали:

A>По сравнению с C++? Это уже смотря как хорошо ты его знаешь (а по твоим постам видно, что ты не различаешь C и C++). У меня изначально производительность была высокая. C# ничего улучшающего не принёс.


Я выдвину свою версию — я знаю С++ и темболее C# значительно лучше тебя. Теперь ты можешь разбиться о стену даказывая обратное.

VD>>Кстати после того, как изучишь эту идеологию, то и на С++ станешь писать по другому. Начнешь понимать весь вред кулхакерских решений выжимающих пару тактов процессора иди делающих код чуть короче, но при этом нарушающих принципы безопасности и надежности.


A>LOL Кто бы рассказывал. Ты извени, но в области C++ твои слова — пустой звук. Кстати, так как ты не считаешь нужным читать посты твоих собеседников, рекомендую тебе всё таки посмотреть мой пост, где я писал про уровень абстракции.


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

VD>>Вообще-то Нэмерл явно создавался как развитие C#. Это можно сказать такой идеальный C#. C# в который хорошо интегрированы функциональная парадигма и парадигма метапрограммирования. Так что совершенно ясно причем тут он.


A>Отнюдь. Спорный вопрос, что это развитие C#.


Ты бы хоть зашел ради хохмы на сайт Нэмерла и почитал хоть что-то о нем прежде чем разглаглоствовать о нем.
http://nemerle.org/Main_Page

Nemerle is a high-level statically-typed programming language for the .NET platform. It offers functional, object-oriented and imperative features. It has a simple C#-like syntax and a powerful meta-programming system. more...

...Nemerle is not far away from C#.
Semantically Nemerle is mostly a C# superset...

Весь рассказ о Нэмерле постоянно сопровождается ссылками на C# и на клоны ML. По сути Нэмерл есть грамотное сочетание синтаксиса C# и функциональных возможностей в стиле ML. Конечно в нем есть кое что от Питона и даже Васика, но это не более чем разумные взаимстования, а не часть генеральной линии.
Вот чего действительно нет в этом языке, так это взаимствований из С++. Забавное совпадение, не правда ли?

A> Причём он ещё в экпериментальной стадии. Я бы сказал, что он здесь пока не к месту.


Он в той стадии когда на нем можно работать. Так что уж привести его для сравнения уж точно можно.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[54]: C+ vs C#
От: Cyberax Марс  
Дата: 11.02.06 18:42
Оценка: +2
VladD2 wrote:
> C>Не знаю. Но серьезных десктопных систем на C# я пока не вижу. Софт для
> C>разработчиков — не в счет.
> Сильно старашся не замаечать. Так будет вернее.
Ну так называйте имена. И цифры распространенности.

>> > C>2. Небольшие быстрые утилиты.

>> > Бинарный diff шенкующий 4х гигабайтные файлы подойдет?
> C>Запускающийся за сотые доли секунды?
> Зачем программе работающей по 10 минут загружаться за сотые доли
> секнуны? Хотя в общем-то запускается она точно меньше десятых долей
> секунды, так как заметить на глаз ее запуск вряд ли получится.
Во-первых, у меня обычно утиллиты работают очень быстро. Во-вторых,
время запуска .NET-программ вполне заметно.

> К твоему сведению, утилита о которой идет речь уже более года бэкапит

> данные на нашем сервере. Причем данные измеряются гигабайтами.
Да я верю, что C# может работать с гигабайтами. Сам писал на Java
программы, которые с гигабайтами работали.

Меня больше интересует удобство использования.

>> > Кстати... а то что жаба работает в кофевырках это нормально? А ведь она

>> > по прожорлевей...
> C>Плохо оно работает.
> Потрудсь подтвердить свои слова фактами, или не бросаться ими как попало.
Например, возьмите телефон Nokia с Symbian-OSом — для него есть порт
Doom на С, но на Java есть только достаточно простые игрушки (которые
заметно тормозят).

>> > C>4. Приложения для систем без .NET Framework.

>> > Надеюсь ты понимаешь что нет никаких теоритических препядствий
>> > портированию .NET практически куда угодно.
> C>Я практик, а не теоретик.
> Это переход на личности, не будем обсуждать вопрос о том кто ты.
Я говорю, что в теории .NET Framework _можно_ портировать хоть на тостер
и холодильник, но на _практике_ он полностью есть только в Windows.

> C>Да, и как вы собираетесь портировать функции типа PreProcessMessage у

> C>Control, например?
> А что какие-то проблемы? Скачай Mono погляди как там это сделано.
Ну да, есть маленькая проблема — нужно полностью реализовать Win32
Common Controls В Mono на это забили, хотя до этого пытались
использовать Wine. Если поискать, то таких мест в .NET еще можно найти.

>> > C>5. Приложения для OLE2.

>> > Ну и нафига этот OLE2 нужен?
> C>Cut&paste из Visio в Word, например.
> Я вот пользуюсь и Visio, и Word, а OLE 2 не ползуюсь.
То есть не вставляете диаграммы из Visio в Word? Я вот часто этим пользуюсь.

> К тому же можно объяснить, что за непреодалимые пробелмы в реализации

> OLE 2 на дотнете?
То что его нет, и не планируется. Нет фундаментальных проблем написать
Word на brainf**k.

> И кстати, очень интересен следующий вопрос... Вот в Линукс в принципе

> невозможно использовать OLE 2.
Ну во-первых, под Линукс есть по крайней мере две реализации OLE2 и DCOM

> Стало быть на С++ нельзя написать OLE 2,

> а программы поддерживающие OLE 2 не пререносимы и стало быть
> С++-программы тоже не все переносимы.
Примерно. OLE2 непереносим — на других платформах нет такого мощного
cut&paste-механизма.

> программой на дотнете и С++-программой? Если программа использует

> платформно-зависимую библиотеку, то она принципиально не переносима.
То что на C# достаточно сложно писать портируемо.

>> > Почему?

> C>Он пока дааааалеко не везде работает.
> А что С++-код везде работает? А если С++-компилятора нет?
С++ есть уже почти везде. Исключения составляют фактически всякие
микроконтроллеры.

> Или код цепляет тот же OLE 2?

Это да.
Posted via RSDN NNTP Server 2.0
Sapienti sat!
Re[48]: C+ vs C#
От: VladGalkin Украина  
Дата: 11.02.06 19:22
Оценка: :))
Здравствуйте, Дарней, Вы писали:

Д>я тоже когда-то думал, что С++ — это отличный язык высокого уровня, на на котором я решаю свои задачи легко и просто.

Д>вот только потом я понял, что ЭТО — совсем не легко и не просто.
Просто интересная цитата по теме:
"Я придумал термин "объектно-ориентированный", и вот что я вам скажу, я не имел ввиду С++."
-- Алан Кей, OOPSLA '97
... << RSDN@Home 1.1.4 stable rev. 510>>
ДЭ!
Re[54]: C+ vs C#
От: Cyberax Марс  
Дата: 11.02.06 19:43
Оценка: +1 -1
Здравствуйте, WolfHound, Вы писали:

>>> E>* Системное ПО (ядра СУБД, к примеру).

>>> В чем проблема?
C>>Да ни в чем, в общем-то. Уже 5 лет прошло, а софта на С# не так уж и много для следующей революционной технологии.
WH>Надеюсь не надо объяснять что написать нормальный движок СУБД это задача не на один день и даже не на один год. А переписывать то что работает никто не станет.
Этих лет уже целых 5 прошло. А результата пока маловато. Вон и в Windows Vista которая должна была стать локомотивом .NET после запуска нет работающих .NET-приложений.

За это время, например, люди полностью успели переписать Firebird с С на С++. Так что портирование базы на C# должно быть вообще беспроблемным.
Sapienti sat!
Re[55]: C+ vs C#
От: WolfHound  
Дата: 11.02.06 19:54
Оценка: +2
Здравствуйте, Cyberax, Вы писали:

WH>>Надеюсь не надо объяснять что написать нормальный движок СУБД это задача не на один день и даже не на один год. А переписывать то что работает никто не станет.

C>Этих лет уже целых 5 прошло. А результата пока маловато. Вон и в Windows Vista которая должна была стать локомотивом .NET после запуска нет работающих .NET-приложений.
C>За это время, например, люди полностью успели переписать Firebird с С на С++. Так что портирование базы на C# должно быть вообще беспроблемным.
Для того чтобы кто-то портировал базу данных на C# должны быть какието причины. Пока таких причин вобщем то нет. Однако когда серьезно возьмутся за создание управляемой ОС база данных будет одним из первых приложений которое полностью напишут на управляемом языке.
... << RSDN@Home 1.1.4 beta 6a rev. 436>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[57]: C+ vs C#
От: VladGalkin Украина  
Дата: 11.02.06 19:56
Оценка: :))
Здравствуйте, Cyberax, Вы писали:

C>У меня получалось что-то около 6Мб при выкидывании лишнего. Все равно много.

Хм, файл System.Windows.Forms.dll весит 5,07 МБ (.NET FW 2.0.50727 32x). Подчеркиваю: один файл System.Windows.Forms.dll. Несколько библиотек прожорливого Gtk# сожрали на 1 Мб больше. Я умываю руки.
... << RSDN@Home 1.1.4 stable rev. 510>>
ДЭ!
Re[48]: C+ vs C#
От: alexeiz  
Дата: 11.02.06 21:43
Оценка: :))
Здравствуйте, WolfHound, Вы писали:

WH>Здравствуйте, alexeiz, Вы писали:


Д>>>я раньше тоже думал в точности, как ты

A>>Т.е. как конкретно? Ты ещё не выразил своего мнения. Милости просим.
WH>Ну примерно так: С++ крут! С++ мега крут! Нет ничего круче С++! Если правильно использовать С++ то все эти новомодные финтифлюшки тапа .NET'а просто ерунда!

Я так не думаю. Почему у тебя появилось такое впечатление?
Re[49]: C+ vs C#
От: alexeiz  
Дата: 11.02.06 21:57
Оценка: :))
Здравствуйте, eao197, Вы писали:

E>Здравствуйте, Дарней, Вы писали:


Д>>я тоже когда-то думал, что С++ — это отличный язык высокого уровня, на на котором я решаю свои задачи легко и просто.

Д>>вот только потом я понял, что ЭТО — совсем не легко и не просто.

E>Вероятно, в этом все дело. C++ -- это отличный язык. А вот то, что он высокого уровня -- об этом можно поспорить. Имхо, у той же Java или Ruby уровень гораздо выше. И есть масса задач, для которых C++ не является языком, на котором решения строятся легко и просто. Разработка Web-приложений, например.


Я бы вот как раз поспорил с тем, что C++ — не язык высокого уровня. Web приложения на нем писать не легко, только потому, что нет нужных библиотек. Ну и, конечно, нельзя сравнивать со скриптовыми языками, т.к. они в отдельной лиге. Но вот сравнить с Java впольне можно. Попробуй доказать, что на Java можно программировать на таком высоком уровне, что на C++ недоступен. Тогда он будет более высокого уровня. Иначе нет.
Re[43]: C+ vs C#
От: WolfHound  
Дата: 12.02.06 11:48
Оценка: :))
Здравствуйте, Геннадий Васильев, Вы писали:

ГВ>А что тут доказывать-то? Скептическое отношение к твоим словам о том, как ты "умеешь C++" появилось ещё тогда, когда ты опубликовал куски из ascLib. Что-то я не верю, что с тех пор состояние дел сильно поменялось. Масла в огонь подлили ещё и твои "анти-C++-ные" высказывания. Так что, это уж ты доказывай, что умеешь C++. Мне, как читателю, пока что очевидно обратное. А очевидное в доказательстве, как известно, не нуждается.

А мне надо доказывать что я знаю С++?
... << RSDN@Home 1.1.4 beta 6a rev. 436>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[42]: C+ vs C#
От: IT Россия linq2db.com
Дата: 12.02.06 20:59
Оценка: :))
Здравствуйте, VladD2, Вы писали:

VD>Вот чего действительно нет в этом языке, так это взаимствований из С++. Забавное совпадение, не правда ли?


Если в нём реализовать макрос template, то будет
... << RSDN@Home 1.2.0 alpha rev. 0>>
Если нам не помогут, то мы тоже никого не пощадим.
Re[3]: C+ vs C#
От: WolfHound  
Дата: 13.02.06 19:31
Оценка: +2
Здравствуйте, Ellin, Вы писали:

kuj>>У меня де жа вю или эта тема неисчерпаема? Удивляюсь только как очевидно опытные программисты типа VladD2 и WolfHound позволяют себя втянуть в подобный спор.

E>Дык... А чем им еще делать?
Ну например Кваку погонять... гораздо болие продуктивное занятие...

E>Так на C# даже иконку в хидер Лист Контрола вынести без апи нельза о каком функционале идет речь?

Ну если для тебя нету разницы между C# и кривущей библиотекой WinForms то разговор на этом можно закончить.

E>Сроки да — С# дает приимущество для большениства программистов, а вот качество под сомнением.

Аргументы? Только не говори что C# тормоз и памяти много жрет. Ни то ни другое не соответствует реальности если все делать прямыми руками.

E>Могу с уверенностью сказать, даже не видев вашего проекта, что если создать аналогичный проект на С++ — клон то есть, то качество его исполнения будет гораздо выше. Сроки тоже несколько выше, но приемлемо.

Я иногда жалею что на сайте запрещена падонковщина... А я модератор и мне надо быть образцом для подражания.
E>На мой взгляд С# в нынешнем его состоянии подходит для создания прототипов ПО, быстро накляпал полуработающию прогу, а потом, когда заказчику понравилось — написал нормальную рабочию версию на С++.
Ты можешь оставатся со своими иллюзиями столько сколько тебе хочется. Никому кроме тебя и твоих клиентов от этого хуже не станет. В прочем если клиенты умные то они от тебя сами уйдет.

ЗЫ Кстати про С++ мне расказывать не надо. Я сам о нем могу кому хочешь расказать. Причем могу расказать и про сильные стороны и про слабые.
ЗЗЫ У С++ не считая легаси кода есть своя ниша но она быстро сокращается.
... << RSDN@Home 1.1.4 beta 6a rev. 436>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[6]: C++ vs C#
От: WolfHound  
Дата: 13.02.06 22:13
Оценка: +2
Здравствуйте, Ellin, Вы писали:

Я не понимаю ты серьезно или прикалываешься?
E>Эх не знаю, не знаю. Написать новый язык программировани, новую среду, новую технологию, кучу библиотек, потом переписать весь свой софт — это со стороны MS не садизм?(исклчительно в техническом плане, без учета прибыли?)
Нет они поступили очень разумно. Хотя виртуальную машину можно было сделать получше.
E>Вместо того, чтобы доработать уже имеющееся. Дописать для С++ новые ключевые слова типа reflection class или т.п., путем расширения языка создать основу для нового стандарта, как это было в прошлом.
Я очень много думал по этому поводу. Это не реально.

E>Вот ... вот. Это не модно, это старо. Постоянно встречаю людей, которые совершенно не разбираются в музыке, но пытаются с тобой говорить как знатоки, на высоком уровне. Они говорят: "Слышал группу ... — новое, полный улет. Новое." Это ведь внемузыкальная характеристика — новое. И новое не обязательно должно быть гораздо лучше старого или хотябы того же уровня. Случается так, что долго не появляется аналога чему-то классическому, эпохальному, культовому. Одим словом, просто сказать любимые маркетинговые термины — новое, уникальное этого мало. Нужно указать и на качественные преимущества продукта.

Доказательства по аналогии это демагогия. В сад.
Кстати я тут думаю не распустить ли мне пальцы веером... или ты сам поймешь что тут
Автор: Геннадий Васильев
Дата: 12.02.06
что-то не так...

E>Меня просто донимает отсутсвие в нем банальных вещей:

E>1) множественного наследования (писать в каждом классе одну и ту же реализацию просто устал),
Понадобилось один раз за два года работы... В С++ использовал чаще ибо приходилось применять совершенно иные принципы проектирования.
E>2) перегрузки оператора (),
Есть делегаты.
E>3) шаблонов С++ со всеми их возможностями, без всяких урезок.
Зачем?

E>Уважаемые! .NET даже под Windows 95 не портировали,

Официально да. Не официально сам не пробывал ибо 95х не имею... но народ говорит что работает.
E>а вы хотите Linux?
MONO
E>Когда в MS говорят про кроссплатформенность, они скорее всего подразумевают перенос с Win2000 на WinXP, c WinXP на Win98, c Win98 на WinXP,
Для MS важнее кроссжелезячность те чтобы одна и таже программа работала без перекомпиляции и на x86, и на x86-64, и на Itanium'е... и черт знает еще на каком железе.
E>а Linux — что такое Linux?
В самом деле, а что такое Линух? Нет никакой ложки...

WH>>А сейчас рулят ковровые клинья и танковые бомбандировки тфу ты управляемые среды, а дальше будут рулить упровляемые ОС типа Singularity для которых на С++ вобще писать будет довольно проблематично.

E>Все это похоже на перепродажу уже имеющегося у меня товара. Я не хочу покупать то, что я уже покупал, но под другим названием. Те же виртуальные машины Win95 не могут для меня не ассоциироваться с виртуальными машинами Джавы. Та же идеалогия и даже терминалогия. Win95 — в некотором смысле управляемая ОС.
Бедные мои тапочки... Такого простите за выражение бреда я давно не слышал... даже во флейме...
... << RSDN@Home 1.1.4 beta 6a rev. 436>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[57]: C+ vs C#
От: alexeiz  
Дата: 14.02.06 10:32
Оценка: -2
Здравствуйте, Кодёнок, Вы писали:

Кё>Здравствуйте, alexeiz, Вы писали:


Д>>>4. Замыканий


A>>Функторы.


Кё>Бред. Вот пара примеров навскидку:

...

Все примены из Nemerle идут лесом. Сравнивать C++ с функциональным языком, это слоны и бегемоты. Подумай тот ли язык программирования ты выбрал, если тебе приходится писать функциональный код. Здесь идет сравнение с C# — основным языком программирования для .NET.

Кё>Ты можешь сказать, что у тебя таких ситуаций не было. А почему не было? Потому что тебе не приходило в голову, что так можно, исключительно из-за того, что на С++ это делать трудно и результат получается непонятным.


Твоё обобщение не имеет смысла. Пока что ты показал, что из C++ трудно сделать функциональный язык. Это так. Но не то, что C++ — не является языком высокого уровня.

Кё>Наличие замыканий — это дополнительный уровень абстракции. Недавно всплывали числа Черча — чем не абстракция? На С++ эта абстракция недоступна.


Опять в том же стиле. Ты не понимаешь о чём речь. Никто не пытается сказать, что всё можно сделать на C++ (легко).

Д>>>5. Уверенности в том, что безобидный на вид код не окажется злостным UB

A>>Не замечено. Давай ты приведёшь пример well-formed C++ кода, использующего высокоуровневые абстракции, в котором тебя ждут упомянутые тобой проблемы.

Кё>Не раз в форуме C++ были темы с безобидной функцией, в которой находили до десятка потенциальных проблем. Проблема как раз в выделенном — трудно сразу сказать, является код ill-formed, или это well-formed с UB, или всё правильно. К примеру:


Кё>
Кё>struct A
Кё>{
Кё>  T* x, y;
Кё>  A() : x (new T), y (new T) {}
Кё>};
Кё>


Никаких проблем. Каждый человек, знакомый с исключениями не по наслышке увидит в этом коде ошибку. Конечно, тот, кто имел дело с C, может такое написать. Но о том и речь. C++ нужно изучать. В изучение входит не только синтаксис языка, но и основные методы программирования на нём.

Д>>>2. Необходимость писать килограммы оберток каждый раз, когда тебе нужно использовать чужую библиотеку (см п.1 и п.2)

A>>Проблемы библиотек. Объясни мне, как херовые сторонние библиотеки вдруг стали проблемой языка?

Кё>Всегда были. Я тебе продемонстрировал


Ты еще ничего не продемонстрировал.

> Такие мелочи, когда из-за недостатка фич в языке неожиданно приходится писать какую-то муть, в совокупности заставляют отказаться от некоторых выгодных стилей программирования. Например, мне бы хотелось услышать, как ты объяснишь новичку в С++ (умеющему создать вектор чисел и отсортировать) приведенную реализацию Sort, зачем там ещё класс, почему так? Или может приведёшь более понятную реализацию (отсортировать два двухмерных массива (jagged) по заданному номеру столбца, опционально с инверсией)?


А, вот что ты имел ввиду в своем коде. Абсолютно бредовый код, честно говоря. Но C++ — это язык не для новичка. Про новичков вопрос отдельный. C++ в настоящее время больше ориентирован на профессионалов.

Д>>>3. Заботливо разложенные на каждом шагу грабли, в качестве ярких примеров — vector<bool>, auto_ptr в котейнерах, и прочие радости.

A>>Эти грабли хорошо изветсны и никакой опасности не представляют.

Кё>


Кё>Про массив auto_ptr все знают. Везде написано. А вот про это — не везде:


Кё>
Кё>void foo(auto_ptr<T> param)
Кё>{
Кё>}
Кё>


Ха! Ты привёл один из основных способов использования auto_ptr. Я уж не знаю, где ты что читал, если тебе это не было сразу объяснено.

A>>Все твои "аргументы" даже и на йоту не ближе к тому, чтобы показать, что на С++ нельзя программировать на высоком уровне абстракции.


Кё>Насколько высоком? Более высоком, чем на Си? Да. На не менее высоком, чем позволяет любой другой существующий язык? Увы, нет.


Более высоком, чем на C#. См название темы. Я не собираюсь обсуждать здесь функциональные языки программирования.

Кё>Факт в том, что в других языках есть нужные и полезные возможности, которых в С++ нет.


Где?
Re[60]: C+ vs C#
От: alexeiz  
Дата: 15.02.06 08:34
Оценка: +1 -1
Здравствуйте, Cyberax, Вы писали:

C>1. Абстрактные классы:

C>
C>class Base
C>{
C>public:
C>    virtual ~Base(){};
C>    virtual void squack() = 0;

C>    void some_method(){squack();}
C>};
C>

И даже так:
class Base
{
public:
    virtual ~Base() {}
    void squack() { do_squack(); }
    
private:
    virtual void do_squack() = 0;
};

Может кто попробует изобразить подобное на C#?
Re[3]: C++ vs basic
От: Sheridan Россия  
Дата: 15.02.06 12:17
Оценка: :))
Здравствуйте, Alxndr, Вы писали:

A>Троллим потихоньку?

A>Займись лучше чем полезным

Дада, на Qt пишу потихоньку...

[RSDN@Home][1.2.0][alpha][643]
[Важнейшая задача цивилизации — научить человека мыслить. [Т. Эдисон]]
Matrix has you...
Re[54]: C+ vs C#
От: slavdon  
Дата: 15.02.06 12:25
Оценка: +1 -1
Здравствуйте, Дарней, Вы писали:

Д>Как там RSDN@Linux поживает?

Его не будет.
--
silent
Re[56]: C+ vs C#
От: Sheridan Россия  
Дата: 15.02.06 12:56
Оценка: :))
Здравствуйте, __MasteR__, Вы писали:

__M>Давай-давай, я даже посодействовать могу. Очень хотел бы видеть такое под Линуксом.


Будет
У меня идея-фикс: сделать такого клиента, который обойдет RSDN@Home
Дабы доказать что шарп не рулит.

[RSDN@Home][1.2.0][alpha][643]
[Лучший способ защититься — не уподобляться. [Марк Аврелий]]
Matrix has you...
Re[59]: C+ vs C#
От: Дарней Россия  
Дата: 16.02.06 05:48
Оценка: +1 :)
Здравствуйте, Sheridan, Вы писали:

S>Где вы в моих словах увидели что я хвалюсь? Я вообщето высказываю свое желание, а не похвалюбу. Внимательнее надо быть.


Мне это больше всего напоминает речи горе-математиков, которые громогласно высказывают свое желание доказать теорему Ферма. А потом куда-то бесследно исчезают. Видимо, доказали, но скромность мешает им опубликовать результаты своих трудов.
... << RSDN@Home 1.1.4 stable rev. 510>>
Всех излечит, исцелит
добрый Ctrl+Alt+Delete
Re[7]: C++ vs basic
От: Sheridan Россия  
Дата: 17.02.06 13:12
Оценка: -2
Здравствуйте, anton_t, Вы писали:

S>>Тем что некроссплатформен.

_>mono
Я уже говорил что это уродец

S>>Тем что тормоз в конце концов.

_>Не сильно-то и тормоз.
Угу да

[RSDN@Home][1.2.0][alpha][643]
[Веления светил для нас темны... [Фирдуоси]]
Matrix has you...
Re[8]: offtopic
От: Alxndr Германия http://www.google.com/profiles/alexander.poluektov#buzz
Дата: 20.02.06 14:15
Оценка: +1 :)
Здравствуйте, kuj, Вы писали:

kuj>Розовые слоники ... лопаются


Папрашу без наездов!
VladD2 — уважаемый специалист, между прочим!

Re[5]: C++ vs C#
От: Sheridan Россия  
Дата: 21.02.06 12:06
Оценка: -2
Здравствуйте, Sinclair, Вы писали:

S>Здравствуйте, Sheridan, Вы писали:

S>>обычный консольный софт пользующийся stdio?
S>Угу. У нас просто весь прикладной рынок завален этим консольным софтом. Не смешите мои тапочки.
Clipper? под полуосью точно работает. Чел который в клиппере уже лет незнаю сколько но много, говорит и под линух есть.

S>>Из высокоуровневого — Gtk и Qt софт но при наличии соотв. библиотек

S>О, да. Мне особенно нравится вот такой всеобъемлющиё подход: "Gtk и Qt софт но при наличии соотв. библиотек". А конкретнее можно?
S>Покажите мне, к примеру, CD-burner с поддержкой нормальной интеграции в оболочку — drag-n-drop и прочее, который запустится на любой платформе.
S>Ладно, это сложно. А может, есть какая-то персональная бухгалтерия, которая работает простой перекомпиляцией хотя бы на двух платформах из трех? Как, тоже нету?
Не вижу сложности для Qt только вот все разработчики богу дотнету и пророку его шарпу молятся...

S>Ну а нахрен мне тогда уперлись самплы из Qt и grep.exe?

Ну а нахрен ты тогда в дискуссию воткнулся?

[RSDN@Home][1.2.0][alpha][643]
[Hе все стриги, что растет. [К. Прутков]]
Matrix has you...
Re[21]: C++ vs basic
От: kuj  
Дата: 27.02.06 08:21
Оценка: +2
Здравствуйте, Sheridan, Вы писали:

kuj>>Язык должен быть и богатым функционально и простым. Хотя в первую очередь язык должен быть читаемым. На C++ можно писать так, что и самому потом не прочесть.

S>На шарпе тоже так можно написать...
Но на шарпе все-таки возможностей писать трудночитаемый код значительно меньше.

kuj>>Что до функциональности C# уже, осмелюсь утверждать, превосходит C++. Да, все задачи решаемы в C++ вопрос лишь в простоте реализации и человеко-часах необходимых для реализации решения.

S>Я соглашусь с тем что шарп лучше лишь в одном контексте — когда скорость разработки важнее скорости работы софтины на порядок. Раньше писали на delphi и builder, а теперь все дружно переходят под шарп
Э-э, все же не понятно на основании чего Вы сделали вывод о низкой производительности .NET приложений. Позволю себе напомнить, что .NET приложения не являются интерпретируемыми, а IL компилятор имеет довольно неплохой оптимизатор. Если не злоупотреблять рефлексией, например, то производительность .NET-приложения для пользователя будет неотличима от производительности полного аналога на C++. Это конечно мое мнение и я могу ошибаться, так что не судите строго...
Re[53]: C+ vs C#
От: Дарней Россия  
Дата: 15.02.06 09:31
Оценка: 3 (1)
Здравствуйте, Sheridan, Вы писали:

C>>>4. Приложения для систем без .NET Framework.

Д>>а ты сможешь написать прогу на С++ для системы, в которой нет компилятора С++?
S>Некорректное сравнение.

C>>>6. Кросс-платформенные приложения (не надо про Mono).

Д>>а почему это вдруг не надо? Чтобы не разрушать твою стройную систему доказательств?
S>Нет. Потомучто уродец. Впрочем как и папа...

Как там RSDN@Linux поживает?
... << RSDN@Home 1.1.4 stable rev. 510>>
Всех излечит, исцелит
добрый Ctrl+Alt+Delete
Re[7]: C++ vs basic
От: Alxndr Германия http://www.google.com/profiles/alexander.poluektov#buzz
Дата: 17.02.06 12:50
Оценка: 2 (1)
Здравствуйте, slavdon, Вы писали:

S>Зря "улыбка" рейтинг поднимает. Смешно, но рейтинг поднимать не буду


Не поднимает, жми смело
Re[60]: C+ vs C#
От: Cyberax Марс  
Дата: 13.02.06 07:45
Оценка: 1 (1)
Дарней wrote:
> C>Одна из важнейших платформ, кстати. А есть еще и достаточно
> C>распространенный m68k.
> если окажется, что действительно "одна из важнейших платформ" — сделают
> и JIT
Но ведь еще не сделали?

> C>И вообще, Mono использует Boehm GC, что часто дает слишком большой

> oверхед.
> GC собираются заменить, и вроде как над этим уже работают.
Они его собираются заменить уже года три. А воз и ныне там — у них
слишком много заточено под консервативную сборку.

> C>А что еще нужно? Ну еще минимальный CRT нужен. Все равно не сильно

> C>больше работы. Тем более, что я могу использовать С-шный runtime в С++
> C>без всяких проблем. Ну а если уж для процессора нет и С-шного runtime'а...
> а как же wxWindows?
На контроллере без компилятора gcc и нормального runtime'а?? Ну в
крайнем случае можно портировать wxWidgets Universal — он сам рисует все
виджеты и требует фактически только канвас для рисования.

> C>Конечно. Про то что С++ крайне хорош для десктопных и встраиваемых

> C>приложений.
> нет. О том, что С++ — простой и удобный язык высокого уровня.
Он простой и удобный. Для определенных целей.
Posted via RSDN NNTP Server 2.0
Sapienti sat!
Re[57]: C+ vs C#
От: eao197 Беларусь http://eao197.blogspot.com
Дата: 15.02.06 17:27
Оценка: 1 (1)
Здравствуйте, Кодёнок, Вы писали:

Кё>Придуманный:

Кё>
def MakeInvertedPredicate(p) { fun(x) { !p(x) } }


Кё>Как это реализовать на С++? Знаю что можно, да думать лень, когда уже повсюду реализованы нормальные средства.


Хм... std::logical_not?

Кё>Реальный:


Кё>
Кё>def Sort(item : int, reverse : bool) : void
Кё>{
Кё>    def pred(av, bv) : bool
Кё>    {
Кё>        def (a, b) = if (reverse) (bv, av) else (av, bv);
Кё>        some_natural_order_string_compare(a[item], b[item]) < 0
Кё>    }
Кё>    some_standart_sort(m_data.begin(), m_data.end(), pred)
Кё>}
Кё>


Кё>А как это делается на С++?


Хм... std::binary_negate? Там и пример использования есть...

Уж извините, что влез в вашу войнюшку, но, ИМХО, матчасть нужно знать в любом языке программирования?


SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Re[60]: C+ vs C#
От: Кодёнок  
Дата: 16.02.06 11:27
Оценка: 1 (1)
Здравствуйте, eao197, Вы писали:

E>А зачем сравнивать?


Чтобы явно показать, что язык может быть удобней не просто на какой-то одной задаче (скажем, благодаря наличию в стандартной библиотеке подходящей функции), а может быть _принципиально_ лучше. Я думаю, сравнивать уже не надо, все уже сравнили И это при том, что основную тему спора — замыкания — мы с тобой пропустили.

E>Если ты имеешь возможность на своей работе использовать вместо C++ Nemerle, то в чем проблема? Берешь и используешь.

E>Если нет возможности, то опять в чем проблема? Берешь и убеждаешь начальство или заказчиков сменить язык реализации. Или меняешь место работы на то, где применяют Nemerle или Lisp, или OCaml, или Haskell (с чем там еще любят сравнивать C++ в последнее время?) -- делов-то.

Если ты так вопросы ставишь, то зачем тогда вообще в ветки на тему философии программирования писать? Ты пишешь так, как будто языки — данность, будто они, со всей своей индивидуальностью, просто спонтанно вырастают как грибы. Типа один таким вырос, а второй — другим На самом деле они появляются как результат развития, попытки решить проблемы старых языков. Не нравится участвовать в этих спорах — не участвуй

E>Я вообще не могу понять природу яросных наездов на C++. Это что, так в жизни не повезло с C++ что-ли? Я еще могу понять, когда юноша в период полового созревания на девушку обижается. Но здесь...


Не надо называть конструктивную критику яростными наездами. У языка могут быть объективные недостатки, и если вам на них указывают, это не значит, что его пытаются немедленно истребить. Ветка началась с того, что я развеял заблуждения человека, думающего, что в С++ можно сделать замыкания.
Re[40]: C+ vs C#
От: alexeiz  
Дата: 11.02.06 09:00
Оценка: +1
Здравствуйте, VladD2, Вы писали:

VD>Здравствуйте, alexeiz, Вы писали:


A>>Вот это и моё мнение. Использовать C# имеет смысл ради доступа к библиотеке .NET. Другой вопрос насколько она важна для тех или иных целей, и насколько ради доступа к библиотеке ты согласен поменять стиль программирования, перейти на другие идиомы и т.д.


VD>Видиш ли, я не верю, что ты действительно 3 года программировал на C#. За такой срок можно оценить повышение производительности.


По сравнению с C++? Это уже смотря как хорошо ты его знаешь (а по твоим постам видно, что ты не различаешь C и C++). У меня изначально производительность была высокая. C# ничего улучшающего не принёс.

VD>Бессмысленно пытаться найти одно приемущество C# или дотнета. Каждое отдельное приемущество не столь существнно. Приемущество получается в свете того комулятивного эффекта который получается в итоге. Важно все. И типобезопасность языка, и поддержка IDE, и полнота/непротиворичивость библиотеки, и простата реализации идиом/паттернов, и выразительность конструкций, и возможности рефакторинга, и дизайнеры (классов, компонентов, форм). В общем, важно все. Все вместе дает нехилое упрощение работы. В итоге ты можешь делать больше, решать более сложные задачи и тратить на все это меньшее время.


Вот я и смотрю на кумулятивный эффект. Как язык C# проигрывает C++ по выразительности. Базовая библиотеки .NET (BCL) мне не нравится (дизайн хуже, чем у стандартной библиотеки C++. Искуственная привязка всего к ООП.). Остальная часть библиотеки .NET используется не на столько часто, чтобы был какой-то серьёзный эффект. Формочки я не клепаю, поэтому дизайнеры мне не нужны.

VD>Вот только, чтобы все это получить нужно избавиться от фобий и принять другие подходы! На C# нельзя программировать как на С++! Это свой мир, своя идеология.


Я хорошо представляю себе этот мир и его идеологию. И он мне не нравится.

>В C# больше дотнета, чем собственно языка.


Поэтому я и сопоставляю обычно C++ и C++/CLI, где предпологается и язык есть и дотнет. Но оказывается, C++/CLI ушёл не в ту сторону. По крайней мере, пока я не увижу реализацию STL/CLI, я буду считать, что большинство идиом C++ неприменимы к C++/CLI.

VD>Кстати после того, как изучишь эту идеологию, то и на С++ станешь писать по другому. Начнешь понимать весь вред кулхакерских решений выжимающих пару тактов процессора иди делающих код чуть короче, но при этом нарушающих принципы безопасности и надежности.


LOL Кто бы рассказывал. Ты извени, но в области C++ твои слова — пустой звук. Кстати, так как ты не считаешь нужным читать посты твоих собеседников, рекомендую тебе всё таки посмотреть мой пост, где я писал про уровень абстракции.

A>>Абсолютно другой язык, не имеющий ни к C# ни к C++ никакого отношения. Зачем ты его здесь привёл?


VD>Вообще-то Нэмерл явно создавался как развитие C#. Это можно сказать такой идеальный C#. C# в который хорошо интегрированы функциональная парадигма и парадигма метапрограммирования. Так что совершенно ясно причем тут он.


Отнюдь. Спорный вопрос, что это развитие C#. Причём он ещё в экпериментальной стадии. Я бы сказал, что он здесь пока не к месту.
Re[45]: C+ vs C#
От: Дарней Россия  
Дата: 11.02.06 11:02
Оценка: +1
Здравствуйте, alexeiz, Вы писали:

A>Ну, ёлки палки!


я раньше тоже думал в точности, как ты
... << RSDN@Home 1.1.4 stable rev. 510>>
Всех излечит, исцелит
добрый Ctrl+Alt+Delete
Re[47]: C+ vs C#
От: Дарней Россия  
Дата: 11.02.06 13:43
Оценка: +1
Здравствуйте, alexeiz, Вы писали:

A>Т.е. как конкретно? Ты ещё не выразил своего мнения. Милости просим.


я тоже когда-то думал, что С++ — это отличный язык высокого уровня, на на котором я решаю свои задачи легко и просто.
вот только потом я понял, что ЭТО — совсем не легко и не просто.
... << RSDN@Home 1.1.4 stable rev. 510>>
Всех излечит, исцелит
добрый Ctrl+Alt+Delete
Re[43]: C+ vs C#
От: VladD2 Российская Империя www.nemerle.org
Дата: 11.02.06 16:06
Оценка: :)
Здравствуйте, eao197, Вы писали:

E>Был другой опыт. Небольшие команды, средние проекты с временем жизни в несколько лет. На каждого разработчика в результате по 150-200т. строк кода (за год где-то по 50-60т. строк). В таких условиях кулхакерские приемы валят проекты напрочь.


Расскажи об этом нашим, видимо молодым, кулхацкерам
Автор: Cyberax
Дата: 11.02.06
.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[54]: C+ vs C#
От: Cyberax Марс  
Дата: 11.02.06 16:10
Оценка: -1
Дарней wrote:
> C>Пишут. Но не без проблем — там памяти мало и что-то серьезнее
> C>"Ресторанного меню" или "Карты метрополитена" написать сложно.
> а ты собрался там сервер приложений запускать?
Да http://www.elewise.ru/products/others/index.html

Продукт еще не завершен, но уже вполне шевелится на PPC.

> C>Элементарно. Делаю это каждый день.

> C>Называется "кросс-компиляция".
> Вообще никакого компилятора нет. И кросс-компилятора тоже нет. Ну как?
Давно такого не встречал, там куда может компилить GCC — везде есть.

А вот платформы без .NET _Framework_ — это все не-Windows системы.

Портировать GCC на новую платформу — задача на месяц (если платформа
вообще способна поднять C/С++).

> А прогу для .NET запустить без фреймворка все-таки можно. Потому что

> есть специальные линкеры и прочие хитрые штуки наподобие Grasshopper.
Ага, конечно.

> C>Потому как реально с Mono одни проблемы. Например, Windows Forms глючит

> C>жутко и надо использовать что-то типа GTK.NET. А это мегабайты
> C>дополнительного мусора и т.п.
> А что, в С++ твоя прога на святом духе будет работать? Все равно будешь
> использовать тот же самый GTK или аналог.
Я могу использовать wxWidgets и получить нативные виджеты, например.
Оверхед минимален.
Posted via RSDN NNTP Server 2.0
Sapienti sat!
Re[57]: C+ vs C#
От: VladD2 Российская Империя www.nemerle.org
Дата: 11.02.06 18:14
Оценка: -1
Здравствуйте, Cyberax, Вы писали:

C>Про мелочи типа необходимости интероперабельности с Outlook я вообще молчу.


Действительно молчал бы... не позорился бы...
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[48]: C+ vs C#
От: eao197 Беларусь http://eao197.blogspot.com
Дата: 11.02.06 18:22
Оценка: +1
Здравствуйте, Дарней, Вы писали:

Д>я тоже когда-то думал, что С++ — это отличный язык высокого уровня, на на котором я решаю свои задачи легко и просто.

Д>вот только потом я понял, что ЭТО — совсем не легко и не просто.

Вероятно, в этом все дело. C++ -- это отличный язык. А вот то, что он высокого уровня -- об этом можно поспорить. Имхо, у той же Java или Ruby уровень гораздо выше. И есть масса задач, для которых C++ не является языком, на котором решения строятся легко и просто. Разработка Web-приложений, например.


SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Re[56]: C+ vs C#
От: Cyberax Марс  
Дата: 11.02.06 18:43
Оценка: :)
VladD2 wrote:
> C>Портировать GCC на новую платформу — задача на месяц (если платформа
> C>вообще способна поднять C/С++).
> Зашибись. А в чем проблема за тот же месяц скомпилировать код Моно? Он
> же ведь просто С-код! А уж С куда более распространен.
А JIT кто портировать будет? В режиме интерпретатора использовать .NET
невозможно.

> Факт же в том, что для большинства задач системы вроде дотнета более чем

> подходят. И единственная причина по которой люди по старинке пишут на
> С/С++ — это косность мышление и недальновидность.
Ага. А вы не знаете, что C# — это прошлый век. Parrot+Perl6 — рулят.
Posted via RSDN NNTP Server 2.0
Sapienti sat!
Re[51]: C+ vs C#
От: WolfHound  
Дата: 11.02.06 19:19
Оценка: +1
Здравствуйте, eao197, Вы писали:

E>* Вычислительные задачи. Прогнозирование погоды, моделирование аэродинамики, термодинамики, имитационное моделирование, компьютерная графика...

Гм?... А в чем проблема?
Я лично написал бинарный diff который режет многогигабайтные файлы... там вычисления хоть и простые но их много.
E>* Обработка больших объемов данных (статистика, к примеру). Насколько я знаю, ПО для обработки данных для самой большой в мире базы данных BaBar разрабатывается на C++.
И? На С++ вобще много чего разрабатывается. И в том числе то что на С++ разрабатывать просто глупо. Что это доказывает то?
E>* Системное ПО (ядра СУБД, к примеру).
В чем проблема?
... << RSDN@Home 1.1.4 beta 6a rev. 436>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[56]: C+ vs C#
От: Cyberax Марс  
Дата: 11.02.06 20:02
Оценка: +1
Здравствуйте, VladD2, Вы писали:

C>>Ну так называйте имена.

VD>Одного достаточно? Тогда RSDN@Home.
Слово "имена" — множественное число

C>> И цифры распространенности.

VD>1, 2, 3.. 295. Подойдут?
Маловато будет.

C>>Во-первых, у меня обычно утиллиты работают очень быстро.

VD>У меня тоже. И что?
Потому что на .NET они НЕ написаны.

VD>Используй ngen если уж тебе не втерпежь. К тому же после первого запуска ты вряд ли замешь склько запускается любое дотнетное приложение.

Замечаю, когда .NET не висит в памяти.

VD>И чем же тебя не удовлетворяет удобство использования? И вообще причем тут оно?

В удобство входит скорость запуска и объем занимаемой памяти. А с этим что у .NET, что у Java — проблемы.

C>>Например, возьмите телефон Nokia с Symbian-OSом — для него есть порт

C>>Doom на С, но на Java есть только достаточно простые игрушки (которые
C>>заметно тормозят).
VD>И это доказательство? Это скорее доказательство того, что ты не умешь делать элементарные выводы. Если пользоваться твоей "логикой", то можно сделать вывод, что С++ дерьмо, ведь Дум портирован на С, а не на нем.
Давайте я изменю у файлов расширение с "c" на "cpp" — специально для вас. Ну еще могу где-нибудь добавить std::vector.

VD> А у меня на телефоне есть куча игр на Яве которые отнюдь не тормозят, а на С вообще нет. Так что и С дерьмо ведь у меня на телефоне на них игр нет.

У вас нет BREW на телефоне? Отстойный телефон.

VD>В общем, это несерьезно. Если мы говорим о Яве в кофеварках, то нужно о ней и говорить. У тебя есть претензии по потребительским свойствам кофеварок в которых встроена Ява? Нет? Тогда приходится признать, что твои слова являются мягко говоря голословными.

Я сравнивал быстродействие. При прочих равных С/C++ позволяет достичь на встраиваемых устройсвах значительно больших результатов.

VD>Он на прктике есть на куче девайсов. Не надо говорить заведомую неправду.

.NET? Не CF, а полный .NET и не в Windows (CE — это тоже Windows)?

VD>Для особо уперты повторяю. Скачай Моно. Там реализована базовая часть ВыньФормс. ВыньФормс платформно зависимая библиотека. Чтобы реализовать ВыньФормс на платформе отличной от Выньдовс прийдется эмулировать систему сообщений Виндовс. Но это не явлется непредолоимой проблемой. Например, есть порты MFC на Линукс. К тому же, даже невозможность портирования одной библотеки на другую платформу не говорит о том, что не возможно портировать рантайм.

Ну так наличие огромной стандартной библиотеки является плюсом C#. А тут оказывается, что интерфейсная либа не совсем портируема. И ADO.NET тоже имеет досадные несовместимости, а Web.Forms совсем почти не работают.

Так и пропадает радужная картина кросс-платформенности.

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

Зато есть wxWidgets, QT, GTK, FLTK. С разными степенями оверхеда (от минимального в случае wxWidgets до максимального в GTK/QT).

VD>Да. Я сохраняю их как файлы и вставляю в Ворд уже готовые файлы. И делаю я это по сображениям надежности и удобста.

И эти люди не дают мне копатсья в носу...

C>>Я вот часто этим пользуюсь.

VD>Сочувствую. Лично я сбебе этого позволить не могу, так как проффесионально занимаюсь допечатной подготовкой материлов.
Про функцию "Convert" у OLE-объектов слышали? Советую посмотреть.

VD>Кого нет? OLE 2 — это COM-спецификация! Каждый может реализовать ее.

Не может. Точнее может, но в C# будет требоваться unsafe.

C>> Нет фундаментальных проблем написать

C>>Word на brainf**k.
VD>Очередной пример передергивания. Если ты проводишь некие аналогии между Брэйнфак и C#, то потрудись вырзить их явно.
Это я к тому, что в теории можно одной левой переписать Word на C#. А вот на практике что-то не сростается.

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

Есть такой литературный прием — называется "гипербола"...

VD>OLE2? Можно ссылкочку? Они как минимум не законны.

Законны. Так как по лицензии от MS. Вот тут DCOM http://www.softwareag.com/corporate/products/entirex/downloads/download_exxdcom.asp . Точную ссылку на OLE лень искать, но у них оно было.

VD>А DCOM никакого отношения к OLE2 не имеет. И его без каких либо трудов можно использовать из C#.

Это я сказал просто чтобы показать, что все COM-технологии есть под Linux.

VD>Да его вообще нет нигде кроме Виндовс. Если есть клоны, то уверен, что они кривые и уж точно есть не везде. А знаешь почему его нет? На фиг не упал.

Ну да, ведь в C# его нет

C>>То что на C# достаточно сложно писать портируемо.

VD>Очередная громкие заявления не подтвержденные ничем. Говоря по простоу — треп.
Давайте сравним количество распространенного портируемого софта на С++ и C#? Вот почему такой замечательный RSDN@Home не работает под Линуксом?

VD>Ну, то есть ты согласен, что не везде? Ваши же любимые аргументы про голимые встраиваемые платформы.

Там где есть .NET — С++ точно есть. Обратное неверно.

С++ нет только на самых скромных платформах (типа микроконтроллеров с килобайтами памяти) — там он просто не нужен, все часто на ассемблерах пишут.

C>> Исключения составляют фактически всякие микроконтроллеры.

VD>Гы. Дык вы тут постоянно на них киляете как на то где нет дотнета. А оказывается там и С++ нет. Во как?!
Ну вот на HP-UX есть .NET?

VD>Во всех остальных случаях C# не просто принципиально применим но и реально применяется.

Только практических результатов не видно. А 5 лет уже прошло.

VD>Откровенно говоря тратить время на дисксси по столь очевидным вещам бессмысленно. Это вера. Бороться с верой бессмысленно. Так что счасливо оставаться со своей верой на едене.

Почему же, я вот вам привожу пример: нет распространенных end-user'ских настольных приложений на .NET. Хотите доказать обратное? Давайте примеры.
Sapienti sat!
Re[50]: C+ vs C#
От: VladGalkin Украина  
Дата: 11.02.06 23:35
Оценка: :)
Здравствуйте, WolfHound, Вы писали:

WH>3)Жесткое реальное время

WH>Причем пункты 1 и 2 через некоторое время станут не актульны см сингулярити... С пунктом 3 пока не все ясно но думаю что и там тоже чтонибудь придумают...

Boeing Selects db4o for New P8-A Aircraft db4o поддерживает Java и .NET, так что явно не на C++ пишут.
Описание самолета:

The P-8A Multi-mission Maritime Aircraft (MMA) is a long-range anti-submarine warfare, anti-surface warfare, intelligence, surveillance, and reconnaissance aircraft. It possesses an advanced mission system for maximum interoperability in battle space. Capable of broad-area, maritime, and littoral operations, the P-8A MMA is expected to influence how the U.S. Navy's maritime patrol and reconnaissance forces train, operate, and deploy.

Такая ситуация: американцы используют платформы плохо работающие в кофеварках (здесь
Автор: Cyberax
Дата: 11.02.06
) и ООСУБД, для написания ПО боевых самолетов.

ЗЫ На сайте db4o можно почитать о применениях db4o, многие из них в real-time.
... << RSDN@Home 1.1.4 stable rev. 510>>
ДЭ!
Re[62]: Еще раз об управляемых ОС
От: VladD2 Российская Империя www.nemerle.org
Дата: 12.02.06 04:10
Оценка: +1
Здравствуйте, VladGalkin, Вы писали:

VG>Ндык есть макросы


Боюсь, что это им может оказаться не позубам. Хотя вопрос сожный. Тут без серьезного анализа ничего толком сказать нельзя.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[55]: C+ vs C#
От: VladGalkin Украина  
Дата: 12.02.06 10:01
Оценка: -1
Здравствуйте, Геннадий Васильев, Вы писали:

ГВ>А что, Boost создан и поддерживается исключительно выходцами из СССР? Хотя вот, Алекс Степанов (один из создателей STL) вроде как имеет некое отношение к СССР.

Читайте повнимательнее, пожалуйста:

росту касты "плюсеров", занимающихся


ГВ>Насколько я помню, это он говорил в контексте рассуждения о том, что не нужно пытаться превращать программы на C++ в подобие программ на Smalltalk, а напротив, нужно извлекать выгоды из свойств, присущих C++. То есть, речь шла не о кодировании идиом, а о подходе в целом.

В моем источнике это фигурирует как цитата из рассуждений о кодировании идиом из динамических языков.

ГВ>Это отнюдь не "советский", а "стадный" образ мышления. Не стоит путать. И он в не меньшей, а то и в большей степени распространён сейчас (Все ДОЛЖНЫ писать под .Net, потому что все УЖЕ перешли на .Net). На самом деле, на территории бывшего СССР Pascal пользовался не меньшей популярностью, чем C++. Скорее даже большей.

Хм, вот про то, что все должны писать под .NET не утверждалось, а вот о том что: С++ это очень круто и он рулит во многих приложениях, в отличии от всякого другого, в данной ветке уже не раз писалось. Кстати, почему господа молчат по поводу самолёта
Автор: VladGalkin
Дата: 12.02.06
?

ГВ>Проблема не в этом. C++ стал популярен у программистов без маркетинговых вливаний со стороны AT&T, а C# в немалой степени продукт маркетологический: результат исследования потребностей "усреднённого программиста". Естественно, что поскольку C++ умеют пользоваться, хорошо, если десятая часть "C++-програмистов", то и получился на выходе "С++ урезанный". Например, пресловутый отказ от множественного наследования. Плюс определённые технические проблемы. Вот в этом и есть причина того, что C# подвергается остракизму со стороны C++-ников. Так что, почувствуй разницу: где тут на самом деле порылись примитивные стадные черты.

Озвучьте, пожалуйста, технические проблемы.
Почему то в США С++ не пользуется такой популярностью, а вот связка Smalltalk/Gemstone — на ура, я молчу про то, что там есть люди и компании которые программируют на Cobol, найдите таких в бывшем СССР. Надо стараться воспринимать палитру различных средств, а не упираться на чём-то одном, а я стараюсь не упираться в своем восприятии только на .NET.
Да, C# — это чёртов маркетологический продукт, именно потому, что предварительно подумали/исследовали
что вообще нужно людям, а не разработчикам самого языка. А что поделаешь: такие условия рынка. И если продуктом умеют пользоватся в лучшем случае десятая часть использующих его, то оставшиеся ИМХО не "усредненные", тут стоит задуматься о продукте.

ГВ>Если продать каждому человеку что-то за доллар, то можно озолотиться. Что нужно любому человеку? Туалетная бумага! Давайте ВСЕ будем делать туалетную бумагу? Озолотимся!

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

ЗЫ А вообще, пора прекращать это пламя джихада и хорошенько отдохнуть перед новой рабочей неделей
... << RSDN@Home 1.1.4 stable rev. 510>>
ДЭ!
Re[59]: Еще раз об управляемых ОС
От: Cyberax Марс  
Дата: 12.02.06 10:10
Оценка: +1
VladD2 wrote:
> C>Все просто — хранилище написано на кросс-платформенном С++. Интерфейсом
> C>с Актглюком занимается сравнительно небольшая прослойка.
> И что эта система кода нибудь понадобится на Линукс? Нехре на вам эта
> кросплатформность?
Уже понадобилась Система предназначена для синхронизации Outlook'ов и
в ней возможен режим, когда есть центральный сервер, с которого клиенты
забирают обновления. Этот сервер может быть и Линуксом, в частности.

В будущем (пока другим проектом занят) планирую прикрутить к этому всему
еще интеграцию с QMail'ом (чтобы получать почту) и RSDNом

> C>Нет. Просто в .NET _намного_ сложнее экономно работать с памятью.

> А ты спросил у своего заказчика, что ему вожнее та самая
> "*гарантированно корректная*" работа с памтью, или ее небольшой перерасход?
У меня сейчас при работе другой программы расход памяти около 2Гб (на
грани OOM — out-of-memory) на некоторых сэмплах. Если с ней работать
чуть менее экономно — вылетаем. Так что память для меня — ресурс.

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

> Учитывая, что ты тут так сильно акцентируешь то, что продукт серверный,

> то вообще смешно слышать о перерасходе памяти и том, что С++
Он серверно-клиентский. Практически один и тот же код работает как на
сервере, так и на клиентах (в том числе и на PPC).

> "гарантирует корректную работу с памтью". Один ваш Фаерберд сожрет

> памяти не соизмеримо больше чем дотнетное приложение.
Нет, Firebird кушает совсем немного — в разы меньше приложения.

> И будет прав, так как для это единственно разумное решение для

> ускорения работы с большим объемом данных.
Нет, единственно разумным решением тут являются эффективные алгоритмы
хранения и запросов.
Posted via RSDN NNTP Server 2.0
Sapienti sat!
Re[44]: C+ vs C#
От: Геннадий Васильев Россия http://www.livejournal.com/users/gesha_x
Дата: 12.02.06 12:54
Оценка: +1
Здравствуйте, WolfHound, Вы писали:

WH>А мне надо доказывать что я знаю С++?


А давай свернём дискуссию по этому поводу? А то сие правилам форума противоречит.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Re[52]: C+ vs C#
От: Дарней Россия  
Дата: 13.02.06 03:13
Оценка: :)
Здравствуйте, alexeiz, Вы писали:

A>Т.е. ты считаешь язык, в котором есть и высокоуровневые возможности и низкоуровневые, низкоуровневым?


Нельзя сделать инструмент, который позволяет одинаково хорошо и гвозди забивать, и микробов разглядывать. То есть сделать то конечно можно, но это будет не "одинаково хорошо", а "одинаково плохо". Что мы и получаем в случае С++.
Намного разумнее использовать для разных задач разные инструменты. Для низкого уровня — С, для высокого — Немерле, например Остатется только проблема интеграции, но C++/CLI эту задачу неплохо решает.
... << RSDN@Home 1.1.4 stable rev. 510>>
Всех излечит, исцелит
добрый Ctrl+Alt+Delete
Re[58]: C+ vs C#
От: Геннадий Васильев Россия http://www.livejournal.com/users/gesha_x
Дата: 13.02.06 03:39
Оценка: +1
Здравствуйте, VladGalkin, Вы писали:

O'K, на первый вопрос, будем считать, ответ получен.

ГВ>>- В какой конкретно подсистеме самолёта будет использоваться db4o? Каковы требования к ней? Это ведь, может быть и модуль хранения сообщений от диспетчера.

VG>Хм, "модуль хранения сообщений от диспетчера входит в так называемый черный ящик", требования к которому оень высокие, но он реализуется обычно с помощью надежнейшей проволки.
VG>здесь

Не уходи от ответа! Впрочем, ладно. Подозреваю, что ни тебе ни мне ничего об этом не скажут. И правильно сделают.

ГВ>>- Так db4o/Java или db4o/.Net?

VG>Уж чего не знаю, так не знаю, пост про самолет относился к применению платформ типа Java и .NET вообще.

Так невозможно спорить с тем, что "вообще" Java/.Net можно сунуть практически куда угодно. Точно также, как и Lisp, Smalltalk и нужное-вписать. Вопрос, это — где именно, как именно и с какими именно последствиями использована та или иная технология. Не имея конкретного ответа на такой вопрос нельзя делать и каких-то однозначных выводов, пригодных для сравнения применяемых технологий. А если нет возможности сделать конкретные выводы на основании каких-то данных, то и данные сии есть балласт.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Re[61]: C+ vs C#
От: Дарней Россия  
Дата: 13.02.06 08:39
Оценка: -1
Здравствуйте, Cyberax, Вы писали:

C>Но ведь еще не сделали?


а тебя так сильно беспокоит HP-UX? Ты хочешь об этом поговорить?
Я уверен, что Аутлука там совершенно точно нет

C>Они его собираются заменить уже года три. А воз и ныне там — у них

C>слишком много заточено под консервативную сборку.

читал где-то у них в ньюсах, что это уже практически закончено

C>На контроллере без компилятора gcc и нормального runtime'а?? Ну в

C>крайнем случае можно портировать wxWidgets Universal — он сам рисует все
C>виджеты и требует фактически только канвас для рисования.

бог с ними, контроллерами.

C>Он простой и удобный. Для определенных целей.


Вот-вот. Главное — не пытаться доказывать, что он рулит еще и как язык для прототипирования
... << RSDN@Home 1.1.4 stable rev. 510>>
Всех излечит, исцелит
добрый Ctrl+Alt+Delete
Re[58]: C+ vs C#
От: vdimas Россия  
Дата: 13.02.06 09:34
Оценка: :)
Здравствуйте, VladD2, Вы писали:


VD>Еще рез. OLE 2 — это COM-спецификация. Нет никакой разницы на чем ее реализовывать. И она не реализована на 100% на C# только потому, что это никому не нужно. Хотел бы я поглядеть как кто-то реализует OLE 2 без MFC.


http://www.rsdn.ru/Users/Profile.aspx?uid=21096



Не весь, правда, только клиентскую часть...

Re[53]: C+ vs C#
От: alexeiz  
Дата: 13.02.06 09:36
Оценка: -1
Здравствуйте, Дарней, Вы писали:

Д>Здравствуйте, alexeiz, Вы писали:


A>>Т.е. ты считаешь язык, в котором есть и высокоуровневые возможности и низкоуровневые, низкоуровневым?


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


Меня уже достали твои общие слова. Ты отрицаешь наличие высокоуровневых возможностей в C++?
Re[49]: C+ vs C#
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 13.02.06 10:05
Оценка: +1
Здравствуйте, eao197, Вы писали:

E>Вероятно, в этом все дело. C++ -- это отличный язык. А вот то, что он высокого уровня -- об этом можно поспорить. Имхо, у той же Java или Ruby уровень гораздо выше. И есть масса задач, для которых C++ не является языком, на котором решения строятся легко и просто. Разработка Web-приложений, например.


ИМХО дело не в высокости уровня, дело в подходе к проектированию.
... << RSDN@Home 1.2.0 alpha rev. 642>>
AVK Blog
Re[47]: C+ vs C#
От: Дарней Россия  
Дата: 13.02.06 10:32
Оценка: +1
Здравствуйте, AndrewVK, Вы писали:

AVK>Здравствуйте, Дарней, Вы писали:


Д>>я раньше тоже думал в точности, как ты


AVK>Я, кстати, тоже. Только в то время С++ еще только обзавелся шаблонами и ими еще учились пользоваться. А без шаблонов плюсы из себя ничего выдающегося не представляют.


Когда трюки с шаблонами только придумали, я вообще был в полной эйфоии. Это уже потом пришло горькое разочарование
... << RSDN@Home 1.1.4 stable rev. 510>>
Всех излечит, исцелит
добрый Ctrl+Alt+Delete
Re[51]: C+ vs C#
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 13.02.06 11:04
Оценка: +1
Здравствуйте, eao197, Вы писали:

AVK>>ИМХО дело не в высокости уровня, дело в подходе к проектированию.


E>А расшифровать свое ИМХО можешь?


Могу. Дело в том, от чего мы отталкиваемся. Если отталкиваемся от машины, то это одно, если от некоей математической модели — совсем другое. И далеко не всегда это однозначно свидетельствует о высоте уровня. К примеру MSIL значительно более низкоуровневый по своей сути, нежели С++, поскольку даже цикл на нем нужно изображать вручную, и вместе с тем он значительно дальше от аппаратных особенностей.
... << RSDN@Home 1.2.0 alpha rev. 642>>
AVK Blog
Re[52]: C+ vs C#
От: Cyberax Марс  
Дата: 13.02.06 12:18
Оценка: +1
GlebZ wrote:
> C>6. Кросс-платформенные приложения (не надо про Mono).
> А ты с кем сравниваешь? Случайно не с Явой? Трудно говорить о
> кросс-платформенности С++, если даже компиляторы друг с другом не всегда
> кросс.
При использовании некого subset'а функциональности — вполне себе портируемо.

> Так что, если говорить о кросс-платформенности, то кросс-платформенность

> с помощью Явы достигается меньшей кровью.
Ага, программы на Java одинаково плохо работают везде
Posted via RSDN NNTP Server 2.0
Sapienti sat!
Re[2]: C+ vs C#
От: Ellin Россия www.rsdn.ru
Дата: 13.02.06 16:14
Оценка: -1
Здравствуйте, kuj, Вы писали:

kuj>Когда-то давно еще во время появления C++, помнится, был примерно аналогичный спор аля Asm vs C++. Потом было C++ vs Java (наиболее близко к данной теме, если подумать).


Как все просто. И думать не надо. Asm->C->C++->Java->C#. Правильно я понимаю. Вот только напишите мне, пожалуйста, что именно было привнесенно на каждом из этапов нового в программирование. На Jav'е у меня все заканчивается.

kuj>У меня де жа вю или эта тема неисчерпаема? Удивляюсь только как очевидно опытные программисты типа VladD2 и WolfHound позволяют себя втянуть в подобный спор.

Дык... А чем им еще делать?

kuj>Очевидным остается факт, что в программирование с каждым годом становится все более экстримальным — сроки сжимаются, а функционал требуют все богаче и удобнее.

Так на C# даже иконку в хидер Лист Контрола вынести без апи нельза о каком функционале идет речь?
C++ жив и будет жить еще долго — пока существуют ниши для него, но тенденции к переходу на все более высокоуровневые и богатые языки сохраняются.
kuj>Клиентов обычно не волнует как и на чем будет реализована нужная ему функциональность, а главное — сроки на выполнение и качество работы.
Сроки да — С# дает приимущество для большениства программистов, а вот качество под сомнением.

kuj>P.S. По поводу "серьезных проектов"... вот у нас проектик на 80 с гаком метров C# кода живет и здравствует... Страшно подумать какой монстр получился бы, если бы писали его на C++.

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

На мой взгляд С# в нынешнем его состоянии подходит для создания прототипов ПО, быстро накляпал полуработающию прогу, а потом, когда заказчику понравилось — написал нормальную рабочию версию на С++.
Re[4]: C++ vs C#
От: WolfHound  
Дата: 13.02.06 19:31
Оценка: :)
Здравствуйте, Ellin, Вы писали:

E>1. Уборка мусора.

E>Про сборку мусора можешь почитать в классической книге Дж. Коплиена "Программирование на С++" за 1992 год(!),
E>страница 333 9.5. Уборка мусора.
E>2. Рефлексия. Этот вопрос уже неоднократно обсуждался на форуме С/С++ вот ссылка на библиотеку, которая позволяет реализовать рефлексию для С++ в его нынешнем состоянии: rsdn
Автор: Batiskaf
Дата: 30.04.04
. Вобщем не вижу сложностей с реализацией рефлексии на С++ такой карпорацией, как MS.

E>3. Emit Собственно есть рефлексия — есть Emit.
E>И последнее, надеюсь с твоей стороны есть понимание, что я имел ввиду потенциальный C++ 8.0, когда говорил о нем, с ключевыми словами, с типами классов — типа рефлексируемый и пр., не нынешний?
Да вы батенька просто изощеренный садистЪ. Мои тапочки просто лопоются от смеха... Бедные мои тапочки... как мне их жалко...
Настольконе соответствующие действительности высказывания я даже коментировать не хочу.
Вобщем С++ хороший язык... когдато был...
А сейчас рулят ковровые клинья и танковые бомбандировки тфу ты управляемые среды, а дальше будут рулить упровляемые ОС типа Singularity для которых на С++ вобще писать будет довольно проблематично.

E>И всетаки есть. На моё сообщение не смотри, смотри выше.

Ну модератор тоже человек... модератор тоже иногда опечатывается...
Кстати придиратся к опечаткам запрещено правилами сайта...
К томуже опечаточка как говорят по Фрейду... многовато два плюса для этого языка... одного хватит.
... << RSDN@Home 1.1.4 beta 6a rev. 436>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[3]: C+ vs C#
От: IT Россия linq2db.com
Дата: 13.02.06 19:59
Оценка: +1
Здравствуйте, Ellin, Вы писали:

E>Могу с уверенностью сказать, даже не видев вашего проекта, что если создать аналогичный проект на С++ — клон то есть, то качество его исполнения будет гораздо выше. Сроки тоже несколько выше, но приемлемо.


На чём основано столь смелое заявление?

E>На мой взгляд С# в нынешнем его состоянии подходит для создания прототипов ПО, быстро накляпал полуработающию прогу, а потом, когда заказчику понравилось — написал нормальную рабочию версию на С++.


Это большое заблуждение, вызванное ещё более большым самоуспокоением.
Если нам не помогут, то мы тоже никого не пощадим.
Re[52]: C+ vs C#
От: vdimas Россия  
Дата: 13.02.06 20:07
Оценка: -1
Здравствуйте, WolfHound, Вы писали:

WH>Здравствуйте, vdimas, Вы писали:


V>>Для обработки звука, например, уже вполне всего хватает.

V>>Я вот недавно баловался с реал-тайм эффектами для гитары на своем компе. Пробовал и на С++ и на С#. В первом случае загрузка проца 5%, во втором — 7..9%.
WH>А когда доделают оптимизатор то разници вобще не будет.

будет все-равно из-за:
— проверки диапазонов массивов при обращении
— из-за того, что массивы — это всегда reference type, т.е. наличие массива чего-либо в классе — это доп. уровень коссвенной адресации.
— вызов метода по делегату медленнее виртуальной ф-ии, а в С++ вызов по указателю на член — быстрее, чем вызов виртуальной ф-ии

из-за всех этих вещей приходится идти на всякие ухищрения и иногда избыточный объем кодинга. В С++ варианте размер кода для этих задач потрясающе мал, в отличие от аналогичного кода на C#.
Re[6]: C+ vs C#
От: Ellin Россия www.rsdn.ru
Дата: 13.02.06 23:02
Оценка: +1
Здравствуйте, WolfHound, Вы писали:

E>>Для .NET нету нормальных элементов управления,

WH>Проблемы с ГУИ? Еще раз .NET != WinForms. WinForms это вобще временная библиотека хотя во втором фреймворке они ее и основательно переработали.
А я про WinForms и не говорил. Я говорил гораздо шире. Их впринципе нет.

E>>работает только с поверхностной точки зрения,

WH>Поверь мне я залезал в потроха .NET'а на столько глубоко что тебе и не снилось... и там за исключением нескольких мелких бажиков в тех местах где не ступала нога человека все очень хорошо работает.
Рефлектором пользоваться могут даже студентики. И они меня совершенно не волнуют: мне главное, чтобы конечное решение работало.

E>>функционал сильно урезан,

WH>Функционал чего?
Всего пользовательского интерфейса. Нарисуй битмап в хидере Лист Контрола, например.

E>>чуть влево-вправо — лезем в WinAPI.

WH>Я за два года работы из WinAPI достал только две функции... QueryPerformanceCounter и QueryPerformanceFrequency... причем во втором .NET'е они и это исправили... Stopwatch...
А я гораздо больше. Слушай. Получается, что я больше тебя кода пишу

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

WH>Хреновый у тебя опыт... ты не разобравшись в предмете попытался что-то делать и у тебя ничего не получилось... и правильно ибо философия C# не имеет ничего общего с философией С++. Это совершенно другой мир с совершенно другими законами. И пытатся писать на нем как на С++ по меньшей мере глупо.
Дык получилось, но какими усилиями ... Титаническими. И зачем было создавать этот новый мир, когда есть практически совершенный?

E>>Да ладно, ладно. Я на это и расчитываю.

WH>На что это?
На твой опыт.
E>>Не согласен. С# расширяет ИТ рынок и C++ также расширяет зону охвата.
WH>
Тапочки?
Re[5]: C++ vs C#
От: alexeiz  
Дата: 14.02.06 07:50
Оценка: +1
Здравствуйте, Sinclair, Вы писали:

S>Это конечно есть. Просто дотнет появился вовсе не от того, что биллу некуда было деть несколько миллиардов. Оказалось, что развивать технологии, основанные на COM (и, в частности, МС VC++) уже некуда. Твое непонимание природы вещей настолько глубоко, что я даже не знаю, как его заполнить. Читай, исследуй — через некоторое время ты поймешь, что если доработать С++ в том стиле, про который ты говоришь, то получится Java.


Самому можно дойти до каких угодно выводов. Но лучше обратиться к первоисточнику, который почему-то так не считает: http://www.research.att.com/~bs/bs_faq.html#Java
Re[10]: C++ vs C#
От: WolfHound  
Дата: 14.02.06 09:11
Оценка: +1
Здравствуйте, Ellin, Вы писали:

E>Так это скорее провокация против С++. Сначала запретили множественное наследование, потом начали С++ натягивать. Да и управляемые классы также нельзя в шаблонах использовать. Это МС++ — это пиар С#, если хотели бы сделали правильно, для этого возможности есть.

Да нету возможности. С++ очень сильно перегружен всяким мусором.

E>WM_PRINT, опечатался, извиняюсь.

Всеравно ничего не понял.

E>Допустим есть пару функций, которые надо унаследовать. В C# делаем интерфейс и каждый раз делаем имплиментацию. Java программисты рассказали мне трюк, в котором они выносят эти функции в отдельный класс, мемберы тех классов, которые в С++ были бы наследниками, и с которыми должны работать эти методы делают public, затем "обрабатывают", отдельным классом — им очень нравиться, причем по их признанию можно сделать мемберы private, но завести public ассоциативный массив.

Ничего не понял. Давай конкретную задачу и код которым ее решаеш.

WH>>В том что ты совершенно не понимаешь что такое управляемая ОС, чем она отличается от обычной и почему это качественный скачек по сравнению с тем что есть сейчас.

E>Давай так, в пару словах что же это такое и тут станет все ясно.
В паре слов не получится. Это совершщенно иная философия и для того чтобы ее понять сначала нужно понять для чего сделан .NET. Если ты не поймешь .NET то управляемые ОС ты не поймешь.
... << RSDN@Home 1.1.4 beta 6a rev. 436>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[11]: C++ vs C#
От: Ellin Россия www.rsdn.ru
Дата: 14.02.06 09:49
Оценка: +1
Здравствуйте, WolfHound, Вы писали:

WH> С++ очень сильно перегружен всяким мусором.

А где та мера по которой вы определяете? Для кого-то и С# перегружен мусором. Однако я склонен считать, что мусора нет и скорее наоборот, элементов языка всетаки мало.

WH>Ничего не понял. Давай конкретную задачу и код которым ее решаеш.


WH>>>В том что ты совершенно не понимаешь что такое управляемая ОС, чем она отличается от обычной и почему это качественный скачек по сравнению с тем что есть сейчас.

Чувствую что нет понимания что такое Windows 95. Там также существуют виртуальные машины. Этой операционной системой исполняемые файлы рассматриваются как некоторые инструкции к ядру операционки. (грубо говоря). Когда ты стартуешь ОС, то создается виртуальная машина в которой интерпретируются команды, отображаются результаты. Это очень похоже на виртуальные машины джава. Неправда ли? Разница в семантике байт кода и инструкций исполняемого файла. MS сейчас просто напросто придумало новые инструкции и все прибамбасы к ним, не более того. Я говорю, что разумнее было бы расширять уже имеющиеся разработки.
?

E>>Давай так, в пару словах что же это такое и тут станет все ясно.

WH>В паре слов не получится. Это совершщенно иная философия и для того чтобы ее понять сначала нужно понять для чего сделан .NET. Если ты не поймешь .NET то управляемые ОС ты не поймешь.
Тогда мне убогому остается только довериться тебе, отдать кошелек с деньгами, чтобы ты мне среды разработки покупал и делать как скажешь. Так получается? Это твой идеал? К этому стремишься?
Кстати Энштейн говорил вроде: "Если вы не можете объяснить пятилетнему ребёнку чемы занимаетесь — значит вы шарлотан."
Re[57]: C+ vs C#
От: alexeiz  
Дата: 14.02.06 10:39
Оценка: -1
Здравствуйте, Дарней, Вы писали:

Д>Здравствуйте, alexeiz, Вы писали:


A>>Это камень предкновения? Программируй на функциональном языке.


Д>А давай ты не будешь указывать мне, на чем программировать?


Ты просто не понял, что здесь обсуждается. Функциональные языки будем обсуждать в отдельной теме.

Д>Ты спрашивал, чего не хватает в С++? Я тебе сказал.


Ясно дело, есть в C++ вещи, который не хватает. Однако это не делает его языком низкого уровня. Тем более, твои примеры. Они ни каким боком не показывают, что на C++ нельзя программировать на высоком уровне абстракции или что уровень абстракции в C# выше чем в C++.

A>>Все твои "аргументы" даже и на йоту не ближе к тому, чтобы показать, что на С++ нельзя программировать на высоком уровне абстракции.


Д>я не занимаюсь разведением сферических коней в вакууме.


Я стараюсь направить эту тему в конкретное русло.

> Я пишу конкретные программы для конкретных компиляторов и на конкретных библиотеках. Поэтому проблемы реализации — это проблемы не у них, а проблемы у меня


Если ты, имея выбор компиляторов и библиотек, принял своё решение, то это становится твой проблемой. Однако никто тебя не заставляет выбирать плохие компиляторы и библиотеки. Твой конкретный выбор не делает язык хуже.
Re[2]: C++ vs basic
От: Sheridan Россия  
Дата: 15.02.06 10:02
Оценка: :)

Доолго первый минус шол...
Заняты наверно все

[RSDN@Home][1.2.0][alpha][643]
[Многознание уму не учит. [Гераклит]]
Matrix has you...
Re[4]: C++ vs basic
От: Pyromancer  
Дата: 15.02.06 11:06
Оценка: -1
Здравствуйте, Sheridan, Вы писали:

S>Здравствуйте, alexeiz, Вы писали:


A>>Опять же, какой basic? Конкретизируй.


S>Какая разница... Ну скажем вижуал...


не поминай нечистого
Re[64]: C+ vs C#
От: Cyberax Марс  
Дата: 15.02.06 11:08
Оценка: -1
Vermicious Knid wrote:
> C>С точностью до синтаксиса.
> Это не валидный код и не рабочий пример, *учите C++*.
Код валидный. Будет вполне нормальный pure virtual call.

> Во-первых отсутствует точка с запятой после объявления класса(очередной

> маразм C++).
А кто сказал, что код завершен?

> gcc, и msvc7.1 его компилировать отказались(msvc7.1 просто не слинковал,

> gcc не понравился вызов do_squack в конструкторе). comeau online
> справедливо выдал warning.
Gcc 4.0.2 скомпилировал и предупреждением. При запуске — справедливый
pure virtual call.

Обходится приемом "Base From Member":
http://boost.org/libs/utility/base_from_member.html
Posted via RSDN NNTP Server 2.0
Sapienti sat!
Re[62]: C+ vs C#
От: Andrei N.Sobchuck Украина www.smalltalk.ru
Дата: 15.02.06 11:25
Оценка: -1
Здравствуйте, Cyberax, Вы писали:

C>Это значит, что просто никому особо не надо. Тем более, что в C#

C>свойства — это просто сахар над get-,set- функциями и не добавляет
C>ничего семантически нового.

И вообще не понятно зачем они нужны.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Я ненавижу Hibernate
Автор: Andrei N.Sobchuck
Дата: 08.01.08
!
Re[58]: C+ vs C#
От: Кодёнок  
Дата: 15.02.06 11:36
Оценка: +1
Здравствуйте, alexeiz, Вы писали:

A>Но C++ — это язык не для новичка. Про новичков вопрос отдельный. C++ в настоящее время больше ориентирован на профессионалов.


Жаль что эти профессионалы часто путают привычность с понятностью и читабельностью, наличие фичи в языке с возможностью решать те же задачи другими средствами (или с возможностью сделать кривую эмуляцию), и пытаются писать на новых языках как на известным им. А ещё небрежно бросают "а что вы хотели, С++ ведь надо изучать", абсолютно не обращая внимание, что на это надо минимум год в режиме полного рабочего дня в проекте, где будут возникать разноплановые задачи, и что перспективы такой траты времени всё более и более сомнительны.
Re[65]: C+ vs C#
От: WolfHound  
Дата: 15.02.06 20:46
Оценка: -1
Здравствуйте, alexeiz, Вы писали:

VK>>Ну ты же просил что-то подобное. На мой взгляд protected вполне удовлетворяет этому определению, в той или иной степени. Инкапсуляция это хорошо, но не стоит ей черезмерно увлекаться.

A>Дело в том, что на C# выразить инкапсуляцию в полной мере не удаётся. По твоей логике, раз нельзя, значит и не надо увлекаться.
Это я никак не могу отнести к плюсам С++. Ну никак. Рюшечки это безполезные.

A>Не спеши с выводами. CLI использует разные модели доступа к членам класса внутри и извне модуля. Какое безобразие можно сотворить с комбинациями public private, internal public, private protected и т.д., наверное, несравнимо с друзьями (тем не менее друзей таким способом нельзя реализовать). В данном случае нужно говорить не о хорошо/плохо спроектированном языке, а о гранулярности контроля над его поведением.

Откуда ты это взял? Есть только такие модификаторы.
public               Access is not restricted.
protected            Access is limited to the containing class or types derived from the containing class.
internal             Access is limited to the current assembly.
protected internal   Access is limited to the current assembly or types derived from the containing class.
private              Access is limited to the containing type.


A>Когда стоит выбор между двумя языками, ты выберешь тот, который даёт тебе больший контроль и гибкость или меньший?

Именно по этому я выбераю C#.

A>Давно известная идея в C++. В мир C# она только-только приходит. Но только она не может быть реализована в полной мере. Эта ситуация характерна для C#. Многие полезные идеи из C++ не имеют (или имеют ограниченное) в нём представления.

В мир C# она не попадет ибо ничего невого она не дает. То есть вобще ничего.
Если на счет деструкторов или шаблонов еще можено подумать то это вобще мулька безполезная.
... << RSDN@Home 1.1.4 beta 6a rev. 436>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[57]: C+ vs C#
От: Sheridan Россия  
Дата: 16.02.06 04:40
Оценка: -1
Здравствуйте, Sheridan, Вы писали:

S>Будет

S>У меня идея-фикс: сделать такого клиента, который обойдет RSDN@Home
S>Дабы доказать что шарп не рулит.

slavdon, нравится шарп и не нравится линух? Не читай мои посты, отпишись от КСВ вообще.

[RSDN@Home][1.2.0][alpha][643]
[Мир прекрасен. Это-то и грустно. [С. Лец]]
Matrix has you...
Re[66]: C+ vs C#
От: alexeiz  
Дата: 16.02.06 08:55
Оценка: :)
Здравствуйте, WolfHound, Вы писали:

WH>Здравствуйте, alexeiz, Вы писали:


A>>Давно известная идея в C++. В мир C# она только-только приходит. Но только она не может быть реализована в полной мере. Эта ситуация характерна для C#. Многие полезные идеи из C++ не имеют (или имеют ограниченное) в нём представления.

WH>В мир C# она не попадет ибо ничего невого она не дает. То есть вобще ничего.
WH>Если на счет деструкторов или шаблонов еще можено подумать то это вобще мулька безполезная.

Вот тебе пара ссылок для самообразования:

http://blogs.msdn.com/brada/archive/2005/01/14/353132.aspx
http://msdn2.microsoft.com/en-us/library/system.collections.collectionbase_members.aspx
Re[2]: C++ vs basic
От: Lorenzo_LAMAS  
Дата: 17.02.06 11:06
Оценка: +1
Здравствуйте, Sheridan, Вы писали:

S>Именно так.


А ты знаешь и C#, и basic (о каком ты говорил, кстати?) и С++ чтобы так говорить?
Of course, the code must be complete enough to compile and link.
Re[6]: C++ vs basic
От: anton_t Россия  
Дата: 17.02.06 12:53
Оценка: +1
Здравствуйте, Sheridan, Вы писали:

L_L>>И чем же C# похож на basic (visual, как ты вроде уточнил)


S>Тем что он for dummies (или как там правильно пишется).

То есть проще чем плюсы? Так этим качеством очень много языков обладает.
S>Тем что интепритатор.
Одно из двух. Либо ты не знаешь, что такое .net, либо не знаешь что такое интерпретатор.
S>Тем что некроссплатформен.
mono
S>Тем что требуетъ кучу либ. Тем что памятью нельзя управлять.
Зато какие возможности это даёт.
S>Тем что тормоз в конце концов.
Не сильно-то и тормоз.
Re[9]: C++ vs basic
От: Sheridan Россия  
Дата: 21.02.06 04:42
Оценка: :)
Здравствуйте, Alxndr, Вы писали:

A>Я вот, например, терпеть не могу C# сотоварищи и, между прочим, переползаю на *nix (кстати, в грудь себя по этому поводу не бью, обрати внимание).

A>Поэтому со всей объективностью заявляю: дело тут не в том, что все молятся на шарп с микрософтом.
A>Просто ты проявляешь незнание охаиваемого тобой предмета.

A>Зачем?


Нет, я понимаю крутость шарпа и его простоту. Мне не нравится тенденция упрощать язык. Когда секретарши и бухгалтера начнут себе софт писать (мы до этого не доживем конечно в россии) тогда будет хуже...

[RSDN@Home][1.2.0][alpha][643]
[Hовые взгляды сквозь старые щели. [Г. Лихтенберг]]
Matrix has you...
Re[11]: C++ vs basic
От: Sheridan Россия  
Дата: 21.02.06 05:33
Оценка: -1
Здравствуйте, anton_t, Вы писали:

_>А вот простой язык — это хорошо. Краткость — сестра таланта.


Учим латынь?

[RSDN@Home][1.2.0][alpha][643]
[Кто отказывается от многого, может многое себе позволить. [Ж. Шардон]]
Matrix has you...
Re[4]: C++ vs C#
От: Sinclair Россия https://github.com/evilguest/
Дата: 21.02.06 11:34
Оценка: +1
Здравствуйте, Sheridan, Вы писали:
S>обычный консольный софт пользующийся stdio?
Угу. У нас просто весь прикладной рынок завален этим консольным софтом. Не смешите мои тапочки.
S>Из высокоуровневого — Gtk и Qt софт но при наличии соотв. библиотек
О, да. Мне особенно нравится вот такой всеобъемлющиё подход: "Gtk и Qt софт но при наличии соотв. библиотек". А конкретнее можно?
Покажите мне, к примеру, CD-burner с поддержкой нормальной интеграции в оболочку — drag-n-drop и прочее, который запустится на любой платформе.
Ладно, это сложно. А может, есть какая-то персональная бухгалтерия, которая работает простой перекомпиляцией хотя бы на двух платформах из трех? Как, тоже нету?
Ну а нахрен мне тогда уперлись самплы из Qt и grep.exe?
1.1.4 stable rev. 510
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[7]: C++ vs C#
От: Sheridan Россия  
Дата: 22.02.06 04:27
Оценка: -1
Здравствуйте, Sinclair, Вы писали:

S>Ты же уже взрослый человек. Пора понять, что одним интерфейсом приложения не делаются.

Ясное дело что интерфейс это чтобы показать

S>Подскажи мне кроссплатформенный способ соединиться с RDBMS?

Qt

S>А может, у тебя завалялся кроссплатформенный исходник XSLT-трансформера?

А зачем С++ нужен XSLT? Не вижу смысла... Этоже web технология... Нету его помоему вобще для с++... Под яву есть решения, ПХП опятьже тоже вроде умеет. А прикладному ПО зачем?

S> Даже если есть — таких требований все больше и больше.

Знаю

S> И практически по каждому из них переносимость упирается в перенос соответствующих библиотек. Да, QT есть под все основные платформы. Но это не потому, что язык такой, а потому, что ее авторы не пожалели времени на перенос на все платформы.

Тоесть шарп такой язык что ничего переносить ненадо?

S>Если завтра выйдет какая-нибудь МегаОС на платформе Cool68, то написание компилятора С++ для нее ничего не даст существующим приложениям. Окажется, что надо еще перекомпилять/переписать все виджеты, трансформеры и прочий стуфф под эту платформу. И — о чудо! программе действительно придется таскать с собой весь этот хлам. На каждую машину, чего так трогательно хотел избежать Эллин.

Гм... Статическая линковка? С другой стороны на всех системах всегда такое было... И шарп тоже за собой дотнет таскает.

S>Вот, собственно, и весь хрен до копейки.

Ваша сдача, пожалуйста

[RSDN@Home][1.2.0][alpha][643]
[Кто мешает тебе выдумать порох непромокаемым? [К. Прутков]]
Matrix has you...
Re[20]: C++ vs basic
От: anton_t Россия  
Дата: 22.02.06 13:33
Оценка: :)
Здравствуйте, kuj, Вы писали:

_>>А я разве говорил, что единственный критерий "хорошести" языка — его простота?

kuj>Интересно Вы, г-дин Sheridan, проводите аналогии между языком программирования и разговорным языком. А латынь ведь весьма широко в медицине используется...

kuj>Язык должен быть и богатым функционально и простым. Хотя в первую очередь язык должен быть читаемым. На C++ можно писать так, что и самому потом не прочесть.

kuj>Что до функциональности C# уже, осмелюсь утверждать, превосходит C++. Да, все задачи решаемы в C++ вопрос лишь в простоте реализации и человеко-часах необходимых для реализации решения.

Всё хорошо, но отвечать нужно было не мне, а Sheridan'у
Re[20]: C++ vs basic
От: Sheridan Россия  
Дата: 26.02.06 05:17
Оценка: +1
Здравствуйте, kuj, Вы писали:

_>>А я разве говорил, что единственный критерий "хорошести" языка — его простота?

kuj>Интересно Вы, г-дин Sheridan, проводите аналогии между языком программирования и разговорным языком. А латынь ведь весьма широко в медицине используется...
Дык это подтверждает только данное направление разговора

kuj>Язык должен быть и богатым функционально и простым. Хотя в первую очередь язык должен быть читаемым. На C++ можно писать так, что и самому потом не прочесть.

На шарпе тоже так можно написать...

kuj>Что до функциональности C# уже, осмелюсь утверждать, превосходит C++. Да, все задачи решаемы в C++ вопрос лишь в простоте реализации и человеко-часах необходимых для реализации решения.

Я соглашусь с тем что шарп лучше лишь в одном контексте — когда скорость разработки важнее скорости работы софтины на порядок. Раньше писали на delphi и builder, а теперь все дружно переходят под шарп

[RSDN@Home][1.2.0][alpha][643]
[Любовь — милое безумие; честолюбие — опасная глупость. [H. Шамфор]]
Matrix has you...
Re[39]: C+ vs C#
От: WolfHound  
Дата: 10.02.06 11:14
Оценка:
Здравствуйте, alexeiz, Вы писали:

A>Вот это и моё мнение. Использовать C# имеет смысл ради доступа к библиотеке .NET.

Тут не только библиотека хотя она тоже очень важна. Но главное это богатый рантайм который позволяет делать очень многие вещи гораздо проще.

A>Другой вопрос насколько она важна для тех или иных целей, и насколько ради доступа к библиотеке ты согласен поменять стиль программирования, перейти на другие идиомы и т.д.

Для меня сменить стиль и идеомы программирования не проблема.

A>Приведи примеры. Хотя нетрудно догадаться. Сериализация, reflection? Вообщем, всё, что строится на reflection'е?

Скажем последний продукт который я писал (сейчас я отдыхаю) просто пропитан аттрибутами. Там все на этом построено и эта декларотивность очень облегчает работу.

A>Трудно представить, что IDE имеет решающее значение.

Тем не мение... ReSharper очень сильно помогает писать, а главное читать код. ИМХО это довольно трудно переоценить.

A>Абсолютно другой язык, не имеющий ни к C# ни к C++ никакого отношения. Зачем ты его здесь привёл?

За тем что тут не очередной флейм C# vs C++. Тут вобщето идет разговор об упровляемых ОС и языках для них.
... << RSDN@Home 1.1.4 beta 6a rev. 436>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[41]: C+ vs C#
От: VladD2 Российская Империя www.nemerle.org
Дата: 10.02.06 18:17
Оценка:
Здравствуйте, eao197, Вы писали:

E>Здравствуйте, VladD2, Вы писали:


VD>>Начнешь понимать весь вред кулхакерских решений выжимающих пару тактов процессора иди делающих код чуть короче, но при этом нарушающих принципы безопасности и надежности.


E>Этот вред всегда был понятен.


Кому как. Тут недвано пример демонстрировался кем-то как он лихо "юзает" повторную инициализации объектов.

E> Для этого вовсе не нужно было переключаться на другие языки.


Очень, знаете ли, способствует.

E>И вообще, складывается впечатление, что ты поносишь C++ из-за своего печального опыта программирования на C++


Кто тебе сказал о том, что у меня был какой-то печальный опыт? Просто у меня был разный опыт и я делаю осознный выбор. У тебя же опыт был однобокий и ты тем неменее пыташся годать о моем опыте.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[42]: C+ vs C#
От: alexeiz  
Дата: 11.02.06 09:13
Оценка:
Здравствуйте, Дарней, Вы писали:

Д>Здравствуйте, eao197, Вы писали:


E>>Но, видишь ли, есть программисты, у которых подобного печального опыта нет. Вероятно, alexeiz как раз пример. И я так же.


Д>Наверно, эти программисты просто никогда не работали над большими проектами на плюсах. В команде от десяти человек и больше, объемом от n*10 человеко-лет.

Д>Или я неправильно угадал?

Не угадал.
Re[42]: C+ vs C#
От: Cyberax Марс  
Дата: 11.02.06 10:13
Оценка:
VladD2 wrote:
> VD>>Начнешь понимать весь вред кулхакерских решений выжимающих пару
> тактов процессора иди делающих код чуть короче, но при этом нарушающих
> принципы безопасности и надежности.
> E>Этот вред всегда был понятен.
> Кому как. Тут недвано пример демонстрировался кем-то как он лихо "юзает"
> повторную инициализации объектов.
И что? Замечательный трюк, позволяющий сэкономить ресурсы. У меня
используется в моей библиотеке контейнеров, которая тщательно
протестирована.

Для обычных объектов такой трюк почти никогда не нужен.

> E> Для этого вовсе не нужно было переключаться на другие языки.

> Очень, знаете ли, способствует.
Например, я сейчас пишу на Java и Python. Тем не менее С++ мне все равно
очень нравится.
Posted via RSDN NNTP Server 2.0
Sapienti sat!
Re[44]: C+ vs C#
От: alexeiz  
Дата: 11.02.06 10:32
Оценка:
Здравствуйте, Дарней, Вы писали:

Д>Здравствуйте, alexeiz, Вы писали:


A>>Не угадал.


Д>Значит, ты еще не дозрел


Ну, ёлки палки!
Re[46]: C+ vs C#
От: alexeiz  
Дата: 11.02.06 11:15
Оценка:
Здравствуйте, Дарней, Вы писали:

Д>Здравствуйте, alexeiz, Вы писали:


A>>Ну, ёлки палки!


Д>я раньше тоже думал в точности, как ты


Т.е. как конкретно? Ты ещё не выразил своего мнения. Милости просим.
Re[49]: C+ vs C#
От: WolfHound  
Дата: 11.02.06 14:31
Оценка:
Здравствуйте, Cyberax, Вы писали:

C>Нет, просто C# и прочие языки еще не доросли до тех задач, которые С++ хорошо решает.

1)Ядро ОС
2)Драйверы
3)Жесткое реальное время
Я ничего не забыл?
Причем пункты 1 и 2 через некоторое время станут не актульны см сингулярити... С пунктом 3 пока не все ясно но думаю что и там тоже чтонибудь придумают...
... << RSDN@Home 1.1.4 beta 6a rev. 436>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[49]: C+ vs C#
От: Дарней Россия  
Дата: 11.02.06 14:31
Оценка:
Здравствуйте, Cyberax, Вы писали:

C>Нет, просто C# и прочие языки еще не доросли до тех задач, которые С++

C>хорошо решает.

каких?
... << RSDN@Home 1.1.4 stable rev. 510>>
Всех излечит, исцелит
добрый Ctrl+Alt+Delete
Re[52]: C+ vs C#
От: Cyberax Марс  
Дата: 11.02.06 15:56
Оценка:
Дарней wrote:
> C>3. Встраиваемые приложения (Memory is at premium).
> пиши уж тогда точнее — проги для микроконтроллеров. Потому что для
> всяких PPC на .NET уже пишут без проблем.
Пишут. Но не без проблем — там памяти мало и что-то серьезнее
"Ресторанного меню" или "Карты метрополитена" написать сложно.

> C>4. Приложения для систем без .NET Framework.

> ну тогда конечно хрен поспоришь
> а ты сможешь написать прогу на С++ для системы, в которой нет
> компилятора С++?
Элементарно. Делаю это каждый день.

Называется "кросс-компиляция".

> C>6. Кросс-платформенные приложения (не надо про Mono).

> а почему это вдруг не надо? Чтобы не разрушать твою стройную систему
> доказательств?
Потому как реально с Mono одни проблемы. Например, Windows Forms глючит
жутко и надо использовать что-то типа GTK.NET. А это мегабайты
дополнительного мусора и т.п.
Posted via RSDN NNTP Server 2.0
Sapienti sat!
Re[53]: C+ vs C#
От: Дарней Россия  
Дата: 11.02.06 16:05
Оценка:
Здравствуйте, Cyberax, Вы писали:

C>Пишут. Но не без проблем — там памяти мало и что-то серьезнее

C>"Ресторанного меню" или "Карты метрополитена" написать сложно.

а ты собрался там сервер приложений запускать?

C>Элементарно. Делаю это каждый день.

C>Называется "кросс-компиляция".

Вообще никакого компилятора нет. И кросс-компилятора тоже нет. Ну как?
А прогу для .NET запустить без фреймворка все-таки можно. Потому что есть специальные линкеры и прочие хитрые штуки наподобие Grasshopper.

C>Потому как реально с Mono одни проблемы. Например, Windows Forms глючит

C>жутко и надо использовать что-то типа GTK.NET. А это мегабайты
C>дополнительного мусора и т.п.

А что, в С++ твоя прога на святом духе будет работать? Все равно будешь использовать тот же самый GTK или аналог.
... << RSDN@Home 1.1.4 stable rev. 510>>
Всех излечит, исцелит
добрый Ctrl+Alt+Delete
Re[41]: C+ vs C#
От: VladD2 Российская Империя www.nemerle.org
Дата: 11.02.06 16:06
Оценка:
Здравствуйте, eao197, Вы писали:

E>И вообще, складывается впечатление, что ты поносишь C++ из-за своего печального опыта программирования на C++, который, видимо, изобиловал подобными кулхакерскими решениями. Но, видишь ли, есть программисты, у которых подобного печального опыта нет. Вероятно, alexeiz как раз пример. И я так же.


Подтверждение моих слов не замедлило себя ждать: Re[40]: Еще раз об управляемых ОС
Автор: eao197
Дата: 10.02.06
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[49]: C+ vs C#
От: VladD2 Российская Империя www.nemerle.org
Дата: 11.02.06 16:06
Оценка:
Здравствуйте, Cyberax, Вы писали:

C>Нет, просто C# и прочие языки еще не доросли до тех задач, которые С++

C>хорошо решает.

После таких слов нужно не забывать вензиль с каменным топором ставить.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[50]: C+ vs C#
От: VladD2 Российская Империя www.nemerle.org
Дата: 11.02.06 16:06
Оценка:
Здравствуйте, WolfHound, Вы писали:

WH>С пунктом 3 пока не все ясно но думаю что и там тоже чтонибудь придумают...


Вооще-то с п. 3 тоже все ясно. Единственное что вносит недетерминизм в управляемые программы — это GC. О том что уже есть GC реального времяни вроде бы уже все знают. Так что достаточно подключить такой GC к управляемой середе и на ней без проблем можно будет писать программы реального времени. Собственно ядро Сингулярити как раз и пользуется таким. 100 микросекунд насколько я знаю как раз отвечает условиях систем жесткого реальным временим.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[55]: C+ vs C#
От: Дарней Россия  
Дата: 11.02.06 16:25
Оценка:
Здравствуйте, Cyberax, Вы писали:

C>Да http://www.elewise.ru/products/others/index.html


C>Продукт еще не завершен, но уже вполне шевелится на PPC.


не вижу никаких принципиальных проблем, которые мешают реализовать это под .NET CF. у нас прога и посложнее была.

C>А вот платформы без .NET _Framework_ — это все не-Windows системы.


ну всё, началась сказка про белого бычка.

C>Портировать GCC на новую платформу — задача на месяц (если платформа

C>вообще способна поднять C/С++).

написать полноценный кодогенератор под другой процессор за месяц? Не верю.

C>Ага, конечно.


против таких аргументов конечно не попрешь

C>Я могу использовать wxWidgets и получить нативные виджеты, например.

C>Оверхед минимален.

ну напиши под них обертку на C++/CLI. Или религиозные убеждения мешают?
... << RSDN@Home 1.1.4 stable rev. 510>>
Всех излечит, исцелит
добрый Ctrl+Alt+Delete
Re[55]: C+ vs C#
От: VladD2 Российская Империя www.nemerle.org
Дата: 11.02.06 18:14
Оценка:
Здравствуйте, Cyberax, Вы писали:

C>Портировать GCC на новую платформу — задача на месяц (если платформа

C>вообще способна поднять C/С++).

Зашибись. А в чем проблема за тот же месяц скомпилировать код Моно? Он же ведь просто С-код! А уж С куда более распространен.

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

Факт же в том, что для большинства задач системы вроде дотнета более чем подходят. И единственная причина по которой люди по старинке пишут на С/С++ — это косность мышление и недальновидность.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[50]: C+ vs C#
От: eao197 Беларусь http://eao197.blogspot.com
Дата: 11.02.06 18:26
Оценка:
Здравствуйте, WolfHound, Вы писали:

WH>1)Ядро ОС

WH>2)Драйверы
WH>3)Жесткое реальное время
WH>Я ничего не забыл?

* Вычислительные задачи. Прогнозирование погоды, моделирование аэродинамики, термодинамики, имитационное моделирование, компьютерная графика...
* Обработка больших объемов данных (статистика, к примеру). Насколько я знаю, ПО для обработки данных для самой большой в мире базы данных BaBar разрабатывается на C++.
* Системное ПО (ядра СУБД, к примеру).

Может еще чего забыл.


SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Re[42]: C+ vs C#
От: eao197 Беларусь http://eao197.blogspot.com
Дата: 11.02.06 18:27
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Подтверждение моих слов не замедлило себя ждать: Re[40]: Еще раз об управляемых ОС
Автор: eao197
Дата: 10.02.06


Влад, ты дал ссылку на мое сообщение, на которое сам и отвечаешь.


SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Re[57]: C+ vs C#
От: Cyberax Марс  
Дата: 11.02.06 18:45
Оценка:
VladD2 wrote:
> Система интеграции с платформно-зависимым МС Аутлуком пишется на С++
> чтобы выпячивать кросплатформность.
Все просто — хранилище написано на кросс-платформенном С++. Интерфейсом
с Актглюком занимается сравнительно небольшая прослойка.

> А вот этот перл мне больше всего понравился:

> Использование C++ *гарантирует корректную* и экономную *работу с
> памятью*, а также высокую скорость работы.
Нет. Просто в .NET _намного_ сложнее экономно работать с памятью.
Posted via RSDN NNTP Server 2.0
Sapienti sat!
Re[53]: C+ vs C#
От: VladGalkin Украина  
Дата: 11.02.06 18:52
Оценка:
Здравствуйте, Cyberax, Вы писали:


C>Потому как реально с Mono одни проблемы. Например, Windows Forms глючит

C>жутко и надо использовать что-то типа GTK.NET. А это мегабайты
C>дополнительного мусора и т.п.
А WinForms, вы хотите сказать, гораздо меньше чем Gtk# места в памяти занимает?
Крутил я Gtk#, весьма понравилось, даже немного больше WinForms (layout и всё такое), а для мусора — "сборщик мусора" или вы о каком-то другом мусоре? Поподробнее, пожалуйста, про "мегабайты дополнительного мусора".
... << RSDN@Home 1.1.4 stable rev. 510>>
ДЭ!
Re[54]: C+ vs C#
От: Cyberax Марс  
Дата: 11.02.06 18:56
Оценка:
VladGalkin wrote:
> C>Потому как реально с Mono одни проблемы. Например, Windows Forms глючит
> C>жутко и надо использовать что-то типа GTK.NET. А это мегабайты
> C>дополнительного мусора и т.п.
> А WinForms, вы хотите сказать, гораздо меньше чем Gtk# места в памяти
> занимает?
Меньше, по крайней мере на Windows, так как являются обертками на Win32.

> Крутил я Gtk#, весьма понравилось, даже немного больше WinForms (layout

> и всё такое), а для мусора — "сборщик мусора" или вы о каком-то другом
> мусоре? Поподробнее, пожалуйста, про "мегабайты дополнительного мусора".
Просто о мусоре — все DLLки для Gtk# занимают что-то около 8 мегабайт. А
это достаточно много.
Posted via RSDN NNTP Server 2.0
Sapienti sat!
Re[55]: C+ vs C#
От: VladGalkin Украина  
Дата: 11.02.06 19:22
Оценка:
Здравствуйте, Cyberax, Вы писали:

C>Меньше, по крайней мере на Windows, так как являются обертками на Win32.

Вот именно, т.е. требуют загрузки еще целого ряда DLL (не только kernel32.dll и user32.dll).

C>Просто о мусоре — все DLLки для Gtk# занимают что-то около 8 мегабайт. А

C>это достаточно много.
Ключевое слово: ВСЕ, а там их немало, всё тянуть не надо.
... << RSDN@Home 1.1.4 stable rev. 510>>
ДЭ!
Re[52]: C+ vs C#
От: Cyberax Марс  
Дата: 11.02.06 19:29
Оценка:
WolfHound wrote:
> E>* Системное ПО (ядра СУБД, к примеру).
> В чем проблема?
Да ни в чем, в общем-то. Уже 5 лет прошло, а софта на С# не так уж и
много для следующей революционной технологии.
Posted via RSDN NNTP Server 2.0
Sapienti sat!
Re[56]: C+ vs C#
От: Cyberax Марс  
Дата: 11.02.06 19:30
Оценка:
VladGalkin wrote:
> C>Меньше, по крайней мере на Windows, так как являются обертками на Win32.
> Вот именно, т.е. требуют загрузки еще целого ряда DLL (не только
> kernel32.dll и user32.dll).
Я слабо себе представляю ситуацию, когда библиотека common controls не
будет уже загружена в память

> C>Просто о мусоре — все DLLки для Gtk# занимают что-то около 8 мегабайт. А

> C>это достаточно много.
> Ключевое слово: ВСЕ, а там их немало, всё тянуть не надо.
У меня получалось что-то около 6Мб при выкидывании лишнего. Все равно много.
Posted via RSDN NNTP Server 2.0
Sapienti sat!
Re[53]: C+ vs C#
От: WolfHound  
Дата: 11.02.06 19:34
Оценка:
Здравствуйте, Cyberax, Вы писали:

>> E>* Системное ПО (ядра СУБД, к примеру).

>> В чем проблема?
C>Да ни в чем, в общем-то. Уже 5 лет прошло, а софта на С# не так уж и много для следующей революционной технологии.
Надеюсь не надо объяснять что написать нормальный движок СУБД это задача не на один день и даже не на один год. А переписывать то что работает никто не станет.
... << RSDN@Home 1.1.4 beta 6a rev. 436>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[57]: Еще раз об управляемых ОС
От: VladD2 Российская Империя www.nemerle.org
Дата: 11.02.06 19:46
Оценка:
Здравствуйте, Cyberax, Вы писали:

C>А JIT кто портировать будет? В режиме интерпретатора использовать .NET

C>невозможно.

А чем отличается портирование джита от портирования компилятора? Тут же козыряют тем, что видите ли GCC за месяц куда хочешь можно поритровать. Может и можно, но не каждому и уж точно так же можно и Моно с Ротором портировать куда хочешь. Только Ротон на С++ написан, а Моно на С и C#. Так что это несколько проще.

>> Факт же в том, что для большинства задач системы вроде дотнета более чем

>> подходят. И единственная причина по которой люди по старинке пишут на
>> С/С++ — это косность мышление и недальновидность.
C>Ага. А вы не знаете, что C# — это прошлый век. Parrot+Perl6 — рулят.

Тебе хочется об этом поговорить?
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[58]: Еще раз об управляемых ОС
От: VladD2 Российская Империя www.nemerle.org
Дата: 11.02.06 19:46
Оценка:
Здравствуйте, Cyberax, Вы писали:

C>Все просто — хранилище написано на кросс-платформенном С++. Интерфейсом

C>с Актглюком занимается сравнительно небольшая прослойка.

И что эта система кода нибудь понадобится на Линукс? Нехре на вам эта кросплатформность?

>> А вот этот перл мне больше всего понравился:

>> Использование C++ *гарантирует корректную* и экономную *работу с
>> памятью*, а также высокую скорость работы.
C>Нет. Просто в .NET _намного_ сложнее экономно работать с памятью.

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

Учитывая, что ты тут так сильно акцентируешь то, что продукт серверный, то вообще смешно слышать о перерасходе памяти и том, что С++ "гарантирует корректную работу с памтью". Один ваш Фаерберд сожрет памяти не соизмеримо больше чем дотнетное приложение. И будет прав, так как для это единственно разумное решение для ускорения работы с большим объемом данных.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[53]: Еще раз об управляемых ОС
От: VladD2 Российская Империя www.nemerle.org
Дата: 11.02.06 19:46
Оценка:
Здравствуйте, Cyberax, Вы писали:

C>WolfHound wrote:

>> E>* Системное ПО (ядра СУБД, к примеру).
>> В чем проблема?
C>Да ни в чем, в общем-то. Уже 5 лет прошло, а софта на С# не так уж и
C>много для следующей революционной технологии.

Его не много у тех кто намеренно его избегат. У нас на сервере половина процессов Процесс Эксплорером желтеньким подсвечивается (т.е. содержат упраляемый код). У меня на машине та же фигня. Под Вистой прямо в поставке ОС идет куча утилит и приложений написанных на дотенете. Например следующая версия MMC полностью менедед приложение.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[54]: Еще раз об управляемых ОС
От: Cyberax Марс  
Дата: 11.02.06 20:05
Оценка:
VladD2 wrote:
> C>Да ни в чем, в общем-то. Уже 5 лет прошло, а софта на С# не так уж и
> C>много для следующей революционной технологии.
> Его не много у тех кто намеренно его избегат. У нас на сервере половина
> процессов Процесс Эксплорером желтеньким подсвечивается (т.е. содержат
> упраляемый код).
У меня на сервере вообще сплошной qmail и Java. И что?

> У меня на машине та же фигня. Под Вистой прямо в

> поставке ОС идет куча утилит и приложений написанных на дотенете.
> Например следующая версия MMC полностью менедед приложение.
Когда у нас релиз Windows Vista?
Posted via RSDN NNTP Server 2.0
Sapienti sat!
Re[54]: C+ vs C#
От: VladD2 Российская Империя www.nemerle.org
Дата: 11.02.06 20:07
Оценка:
Здравствуйте, WolfHound, Вы писали:

WH>Надеюсь не надо объяснять что написать нормальный движок СУБД это задача не на один день и даже не на один год. А переписывать то что работает никто не станет.


СУБД на Яве, кстати, есть. Думаю, что их порты на дотнет тоже существуют. Другое дело, что тут мы сразу же услышим аргументы, что их у них имена не DB2, Oracle или SqlServer.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[55]: C+ vs C#
От: VladD2 Российская Империя www.nemerle.org
Дата: 11.02.06 20:07
Оценка:
Здравствуйте, Cyberax, Вы писали:

C>Этих лет уже целых 5 прошло. А результата пока маловато. Вон и в Windows Vista которая должна была стать локомотивом .NET после запуска нет работающих .NET-приложений.


Заходим сюда Microsoft Management Console 3.0 и читаем список зависимостей... находим в нем Microsoft .NET Framework 2.0
и долго удивляемся.

Потом стоит задуматься над количеством не соотвествующих действительности высказываний которое ты тут наморозил.

C>За это время, например, люди полностью успели переписать Firebird с С на С++.


Остается узнать зачем.

C> Так что портирование базы на C# должно быть вообще беспроблемным.


Зачем?

ЗЫ

Вот, почита о СУБД созданной на Яве http://www.roselladb.com/dbms.htm
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[58]: Еще раз об управляемых ОС
От: Cyberax Марс  
Дата: 11.02.06 20:08
Оценка:
VladD2 wrote:
> C>А JIT кто портировать будет? В режиме интерпретатора использовать .NET
> C>невозможно.
> А чем отличается портирование джита от портирования компилятора? Тут же
> козыряют тем, что видите ли GCC за месяц куда хочешь можно поритровать.
В теории, в Mono могли бы сделать обобщенную модель процессора, как в
GCC. Но не сделали (и пока не собираются), а значит при портировании
сейчас надо переписывать руками значительную часть кодогенератора.

> Может и можно, но не каждому и уж точно так же можно и Моно с Ротором

> портировать куда хочешь. Только Ротон на С++ написан, а Моно на С и C#.
> Так что это несколько проще.
Ротор запрещен для коммерческого использования.

> C>Ага. А вы не знаете, что C# — это прошлый век. Parrot+Perl6 — рулят.

> Тебе хочется об этом поговорить?
Нет. Это ведь каждый знает — в С# ведь нет таких необходимейших вещей
как мультиметоды!
Posted via RSDN NNTP Server 2.0
Sapienti sat!
Re[56]: C+ vs C#
От: Cyberax Марс  
Дата: 11.02.06 20:11
Оценка:
WolfHound wrote:
> C>За это время, например, люди полностью успели переписать Firebird с С
> на С++. Так что портирование базы на C# должно быть вообще беспроблемным.
> Для того чтобы кто-то портировал базу данных на C# должны быть какието
> причины. Пока таких причин вобщем то нет. Однако когда серьезно
> возьмутся за создание управляемой ОС база данных будет одним из первых
> приложений которое полностью напишут на управляемом языке.
По слухам MS почти полностью переписал SQL Server (написаный на С). Но
почему на C# не переписали ядро? Или MS не верит своей же рекламе?
Posted via RSDN NNTP Server 2.0
Sapienti sat!
Re[55]: C+ vs C#
От: Cyberax Марс  
Дата: 11.02.06 20:16
Оценка:
VladD2 wrote:
> WH>Надеюсь не надо объяснять что написать нормальный движок СУБД это
> задача не на один день и даже не на один год. А переписывать то что
> работает никто не станет.
> СУБД на Яве, кстати, есть. Думаю, что их порты на дотнет тоже
> существуют. Другое дело, что тут мы сразу же услышим аргументы, что их у
> них имена не DB2, Oracle или SqlServer.
Существуют, но позиционируются как встраиваемые. Достаточно серьезную
СУБД на Java я знаю только одну.
Posted via RSDN NNTP Server 2.0
Sapienti sat!
Re[56]: C+ vs C#
От: Cyberax Марс  
Дата: 11.02.06 20:23
Оценка:
VladD2 wrote:
> Заходим сюда Microsoft Management Console 3.0
> <http://technet2.microsoft.com/WindowsServer/en/Library/f9d70026-ae8b-4969-8755-1ea1edc4e38e1033.mspx&gt;
> и читаем список зависимостей... находим в нем Microsoft .NET Framework 2.0
> и долго удивляемся.
Ага, для Server 2003.

Я же прошу — десктопные приложения для конечного пользования, а
не серверные. То что .NET/Java прекрасно подходит для серверов я
прекрасно знаю.

Я и не утверждал, что С++ незаменим на сервере. Я говорил про десктоп.
Это вы флейм опять не в ту степь завели.

> C>За это время, например, люди полностью успели переписать Firebird с С

> на С++.
> Остается узнать зачем.
Просто чтобы сделать более гибкую архитектуру.

> C> Так что портирование базы на C# должно быть вообще беспроблемным.

> Зачем?
Ну как зачем?

Ведь будущее за managed-технологиями — рано или поздно все будет
managed, а уже сегодняшнее оборудование спокойно потянет 100%
управляемую среду. Так почему тогда выпускать еще одну итерацию старых,
небезопасных, ненадежных unmanaged-систем??
Posted via RSDN NNTP Server 2.0
Sapienti sat!
Re[55]: Еще раз об управляемых ОС
От: VladD2 Российская Империя www.nemerle.org
Дата: 11.02.06 21:11
Оценка:
Здравствуйте, Cyberax, Вы писали:

>> Его не много у тех кто намеренно его избегат. У нас на сервере половина

>> процессов Процесс Эксплорером желтеньким подсвечивается (т.е. содержат
>> упраляемый код).
C>У меня на сервере вообще сплошной qmail и Java. И что?

И то. Смотри выделенное. К тому же Ява есть. Сртранно для такого фаната С++.

>> У меня на машине та же фигня. Под Вистой прямо в

>> поставке ОС идет куча утилит и приложений написанных на дотенете.
>> Например следующая версия MMC полностью менедед приложение.
C>Когда у нас релиз Windows Vista?

Какая разница?
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[59]: Еще раз об управляемых ОС
От: VladD2 Российская Империя www.nemerle.org
Дата: 11.02.06 21:31
Оценка:
Здравствуйте, Cyberax, Вы писали:

C>В теории, в Mono могли бы сделать обобщенную модель процессора, как в

C>GCC. Но не сделали (и пока не собираются), а значит при портировании
C>сейчас надо переписывать руками значительную часть кодогенератора.

The final step: porting the JIT
At this point you'd need to have a more complete code generation header file and you can start writing the machine description file for the monoburg system. This code (jit/tesjit.c) will require some machine specific tweaks, but hopefully all you have to do is create the grammar that emit assembly code from the IR tree. Work is at the early stages also for x86 on this stuff as we are still testing various solutions: you'd want to read about burg-like code-generator generators (the LCC book is a good starting point).


>> C>Ага. А вы не знаете, что C# — это прошлый век. Parrot+Perl6 — рулят.

>> Тебе хочется об этом поговорить?
C>Нет. Это ведь каждый знает — в С# ведь нет таких необходимейших вещей
C>как мультиметоды!

Хм. А в С++ они значит уже есть? Если мультиметоды это критерий отбора, то тебе пора завязывать с плюсами и переходить на CLOS в котором они були с самого начала.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[60]: Еще раз об управляемых ОС
От: VladD2 Российская Империя www.nemerle.org
Дата: 11.02.06 21:31
Оценка:
Здравствуйте, VladGalkin, Вы писали:

VG>Сейчас Вы прослушаете обзор возможностей Nemerle от Влада.


В Nemerle вроде бы штатно нет мультиметодов.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[57]: C+ vs C#
От: VladD2 Российская Империя www.nemerle.org
Дата: 11.02.06 21:31
Оценка:
Здравствуйте, Cyberax, Вы писали:

C>Я же прошу — десктопные приложения для конечного пользования, а

C>не серверные. То что .NET/Java прекрасно подходит для серверов я
C>прекрасно знаю.

А MMC это по-твоему какое?

>> Остается узнать зачем.

C>Просто чтобы сделать более гибкую архитектуру.

Да? И как?

C>Ведь будущее за managed-технологиями — рано или поздно все будет

C>managed, а уже сегодняшнее оборудование спокойно потянет 100%
C>управляемую среду. Так почему тогда выпускать еще одну итерацию старых,
C>небезопасных, ненадежных unmanaged-систем??

Ты когда нибудь писал приложения обемом работ по 10 человеколет и более? Вот приличная БД именно такое прилоежние. И никто ради забавы такие проекты не начинает. И уж темболее никто не будет делать такое приложение чтобы доказать неверующим фомам, что это принципиально возможно. Куда проще назвать хоть один аргумент в пользу того почему это невозможно сделать.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[56]: C+ vs C#
От: CreatorCray  
Дата: 11.02.06 22:05
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Заходим сюда Microsoft Management Console 3.0 и читаем список зависимостей... находим в нем Microsoft .NET Framework 2.0

VD> и долго удивляемся.

ага. потому все что про Microsoft .NET Framework 2 сказано только:

Microsoft .NET Framework
New features for .NET Framework 2.0 are available in Windows Server 2003 R2.

Microsoft .NET Framework 2.0
The .NET Framework version 2.0 is the latest version of the .NET Framework, a Windows component for building, deploying and running applications. The .NET Framework 2.0 is focused on delivering developer productivity, operational excellence, and the ability to preserve and enhance existing software investments. Core enhancements include support for 64-bit processors for increased performance and scalability, transactional enhancements and optimizations, productivity improvements in ASP.NET, and support for WS-I BP 1.1 and SOAP 1.2 with Web Services.

For a comprehensive list of the new .NET Framework 2.0 features, see the Microsoft Web site (http://go.microsoft.com/fwlink/?LinkId=50322).

Back to Top

в разделе "This topic describes the following new components that you can install with Windows Server 2003 R2".

Т.е. вместе с R2 МОЖНО поставить .NET Framework 2.0. А можно и не поставить... И все будет работать...

спрашивается: а где зависимости собстна? А не написано там про зависимость от Microsoft .NET Framework 2
Более того: там нет слова ".NET" нигде кроме этого кусочка и содержания.

Господин соврамши?
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[50]: C+ vs C#
От: eao197 Беларусь http://eao197.blogspot.com
Дата: 11.02.06 22:07
Оценка:
Здравствуйте, alexeiz, Вы писали:

A>Я бы вот как раз поспорил с тем, что C++ — не язык высокого уровня. Web приложения на нем писать не легко, только потому, что нет нужных библиотек. Ну и, конечно, нельзя сравнивать со скриптовыми языками, т.к. они в отдельной лиге. Но вот сравнить с Java впольне можно. Попробуй доказать, что на Java можно программировать на таком высоком уровне, что на C++ недоступен. Тогда он будет более высокого уровня. Иначе нет.


Доказывать не буду, выскажу просто свое имхо.
Java (Ruby, Smalltalk) является более высокоуровневым из-за того, что на них сложно писать низкоуровневый код. Даже очень сложно. А вот в C++ очень легко скатиться с высокого уровня на очень низкий.

Это не баг, это фича.
Но тем не менее для меня это повод считать C++ не очень высокоуровневым языком. Хотя это одна из черт, которые мне в C++ нравятся. И еще я не говорил, что высокоуровневость -- это всегда хорошо.


SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Re[57]: C+ vs C#
От: VladD2 Российская Империя www.nemerle.org
Дата: 11.02.06 23:01
Оценка:
Здравствуйте, CreatorCray, Вы писали:

CC>спрашивается: а где зависимости собстна? А не написано там про зависимость от Microsoft .NET Framework 2

CC>Более того: там нет слова ".NET" нигде кроме этого кусочка и содержания.

Читай внимательно http://msdn.microsoft.com/library/en-us/managedMMC/html/7d607c5f-94e9-4d4f-9e4a-cd35cdbee7eb.asp

В Висте куча snap-in-ов написаны на управляемых языках.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[53]: C+ vs C#
От: VladD2 Российская Империя www.nemerle.org
Дата: 11.02.06 23:01
Оценка:
Здравствуйте, eao197, Вы писали:

E>Из собственного опыта. В радиолокации используются высчислительные задачи, где требуется перемножать матрицы комплексных чисел большой размерности. Очень ресурсоемкая, надо сказать операция. Да еще не одна и в рилтайме.


Видимо по этому их перемножают на допотопной, чуть ли не ламповой, технике. Да?
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[61]: Еще раз об управляемых ОС
От: VladGalkin Украина  
Дата: 11.02.06 23:42
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>В Nemerle вроде бы штатно нет мультиметодов.

Ндык есть макросы
... << RSDN@Home 1.1.4 stable rev. 510>>
ДЭ!
Re: C+ vs C#
От: Геннадий Васильев Россия http://www.livejournal.com/users/gesha_x
Дата: 12.02.06 01:39
Оценка:
Здравствуйте, alexeiz, Вы писали:

>>>> C# писать проще чем на С++?

[...]
A>Основная ошибка людей программирующих на C++ — это автоматический выбор низкоуровневых абстракций. Так или иначе такой выбор превращает язык в подобие C.

Угу. Притом эти же люди ругают C как "галимый" и "вчерашний день".
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Re[51]: C+ vs C#
От: alexeiz  
Дата: 12.02.06 02:13
Оценка:
Здравствуйте, eao197, Вы писали:

E>Здравствуйте, alexeiz, Вы писали:


A>>Я бы вот как раз поспорил с тем, что C++ — не язык высокого уровня. Web приложения на нем писать не легко, только потому, что нет нужных библиотек. Ну и, конечно, нельзя сравнивать со скриптовыми языками, т.к. они в отдельной лиге. Но вот сравнить с Java впольне можно. Попробуй доказать, что на Java можно программировать на таком высоком уровне, что на C++ недоступен. Тогда он будет более высокого уровня. Иначе нет.


E>Доказывать не буду, выскажу просто свое имхо.

E>Java (Ruby, Smalltalk) является более высокоуровневым из-за того, что на них сложно писать низкоуровневый код. Даже очень сложно. А вот в C++ очень легко скатиться с высокого уровня на очень низкий.

Abusus non tollit usum.

Т.е. ты считаешь язык, в котором есть и высокоуровневые возможности и низкоуровневые, низкоуровневым? Я бы не сказал, что легко скатиться. Да, элементарно оставаться на высоком уровне абстракции, если мыслишь в них. Вот на выходных написал программу, чтобы sudoku решать. В 800 строках ни единого указателя даже нет (кроме char const * exception::what()).

E>Это не баг, это фича.

E>Но тем не менее для меня это повод считать C++ не очень высокоуровневым языком. Хотя это одна из черт, которые мне в C++ нравятся. И еще я не говорил, что высокоуровневость -- это всегда хорошо.
Re[57]: C+ vs C#
От: alexeiz  
Дата: 12.02.06 02:28
Оценка:
Здравствуйте, Cyberax, Вы писали:

C>Ага. А вы не знаете, что C# — это прошлый век. Parrot+Perl6 — рулят.



Видели. Знаем. Ждём с нетерпением.
Re[52]: C+ vs C#
От: VladD2 Российская Империя www.nemerle.org
Дата: 12.02.06 04:10
Оценка:
Здравствуйте, alexeiz, Вы писали:

Последнее предупреждение за оверквотинг.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[48]: C+ vs C#
От: alexeiz  
Дата: 12.02.06 07:45
Оценка:
Здравствуйте, Дарней, Вы писали:

Д>Здравствуйте, alexeiz, Вы писали:


A>>Т.е. как конкретно? Ты ещё не выразил своего мнения. Милости просим.


Д>я тоже когда-то думал, что С++ — это отличный язык высокого уровня, на на котором я решаю свои задачи легко и просто.

Д>вот только потом я понял, что ЭТО — совсем не легко и не просто.

Считай, что я оценил твоё ударение на ЭТО. Не понятно только, в каком смысле совсем не легко и не просто.
Re[56]: C+ vs C#
От: Геннадий Васильев Россия http://www.livejournal.com/users/gesha_x
Дата: 12.02.06 12:34
Оценка:
Здравствуйте, VladGalkin, Вы писали:

VG>Здравствуйте, Геннадий Васильев, Вы писали:


ГВ>>А что, Boost создан и поддерживается исключительно выходцами из СССР? Хотя вот, Алекс Степанов (один из создателей STL) вроде как имеет некое отношение к СССР.

VG>Читайте повнимательнее, пожалуйста:
VG>

VG>росту касты "плюсеров", занимающихся


Ну извини. Показалось, что ты зачислил в разработчики Boost исключительно выходцев из СССР.

ГВ>>Насколько я помню, это он говорил в контексте рассуждения о том, что не нужно пытаться превращать программы на C++ в подобие программ на Smalltalk, а напротив, нужно извлекать выгоды из свойств, присущих C++. То есть, речь шла не о кодировании идиом, а о подходе в целом.

VG>В моем источнике это фигурирует как цитата из рассуждений о кодировании идиом из динамических языков.

Возможно, я ошибаюсь. Посмотрю в D&E. Если можно, кинь ссылку на свой источник.

ГВ>>Это отнюдь не "советский", а "стадный" образ мышления. Не стоит путать. И он в не меньшей, а то и в большей степени распространён сейчас (Все ДОЛЖНЫ писать под .Net, потому что все УЖЕ перешли на .Net). На самом деле, на территории бывшего СССР Pascal пользовался не меньшей популярностью, чем C++. Скорее даже большей.

VG>Хм, вот про то, что все должны писать под .NET не утверждалось, а вот о том что: С++ это очень круто и он рулит во многих приложениях, в отличии от всякого другого, в данной ветке уже не раз писалось.

1. Написаное мной в скобках — сугубо иллюстрация к сильно распространённому у нас приёму полемики, называемому апелляцией к коллективу.
2. По поводу выделенного: чувствуешь противоречие? Действительно, C++ может быть применён практически в любых приложениях. И также во многих приложениях он "рулит". И действительно, призывов писать всё без исключения на .Net вроде бы не было. В чём противоречие?

VG>Кстати, почему господа молчат по поводу самолёта
Автор: VladGalkin
Дата: 12.02.06
?


А что нужно по этому поводу сказать? Ну выбрали и выбрали. Значит, db4o удовлетворила предъявляемым требованиям. Очень хорошо. А теперь вопросы:
— Какой характер носит разработка, не является ли она экспериментальной?
— В какой конкретно подсистеме самолёта будет использоваться db4o? Каковы требования к ней? Это ведь, может быть и модуль хранения сообщений от диспетчера.
— Так db4o/Java или db4o/.Net?
Сможешь на них ответить?
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Re[56]: Smalltalk
От: Геннадий Васильев Россия http://www.livejournal.com/users/gesha_x
Дата: 12.02.06 12:50
Оценка:
Здравствуйте, VladGalkin, Вы писали:

ГВ>>Насколько я помню, это он говорил в контексте рассуждения о том, что не нужно пытаться превращать программы на C++ в подобие программ на Smalltalk, а напротив, нужно извлекать выгоды из свойств, присущих C++. То есть, речь шла не о кодировании идиом, а о подходе в целом.

VG>В моем источнике это фигурирует как цитата из рассуждений о кодировании идиом из динамических языков.

Нашёл здесь, извини за длинную цитату:

Страх перед новизной, непригодный здесь опыт работы на других
языках, в других системах или областях приложения, бедные средства
проектирования — все это приводит к неоптимальному использованию С++.
Следует отметить три момента, когда разработчику не удается
извлечь выгоду из возможностей С++ и учесть ограничения языка:
[1] Игнорирование классов и составление проекта таким образом, что
программистам приходится ограничиваться только С.
[2] Игнорирование производных классов и виртуальных функций,
использование только подмножества абстрактных данных.
[3] Игнорирование статического контроля типов и составление проекта
таким образом, что программисты вынуждены применять динамические
проверки типов.

Обычно указанные моменты возникают у разработчиков, связанных с:
[1] C, или традиционной системой CASE или методами структурного
проектирования;
[2] Адой или методами проектирования с помощью абстракции данных;
[3] языками, близкими Smalltalk или Lisp.
В каждом случае следует решить: неправильно выбран язык
реализации (считая, что метод проектирования выбран верно), или
разработчику не удалось приспособиться и оценить язык (считая, что
язык реализации выбран верно).
Следует сказать, что нет ничего необычного или позорного в
таком расхождении. Просто это расхождение, которое приведет к
неоптимальному проекту, возложит дополнительную работу на
программистов, а в случае, когда структура понятий проекта
значительно беднее структуры языка С++, то и на самих разработчиков.
Отметим, что необязательно все программы должны
структурироваться опираясь на понятия классов и (или) иерархий классов,
и необязательно всякая программа должна использовать все средства,
предоставляемые С++. Как раз наоборот, для успеха проекта необходимо,
чтобы людям не навязывали использование языковых средств, с которыми
они только познакомились. Цель последующего изложения не в том,
чтобы навязать догматичное использование классов, иерархий и
строго типизированных интерфейсов, а в том, чтобы показать
возможности их использования всюду, где позволяет область
приложения, ограничения С++ и опыт исполнителей. В $$12.1.4 будут
рассмотрены подходы к различному использованию С++ в проекте
под заголовком "Проект-гибрид".

Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Re[57]: C+ vs C#
От: VladGalkin Украина  
Дата: 12.02.06 16:12
Оценка:
Здравствуйте, Геннадий Васильев, Вы писали:

ГВ>- Какой характер носит разработка, не является ли она экспериментальной?

Нет. Видно один я тут фанат авиации, что почитал об этом самолете :
Вот цитата из обзора P8-A:

The U.S. Navy plans to purchase 108 MMAs to replace its fleet of P-3 aircraft.

Эскпериментальную авиатехнику ВВС США практически не закупают, тем более не ставят её на вооружение. Она относится либо к NASA, либо к компании-производителю.
ГВ>- В какой конкретно подсистеме самолёта будет использоваться db4o? Каковы требования к ней? Это ведь, может быть и модуль хранения сообщений от диспетчера.
Хм, "модуль хранения сообщений от диспетчера входит в так называемый черный ящик", требования к которому оень высокие, но он реализуется обычно с помощью надежнейшей проволки.
здесь
ГВ>- Так db4o/Java или db4o/.Net?
Уж чего не знаю, так не знаю, пост про самолет относился к применению платформ типа Java и .NET вообще.
... << RSDN@Home 1.1.4 stable rev. 510>>
ДЭ!
Re[58]: C+ vs C#
От: VladGalkin Украина  
Дата: 12.02.06 19:07
Оценка:
Пардон, читать следует так:
"модуль хранения сообщений от диспетчера" входит в так называемый "черный ящик", требования к которому оень высокие, но он реализуется обычно с помощью надежнейшей проволки или же пленки.

Этот здесь линк вообще отношения не имеет, после редактирования остался.
ДЭ!
Re[57]: C+ vs C#
От: Дарней Россия  
Дата: 13.02.06 02:39
Оценка:
Здравствуйте, Cyberax, Вы писали:

C>А можно сделать так, чтобы потом этот код работал нормальной Windows и Unix?


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

C>А вы можете их перечислить?


http://mono-project.com/Supported_Platforms
только не надо мне заливать про крутизну кросс-платформенности С++, и о том насколько она кроссплатформеннее, чем у Моно.
я сам не один раз занимался портированием между платформами, и прекрасно представляю себе реальный объем работ. А не тот, который "в теории".

C>В GCC мне нужно описать модель процессора на специальном языке (md —

C>Machine Description), остальное сделает сам gcc (ну еще придется
C>написать несколько утилитных функций). Например, для m68k это файлик в
C>200Кб, а для pdp11 — в 50Кб.

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

>> ну напиши под них обертку на C++/CLI. Или религиозные убеждения мешают?

C>Ну да, легко и непринужденно за пару месяцев.

не нравится — используй другие тулкиты.


А вообще, к теме это всё не имеет отношения. Ты ведь не забыл, о чем изначально шел спор, правда?
... << RSDN@Home 1.1.4 stable rev. 510>>
Всех излечит, исцелит
добрый Ctrl+Alt+Delete
Re[60]: Еще раз об управляемых ОС
От: Дарней Россия  
Дата: 13.02.06 02:48
Оценка:
Здравствуйте, Cyberax, Вы писали:

C>Он серверно-клиентский. Практически один и тот же код работает как на

C>сервере, так и на клиентах (в том числе и на PPC).

меня терзают смутные сомнения, что это — разумный подход. К серверному и клиентскому коду обычно предъявляются совершенно разные требования, в том числе и по политике расхода памяти.
... << RSDN@Home 1.1.4 stable rev. 510>>
Всех излечит, исцелит
добрый Ctrl+Alt+Delete
Re[63]: Еще раз об управляемых ОС
От: Дарней Россия  
Дата: 13.02.06 03:32
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Боюсь, что это им может оказаться не позубам. Хотя вопрос сожный. Тут без серьезного анализа ничего толком сказать нельзя.


я видел статью с готовым кодом, в которой прикручиваются мультиметоды к Смоллтоку. Вероятно, в Немерле можно сделать по тому же принципу — макросы рулят . Жаль только, сейчас нет времени попробовать.
И еще, кстати говоря. У них уже есть минимально функциональный плагин для VS2005, а исходники не публиковали, т.к. были заморочки с лицензией. Но сейчас проблемы уже порешали и обещают скоро выложить исходники в публичный доступ.
... << RSDN@Home 1.1.4 stable rev. 510>>
Всех излечит, исцелит
добрый Ctrl+Alt+Delete
Re[53]: C+ vs C#
От: Дарней Россия  
Дата: 13.02.06 03:46
Оценка:
Здравствуйте, eao197, Вы писали:

E>Для меня очевидно, что для многих задач C++ менее пригоден, чем C# или Java. Что из многих областей managed языки C++ вытеснят совсем. Вероятно ты и Дарней как раз в таких областях и работаете, поэтому почувствовали разницу после перехода с C++ на C#. Вот и здорово. Но это одна сторона медали.


На самом деле, я намеренно искал себе работу в такой области. Потому что С++ я уже сыт по горло.
... << RSDN@Home 1.1.4 stable rev. 510>>
Всех излечит, исцелит
добрый Ctrl+Alt+Delete
Re[61]: Еще раз об управляемых ОС
От: Cyberax Марс  
Дата: 13.02.06 05:45
Оценка:
Дарней wrote:
> C>Он серверно-клиентский. Практически один и тот же код работает как на
> C>сервере, так и на клиентах (в том числе и на PPC).
> меня терзают смутные сомнения, что это — разумный подход. К серверному и
> клиентскому коду обычно предъявляются совершенно разные требования, в
> том числе и по политике расхода памяти.
Нормально все. На самом деле, Outlook хранит письма в неком подобии
реляционной базы, над которой можно делать запросы, создавать виды и т.п.

То есть "сервер" базы данных все равно нужно писать, так что вполне
логично сделать еще один шаг и сделать этот сервер независимым от того
работает ли он на клиенте или на выделенном компе.
Posted via RSDN NNTP Server 2.0
Sapienti sat!
Re[58]: C+ vs C#
От: Cyberax Марс  
Дата: 13.02.06 05:56
Оценка:
Дарней wrote:
> C>А вы можете их перечислить?
> http://mono-project.com/Supported_Platforms

HP-PA Interpreter HP-UX

Одна из важнейших платформ, кстати. А есть еще и достаточно
распространенный m68k.

И вообще, Mono использует Boehm GC, что часто дает слишком большой oверхед.

> только не надо мне заливать про крутизну кросс-платформенности С++, и о

> том насколько она кроссплатформеннее, чем у Моно.
> я сам не один раз занимался портированием между платформами, и прекрасно
> представляю себе реальный объем работ. А не тот, который "в теории".
Просто надо сразу писать портируемый код — и проблем не будет.

> C>В GCC мне нужно описать модель процессора на специальном языке (md —

> C>Machine Description), остальное сделает сам gcc (ну еще придется
> C>написать несколько утилитных функций). Например, для m68k это файлик в
> C>200Кб, а для pdp11 — в 50Кб.
> одного только кодогенератора будет все равно недостаточно для нормальной
> работы, даже если ты и ухитришься сделать его за месяц.
А что еще нужно? Ну еще минимальный CRT нужен. Все равно не сильно
больше работы. Тем более, что я могу использовать С-шный runtime в С++
без всяких проблем. Ну а если уж для процессора нет и С-шного runtime'а...

>> > ну напиши под них обертку на C++/CLI. Или религиозные убеждения мешают?

> C>Ну да, легко и непринужденно за пару месяцев.
> не нравится — используй другие тулкиты.
У нас такой большой выбор...

> А вообще, к теме это всё не имеет отношения. Ты ведь не забыл, о чем

> изначально шел спор, правда?
Конечно. Про то что С++ крайне хорош для десктопных и встраиваемых
приложений.
Posted via RSDN NNTP Server 2.0
Sapienti sat!
Re[59]: C+ vs C#
От: Дарней Россия  
Дата: 13.02.06 07:30
Оценка:
Здравствуйте, Cyberax, Вы писали:

C>Одна из важнейших платформ, кстати. А есть еще и достаточно

C>распространенный m68k.

если окажется, что действительно "одна из важнейших платформ" — сделают и JIT

C>И вообще, Mono использует Boehm GC, что часто дает слишком большой oверхед.


GC собираются заменить, и вроде как над этим уже работают.

C>Просто надо сразу писать портируемый код — и проблем не будет.


просто — это в теории. А на практике я такого еще не видел ни для одной сложной программы.

C>А что еще нужно? Ну еще минимальный CRT нужен. Все равно не сильно

C>больше работы. Тем более, что я могу использовать С-шный runtime в С++
C>без всяких проблем. Ну а если уж для процессора нет и С-шного runtime'а...

а как же wxWindows?

C>Конечно. Про то что С++ крайне хорош для десктопных и встраиваемых

C>приложений.

нет. О том, что С++ — простой и удобный язык высокого уровня.
... << RSDN@Home 1.1.4 stable rev. 510>>
Всех излечит, исцелит
добрый Ctrl+Alt+Delete
Re[53]: C+ vs C#
От: eao197 Беларусь http://eao197.blogspot.com
Дата: 13.02.06 07:53
Оценка:
Здравствуйте, Дарней, Вы писали:

Д>Намного разумнее использовать для разных задач разные инструменты. Для низкого уровня — С, для высокого — Немерле, например


Низкий уровень на C -- это как реализация абстракции BIO на C в OpenSSL? ООП вручную через процедурный подход?


SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Re[54]: C+ vs C#
От: Дарней Россия  
Дата: 13.02.06 08:20
Оценка:
Здравствуйте, eao197, Вы писали:

E>Низкий уровень на C -- это как реализация абстракции BIO на C в OpenSSL? ООП вручную через процедурный подход?


что-то мне подсказывает, что абстракция — это совсем не низкий уровень, а вполне даже высокий.
... << RSDN@Home 1.1.4 stable rev. 510>>
Всех излечит, исцелит
добрый Ctrl+Alt+Delete
Re[55]: C+ vs C#
От: eao197 Беларусь http://eao197.blogspot.com
Дата: 13.02.06 08:49
Оценка:
Здравствуйте, Дарней, Вы писали:

E>>Низкий уровень на C -- это как реализация абстракции BIO на C в OpenSSL? ООП вручную через процедурный подход?


Д>что-то мне подсказывает, что абстракция — это совсем не низкий уровень, а вполне даже высокий.


Абстракция -- вполне даже. Но я спрашивал про реализацию абстракции.


SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Re[50]: C+ vs C#
От: vdimas Россия  
Дата: 13.02.06 09:01
Оценка:
Здравствуйте, WolfHound, Вы писали:

WH>3)Жесткое реальное время


[...]

WH>С пунктом 3 пока не все ясно но думаю что и там тоже чтонибудь придумают...


Для обработки звука, например, уже вполне всего хватает.

Я вот недавно баловался с реал-тайм эффектами для гитары на своем компе. Пробовал и на С++ и на С#. В первом случае загрузка проца 5%, во втором — 7..9%.
Re[54]: C+ vs C#
От: vdimas Россия  
Дата: 13.02.06 09:20
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>К тому же можно объяснить, что за непреодалимые пробелмы в реализации OLE 2 на дотнете?


В 1.1 не было такого:
public static int Marshal::FinalReleaseComObject(object o);

И еще не поддерживалась агрегация в должной мере.

Поэтому, обыгрывать агрегацию и следить за использованием COM-объектов надо было вручную, что практически невозможно было адекватно сделать на C# (вспомнишь о смарт-поинтерах С++ сразу)

Сейчас же достаточно просто освободить все ссылки и принудительно вызвать полную сборку мусора — все сработает OK, ибо фреймворк взял на себя труд контоллировать ссылки на COM-объекты, и агрегированные в т.ч..


VD>И кстати, очень интересен следующий вопрос... Вот в Линукс в принципе невозможно использовать OLE 2.


Почему невозможно? В либу WINe входит его реализация.

OLE2 важен своей критической массой серверных (с т.з. технологии OLE2) полезных приложений. Очень удобно иметь возможность управлять обработкой документов в своих приложениях.

Я до сих пор не понимаю, почему MS не выпустило OLE2-библиотек клиента и сервера, а сделало это лишь частично (в виде частичной внутренней реализации) и только для своих Word и Excel?
Re[56]: C+ vs C#
От: vdimas Россия  
Дата: 13.02.06 09:26
Оценка:
Здравствуйте, VladD2, Вы писали:


>>> Я вот пользуюсь и Visio, и Word, а OLE 2 не ползуюсь.

C>>То есть не вставляете диаграммы из Visio в Word?

VD>Да. Я сохраняю их как файлы и вставляю в Ворд уже готовые файлы. И делаю я это по сображениям надежности и удобста.


Это тоже OLE2.


VD>Кого нет? OLE 2 — это COM-спецификация! Каждый может реализовать ее.


Были трудности на 1.1


>>> И кстати, очень интересен следующий вопрос... Вот в Линукс в принципе

>>> невозможно использовать OLE 2.
C>>Ну во-первых, под Линукс есть по крайней мере две реализации OLE2 и DCOM

VD>OLE2? Можно ссылкочку? Они как минимум не законны.


Законны. Спецификации OLE открыты. Вот если они использовали исходники MS, то это было бы незаконно.

VD>А DCOM никакого отношения к OLE2 не имеет. И его без каких либо трудов можно использовать из C#.


Вообще-то частично имеет.
Re[55]: C+ vs C#
От: Cyberax Марс  
Дата: 13.02.06 09:29
Оценка:
vdimas wrote:
> Я до сих пор не понимаю, почему MS не выпустило OLE2-библиотек клиента и
> сервера, а сделало это лишь частично (в виде частичной внутренней
> реализации) и только для своих Word и Excel?
То есть? Полная спека по OLE2 — в MSDN, а в MFC вполне неплохая
реализация контейнеров и клиентов.
Posted via RSDN NNTP Server 2.0
Sapienti sat!
Re[56]: C+ vs C#
От: vdimas Россия  
Дата: 13.02.06 09:36
Оценка:
Здравствуйте, Cyberax, Вы писали:

C>vdimas wrote:

>> Я до сих пор не понимаю, почему MS не выпустило OLE2-библиотек клиента и
>> сервера, а сделало это лишь частично (в виде частичной внутренней
>> реализации) и только для своих Word и Excel?
C>То есть? Полная спека по OLE2 — в MSDN, а в MFC вполне неплохая
C>реализация контейнеров и клиентов.

Я говорил о либе для .Net, конечно
Re[57]: C+ vs C#
От: Cyberax Марс  
Дата: 13.02.06 09:39
Оценка:
vdimas wrote:
> C>То есть? Полная спека по OLE2 — в MSDN, а в MFC вполне неплохая
> C>реализация контейнеров и клиентов.
> Я говорил о либе для .Net, конечно
А, тут согласен. Хотят к 2010 году что-то новое сделать, наверное.

Клиентский OLE2, кстати, без особых проблем делается. А вот серверный....
Posted via RSDN NNTP Server 2.0
Sapienti sat!
Re[62]: C+ vs C#
От: Cyberax Марс  
Дата: 13.02.06 09:46
Оценка:
Дарней wrote:
> C>Но ведь еще не сделали?
> а тебя так сильно беспокоит HP-UX? Ты хочешь об этом поговорить?
Любят некоторые заказчики его, к сожалению. А система эта еще
извращеннее Винды.

> Я уверен, что Аутлука там совершенно точно нет

Зато есть сервера

> C>Они его собираются заменить уже года три. А воз и ныне там — у них

> C>слишком много заточено под консервативную сборку.
> читал где-то у них в ньюсах, что это уже практически закончено
Странно, я слежу за их списком рассылки. Они тестировали GC из ORP, но
до прикручивания им еще далеко.

> C>Он простой и удобный. Для определенных целей.

> Вот-вот. Главное — не пытаться доказывать, что он рулит еще и как язык
> для прототипирования
Эээээ... А я это где-то говорил?
Posted via RSDN NNTP Server 2.0
Sapienti sat!
Re[58]: C+ vs C#
От: vdimas Россия  
Дата: 13.02.06 09:51
Оценка:
Здравствуйте, Cyberax, Вы писали:

C>vdimas wrote:

>> C>То есть? Полная спека по OLE2 — в MSDN, а в MFC вполне неплохая
>> C>реализация контейнеров и клиентов.
>> Я говорил о либе для .Net, конечно
C>А, тут согласен. Хотят к 2010 году что-то новое сделать, наверное.

C>Клиентский OLE2, кстати, без особых проблем делается. А вот серверный....


Да примерно одинаковый объем работы, ИМХО, если речь идет об библиотеке.
Re[46]: C+ vs C#
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 13.02.06 10:05
Оценка:
Здравствуйте, Дарней, Вы писали:

Д>я раньше тоже думал в точности, как ты


Я, кстати, тоже. Только в то время С++ еще только обзавелся шаблонами и ими еще учились пользоваться. А без шаблонов плюсы из себя ничего выдающегося не представляют.
... << RSDN@Home 1.2.0 alpha rev. 642>>
AVK Blog
Re[51]: C+ vs C#
От: WolfHound  
Дата: 13.02.06 10:12
Оценка:
Здравствуйте, vdimas, Вы писали:

V>Для обработки звука, например, уже вполне всего хватает.

V>Я вот недавно баловался с реал-тайм эффектами для гитары на своем компе. Пробовал и на С++ и на С#. В первом случае загрузка проца 5%, во втором — 7..9%.
А когда доделают оптимизатор то разници вобще не будет.
... << RSDN@Home 1.1.4 beta 6a rev. 436>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[50]: C+ vs C#
От: eao197 Беларусь http://eao197.blogspot.com
Дата: 13.02.06 10:14
Оценка:
Здравствуйте, AndrewVK, Вы писали:

AVK>ИМХО дело не в высокости уровня, дело в подходе к проектированию.


А расшифровать свое ИМХО можешь?


SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Re[63]: C+ vs C#
От: Дарней Россия  
Дата: 13.02.06 10:32
Оценка:
Здравствуйте, Cyberax, Вы писали:

C>Эээээ... А я это где-то говорил?


это я про то, с чего начиналась эта ветка. А то, что С++ рулит в некоторых областях, никто не станет оспаривать
... << RSDN@Home 1.1.4 stable rev. 510>>
Всех излечит, исцелит
добрый Ctrl+Alt+Delete
Re[55]: C+ vs C#
От: eao197 Беларусь http://eao197.blogspot.com
Дата: 13.02.06 10:35
Оценка:
Здравствуйте, Дарней, Вы писали:

Д>1. Стандарта на массивы и строковый тип. std::vector и std::string на эту роль не подходят, потому что все равно авторы каждой библиотеки изобретают собственные велосипеды.


Изобретали, я бы сказал. Многие библиотеки (например, Qt, wxWidgets, ACE) начали развиваться еще до появления данных классов и до их стандартизации. Сейчас, к тому же, идет процесс добавления поддержки стандартных классов во многие старые библиотеки. В частности, Qt нормально дружит с std::string.

Д>2. Стандарта на политику обработки ошибок


А он вообще возможен в мультипарадигменном языке.
Если же речь идет об исключениях, то есть std::exception, а все, что std::exception не поддерживает -- см.п.1.

Д>3. Нормальной возможности использовать функциональные типы (заменители на килобайтах шаблонов и макросов — не считаются)


+1

Д>4. Замыканий


+1

Д>5. Уверенности в том, что безобидный на вид код не окажется злостным UB


+1

Д>Там есть:

Д>1. Хреновая поддержка стандарта в распространенных компиляторах

В распространенных?

Д>2. Необходимость писать килограммы оберток каждый раз, когда тебе нужно использовать чужую библиотеку (см п.1 и п.2)


Уже практически не нужно.

Д>3. Заботливо разложенные на каждом шагу грабли, в качестве ярких примеров — vector<bool>, auto_ptr в котейнерах, и прочие радости.


auto_ptr в контейнера -- это элементарное не знание языка.


SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Re[64]: C+ vs C#
От: Cyberax Марс  
Дата: 13.02.06 10:45
Оценка:
Дарней wrote:
> C>Эээээ... А я это где-то говорил?
> это я про то, с чего начиналась эта ветка. А то, что С++ рулит в
> /некоторых/ областях, никто не станет оспаривать
Флейм начался после того, как я включил десктопные приложения в эти области.
Posted via RSDN NNTP Server 2.0
Sapienti sat!
Re[54]: C+ vs C#
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 13.02.06 10:52
Оценка:
Здравствуйте, alexeiz, Вы писали:

A>Меня уже достали твои общие слова.


Очень большая просьба — держать свои отрицательные эмоции при себе.
... << RSDN@Home 1.2.0 alpha rev. 642>>
AVK Blog
Re[56]: C+ vs C#
От: Дарней Россия  
Дата: 13.02.06 11:09
Оценка:
Здравствуйте, eao197, Вы писали:

E>Изобретали, я бы сказал. Многие библиотеки (например, Qt, wxWidgets, ACE) начали развиваться еще до появления данных классов и до их стандартизации. Сейчас, к тому же, идет процесс добавления поддержки стандартных классов во многие старые библиотеки. В частности, Qt нормально дружит с std::string.


таких пока мало. не думаю, что они сейчас потянут хотя бы на 1% от общего количества библиотек.

E>Если же речь идет об исключениях, то есть std::exception, а все, что std::exception не поддерживает -- см.п.1.


а еще есть коды возврата и установка глобального кода ошибки

E>В распространенных?


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

E>auto_ptr в контейнера -- это элементарное не знание языка.


Это — незнание особенностей реализации STL, а не языка.
Да и вообще, чтобы придумать оператор копирования значения, который разрушает свой правый аргумент — нужна была очень забористая трава
... << RSDN@Home 1.1.4 stable rev. 510>>
Всех излечит, исцелит
добрый Ctrl+Alt+Delete
Re[51]: C+ vs C#
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 13.02.06 11:16
Оценка:
Здравствуйте, eao197, Вы писали:

E>* Вычислительные задачи. Прогнозирование погоды, моделирование аэродинамики, термодинамики, имитационное моделирование, компьютерная графика...


Один умный человек, а именно Кирилл Фаенов, главный по HPC в MS, рассказывал о том что последнее время в этой области все чаще используется Java, потому что очень часто задачи на вычисление разовые и время разработки, по сути, является частью вычислительного процесса.
... << RSDN@Home 1.2.0 alpha rev. 642>>
AVK Blog
Re[56]: C+ vs C#
От: Дарней Россия  
Дата: 13.02.06 11:46
Оценка:
Здравствуйте, alexeiz, Вы писали:

A>Это камень предкновения? Программируй на функциональном языке.


А давай ты не будешь указывать мне, на чем программировать?
Ты спрашивал, чего не хватает в С++? Я тебе сказал.

A>Все твои "аргументы" даже и на йоту не ближе к тому, чтобы показать, что на С++ нельзя программировать на высоком уровне абстракции.


я не занимаюсь разведением сферических коней в вакууме. Я пишу конкретные программы для конкретных компиляторов и на конкретных библиотеках. Поэтому проблемы реализации — это проблемы не у них, а проблемы у меня
... << RSDN@Home 1.1.4 stable rev. 510>>
Всех излечит, исцелит
добрый Ctrl+Alt+Delete
Re[64]: Еще раз об управляемых ОС
От: Andrei N.Sobchuck Украина www.smalltalk.ru
Дата: 13.02.06 12:00
Оценка:
Здравствуйте, Дарней, Вы писали:

VD>>Боюсь, что это им может оказаться не позубам. Хотя вопрос сожный. Тут без серьезного анализа ничего толком сказать нельзя.


Д>я видел статью с готовым кодом, в которой прикручиваются мультиметоды к Смоллтоку.


Если именно мультиметоды, а не двойную диспетчерезацию, то без изменения ВМ это почти невозможно. Под "невозможно" следует понимать множество ручной работы с неясным результатом, и врядли приемлимой скоростью.
Замечу, что так как ST — язык алгоритмически полный, то множественную диспетчеризацию реализовать можно, но "сверху" языка, а так чтобы оно было неотличимо по использованию от классических методов — врядли.

Д>Вероятно, в Немерле можно сделать по тому же принципу — макросы рулят . Жаль только, сейчас нет времени попробовать.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Я ненавижу Hibernate
Автор: Andrei N.Sobchuck
Дата: 08.01.08
!
Re[51]: C+ vs C#
От: GlebZ Россия  
Дата: 13.02.06 12:04
Оценка:
Здравствуйте, Cyberax, Вы писали:

C>6. Кросс-платформенные приложения (не надо про Mono).

А ты с кем сравниваешь? Случайно не с Явой? Трудно говорить о кросс-платформенности С++, если даже компиляторы друг с другом не всегда кросс.
Так что, если говорить о кросс-платформенности, то кросс-платформенность с помощью Явы достигается меньшей кровью.
Re[54]: C+ vs C#
От: Курилка Россия http://kirya.narod.ru/
Дата: 13.02.06 12:21
Оценка:
Здравствуйте, VladGalkin, Вы писали:

VG>Здравствуйте, Cyberax, Вы писали:


C>>Да ни в чем, в общем-то. Уже 5 лет прошло, а софта на С# не так уж и

C>>много для следующей революционной технологии.
VG>В США востребованы .NET разработчики лично мне это говорит, что эти приложения очень активно пишутся.
VG>Назовите приложения на Smalltalk? А их много, и не только реализации языка.
VG>Назовите приложения использующие ООСУБД (не постреляционные), а их в мире довольно много.
VG>Исторически, на территории бывшего СССР сложилась некоторая монополия C++, которая способствовала росту касты "плюсеров", занимающихся цитированием Языкового Стандарта C++, толкованием кода и изголяющимся в реализации различных концепций/средств на языке, который эти концепции и средства либо слабо поддерживает, либо не поддерживает вообще.

Хочется от себя добавить, что постсоветское пространство это одна из монополий дельфи (у нас он распространён гораздо больше чем на западе), почему же мы не видим противостояние его и шарпа?
Re[56]: C+ vs C#
От: GlebZ Россия  
Дата: 13.02.06 12:40
Оценка:
Здравствуйте, alexeiz, Вы писали:

Д>>А меня достал ты со своей уверенностю в том, что ты здесь лучше всех знаешь С++.

A>Да, я вижу поголовное плохое знание С++. Это большая проблема.
Вот это точно. Я уже больше 10 лет на нем программирую, и могу точно сделать вывод. Я не знаю С++.

Есть один пункт — хреновая поддержка RTTI. Отсутсвие нормального reflection ведет к огромнейшим извращениям в том, что с ним связано.
Re[53]: C+ vs C#
От: GlebZ Россия  
Дата: 13.02.06 12:46
Оценка:
Здравствуйте, Cyberax, Вы писали:

>> C>6. Кросс-платформенные приложения (не надо про Mono).

>> А ты с кем сравниваешь? Случайно не с Явой? Трудно говорить о
>> кросс-платформенности С++, если даже компиляторы друг с другом не всегда
>> кросс.
C>При использовании некого subset'а функциональности — вполне себе портируемо.
Ага, проблема существует. В С++ присутсвует огромное количество функционала, пользоваться которыми просто опасно. И лично я не уверен, что я знаю его весь. И уверен, что большинство его не знает.

>> Так что, если говорить о кросс-платформенности, то кросс-платформенность

>> с помощью Явы достигается меньшей кровью.
C>Ага, программы на Java одинаково плохо работают везде
Вопрос эффективности, и что под ним понимать — это уже вопрос другого флейма. Уверен что многие с тобой не согласятся.
Re[2]: C++ vs C#
От: Sinclair Россия https://github.com/evilguest/
Дата: 13.02.06 14:52
Оценка:
Здравствуйте, Ellin, Вы писали:

E>Совершенно не понятно, зачем Microsoft было затевать эту разработку технологии .NET, Новых языков, сред программированию. С точки зрения технической пользы, понятно. что финансовую выгоду они с этого получат — факт.


E>1. Однако, если кто-то забыл, то и C и С++ задумывались как своеобразные средства переноса программ с одного компьютера на другой. Достаточно было написать новый компилятор для программы и она запускалась на требуемой машине.
Какая наивность! Такую программу, которая заустится на любой требуемой машине, еще поискать.
E> И это кажется более логичным, чем таскать виртуальную машину или какую-то среду исполнения на каждой машине и даже каждой ОС, для которой хотели бы запуститься. Чувствуете разницу — в одном случае мы имеем дело с типом машин, а в случае подхода C# с каждой машиной в отдельности.
E>2. Все, что реализовано в .NET можно было смело реализовывать и в Visual C++ 8.0. Что мешало? При этом С++ является хорошо изученным + куча библиотек. Почему бы не расширять/урезать этот язык? ... Маркетинг?
Это как например? Можно услышать некоторые комментарии, как можно было бы реализовать сборку мусора и reflection вместе с reflection.emit в рамках C++ 8.0?
E> И еще: в заголовке опечатка.
Неа, нету.

З.Ы. Прежде чем делать столь уверенные заявления, не мешает немножко поближе познакомиться с предметом. Хотя бы с одним из вынесенных в заголовок темы.
1.1.4 stable rev. 510
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re: C+ vs C#
От: kuj  
Дата: 13.02.06 16:00
Оценка:
Когда-то давно еще во время появления C++, помнится, был примерно аналогичный спор аля Asm vs C++. Потом было C++ vs Java (наиболее близко к данной теме, если подумать).

У меня де жа вю или эта тема неисчерпаема? Удивляюсь только как очевидно опытные программисты типа VladD2 и WolfHound позволяют себя втянуть в подобный спор.


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


P.S. По поводу "серьезных проектов"... вот у нас проектик на 80 с гаком метров C# кода живет и здравствует... Страшно подумать какой монстр получился бы, если бы писали его на C++.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[2]: C+ vs C#
От: WolfHound  
Дата: 13.02.06 19:31
Оценка:
Здравствуйте, kuj, Вы писали:

kuj>У меня де жа вю или эта тема неисчерпаема? Удивляюсь только как очевидно опытные программисты типа VladD2 и WolfHound позволяют себя втянуть в подобный спор.

Если ты посмотришь на первое сообщение то увидишь что данная тема начиналась в другом форуме и в болие интересной ветке...
К томуже иногда хочется пофлеймить.
... << RSDN@Home 1.1.4 beta 6a rev. 436>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[53]: C+ vs C#
От: IT Россия linq2db.com
Дата: 13.02.06 20:12
Оценка:
Здравствуйте, vdimas, Вы писали:

V>из-за всех этих вещей приходится идти на всякие ухищрения и иногда избыточный объем кодинга. В С++ варианте размер кода для этих задач потрясающе мал, в отличие от аналогичного кода на C#.


Потрясающе мал — это 100к хеллоу ворд, если подключить стримы.
Если нам не помогут, то мы тоже никого не пощадим.
Re[53]: C+ vs C#
От: WolfHound  
Дата: 13.02.06 20:22
Оценка:
Здравствуйте, vdimas, Вы писали:

V>будет все-равно из-за:

V>- проверки диапазонов массивов при обращении
Очень хорошо поддается оптимизации.
V>- из-за того, что массивы — это всегда reference type, т.е. наличие массива чего-либо в классе — это доп. уровень коссвенной адресации.
Если оптимизатор достаточно циничен то код типа
class Foo
{
    int[] _arr = new int[10];
}

если ссылка на массив не передается за приделы класса массив вполне может быть помещен в тело класса. Называет ескей анализ.
V>- вызов метода по делегату медленнее виртуальной ф-ии, а в С++ вызов по указателю на член — быстрее, чем вызов виртуальной ф-ии
Скорость вызова делегата можно довести до скорости вызова по указателю на челен в С++. Идаже в некоторых случаях сделать ее выше. Почему досих пор этого не сделано я не понимаю.

V>из-за всех этих вещей приходится идти на всякие ухищрения и иногда избыточный объем кодинга. В С++ варианте размер кода для этих задач потрясающе мал, в отличие от аналогичного кода на C#.

Если вобще говорить о будущем управляемых сред то там ИМХО будет рулить что-то типа немерле. А если еще и в ВМ ввсети первоклассные списки, функции, кортежи, неизменяемые типы данных то раздолье для оптимизатора будет просто необычайное.
... << RSDN@Home 1.1.4 beta 6a rev. 436>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[4]: C+ vs C#
От: Ellin Россия www.rsdn.ru
Дата: 13.02.06 21:44
Оценка:
Здравствуйте, WolfHound, Вы писали:

WH>Ну например Кваку погонять... гораздо болие продуктивное занятие...

Я к компьютерным играм отношусть негативно, поэтому не соглашусь.

WH>Ну если для тебя нету разницы между C# и кривущей библиотекой WinForms то разговор на этом можно закончить.

Ах, ну если в таком ключе, то ... пардон.

E>>Сроки да — С# дает приимущество для большениства программистов, а вот качество под сомнением.

WH>Аргументы? Только не говори что C# тормоз и памяти много жрет. Ни то ни другое не соответствует реальности если все делать прямыми руками.
Опыт. Да и только. Для .NET нету нормальных элементов управления, всюду exceptions, работает только с поверхностной точки зрения, функционал сильно урезан, чуть влево-вправо — лезем в WinAPI. В экономике есть такой метод экспертных оценок, я руководствуюсь своим опытом и только.

E>>Могу с уверенностью сказать, даже не видев вашего проекта, что если создать аналогичный проект на С++ — клон то есть, то качество его исполнения будет гораздо выше. Сроки тоже несколько выше, но приемлемо.

WH>Я иногда жалею что на сайте запрещена падонковщина... А я модератор и мне надо быть образцом для подражания.
Ну я тут вообще гость. Вы модераторы, администраторы понапридумывали условий и еще мне же жалуетесь. Заведи второй ник — матюкальник.

WH>ЗЫ Кстати про С++ мне расказывать не надо. Я сам о нем могу кому хочешь расказать. Причем могу расказать и про сильные стороны и про слабые.

Да ладно, ладно. Я на это и расчитываю.
WH>ЗЗЫ У С++ не считая легаси кода есть своя ниша но она быстро сокращается.
Не согласен. С# расширяет ИТ рынок и C++ также расширяет зону охвата.

PS Придумал ассоциацию для .NET программ: они у меня ассоциируются с эдакими продвинутыми MS Visio картинками, только здесь кнопки можно нажимать, списки смотреть, а реально работать — мучительно.
Re[7]: C++ vs C#
От: Ellin Россия www.rsdn.ru
Дата: 13.02.06 22:39
Оценка:
Здравствуйте, WolfHound, Вы писали:

WH> Хотя виртуальную машину можно было сделать получше.

Чем?
E>>Вместо того, чтобы доработать уже имеющееся. Дописать для С++ новые ключевые слова типа reflection class или т.п., путем расширения языка создать основу для нового стандарта, как это было в прошлом.
WH>Я очень много думал по этому поводу. Это не реально.
Вот этого я понять совершенно не могу. По же не реально ??? Ёлки-палки!

WH>Доказательства по аналогии это демагогия. В сад.

Это не тот случай, никакой демагогии. Я совершенно спокойно мог бы говорить и про программистов.

WH>Кстати я тут думаю не распустить ли мне пальцы веером... или ты сам поймешь что тут
Автор: Геннадий Васильев
Дата: 12.02.06
что-то не так...

Не надо, хорошо помню обсуждение WM_PINT.

E>>Меня просто донимает отсутсвие в нем банальных вещей:

E>>1) множественного наследования (писать в каждом классе одну и ту же реализацию просто устал),
WH>Понадобилось один раз за два года работы... В С++ использовал чаще ибо приходилось применять совершенно иные принципы проектирования.
Хм. Дайте дагадаюсь, что вы теперь делаете все члены класса public и бежите по ниму другим классом, в котором теперь заложен функционал. Так поступают Java программисты.

E>>2) перегрузки оператора (),

WH>Есть делегаты.
Ё! А () зачем убрали? Хочу () и всё тут. Привык.

E>>3) шаблонов С++ со всеми их возможностями, без всяких урезок.

WH>Зачем?
Для опредления семейств классов.

WH>>>А сейчас рулят ковровые клинья и танковые бомбандировки тфу ты управляемые среды, а дальше будут рулить упровляемые ОС типа Singularity для которых на С++ вобще писать будет довольно проблематично.

E>>Все это похоже на перепродажу уже имеющегося у меня товара. Я не хочу покупать то, что я уже покупал, но под другим названием. Те же виртуальные машины Win95 не могут для меня не ассоциироваться с виртуальными машинами Джавы. Та же идеалогия и даже терминалогия. Win95 — в некотором смысле управляемая ОС.
WH>Бедные мои тапочки... Такого простите за выражение бреда я давно не слышал... даже во флейме...
?
Ну и в чем бред?
Re[5]: C+ vs C#
От: WolfHound  
Дата: 13.02.06 22:40
Оценка:
Здравствуйте, Ellin, Вы писали:

E>Я к компьютерным играм отношусть негативно, поэтому не соглашусь.

Не точно не наш человек.

E>Опыт. Да и только.

И что ты такое под .NET написал то?
E>Для .NET нету нормальных элементов управления,
Проблемы с ГУИ? Еще раз .NET != WinForms. WinForms это вобще временная библиотека хотя во втором фреймворке они ее и основательно переработали.
Будущие ГУИ под виндами это Aero.
E>всюду exceptions,
А чем тебя не устраивают exceptions? ИМХО лучший способ сообщить о том что что-то пошло не так, а с кодами возврата сплошное мучение... ибо их постоянно проверять надо... и зачем мне этот геморой если есть exceptions?
E>работает только с поверхностной точки зрения,
Поверь мне я залезал в потроха .NET'а на столько глубоко что тебе и не снилось... и там за исключением нескольких мелких бажиков в тех местах где не ступала нога человека все очень хорошо работает.
E>функционал сильно урезан,
Функционал чего?
E>чуть влево-вправо — лезем в WinAPI.
Я за два года работы из WinAPI достал только две функции... QueryPerformanceCounter и QueryPerformanceFrequency... причем во втором .NET'е они и это исправили... Stopwatch...
E>В экономике есть такой метод экспертных оценок, я руководствуюсь своим опытом и только.
Хреновый у тебя опыт... ты не разобравшись в предмете попытался что-то делать и у тебя ничего не получилось... и правильно ибо философия C# не имеет ничего общего с философией С++. Это совершенно другой мир с совершенно другими законами. И пытатся писать на нем как на С++ по меньшей мере глупо.

E>Ну я тут вообще гость. Вы модераторы, администраторы понапридумывали условий и еще мне же жалуетесь. Заведи второй ник — матюкальник.

Чтобы потом удалить это сообщение и забанить собственный матюгальник? Зачем мне все это? Я ленивый и не стану делать работу которая ничего не изменит.

E>Да ладно, ладно. Я на это и расчитываю.

На что это?
E>Не согласен. С# расширяет ИТ рынок и C++ также расширяет зону охвата.


E>PS Придумал ассоциацию для .NET программ: они у меня ассоциируются с эдакими продвинутыми MS Visio картинками, только здесь кнопки можно нажимать, списки смотреть, а реально работать — мучительно.

Ты это можешь расказывать тем кто не прополз на брюхе все потроха С++ и .NET, а мне эти глупости говорить не надо. Я всеравно не поверю. Ибо я знаю что, как и какой ценой.
... << RSDN@Home 1.1.4 beta 6a rev. 436>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[8]: C++ vs C#
От: WolfHound  
Дата: 13.02.06 22:52
Оценка:
Здравствуйте, Ellin, Вы писали:

WH>> Хотя виртуальную машину можно было сделать получше.

E>Чем?
Первоклассными (first-class) функцциями, списками, кортежами, неизменяемыми данными... вобщем поддержку функциональных языков на всю катушку.

WH>>Я очень много думал по этому поводу. Это не реально.

E>Вот этого я понять совершенно не могу. По же не реально ??? Ёлки-палки!
Ну посмотри что получилось у MS с C++/CLI. Совершенно нежизнеспособный уродец. Уже не С++ и еще не C#. Про MC++ вобще молчу.

E>Не надо, хорошо помню обсуждение WM_PINT.

Чего? MSDN не знает такого зверя...

E>Хм. Дайте дагадаюсь, что вы теперь делаете все члены класса public и бежите по ниму другим классом, в котором теперь заложен функционал. Так поступают Java программисты.

Чего? Продемонстрируйте пожалуйста.

WH>>Есть делегаты.

E>Ё! А () зачем убрали? Хочу () и всё тут. Привык.
От дурных привычек надо избавлятся тут вам не С++.

WH>>Зачем?

E>Для опредления семейств классов.
Мне генериков из C#2 вполне хватает

WH>>Бедные мои тапочки... Такого простите за выражение бреда я давно не слышал... даже во флейме...

E>Ну и в чем бред?
В том что ты совершенно не понимаешь что такое управляемая ОС, чем она отличается от обычной и почему это качественный скачек по сравнению с тем что есть сейчас.
... << RSDN@Home 1.1.4 beta 6a rev. 436>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[7]: C+ vs C#
От: WolfHound  
Дата: 13.02.06 23:17
Оценка:
Здравствуйте, Ellin, Вы писали:

E>А я про WinForms и не говорил. Я говорил гораздо шире. Их впринципе нет.

Ну не знаю что ты такое пишешь... но мне хватало.

E>Рефлектором пользоваться могут даже студентики. И они меня совершенно не волнуют: мне главное, чтобы конечное решение работало.

Так оно и прекрасно работает.

E>Всего пользовательского интерфейса.

А то что там кроме ГУИ есть еще очень много полузностей какбы не всчет? Не знаю как у тебя но у меня подавляющая часть кода к ГУИ вобще отношения не имеет. Хотя в конце концов ГУИ получается тоже не мало.
E>Нарисуй битмап в хидере Лист Контрола, например.
Зачем? Покажи скриншот того что нужно получить.

E>А я гораздо больше. Слушай. Получается, что я больше тебя кода пишу

Нет получается ты его не правильно пишешь...

E>Дык получилось, но какими усилиями ... Титаническими.

И эти усилия того стоили.
E>И зачем было создавать этот новый мир, когда есть практически совершенный?
Ты серьезно не видишь проблем С++?

WH>>На что это?

E>На твой опыт.
Мой опыт говорит что C# рулит в подавляющем большенстве задач.
А если сделать нармальную ВМ, на основе этой ВМ сделать правильную ОС то будет вобще супер.
... << RSDN@Home 1.1.4 beta 6a rev. 436>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[9]: C++ vs C#
От: Ellin Россия www.rsdn.ru
Дата: 13.02.06 23:18
Оценка:
Здравствуйте, WolfHound, Вы писали:

WH>>>Я очень много думал по этому поводу. Это не реально.

E>>Вот этого я понять совершенно не могу. По же не реально ??? Ёлки-палки!
WH>Ну посмотри что получилось у MS с C++/CLI. Совершенно нежизнеспособный уродец. Уже не С++ и еще не C#. Про MC++ вобще молчу.
Так это скорее провокация против С++. Сначала запретили множественное наследование, потом начали С++ натягивать. Да и управляемые классы также нельзя в шаблонах использовать. Это МС++ — это пиар С#, если хотели бы сделали правильно, для этого возможности есть.

E>>Не надо, хорошо помню обсуждение WM_PINT.

WH>Чего? MSDN не знает такого зверя...
WM_PRINT, опечатался, извиняюсь.

E>>Хм. Дайте дагадаюсь, что вы теперь делаете все члены класса public и бежите по ниму другим классом, в котором теперь заложен функционал. Так поступают Java программисты.

WH>Чего? Продемонстрируйте пожалуйста.
Допустим есть пару функций, которые надо унаследовать. В C# делаем интерфейс и каждый раз делаем имплиментацию. Java программисты рассказали мне трюк, в котором они выносят эти функции в отдельный класс, мемберы тех классов, которые в С++ были бы наследниками, и с которыми должны работать эти методы делают public, затем "обрабатывают", отдельным классом — им очень нравиться, причем по их признанию можно сделать мемберы private, но завести public ассоциативный массив.


WH>>>Есть делегаты.

E>>Ё! А () зачем убрали? Хочу () и всё тут. Привык.
WH>От дурных привычек надо избавлятся тут вам не С++.
И что же в них дурного? Что надо писать новый язык программирования?

WH>>>Зачем?

E>>Для опредления семейств классов.
WH>Мне генериков из C#2 вполне хватает
Они беднее шаблонов в С++, я сейчас точно не помню, но при столкновении с ними многое не удалось реализовать. Что конкретно в памяти не осталось, однако осталось мнение. По-моему я хотел передавать в качестве параметра инстанцирования класс, чей метод вызывался в теле шаблонного класса. Так называемые политики, как в Loki, например.

WH>>>Бедные мои тапочки... Такого простите за выражение бреда я давно не слышал... даже во флейме...

E>>Ну и в чем бред?
WH>В том что ты совершенно не понимаешь что такое управляемая ОС, чем она отличается от обычной и почему это качественный скачек по сравнению с тем что есть сейчас.
Давай так, в пару словах что же это такое и тут станет все ясно.
Re[8]: C+ vs C#
От: Дарней Россия  
Дата: 14.02.06 02:54
Оценка:
Здравствуйте, WolfHound, Вы писали:

Не кормите тролля!
Честное слово, серьезно нести такую чушь — просто невозможно.
... << RSDN@Home 1.1.4 stable rev. 510>>
Всех излечит, исцелит
добрый Ctrl+Alt+Delete
Re[4]: C++ vs C#
От: Sinclair Россия https://github.com/evilguest/
Дата: 14.02.06 03:01
Оценка:
Здравствуйте, Ellin, Вы писали:
E>1. Уборка мусора.
E>Про сборку мусора можешь почитать в классической книге Дж. Коплиена "Программирование на С++" за 1992 год(!),
E>страница 333 9.5. Уборка мусора.
Жаль, что у меня нет под рукой этой книги.
E>2. Рефлексия. Этот вопрос уже неоднократно обсуждался на форуме С/С++ вот ссылка на библиотеку, которая позволяет реализовать рефлексию для С++ в его нынешнем состоянии: rsdn
Автор: Batiskaf
Дата: 30.04.04
. Вобщем не вижу сложностей с реализацией рефлексии на С++ такой карпорацией, как MS.

E>3. Emit Собственно есть рефлексия — есть Emit.
Очень смешно.
E>И последнее, надеюсь с твоей стороны есть понимание, что я имел ввиду потенциальный C++ 8.0, когда говорил о нем, с ключевыми словами, с типами классов — типа рефлексируемый и пр., не нынешний?
Это конечно есть. Просто дотнет появился вовсе не от того, что биллу некуда было деть несколько миллиардов. Оказалось, что развивать технологии, основанные на COM (и, в частности, МС VC++) уже некуда. Твое непонимание природы вещей настолько глубоко, что я даже не знаю, как его заполнить. Читай, исследуй — через некоторое время ты поймешь, что если доработать С++ в том стиле, про который ты говоришь, то получится Java.
E>>> И еще: в заголовке опечатка.
S>>Неа, нету.
E>И всетаки есть. На моё сообщение не смотри, смотри выше.

S>>З.Ы. Прежде чем делать столь уверенные заявления, не мешает немножко поближе познакомиться с предметом. Хотя бы с одним из вынесенных в заголовок темы.

E>Многие программисты — аутентичные интраверты. Они очень стеснительны и неуверены в себе, ни с девушками, ни в обычной беседе. Смелые заявления — это не для них. У меня такое ощущение, что это и про тебя. Я прав?
Нет.
1.1.4 stable rev. 510
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[54]: C+ vs C#
От: vdimas Россия  
Дата: 14.02.06 04:18
Оценка:
Здравствуйте, IT, Вы писали:

IT>Здравствуйте, vdimas, Вы писали:


V>>из-за всех этих вещей приходится идти на всякие ухищрения и иногда избыточный объем кодинга. В С++ варианте размер кода для этих задач потрясающе мал, в отличие от аналогичного кода на C#.


IT>Потрясающе мал — это 100к хеллоу ворд, если подключить стримы.


Я имел в виду конечно размер текстовых файлов, т.е. то, что мне ручками набивать надо. У меня там вычисления, и алгоритмы в мои базовые классы девайсов можно подавать хоть вбок, хоть поперек. Хоть обычными ф-иями из одной строчки, хоть как структура, например — фильтр N-го порядка. Даже слоты и сигналы не юзал — не надо было.

Пытался делать аналогично на дотнете... пришел к генерации делегатов в runtime. Т.е. у меня что-то вроде:
    public interface IInvoke<RetT, ArgT> {
        RetT Invoke(ArgT arg);
    }

    public sealed class MyDelegate<RetT, ArgT>: MulticastDelegate, IInvoke<RetT, ArgT> {

        public RetT Invoke(Argt arg);
    }


Т.е. делегат имплементирует IInvoke<> и так же функциональные объекты его имплементируют...

Напрямую так писать низзя — компилятор не хочет наследовать MulticatDelegate, но через байткодогенерацию можно
Вот, дойдут руки надо будет сгенерить до 32 (64/128/...) шаблонных параметров и сохранить в виде либы. Вот тебе и будут многоликие функциональные объекты чистой воды.
Re[5]: C++ vs C#
От: Ellin Россия www.rsdn.ru
Дата: 14.02.06 07:10
Оценка:
Здравствуйте, Sinclair, Вы писали:

S>Это конечно есть. Просто дотнет появился вовсе не от того, что биллу некуда было деть несколько миллиардов. Оказалось, что развивать технологии, основанные на COM (и, в частности, МС VC++) уже некуда. Твое непонимание природы вещей настолько глубоко, что я даже не знаю, как его заполнить. Читай, исследуй — через некоторое время ты поймешь, что если доработать С++ в том стиле, про который ты говоришь, то получится Java.

Скорее С++0х.
Re[55]: C+ vs C#
От: Vogul  
Дата: 14.02.06 08:29
Оценка:
Здравствуйте, Курилка, Вы писали:

К>Хочется от себя добавить, что постсоветское пространство это одна из монополий дельфи (у нас он распространён гораздо больше чем на западе), почему же мы не видим противостояние его и шарпа?


Так пересаживаемся потихоньку, с Дельфей на C# и Winforms. Формочки-то к базам данных какая разница на чем ваять.
Re[3]: C+ vs C#
От: kuj  
Дата: 14.02.06 09:10
Оценка:
Здравствуйте, Ellin, Вы писали:

kuj>>Когда-то давно еще во время появления C++, помнится, был примерно аналогичный спор аля Asm vs C++. Потом было C++ vs Java (наиболее близко к данной теме, если подумать).


E>Как все просто. И думать не надо. Asm->C->C++->Java->C#. Правильно я понимаю. Вот только напишите мне, пожалуйста, что именно было привнесенно на каждом из этапов нового в программирование. На Jav'е у меня все заканчивается.

Да нет же конечно все не так просто. Парадигм программирования и языков великое множество, потому и темы что-то vs что-то меня всегда забавляли. Бывает даже что-то новое для себя выносишь. "В споре рождается истина".


kuj>>Очевидным остается факт, что в программирование с каждым годом становится все более экстримальным — сроки сжимаются, а функционал требуют все богаче и удобнее.

E>Так на C# даже иконку в хидер Лист Контрола вынести без апи нельза о каком функционале идет речь?
А в C# вроде и понятий таких нету или я что-то пропустил?

kuj>>Клиентов обычно не волнует как и на чем будет реализована нужная ему функциональность, а главное — сроки на выполнение и качество работы.

E>Сроки да — С# дает приимущество для большениства программистов, а вот качество под сомнением.
О качестве судить сложно, но клиенты вроде довольны. Для нас это главное.

kuj>>P.S. По поводу "серьезных проектов"... вот у нас проектик на 80 с гаком метров C# кода живет и здравствует... Страшно подумать какой монстр получился бы, если бы писали его на C++.

E>Могу с уверенностью сказать, даже не видев вашего проекта, что если создать аналогичный проект на С++ — клон то есть, то качество его исполнения будет гораздо выше. Сроки тоже несколько выше, но приемлемо.
Сегодня же бегу к шефу с предложением переписать на C++ в борьбе за качество исполнения.

E>На мой взгляд С# в нынешнем его состоянии подходит для создания прототипов ПО, быстро накляпал полуработающию прогу, а потом, когда заказчику понравилось — написал нормальную рабочию версию на С++.

Э-э, Вы меня улыбнули.
Re[58]: C+ vs C#
От: Дарней Россия  
Дата: 14.02.06 12:19
Оценка:
Здравствуйте, alexeiz, Вы писали:

A>Ты просто не понял, что здесь обсуждается. Функциональные языки будем обсуждать в отдельной теме.


вот ведь как интересно. Как только я сказал, чего не хватает в плюсах, чтобы называться полноценным языком высокого уровня, ты сразу отправил меня в другую ветку. Не пойму только, по какому принципу ты это определил. По слову "функциональный" в том термине, который я употребил?

A>Ясно дело, есть в C++ вещи, который не хватает. Однако это не делает его языком низкого уровня. Тем более, твои примеры. Они ни каким боком не показывают, что на C++ нельзя программировать на высоком уровне абстракции или что уровень абстракции в C# выше чем в C++.


Вот ведь как интересно. Если в языке не хватает одной из возможностей ЯВУ и ее приходится эмулировать, то он по твоему не становится менее высокоуровневым?

A>Я стараюсь направить эту тему в конкретное русло.


да вижу я, в какое русло ты стараешься ее направить.

A>Если ты, имея выбор компиляторов и библиотек, принял своё решение, то это становится твой проблемой. Однако никто тебя не заставляет выбирать плохие компиляторы и библиотеки. Твой конкретный выбор не делает язык хуже.


Это не "конкретно мой выбор", а "выбор из того, что доступно на данный момент"
Не чувствуешь разницы?
... << RSDN@Home 1.1.4 stable rev. 510>>
Всех излечит, исцелит
добрый Ctrl+Alt+Delete
Re[12]: C++ vs C#
От: klapaucius  
Дата: 14.02.06 13:16
Оценка:
E>Кстати Энштейн говорил вроде: "Если вы не можете объяснить пятилетнему ребёнку чемы занимаетесь — значит вы шарлотан."

Ну да. А если можете — то вы — Эйнштейн.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
'You may call it "nonsense" if you like, but I'VE heard nonsense, compared with which that would be as sensible as a dictionary!' (c) Lewis Carroll
Re[52]: C+ vs C#
От: Sheridan Россия  
Дата: 15.02.06 08:22
Оценка:
Здравствуйте, WolfHound, Вы писали:

C>>4. Приложения для систем без .NET Framework.

WH>Надеюсь ты понимаешь что нет никаких теоритических препядствий портированию .NET практически куда угодно.
Только вот на практике MS недаст довести проекты до конца, а сама никогда не возьмется писать под чтонибудь кроме винды.

C>>6. Кросс-платформенные приложения (не надо про Mono).

WH>Почему?
Ты считаеш что комманда разного народу успеет догонять MS на mono в плане совместимости?
Другое дело если возьмется другая довольно крупная контора... Причем возьмется вплотную. И еще пока Qt будет лучше mono, mono пользовать небудут.

[RSDN@Home][1.2.0][alpha][643]
[Люди перестают мыслить, когда перестают читать. [Д. Дидро]]
Matrix has you...
Re[56]: C+ vs C#
От: Sheridan Россия  
Дата: 15.02.06 08:22
Оценка:
Здравствуйте, VladD2, Вы писали:

C>>Я говорю, что в теории .NET Framework _можно_ портировать хоть на тостер

C>>и холодильник, но на _практике_ он полностью есть только в Windows.
VD>Он на прктике есть на куче девайсов. Не надо говорить заведомую неправду.
А назовите операционные системы этих девайсов. ы?

[RSDN@Home][1.2.0][alpha][643]
[Вину предков искупают потомки. [Курций]]
Matrix has you...
Re[60]: C+ vs C#
От: Vermicious Knid  
Дата: 15.02.06 08:29
Оценка:
Здравствуйте, Cyberax, Вы писали:

C>1. Абстрактные классы:

C>
C>class Base
C>{
C>public:
C>    virtual ~Base(){};
C>    virtual void squack() = 0;

C>    void some_method(){squack();}
C>};
C>


Я как бы в курсе, хотя уже где-то год прошел с тех пор как я их последний раз применял(да и вообще C++).Действительно абстрактные классы есть, но ведь ограничений скажем так несколько больше чем в C#. Например в конструкторе Base::Base ты вызвать squaсk не сможешь. Плюс в C# можно объявить еще и абстрактное свойство, не только метод.

Да и объективно говоря C++ даже исходя из синтаксиса объявления "абстрактных" классов не может претендовать на более высокий уровень поддержки этой возможности. Уродство это еще-то, особенно в реальном проекте, а не в тестовом примере. В частности типичным является гора мусорных заголовков и широкомасштабное использование forward-declaration(это я в частности о библиотеках, которые мне приходилось часто использовать).

C>2. Интерфейсы:


Это фикция. Это те же абстрактные классы, а не интерфейсы(только не надо сюда приплетать множественное наследование). Те же самые ограничение плюс совершенно другая смысловая нагрузка. Для интерфейсов в нормальном языке существуют определенные правила, которые не должны нарушаться. В C++ это как всегда исключительно вопрос самодисциплины.

C>3. Свойств нет (они к ООП и не относятся). Но при желании:

C>https://secure.codeproject.com/cpp/cppproperties.asp
C>http://www.codeproject.com/samples/cppprops.asp

Опять фикция. На этот раз еще большая. На практике в C++ такой подход никто не применяет. Если кто-то применяет, могу только посочувствовать.

В .NET свойства это неотъемлемая часть компонентной модели. В разрезе ООП свойства обладают всеми "свойствами" обычных методов(плохо только что использование аксессоров свойств как делагатов напрямую в C# не разрешенно, но это небольшая проблема), а значит все таки имеют отношение к ООП.
Re[52]: C+ vs C#
От: Sheridan Россия  
Дата: 15.02.06 08:42
Оценка:
Здравствуйте, Дарней, Вы писали:

C>>4. Приложения для систем без .NET Framework.

Д>а ты сможешь написать прогу на С++ для системы, в которой нет компилятора С++?
Некорректное сравнение.

C>>6. Кросс-платформенные приложения (не надо про Mono).

Д>а почему это вдруг не надо? Чтобы не разрушать твою стройную систему доказательств?
Нет. Потомучто уродец. Впрочем как и папа...

[RSDN@Home][1.2.0][alpha][643]
[Благочестие, ханжество, суеверие — три разницы. [К. Прутков]]
Matrix has you...
Re[54]: C+ vs C#
От: Sheridan Россия  
Дата: 15.02.06 08:42
Оценка:
Здравствуйте, Дарней, Вы писали:

C>>Пишут. Но не без проблем — там памяти мало и что-то серьезнее

C>>"Ресторанного меню" или "Карты метрополитена" написать сложно.

Д>а ты собрался там сервер приложений запускать?


Про Glan слышал? Glan &mdash; система разработки клиент-серверных приложений
Автор: Sheridan
Дата: 26.08.05

или здесь и продолжение
Все уже есть. На С++ под Qt
Кроссплатформенно...

[RSDN@Home][1.2.0][alpha][643]
[Hичто так не поощряет праздность, как пустые разговоры. [Л. Толстой]]
Matrix has you...
Re[61]: C+ vs C#
От: Vermicious Knid  
Дата: 15.02.06 09:00
Оценка:
Здравствуйте, alexeiz, Вы писали:

A>И даже так:

A>
A>class Base
A>{
A>public:
A>    virtual ~Base() {}
A>    void squack() { do_squack(); }
    
A>private:
A>    virtual void do_squack() = 0;
A>};
A>

A>Может кто попробует изобразить подобное на C#?

Легко. Заодно кое-что добавлю из разряда того, что невозможно изобразить на C++. (точнее можно, но результат будет мягко говоря не тот)

abstract Base
{
    public Base() { do_squack(); }
    public void squack() { do_squack(); }
    abstract protected void do_squack();
}
Re[62]: C+ vs C#
От: alexeiz  
Дата: 15.02.06 09:19
Оценка:
VK>Легко. Заодно кое-что добавлю из разряда того, что невозможно изобразить на C++. (точнее можно, но результат будет мягко говоря не тот)

VK>
VK>abstract Base
VK>{
VK>    public Base() { do_squack(); }
VK>    public void squack() { do_squack(); }
VK>    abstract protected void do_squack();
VK>}
VK>


Не можешь отличить private от protected?
Re[62]: C+ vs C#
От: Cyberax Марс  
Дата: 15.02.06 09:21
Оценка:
Vermicious Knid wrote:
> abstract Base
> {
> public Base() { do_squack(); }
> public void squack() { do_squack(); }
> abstract protected void do_squack();
> }
> SCRAM!
Поздно!

struct Base
{
      Base() { do_squack(); }
      void squack() { do_squack(); }
protected:
      virtual void do_squack()=0;
}

С точностью до синтаксиса.
Posted via RSDN NNTP Server 2.0
Sapienti sat!
Re[61]: C+ vs C#
От: Cyberax Марс  
Дата: 15.02.06 09:31
Оценка:
Vermicious Knid wrote:
> Я как бы в курсе, хотя уже где-то год прошел с тех пор как я их
> последний раз применял(да и вообще C++).Действительно абстрактные классы
> есть, но ведь ограничений скажем так несколько больше чем в C#. Например
> в конструкторе Base::Base ты вызвать squaсk не сможешь. Плюс в C# можно
> объявить еще и абстрактное свойство, не только метод.
А в C# уже есть деструкторы?
В конструкторе я вызвать squack тоже могу при желании (хотя, хотя какой
в этом смысл)?

> Да и объективно говоря C++ даже исходя из синтаксиса объявления

> "абстрактных" классов не может претендовать на более высокий уровень
> поддержки этой возможности.
В чем оно кардинально от C# отличается? Или слово "abstract" делает язык
более высокоуровневым?

> C>2. Интерфейсы:

> Это фикция. Это те же абстрактные классы, а не интерфейсы(только не надо
> сюда приплетать множественное наследование). Те же самые ограничение
> плюс совершенно другая смысловая нагрузка. Для интерфейсов в нормальном
> языке существуют определенные правила, которые не должны нарушаться. В
> C++ это как всегда исключительно вопрос самодисциплины.
И что?

Я не вижу проблем с программированием на С++ в стиле C#/Java — куча
библиотек так работает (начиная с COM). C# будет "посахаристее", но
кардинально ничего не добавляет.

> Опять фикция. На этот раз еще большая. На практике в C++ такой подход

> никто не применяет. Если кто-то применяет, могу только посочувствовать.
Это значит, что просто никому особо не надо. Тем более, что в C#
свойства — это просто сахар над get-,set- функциями и не добавляет
ничего семантически нового.
Posted via RSDN NNTP Server 2.0
Sapienti sat!
Re[54]: C+ vs C#
От: Sheridan Россия  
Дата: 15.02.06 09:43
Оценка:
Здравствуйте, Дарней, Вы писали:

Д>Как там RSDN@Linux поживает?


Если мне дадут "псевдосервер" rsdn (чтобы xml синхронизации отдавал) то как сеточку дома подниму между новым и старым компом то начну девелопить. А то и сам напишу этот псевдоrsdn... Инета то дома нету...

[RSDN@Home][1.2.0][alpha][643]
[Возможность украсть создает вора. [Ф. Бэкон]]
Matrix has you...
Re[63]: C+ vs C#
От: Vermicious Knid  
Дата: 15.02.06 09:50
Оценка:
Здравствуйте, alexeiz, Вы писали:

A>Не можешь отличить private от protected?


Ну ты же просил что-то подобное. На мой взгляд protected вполне удовлетворяет этому определению, в той или иной степени. Инкапсуляция это хорошо, но не стоит ей черезмерно увлекаться. На мой взгляд то безобразие, что творится в C++ с разными видами наследования и друзьями в хорошо-спроектированном языке ни к чему.

И вообще более продуктивно искать возможность сделать что-то, чем искать возможность не делать. Сказать, "ах этот поганный C# не позволяет делать абстрактные методы приватными, да ну его к черту!", — это слишком легко и как минимум глупо.

А если конкретно о private методах, то мне вот например почему-то не приходила мысль, что это может быть полезно, хотя абстрактные классы использую постоянно.
Re[64]: C+ vs C#
От: Cyberax Марс  
Дата: 15.02.06 10:05
Оценка:
Vermicious Knid wrote:
> Ну ты же просил что-то *подобное*. На мой взгляд protected вполне
> удовлетворяет этому определению, в той или иной степени.
Ну так кто мешает его поставить?

> И вообще более продуктивно искать возможность сделать что-то, чем искать

> возможность не делать. Сказать, "ах этот поганный C# не позволяет делать
> абстрактные методы приватными, да ну его к черту!", — это слишком легко
> и как минимум глупо.
В С++ приватные виртуальные методы помогают документированию:
http://www.cuj.com/documents/s=8000/cujcexp1812hyslop/hyslop.htm

> А если конкретно о private методах, то мне вот например почему-то не

> приходила мысль, что это может быть полезно, хотя абстрактные классы
> использую постоянно.
Учите С++.
Posted via RSDN NNTP Server 2.0
Sapienti sat!
Re[64]: C+ vs C#
От: alexeiz  
Дата: 15.02.06 10:23
Оценка:
Здравствуйте, Vermicious Knid, Вы писали:

VK>Здравствуйте, alexeiz, Вы писали:


A>>Не можешь отличить private от protected?


VK>Ну ты же просил что-то подобное. На мой взгляд protected вполне удовлетворяет этому определению, в той или иной степени. Инкапсуляция это хорошо, но не стоит ей черезмерно увлекаться.


Дело в том, что на C# выразить инкапсуляцию в полной мере не удаётся. По твоей логике, раз нельзя, значит и не надо увлекаться.

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


Не спеши с выводами. CLI использует разные модели доступа к членам класса внутри и извне модуля. Какое безобразие можно сотворить с комбинациями public private, internal public, private protected и т.д., наверное, несравнимо с друзьями (тем не менее друзей таким способом нельзя реализовать). В данном случае нужно говорить не о хорошо/плохо спроектированном языке, а о гранулярности контроля над его поведением.

VK>И вообще более продуктивно искать возможность сделать что-то, чем искать возможность не делать. Сказать, "ах этот поганный C# не позволяет делать абстрактные методы приватными, да ну его к черту!", — это слишком легко и как минимум глупо.


Когда стоит выбор между двумя языками, ты выберешь тот, который даёт тебе больший контроль и гибкость или меньший?

VK>А если конкретно о private методах, то мне вот например почему-то не приходила мысль, что это может быть полезно, хотя абстрактные классы использую постоянно.


Давно известная идея в C++. В мир C# она только-только приходит. Но только она не может быть реализована в полной мере. Эта ситуация характерна для C#. Многие полезные идеи из C++ не имеют (или имеют ограниченное) в нём представления.
Re[2]: C++ vs basic
От: alexeiz  
Дата: 15.02.06 10:26
Оценка:
Здравствуйте, Sheridan, Вы писали:

S>Именно так.


Опять же, какой basic? Конкретизируй.
Re[63]: C+ vs C#
От: Vermicious Knid  
Дата: 15.02.06 10:34
Оценка:
Здравствуйте, Cyberax, Вы писали:

C>
C>struct Base
C>{
C>      Base() { do_squack(); }
C>      void squack() { do_squack(); }
C>protected:
C>      virtual void do_squack()=0;
C>}
C>

C>С точностью до синтаксиса.

Это не валидный код и не рабочий пример, учите C++.

Во-первых отсутствует точка с запятой после объявления класса(очередной маразм C++).

Во-вторых если считать первое опечаткой и добавить собственно код:
#include <iostream>

struct Base
{
    Base() { do_squack(); }
    void squack() { do_squack(); }
protected:
    virtual void do_squack()=0;
};

struct Derived : Base
{
protected:
    virtual void do_squack()
    {
        std::cout<<"squack!";
    }
};

int main()
{
    Base * base = new Derived();
}

gcc, и msvc7.1 его компилировать отказались(msvc7.1 просто не слинковал, gcc не понравился вызов do_squack в конструкторе). comeau online справедливо выдал warning.

Грязным хаком оказалось следующее(lol):
// .. код поскипан
    Base()
    {
        squack();
    }

В результате как и следовало ожидать имеем runtime-error "pure virtual method called" в обоих случаях. О результате этого эксперимента я знал зараннее, просто потому, что таков механизм работы виртуальных функций 99% известных мне реализаций C++.

В C# такой код почему-то считается штатной ситуацией и нормально работает. Зачем — это уже третий вопрос, но мне однажды это пригодилось.
Re[3]: C++ vs basic
От: Sheridan Россия  
Дата: 15.02.06 10:43
Оценка:
Здравствуйте, alexeiz, Вы писали:

A>Опять же, какой basic? Конкретизируй.


Какая разница... Ну скажем вижуал...

[RSDN@Home][1.2.0][alpha][643]
[Люди не могли бы жить, если бы боги не дали бы им дара забвения. [Еврипид]]
Matrix has you...
Re[55]: C+ vs C#
От: __MasteR__ Россия  
Дата: 15.02.06 12:52
Оценка:
Здравствуйте, Sheridan, Вы писали:

S>Здравствуйте, Дарней, Вы писали:


Д>>Как там RSDN@Linux поживает?


S>Если мне дадут "псевдосервер" rsdn (чтобы xml синхронизации отдавал) то как сеточку дома подниму между новым и старым компом то начну девелопить. А то и сам напишу этот псевдоrsdn... Инета то дома нету...


Давай-давай, я даже посодействовать могу. Очень хотел бы видеть такое под Линуксом.
Re[55]: C+ vs C#
От: slavdon  
Дата: 15.02.06 13:44
Оценка:
Здравствуйте, slavdon, Вы писали:

S>Здравствуйте, Дарней, Вы писали:


Д>>Как там RSDN@Linux поживает?

S>Его не будет.
Плохо нельзя смеяться над оценками
--
Now play: Tania Libertad — Ritmo De Negros
Re[57]: C+ vs C#
От: Дарней Россия  
Дата: 16.02.06 05:22
Оценка:
Здравствуйте, Sheridan, Вы писали:

S>У меня идея-фикс: сделать такого клиента, который обойдет RSDN@Home

S>Дабы доказать что шарп не рулит.

сначала сделай, потом хвалиться будешь
... << RSDN@Home 1.1.4 stable rev. 510>>
Всех излечит, исцелит
добрый Ctrl+Alt+Delete
Re[58]: C+ vs C#
От: Sheridan Россия  
Дата: 16.02.06 05:40
Оценка:
Здравствуйте, Дарней, Вы писали:

Д>сначала сделай, потом хвалиться будешь


Где вы в моих словах увидели что я хвалюсь? Я вообщето высказываю свое желание, а не похвалюбу. Внимательнее надо быть.

[RSDN@Home][1.2.0][alpha][643]
[Кто молчать не умеет, тот и говорить не способен. [Сенека Младший]]
Matrix has you...
Re[53]: C+ vs C#
От: Дарней Россия  
Дата: 16.02.06 05:44
Оценка:
Здравствуйте, Sheridan, Вы писали:

S>Ты считаеш что комманда разного народу успеет догонять MS на mono в плане совместимости?

S>Другое дело если возьмется другая довольно крупная контора... Причем возьмется вплотную.

такая контора уже давно есть, да будет тебе известно
... << RSDN@Home 1.1.4 stable rev. 510>>
Всех излечит, исцелит
добрый Ctrl+Alt+Delete
Re[58]: C+ vs C#
От: Дарней Россия  
Дата: 16.02.06 05:44
Оценка:
Здравствуйте, alexeiz, Вы писали:

A>Все примены из Nemerle идут лесом. Сравнивать C++ с функциональным языком, это слоны и бегемоты. Подумай тот ли язык программирования ты выбрал, если тебе приходится писать функциональный код. Здесь идет сравнение с C# — основным языком программирования для .NET.


В общем, ход "дискуссии" вполне предсказуем. С++ объявляется Языком Самого Высокого Уровня по определению, а все фичи, которых в нем нет и их нельзя хотя бы криво эмулировать, объявляются несущественными и не относящимися к делу.
... << RSDN@Home 1.1.4 stable rev. 510>>
Всех излечит, исцелит
добрый Ctrl+Alt+Delete
Re[58]: C+ vs C#
От: Кодёнок  
Дата: 16.02.06 07:59
Оценка:
Здравствуйте, eao197, Вы писали:

Кё>>def MakeInvertedPredicate(p) { fun(x) { !p(x) } }

Кё>>Как это реализовать на С++? Знаю что можно, да думать лень, когда уже повсюду реализованы нормальные средства.
E>Хм... std::logical_not?

Не понял, как тут поможет logical_not? Смысл — сделать новый функтор, чтоб такой код работал как обычная сортировка с std::less<int>

bool greater_eq(int a, int b)
{
return a >= b;
}

int main()
{
int numberz[5] = { 5, 1, 3, 2, 4 };
std::sort(numberz, numberz + 5, MakeInvertedPredicate(greater_eq) );
}


E>Хм... std::binary_negate? Там и пример использования есть...


В примере выше как раз binary_negate подходит, правда как его использовать, я не знаю Покажешь, как его здесь прикрутить?

А потом можно будет сравнить с `def binary_negate(op) { fun(left, right) { !op(left, right) } }`.

E>Уж извините, что влез в вашу войнюшку, но, ИМХО, матчасть нужно знать в любом языке программирования?


Я показал, что не получится передать стандартному алгоритму предикат, дополнительно параметризованный чем-нибудь, без создания костыля. Потому что для полноценного использования такого интерфейса как у стд. алгоритмов, нужна поддержка замыканий в компиляторе. Если бы она была, то весь хидер <functional> например, а также значительные части boost::mpl можно было бы сразу выкинуть на помойку.
Re[59]: C+ vs C#
От: eao197 Беларусь http://eao197.blogspot.com
Дата: 16.02.06 08:46
Оценка:
Здравствуйте, Кодёнок, Вы писали:

Кё>Не понял, как тут поможет logical_not?


Мне показалось, что ты задаешь два разных вопроса.

Кё>В примере выше как раз binary_negate подходит, правда как его использовать, я не знаю Покажешь, как его здесь прикрутить?


#include <iostream>
#include <iterator>
#include <algorithm>
#include <functional>

template< int N, class T > T * end( T (&a)[ N ] ) { return &a[ N ]; }

template< class P > std::binary_negate< P > binary_negate( P p )
    {
        return std::binary_negate< P >( p );
    }

int
main()
    {
        int a[] = { 3, 2, 1, 4, 5 };

        std::sort( a, end( a ), binary_negate( std::less< int >() ) );

        std::sort( a, end( a ), binary_negate( std::greater_equal< int >() ) );
    }


Кё>А потом можно будет сравнить с `def binary_negate(op) { fun(left, right) { !op(left, right) } }`.


А зачем сравнивать?
Если ты имеешь возможность на своей работе использовать вместо C++ Nemerle, то в чем проблема? Берешь и используешь.
Если нет возможности, то опять в чем проблема? Берешь и убеждаешь начальство или заказчиков сменить язык реализации. Или меняешь место работы на то, где применяют Nemerle или Lisp, или OCaml, или Haskell (с чем там еще любят сравнивать C++ в последнее время?) -- делов-то.

Кё>Если бы она была, то весь хидер <functional> например, а также значительные части boost::mpl можно было бы сразу выкинуть на помойку.


Если бы у бабушки был ..., то был бы дедушка.

Я вообще не могу понять природу яросных наездов на C++. Это что, так в жизни не повезло с C++ что-ли? Я еще могу понять, когда юноша в период полового созревания на девушку обижается. Но здесь...

Не понимаю, почему C++ пинают те, кто уже сменил C++ на другой язык (в основном Java и C#). Если вы верите в то, что получили более удобный и качественный инструмент -- ну так пользуйтесь на здоровье, кто запрещает? И зачем при этом больного, немощного старичка-инвалида ногами пинать?

Если вы сейчас вынуждены (?) писать на C++, а хочется на чем-то более крутом (опять помяну в суе Lisp, OCaml, Haskell, Erlang), так пишите. Берите и пишите и забудьте про C++ как страшный сон. Lisp, OCaml, Haskell, Erlang, Nemerle -- такие классные языки, просто сказка. Берете и работаете на них, что мешает?


SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Re[62]: C+ vs C#
От: coldfire2 Россия http://www.dict.riot.ru
Дата: 16.02.06 09:41
Оценка:
Здравствуйте, Cyberax, Вы писали:

>> Опять фикция. На этот раз еще большая. На практике в C++ такой подход

>> никто не применяет. Если кто-то применяет, могу только посочувствовать.
C>Это значит, что просто никому особо не надо. Тем более, что в C#
C>свойства — это просто сахар над get-,set- функциями и не добавляет
C>ничего семантически нового.

ну вообще то свойства как расширение языка в С++ тоже есть:
__declspec(property(get=GetLen)) int len;

работает под vc++, borland c++, intel c++, насчет gcc не увереен.
Re[3]: C++ vs basic
От: Sheridan Россия  
Дата: 17.02.06 11:29
Оценка:
Здравствуйте, Lorenzo_LAMAS, Вы писали:

L_L>Здравствуйте, Sheridan, Вы писали:


S>>Именно так.


L_L>А ты знаешь и C#, и basic (о каком ты говорил, кстати?) и С++ чтобы так говорить?

и пхп и яваскрипт и баш и паскаль с перлом
Не круть немерянная конечно но не потеряюсь.

[RSDN@Home][1.2.0][alpha][643]
[Великой эпохе нужны великие люди. [Я. Гашек]]
Matrix has you...
Re[4]: C++ vs basic
От: Lorenzo_LAMAS  
Дата: 17.02.06 11:32
Оценка:
S>Не круть немерянная конечно но не потеряюсь.

И чем же C# похож на basic (visual, как ты вроде уточнил)
Of course, the code must be complete enough to compile and link.
Re[6]: C++ vs basic
От: slavdon  
Дата: 17.02.06 12:37
Оценка:
Здравствуйте, Sheridan, Вы писали:

S>Тем что он for dummies (или как там правильно пишется). Тем что интепритатор. Тем что некроссплатформен. Тем что требуетъ кучу либ. Тем что памятью нельзя управлять. Тем что тормоз в конце концов.

S>Думаете еслибы бэйсик не был именем нарицательным микрософт бы шарп придумала? Да фиг! А так — переделали синтаксис под С, придумали фреймворк и вперед. У БГ же мечта чтоб кажная домохозяйка на холодильнике программила.

Зря "улыбка" рейтинг поднимает. Смешно, но рейтинг поднимать не буду
--
Now play: VA — Fania All Stars — Coro Miyare
Re[6]: C++ vs basic
От: kuj  
Дата: 17.02.06 14:09
Оценка:
Здравствуйте, Sheridan, Вы писали:


L_L>>И чем же C# похож на basic (visual, как ты вроде уточнил)


S>Тем что он for dummies (или как там правильно пишется). Тем что интепритатор. Тем что некроссплатформен. Тем что требуетъ кучу либ. Тем что памятью нельзя управлять. Тем что тормоз в конце концов.


Э-э, батенька, перед тем как спорить, я бы порекомендовал Вам все-таки разобраться в терминах. C# — это всего-лишь язык программирования.
"интепритатор", "некроссплатформен", "требуетъ кучу либ", "тормоз" ... ... все эти термины не имеют логической взаимосвязи с языком программирования C#.


S>Думаете еслибы бэйсик не был именем нарицательным микрософт бы шарп придумала? Да фиг! А так — переделали синтаксис под С, придумали фреймворк и вперед.

А что с бэйсиком? Я Вас уверяю бэйсик живет и здравствует. На Западе весьма популярен, кстати говоря. А что касается синтаксиса... C# по синтаксису очень и очень близок к Java.
Что касается мотивов... Microsoft старается охватить все потенциально прибыльные сферы. Не забывайте, что C# далеко не единственный язык для платформы .NET
Re[8]: C++ vs basic
От: anton_t Россия  
Дата: 19.02.06 17:15
Оценка:
Здравствуйте, Sheridan, Вы писали:

S>Здравствуйте, anton_t, Вы писали:


S>>>Тем что некроссплатформен.

_>>mono
S>Я уже говорил что это уродец

Не знаю, что уж там уродливого, но мы говорили про кроссплатформенность шарпа, так что бери и пиши на нём под моно, если уж он тебе нужен под *nix.

S>>>Тем что тормоз в конце концов.

_>>Не сильно-то и тормоз.
S>Угу да

Ню-ню
Re[7]: C++ vs basic
От: Sheridan Россия  
Дата: 20.02.06 04:30
Оценка:
Здравствуйте, kuj, Вы писали:

kuj>Э-э, батенька, перед тем как спорить, я бы порекомендовал Вам все-таки разобраться в терминах. C# — это всего-лишь язык программирования.

kuj>"интепритатор", "некроссплатформен", "требуетъ кучу либ", "тормоз" ... ... все эти термины не имеют логической взаимосвязи с языком программирования C#.
Я понимаю что это тормоза дотнета, но так как основным языком дотнета нам предоставляется шарп то и веду разговор про шарп.

kuj>А что с бэйсиком? Я Вас уверяю бэйсик живет и здравствует. На Западе весьма популярен, кстати говоря. А что касается синтаксиса... C# по синтаксису очень и очень близок к Java.

Вас не удивляет что все они С++ подобные?

kuj>Что касается мотивов... Microsoft старается охватить все потенциально прибыльные сферы. Не забывайте, что C# далеко не единственный язык для платформы .NET

Но позиционируется как основной.

[RSDN@Home][1.2.0][alpha][643]
[Hаедине с собой этот человек всегда спит. [Ж.-П. Сартр]]
Matrix has you...
Re[7]: C++ vs basic
От: Sheridan Россия  
Дата: 20.02.06 04:40
Оценка:
Здравствуйте, IT, Вы писали:

IT>Ещё один крутоголовый? Череп не жмёт?

Нет — я вкаске и в домике.

IT>Садись, два.

Спасибо, Гуру...

IT>Ты в своей жизни много кроссплатформенных программ написал?

Под Qt уже перешел.

IT>А кто не требует?

Native winapi?

IT>Это ты про лики и протухщие указатели?

Это я про нормальное управление памятью.

S>>Тем что тормоз в конце концов.

IT>Ну понятное дело, это же некросплатформенный интерпретатор
Да.

Я понимаю что на этом форуме все без ума от шарпа с микрософтом, молятся им... Но это не повод для насмешек над считающими иначе.

[RSDN@Home][1.2.0][alpha][643]
[Все, что вызывает переход из небытия в бытие, — творчество. [Платон]]
Matrix has you...
Re[8]: C++ vs basic
От: IT Россия linq2db.com
Дата: 20.02.06 05:53
Оценка:
Здравствуйте, Sheridan, Вы писали:

S>Я понимаю что на этом форуме все без ума от шарпа с микрософтом,


Нет, сегодня рулят Немерле и варшавские университеты

S>молятся им... Но это не повод для насмешек над считающими иначе.


Извини, конечно, но ты же первый начал
... << RSDN@Home 1.2.0 alpha rev. 0>>
Если нам не помогут, то мы тоже никого не пощадим.
Re[8]: C++ vs basic
От: slavdon  
Дата: 20.02.06 07:15
Оценка:
Здравствуйте, Sheridan, Вы писали:

IT>>Ты в своей жизни много кроссплатформенных программ написал?

S>Под Qt уже перешел.
RSDN@Linux

S>Native winapi?

Требуеться виндоз, для твоих программ требуеться линукс
--
Now play: Scene — Piano Suite
Re[8]: C++ vs basic
От: kuj  
Дата: 20.02.06 14:01
Оценка:
Здравствуйте, Sheridan, Вы писали:

kuj>>Э-э, батенька, перед тем как спорить, я бы порекомендовал Вам все-таки разобраться в терминах. C# — это всего-лишь язык программирования.

kuj>>"интепритатор", "некроссплатформен", "требуетъ кучу либ", "тормоз" ... ... все эти термины не имеют логической взаимосвязи с языком программирования C#.
S>Я понимаю что это тормоза дотнета, но так как основным языком дотнета нам предоставляется шарп то и веду разговор про шарп.
А Бэйсик тут тогда при чем? Ведь опять же — тормоза дотнет...
В действительности говорить про тормоза без ссылки на конкретные задачи и аппаратное обеспечение не совсем корректно. Обсуждать тормоза при генерации экспепшинов, рефлексии и т.п. это одно, но обобщать все-таки не стоит, согласитесь
По роду работы доводлится так же программировать на Java (J2SE, немного J2EE)... так знаете дотнет не такой уж и тормоз...
.NET приложение, которые мы разрабатываем, ориентированы в основном корпоративных клиентов. По большей части это распределенные приложения с большим количеством бизнес-логики + работа с базами данных + веб-интерфейсы и т.д. На производительность пользователи не жалуются. Да, требования к железу конечно далеки от минимальных, но ничего заоблачного.

kuj>>А что с бэйсиком? Я Вас уверяю бэйсик живет и здравствует. На Западе весьма популярен, кстати говоря. А что касается синтаксиса... C# по синтаксису очень и очень близок к Java.

S>Вас не удивляет что все они С++ подобные?
Не удивляет Хотя лично я не считаю синтаксис C#/Java и тем более синтаксис C++ идеальным.
Re[7]: C++ vs basic
От: kuj  
Дата: 20.02.06 14:09
Оценка:
Здравствуйте, IT, Вы писали:

S>>Тем что памятью нельзя управлять.


IT>Это ты про лики и протухщие указатели?

Розовые слоники (управление памятью) лопаются как только происходит банальная запись по указателю на неверный участок памяти... Глюки вылезут в самом неожиданом месте.
Re[8]: C++ vs basic
От: Sheridan Россия  
Дата: 20.02.06 14:19
Оценка:
Здравствуйте, kuj, Вы писали:

IT>>Это ты про лики и протухщие указатели?

kuj>Розовые слоники (управление памятью) лопаются как только происходит банальная запись по указателю на неверный участок памяти... Глюки вылезут в самом неожиданом месте.

Вы 1+1+1+1+...+1 сможете посчитать?

[RSDN@Home][1.2.0][alpha][643]
[Жизнь слишком коротка, чтобы быть незначительной. [Б. Дизраэли]]
Matrix has you...
Re[9]: C++ vs basic
От: Sheridan Россия  
Дата: 20.02.06 14:19
Оценка:
Здравствуйте, IT, Вы писали:

IT>Нет, сегодня рулят Немерле и варшавские университеты

Соль рулит. У нас в Минводах уже по 15 ркблей пачка.

S>>молятся им... Но это не повод для насмешек над считающими иначе.

IT>Извини, конечно, но ты же первый начал
Где? я только сказал что шарп это переименованный и обновленный бэйсик...

[RSDN@Home][1.2.0][alpha][643]
[Hе будь у меня чувства юмора, я давно бы покончил с собой. [М. Ганди]]
Matrix has you...
Re[9]: C++ vs basic
От: Sheridan Россия  
Дата: 20.02.06 14:19
Оценка:
Здравствуйте, slavdon, Вы писали:

S>>Под Qt уже перешел.

S>RSDN@Linux
Да. Есть даже идея Glan использовать. Там ничего трудного...

S>>Native winapi?

S>Требуеться виндоз, для твоих программ требуеться линукс
Стараюсь делать чтобы было всеравно.

[RSDN@Home][1.2.0][alpha][643]
[Для того, чтобы жить как следует, надо иметь или разум или петлю. [Диоген]]
Matrix has you...
Re[10]: C++ vs basic
От: slavdon  
Дата: 20.02.06 15:31
Оценка:
Здравствуйте, Sheridan, Вы писали:


S>Да. Есть даже идея Glan использовать. Там ничего трудного...

Аха. Только написать надо
--
Now play: Fatboy Slim — Song For Lindy
Re[10]: C++ vs basic
От: IT Россия linq2db.com
Дата: 20.02.06 17:14
Оценка:
Здравствуйте, Sheridan, Вы писали:

IT>>Нет, сегодня рулят Немерле и варшавские университеты

S>Соль рулит. У нас в Минводах уже по 15 ркблей пачка.

Вышли пачку.

IT>>Извини, конечно, но ты же первый начал

S>Где? я только сказал что шарп это переименованный и обновленный бэйсик...

... и не забыл добавить "для идиотов"
... << RSDN@Home 1.2.0 alpha rev. 0>>
Если нам не помогут, то мы тоже никого не пощадим.
Re[11]: C++ vs basic
От: Sheridan Россия  
Дата: 21.02.06 04:42
Оценка:
Здравствуйте, IT, Вы писали:

IT>>>Нет, сегодня рулят Немерле и варшавские университеты

S>>Соль рулит. У нас в Минводах уже по 15 ркблей пачка.
IT>Вышли пачку.
Только тоннами...

IT>>>Извини, конечно, но ты же первый начал

S>>Где? я только сказал что шарп это переименованный и обновленный бэйсик...
IT>... и не забыл добавить "для идиотов"
Так целая серия книг таких есть... Линукс для идиотов, виндовс для идиотов... for dummies если не ошибаюсь... Извини если задел.

[RSDN@Home][1.2.0][alpha][643]
[Hет в жизни счастья бездельнику. [Авессалом Подводный]]
Matrix has you...
Re[10]: C++ vs basic
От: anton_t Россия  
Дата: 21.02.06 05:21
Оценка:
Здравствуйте, Sheridan, Вы писали:

S>Нет, я понимаю крутость шарпа и его простоту. Мне не нравится тенденция упрощать язык. Когда секретарши и бухгалтера начнут себе софт писать (мы до этого не доживем конечно в россии) тогда будет хуже...


Да не будут они софт писать, не боись. А вот простой язык — это хорошо. Краткость — сестра таланта.
Re[12]: C++ vs basic
От: anton_t Россия  
Дата: 21.02.06 07:20
Оценка:
Здравствуйте, Sheridan, Вы писали:

S>Здравствуйте, anton_t, Вы писали:


_>>А вот простой язык — это хорошо. Краткость — сестра таланта.


S>Учим латынь?


А при чём тут латынь?
Re[13]: C++ vs basic
От: Sheridan Россия  
Дата: 21.02.06 07:39
Оценка:
Здравствуйте, anton_t, Вы писали:

_>А при чём тут латынь?

Очень простой и краткий язык, как говорят...

[RSDN@Home][1.2.0][alpha][643]
[Верить значит отказываться понимать. [П. Бурже]]
Matrix has you...
Re[14]: C++ vs basic
От: anton_t Россия  
Дата: 21.02.06 07:46
Оценка:
Здравствуйте, Sheridan, Вы писали:

S>Здравствуйте, anton_t, Вы писали:


_>>А при чём тут латынь?

S>Очень простой и краткий язык, как говорят...

А что с ней не так?
Re[3]: C++ vs C#
От: Sheridan Россия  
Дата: 21.02.06 08:50
Оценка:
Здравствуйте, Sinclair, Вы писали:

E>>1. Однако, если кто-то забыл, то и C и С++ задумывались как своеобразные средства переноса программ с одного компьютера на другой. Достаточно было написать новый компилятор для программы и она запускалась на требуемой машине.

S> Какая наивность! Такую программу, которая заустится на любой требуемой машине, еще поискать.
обычный консольный софт пользующийся stdio?
Из высокоуровневого — Gtk и Qt софт но при наличии соотв. библиотек

[RSDN@Home][1.2.0][alpha][643]
[Молчание скрепляет речь, а своевременность скрепляет молчание. [Солон]]
Matrix has you...
Re[6]: C++ vs C#
От: slavdon  
Дата: 21.02.06 13:04
Оценка:
Здравствуйте, Sheridan, Вы писали:

S>>Ну а нахрен мне тогда уперлись самплы из Qt и grep.exe?

S>Ну а нахрен ты тогда в дискуссию воткнулся?

Э... Тибе скока лет "в каски и в домике" ?
--
silent
Re[7]: C++ vs C#
От: Sheridan Россия  
Дата: 21.02.06 13:24
Оценка:
Здравствуйте, slavdon, Вы писали:

S>Здравствуйте, Sheridan, Вы писали:


S>>>Ну а нахрен мне тогда уперлись самплы из Qt и grep.exe?

S>>Ну а нахрен ты тогда в дискуссию воткнулся?

S>Э... Тибе скока лет "в каски и в домике" ?

Все мои...
Извини если зацепил.

[RSDN@Home][1.2.0][alpha][643]
[Всякий Бог есть мера сущего. [Прокл]]
Matrix has you...
Re[10]: C++ vs basic
От: WolfHound  
Дата: 21.02.06 18:47
Оценка:
Здравствуйте, Sheridan, Вы писали:

S>Нет, я понимаю крутость шарпа и его простоту. Мне не нравится тенденция упрощать язык. Когда секретарши и бухгалтера начнут себе софт писать (мы до этого не доживем конечно в россии) тогда будет хуже...

Это бред. Подавляющие число секритарш и бугалтеров никогда и ничего не смогут написать как не упрощай язык.
А вот для нормальным программистам простая и мощьная платформа .NET очень даже облегчает эизнь. Это я тебе как краевед говорю.
... << RSDN@Home 1.1.4 beta 6a rev. 436>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[6]: C++ vs C#
От: Sinclair Россия https://github.com/evilguest/
Дата: 22.02.06 03:46
Оценка:
Здравствуйте, Sheridan, Вы писали:
S>>Угу. У нас просто весь прикладной рынок завален этим консольным софтом. Не смешите мои тапочки.
S>Clipper? под полуосью точно работает. Чел который в клиппере уже лет незнаю сколько но много, говорит и под линух есть.
Гм. Еще раз: мы обсуждаем тезис о волшебной переносимости плюсовых программ. Не про то, как некоторые компании ухитряются вести параллельно две линии софта, а про то, что
"Достаточно было написать новый компилятор для программы и она запускалась на требуемой машине.".
Конечно клиппер запустится под полуосью. А также под любыми виндами. Просто потому, что эти линейки совместимы с ДОС. Насчет линуха — скорее всего, там есть просто аналог клиппера, написанный энтузиастами (благо он собственно ничего такого особенного не делает. Драйверов по работе с dbf форматом — как грязи.).
S>>Ну а нахрен мне тогда уперлись самплы из Qt и grep.exe?
S>Ну а нахрен ты тогда в дискуссию воткнулся?
Для того, чтобы опровергнуть откровенно некорректные заявления. Я тебе пишу о том, что крайне сложно написать полезное кроссплатформенное приложение на плюсах, а ты мне — про то, что ты знаком с двумя кроссплатформенными библиотеками и стандартом POSIX. Молодец! Осталось доказать, что а) с помощью этих трех китов можно написать реальное современное конкурентоспособное приложение и б) таких приложений много.

Ты же уже взрослый человек. Пора понять, что одним интерфейсом приложения не делаются. Подскажи мне кроссплатформенный способ соединиться с RDBMS? А может, у тебя завалялся кроссплатформенный исходник XSLT-трансформера? Даже если есть — таких требований все больше и больше. И практически по каждому из них переносимость упирается в перенос соответствующих библиотек. Да, QT есть под все основные платформы. Но это не потому, что язык такой, а потому, что ее авторы не пожалели времени на перенос на все платформы. Если завтра выйдет какая-нибудь МегаОС на платформе Cool68, то написание компилятора С++ для нее ничего не даст существующим приложениям. Окажется, что надо еще перекомпилять/переписать все виджеты, трансформеры и прочий стуфф под эту платформу. И — о чудо! программе действительно придется таскать с собой весь этот хлам. На каждую машину, чего так трогательно хотел избежать Эллин. Вот, собственно, и весь хрен до копейки.
1.1.4 stable rev. 510
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[15]: C++ vs basic
От: Sheridan Россия  
Дата: 22.02.06 03:56
Оценка:
Здравствуйте, anton_t, Вы писали:

_>А что с ней не так?


А вот простой язык — это хорошо. Краткость — сестра таланта.


[RSDN@Home][1.2.0][alpha][643]
[Любовь — большая помеха в жизни. [А. Шопенгауэр]]
Matrix has you...
Re[16]: C++ vs basic
От: anton_t Россия  
Дата: 22.02.06 04:55
Оценка:
Здравствуйте, Sheridan, Вы писали:

S>Здравствуйте, anton_t, Вы писали:


_>>А что с ней не так?


S>

S>А вот простой язык — это хорошо. Краткость — сестра таланта.


Да я и не отказываюсь от своих слов. Только я так и не понял чем тебе не угодила латынь и как она относится к предмету нашего спора.
Re[17]: C++ vs basic
От: Sheridan Россия  
Дата: 22.02.06 05:06
Оценка:
Здравствуйте, anton_t, Вы писали:

_>Да я и не отказываюсь от своих слов. Только я так и не понял чем тебе не угодила латынь и как она относится к предмету нашего спора.


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

[RSDN@Home][1.2.0][alpha][643]
[Иных уж нет, а те далече. [Саади]]
Matrix has you...
Re[18]: C++ vs basic
От: anton_t Россия  
Дата: 22.02.06 07:52
Оценка:
Здравствуйте, Sheridan, Вы писали:

S>Здравствуйте, anton_t, Вы писали:


_>>Да я и не отказываюсь от своих слов. Только я так и не понял чем тебе не угодила латынь и как она относится к предмету нашего спора.


S>Я к тому что раз латынь простой язык то ее надо учить и на ей разговаривать судя по твоей фразе...


А я разве говорил, что единственный критерий "хорошести" языка — его простота?
Re[8]: C++ vs C#
От: night beast СССР  
Дата: 22.02.06 10:16
Оценка:
Здравствуйте, Sheridan, Вы писали:

S>>А может, у тебя завалялся кроссплатформенный исходник XSLT-трансформера?

S>А зачем С++ нужен XSLT? Не вижу смысла... Этоже web технология... Нету его помоему вобще для с++... Под яву есть решения, ПХП опятьже тоже вроде умеет. А прикладному ПО зачем?

http://xmlsoft.org/XSLT/
Re[7]: C++ vs C#
От: Gadsky Россия  
Дата: 22.02.06 12:23
Оценка:
Здравствуйте, Sinclair, Вы писали:

> А может, у тебя завалялся кроссплатформенный исходник XSLT-трансформера?


Xalan-С?
Re[19]: C++ vs basic
От: kuj  
Дата: 22.02.06 13:24
Оценка:
Здравствуйте, anton_t, Вы писали:

_>>>Да я и не отказываюсь от своих слов. Только я так и не понял чем тебе не угодила латынь и как она относится к предмету нашего спора.


S>>Я к тому что раз латынь простой язык то ее надо учить и на ей разговаривать судя по твоей фразе...


_>А я разве говорил, что единственный критерий "хорошести" языка — его простота?

Интересно Вы, г-дин Sheridan, проводите аналогии между языком программирования и разговорным языком. А латынь ведь весьма широко в медицине используется...

Язык должен быть и богатым функционально и простым. Хотя в первую очередь язык должен быть читаемым. На C++ можно писать так, что и самому потом не прочесть.
Что до функциональности C# уже, осмелюсь утверждать, превосходит C++. Да, все задачи решаемы в C++ вопрос лишь в простоте реализации и человеко-часах необходимых для реализации решения.
Re[2]: C+ vs C#
От: Flex Ferrum Россия  
Дата: 06.05.06 13:19
Оценка:
Здравствуйте, Hasmik, Вы писали:

H>Мне больше нравится С#. На С++ морока переводить числа в стринг и наоборот. А за foreach можно все отдать. Вместо того, чтобы писать шаблонные циклы, вводить переменные для индекса. Всего этого в С++ не хватает.

Открой для себя boost::lexical_cast и std::for_each. А также много чего другого из boost и STL.
Не умножай количества сущностей сверх необходимого
Re[3]: C+ vs C#
От: Hasmik Армения  
Дата: 06.05.06 13:27
Оценка:
Здравствуйте, Flex Ferrum, Вы писали:

FF>Здравствуйте, Hasmik, Вы писали:


H>>Мне больше нравится С#. На С++ морока переводить числа в стринг и наоборот. А за foreach можно все отдать. Вместо того, чтобы писать шаблонные циклы, вводить переменные для индекса. Всего этого в С++ не хватает.

FF>Открой для себя boost::lexical_cast и std::for_each. А также много чего другого из boost и STL.
boost не используем, а or_each не всегда можно использовать. Например, перебор записей из базы.
Re[55]: C+ vs C#
От: ironwit Украина  
Дата: 08.05.06 11:55
Оценка:
Здравствуйте, Cyberax, Вы писали:

C>Ну во-первых, под Линукс есть по крайней мере две реализации OLE2 и DCOM

а можно ли подробнее? где почитать? очень интересует именно выделенная технология и именно под линукс.
... << RSDN@Home 1.2.0 alpha rev. 648>>
Я не умею быть злым, и не хочу быть добрым.
Re[56]: C+ vs C#
От: Cyberax Марс  
Дата: 08.05.06 19:41
Оценка:
ironwit wrote:
> C>Ну во-первых, под Линукс есть по крайней мере две реализации OLE2 и
> *DCOM*
> а можно ли подробнее? где почитать? очень интересует именно выделенная
> технология и именно под линукс.
Одна реализация — в JIntegra, она на Java, так что работает везде. Еще
есть реализация от Mainsoft, но отдельно, похоже, не продается.

Еще одна реализация от Software AG.
Posted via RSDN NNTP Server 2.0
Sapienti sat!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.