Re[3]: Переходил ли кто с C# на C++ ?
От: Danchik Украина  
Дата: 02.01.19 19:29
Оценка: +7 :)))
Здравствуйте, sambl74, Вы писали:

S>Здравствуйте, Эйнсток Файр, Вы писали:


ЭФ>>Да, и по JS такой же вопрос — переходил ли кто-нибудь с C++ на JS


S>А шо такого? На чём я только не кодил — Pascal, Delphi, C, C++, assembler для микропроцессоров, Visual Basic — причём 6-й и это был лет 5 назад бгг, Java, ActionScript, JavaScript.


Тут, наверное, скорее вопрос был: «не чуствуете ли отвращение?» ))

Месяц назад пришлось вспомнить плюсы. Все бесит, начиная с того чтобы что-то сделать надо хорошенько подготовиться с либами. Беру сразу буст, дабы не тянуть еще каких-то поделок. Потом еще пляски с бубнами вокруг инклюдов, строк, алгоритмов конверсий.
Вместо того чтобы за час сделать и протестить ты проходишь квест в день, а то и дольше. Не удивительно что питон так рванул.

Потом возвращаешься на .NET, и вспоминаешь как кошмар. В общем я пару раз подумаю прежде чем на плюсах что-то писать, и если можно без него обойтись я так и сделаю.
Re[2]: Переходил ли кто с C# на C++ ?
От: elmal  
Дата: 05.01.19 11:33
Оценка: +7
Здравствуйте, Grizzli, Вы писали:

G>Если был до шарпа опыт языков низкого уровня — то думаю запросто. Если небыло, да еще разработчику лет 35 и лет 15 опыта шарпа — то на указателях запросто можно споткнуться и никогда не встать. такие понятия нужно как можно раньше впитывать.

А можно поинтересоваться, что в этих указателях такого? В шарпе до черта передается по ссылке. По существу это тот же указатель, только для него определена адресная арифметика, нельзя к ссылке что то прибавить и потом получить значения. Но при этом, если выделять память под огроменный массив байт, то индекс массива будет практически 100 процентным указателем. Единственное отличие — если выйдешь за границу массива — тебе исключение кинется, а не будет не пойми что. То есть от тебя просто требуют в плюсах к большей внимательности, ибо банальная опечатка может проявиться хрен знает когда.

И какой бы ты гуру ни был, а при прямых небезопасных операций с указателями ты рано или поздно ошибешься. Соответственно даже плюсовики стараются этой адресной арифметикой практически не пользоваться. А юзают итераторы, смартпоинтеры и тому подобное. Тоже самое, что в управляемых языках по существу, там тоже оперируют чаще всего более высокими абстракциями, чем простые массивы. Единственное — синтаксис поприятнее и покороче выглядит. Соответственно просто опытный разработчик на плюсах, который всякие *(&(***&(i+1))+10)[5] который писал только в институте, а потом избегал такое дерьмо как только мог — он лет через 15 тоже будет в черти каком шоке, когда в коде такое увидит. А когда успокоится и начнет из приличных слов говорить не только предлоги, захочет еще и поубивать захочет тех, кто такое додумался написать .
Re[4]: Переходил ли кто с C# на C++ ?
От: kaa.python Ниоткуда РСДН профессионально мёртв и завален ватой.
Дата: 03.01.19 03:03
Оценка: +5
Здравствуйте, Danchik, Вы писали:

D>Месяц назад пришлось вспомнить плюсы. Все бесит, начиная с того чтобы что-то сделать надо хорошенько подготовиться с либами. Беру сразу буст, дабы не тянуть еще каких-то поделок. Потом еще пляски с бубнами вокруг инклюдов, строк, алгоритмов конверсий.

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

По большому счету выделенное – это главная головная боль C++. Все остальное просто потерянные знания, не более того. Современный C++ (14 и выше) довольно стройный и выдержанный язык, который в купе с санитарайзерами позволяет довольно просто и лего писать код.
Re[10]: Переходил ли кто с C# на C++ ?
От: kaa.python Ниоткуда РСДН профессионально мёртв и завален ватой.
Дата: 04.01.19 00:03
Оценка: 2 (1) +1 :)
Здравствуйте, sergey2b, Вы писали:

KP>>Модель памяти Qt из 90-х прошлого века. Это главная проблема.

S>я не работал с Qt объясни пожалуйста, что ты имееш ввиду

Я имею ввиду активное использование `new` без умных указателей, что является плохим тоном в современном C++. Так же Qt активно использует парадигму дочерних объектов, когда ты вроде сделал голое `new` и не сделал `delete`, но объект магически удалится так как является дочерним для кого-то там. А может и не удалиться, и это надо знать, либо вылавливать. Дремучие 90-е, короче
Re[2]: Переходил ли кто с C# на C++ ?
От: sambl74 Россия  
Дата: 02.01.19 12:25
Оценка: +2
Здравствуйте, Эйнсток Файр, Вы писали:

ЭФ>Да, и по JS такой же вопрос — переходил ли кто-нибудь с C++ на JS


А шо такого? На чём я только не кодил — Pascal, Delphi, C, C++, assembler для микропроцессоров, Visual Basic — причём 6-й и это был лет 5 назад бгг, Java, ActionScript, JavaScript.
Re[6]: Переходил ли кто с C# на C++ ?
От: vdimas Россия  
Дата: 03.01.19 20:16
Оценка: +2
Здравствуйте, AlexGin, Вы писали:

AG>А почему сразу не взять Qt и творить на плюсах с удовольствием?


Дык, ровно наоборот. ))
QT унутре устарел еще примерно в 2002-2003-х годах, когда все популярные компиляторы стали примерно одинаково поддерживать частичную специализацию и библиотечную инстанциацию шаблонов, но при этом внутренняя философия этой библиотеки не была пересмотрена.

QT — это же не только GUI, это куча оберток на нейтивными АПИ сетки, файлов, прмитивов синхронизации, таймеров и т.д. и т.п.
Потому и стали аналогичные либы из "молодого" (на тот момент) буста более популярны в те же года, что QT явно не дотягивал до понятия "библиотека для С++".
Re[10]: Переходил ли кто с C# на C++ ?
От: kaa.python Ниоткуда РСДН профессионально мёртв и завален ватой.
Дата: 04.01.19 00:04
Оценка: 2 (1)
Здравствуйте, AlexGin, Вы писали:

AG>То есть, в сухом остатке проверки на CLANG?


Не Clang, а clang-tidy, это самостоятельное приложение не являющееся компилятором.

AG>Кстати, для Linux — можно применять также и gcc?


Не понял вопроса. На Linux GCC – основной компилятор, где скорее при желании можно применять Clang.
Переходил ли кто с C# на C++ ?
От: Shmj Ниоткуда  
Дата: 02.01.19 00:20
Оценка: :)
C#/Java — очень чистые и красивые языки. Если сравнить с C++ — это как дикая природа (C++) с кучей опасностей и нагромождений и красивый ухоженный парк (C#).

Да, C++ технологически и надежнее (можно гарантировать что и через 10 и через 20 лет он будет использоваться) и намного шире по спектру применения. Но, подозреваю, что чисто психологически перейти не возможно. Можно только так C++ -> C# и потом опять C++.

В общем, если кому удалось перейти с чисто C# на этого монстра — поделитесь опытом. Сколько заняло времени и какие ощущения.
Отредактировано 02.01.2019 0:21 Shmj . Предыдущая версия . Еще …
Отредактировано 02.01.2019 0:21 Shmj . Предыдущая версия .
Re[2]: Переходил ли кто с C# на C++ ?
От: Doom100500 Израиль  
Дата: 02.01.19 10:43
Оценка: +1
Здравствуйте, Эйнсток Файр, Вы писали:

ЭФ>Да, и по JS такой же вопрос — переходил ли кто-нибудь с C++ на JS


C++ -> C# (cool ) -> JS (WTF ) -> TS (cool )
Спасибо за внимание
Re[5]: Переходил ли кто с C# на C++ ?
От: kaa.python Ниоткуда РСДН профессионально мёртв и завален ватой.
Дата: 03.01.19 03:00
Оценка: +1
Здравствуйте, sergey2b, Вы писали:

S>а дефрагментатор или компилятор на C# написать сможете


А как насчет компиляторов C#, F#, Nemerle и других?
Re[8]: Переходил ли кто с C# на C++ ?
От: kaa.python Ниоткуда РСДН профессионально мёртв и завален ватой.
Дата: 03.01.19 14:12
Оценка: +1
Здравствуйте, AlexGin, Вы писали:

AG>А кто мешает мне использовать мой стиль разработки — с применением абстрактных базовых классов (aka interface), а также всех вкусностей C++ 11/14/17 (лямбд, nullptr, и т.д.) —

AG>и в то же время применять всю мощь библиотеки Qt?

Модель памяти Qt из 90-х прошлого века. Это главная проблема.

AG>Странно, я как-то не представляю — чем же та же самая GSL:

AG> https://ru.wikipedia.org/wiki/GNU_Scientific_Library

https://github.com/Microsoft/GSL

AG>P.S. Хотя — насчет санитайзеров, может и будет несовместимость (если они хотят по-своему освобождать память, а Qt — хочет по-своему).


Я тут малек оговорился. Санитайзеры проблем не привносят в связке с Qt, а вот несколько полезных проверок clang-tidy приходится отключать.
Re[9]: Переходил ли кто с C# на C++ ?
От: sergey2b ЮАР  
Дата: 03.01.19 14:43
Оценка: +1
Здравствуйте, kaa.python, Вы писали:

KP>Модель памяти Qt из 90-х прошлого века. Это главная проблема.


я не работал с Qt объясни пожалуйста, что ты имееш ввиду
Re[8]: Переходил ли кто с C# на C++ ?
От: vdimas Россия  
Дата: 04.01.19 10:50
Оценка: :)
Здравствуйте, AlexGin, Вы писали:

V>>QT унутре устарел еще примерно в 2002-2003-х годах, когда все популярные компиляторы стали примерно одинаково поддерживать частичную специализацию и библиотечную инстанциацию шаблонов, но при этом внутренняя философия этой библиотеки не была пересмотрена.

AG>Так как новые пакеты (скажем так — minor version) Qt выходят каждые пол-года, то данная информация уже потеряла актуальность.

Да хоть каждый день пусть пакеты выходят.
Пока с ними не приходит обновления архитектуры — это ни о чём.


AG>Вот что имеет место в наши дни:

AG>https://stackoverflow.com/questions/2491707/memory-management-in-qt
AG>https://www.cleanqt.io/blog/crash-course-in-qt-for-c%2B%2B-developers,-part-4

Это уровень С++ середины 90-х годов.


V>>QT — это же не только GUI, это куча оберток на нейтивными АПИ сетки, файлов, прмитивов синхронизации, таймеров и т.д. и т.п.

V>>Потому и стали аналогичные либы из "молодого" (на тот момент) буста более популярны в те же года, что QT явно не дотягивал до понятия "библиотека для С++".
AG>Спасибо, я в курсе.
AG>Занимаюсь на Qt последние три года.

Я последние 20 лет за этой либу слежу — ничего не меняется.
Шлак и есть шлак.
Да, этот шлак "вылизали", пофиксили баги, заставили выглядеть достойной картинкой и работать на большем кол-ве платформ.
Но рвотный рефлекс никуда не делся.

Именно поэтому когда-то появились wxWidgets поверх SDL и бинд GTK на С++.
Где-то даже обидно от всей этой ситуации.
Re[5]: Переходил ли кто с C# на C++ ?
От: vsb Казахстан  
Дата: 04.01.19 12:04
Оценка: +1
Здравствуйте, sergey2b, Вы писали:

D>>Потом возвращаешься на .NET, и вспоминаешь как кошмар. В общем я пару раз подумаю прежде чем на плюсах что-то писать, и если можно без него обойтись я так и сделаю.


S>а дефрагментатор или компилятор на C# написать сможете


А в чём проблема? Для дефрагментатора у винды вроде есть API. Логику на C# может и надёжней написать будет.
Re: Переходил ли кто с C# на C++ ?
От: mizuchi Земля  
Дата: 04.01.19 15:51
Оценка: -1
Здравствуйте, Shmj, Вы писали:

S>C#/Java — очень чистые и красивые языки.



что такое чистый язык?

что такое язык красивый? делает его красивым?


S>Если сравнить с C++ — это как дикая природа (C++) с кучей опасностей и нагромождений и красивый ухоженный парк (C#).



если сравнивать трактор с bmw, то тоже. тебе нужно вспахать поле? тогда трактор.



S>Да, C++ технологически и надежнее (можно гарантировать что и через 10 и через 20 лет он будет использоваться)


откуда такая гарантия?
---------------------

nothingness.space
Re[6]: Переходил ли кто с C# на C++ ?
От: CreatorCray  
Дата: 07.01.19 00:41
Оценка: +1
Здравствуйте, Grizzli, Вы писали:

G>в с++ все тоже самое, указатели используются там не менее интенсивно.

Это С с классами а не С++
... << RSDN@Home 1.0.0 alpha 5 rev. 0>>
Re[2]: Переходил ли кто с C# на C++ ?
От: Ночной Смотрящий Россия  
Дата: 07.01.19 18:11
Оценка: :)
Здравствуйте, Somescout, Вы писали:

S>ЗЫ RAII в С++ мне очень нравится, крайне не хватает подобного в шарпе (это только для примера, насчёт lock в курсе):

S>
S>{
S>    MutexGuard lock(mutex);

S>    /// do something
S>}
S>


В шарпе для гардов есть using.
Re[8]: Переходил ли кто с C# на C++ ?
От: 0xCAFEDEAD  
Дата: 03.02.19 09:04
Оценка: +1
Здравствуйте, LaptevVV, Вы писали:

LVV>>>Компилятор просто на счет раз.

LVV>>>Единственную некоторую проблему составляет генератор нативного кода Интел (это я просто не писал такого... ).
CAF>>А в чем проблема? Пиши циферки, да пиши. Вот пример:
CAF>>https://www.graalvm.org/
CAF>>Единственное, что рантайм нельзя без С написать, ну нету всех ОС АПИ в этих языках, доступа к памяти. Написал нативный код, а вот исполняемым не сделать.
LVV>Ну, то все понятно.
LVV>Можно и по-другому.
LVV>Написать кодогенератор ассемблерной проги и запускать транслятор с ассемблера — пусть он фигачит уже объектный код...
ну можно и так, но все равно С/С++ для этого не нужен, но исполять — да.
Re: Переходил ли кто с C# на C++ ?
От: Эйнсток Файр Мухосранск Странный реагент
Дата: 02.01.19 01:02
Оценка:
Да, и по JS такой же вопрос — переходил ли кто-нибудь с C++ на JS
Re[4]: Переходил ли кто с C# на C++ ?
От: Dair Россия https://dair.spb.ru
Дата: 02.01.19 20:12
Оценка:
Здравствуйте, Danchik, Вы писали:

D>Месяц назад пришлось вспомнить плюсы. Все бесит, начиная с того чтобы что-то сделать надо хорошенько подготовиться с либами. Беру сразу буст, дабы не тянуть еще каких-то поделок. Потом еще пляски с бубнами вокруг инклюдов, строк, алгоритмов конверсий.


Чисто любопытно — что сделать пытался?
Re[4]: Переходил ли кто с C# на C++ ?
От: sergey2b ЮАР  
Дата: 03.01.19 02:57
Оценка:
Здравствуйте, Danchik, Вы писали:


D>Потом возвращаешься на .NET, и вспоминаешь как кошмар. В общем я пару раз подумаю прежде чем на плюсах что-то писать, и если можно без него обойтись я так и сделаю.


а дефрагментатор или компилятор на C# написать сможете
Re[5]: Переходил ли кто с C# на C++ ?
От: LaptevVV Россия  
Дата: 03.01.19 05:32
Оценка:
D>>Потом возвращаешься на .NET, и вспоминаешь как кошмар. В общем я пару раз подумаю прежде чем на плюсах что-то писать, и если можно без него обойтись я так и сделаю.
S>а дефрагментатор или компилятор на C# написать сможете
Компилятор просто на счет раз.
Единственную некоторую проблему составляет генератор нативного кода Интел (это я просто не писал такого... ).
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[5]: Переходил ли кто с C# на C++ ?
От: AlexGin Беларусь  
Дата: 03.01.19 12:06
Оценка:
Здравствуйте, kaa.python, Вы писали:

D>>Месяц назад пришлось вспомнить плюсы. Все бесит, начиная с того чтобы что-то сделать надо хорошенько подготовиться с либами. Беру сразу буст, дабы не тянуть еще каких-то поделок. Потом еще пляски с бубнами вокруг инклюдов, строк, алгоритмов конверсий.

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

KP>По большому счету выделенное – это главная головная боль C++. Все остальное просто потерянные знания, не более того. Современный C++ (14 и выше) довольно стройный и выдержанный язык, который в купе с санитарайзерами позволяет довольно просто и лего писать код.


Вопрос:
А почему сразу не взять Qt и творить на плюсах с удовольствием?
Re[6]: Переходил ли кто с C# на C++ ?
От: kaa.python Ниоткуда РСДН профессионально мёртв и завален ватой.
Дата: 03.01.19 13:14
Оценка:
Здравствуйте, AlexGin, Вы писали:

AG>Вопрос:

AG>А почему сразу не взять Qt и творить на плюсах с удовольствием?

Я бы не стал его использовать без острой на то необходимости потому что по большому счету это Си-с-классами стиль разработки. Казалось бы в этом нет ничего страшного, но тебе фактически становится недоступной GSL и приходится блокировать изрядное количество проверок в санитарайзерах так как философия Qt в плане управления памятью это C++03. Я сейчас пишу проект который вынужденно базируется на Qt, но с радостью заменил бы его на BOOST.
Re[7]: Переходил ли кто с C# на C++ ?
От: AlexGin Беларусь  
Дата: 03.01.19 13:58
Оценка:
Здравствуйте, kaa.python, Вы писали:

KP>Я бы не стал его использовать без острой на то необходимости потому что по большому счету это Си-с-классами стиль разработки.


А кто мешает мне использовать мой стиль разработки — с применением абстрактных базовых классов (aka interface), а также всех вкусностей C++ 11/14/17 (лямбд, nullptr, и т.д.) —
и в то же время применять всю мощь библиотеки Qt?
Тот факт, что применение Qt просто как грабли, и позволяет иметь низкий порог входа (даже и используя стиль "Си-с-классами") — не мешает в применению любых возможностей modern С++

KP>Казалось бы в этом нет ничего страшного, но тебе фактически становится недоступной GSL и приходится блокировать изрядное количество проверок в санитарайзерах так как философия Qt в плане управления памятью это C++03. Я сейчас пишу проект который вынужденно базируется на Qt, но с радостью заменил бы его на BOOST.


Странно, я как-то не представляю — чем же та же самая GSL:
https://ru.wikipedia.org/wiki/GNU_Scientific_Library
и тот же boost:
https://www.boost.org
могут быть НЕ-совместимы в одном и том же проекте с библиотекой Qt?

P.S. Хотя — насчет санитайзеров, может и будет несовместимость (если они хотят по-своему освобождать память, а Qt — хочет по-своему).
Отредактировано 03.01.2019 14:06 AlexGin . Предыдущая версия .
Re[5]: Переходил ли кто с C# на C++ ?
От: Ночной Смотрящий Россия  
Дата: 03.01.19 14:37
Оценка:
Здравствуйте, sergey2b, Вы писали:

D>>Потом возвращаешься на .NET, и вспоминаешь как кошмар. В общем я пару раз подумаю прежде чем на плюсах что-то писать, и если можно без него обойтись я так и сделаю.

S>а дефрагментатор

Какой такой дефрагментатор?

S>или компилятор на C# написать сможете


Сто раз так делал.
Компилятор самого шарпа, думаешь, на чем написан?
Re[9]: Переходил ли кто с C# на C++ ?
От: AlexGin Беларусь  
Дата: 03.01.19 14:45
Оценка:
Здравствуйте, kaa.python, Вы писали:

KP>https://github.com/Microsoft/GSL

Я подумал насчёт совсем другой GSL

AG>>P.S. Хотя — насчет санитайзеров, может и будет несовместимость (если они хотят по-своему освобождать память, а Qt — хочет по-своему).


KP>Я тут малек оговорился. Санитайзеры проблем не привносят в связке с Qt, а вот несколько полезных проверок clang-tidy приходится отключать.


То есть, в сухом остатке проверки на CLANG?
Кстати, для Linux — можно применять также и gcc?
Re[6]: Переходил ли кто с C# на C++ ?
От: sergey2b ЮАР  
Дата: 03.01.19 14:49
Оценка:
Здравствуйте, Ночной Смотрящий, Вы писали:

НС>Сто раз так делал.

НС>Компилятор самого шарпа, думаешь, на чем написан?

с вашей точки зрения писать shareware та С# хорошая идея
Re[7]: Переходил ли кто с C# на C++ ?
От: Danchik Украина  
Дата: 03.01.19 15:39
Оценка:
Здравствуйте, sergey2b, Вы писали:

S>Здравствуйте, Ночной Смотрящий, Вы писали:


НС>>Сто раз так делал.

НС>>Компилятор самого шарпа, думаешь, на чем написан?

S>с вашей точки зрения писать shareware та С# хорошая идея


Да запустите обфускатор или купите готовую шаревару делалку. Нагуглил, думаю не единственную, такую http://xheo.com/
Захотят взломать, взломают, чтобы вы не делали, на чем не писали. А вот попортить нервы хакерам можно.
Re[7]: Переходил ли кто с C# на C++ ?
От: Ночной Смотрящий Россия  
Дата: 03.01.19 16:16
Оценка:
Здравствуйте, sergey2b, Вы писали:

S>с вашей точки зрения писать shareware та С# хорошая идея


Зависит что за shareware.
Re[7]: Переходил ли кто с C# на C++ ?
От: AlexGin Беларусь  
Дата: 04.01.19 09:13
Оценка:
Здравствуйте, vdimas, Вы писали:

V>QT унутре устарел еще примерно в 2002-2003-х годах, когда все популярные компиляторы стали примерно одинаково поддерживать частичную специализацию и библиотечную инстанциацию шаблонов, но при этом внутренняя философия этой библиотеки не была пересмотрена.


Так как новые пакеты (скажем так — minor version) Qt выходят каждые пол-года, то данная информация уже потеряла актуальность.

Вот что имеет место в наши дни:
https://stackoverflow.com/questions/2491707/memory-management-in-qt
https://www.cleanqt.io/blog/crash-course-in-qt-for-c%2B%2B-developers,-part-4

V>QT — это же не только GUI, это куча оберток на нейтивными АПИ сетки, файлов, прмитивов синхронизации, таймеров и т.д. и т.п.

V>Потому и стали аналогичные либы из "молодого" (на тот момент) буста более популярны в те же года, что QT явно не дотягивал до понятия "библиотека для С++".

Спасибо, я в курсе.
Занимаюсь на Qt последние три года.
Re: Переходил ли кто с C# на C++ ?
От: Grizzli  
Дата: 04.01.19 19:59
Оценка:
Здравствуйте, Shmj, Вы писали:

S>C#/Java — очень чистые и красивые языки. Если сравнить с C++ — это как дикая природа (C++) с кучей опасностей и нагромождений и красивый ухоженный парк (C#).


S>Да, C++ технологически и надежнее (можно гарантировать что и через 10 и через 20 лет он будет использоваться) и намного шире по спектру применения. Но, подозреваю, что чисто психологически перейти не возможно. Можно только так C++ -> C# и потом опять C++.




Если был до шарпа опыт языков низкого уровня — то думаю запросто. Если небыло, да еще разработчику лет 35 и лет 15 опыта шарпа — то на указателях запросто можно споткнуться и никогда не встать. такие понятия нужно как можно раньше впитывать.
Re[11]: Переходил ли кто с C# на C++ ?
От: AlexGin Беларусь  
Дата: 04.01.19 20:11
Оценка:
Здравствуйте, kaa.python, Вы писали:

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


AG>>То есть, в сухом остатке проверки на CLANG?


KP>Не Clang, а clang-tidy, это самостоятельное приложение не являющееся компилятором.


Ясно, здесь я просто подумал насчёт CLANG компилятора. Инерция подсознания

AG>>Кстати, для Linux — можно применять также и gcc?


KP>Не понял вопроса. На Linux GCC – основной компилятор, где скорее при желании можно применять Clang.


Да, я именно о том, что Qt под Linux в основном предполагает компилятор GCC — по крайней мере менеджеры пакетов Debian и Ubuntu-Linux
обычно предлагают вариант под GCC (g++).
Re: Переходил ли кто с C# на C++ ?
От: Somescout  
Дата: 05.01.19 11:30
Оценка:
Здравствуйте, Shmj, Вы писали:

S>C#/Java — очень чистые и красивые языки. Если сравнить с C++ — это как дикая природа (C++) с кучей опасностей и нагромождений и красивый ухоженный парк (C#).


S>Да, C++ технологически и надежнее (можно гарантировать что и через 10 и через 20 лет он будет использоваться) и намного шире по спектру применения. Но, подозреваю, что чисто психологически перейти не возможно. Можно только так C++ -> C# и потом опять C++.


Переходил, основные проблемы были не от языка как такового (у него, кстати, хватает плюсов ), а скорее от обвязки, которую приходилось использовать — среда строго eclipse, где автодополнение не могло нормально выводить типы, стандартные библиотеки частично не работали (при попытке использовать auto_ptr из стандарта программа падала), valgrind на стороне эмулятора не позволял добавить исключения для стандартной библиотеки (10000+ сообщений — попробуй найти проблему, facepalm), сама библиотека GUI после Java вызывала тошноту (крайне неудобно модифицировать что-либо). Ну и документация была с огромными пробелами.

В общем, нет смысла говорить "Как вы перешли с одного языка на другой" без упоминания фрэймворков и обвязки всего этого — сами языки, обычно, проблемы не вызывают.

ЗЫ RAII в С++ мне очень нравится, крайне не хватает подобного в шарпе (это только для примера, насчёт lock в курсе):

{
    MutexGuard lock(mutex);

    /// do something
}
ARI ARI ARI... Arrivederci!
Re[3]: Переходил ли кто с C# на C++ ?
От: Grizzli  
Дата: 05.01.19 14:22
Оценка:
Здравствуйте, elmal, Вы писали:

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


G>>Если был до шарпа опыт языков низкого уровня — то думаю запросто. Если небыло, да еще разработчику лет 35 и лет 15 опыта шарпа — то на указателях запросто можно споткнуться и никогда не встать. такие понятия нужно как можно раньше впитывать.

E>А можно поинтересоваться, что в этих указателях такого? В шарпе до черта передается по ссылке.

Передается, но делается это очень мяганько, настолько, что можно 15 лет проработать и даже особо не думать о том как там и где и что передается.
А в си — указатель на указатель, да еще и арифметика по этому всемУ, утечки и проходы по памяти как следствие — если сходу все это не впитал — потом может быть нелегко для понимания.
Re[4]: Переходил ли кто с C# на C++ ?
От: CreatorCray  
Дата: 06.01.19 03:05
Оценка:
Здравствуйте, Grizzli, Вы писали:

G>А в си — указатель на указатель, да еще и арифметика по этому всемУ, утечки и проходы по памяти как следствие — если сходу все это не впитал — потом может быть нелегко для понимания.

Так то в С, а речь то про С++
... << RSDN@Home 1.0.0 alpha 5 rev. 0>>
Re[5]: Переходил ли кто с C# на C++ ?
От: Grizzli  
Дата: 06.01.19 11:42
Оценка:
Здравствуйте, CreatorCray, Вы писали:

CC>Так то в С, а речь то про С++


в с++ все тоже самое, указатели используются там не менее интенсивно. плюс дикие шаблоны.
Re[4]: Переходил ли кто с C# на C++ ?
От: _NN_ www.nemerleweb.com
Дата: 06.01.19 12:40
Оценка:
Здравствуйте, Grizzli, Вы писали:

G>Передается, но делается это очень мяганько, настолько, что можно 15 лет проработать и даже особо не думать о том как там и где и что передается.

G>А в си — указатель на указатель, да еще и арифметика по этому всемУ, утечки и проходы по памяти как следствие — если сходу все это не впитал — потом может быть нелегко для понимания.
Всё таки речь идёт о С++, а в нём также как и в C# стараются поменьше видеть указателей в коде.
Кроме того в C# есть указатели если кто-то по ним скучает https://docs.microsoft.com/ru-ru/dotnet/csharp/programming-guide/unsafe-code-pointers/pointer-types
http://rsdn.nemerleweb.com
http://nemerleweb.com
Re[3]: Переходил ли кто с C# на C++ ?
От: Somescout  
Дата: 08.01.19 05:27
Оценка:
Здравствуйте, Ночной Смотрящий, Вы писали:

НС>В шарпе для гардов есть using.


Знаю, и в целом оно даже похоже, но сама идея что объект автоматически уничтожается при выходе из области видимости мне нравится. Фактически в C++ при использовании таких объектов нельзя сделать ошибку — очистка ресурсов гарантирована всегда.
ARI ARI ARI... Arrivederci!
Re[4]: Переходил ли кто с C# на C++ ?
От: Ночной Смотрящий Россия  
Дата: 08.01.19 07:19
Оценка:
Здравствуйте, Somescout, Вы писали:

S>Знаю, и в целом оно даже похоже, но сама идея что объект автоматически уничтожается при выходе из области видимости мне нравится. Фактически в C++ при использовании таких объектов нельзя сделать ошибку — очистка ресурсов гарантирована всегда.


Читаемость кода это не улучшает. И если при управлении памятью это еще сносно, так как слишком много этого управления, то в случае со всякими гардами явное выделение скоупа оператором лучше.
Re[2]: Переходил ли кто с C# на C++ ?
От: white_znake  
Дата: 09.01.19 12:10
Оценка:
Здравствуйте, Grizzli, Вы писали:


G>Если был до шарпа опыт языков низкого уровня — то думаю запросто. Если небыло, да еще разработчику лет 35 и лет 15 опыта шарпа — то на указателях запросто можно споткнуться и никогда не встать. такие понятия нужно как можно раньше впитывать.


Указатели как раз-таки не самое сложное в C++. Потому что нормальные разрабочики избегают использования адресной арифметики в коде на С++, используются векторы, итераторы из STL или Boost.

Другие фишки будут корежить мозг:
— Множественное наследование классов в С++ (хотя нормальные разработчики и в С++ избегают такой фишки)
— Различия между generic C# & templates в C++
— Отсутствие LINQ (хотя ХЗ, может уже и есть LINQ)
— Отсутствие Expression tree
— Отсутствие reflection.
— Отсутствие событий как единицы синтаксиса.

Список можно продолжать и продолжать...
В общем ломка будет очень сильной, но не смертельной ;)

P.S. Другой вопрос — за чем? В финансы, высокочастотный трейдинг или куда хочешь пойти?
Re[2]: Переходил ли кто с C# на C++ ?
От: Igore Россия  
Дата: 09.01.19 14:08
Оценка:
Здравствуйте, 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. И тогда все становится приятней и проще.
Re[3]: Переходил ли кто с C# на C++ ?
От: Somescout  
Дата: 10.01.19 16:37
Оценка:
Здравствуйте, 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, что за библиотека была?

SDK Tizen.
ARI ARI ARI... Arrivederci!
Re: Переходил ли кто с C# на C++ ?
От: MasterZiv СССР  
Дата: 11.01.19 09:16
Оценка:
Здравствуйте, Shmj, Вы писали:

S>C#/Java — очень чистые и красивые языки. Если сравнить с C++ — это как дикая природа (C++) с кучей опасностей и нагромождений и красивый ухоженный парк (C#).


Чего?
Re: Переходил ли кто с C# на C++ ?
От: RussianFellow Россия http://russianfellow.livejournal.com
Дата: 30.01.19 08:26
Оценка:
Нет, все переходили с C++ на C# и Java.
1613 г. = 2024 г.
Re[6]: Переходил ли кто с C# на C++ ?
От: 0xCAFEDEAD  
Дата: 03.02.19 09:00
Оценка:
Здравствуйте, LaptevVV, Вы писали:

D>>>Потом возвращаешься на .NET, и вспоминаешь как кошмар. В общем я пару раз подумаю прежде чем на плюсах что-то писать, и если можно без него обойтись я так и сделаю.

S>>а дефрагментатор или компилятор на C# написать сможете
LVV>Компилятор просто на счет раз.
LVV>Единственную некоторую проблему составляет генератор нативного кода Интел (это я просто не писал такого... ).

А в чем проблема? Пиши циферки, да пиши. Вот пример:
https://www.graalvm.org/

Единственное, что рантайм нельзя без С написать, ну нету всех ОС АПИ в этих языках, доступа к памяти. Написал нативный код, а вот исполняемым не сделать.
Re[7]: Переходил ли кто с C# на C++ ?
От: LaptevVV Россия  
Дата: 03.02.19 09:03
Оценка:
LVV>>Компилятор просто на счет раз.
LVV>>Единственную некоторую проблему составляет генератор нативного кода Интел (это я просто не писал такого... ).
CAF>А в чем проблема? Пиши циферки, да пиши. Вот пример:
CAF>https://www.graalvm.org/
CAF>Единственное, что рантайм нельзя без С написать, ну нету всех ОС АПИ в этих языках, доступа к памяти. Написал нативный код, а вот исполняемым не сделать.
Ну, то все понятно.
Можно и по-другому.
Написать кодогенератор ассемблерной проги и запускать транслятор с ассемблера — пусть он фигачит уже объектный код...
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[5]: Переходил ли кто с C# на C++ ?
От: Sinclair Россия https://github.com/evilguest/
Дата: 04.02.19 05:20
Оценка:
Здравствуйте, Ночной Смотрящий, Вы писали:

НС>Читаемость кода это не улучшает. И если при управлении памятью это еще сносно, так как слишком много этого управления, то в случае со всякими гардами явное выделение скоупа оператором лучше.

А теперь (C#8) работает и без нестинга:
{
    using var lock = new MutexGuard(mutex);

    /// do something
} // lock.Dispose()
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.