Здравствуйте, Somescout, Вы писали:
S>>C#/Java — очень чистые и красивые языки. Если сравнить с C++ — это как дикая природа (C++) с кучей опасностей и нагромождений и красивый ухоженный парк (C#).
Очень многое зависит от того как писать, плюсы С#-а это IDE, быстрая, и удобная, скорость сборки , nuget и прочая инфраструктура, ну и многословность во многих аспектов С++ большой минус, но потихоньку полегоньку движемся к хорошему.
S>Переходил, основные проблемы были не от языка как такового (у него, кстати, хватает плюсов ), а скорее от обвязки, которую приходилось использовать — среда строго eclipse, где автодополнение не могло нормально выводить типы,
Сочувствую, тот еще тормоз, хотя люди продолжают на нем писать под С++. S>стандартные библиотеки частично не работали (при попытке использовать auto_ptr из стандарта программа падала),
Давно видно писал, auto_ptr уже deprecated. S>valgrind на стороне эмулятора не позволял добавить исключения для стандартной библиотеки (10000+ сообщений — попробуй найти проблему, facepalm),
Вам чего то страного захотелось, обработка ошибок это отдельный бардак. S>сама библиотека GUI после Java вызывала тошноту (крайне неудобно модифицировать что-либо). Ну и документация была с огромными пробелами.
У std С++ нет GUI, что за библиотека была?
S>В общем, нет смысла говорить "Как вы перешли с одного языка на другой" без упоминания фрэймворков и обвязки всего этого — сами языки, обычно, проблемы не вызывают.
Согласен
S>ЗЫ RAII в С++ мне очень нравится, крайне не хватает подобного в шарпе (это только для примера, насчёт lock в курсе):
Это да, можно писать программы без new, delete. И тогда все становится приятней и проще.
Здравствуйте, Igore, Вы писали:
I>Сочувствую, тот еще тормоз, хотя люди продолжают на нем писать под С++.
Там не то что в тормозах проблема — автодополнение вообще не работало для шаблонов (для auto_ptr в частности)
S>>стандартные библиотеки частично не работали (при попытке использовать auto_ptr из стандарта программа падала), I>Давно видно писал, auto_ptr уже deprecated.
Несколько лет назад. Но даже если в стандарте он уже был deprecated, до SDK оно ещё не доползло.
S>>valgrind на стороне эмулятора не позволял добавить исключения для стандартной библиотеки (10000+ сообщений — попробуй найти проблему, facepalm), I>Вам чего то страного захотелось, обработка ошибок это отдельный бардак.
В смысле? Valgrind диагностирует утечки памяти, но если не исключить из диагностики стандартную библиотеку, то эти ошибки хрен найдёшь в десятках тысяч сообщений.
S>>сама библиотека GUI после Java вызывала тошноту (крайне неудобно модифицировать что-либо). Ну и документация была с огромными пробелами. I>У std С++ нет GUI, что за библиотека была?
Здравствуйте, Shmj, Вы писали:
S>C#/Java — очень чистые и красивые языки. Если сравнить с C++ — это как дикая природа (C++) с кучей опасностей и нагромождений и красивый ухоженный парк (C#).
Здравствуйте, LaptevVV, Вы писали:
D>>>Потом возвращаешься на .NET, и вспоминаешь как кошмар. В общем я пару раз подумаю прежде чем на плюсах что-то писать, и если можно без него обойтись я так и сделаю. S>>а дефрагментатор или компилятор на C# написать сможете LVV>Компилятор просто на счет раз. LVV>Единственную некоторую проблему составляет генератор нативного кода Интел (это я просто не писал такого... ).
Единственное, что рантайм нельзя без С написать, ну нету всех ОС АПИ в этих языках, доступа к памяти. Написал нативный код, а вот исполняемым не сделать.
LVV>>Компилятор просто на счет раз. LVV>>Единственную некоторую проблему составляет генератор нативного кода Интел (это я просто не писал такого... ). CAF>А в чем проблема? Пиши циферки, да пиши. Вот пример: CAF>https://www.graalvm.org/ CAF>Единственное, что рантайм нельзя без С написать, ну нету всех ОС АПИ в этих языках, доступа к памяти. Написал нативный код, а вот исполняемым не сделать.
Ну, то все понятно.
Можно и по-другому.
Написать кодогенератор ассемблерной проги и запускать транслятор с ассемблера — пусть он фигачит уже объектный код...
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Здравствуйте, LaptevVV, Вы писали:
LVV>>>Компилятор просто на счет раз. LVV>>>Единственную некоторую проблему составляет генератор нативного кода Интел (это я просто не писал такого... ). CAF>>А в чем проблема? Пиши циферки, да пиши. Вот пример: CAF>>https://www.graalvm.org/ CAF>>Единственное, что рантайм нельзя без С написать, ну нету всех ОС АПИ в этих языках, доступа к памяти. Написал нативный код, а вот исполняемым не сделать. LVV>Ну, то все понятно. LVV>Можно и по-другому. LVV>Написать кодогенератор ассемблерной проги и запускать транслятор с ассемблера — пусть он фигачит уже объектный код...
ну можно и так, но все равно С/С++ для этого не нужен, но исполять — да.
Здравствуйте, Ночной Смотрящий, Вы писали:
НС>Читаемость кода это не улучшает. И если при управлении памятью это еще сносно, так как слишком много этого управления, то в случае со всякими гардами явное выделение скоупа оператором лучше.
А теперь (C#8) работает и без нестинга:
{
using var lock = new MutexGuard(mutex);
/// do something
} // lock.Dispose()
Уйдемте отсюда, Румата! У вас слишком богатые погреба.