Здравствуйте, kuj, Вы писали: kuj>Свойства, атрибуты, отражения? Можно узнать урлы библиотек, реализующих это?
Свойства — нет, это фича компилятора.
System.Attribute лежит в Mscorlib.dll
System.Reflection.* — там же
System.String — там же
System.Array — там же
System.Delegate — там же
System.Decimal — там же. kuj>Да, а еще хотелось бы урл на полноценный эфемерный сборщик муссора с дефрагментацией кучи, масштабируемый на многопроцессорной системе и отдельной кучей для больших объектов. Можно? Буду очень признателен!
.NET Framework Redistributable. Ты думаешь если из него снести csc.exe, то сборщик мусора работать перестанет?
... << RSDN@Home 1.1.3 beta 2 >>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Здравствуйте, kuj, Вы писали:
kuj>Здравствуйте, Воронков Василий, Вы писали:
kuj>>>Открываете спецификацию C# и убеждаетесь в его правоте. Все (кроме, разве что, отражений) вышеперечисленные понятия имеют непосредственное отношение к языку C#.
ВВ>>При этом все это реализовано на уровне библиотек. kuj>Свойства,
Ну свойства это язык
kuj>атрибуты,
System.Attribute (mscorlib.dll)
kuj>отражения?
System.Reflection.* (mscorlib.dll)
kuj>Да, а еще хотелось бы урл на полноценный эфемерный сборщик муссора с дефрагментацией кучи, масштабируемый на многопроцессорной системе и отдельной кучей для больших объектов.
Здравствуйте, Воронков Василий, Вы писали:
kuj>>>>Открываете спецификацию C# и убеждаетесь в его правоте. Все (кроме, разве что, отражений) вышеперечисленные понятия имеют непосредственное отношение к языку C#.
ВВ>>>При этом все это реализовано на уровне библиотек. kuj>>Свойства, ВВ>Ну свойства это язык
kuj>>атрибуты, ВВ>System.Attribute (mscorlib.dll)
Стоп-стоп! Речь ведь о C++, а не о managed C++. Это два разных языка. А managed языки отличаются очень незначительно.
ВВ>8. События. ВВ>Реализованы на делегатах
Но поддержка со стороны языка в виде ключевого слова event.
Здравствуйте, Sinclair, Вы писали:
kuj>>Свойства, атрибуты, отражения? Можно узнать урлы библиотек, реализующих это? S>Свойства — нет, это фича компилятора. S>System.Attribute лежит в Mscorlib.dll
Хм , если бы Вы внимательно перечитали тред, то заметили бы, что на протяжении всего треда речь шла о сопоставлении "unmanaged" C++ и C#. Естественно, managed C++ от C# функционально почти не отличается. С этим никто по-моему и не спорил.
Здравствуйте, kuj, Вы писали:
kuj>>>атрибуты, ВВ>>System.Attribute (mscorlib.dll) kuj>Стоп-стоп! Речь ведь о C++, а не о managed C++. Это два разных языка. А managed языки отличаются очень незначительно.
Здравствуйте, Воронков Василий, Вы писали:
kuj>>>>атрибуты, ВВ>>>System.Attribute (mscorlib.dll) kuj>>Стоп-стоп! Речь ведь о C++, а не о managed C++. Это два разных языка. А managed языки отличаются очень незначительно.
ВВ>A причем здесь вообще С++? Мы же о C# говорим.
А>>Ясно) Интересно, что у тебя за проект, и почему его решили на шарпе писать?)
V>Много всяких. От всякого бухгалтерского дерьма, систем обработки заказов, до оптимизаций грузоперевозок. Шарп используется, потому что на нём удобно проектировать сложные проекты. Я понимаю, что проектирование и язык программирования суть разные вещи, я имею ввиду в шарпе удобно спроектированные конструкции воплощать. Эвенты, делегаты, сборщик мусора, аттрибуты, большая библиотека классов и ограниченность языка по сравнению с С++ -- всё это
делает проект дешевле. С другой стороны, меня тошнит уже. Но бизнес есть бизнес.
Так C++, за исключением шаблонов, более ограниченный язык.
Здравствуйте, kuj, Вы писали:
kuj>Так C++, за исключением шаблонов, более ограниченный язык.
В ответ на что я написал, что это C# более ограниченный язык. А фичи C#, о которых вы говорите, являются фичам платформы .NET, и к языку имеют весьма опосредованное отношение.
Здравствуйте, Воронков Василий, Вы писали:
kuj>>Так C++, за исключением шаблонов, более ограниченный язык.
ВВ>В ответ на что я написал, что это C# более ограниченный язык. А фичи C#, о которых вы говорите, являются фичам платформы .NET, и к языку имеют весьма опосредованное отношение.
На что я ответил, что они являются также и фичами языков, которые относятся к этой платформе и предложил Вам заглянуть в спецификацию C#.
Здравствуйте, kuj, Вы писали:
kuj>Здравствуйте, Воронков Василий, Вы писали:
kuj>>>Так C++, за исключением шаблонов, более ограниченный язык.
ВВ>>В ответ на что я написал, что это C# более ограниченный язык. А фичи C#, о которых вы говорите, являются фичам платформы .NET, и к языку имеют весьма опосредованное отношение. kuj>На что я ответил, что они являются также и фичами языков, которые относятся к этой платформе и предложил Вам заглянуть в спецификацию C#.
Здравствуйте, kuj, Вы писали: kuj>Хм , если бы Вы внимательно перечитали тред, то заметили бы, что на протяжении всего треда речь шла о сопоставлении "unmanaged" C++ и C#. Естественно, managed C++ от C# функционально почти не отличается. С этим никто по-моему и не спорил.
Я вообще ничего про managed мы unmanaged не говорил. Вы спросили урл библиотеки, которая реализует функциональность, предоставленную (по вашему мнению) C#. Вот я вам его и дал.
... << RSDN@Home 1.1.3 beta 2 >>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Здравствуйте, Sinclair, Вы писали:
kuj>>Хм , если бы Вы внимательно перечитали тред, то заметили бы, что на протяжении всего треда речь шла о сопоставлении "unmanaged" C++ и C#. Естественно, managed C++ от C# функционально почти не отличается. С этим никто по-моему и не спорил. S>Я вообще ничего про managed мы unmanaged не говорил. Вы спросили урл библиотеки, которая реализует функциональность, предоставленную (по вашему мнению) C#. Вот я вам его и дал.
Спасибо конечно, но, боюсь, что unmanaged (который ANSI) C++ эту библиотеку не поймет. Так что ваш ответ, мягко говоря, был э-э-э.. "мимо тазика".
Здравствуйте, kuj, Вы писали: kuj>Спасибо конечно, но, боюсь, что unmanaged (который ANSI) C++ эту библиотеку не поймет. Так что ваш ответ, мягко говоря, был э-э-э.. "мимо тазика".
Так, проблемы с reading skills. Попробую объяснить поподробнее:
1. Спор зашел о том, какой из языков более ограничен
2. Василий утверждает, что C#.
3. Аноним пытется привести в опровержение список фич, которых нет в С++
4. Василий отвечает ему, что в C# этих фич тоже нет.
5. Ты начинаешь ссылаться на спецификации С#
6. Василий намекает, что почти все из упомянутого, реализуется не C#, а библиотеками.
7. Ты требуешь их предъявить.
Ну вот я и предъявил. А теперь ты начинаешь делать вид, что говорил про библиотеки для С++. Не было такого.
... << RSDN@Home 1.1.3 beta 2 >>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Здравствуйте, Воронков Василий, Вы писали:
ВВ>В ответ на что я написал, что это C# более ограниченный язык. А фичи C#, о которых вы говорите, являются фичам платформы .NET, и к языку имеют весьма опосредованное отношение.
А что есть Шарп не под дотнет? Считай дотнет рантаймом Шарпа. Что это изменит. Ведь без CRT в VC невозможно даже глобальные переменные проинициализировать.
Безспорно реализация многих фич дотнета связана с CLR и FCL, но ведь язык от этого языком быть не перестает.
Я так полностью согласен с тем, что Шарп богаче С++. Есть только несколько фич которых нет в Шарпе, но есть в С++:
1. Деструкторы (так они ненужны, да и кое что есть)
2. Множественное наследование (приятная фича для подключения реализаций)
3. Шаблоны (частично будут компенсированы в Шарпе 2)
4. Const для как ограничитель модифицируемости переменных (в общем фигня, жить не мешает, даже упрощает жизнь).
5. Возможность пергружать оператор "=" (реально больше вред, чем полезная фича)
6. Возможно перегрузки операторов << >> не для сдвигов (со вторым параметром не равным int). (опять же сделано чтобы люди не использовали средсва языка не по их назначению, хотя это как раз уже спроное решение)
7. typedef
8. Сложные макросы
9. Большая совместимость с С.
Больше я ничего не помню.
Все остальное в Шаре или лучше, или больше. Ну, и что, что даже строгая типизация — это тоже заслуга CLR? Она же есть? А в С++ ее нет.
Причем список то далеко не полон. Есть еще:
1. Интерфейсы
2. Безопасные функции с переменным количеством параметров
3. Встроенные массивы
4. Боксинг/анбоксинг.
5. Полная типобезопастность в сэйф-режиме.
6. Модульность. (а значит большая отчуждаемость и скорость компиляции)
7. Компнентность.
8. finally
... << RSDN@Home 1.1.3 beta 2 >>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, Sinclair, Вы писали:
S>System.Attribute лежит в Mscorlib.dll
Атрибуты тоже фича копилятора. Мало ли что они требуют поддрежки CLR. S>System.Reflection.* — там же
Пожалй единственное польностью не относящееся к языку. S>System.String — там же
Фиг. Это всего лишь реализация. string описан в спецификации Шарпп. Так что это язык. S>System.Array — там же
Тоже опиман в стандатре. Но массивы — это не System.Array. Это встроенные в язык средства работы с ними. А они все описаны в спецификации. Джагед-массивы так вообще фича уникальная для шарпа. S>System.Delegate — там же
И они описаны. Вы все время путаете понятия требует поддержки рантайма и является частью языка. Есть ключевое слово delegate. Оно в спецификации. Ну, как можно рассуждать о том, что оно не оно не отностися к языку? S>System.Decimal — там же.
Что тоже? Его нет в специяикации? Компилятор требует отдельного класса для организации вычисления с ним?
kuj>>Да, а еще хотелось бы урл на полноценный эфемерный сборщик муссора с дефрагментацией кучи, масштабируемый на многопроцессорной системе и отдельной кучей для больших объектов. Можно? Буду очень признателен! S>.NET Framework Redistributable. Ты думаешь если из него снести csc.exe, то сборщик мусора работать перестанет?
Кстати, без Шарпа дотнет не заработает. Все что написано не на С++ написанно именно на нем. Но думаю он спрашивал о подобных библиотеках для С++.
... << RSDN@Home 1.1.3 beta 2 >>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, Sinclair, Вы писали:
S>4. Василий отвечает ему, что в C# этих фич тоже нет.
Sinclair, а ты сам то давно читал спецификацию Шарпа? Как можно говорить, что чего-то нет в языке если это его часть?
S>5. Ты начинаешь ссылаться на спецификации С#
И правильно делает.
S>6. Василий намекает, что почти все из упомянутого, реализуется не C#, а библиотеками.
Да? Какой библиотечной функцией содается массив в Шареп? А какой определяется его длинна?
А как с помощью библиотеки в Шарпе определить делегат?
А в какой библиотеке лежит foreach? Ведь он зачастую разворачивается в аналог for.
S>7. Ты требуешь их предъявить. S>Ну вот я и предъявил. А теперь ты начинаешь делать вид, что говорил про библиотеки для С++. Не было такого.
Ну, задействуй их и попробуй получить в анменеджед-С++ все эти фичи.
И ответь, чем это все опровергает его слова о том, что Шарп более богатый язык?
Если считать по количеству фич, то это факт. Другое дело, что фичи вроде Шаблонов и МН могут многое перевесить.
... << RSDN@Home 1.1.3 beta 2 >>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, VladD2, Вы писали:
VD>Безспорно реализация многих фич дотнета связана с CLR и FCL, но ведь язык от этого языком быть не перестает.
VD>Я так полностью согласен с тем, что Шарп богаче С++. Есть только несколько фич которых нет в Шарпе, но есть в С++: VD>1. Деструкторы (так они ненужны, да и кое что есть)
Есть и в C#. Даже синтаксис такой же. VD>2. Множественное наследование (приятная фича для подключения реализаций)
Есть множественное интерфейсное наследование. VD>3. Шаблоны (частично будут компенсированы в Шарпе 2)
Почему частично? VD>4. Const для как ограничитель модифицируемости переменных (в общем фигня, жить не мешает, даже упрощает жизнь).
const тоже есть. VD>7. typedef
А зачем? VD>8. Сложные макросы
Зачем? VD>9. Большая совместимость с С.
Здравствуйте, VladD2, Вы писали:
VD>Если считать по количеству фич, то это факт. Другое дело, что фичи вроде Шаблонов и МН могут многое перевесить.
По поводу шаблонов абсолютно согласен. Но есть ведь МИН. Зачем еще обычное МН? Нет, не спорю, МН может пригодится, но так ли часто? К тому же, само по себе оно весь небезопасно...
Здравствуйте, kuj, Вы писали:
kuj>По поводу шаблонов абсолютно согласен. Но есть ведь МИН. Зачем еще обычное МН? Нет, не спорю, МН может пригодится, но так ли часто? К тому же, само по себе оно весь небезопасно...
Я не знаю что значит И в МИН. А по поводу МН... дорого яичко к христову дню. Само МН не в полном объеме может и не нужно. А вот подключение готовых реализаций (совместно с шаблонами) которое оно позволяет делать очень даже полезно. Правда в R#-е это уже делается и без МН. Да и других способов обхъода проблемы много, но в C# их нет. Вернее есть самые некрасивые и трудоемкие решения.
... << RSDN@Home 1.1.3 beta 2 >>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, kuj, Вы писали:
VD>>1. Деструкторы (так они ненужны, да и кое что есть) kuj>Есть и в C#. Даже синтаксис такой же.
Синтаксис то такой же, но семантика разная. В Шарпе — это финалайзер. Может вызваться черт знает когда, а десртуктор всегда при вызоде из области видимости.
Лично я бы оставил эту фичу для структур.
VD>>2. Множественное наследование (приятная фича для подключения реализаций) kuj>Есть множественное интерфейсное наследование.
Это разные вещи. Реализацию таким образом не подключишь.
VD>>3. Шаблоны (частично будут компенсированы в Шарпе 2) kuj>Почему частично?
Потому что возможности шаблонов С++ намного шире чем дженериков. Правда с точки зрения чистоты и простоты языка — это даже плюс. Но ограничение на лицо.
VD>>4. Const для как ограничитель модифицируемости переменных (в общем фигня, жить не мешает, даже упрощает жизнь). kuj>const тоже есть.
Опять же есть, да не тот. Попробуй в шарпе вот такое написать:
int f(const int i) const
{
const k = i + 3;
// k++; // вот тут бы компилятор послал бы на фиг
// _classMember++; // и тут тожеreturn k;
}
VD>>7. typedef kuj>А зачем?
Хотя бы за тем, чтобы HDC нельзя было присвоить к HWND. А вообще, это позволяет иногда существенно сократить объем кода и очень полезно в сочетании с шаблонами.
VD>>8. Сложные макросы kuj>Зачем?
Тут я согласен, что в том виде в каком они есть в С++ лучше бы их и вовсе небыло. Ну, есть же!
VD>>9. Большая совместимость с С. kuj>
Опять же я тоже считаю это скорее недостатком, но это факт.
... << RSDN@Home 1.1.3 beta 2 >>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.