Re[4]: Давайте поговорим о c# 3.0
От: Константин Л. Франция  
Дата: 17.09.08 16:10
Оценка:
Здравствуйте, GlebZ, Вы писали:

[]

КЛ>>мне понадобилась куча времени, чтобы хорошо выучить с++.

GZ>Везука. А вот мне все равно он преподносит сюрпризы.

ну мне тоже, с ним всегда так
Re[2]: Давайте поговорим о c# 3.0
От: EvilChild Ниоткуда  
Дата: 17.09.08 17:52
Оценка:
Здравствуйте, IT, Вы писали:

IT>Ничего так. Linq очень хорош. И как обманка для генерации SQL, и как молотилка данных в памяти. Но в целом развиваться ещё есть куда.

Становиться ещё более функциональным?
now playing: Braincell — Abductions
Re[2]: давайте конкретнее
От: EvilChild Ниоткуда  
Дата: 17.09.08 18:01
Оценка:
Здравствуйте, Константин Л., Вы писали:

КЛ>мне он кажется слишком сложным, а вам?

Сложным в каком месте?
Он же существенно проще в освоении, чем C++.
now playing: Braincell — Cognition
Re[3]: Давайте поговорим о c# 3.0
От: IT Россия linq2db.com
Дата: 17.09.08 18:25
Оценка:
Здравствуйте, EvilChild, Вы писали:

IT>>Ничего так. Linq очень хорош. И как обманка для генерации SQL, и как молотилка данных в памяти. Но в целом развиваться ещё есть куда.

EC>Становиться ещё более функциональным?

В том числе.
Неясность изложения обычно происходит от путаницы в мыслях.
Если нам не помогут, то мы тоже никого не пощадим.
Re[4]: Давайте поговорим о c# 3.0
От: EvilChild Ниоткуда  
Дата: 17.09.08 18:34
Оценка:
Здравствуйте, IT, Вы писали:

EC>>Становиться ещё более функциональным?


IT>В том числе.


Озвучишь?
now playing: Super Flu — Sambalg
Re[5]: Давайте поговорим о c# 3.0
От: IT Россия linq2db.com
Дата: 17.09.08 18:48
Оценка:
Здравствуйте, EvilChild, Вы писали:

EC>Озвучишь?


Что именно?
Неясность изложения обычно происходит от путаницы в мыслях.
Если нам не помогут, то мы тоже никого не пощадим.
Re[3]: давайте конкретнее
От: maggot  
Дата: 17.09.08 18:49
Оценка: -2 :))) :)
Здравствуйте, EvilChild, Вы писали:

EC>Здравствуйте, Константин Л., Вы писали:


КЛ>>мне он кажется слишком сложным, а вам?

EC>Сложным в каком месте?
EC>Он же существенно проще в освоении, чем C++.
Интересное мнение. Хотя с C# я не работал, читая осуждения на форумах, у меня складывалось впечатление, что он сложнее С++. По крайней мере, там больше различных фитч. И не удивительно. Ведь у C# в отличие от C++ нет коммитета стандартизации — его разрабатывают в пределах одной компании, а следовательно изменения в язык могут вноситься быстрее.

Да, и чем, кстати, С++ сложен? ИМХО там всё довольно просто.
Re[5]: Давайте поговорим о c# 3.0
От: EvilChild Ниоткуда  
Дата: 17.09.08 19:23
Оценка:
Здравствуйте, EvilChild, Вы писали:

IT>>В том числе.


EC>Озвучишь?


То, что не вошло в число.
now playing: Super Flu — Killifisch
Re[4]: давайте конкретнее
От: EvilChild Ниоткуда  
Дата: 17.09.08 19:34
Оценка:
Здравствуйте, maggot, Вы писали:

EC>>Он же существенно проще в освоении, чем C++.

M>Интересное мнение. Хотя с C# я не работал, читая осуждения на форумах, у меня складывалось впечатление, что он сложнее С++. По крайней мере, там больше различных фитч. И не удивительно. Ведь у C# в отличие от C++ нет коммитета стандартизации — его разрабатывают в пределах одной компании, а следовательно изменения в язык могут вноситься быстрее.
Стандарт есть.
В нём меньше граблей разложено. Гораздо сложнее случайно прострелить себе ногу.
Почти всё реализовано интуитивно понятно.
В плюсах один name lookup чего стоит. Шаблоны тоже сложнее в использовании чем дженерики.
На дженериках compile time metaprogramming не замутишь.
Нет макросов.
Есть компонентность.
Это первое, что на ум приходит, если подумать, то найдётся ещё много чего.
Любой вменяемый плюсовик может продуктивно использовать C# с минимальными услиями — обратное неверно.

M>Да, и чем, кстати, С++ сложен? ИМХО там всё довольно просто.

Сколько времени ты на нём пишешь?
now playing: Super Flu — She
Re: Давайте поговорим о c# 3.0
От: MxKazan Португалия  
Дата: 17.09.08 20:25
Оценка: -7 :))) :)))
Здравствуйте, Константин Л., Вы писали:

КЛ>Как вам язычок? Возможности? Lazy eval.? Closures? Правила explicit/implicit conv. (особенно для типов-параметров generics)? А learning curve? Размер стандарта?


КЛ>пс: каждый день, когда наталкиваюсь на этюды nikov'а в ветке .net, ощущение того, что растет второй c++, укрепляется в моем мозгу. мне становится отчетливо понятно, что чтобы узнать этот язык хорошо и использовать его полноценно, мне нужно потратить еще кучу времени. c# 1.1 был довольно прост, чтобы не заглядывать в lang spec. не подумайте, что я собираюсь поднять панику, просто интересно, что кто думает по этому поводу.


Согласен с p.s. Тоже укрепляюсь в подобном мнении. К сожалению.
На мой взгляд, реальным плюсом со времен C# 1.1 явились только generic'и причем без implicit.

Особенно меня огорчают extension methods. Интересная вещь, неплохо расширившая функциональность коллекций. Но! Но ведь это абсолютное нарушение концепции ООП! Это же фактически возврат к процедурному программированию. Поддавшись соблазну, ввел в проекте несколько "расширетелей", пользовались ими некоторое время. И всё же вернулись к типичной конструкции static helper'ов.

Подстановка типов для generic'ов. Ну зачем это? Кому оно необходимо? Зато результат — поди догадайся что вызовится. Либо конкретно знать стандарт, либо сидеть гадать — дай Бог, чтобы не на кофейной гуще. Интересно, прикольно, ничего не имею против этюдов, но на практике это скорее зло, чем благо.

А еще я бы убил yield return

P.S. Тем не менее, если оставить сам C# и посмотреть в целом на Framework, то очень радует развитие. Особенно WPF — давно жаждал такого.
Re[5]: давайте конкретнее
От: maggot  
Дата: 17.09.08 20:38
Оценка:
Здравствуйте, EvilChild, Вы писали:

EC>Стандарт есть.

EC>В нём меньше граблей разложено. Гораздо сложнее случайно прострелить себе ногу.
EC>Почти всё реализовано интуитивно понятно.
EC>В плюсах один name lookup чего стоит.
Конечно, можно написать код, в котором потом разбираться будет очень проблематично.
EC>Шаблоны тоже сложнее в использовании чем дженерики.
EC>На дженериках compile time metaprogramming не замутишь.
В этом их сила Кстати, в C# есть частичная специализация дженериков?
EC>Нет макросов.
Макросы рудиментарный анахронизм. Я думаю, пора бы с новым стандартом избавить С++ от макросов. А для совместимости со старыми стандартами производители компиляторов могут делать дополнительные опции, включающие совместимость с ними.
А так, макросы не усложняют сам язык. Просто некоторые разработчики их лепят там, где без них можно обойтись.
EC>Есть компонентность.
EC>Это первое, что на ум приходит, если подумать, то найдётся ещё много чего.
EC>Любой вменяемый плюсовик может продуктивно использовать C# с минимальными услиями — обратное неверно.
Ну а yield и всё что с ним связано считается простой вещью в C#?

EC>Сколько времени ты на нём пишешь?

3 года.
Re[4]: давайте конкретнее
От: Sinclair Россия https://github.com/evilguest/
Дата: 18.09.08 04:50
Оценка: 1 (1)
Здравствуйте, maggot, Вы писали:
M>Да, и чем, кстати, С++ сложен? ИМХО там всё довольно просто.
Так все думают, пока на экзамен не придут.
... << RSDN@Home 1.2.0 alpha rev. 677>>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[13]: Давайте поговорим о c# 3.0
От: eao197 Беларусь http://eao197.blogspot.com
Дата: 18.09.08 06:35
Оценка:
Здравствуйте, Klapaucius, Вы писали:

E>>Пока из ваших объяснений я так и не понял, чтоже именно произойдет с объектами A и B. Такое впечатление, что они либо остануться жить вечно, либо их финализаторы гарантированно вызовутся раньше очистки памяти.


K>Думаю, что это объясняется здесь.
Автор(ы): Игорь Ткачев
Дата: 06.12.2002
Алгоритм работы сборщика мусора (garbage collector, далее просто GC), являющегося частью CLR, подробно описан в книге Джефри Рихтера (Jeffrey Richter) «Applied Microsoft .NET Framework Programming». Мы не будем приводить здесь столь же подробное описание этого алгоритма, но обязательно остановимся на некоторых ключевых моментах.


Ну да, так и получается: f-reachable queue является одним из корней для GC, а изъятие объекта из f-reachable queue производится только после вызова финализатора. Т.е. пока оба финализатора для A и B не будут вызваны, ни один из них не попадет под очистку (т.к. кто-то из них остается в f-reachable queue). Следовательно, финализаторы гарантированно вызовутся раньше очистки памяти.


SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Re[14]: Давайте поговорим о c# 3.0
От: Klapaucius  
Дата: 18.09.08 07:09
Оценка:
Здравствуйте, eao197, Вы писали:

E>>>Пока из ваших объяснений я так и не понял, чтоже именно произойдет с объектами A и B. Такое впечатление, что они либо остануться жить вечно, либо их финализаторы гарантированно вызовутся раньше очистки памяти.


E>Ну да, так и получается: f-reachable queue является одним из корней для GC, а изъятие объекта из f-reachable queue производится только после вызова финализатора. Т.е. пока оба финализатора для A и B не будут вызваны, ни один из них не попадет под очистку (т.к. кто-то из них остается в f-reachable queue). Следовательно, финализаторы гарантированно вызовутся раньше очистки памяти.


Если вызовутся, то вызовутся раньше очистки памяти. Вызов финализаторов, насколько я знаю, не гарантирован. Гарантирована жизнь объектов, к которым можно обратиться.
... << RSDN@Home 1.2.0 alpha 4 rev. 1110>>
'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[6]: давайте конкретнее
От: WolfHound  
Дата: 18.09.08 14:03
Оценка:
Здравствуйте, maggot, Вы писали:

EC>>В плюсах один name lookup чего стоит.

M>Конечно, можно написать код, в котором потом разбираться будет очень проблематично.
Не о том речь. Почитай правила поиска имен стандарт писали садомазохисты.

EC>>Шаблоны тоже сложнее в использовании чем дженерики.

EC>>На дженериках compile time metaprogramming не замутишь.
M>В этом их сила
Посмотри на немерле... тогда ты может быть поймешь что такое метапрограммирование.

M>Кстати, в C# есть частичная специализация дженериков?

Нет и не надо.

M>А так, макросы не усложняют сам язык. Просто некоторые разработчики их лепят там, где без них можно обойтись.

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

M>Ну а yield и всё что с ним связано считается простой вещью в C#?

Тривиальной.
Я кстати к С++ его прикрутил. Макросами... ну влом мне было руками конечный автомат для парсинга HTTP протокола в асинхронном сервере писать.
... << RSDN@Home 1.2.0 alpha rev. 745>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[7]: давайте конкретнее
От: Константин Л. Франция  
Дата: 18.09.08 15:00
Оценка:
Здравствуйте, WolfHound, Вы писали:

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


EC>>>В плюсах один name lookup чего стоит.

M>>Конечно, можно написать код, в котором потом разбираться будет очень проблематично.
WH>Не о том речь. Почитай правила поиска имен стандарт писали садомазохисты.

ничего особенного

EC>>>Шаблоны тоже сложнее в использовании чем дженерики.

EC>>>На дженериках compile time metaprogramming не замутишь.
M>>В этом их сила
WH>Посмотри на немерле... тогда ты может быть поймешь что такое метапрограммирование.

+1

M>>Кстати, в C# есть частичная специализация дженериков?

WH>Нет и не надо.

-1

[]
Re[8]: давайте конкретнее
От: WolfHound  
Дата: 18.09.08 15:28
Оценка:
Здравствуйте, Константин Л., Вы писали:

WH>>Не о том речь. Почитай правила поиска имен стандарт писали садомазохисты.

КЛ>ничего особенного
Это ADL то ничего особенного?

M>>>Кстати, в C# есть частичная специализация дженериков?

WH>>Нет и не надо.
КЛ>-1
Специализация вобще и частичная в частности очень дорого стоят. Они несовместимы с компонентной моделью.
... << RSDN@Home 1.2.0 alpha rev. 745>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[6]: давайте конкретнее
От: IT Россия linq2db.com
Дата: 18.09.08 17:44
Оценка:
Здравствуйте, maggot, Вы писали:

M>В этом их сила Кстати, в C# есть частичная специализация дженериков?


При необходимости эмулируется.
Неясность изложения обычно происходит от путаницы в мыслях.
Если нам не помогут, то мы тоже никого не пощадим.
Re[9]: давайте конкретнее
От: Константин Л. Франция  
Дата: 18.09.08 19:37
Оценка:
Здравствуйте, WolfHound, Вы писали:

WH>Здравствуйте, Константин Л., Вы писали:


WH>>>Не о том речь. Почитай правила поиска имен стандарт писали садомазохисты.

КЛ>>ничего особенного
WH>Это ADL то ничего особенного?

ага

M>>>>Кстати, в C# есть частичная специализация дженериков?

WH>>>Нет и не надо.
КЛ>>-1
WH>Специализация вобще и частичная в частности очень дорого стоят. Они несовместимы с компонентной моделью.

не совместима и не надо разные вещи. да и наверняка что-нить можно было придумать, хоть и не тривиально это все
Re[10]: давайте конкретнее
От: WolfHound  
Дата: 18.09.08 19:46
Оценка:
Здравствуйте, Константин Л., Вы писали:

КЛ>не совместима и не надо разные вещи.

На халяву почему бы и нет. Но если нужно платить...

КЛ>да и наверняка что-нить можно было придумать, хоть и не тривиально это все

Придумай.
... << RSDN@Home 1.2.0 alpha rev. 745>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.