c#
От: Kubyshev Andrey  
Дата: 03.05.13 14:21
Оценка: +1 :)
Привет всем,
Лет 10 ездил на коробке. Думал нафига мне автомат, коробка это же "все под контролем". Пересел на автомат, на коробку обратно не хочу
СиПлюсПлюсил много лет, попробовал по-СиШарпить — обратно не хочется. НО ПРИДЕТСЯ!
Re: c#
От: Aлeкceй  
Дата: 03.05.13 15:13
Оценка:
Здравствуйте, Kubyshev Andrey, Вы писали:

KA>Привет всем,

KA>Лет 10 ездил на коробке. Думал нафига мне автомат, коробка это же "все под контролем". Пересел на автомат, на коробку обратно не хочу

А ведь сборке мусора более 50-ти лет...
Re: c#
От: Коваленко Дмитрий Россия http://www.ibprovider.com
Дата: 03.05.13 15:19
Оценка:
Здравствуйте, Kubyshev Andrey, Вы писали:

KA>Привет всем,

KA>Лет 10 ездил на коробке. Думал нафига мне автомат, коробка это же "все под контролем". Пересел на автомат, на коробку обратно не хочу
KA>СиПлюсПлюсил много лет, попробовал по-СиШарпить — обратно не хочется. НО ПРИДЕТСЯ!
KA>

13 лет на плюсах. Один на шарпе (по началу — феерические ощущения). Потом снова 9 месяцев на плюсах (кстати, после шарпа, с очень хорошим плюсом. но дело не в языке). Сейчас вот снова на шарпе, и снова прет

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

-- Пользователи не приняли программу. Всех пришлось уничтожить. --
Re: c#
От: Big Ben Великобритания  
Дата: 03.05.13 15:43
Оценка:
Здравствуйте, Kubyshev Andrey, Вы писали:

KA>Привет всем,

KA>Лет 10 ездил на коробке. Думал нафига мне автомат, коробка это же "все под контролем". Пересел на автомат, на коробку обратно не хочу
KA>СиПлюсПлюсил много лет, попробовал по-СиШарпить — обратно не хочется. НО ПРИДЕТСЯ!
KA>

Шарп, пожалуй, самый приятный язык программирования с адаптацией под любые кривые руки, и под прямые тоже. Но развращает. Надо время от времени делать встряску себе, хотя бы вставлением native кода чтобы вспоминать как компьютер работает
Лучше конечно по ходу всегда мысленно транслировать C# в C++ чтобы становилось страшно и приятно одновременно. Это не будет позволять слишком отрываться от реальности )
Re[2]: c# перезащищенность
От: include2h  
Дата: 05.05.13 07:40
Оценка: -5 :))
Здравствуйте, Big Ben, Вы писали:

BB>Шарп, пожалуй, самый приятный язык программирования с адаптацией под любые кривые руки, и под прямые тоже.


10 лет кодил кодесы на С++. Тут недавно взял проект на c#. Язык конечно хороший, синтаксис более красивый и продуманный, но...
В си есть такая функция atoi. Простая как дупель пусто-пусто. Любую строку, если в строке записано число, превращает в число, иначе возвращает ноль. Меня это вполне устраивало... но нет, в C# аналог (Convert.TiInt32) зачем-то выбрасывает исключение. Пришлось писать функцию-обертку в специальном статическом классе.

Далее, эти поросята "постарались" с интернационализацией. Во всем мире в качестве разделителя используется точка, а у нас почему-то запятая. Вместо того, чтобы силой навязать нам точку, заставить привести национальные стандарты в соответствие мировым (кстати, а есть ли они, такие стандарты — может это просто глупость какая-то), ребята из M$ взяли и сделали, что в России при преобразовании float -> string ставятся запятые. Всякие DataGridView при вводе понимают только запятые и бросают исключения, если ввести точку.
Но MySQL-то понимает только точки!
А заказчик вообще захотел вводить и запятые, и точки, и чтобы все работало.
Вот и еще одну обертку пришлось писать.
Re[3]: c# перезащищенность
От: artelk  
Дата: 05.05.13 08:56
Оценка: 1 (1)
Здравствуйте, include2h, Вы писали:

I>В си есть такая функция atoi. Простая как дупель пусто-пусто. Любую строку, если в строке записано число, превращает в число, иначе возвращает ноль. Меня это вполне устраивало... но нет, в C# аналог (Convert.TiInt32) зачем-то выбрасывает исключение. Пришлось писать функцию-обертку в специальном статическом классе.

int.TryParse?

I>Далее, эти поросята "постарались" с интернационализацией. Во всем мире в качестве разделителя используется точка, а у нас почему-то запятая. Вместо того, чтобы силой навязать нам точку, заставить привести национальные стандарты в соответствие мировым (кстати, а есть ли они, такие стандарты — может это просто глупость какая-то), ребята из M$ взяли и сделали, что в России при преобразовании float -> string ставятся запятые. Всякие DataGridView при вводе понимают только запятые и бросают исключения, если ввести точку.

По умолчанию используется текущая культура.
Re[3]: c# перезащищенность
От: MxMsk Португалия  
Дата: 05.05.13 11:17
Оценка: 1 (1) +2
Здравствуйте, include2h, Вы писали:

I>Вот и еще одну обертку пришлось писать.

Может, вместо обертки стоит книжечки там почитать, документацию? Форумы к конце то концов!
Re[3]: c# перезащищенность
От: breee breee  
Дата: 05.05.13 12:19
Оценка:
Здравствуйте, include2h, Вы писали:

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


BB>>Шарп, пожалуй, самый приятный язык программирования с адаптацией под любые кривые руки, и под прямые тоже.


I>10 лет кодил кодесы на С++. Тут недавно взял проект на c#. Язык конечно хороший, синтаксис более красивый и продуманный, но...

I>В си есть такая функция atoi. Простая как дупель пусто-пусто. Любую строку, если в строке записано число, превращает в число, иначе возвращает ноль.
Эта функция в C++ deprecated, так как не позволяет отличить 0 от невалидной строки. Лучше использовать strtol.

I>Меня это вполне устраивало... но нет, в C# аналог (Convert.TiInt32) зачем-то выбрасывает исключение. Пришлось писать функцию-обертку в специальном статическом классе.


Int32.TryParse делает то, что вам нужно.
Re: c#
От: Mystic Украина http://mystic2000.newmail.ru
Дата: 05.05.13 13:01
Оценка:
Здравствуйте, Kubyshev Andrey, Вы писали:

KA>СиПлюсПлюсил много лет, попробовал по-СиШарпить — обратно не хочется. НО ПРИДЕТСЯ!


У меня C# не пошел. Если мне не важна производительности, то я выберу что-то питоно или рубиподобное. а если производительность нужна, то программирование на C# для меня достаточно некомфортно.
Re: c#
От: MTD https://github.com/mtrempoltsev
Дата: 05.05.13 19:04
Оценка: 1 (1) +10 -3
Здравствуйте, Kubyshev Andrey, Вы писали:

KA>Лет 10 ездил на коробке. Думал нафига мне автомат, коробка это же "все под контролем". Пересел на автомат, на коробку обратно не хочу

KA>СиПлюсПлюсил много лет, попробовал по-СиШарпить — обратно не хочется. НО ПРИДЕТСЯ!

Есть мнение, что ты не плюсах писал, а на С с классами, после него от сборки мусора эйфория. А вот после плюсов смотришь на сборщика мусора как на бесполезного сельского дурочка.
Re[2]: c#
От: neFormal Россия  
Дата: 05.05.13 19:16
Оценка:
Здравствуйте, MTD, Вы писали:

KA>>Лет 10 ездил на коробке. Думал нафига мне автомат, коробка это же "все под контролем". Пересел на автомат, на коробку обратно не хочу

KA>>СиПлюсПлюсил много лет, попробовал по-СиШарпить — обратно не хочется. НО ПРИДЕТСЯ!
MTD>Есть мнение, что ты не плюсах писал, а на С с классами, после него от сборки мусора эйфория. А вот после плюсов смотришь на сборщика мусора как на бесполезного сельского дурочка.

а как "мегаплюсы" решают эту проблему лучше?
...coding for chaos...
Re[3]: c#
От: michae1  
Дата: 05.05.13 19:52
Оценка:
Здравствуйте, neFormal, Вы писали:

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


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


F>а как "мегаплюсы" решают эту проблему лучше?


Да нет никакой проблемы с утечками: нужно создавать объекты динамически — используй unique_ptr\shared_ptr\weak_ptr, нужен локальный буфер — std::vector\std::array, надо за ресурсом следить — RAII парадигам в помощь.

Проблема в другом — очень маленькая стандартная библиотека — множество стандартных задач остаются за бортом и надо либо искать что-то либо свое городить.
Re[2]: c#
От: noone  
Дата: 05.05.13 20:18
Оценка: +1
Здравствуйте, MTD, Вы писали:

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


Как решена проблема циклических ссылок?
Как происходит дефрагментация памяти?
Re[4]: c#
От: neFormal Россия  
Дата: 06.05.13 05:43
Оценка:
Здравствуйте, michae1, Вы писали:

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

F>>а как "мегаплюсы" решают эту проблему лучше?
M>Да нет никакой проблемы с утечками: нужно создавать объекты динамически — используй unique_ptr\shared_ptr\weak_ptr

и городи что-то своё, чтобы решить тривиальные проблемы. да, всё так и есть.

M>Проблема в другом — очень маленькая стандартная библиотека — множество стандартных задач остаются за бортом и надо либо искать что-то либо свое городить.
...coding for chaos...
Re[3]: c#
От: MTD https://github.com/mtrempoltsev
Дата: 06.05.13 06:09
Оценка: +1
Здравствуйте, noone, Вы писали:

N>Как решена проблема циклических ссылок?


shared_ptr/weak_ptr, но замечу, что циклические ссылки — проблема кривого дизайна

N>Как происходит дефрагментация памяти?


Как обычно, что интересует?
Re[5]: c#
От: MTD https://github.com/mtrempoltsev
Дата: 06.05.13 06:10
Оценка:
Здравствуйте, neFormal, Вы писали:

F>и городи что-то своё, чтобы решить тривиальные проблемы. да, всё так и есть.


Ну не надо фантазировать. Но если вам спокойней — плюсы отстой, расслабтесь.
Re[6]: c#
От: neFormal Россия  
Дата: 06.05.13 07:11
Оценка:
Здравствуйте, MTD, Вы писали:

F>>и городи что-то своё, чтобы решить тривиальные проблемы. да, всё так и есть.

MTD>Ну не надо фантазировать.

ну зачем же фантазировать?
shared_ptr — для использования такой тривиальной штуки, как шаблонный метод, требует регулярных кучерявых кастингов. не?
...coding for chaos...
Re[4]: c#
От: netch80 Украина http://netch80.dreamwidth.org/
Дата: 06.05.13 07:39
Оценка: +1
Здравствуйте, MTD, Вы писали:

N>>Как решена проблема циклических ссылок?

MTD>shared_ptr/weak_ptr, но замечу, что циклические ссылки — проблема кривого дизайна

Как удобно — списал все неприятные случаи на "кривой дизайн" и доволен, что C++ разрешает справиться с остальными случаями.

Я неоднократно встречался с ситуациями, когда естественным представлением предметной области является "сеть" объектов в памяти со многими связями. Например, такое типично в картографии, или в анализе структур человеческих связей. В результате в таких структурах 1) приходилось реализовывать наколенный GC в виде счётчиков ссылок (этих самых shared_ptr или аналогов), 2) реализовывать учёт групповой принадлежности объекта и массовое освобождение по этой принадлежности. А теперь, если вспомнить, что даже там, где подсчёт ссылок работает, он становится неэффективен в широкопараллельной среде, становится понятно, что GC ложился бы на такие задачи значительно естественнее.
The God is real, unless declared integer.
Re[5]: c#
От: MTD https://github.com/mtrempoltsev
Дата: 06.05.13 07:50
Оценка:
Здравствуйте, netch80, Вы писали:

N>Как удобно — списал все неприятные случаи на "кривой дизайн" и доволен, что C++ разрешает справиться с остальными случаями.


N>Я неоднократно встречался с ситуациями, когда естественным представлением предметной области является "сеть" объектов в памяти со многими связями. Например, такое типично в картографии, или в анализе структур человеческих связей.


Давай на конкретном примере, я тебе напишу код без проблемы цикличных ссылок или признаю, что ошибался?
Re[7]: c#
От: MTD https://github.com/mtrempoltsev
Дата: 06.05.13 07:51
Оценка:
Здравствуйте, neFormal, Вы писали:

F>ну зачем же фантазировать?

F>shared_ptr — для использования такой тривиальной штуки, как шаблонный метод, требует регулярных кучерявых кастингов. не?

Зачем в шаблонном методе shared_ptr? Кастинги — признак плохого дизайна. Пример кода есть?
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.