Re[2]: С#
От: Lloyd Россия  
Дата: 24.11.03 17:23
Оценка: 24 (3) :))) :)))
Здравствуйте, Mishka, Вы писали:

M>По секрету скажу, в жизни любого программиста наступает момент, когда уже не важно на чём ты пишешь или когда-либо писал


Увы, программисты тоже смертны.
... << RSDN@Home 1.1.0 stable >>
Re: С#
От: GarryIV  
Дата: 27.10.03 14:37
Оценка: +3
Здравствуйте, Terber! Вы писали:

T> Читал уже достаточно давно форум на сайте. Там поднималась проблема

T> квалификация VB & Delphi программистов. Так вот, попробовал тут C#,
T> после MFC все кажется очень легко, прям Visual Basic — ом попахивает....
T> Как вы считаете, можно ли отнести C# программеров к первой категории и
T> почему?

В демагогию, однозначно в демагогию...
Posted via RSDN NNTP Server 1.8 beta
WBR, Igor Evgrafov
Re: С#
От: IT Россия linq2db.com
Дата: 27.10.03 13:33
Оценка: 2 (2)
Здравствуйте, Terber, Вы писали:

T>Как вы считаете, можно ли отнести C# программеров к первой категории и почему?


Как минимум нужно спрашивать бэкграунд C# девелопера. Как это ни странно, но люди с искалеченной бэйсиком судьбой в процессе разработки начинают заметно отличаются от бывших C++'ников. При чём это не зависит от занимаемой позиции, то ли это девелопер, то ли архитектор. Образ мышления разный
Если нам не помогут, то мы тоже никого не пощадим.
Re[4]: С#
От: alexkro  
Дата: 31.10.03 06:19
Оценка: 1 (1) -1
Здравствуйте, gloomy rocker, Вы писали:

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


GR>Справедливое замечание, НО!

GR>Разрабатывать компоненты бизнес-логики стало намного приятней. И именно в этом контексте я имел в виду лаконичность.
GR>Попробуй например на C++ напиши что-то типа
GR>
GR>my_object.MyMethod(new MyParam1(...), new MyParam2(...));
GR>

GR>Проблемы гарантированы!

А в чем проблемы?

GR>Попробуй на каждый чих проверять возвращаемое значение. Тут ты с воплями (ushort)1 — rules!!! прескочишь на C#.


Это не проблема языка, а особенность Win32 API, которые должны быть вызываемы из C. Возьми winstl, например, и жизнь станет проще.

А попробуй из C# Win32 функции повызывать, тоже возвращаемое значение проверять прийдется. От этого никуда не деться.

GR>А как меня достал бардак со строками в C++

GR>Надо тебе BSTR на подстроки, разделяемые запятой, разбить — нужно сконвертить его например в CStringW,
GR>а потом последовательно вызывать метод Tokenize, пока подстроки не закончатся.
GR>Бррр... жуть!!! А на C# это записывается ЛАКОНИЧНО
GR>
GR>string[] str_parts = my_string.Split(...);
GR>


Бардак в COM программировании опять же, а не в C++. А ты возьми comstl, и жизнь... сам знаешь
А в C++ со строчками все хорошо: std::string.

GR>Еще примеры придумать?

GR>interop, например, намного приятней, чем #import в С++.

Зато из C# нельзя создать COM объекты, не реализующие IDispatch.

GR>И таких приятных мелочей в C# полно.


Пока что C# выигрывает только тем, что библиотека .NET для него доступна, а для (native) C++ нет (C++ with managed extensions — это очень грусно). Но прийдет другое время... (http://msdn.microsoft.com/vstudio/productinfo/roadmap.aspx смотри раздел про Visual C++).
Re: С#
От: AlexK Украина  
Дата: 27.10.03 13:22
Оценка: +2
Здравствуйте, Terber, Вы писали:

T>Читал уже достаточно давно форум на сайте. Там поднималась проблема квалификация VB & Delphi программистов.

T>Так вот, попробовал тут C#, после MFC все кажется очень легко, прям Visual Basic — ом попахивает....
T>Как вы считаете, можно ли отнести C# программеров к первой категории и почему?

T>Заранее благодарен.


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

честно говоря не подымал бы я таких тем, потому как может заставить кого-то почувствовать себя ущербным.. а это не хорошо!!!, и могет плохо отразиться на психеке окружающих
Re[2]: С#
От: AlexK Украина  
Дата: 29.10.03 07:59
Оценка: -2
Здравствуйте, gloomy rocker, Вы писали:

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


T>>Читал уже достаточно давно форум на сайте. Там поднималась проблема квалификация VB & Delphi программистов.

T>>Так вот, попробовал тут C#, после MFC все кажется очень легко, прям Visual Basic — ом попахивает....
T>>Как вы считаете, можно ли отнести C# программеров к первой категории и почему?

T>>Заранее благодарен.


GR>Эту ветку надо в "священные войны перенести".

GR>А если по теме, то по-моему есть профессионалы, пишущие на VB, и профессионалы пишущие на Delphi.
GR>Бывших VB — шников знаю лично. Сейчас они пишут на C#, и вполне успешно.
GR>Дельфистов не знаю, но думаю, картина такая же как и с VB — шниками.

GR>Теперь о C#...

GR>Сперва меня поразила его лаконичность. После написания COM-ов на C++ и возни со строками и VARIANT-ами,
GR>проверками возвращаемых значений переход к object, string и Exception меня безумно порадовал.
GR>Не хватает конечно множественного наследования... но это еще вопрос, хорошо это или плохо

GR>Так вот. От C# пахнет лаконичностью, а не VB. И уж это к недостаткам отнести никак нельзя.

GR>А если еще приплюсовать то, какя библиотека классов прилагается...
GR>А если еще учесть Reflection, Remoting, атрибуты и т.д., то сравнение с VB совершенно не уместно.

GR>Я знаю очень много программистов, которые перешли на C# после долгой работы с C++.

GR>C# объективно более комфортабельный язык. Возможно некоторых этот комфорт и испортит, но
GR>далеко не всех.

GR>Я считаю, что для разработки GUI и бизнес-логики C# — то что доктор прописал


c# по локоничности не дотягивает до с++... хоть и за уши тяни... и темплиты сули...

одна только его фичя постоянное приведение типов чего стоит... вот мелкий примерчик:

ushort usTmp = 1;
ushort usTmp2 = usTmp + 1; // и вот тут тебе компилятор выдаст что int не может быть приведен к ushort
ushort usTmp3 = usTmp + (ushort)1; // и вот тут тебе компилятор выдаст что int не может быть приведен к ushort


а фича вот в чем: все арефметические операции постоянно сводяться к int...
закономерный вопрос: какого хера? почему тип данных не сохраняеться...

и честно говоря если приведение к интерфейсу писать не надо, то какого хрена надо постоянно писать на int и double и т.п. вещи... утомляет это все... а язык хорош когда не утомляет, а делает все то что его просят
Re[5]: С#
От: _MarlboroMan_ Россия  
Дата: 31.10.03 15:11
Оценка: 12 (1)
Здравствуйте, Воронков Василий, Вы писали:

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


GIV>>В дереве от называется "Демагогия программирования" в форме модерирования и внутри него самого написано "Священные войны".


ВВ>В дереве это глюк. И над ним уже работают


fixed.

ура-ура!
... << RSDN@Home 1.1 beta 2 >>

— сколько программистов надо чтобы заменить сгоревшую лампочку?
— сколько не бери, а лампочку не поменять — проблема аппаратная, программным путем не решается...
Re[5]: С#
От: VladD2 Российская Империя www.nemerle.org
Дата: 23.11.03 02:29
Оценка: 3 (1)
Здравствуйте, alexkro, Вы писали:

A>Бардак в COM программировании опять же, а не в C++. А ты возьми comstl, и жизнь... сам знаешь

A>А в C++ со строчками все хорошо: std::string.

В КОМ говоришь? Проблема в том, что с С++ так сплошь и рядом. С++ — язык где сплошь и рядом нужно полагаться на те или иные патерны кодирования. Приемущество Шарпа не в том, что в нем ошибки обрабатывать проще, а в том, что Шарп практически не требует от программиста соблюдения неких джентельменских соглашений для получения работоспособного кода. Единсвенным серьезным код-патернов в Шарпе является using(). В общем, Шарп спроектирован так, чтобы уберигать программиста от граблей за счет строгости и сбалансированности языка (и рантайма), а не патернов кодирования. С++ же несоблюдения многих джентельменских соглашений тут же приводит к серьезнийшим проблемам.

A>Зато из C# нельзя создать COM объекты, не реализующие IDispatch.


Может не стоит говорить об областях в котороых не разбираешся?

GR>>И таких приятных мелочей в C# полно.


Больше конкретики.

A>Пока что C# выигрывает только тем, что библиотека .NET для него доступна, а для (native) C++ нет (C++ with managed extensions — это очень грусно). Но прийдет другое время... (http://msdn.microsoft.com/vstudio/productinfo/roadmap.aspx смотри раздел про Visual C++).


Извини, но это банальный фанатизм. Шарп выигрывает по очень многим параметрам. Главные из них — это простота и безопасность. С++ несомненно мощьный язык, но содержащий слишком огромное количество граблей. STL так же далека от совершенсва. Думаю даже после появления С++ for CLI все равно основная масса народа будет выбирать Шарп. А кое-кто вообще Васик.нет.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[7]: С#
От: VladD2 Российская Империя www.nemerle.org
Дата: 23.11.03 02:44
Оценка: 2 (1)
Здравствуйте, alexkro, Вы писали:

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


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

A>Какой ты несдержанный . Долго злился, когда проверял? Так было в 1.0. Если в 1.1 поправили, то хорошо.


Так небыло никогда. Это просто твое незнание предмета. На Шарпе (как и на других языках дотнета) всегда можно было как использовать, так и создавать КОМ-объекты не реализующие диспатч.

A>Зачем мне принимать что-то новое, в котором нет половины возможностей старого?


Затем, что в нем (в новом) нет 99% граблей (так искосно разоженных создателями С++) и не нужно напрягаться, чтобы написать корректный код. Как результат скорость создания ПО выростает на пордки. А надежность увеличивается.

Мне больше по душе вот это: http://www.gotdotnet.com/team/PDC/4064/TLS310.ppt

Сравни как нибудь на досуге функциональность std::vector-а и IList<T>. А потом ответь зачем std::vector нужен в дотнете?

В общем, это догматизм. STL далек от севершенства и имеется достойные замены ему. С другой стороны если тебе хочется использовать СТЛ — используй. Получишь тормоза в дотнете, но удовлетворение от использования чего-то "родного". Если оно того стоит, то почему бы и нет?
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[7]: С#
От: VladD2 Российская Империя www.nemerle.org
Дата: 24.11.03 15:01
Оценка: 2 (1)
Здравствуйте, Plutonia Experiment, Вы писали:

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



VD>>В КОМ говоришь? Проблема в том, что с С++ так сплошь и рядом. С++ — язык где сплошь и рядом нужно полагаться на те или иные патерны кодирования. Приемущество Шарпа не в том, что в нем ошибки обрабатывать проще, а в том, что Шарп практически не требует от программиста соблюдения неких джентельменских соглашений для получения работоспособного кода. Единсвенным серьезным код-патернов в Шарпе является using().


PE>Это также и минус. С++ дисциплинирует писателя, а С# — нет.


Дисциплирироваться нужно было в школе или в институте. А после обучения писать нужно. Да и некто не мешает натрахаться на С++ чтобы потом писать на Шарпе. Я так сам предпочитаю тех кто знаком с С++. Это как бы лишнее доказательство развитости человека как программиста. Но вот к минусам языка это отнести вряд ли можно.

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


Согласен. Но это и есть собстенно проблемы обучения и формирования личности.

Вот сколько есть людей не умеющих связать по-русски двух слов? Это же не значит, что русский плох?
... << RSDN@Home 1.1.2 beta 1 >>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[7]: С#
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 04.12.03 13:27
Оценка: 2 (1)
Здравствуйте, Plutonia Experiment, Вы писали:

PE>Это также и минус. С++ дисциплинирует писателя, а С# — нет.


Тем не менее на практичке среди библиотек, написанных на джаве и С++ среднее качество у первой явно выше.
... << RSDN@Home 1.1.2 beta 1 >>
AVK Blog
Re: С#
От: Silver_s Ниоткуда  
Дата: 03.11.03 10:02
Оценка: -1
Здравствуйте, Terber, Вы писали:

T>Так вот, попробовал тут C#, после MFC все кажется очень легко, прям Visual Basic — ом попахивает....


Если все кажется слишком легко, значит на слишком примитивной задаче пробовал. Если система предназначена для решения на порядок более сложных задач (чем С++ и MFC) значит на них и надо ее применять.

T>Как вы считаете, можно ли отнести C# программеров к первой категории и почему?


Хороших можно, плохих нет. И при чем здесь сравнение с Delphi и VB, на дельфях разрабатывали в основном гуй и для этого нужны специалисты по дизайну и организации логики гуя. Это не програмирование но немного с ним пересекается.
.NET и C# предназначены для другого.
С#
От: Terber Россия  
Дата: 27.10.03 13:11
Оценка:
Читал уже достаточно давно форум на сайте. Там поднималась проблема квалификация VB & Delphi программистов.
Так вот, попробовал тут C#, после MFC все кажется очень легко, прям Visual Basic — ом попахивает....
Как вы считаете, можно ли отнести C# программеров к первой категории и почему?

Заранее благодарен.

27.10.03 17:56: Перенесено модератором из '.NET' — TK
Re: С#
От: Matvey Россия  
Дата: 27.10.03 13:19
Оценка:
Здравствуйте, Terber, Вы писали:

T>Читал уже достаточно давно форум на сайте. Там поднималась проблема квалификация VB & Delphi программистов.

T>Так вот, попробовал тут C#, после MFC все кажется очень легко, прям Visual Basic — ом попахивает....
T>Как вы считаете, можно ли отнести C# программеров к первой категории и почему?

T>Заранее благодарен.


Давайте посмотрим на корову с другого бока. А как на счет сравнения возможностей VB и C#. Пожалуй, C# в этом отношении помощнее будет. А если на нем еще и писать просто, так это только плюс.
Re: С#
От: Воронков Василий Россия  
Дата: 27.10.03 13:35
Оценка:
Здравствуйте, Terber, Вы писали:

T>Читал уже достаточно давно форум на сайте. Там поднималась проблема квалификация VB & Delphi программистов.

T>Так вот, попробовал тут C#, после MFC все кажется очень легко, прям Visual Basic — ом попахивает....
T>Как вы считаете, можно ли отнести C# программеров к первой категории и почему?

Нет. Потому
... << RSDN@Home 1.1 beta 1 >>
Re[2]: С#
От: Воронков Василий Россия  
Дата: 27.10.03 14:46
Оценка:
Здравствуйте, GarryIV, Вы писали:

GIV>В демагогию, однозначно в демагогию...


Нет такого форума
... << RSDN@Home 1.1 beta 1 >>
Re: С#
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 27.10.03 15:13
Оценка:
Здравствуйте, Terber, Вы писали:

T>Читал уже достаточно давно форум на сайте. Там поднималась проблема квалификация VB & Delphi программистов.

T>Так вот, попробовал тут C#, после MFC все кажется очень легко, прям Visual Basic — ом попахивает....
T>Как вы считаете, можно ли отнести C# программеров к первой категории и почему?

T>Заранее благодарен.



Есть еще манагед С++. А то, что C# ближе к Delphi так это из объектной архитектуры Net.
А VB с Delphi сравнивать даже нельзя. А на MFC пишут только профи????
На самом деле Net такая бездна и чем дальше тем глубже. А пользоваться ограниченной частью языка пусть и самого мощного и запутанного то же самое что программировать на Васике или 1С. При таком подхлде из любого языка можно делать подобие Васика
А самый простой язык ассемблер к какой категории их относить????
и солнце б утром не вставало, когда бы не было меня
Re[2]: С#
От: Plutonia Experiment Беларусь http://blogs.rsdn.org/ikemefula
Дата: 27.10.03 18:28
Оценка:
Здравствуйте, Serginio1, Вы писали:

S> А самый простой язык ассемблер к какой категории их относить????


Ассемблер — это категория. Иногда и философская. Гы.
Re[3]: С#
От: GarryIV  
Дата: 27.10.03 23:25
Оценка:
Здравствуйте, Воронков Василий, Вы писали:

GIV>>В демагогию, однозначно в демагогию...

ВВ>Нет такого форума

здесь

В дереве от называется "Демагогия программирования" в форме модерирования и внутри него самого написано "Священные войны".
WBR, Igor Evgrafov
Re[4]: С#
От: Воронков Василий Россия  
Дата: 28.10.03 07:26
Оценка:
Здравствуйте, GarryIV, Вы писали:

GIV>В дереве от называется "Демагогия программирования" в форме модерирования и внутри него самого написано "Священные войны".


В дереве это глюк. И над ним уже работают
... << RSDN@Home 1.1 beta 1 >>
Re: С#
От: gloomy rocker Россия  
Дата: 28.10.03 16:12
Оценка:
Здравствуйте, Terber, Вы писали:

T>Читал уже достаточно давно форум на сайте. Там поднималась проблема квалификация VB & Delphi программистов.

T>Так вот, попробовал тут C#, после MFC все кажется очень легко, прям Visual Basic — ом попахивает....
T>Как вы считаете, можно ли отнести C# программеров к первой категории и почему?

T>Заранее благодарен.


Эту ветку надо в "священные войны перенести".
А если по теме, то по-моему есть профессионалы, пишущие на VB, и профессионалы пишущие на Delphi.
Бывших VB — шников знаю лично. Сейчас они пишут на C#, и вполне успешно.
Дельфистов не знаю, но думаю, картина такая же как и с VB — шниками.

Теперь о C#...
Сперва меня поразила его лаконичность. После написания COM-ов на C++ и возни со строками и VARIANT-ами,
проверками возвращаемых значений переход к object, string и Exception меня безумно порадовал.
Не хватает конечно множественного наследования... но это еще вопрос, хорошо это или плохо

Так вот. От C# пахнет лаконичностью, а не VB. И уж это к недостаткам отнести никак нельзя.
А если еще приплюсовать то, какя библиотека классов прилагается...
А если еще учесть Reflection, Remoting, атрибуты и т.д., то сравнение с VB совершенно не уместно.

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

Я считаю, что для разработки GUI и бизнес-логики C# — то что доктор прописал
... << RSDN@Home 1.1 beta 2 >>
Скука — двигатель прогресса.
Re[2]: С#
От: oRover Украина  
Дата: 28.10.03 17:53
Оценка:
Здравствуйте, Matvey, Вы писали:


M>Давайте посмотрим на корову с другого бока. А как на счет сравнения возможностей VB и C#. Пожалуй, C# в этом отношении помощнее будет. А если на нем еще и писать просто, так это только плюс.


что помощнее, то это само собой. Но даже и такой "помощнее" сам язык все равно ничего практически не стОит без .NET'овской библиотеки классов и CLR.
... << RSDN@Home 1.1 beta 2 >>
Re[3]: С#
От: Matvey Россия  
Дата: 29.10.03 07:43
Оценка:
Здравствуйте, oRover, Вы писали:

R>что помощнее, то это само собой. Но даже и такой "помощнее" сам язык все равно ничего практически не стОит без .NET'овской библиотеки классов и CLR.


Согласен полностью. Только я хотел сравнить не возможности самих языков, а что с их помощью можно сделать.
Re[3]: С#
От: gloomy rocker Россия  
Дата: 30.10.03 15:10
Оценка:
Здравствуйте, AlexK, Вы писали:

AK>c# по локоничности не дотягивает до с++... хоть и за уши тяни... и темплиты сули...


AK>одна только его фичя постоянное приведение типов чего стоит... вот мелкий примерчик:


AK>
AK>ushort usTmp = 1;
AK>ushort usTmp2 = usTmp + 1; // и вот тут тебе компилятор выдаст что int не может быть приведен к ushort
AK>ushort usTmp3 = usTmp + (ushort)1; // и вот тут тебе компилятор выдаст что int не может быть приведен к ushort
AK>


AK>а фича вот в чем: все арефметические операции постоянно сводяться к int...

AK>закономерный вопрос: какого хера? почему тип данных не сохраняеться...

AK>и честно говоря если приведение к интерфейсу писать не надо, то какого хрена надо постоянно писать на int и double и т.п. вещи... утомляет это все... а язык хорош когда не утомляет, а делает все то что его просят


Справедливое замечание, НО!
Разрабатывать компоненты бизнес-логики стало намного приятней. И именно в этом контексте я имел в виду лаконичность.
Попробуй например на C++ напиши что-то типа
my_object.MyMethod(new MyParam1(...), new MyParam2(...));

Проблемы гарантированы!

Попробуй на каждый чих проверять возвращаемое значение. Тут ты с воплями (ushort)1 — rules!!! прескочишь на C#.

А как меня достал бардак со строками в C++
Надо тебе BSTR на подстроки, разделяемые запятой, разбить — нужно сконвертить его например в CStringW,
а потом последовательно вызывать метод Tokenize, пока подстроки не закончатся.
Бррр... жуть!!! А на C# это записывается ЛАКОНИЧНО
string[] str_parts = my_string.Split(...);


Еще примеры придумать?
interop, например, намного приятней, чем #import в С++.

И таких приятных мелочей в C# полно.

Вот для серьезных вычислений C#, мне кажется, пока не приспособлен. Уж очень скромен класс System.Math.
... << RSDN@Home 1.1 beta 2 >>
Скука — двигатель прогресса.
Re[4]: С#
От: Plutonia Experiment Беларусь http://blogs.rsdn.org/ikemefula
Дата: 30.10.03 15:16
Оценка:
Здравствуйте, gloomy rocker, Вы писали:


GR>Вот для серьезных вычислений C#, мне кажется, пока не приспособлен. Уж очень скромен класс System.Math.


Модель данных писать (чтоб в ком экспортировалась, серелизовалась и тд )на нем — почти самоубийство. Приходится постоянно копипейстить.

Шалоны неслабо помогли бы.
Re[5]: С#
От: gloomy rocker Россия  
Дата: 30.10.03 15:30
Оценка:
Здравствуйте, Plutonia Experiment, Вы писали:

PE>Здравствуйте, gloomy rocker, Вы писали:



GR>>Вот для серьезных вычислений C#, мне кажется, пока не приспособлен. Уж очень скромен класс System.Math.


PE>Модель данных писать (чтоб в ком экспортировалась, серелизовалась и тд )на нем — почти самоубийство. Приходится постоянно копипейстить.


PE>Шалоны неслабо помогли бы.

Да и вообще, использовать в одном проекте и COM и .Net не очень приятно.
Стык технологий все та ки. Но надо отдать должное МС — сделали они его достаточно гладким.
Приколы конечно есть, но сейчас даже не вспомню, какие.
... << RSDN@Home 1.1 beta 2 >>
Скука — двигатель прогресса.
Re[6]: С#
От: Plutonia Experiment Беларусь http://blogs.rsdn.org/ikemefula
Дата: 30.10.03 15:52
Оценка:
Здравствуйте, gloomy rocker, Вы писали:

PE>>Модель данных писать (чтоб в ком экспортировалась, серелизовалась и тд )на нем — почти самоубийство. Приходится постоянно копипейстить.


PE>>Шалоны неслабо помогли бы.

GR>Да и вообще, использовать в одном проекте и COM и .Net не очень приятно.
GR>Стык технологий все та ки. Но надо отдать должное МС — сделали они его достаточно гладким.
GR>Приколы конечно есть, но сейчас даже не вспомню, какие.

Еще дотнет экспортирует в ко интерфейсы криво. VBS не видит методов разных интерфейсов, которые реализованы в одном оъекте. Когды мы писали на АТЛ, все было пучком. А здесь гемор — приходится писать для каждого класса осоый интерфейс, в котором перечислены ВСЕ его публичные методы.
Re[7]: С#
От: gloomy rocker Россия  
Дата: 30.10.03 16:00
Оценка:
Здравствуйте, Plutonia Experiment, Вы писали:

PE>Здравствуйте, gloomy rocker, Вы писали:


PE>>>Модель данных писать (чтоб в ком экспортировалась, серелизовалась и тд )на нем — почти самоубийство. Приходится постоянно копипейстить.


PE>>>Шалоны неслабо помогли бы.

GR>>Да и вообще, использовать в одном проекте и COM и .Net не очень приятно.
GR>>Стык технологий все та ки. Но надо отдать должное МС — сделали они его достаточно гладким.
GR>>Приколы конечно есть, но сейчас даже не вспомню, какие.

PE>Еще дотнет экспортирует в ко интерфейсы криво. VBS не видит методов разных интерфейсов, которые реализованы в одном оъекте. Когды мы писали на АТЛ, все было пучком. А здесь гемор — приходится писать для каждого класса осоый интерфейс, в котором перечислены ВСЕ его публичные методы.


VBS все методы через IDispatch.Invoke вызывает.
Так почему он не хочет вызывать методы разных интерфейсов?
Или он умеет вызывать только методы default интерфейса?
... << RSDN@Home 1.1 beta 2 >>
Скука — двигатель прогресса.
Re[5]: С#
От: gloomy rocker Россия  
Дата: 31.10.03 07:44
Оценка:
Здравствуйте, alexkro, Вы писали:

A>А в чем проблемы?

Проблема в управлении памятью. В указанном примере MyMethod обязан будет освободить память, а это в ощем случае плохо,
поскольку не исключено такое использование этого метода в С++:
MyParam1* prm1 = new MyParam1(...);
MyParam2* prm2 = new MyParam2(...);
my_object.MyMethod(prm1,prm2);
prm1->DoSomething();
prm2->DoSomething();

А в .Net сбощик мусора все подберет.

A>Это не проблема языка, а особенность Win32 API, которые должны быть вызываемы из C. Возьми winstl, например, и жизнь станет проще.

А я на С++ и не наезжаю. Я утверждаю, что на C# компоненты разрабатывать намного приятней.

A>А попробуй из C# Win32 функции повызывать, тоже возвращаемое значение проверять прийдется. От этого никуда не деться.

Да, здесь есть проблемы, но для многих функций существуют высокоуровневые классы.

A>Бардак в COM программировании опять же, а не в C++. А ты возьми comstl, и жизнь... сам знаешь

Что такое comstl? Или так теперь называется ATL?

A>А в C++ со строчками все хорошо: std::string.

Ну не хочу я в ATL-проект, в котором уже используются CComBSTR, _bstr_t и CStringW цеплять еще и std::string

A>Зато из C# нельзя создать COM объекты, не реализующие IDispatch.

Чушь!!!
Я не поленился — проверил эту гипотезу.
Вот работающий код:
// Class1.h : Declaration of the CClass1

#pragma once
#include "resource.h"       // main symbols

#include "COMObject.h"


// CClass1

class ATL_NO_VTABLE CClass1 : 
    public CComObjectRootEx<CComSingleThreadModel>,
    public CComCoClass<CClass1, &CLSID_Class1>,
    public IClass1
{
public:
    CClass1()
    {
    }

DECLARE_REGISTRY_RESOURCEID(IDR_CLASS1)


BEGIN_COM_MAP(CClass1)
    COM_INTERFACE_ENTRY(IClass1)
END_COM_MAP()


    DECLARE_PROTECT_FINAL_CONSTRUCT()

    HRESULT FinalConstruct()
    {
        return S_OK;
    }
    
    void FinalRelease() 
    {
    }

public:

    STDMETHOD(Test)(BSTR bsInput, BSTR* bsOutput);
};

OBJECT_ENTRY_AUTO(__uuidof(Class1), CClass1)


// Class1.cpp : Implementation of CClass1

#include "stdafx.h"
#include "Class1.h"
#include ".\class1.h"


// CClass1


STDMETHODIMP CClass1::Test(BSTR bsInput, BSTR* bsOutput)
{
    // TODO: Add your implementation code here
    CComBSTR bsOut(L"CClass1::Test called with bsInput = ");
    bsOut.AppendBSTR(bsInput);
    *bsOutput = bsOut.Detach();
    return S_OK;
}


// COMObject.idl : IDL source for COMObject
//

// This file will be processed by the MIDL tool to
// produce the type library (COMObject.tlb) and marshalling code.

import "oaidl.idl";
import "ocidl.idl";

[
    object,
    uuid(C0D727C9-97C0-4BA6-A0A4-7D046BA70A22),
    helpstring("IClass1 Interface"),
    pointer_default(unique)
]
interface IClass1 : IUnknown{
    [helpstring("method Test")] HRESULT Test([in] BSTR bsInput, [out,retval] BSTR* bsOutput);
};
[
    uuid(8F9408DE-6912-4B57-A42B-C9DE88BE88A0),
    version(1.0),
    helpstring("COMObject 1.0 Type Library")
]
library COMObjectLib
{
    importlib("stdole2.tlb");
    [
        uuid(BECA4E65-71A5-4947-BC78-8CA6623AAD7E),
        helpstring("Class1 Class")
    ]
    coclass Class1
    {
        [default] interface IClass1;
    };
};


using System;
using COMObjectLib;

namespace SharpCaller
{
    /// <summary>
    /// Summary description for Class1.
    /// </summary>
    class Class1
    {
        /// <summary>
        /// The main entry point for the application.
        /// </summary>
        [STAThread]
        static void Main(string[] args)
        {
            Class1Class cls1 = new Class1Class();
            string str_rer = cls1.Test("test");
        }
    }
}


A>Пока что C# выигрывает только тем, что библиотека .NET для него доступна, а для (native) C++ нет (C++ with managed extensions — это очень грусно). Но прийдет другое время... (http://msdn.microsoft.com/vstudio/productinfo/roadmap.aspx смотри раздел про Visual C++).

Пока я вижу у вас только нежелание принять что-то новое.
Для некоторых задач C# — действительно не лучший выбор, но уж те задачи,
для которых он предназначен, решать на нем одно удовольствие!
... << RSDN@Home 1.1 beta 2 >>
Скука — двигатель прогресса.
Re[5]: С#
От: WFrag США  
Дата: 31.10.03 14:11
Оценка:
Здравствуйте, alexkro, Вы писали:

GR>>Попробуй например на C++ напиши что-то типа

GR>>
GR>>my_object.MyMethod(new MyParam1(...), new MyParam2(...));
GR>>

GR>>Проблемы гарантированы!

A>А в чем проблемы?


Не exception-safe.
Re[6]: С#
От: alexkro  
Дата: 03.11.03 08:28
Оценка:
Здравствуйте, gloomy rocker, Вы писали:

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


A>>А в чем проблемы?

GR>Проблема в управлении памятью. В указанном примере MyMethod обязан будет освободить память, а это в ощем случае плохо,

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

...
A>>Зато из C# нельзя создать COM объекты, не реализующие IDispatch.
GR>Чушь!!!

Какой ты несдержанный . Долго злился, когда проверял? Так было в 1.0. Если в 1.1 поправили, то хорошо.

GR>Я не поленился — проверил эту гипотезу.

GR>Вот работающий код:

...


A>>Пока что C# выигрывает только тем, что библиотека .NET для него доступна, а для (native) C++ нет (C++ with managed extensions — это очень грусно). Но прийдет другое время... (http://msdn.microsoft.com/vstudio/productinfo/roadmap.aspx смотри раздел про Visual C++).

GR>Пока я вижу у вас только нежелание принять что-то новое.
GR>Для некоторых задач C# — действительно не лучший выбор, но уж те задачи,
GR>для которых он предназначен, решать на нем одно удовольствие!

Зачем мне принимать что-то новое, в котором нет половины возможностей старого? Мне больше по душе вот это: http://www.gotdotnet.com/team/PDC/4064/TLS310.ppt
Re[2]: С#
От: Кирилл Осенков Украина
Дата: 03.11.03 13:35
Оценка:
M>Давайте посмотрим на корову с другого бока. А как на счет сравнения возможностей VB и C#. Пожалуй, C# в этом отношении помощнее будет.
Здесь неоднозначность. Нужно уточнять, который VB ты имеешь ввиду, потому что есть два кардинально разных языка:

  1. VB (до версии 6.0 включительно)
  2. VB.NET

Между ними — пропасть.

P.S. Кстати, VB.NET и C# сравнивались уже многократно, и отличия на самом деле есть, но незначительные (вещи вроде отсутствия inline XML документации в VB.NET и отличия с делегатами MS обещает устранить в следующей версии).

Поэтому лично я считаю языки VB.NET (2003) и C# (2003) функционально эквивалентными.
Re[2]: С#
От: vvs86 Великобритания  
Дата: 03.11.03 21:17
Оценка:
Здравствуйте, Silver_s, Вы писали:

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


T>>Так вот, попробовал тут C#, после MFC все кажется очень легко, прям Visual Basic — ом попахивает....


S_>Если все кажется слишком легко, значит на слишком примитивной задаче пробовал. Если система предназначена для решения на порядок более сложных задач (чем С++ и MFC) значит на них и надо ее применять.


T>>Как вы считаете, можно ли отнести C# программеров к первой категории и почему?


S_> Хороших можно, плохих нет. И при чем здесь сравнение с Delphi и VB, на дельфях разрабатывали в основном гуй и для этого нужны специалисты по дизайну и организации логики гуя. Это не програмирование но немного с ним пересекается.

S_>.NET и C# предназначены для другого.

Для чего если не секрет
Re[7]: С#
От: gloomy rocker Россия  
Дата: 04.11.03 07:50
Оценка:
Здравствуйте, alexkro, Вы писали:

A>Здравствуйте, gloomy rocker, Вы писали:


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


A>>>А в чем проблемы?

GR>>Проблема в управлении памятью. В указанном примере MyMethod обязан будет освободить память, а это в ощем случае плохо,

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


A>...

A>>>Зато из C# нельзя создать COM объекты, не реализующие IDispatch.
GR>>Чушь!!!

A>Какой ты несдержанный . Долго злился, когда проверял? Так было в 1.0. Если в 1.1 поправили, то хорошо.

Ну погорячился малось
Я проверял действительно на 1.1. На нем работает.
1.0. просто под рукой нет, а то тоже проверил бы.

GR>>Я не поленился — проверил эту гипотезу.

GR>>Вот работающий код:

A>...



A>>>Пока что C# выигрывает только тем, что библиотека .NET для него доступна, а для (native) C++ нет (C++ with managed extensions — это очень грусно). Но прийдет другое время... (http://msdn.microsoft.com/vstudio/productinfo/roadmap.aspx смотри раздел про Visual C++).

GR>>Пока я вижу у вас только нежелание принять что-то новое.
GR>>Для некоторых задач C# — действительно не лучший выбор, но уж те задачи,
GR>>для которых он предназначен, решать на нем одно удовольствие!

A>Зачем мне принимать что-то новое, в котором нет половины возможностей старого? Мне больше по душе вот это: http://www.gotdotnet.com/team/PDC/4064/TLS310.ppt

Что первое приходит в голову — множественное наследование, отсутствие optional параметров.
Но это и не обязательно. Можно обойтись агрегацией и перегорузкой методов. Я думаю, так даже правильней.
Чего вам еще не хватает? По пунктам пожалуйста. Что было и чего не стало.

З.Ы. Whidbey — это интересно Сам хочу потрогать.
... << RSDN@Home 1.1 beta 2 >>
Скука — двигатель прогресса.
Re[8]: С#
От: Plutonia Experiment Беларусь http://blogs.rsdn.org/ikemefula
Дата: 06.11.03 10:29
Оценка:
Здравствуйте, gloomy rocker, Вы писали:

GR>VBS все методы через IDispatch.Invoke вызывает.

GR>Так почему он не хочет вызывать методы разных интерфейсов?
GR>Или он умеет вызывать только методы default интерфейса?

Так и есть. Дело в том что в обжекте реализация диспатча особо хитрая. Потому видны только метода одного интеофейса. Каждый раз приводит к типу и кастить очень геморно.
Re[9]: С#
От: gloomy rocker Россия  
Дата: 06.11.03 11:17
Оценка:
Здравствуйте, Plutonia Experiment, Вы писали:

PE>Здравствуйте, gloomy rocker, Вы писали:


GR>>VBS все методы через IDispatch.Invoke вызывает.

GR>>Так почему он не хочет вызывать методы разных интерфейсов?
GR>>Или он умеет вызывать только методы default интерфейса?

PE>Так и есть. Дело в том что в обжекте реализация диспатча особо хитрая. Потому видны только метода одного интеофейса. Каждый раз приводит к типу и кастить очень геморно.


Понятно...
Буду иметь в виду.
... << RSDN@Home 1.1 beta 2 >>
Скука — двигатель прогресса.
Re[2]: С#
От: Шахтер Интернет  
Дата: 23.11.03 19:24
Оценка:
Здравствуйте, gloomy rocker, Вы писали:

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

...
GR>Я считаю, что для разработки GUI и бизнес-логики C# — то что доктор прописал

Абсолютно согласный. У C# очень хорошая и ёмкая ниша вырисовывается. Причем, решения для этой ниши не будут страдать тормознутостью, как в классическом Бейсике.
... << RSDN@Home 1.1 beta 2 >>
В XXI век с CCore.
Копай Нео, копай -- летать научишься. © Matrix. Парадоксы
Re[6]: С#
От: Plutonia Experiment Беларусь http://blogs.rsdn.org/ikemefula
Дата: 24.11.03 08:10
Оценка:
Здравствуйте, VladD2, Вы писали:


VD>В КОМ говоришь? Проблема в том, что с С++ так сплошь и рядом. С++ — язык где сплошь и рядом нужно полагаться на те или иные патерны кодирования. Приемущество Шарпа не в том, что в нем ошибки обрабатывать проще, а в том, что Шарп практически не требует от программиста соблюдения неких джентельменских соглашений для получения работоспособного кода. Единсвенным серьезным код-патернов в Шарпе является using().


Это также и минус. С++ дисциплинирует писателя, а С# — нет. На шарпе иногда появляются такие выгибоны, на которые в здравом уме мало кто пойдет, а все потому, что слишком просто на нам нагнать код.
Re: С#
От: Mishka Норвегия  
Дата: 24.11.03 16:38
Оценка:
Здравствуйте, Terber, Вы писали:

T>Читал уже достаточно давно форум на сайте. Там поднималась проблема квалификация VB & Delphi программистов.

T>Так вот, попробовал тут C#, после MFC все кажется очень легко, прям Visual Basic — ом попахивает....
T>Как вы считаете, можно ли отнести C# программеров к первой категории и почему?


По секрету скажу, в жизни любого программиста наступает момент, когда уже не важно на чём ты пишешь или когда-либо писал
Re[5]: С#
От: mSerg Украина  
Дата: 26.11.03 13:31
Оценка:
Здравствуйте, alexkro, Вы писали:

[Skipped]
A>Бардак в COM программировании опять же, а не в C++. А ты возьми comstl, и жизнь... сам знаешь
A>А в C++ со строчками все хорошо: std::string.

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

[Skipped]

WBR, Serg Matskov.
WBR, Serg Matskov
Re[2]: С#
От: Igor Trofimov  
Дата: 26.11.03 14:33
Оценка:
S_> Хороших можно, плохих нет. И при чем здесь сравнение с Delphi и VB, на дельфях разрабатывали в основном гуй и для этого нужны специалисты по дизайну и организации логики гуя. Это не програмирование но немного с ним пересекается.
S_>.NET и C# предназначены для другого.

При чем туту гуй? Ниши у C#/Delphi совпадают почти на 100%.

Я некоторое время назад пользовался одним софтовым DVD-плеером, очень симпатичным и функциональным (DVDDirect). Очень удивился, но он оказался написан на Delphi, вместе с DS-фильтрами.
Re[8]: С#
От: alexkro  
Дата: 27.11.03 23:22
Оценка:
Здравствуйте, VladD2, Вы писали:

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


VD>Так небыло никогда. Это просто твое незнание предмета. На Шарпе (как и на других языках дотнета) всегда можно было как использовать, так и создавать КОМ-объекты не реализующие диспатч.


Да. Похоже я ошибся. Интересно то, что это не только мое мнение: в одной книге так-же написано было. Видно автор той книги тоже ошибся.

A>>Зачем мне принимать что-то новое, в котором нет половины возможностей старого?


VD>Затем, что в нем (в новом) нет 99% граблей


Есть другое мнение: don't try to fix C++.

VD> (так искосно разоженных создателями С++) и не нужно напрягаться, чтобы написать корректный код. Как результат скорость создания ПО выростает на пордки. А надежность увеличивается.


A>>Мне больше по душе вот это: http://www.gotdotnet.com/team/PDC/4064/TLS310.ppt


VD>Сравни как нибудь на досуге функциональность std::vector-а и IList<T>. А потом ответь зачем std::vector нужен в дотнете?


Я не соглашусь с тем, что IList<T> может заменить vector.

VD>В общем, это догматизм. STL далек от севершенства и имеется достойные замены ему. С другой стороны если тебе хочется использовать СТЛ — используй. Получишь тормоза в дотнете, но удовлетворение от использования чего-то "родного". Если оно того стоит, то почему бы и нет?


Во-первых будет STL.NET. Во-вторых, история C++ знает многих, которые пытались переписать/переделать/придумать свою альтернативу STL. В большинстве случаев выяснялось, что они просто не понимали STL.
Re[9]: С#
От: VladD2 Российская Империя www.nemerle.org
Дата: 28.11.03 23:18
Оценка:
Здравствуйте, alexkro, Вы писали:

VD>>Затем, что в нем (в новом) нет 99% граблей


A>Есть другое мнение: don't try to fix C++.


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

Что до С++. Когда-то это был мой любимый язык. Теперь вот нет. Когда нибудь и Шарпу прийдет замена. Но пока...

A>Я не соглашусь с тем, что IList<T> может заменить vector.


Ну, что же поделаешь. А я вот соглашусь. И еще очень многие согласятся.

A>Во-первых будет STL.NET.


Это обычный СТЛ. Просто подлизанный под работу в МС++. К дотнету он никакого отношения не имет (как я понимаю). Пряник для переходящих на дотнет тех кто не может отказаться от своих привычек.

A> Во-вторых, история C++ знает многих, которые пытались переписать/переделать/придумать свою альтернативу STL. В большинстве случаев выяснялось, что они просто не понимали STL.


Не нужно делать догму и панацею из довольно примитивной библиотеки. Даже то, что многие не могут ее понять еже является ее недостатком.
... << RSDN@Home 1.1.2 beta 1 >>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[10]: С#
От: alexkro  
Дата: 29.11.03 06:54
Оценка:
Здравствуйте, VladD2, Вы писали:

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


VD>>>Затем, что в нем (в новом) нет 99% граблей


A>>Есть другое мнение: don't try to fix C++.


VD>Есть. Есть так же мнение что ассемблер самый простой и удобный мязык. А что поделаешь? Демократия, блин.


VD>Что до С++. Когда-то это был мой любимый язык. Теперь вот нет. Когда нибудь и Шарпу прийдет замена. Но пока...


C# не замена C++. Замена C++ будет выглядеть далеко не так как C# или Java.

A>>Я не соглашусь с тем, что IList<T> может заменить vector.


VD>Ну, что же поделаешь. А я вот соглашусь. И еще очень многие согласятся.


Окромя того, что я имею определенные проблеммы с существованием интерфейсов коллекций как таковых, как, например, ты удалишь диапазон элементов из IList<T>?

A>>Во-первых будет STL.NET.


VD>Это обычный СТЛ. Просто подлизанный под работу в МС++. К дотнету он никакого отношения не имет (как я понимаю). Пряник для переходящих на дотнет тех кто не может отказаться от своих привычек.


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

К тому-же не может Майкрософт изменить реализацию STL, поставляемую с компилятором. Она не принадлежит ему.

A>> Во-вторых, история C++ знает многих, которые пытались переписать/переделать/придумать свою альтернативу STL. В большинстве случаев выяснялось, что они просто не понимали STL.


VD>Не нужно делать догму и панацею из довольно примитивной библиотеки. Даже то, что многие не могут ее понять еже является ее недостатком.


Мне скорее кажется это недостатком людей, которые, не уделив должного внимания библиотекам, которых они не смогли или не захотели понять, объявляют их ущербными.
Re[11]: С#
От: VladD2 Российская Империя www.nemerle.org
Дата: 30.11.03 16:50
Оценка:
Здравствуйте, alexkro, Вы писали:

A>C# не замена C++. Замена C++ будет выглядеть далеко не так как C# или Java.


Кому как. Я вот тут давича смотрел исходники (декомпилированные) Лонгхорна... Так там очень забавно. Код взаимодействующий с анменеджед-тодом (КОМ-ом, ВинАПИ, ...) написан на МС++, а весь остальной на Шарпе (это вдино из кишков). Так что даже программисты из МС выбирают Шарп для основных задачь.

A>Окромя того, что я имею определенные проблеммы с существованием интерфейсов коллекций как таковых, как, например, ты удалишь диапазон элементов из IList<T>?


public void RemoveRange(int index, int count);

а что?

A>Не совсем обычный STL. Он сходен со стандартной библиотекой своими интерфейсами, но реализация абсолютно новая.


Главное, что ее нельзя будет применять в не в МС++. Это — значит, что к дотнету она отнешения не имет.

A> Надеюсь, ты знаешь, какие проблемы есть у стандартного STL с .NET классами.


У С++ проблем хватает. Так что когда я встречаю некоторое ограничение, меня это даже не удивляет.

A> Подлизать его не представляется возможным. Нужна реализация специально под .NET.


Честно говоря мне не нужна. Коллекции которые мнужны мне нет даже в родной СТЛ. А те что есть в СТЛ в соновном имеют аналоги в ФЦЛ.

A>К тому-же не может Майкрософт изменить реализацию STL, поставляемую с компилятором. Она не принадлежит ему.


С каких пор МС потерял право выпускать продукты такие же как у других, но другие? А вообще, лучше бы они свою написали. А то Данкамвэевская (вроде) реализация, что идет с VC совсем грязная.

A>Мне скорее кажется это недостатком людей


Возможно. И потому как заменить библиотеку куда проще, чем людей у СТЛ в дотнете нет будущего.

A>, которые, не уделив должного внимания библиотекам, которых они не смогли или не захотели понять, объявляют их ущербными.


Я гляжу тут уже прослеживаются некоторые намеки...

Ну, что же?... Сделаем вид, что это не про меня.

Мое мнение такое. Некотрые концепции применяемые в СТЛ будут жить, так как они удобны и эффектвны. Сама же СТЛ родилась слишком поздно. Настолько поздно, что успела устареть до того как ее признали. Будующее явно не за ней. Причем мне ее совсем не жалко. Что касается С++, то тут мне очень жаль, что в него не вносятся изменение которые востребованны времнем. И мне будет очень жаль если этот язык начнет уходить на второй план. Но без существенной модернизации он не удовлетворяет моим потребностям. Все это — по-моему, так что не суди...
... << RSDN@Home 1.1.2 beta 1 >>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.