Привет всем,
Лет 10 ездил на коробке. Думал нафига мне автомат, коробка это же "все под контролем". Пересел на автомат, на коробку обратно не хочу
СиПлюсПлюсил много лет, попробовал по-СиШарпить — обратно не хочется. НО ПРИДЕТСЯ!
Здравствуйте, Kubyshev Andrey, Вы писали:
KA>Привет всем, KA>Лет 10 ездил на коробке. Думал нафига мне автомат, коробка это же "все под контролем". Пересел на автомат, на коробку обратно не хочу
Здравствуйте, Kubyshev Andrey, Вы писали:
KA>Привет всем, KA>Лет 10 ездил на коробке. Думал нафига мне автомат, коробка это же "все под контролем". Пересел на автомат, на коробку обратно не хочу KA>СиПлюсПлюсил много лет, попробовал по-СиШарпить — обратно не хочется. НО ПРИДЕТСЯ! KA>
13 лет на плюсах. Один на шарпе (по началу — феерические ощущения). Потом снова 9 месяцев на плюсах (кстати, после шарпа, с очень хорошим плюсом. но дело не в языке). Сейчас вот снова на шарпе, и снова прет
Наверное меня просто прет от программирования как такового. А наличие возможностей, которые были недоступны в суровом социалистическом детстве, только усиливает ощущения
-- Пользователи не приняли программу. Всех пришлось уничтожить. --
Здравствуйте, Kubyshev Andrey, Вы писали:
KA>Привет всем, KA>Лет 10 ездил на коробке. Думал нафига мне автомат, коробка это же "все под контролем". Пересел на автомат, на коробку обратно не хочу KA>СиПлюсПлюсил много лет, попробовал по-СиШарпить — обратно не хочется. НО ПРИДЕТСЯ! KA>
Шарп, пожалуй, самый приятный язык программирования с адаптацией под любые кривые руки, и под прямые тоже. Но развращает. Надо время от времени делать встряску себе, хотя бы вставлением native кода чтобы вспоминать как компьютер работает
Лучше конечно по ходу всегда мысленно транслировать C# в C++ чтобы становилось страшно и приятно одновременно. Это не будет позволять слишком отрываться от реальности )
Здравствуйте, Big Ben, Вы писали:
BB>Шарп, пожалуй, самый приятный язык программирования с адаптацией под любые кривые руки, и под прямые тоже.
10 лет кодил кодесы на С++. Тут недавно взял проект на c#. Язык конечно хороший, синтаксис более красивый и продуманный, но...
В си есть такая функция atoi. Простая как дупель пусто-пусто. Любую строку, если в строке записано число, превращает в число, иначе возвращает ноль. Меня это вполне устраивало... но нет, в C# аналог (Convert.TiInt32) зачем-то выбрасывает исключение. Пришлось писать функцию-обертку в специальном статическом классе.
Далее, эти поросята "постарались" с интернационализацией. Во всем мире в качестве разделителя используется точка, а у нас почему-то запятая. Вместо того, чтобы силой навязать нам точку, заставить привести национальные стандарты в соответствие мировым (кстати, а есть ли они, такие стандарты — может это просто глупость какая-то), ребята из M$ взяли и сделали, что в России при преобразовании float -> string ставятся запятые. Всякие DataGridView при вводе понимают только запятые и бросают исключения, если ввести точку.
Но MySQL-то понимает только точки!
А заказчик вообще захотел вводить и запятые, и точки, и чтобы все работало.
Вот и еще одну обертку пришлось писать.
Здравствуйте, include2h, Вы писали:
I>В си есть такая функция atoi. Простая как дупель пусто-пусто. Любую строку, если в строке записано число, превращает в число, иначе возвращает ноль. Меня это вполне устраивало... но нет, в C# аналог (Convert.TiInt32) зачем-то выбрасывает исключение. Пришлось писать функцию-обертку в специальном статическом классе. int.TryParse?
I>Далее, эти поросята "постарались" с интернационализацией. Во всем мире в качестве разделителя используется точка, а у нас почему-то запятая. Вместо того, чтобы силой навязать нам точку, заставить привести национальные стандарты в соответствие мировым (кстати, а есть ли они, такие стандарты — может это просто глупость какая-то), ребята из M$ взяли и сделали, что в России при преобразовании float -> string ставятся запятые. Всякие DataGridView при вводе понимают только запятые и бросают исключения, если ввести точку.
По умолчанию используется текущая культура.
Здравствуйте, include2h, Вы писали:
I>Вот и еще одну обертку пришлось писать.
Может, вместо обертки стоит книжечки там почитать, документацию? Форумы к конце то концов!
Здравствуйте, include2h, Вы писали:
I>Здравствуйте, Big Ben, Вы писали:
BB>>Шарп, пожалуй, самый приятный язык программирования с адаптацией под любые кривые руки, и под прямые тоже.
I>10 лет кодил кодесы на С++. Тут недавно взял проект на c#. Язык конечно хороший, синтаксис более красивый и продуманный, но... I>В си есть такая функция atoi. Простая как дупель пусто-пусто. Любую строку, если в строке записано число, превращает в число, иначе возвращает ноль.
Эта функция в C++ deprecated, так как не позволяет отличить 0 от невалидной строки. Лучше использовать strtol.
I>Меня это вполне устраивало... но нет, в C# аналог (Convert.TiInt32) зачем-то выбрасывает исключение. Пришлось писать функцию-обертку в специальном статическом классе.
Здравствуйте, Kubyshev Andrey, Вы писали:
KA>СиПлюсПлюсил много лет, попробовал по-СиШарпить — обратно не хочется. НО ПРИДЕТСЯ!
У меня C# не пошел. Если мне не важна производительности, то я выберу что-то питоно или рубиподобное. а если производительность нужна, то программирование на C# для меня достаточно некомфортно.
Здравствуйте, Kubyshev Andrey, Вы писали:
KA>Лет 10 ездил на коробке. Думал нафига мне автомат, коробка это же "все под контролем". Пересел на автомат, на коробку обратно не хочу KA>СиПлюсПлюсил много лет, попробовал по-СиШарпить — обратно не хочется. НО ПРИДЕТСЯ!
Есть мнение, что ты не плюсах писал, а на С с классами, после него от сборки мусора эйфория. А вот после плюсов смотришь на сборщика мусора как на бесполезного сельского дурочка.
Здравствуйте, MTD, Вы писали:
KA>>Лет 10 ездил на коробке. Думал нафига мне автомат, коробка это же "все под контролем". Пересел на автомат, на коробку обратно не хочу KA>>СиПлюсПлюсил много лет, попробовал по-СиШарпить — обратно не хочется. НО ПРИДЕТСЯ! MTD>Есть мнение, что ты не плюсах писал, а на С с классами, после него от сборки мусора эйфория. А вот после плюсов смотришь на сборщика мусора как на бесполезного сельского дурочка.
Здравствуйте, neFormal, Вы писали:
F>Здравствуйте, MTD, Вы писали:
MTD>>Есть мнение, что ты не плюсах писал, а на С с классами, после него от сборки мусора эйфория. А вот после плюсов смотришь на сборщика мусора как на бесполезного сельского дурочка.
F>а как "мегаплюсы" решают эту проблему лучше?
Да нет никакой проблемы с утечками: нужно создавать объекты динамически — используй unique_ptr\shared_ptr\weak_ptr, нужен локальный буфер — std::vector\std::array, надо за ресурсом следить — RAII парадигам в помощь.
Проблема в другом — очень маленькая стандартная библиотека — множество стандартных задач остаются за бортом и надо либо искать что-то либо свое городить.
Здравствуйте, MTD, Вы писали:
MTD>Есть мнение, что ты не плюсах писал, а на С с классами, после него от сборки мусора эйфория. А вот после плюсов смотришь на сборщика мусора как на бесполезного сельского дурочка.
Как решена проблема циклических ссылок?
Как происходит дефрагментация памяти?
Здравствуйте, michae1, Вы писали:
MTD>>>Есть мнение, что ты не плюсах писал, а на С с классами, после него от сборки мусора эйфория. А вот после плюсов смотришь на сборщика мусора как на бесполезного сельского дурочка. F>>а как "мегаплюсы" решают эту проблему лучше? M>Да нет никакой проблемы с утечками: нужно создавать объекты динамически — используй unique_ptr\shared_ptr\weak_ptr
и городи что-то своё, чтобы решить тривиальные проблемы. да, всё так и есть.
M>Проблема в другом — очень маленькая стандартная библиотека — множество стандартных задач остаются за бортом и надо либо искать что-то либо свое городить.
Здравствуйте, MTD, Вы писали:
N>>Как решена проблема циклических ссылок? MTD>shared_ptr/weak_ptr, но замечу, что циклические ссылки — проблема кривого дизайна
Как удобно — списал все неприятные случаи на "кривой дизайн" и доволен, что C++ разрешает справиться с остальными случаями.
Я неоднократно встречался с ситуациями, когда естественным представлением предметной области является "сеть" объектов в памяти со многими связями. Например, такое типично в картографии, или в анализе структур человеческих связей. В результате в таких структурах 1) приходилось реализовывать наколенный GC в виде счётчиков ссылок (этих самых shared_ptr или аналогов), 2) реализовывать учёт групповой принадлежности объекта и массовое освобождение по этой принадлежности. А теперь, если вспомнить, что даже там, где подсчёт ссылок работает, он становится неэффективен в широкопараллельной среде, становится понятно, что GC ложился бы на такие задачи значительно естественнее.
Здравствуйте, netch80, Вы писали:
N>Как удобно — списал все неприятные случаи на "кривой дизайн" и доволен, что C++ разрешает справиться с остальными случаями.
N>Я неоднократно встречался с ситуациями, когда естественным представлением предметной области является "сеть" объектов в памяти со многими связями. Например, такое типично в картографии, или в анализе структур человеческих связей.
Давай на конкретном примере, я тебе напишу код без проблемы цикличных ссылок или признаю, что ошибался?
Здравствуйте, neFormal, Вы писали:
F>ну зачем же фантазировать? F>shared_ptr — для использования такой тривиальной штуки, как шаблонный метод, требует регулярных кучерявых кастингов. не?
Зачем в шаблонном методе shared_ptr? Кастинги — признак плохого дизайна. Пример кода есть?