Дорога в тысячу ли
Mar. 5th, 2019 08:45 pm![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
Программизма псто.
В интернетах живо обсуждают пост Эрика Ниблера о ranges in C++. Одни радуются что наконец в С++ появляются какие-никакие современные элементы программирования. Другие сокрушаются тем, что современное программирование на С++ - обло, озорно, огромно, стозевно и лаяй.
На своей новой работе я впервые за очень много лет вылез из среды С/С++ и вот что мне подумалось.
С++ это как китайский язык. Надо учить всю жизнь только для того, чтобы оставаться грамотным. Месяц не практиковался в чтении и письме и всё, потом год нагоняешь, а то и рискуешь вернуться откуда начал. При этом из-за сложности языка все силы ума уходят на него, а на другое уже ничего не остаётся. Оттого у фаната С++ вид всегда восторженный и молодцеватый. В то время как в индустрии уже давно космические корабли бороздят просторы, в С++ люди ковыряют мейкфайлы в виме и страшно горды своим эзотерическим знанием.
Как однажды сказал один человек с которым я работал: китайский язык очень сложно выучить, но зато если сможешь, то потом три раза в день бесплатно кормят. Вот именно.
В интернетах живо обсуждают пост Эрика Ниблера о ranges in C++. Одни радуются что наконец в С++ появляются какие-никакие современные элементы программирования. Другие сокрушаются тем, что современное программирование на С++ - обло, озорно, огромно, стозевно и лаяй.
На своей новой работе я впервые за очень много лет вылез из среды С/С++ и вот что мне подумалось.
С++ это как китайский язык. Надо учить всю жизнь только для того, чтобы оставаться грамотным. Месяц не практиковался в чтении и письме и всё, потом год нагоняешь, а то и рискуешь вернуться откуда начал. При этом из-за сложности языка все силы ума уходят на него, а на другое уже ничего не остаётся. Оттого у фаната С++ вид всегда восторженный и молодцеватый. В то время как в индустрии уже давно космические корабли бороздят просторы, в С++ люди ковыряют мейкфайлы в виме и страшно горды своим эзотерическим знанием.
Как однажды сказал один человек с которым я работал: китайский язык очень сложно выучить, но зато если сможешь, то потом три раза в день бесплатно кормят. Вот именно.
no subject
Date: 2019-03-06 08:58 am (UTC)* С++, на котором это пишут, скорее С++ 98, да ещё и с кастом решениями вместо стандартной библиотеки. При этом после какого-то размера проект всё равно превращается в ужас-ужас. Я уже склоняюсь к тому, чтобы согласиться с Торвальдсом - ради производительности уже пишите на С, лучше будет.
* Если писать на т.н. "modern C++", вот на таком как в посте у Эрика, то производительности очень даже может уже и не оказаться.
* С++ всё сильнее уходит в нишевые области. А нам в своё время его продали как general purpose language. Для общих целей С++ всё менее и менее адекватен. Кто в здравом уме будет писать код в продакшен как вот это вычисление с ranges? И насколько это проще и элегантнее выглядит на других языках.
no subject
Date: 2019-03-06 09:26 am (UTC)Если писать на modern C++, то для достижения оптимальной производительности может понадобиться profile feedback, но это современные компиляторы уже умеют.
Если львиную долю индустрии, от финансов до игр со всеми остановками посередине, считать нишевыми областями, то да.
В конце концов, на каком языке написаны браузеры, которыми мы все пользуемся?
no subject
Date: 2019-03-06 10:20 am (UTC)Мне кажется что С++ сейчас стоит перед неким распутьем: или он будет модернизироваться и улучшаться как язык (скорее всего с потерей backward compatibility), или его преимущества просто перестанут играть роль пред лицом цены и скорости производства на нём.
Сегодня браузер написан на С++ во многом из-за легаси: написать качественный движок для браузера уже сравнимо с написанием ОС.
no subject
Date: 2019-03-06 05:16 pm (UTC)Понятно, что эксперименты, прототипы и пр. на С++ писать нет смысла; для этого питон есть.
У гугла, майкрософта или эплла достаточно денег. Если бы движок браузера было выгодно однажды переписать на языке программирования более высокого уровня (отчего объем кода, скорее всего, в несколько раз сократился бы, облегчая и удешевляя всю последующую поддержку) с улучшением или хотя бы сохранением производительности и требований к памяти, то это уже давно было бы сделано.
no subject
Date: 2019-03-07 08:33 am (UTC)