Давайте поговорим о c# 3.0
От: Константин Л. Турция  
Дата: 16.09.08 13:12
Оценка: 10 (2)
Как вам язычок? Возможности? Lazy eval.? Closures? Правила explicit/implicit conv. (особенно для типов-параметров generics)? А learning curve? Размер стандарта?

пс: каждый день, когда наталкиваюсь на этюды nikov'а в ветке .net, ощущение того, что растет второй c++, укрепляется в моем мозгу. мне становится отчетливо понятно, что чтобы узнать этот язык хорошо и использовать его полноценно, мне нужно потратить еще кучу времени. c# 1.1 был довольно прост, чтобы не заглядывать в lang spec. не подумайте, что я собираюсь поднять панику, просто интересно, что кто думает по этому поводу.
Re: Давайте поговорим о c# 3.0
От: Хэлкар  
Дата: 16.09.08 14:35
Оценка: +2
Здравствуйте, Константин Л., Вы писали:

КЛ>Как вам язычок?

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


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


Этюды nikov'a — это все же очень глубококопание — 90% разработчиков не знает ответов на большинство из них и живет себе припеваючи. В спек заглядывать не обязательно — программировать вполне можно прочитав например Троелсена (так сказать спек в разжеванном виде).
Re[2]: Давайте поговорим о c# 3.0
От: Хэлкар  
Дата: 16.09.08 14:36
Оценка:
Х>Этюды nikov'a — это все же очень глубококопание — 90% разработчиков не знает ответов на большинство из них и живет себе припеваючи. В спек заглядывать не обязательно — программировать вполне можно прочитав например Троелсена (так сказать спек в разжеванном виде).

Но я не утверждаю что читать спек не надо, другое дело, что не обязательно.
Re[2]: Давайте поговорим о c# 3.0
От: nikov США http://www.linkedin.com/in/nikov
Дата: 16.09.08 14:37
Оценка:
Здравствуйте, Хэлкар, Вы писали:

Х>В спек заглядывать не обязательно — программировать вполне можно прочитав например Троелсена (так сказать спек в разжеванном виде).


Вот только не Троелсена. То что он пишет о C#, имеет очень мало общего с реальностью. Рихтер неплохо пишет.
Re[3]: Давайте поговорим о c# 3.0
От: Хэлкар  
Дата: 16.09.08 14:49
Оценка: :)
N>Вот только не Троелсена. То что он пишет о C#, имеет очень мало общего с реальностью. Рихтер неплохо пишет.

Тьфу — его и имел в виду! Сорри!
Re[3]: Давайте поговорим о c# 3.0
От: Хэлкар  
Дата: 16.09.08 15:08
Оценка:
Вобщем я не понимаю ч то с форумом, но я писал, что перепутал фамилии и хотел написать Рихтер
Re[3]: Давайте поговорим о c# 3.0
От: MozgC США http://nightcoder.livejournal.com
Дата: 16.09.08 15:21
Оценка:
Здравствуйте, nikov, Вы писали:

Х>>В спек заглядывать не обязательно — программировать вполне можно прочитав например Троелсена (так сказать спек в разжеванном виде).

N>Вот только не Троелсена. То что он пишет о C#, имеет очень мало общего с реальностью. Рихтер неплохо пишет.

А что вам не нравится у Троелсена? Я не говорю что книга идеальная, но в целом нормальная книга на мой взгляд. Можно немного подробнее?
http://www.brainbench.com/images/certlogo/color/mastercert/csharp50.gif
Re: Давайте поговорим о c# 3.0
От: GlebZ Россия  
Дата: 16.09.08 15:24
Оценка: +2
Здравствуйте, Константин Л., Вы писали:

Ну если считать хорошими языки по длине спецификации — то конечно данный язык полный отстой. Но я бы определил правильный язык для mainstream — это насколько удобно пользоваться языком не заглядывая ни в спецификации, ни в хелпари, ни в google. И тут все таки С# на порядок более удобоваримый язык. В подавляющем большинстве случаев его поведение интуитивно понятно. Во многих случаях помогает сам компилятор выводя корректную информацию об ошибках. Так что, для чего он создавался, для того он и работает на ура. Правда это не всегда касается прилагаемых к нему библиотек.
Re[4]: Давайте поговорим о c# 3.0
От: nikov США http://www.linkedin.com/in/nikov
Дата: 16.09.08 15:31
Оценка:
Здравствуйте, MozgC, Вы писали:

MC>А что вам не нравится у Троелсена? Я не говорю что книга идеальная, но в целом нормальная книга на мой взгляд. Можно немного подробнее?


К сожалению книги под рукой нет. Но помню, что находил там много просто неверных утверждений.
Единственное, что помню наизусть — он писал:
* что метод помеченный unsafe можно взывать только тоже из unsafe метода.
* что из статического метода нельзя вызвать экземпляный
* при попытке обратиться из финализатора к другому объекту, того объекта уже может не существовать в памяти
Re: Давайте поговорим о c# 3.0
От: nikov США http://www.linkedin.com/in/nikov
Дата: 16.09.08 15:33
Оценка: +2
Здравствуйте, Константин Л., Вы писали:

КЛ>Размер стандарта?


Я бы обратил внимание в первую очередь не на его размер, а на то, что он написан очень доходчиво и хорошо структурирован.
Re: Давайте поговорим о c# 3.0
От: IT Россия linq2db.com
Дата: 16.09.08 19:31
Оценка:
Здравствуйте, Константин Л., Вы писали:

КЛ>Как вам язычок?


Ничего так. Linq очень хорош. И как обманка для генерации SQL, и как молотилка данных в памяти. Но в целом развиваться ещё есть куда.
Неясность изложения обычно происходит от путаницы в мыслях.
//rsdn.org/forum/images/bis.gif Если нам не помогут, то мы тоже никого не пощадим.
Re[2]: Давайте поговорим о c# 3.0
От: Константин Л. Турция  
Дата: 16.09.08 20:30
Оценка:
Здравствуйте, Хэлкар, Вы писали:

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


КЛ>>Как вам язычок?

Х>Супер
КЛ>> Возможности?
Х>Супер
КЛ>>Lazy eval.? Closures? Правила explicit/implicit conv. (особенно для типов-параметров generics)?
Х>А что раньше не было разве? Начиная со второго C# все это было.

было, но очевиден ли этот код?

delegate int d();
d func = null;
foreach(int a in new int[]{1, 2, 3})
   func = delegate { return a; }

d();


КЛ>>А learning curve? Размер стандарта?

Х>

угу

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


Х>Этюды nikov'a — это все же очень глубококопание — 90% разработчиков не знает ответов на большинство из них и живет себе припеваючи. В спек заглядывать не обязательно — программировать вполне можно прочитав например Троелсена (так сказать спек в разжеванном виде).


у меня почему-то совсем другое впечатление. может быть потому что я привык к с++...
Re[2]: Давайте поговорим о c# 3.0
От: Константин Л. Турция  
Дата: 16.09.08 20:33
Оценка:
Здравствуйте, GlebZ, Вы писали:

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


GZ>Ну если считать хорошими языки по длине спецификации — то конечно данный язык полный отстой. Но я бы определил правильный язык для mainstream — это насколько удобно пользоваться языком не заглядывая ни в спецификации, ни в хелпари, ни в google. И тут все таки С# на порядок более удобоваримый язык. В подавляющем большинстве случаев его поведение интуитивно понятно. Во многих случаях помогает сам компилятор выводя корректную информацию об ошибках. Так что, для чего он создавался, для того он и работает на ура. Правда это не всегда касается прилагаемых к нему библиотек.


удобоваримее с++ да. но, похоже, это только у меня, но я пока не смогу ответить на 90% этюдов nikov'а буду считать что язык знаю плохо.

мне понадобилась куча времени, чтобы хорошо выучить с++. теперь надо чуть меньше, чтобы так же выучить c#. по-моему, это не есть хорошо.
Re[2]: Давайте поговорим о c# 3.0
От: Константин Л. Турция  
Дата: 16.09.08 20:35
Оценка:
Здравствуйте, nikov, Вы писали:

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


КЛ>>Размер стандарта?


N>Я бы обратил внимание в первую очередь не на его размер, а на то, что он написан очень доходчиво и хорошо структурирован.


насколько хватило времени понять, он гораздо проще стандарта с++ (уж простите что всюду приплетаю), но 500 с гаком страниц это слишком
Re: давайте конкретнее
От: Константин Л. Турция  
Дата: 16.09.08 20:36
Оценка: -1 :)
Здравствуйте, Константин Л., Вы писали:

[]

мне он кажется слишком сложным, а вам?
Re[3]: Давайте поговорим о c# 3.0
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 16.09.08 20:36
Оценка:
Здравствуйте, Константин Л., Вы писали:

КЛ>удобоваримее с++ да. но, похоже, это только у меня, но я пока не смогу ответить на 90% этюдов nikov'а буду считать что язык знаю плохо.


Тем не менее на практике такое не встречается, а если и встречается, то обычно легко понять в чем дело, когда тебе не гадать надо, а просто посмотреть, как поведет себя компилятор. Дургими словами, имея ответ, гораздо проще восстановить причину.
... << RSDN@Home 1.2.0 alpha 4 rev. 1111 on Windows Vista 6.0.6001.65536>>
AVK Blog
Re[5]: Давайте поговорим о c# 3.0
От: Огнеплюх  
Дата: 17.09.08 01:43
Оценка:
Здравствуйте, nikov, Вы писали:

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


MC>>А что вам не нравится у Троелсена? Я не говорю что книга идеальная, но в целом нормальная книга на мой взгляд. Можно немного подробнее?


N>К сожалению книги под рукой нет. Но помню, что находил там много просто неверных утверждений.

N>Единственное, что помню наизусть — он писал:
N>* что метод помеченный unsafe можно взывать только тоже из unsafe метода.
Может имелось ввиду наоборот ? Что например функции kernel.dll ( unsafe ) можно вызывать только из метода помеченным unsafe ?

N>* что из статического метода нельзя вызвать экземпляный

Дык это вроде верно

class A
{
  public static void StatMethod()
  {
    Method (); //// И что спрашивается мы вызовем если в коде напишем A.StatMethod() ? Конечно нельзя экземплярные методы в статических дергать.
  }

  public void Method()
  {
  }
}


N>* при попытке обратиться из финализатора к другому объекту, того объекта уже может не существовать в памяти

Естествено, не факт что объект еще жив и не попал в мусороуборочную машину.
Re: Давайте поговорим о c# 3.0
От: yumi  
Дата: 17.09.08 04:42
Оценка:
Здравствуйте, Константин Л., Вы писали:

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


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

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


Я кажется Вас понимаю, тут нужно изучать не в глубину, а в ширину. Много различных концепций объединены в 3й шарп, в основном от мира ФП. Надо лишь немного расширить кругозор, изучить какой-либо простенький ФП язык, а когда поймете суть этих концепций, все встанет на свои места.
Lisp is not dead. It’s just the URL that has changed:
http://clojure.org
Re[2]: давайте конкретнее
От: Andrei N.Sobchuck Украина www.smalltalk.ru
Дата: 17.09.08 06:34
Оценка:
Здравствуйте, Константин Л., Вы писали:

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


мне он кажется чрезмерно сложным.
Но с ним активно не работаю, и возможно так кажется именно по этому.
http://www.smalltalk.ru << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Я ненавижу Hibernate
Автор: Andrei N.Sobchuck
Дата: 08.01.08
!
Re[3]: Давайте поговорим о c# 3.0
От: Хэлкар  
Дата: 17.09.08 06:43
Оценка:
Здравствуйте, Константин Л., Вы писали:


КЛ>было, но очевиден ли этот код?


КЛ>
КЛ>delegate int d();
КЛ>d func = null;
КЛ>foreach(int a in new int[]{1, 2, 3})
КЛ>   func = delegate { return a; }

КЛ>d();

КЛ>


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

КЛ>>>А learning curve? Размер стандарта?

Х>>

КЛ>угу


Стандарт С++ имхо ничуть не проще. А сколько людей на нем пишет!

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


Так всегда.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.