Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.77/30: Рейтинг темы: голосов - 30, средняя оценка - 4.77
42 / 42 / 17
Регистрация: 25.04.2014
Сообщений: 499

Почему вы пишете на c++?

06.11.2016, 20:09. Показов 7738. Ответов 98
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
здравствуйте... в общем, решил поспрашивать людей о том, почему они пишут/остаются на c++. к размышлениям натолкнули пара реплик людей с просторов интернета... согласен, такое можно видеть очень часто, но все же:

Кликните здесь для просмотра всего текста
=================

1)По моему скромному опыту (я в прошлом разработчик на C++, ныне на .NET, то есть, обобщённый «Java-программист» в контексте статьи) .NET-разработчик с опытом N лет в среднем более квалифицирован, чем C++-разработчик с опытом тех же N лет. Как бы парадоксально это ни звучало для плюсистов. Пока последний решает на C++ проблемы, которые больше ни в одном языке так изящно не решаются (но при этом и не возникают), первый сталкивается с бОльшим разнообразием паттернов, архитектурных подходов, идиом и концепций. Имхо.

2)> С++ разработчику достаточть легко в последствии освоить C#

Категорически не согласен. Почему-то некоторые задроты думают, что вручную удалив память, они стали какими-то гуру программазма! ДАЛЕКО НЕ. Ровно наоборот — пока «сипиписники» возились в низкоуровневых дебрях, тратя своё время на ЕРУНДУ, «шарповоды» осваивали высокоуровневые вещи типа дженериков, async, TPL и прочее. И когда приходит такой вот «сипиписник» в цэшарп, он выглядит как неандерталец, который не способен использовать тостер. Выглядит жалко.

А вот и образец «гуманитарной» логики:

> Одна из них это портативность… Intel C++ Compiler (по фичам он «не очень»)

Ну то есть существует компилятор С++, который по фичам «очень», но при этом, очевидно, несовместим с тем, который «не очень»? Тогда знаете что, такая «портативность» не стоит и гроша. Достаточно сосчитать все #ifdef’ы, чтобы понять — С++ реализован у всех по-своему.

> Со строками в С++ беда.

Именно. И ЭТО У БАЗОВОГО ТИПА! Кому нужно это «говно с крестами», если в нём нельзя написать элементарную обработку строк? Вот за это мы и перешли в C# — среду, где нет разбродов хотя бы по элементарным вещам. Конечно, «массивы» там полный отстой (особ. по ср. с Ди), но с самой библиотекой можно работать без особого напряга.

Карочи, С++ — это не инструмент, а «вынужденная мера», «зубная боль ИТ». Кто может — избегает, кто вынужден — учится фигурному катанию на костылях и художественной резьбе по изготовлению берёзовых велосипедов. Бедняги, их жалкие потуги в 21 веке — просто мазохизм!

===================================


и считаете ли вы, что все так плохо с c++?
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
06.11.2016, 20:09
Ответы с готовыми решениями:

На чем еще пишете, кроме PB? Под .NET, например, пишете?
Что нужно добавить или изменить в PB, чтоб вы стали это писать на PB?

Где вы пишете?
Привет! Решил поинтересоваться, что вы используете: IDLE или сторонний редактор. Если редактор, то какой?

Что вы пишете в функции main?
Привет форумчане, Понимаю что вопрос слишком абстрактный, но хотелось бы спросить где почитать про "постулаты" оформления...

98
Игогошка!
 Аватар для ct0r
1801 / 708 / 44
Регистрация: 19.08.2012
Сообщений: 1,367
07.11.2016, 01:04
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от tapochka Посмотреть сообщение
много времени на то, чего, возможно, и не должно было быть...
А в каком языке сразу все было хорошо, а не в стиле "а вот эту фичу мы пока будем костылять как можем, а удобно сделаем потом"?
0
Эксперт С++
 Аватар для Avazart
8489 / 6156 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
07.11.2016, 01:05
Цитата Сообщение от Renji Посмотреть сообщение
Про Rust с std::fs - без понятия. Питон же нормально переваривает юникодные пути из коробки.
Я не про rust, я просто сходу не вспомнил как оно там называется - поправил пост ( std::experimental::filesystem :: path )
0
2784 / 1937 / 570
Регистрация: 05.06.2014
Сообщений: 5,602
07.11.2016, 01:11
Цитата Сообщение от Avazart Посмотреть сообщение
Я не про rust, я просто сходу не вспомнил как оно там называется - поправил пост.
std::experimental::filesystem не щупал, но вангую что оно будет работать в той кодировке, которая у Винды выставлена для программ не поддерживающих юникод. То есть, если на эту кодировку полагаться, программа рухнет при смене языковых настроек системы. Что, собственно, часто и происходит при попытке установки японских программ на русскую Винду.
0
42 / 42 / 17
Регистрация: 25.04.2014
Сообщений: 499
07.11.2016, 01:14  [ТС]
Цитата Сообщение от ct0r Посмотреть сообщение
А в каком языке сразу все было хорошо, а не в стиле "а вот эту фичу мы пока будем костылять как можем, а удобно сделаем потом"?
ну в том то и дело, что аккумулируются костыли - решаются - затем другие костыли аккумулируются, и в итоге у кого-нибудь сносит крышу и он идет пилить свой язык со свистелками и перделками... александреску, самый близкий пример
0
07.11.2016, 01:45

Не по теме:

Цитата Сообщение от tapochka Посмотреть сообщение
Со строками в С++ беда
Цитата Сообщение от tapochka Посмотреть сообщение
Вот за это мы и перешли в C# — среду, где нет разбродов хотя бы по элементарным вещам.
Человек который это писал не знает элементарных вещей - std::string, про std::vector наверно тоже не в курсе...
Не читал, но осуждаю!

0
07.11.2016, 02:34  [ТС]

Не по теме:

Цитата Сообщение от Новичок Посмотреть сообщение
Человек который это писал не знает элементарных вещей - std::string, про std::vector наверно тоже не в курсе...
человеку как раз не нравится std::string что она реализована контейнером а не как встроенный тип, так то можно понять его

0
Фрилансер
 Аватар для Black Fregat
3709 / 2083 / 567
Регистрация: 31.05.2009
Сообщений: 6,683
07.11.2016, 03:31
Цитата Сообщение от tapochka Посмотреть сообщение
не нравится std::string что она реализована контейнером а не как встроенный тип
А в rust как-то по-другому?
0
42 / 42 / 17
Регистрация: 25.04.2014
Сообщений: 499
07.11.2016, 04:29  [ТС]
Цитата Сообщение от Black Fregat Посмотреть сообщение
А в rust как-то по-другому?
а rust то здесь причем?) человек с c# сравнивал
0
Любитель чаепитий
 Аватар для GbaLog-
3745 / 1801 / 566
Регистрация: 24.08.2014
Сообщений: 6,020
Записей в блоге: 1
07.11.2016, 08:17
Цитата Сообщение от Avazart Посмотреть сообщение
В С++ пространство имен, т.е нужно писать std::sin();
Ну в С++, как я уже сказал, всё настраивается.
Можно, если так мешает, набрать using namespace std;.
Но давайте не будем сейчас рассуждать о том, насколько это хорошо и насколько плохо.
Тот пост скорее на эмоциях был написан, а языки - это дело вообще второстепенное на самом деле.
Цитата Сообщение от tapochka Посмотреть сообщение
а скорость разработки вас не смущает?)
Если это не важно, то не смущает, если надо написать в сжатые сроки, то, конечно, никто на С++ не будет писать.

Добавлено через 12 минут
Цитата Сообщение от tapochka Посмотреть сообщение
человеку как раз не нравится std::string что она реализована контейнером а не как встроенный тип
Ну так она в стандартную библиотеку входит, а в ВС вообще с предкомпилированным заголовком всё само подключится небось.
В чём проблема-то? Я же говорю, все эти высказывания - оправдания неосиляторов.
1
829 / 253 / 34
Регистрация: 27.07.2016
Сообщений: 497
Записей в блоге: 1
07.11.2016, 10:04
Ну мне тоже std::string не по душе и что?
А еще я не люблю просмотром телевидения упиваться и что?
У меня есть молоток же, мне пойти телевизор расколошматить?
0
Эксперт С++
 Аватар для Avazart
8489 / 6156 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
07.11.2016, 13:20
Цитата Сообщение от Renji Посмотреть сообщение
std::experimental::filesystem не щупал, но вангую что оно будет работать в той кодировке, которая у Винды выставлена для программ не поддерживающих юникод. То есть, если на эту кодировку полагаться, программа рухнет при смене языковых настроек системы. Что, собственно, часто и происходит при попытке установки японских программ на русскую Винду.
Согласен, но опять же тут особенности винды ...
У винды же заморочки с длиной пути большей MAX_PATH, юникодной не юникодной версией, префиксами "\\?" итп.

Цитата Сообщение от tapochka Посмотреть сообщение
а rust то здесь причем?) человек с c# сравнивал
Так в чем проблема что он не встроенный? Вообще это typedef шаблона, а не тип.
В C# как я помню строки не модифицируемые и что? Почему-то никто не кричит отстой?

Не по теме:

Цитата Сообщение от HelicopterK52 Посмотреть сообщение
Ну мне тоже std::string не по душе и что?
Мне не нравится что такие вещи как trim() split() приходится либо самому писать либо брать с boost.
Но это дело такое...

0
188 / 187 / 46
Регистрация: 24.03.2011
Сообщений: 670
07.11.2016, 13:39
Цитата Сообщение от tapochka Посмотреть сообщение
По моему скромному опыту <...> .NET-разработчик с опытом N лет в среднем более квалифицирован, чем C++-разработчик с опытом тех же N лет.
Как ни странно, по моему скромному опыту все ровно наоборот. Так что это все болтовня.

Цитата Сообщение от tapochka Посмотреть сообщение
Пока последний решает на C++ проблемы, которые больше ни в одном языке так изящно не решаются <...>, первый сталкивается с бОльшим разнообразием паттернов, архитектурных подходов, идиом и концепций.
Вот честно, не вижу корреляции между этим предложением и предыдущим. Это совсем не показатель квалификации.
Само собой, что не нужно все писать на С++ - у него есть своя ниша, в C# и др. - своя. Какие-то задачи решаются легче на C#, какие-то - на С++. То, что на С++ некоторый класс задач решать "сложнее" (что тоже неоднозначно - тут вот как раз и зависит от квалификации), не означает,что один язык лучше другого В ОБЩЕМ случае.

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

Цитата Сообщение от tapochka Посмотреть сообщение
Почему-то некоторые задроты думают, что вручную удалив память, они стали какими-то гуру программазма! ДАЛЕКО НЕ. Ровно наоборот — пока «сипиписники» возились в низкоуровневых дебрях, тратя своё время на ЕРУНДУ, «шарповоды» осваивали высокоуровневые вещи типа дженериков, async, TPL и прочее. И когда приходит такой вот «сипиписник» в цэшарп, он выглядит как неандерталец <..>.
А эти излияния лишь говорят об уровне знания С++ автором этого сочинения. Т.е. он так и не преодолел низкоуровневые дебри и не вылез в "высокоуровневую нишу". Дженерики и async в качестве примера вообще выглядят убого. И работал он с такими же сипиписник'ами, которые тоже не осилили и пошли в C#.

Цитата Сообщение от tapochka Посмотреть сообщение
Со строками в С++ беда.
В С++ в текущей STL беда, и многие это признают. Библиотека контейнеров Qt намного удобнее в использовании (та же QString: и тебе trim, и тебе split, и куча всего еще на все случае жизни). Но это совсем другой вопрос.

Тут кто-то про Rust упоминал. У меня знакомый как-то под него библиотеку какую-то портировал. Не очень лестно он по поводу удобства отзывался... Так что если он и "выстрелит", то С++ не застрелит.

И, наконец, напоследок. Как говорил один уважаемый мной человек, который замечательно разбирается и в С#, и в С++: Если С++ язык для программистов, то C# - язык для не очень умных программистов. Это, конечно, утрирование, но в каждой шутке лишь доля шутки)
1
829 / 253 / 34
Регистрация: 27.07.2016
Сообщений: 497
Записей в блоге: 1
07.11.2016, 13:56

Не по теме:

Цитата Сообщение от Avazart Посмотреть сообщение
Мне не нравится что такие вещи как trim() split()
Для меня страшнее что нет ничего такого:
C++
1
std::string str1(std::string_format::utf8);
всё это приходится велосипедить, если не нужны лишние зависимости.



Добавлено через 9 минут
Кстати, я разработал язык программирования,
в котором не нужно ничего велосипедить и уже всё имеется из коробки.
Вот так там будет выглядеть создание новой ОС, лучшей чем Windows:
Code
1
program.decription("Windows killer").create();
осталось только написать компилятор всего этого дела.
Я начал его писать на C++, но застрял на этом:
C++
1
2
3
int main()
{
}
не могу понять как делать дальше. Подскажите.
Как такое на C# можно написать? Мне говорили, что там проще.
2
Эксперт С++
 Аватар для Avazart
8489 / 6156 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
07.11.2016, 14:12
Цитата Сообщение от HelicopterK52 Посмотреть сообщение
Для меня страшнее что нет ничего такого:
Я считаю оно там и не должно быть, лишнее, кодировки и строки как бы немного разные вещи.
0
2784 / 1937 / 570
Регистрация: 05.06.2014
Сообщений: 5,602
07.11.2016, 14:15
Цитата Сообщение от Avazart Посмотреть сообщение
Согласен, но опять же тут особенности винды ...
У винды же заморочки с длиной пути большей MAX_PATH, юникодной не юникодной версией, префиксами "\\?" итп.
Так эти особенности Винды обходятся тривиально - вызываем MultiByteToWideChar, преобразуем utf-8 путь в utf-16 и открываем файл через CreateFileW, а не через CreateFileA.
А PATH_MAX и у пингвинов есть.

Добавлено через 2 минуты
Цитата Сообщение от HelicopterK52 Посмотреть сообщение
Для меня страшнее что нет ничего такого:
В C++11 уже есть - меняете "тест" на u8"тест" и строка точно будет в utf-8.
0
829 / 253 / 34
Регистрация: 27.07.2016
Сообщений: 497
Записей в блоге: 1
07.11.2016, 14:17
Цитата Сообщение от Renji Посмотреть сообщение
В C++11 уже есть - меняете "тест" на u8"тест" и строка точно будет в utf-8.
И как это поможет в обработке строк?
Цитата Сообщение от Avazart Посмотреть сообщение
кодировки и строки как бы немного разные вещи.
ну так строки состоят из символов, а эти символы как-то закодированы.
Для std::string это просто набор байт, не более. Никакого осмысленного формата.
Посему и получается, что приходится велосипедить, ведь size не даст количества символов, также, как и operator[] не даст нужного символа. Правда, если бы давал, то пришлось бы пересмотреть сложность всего этого дела.
Но, благо, всё давно навелосипедино. Я бы предпочел, чтобы что-то всё-таки было для работы с различными кодировками без боли.
0
2784 / 1937 / 570
Регистрация: 05.06.2014
Сообщений: 5,602
07.11.2016, 14:20
Цитата Сообщение от HelicopterK52 Посмотреть сообщение
И как это поможет в обработке строк?
А в обработке строк надо использовать utf-16 или utf-32. То есть, std::wstring. Utf-8 изначально плохо приспособлен к посимвольному чтению.
0
829 / 253 / 34
Регистрация: 27.07.2016
Сообщений: 497
Записей в блоге: 1
07.11.2016, 14:28
Цитата Сообщение от Renji Посмотреть сообщение
Utf-8 изначально плохо приспособлен к посимвольному чтению.
А не посимвольно еще хуже. Оно ж завязано на контексте.
Цитата Сообщение от Renji Посмотреть сообщение
А в обработке строк надо использовать utf-16 или utf-32.
Посему нам были даны великие u16string и u32string, но не дано ничего, чтобы работать с этим добром без боли. А с болью мы и раньше жили. Да даже в QString есть toStdU16String, который сделает нам u16string, а в std::string - пилите сами. Собственно, оно ипонятно, ведь чтобы перевести, надо знать в какой кодировке текст в данный момент. Но у нас с этим милая, но большая задница. Вот я о чем.
0
Эксперт С++
 Аватар для Avazart
8489 / 6156 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
07.11.2016, 14:28
Цитата Сообщение от HelicopterK52 Посмотреть сообщение
Посему и получается, что приходится велосипедить, ведь size не даст количества символов, также, как и operator[] не даст нужного символа.
Так переводите в осмысленный формат(широких символов) до попадения в basic_string и будет вам size и []
0
829 / 253 / 34
Регистрация: 27.07.2016
Сообщений: 497
Записей в блоге: 1
07.11.2016, 14:31
Цитата Сообщение от Avazart Посмотреть сообщение
широких символов
Которое опять же везде по разному. Это я про wchar_t.
Цитата Сообщение от Avazart Посмотреть сообщение
Так переводите
Ну вот, видите, снова, - "переводите". Да перевожу и это порядком надоело.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
07.11.2016, 14:31

На каких ассемблерах вы пишете чаще всего?
Пожалуйста, не выбирайте в опросе ВСЕ ассемблеры, на которых вы пишете!!! Выбирайте только те, на которых вы пишете НАИБОЛЕЕ ЧАСТО!!! ...

На работе вы пишете приложения для андроида?
Есть ли на форуме люди, которые за это получают зп, интересно ли работать, какая сфера деятельности (игры или что то другое)?

Почему солнце круглое, а небо зеленое. Почему ооп такое странное?
Учил я пхп. Самоучитель PHP 5/6 и сайт метанит. И все было хорошо. Чтобы закрепить основы решил написать что-то такое: 1. Сохранить БД в...

Внезапно почему то игры на компьютере начали фризить подлагивать не знаю почему?
Подскажите что не так или программы для теста железа или же как внешне определить неисправность. Проц fx 6300; видеокарта Sapphire nitro...

Почему нельзя командой copy скопировать системные файлы на дискету? Почему?
Пожалуйсат, подскажите, весь интернет перерыла, вот почему нельзя? что нельзя знаю, а по какой причине?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
60
Ответ Создать тему
Новые блоги и статьи
Про "Windows must die!"
kumehtar 04.11.2026
Знаете, чет накатило. . . . Когда-то это было почти боевым кличем: мол, нормальный человек сидит на DOS, OS/ 2 или Linux, а вот это вот - Must Die. А теперь человек произносит «мастдай» с усмешкой - и. . .
Красочные поля с номером страницы svg+background-image
russiannick 04.11.2026
Красочные поля с номером страницы не менее важны чем в эпоху бумажных книг. Посему спешу представить почтеннейшей публике этот важный инструмент который эти поля и формирует. В процессе разработки. . .
Вступаем в новую фазу генерации favicons, векторную.
russiannick 02.11.2026
Теперь нет нужды скрывать что используется простой svg. Исходный код изображения помещаем в поле и жмем кнопку. Исходник преобразуется в вид корректный для помещения в favicon или в url(). Нажатие. . .
Генератор паролей (вариант №4)
Maks 01.11.2026
После публикации 3-го варианта генератора паролей, разослал его своим коллегам (с целью оценки), в итоге были получены следующие рекомендации: 1. Вернуть возможность использования знаков | 1 l I;. . .
Генератор паролей (вариант №3)
Maks 30.10.2026
Финальная версия генератора паролей 1С. Доработка решения в этот раз коснулась только визуальной части, а именно, добавлен реквизит ДопПараметры (тип Булево), который скрывает/ отображает реквизиты:. . .
Магическое мышление и магия, современная наука не отличима от магии (говорит ИИ Джемени)
zorxor 30.10.2026
Джемени, расскажи, пожалуйста, что такое магическое мышление, что такое магия, почему современная наука чем-то напоминает магию? Фраза «Любая достаточно развитая технология неотличима от магии». . .
За какое время ИИ может подобрать пароль по хешу (рассказывает Джемени ИИ)
zorxor 30.10.2026
Расскажи, Джемени, если известен хэш МД5, например, за сколько ИИ сможет подобрать соответствующий пароль? Искусственный интеллект (ИИ) может подобрать простой или средний по сложности пароль по. . .
Кто убил Suno? Почему наше солнышко погасло? (диалог с ИИ Джемени)
zorxor 30.10.2026
Как убивали Suno. Хронология. «Убийство» музыкальной нейросети Suno — это затяжной процесс, в котором технологический хайп стартапа разбился о жесткую реальность судебных исков от гигантов. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru