A PHP Error was encountered

Severity: Notice

Message: Trying to get property of non-object

Filename: models/model_blog.php

Line Number: 181

A PHP Error was encountered

Severity: Notice

Message: Trying to get property of non-object

Filename: models/model_blog.php

Line Number: 183

опять об c++ (программистское) | Yablor.ru

опять об c++ (программистское)

топ 100 блогов avva23.06.2010 Линус в очередной раз сказал, что думает о C++. Вот длинная цитата, но вообще-то стоит все прочитать.
One of the absolute worst features of C++ is how it makes a lot of things so context-dependent - which just means that when you look at the code, a local view simply seldom gives enough context to know what is going on.

That is a huge problem for communication. It immediately makes it much harder to describe things, because you have to give a much bigger context. It's one big reason why I detest things like overloading - not only can you not grep for things, but it makes it much harder to see what a snippet of code really does.[...]

And C is a largely context-free language. When you see a C expression, you know what it does. A function call does one thing, and one thing only - there will not be some subtle issue about "which version" of a function it calls.
А вот что я писал четыре года назад :)
Одна из главных причин, почему C++ плохой язык: для этого надо сначала понять, почему C хороший. В чем состоит то свойство C, из-за которого его называют "портабильным ассемблером"? Дело не в том, что "близко к машине", и всё низкого уровня. Дело в том, что почти всегда в C эффект любой строки кода локален и очевиден. Когда я что-то делаю в C, неважно что, я очень хорошо понимаю, что именно происходит. Если я пишу x=y, я знаю точно, что происходит. Если я пишу f(...), я знаю точно, какая конкретно функция будет вызвана, я могу указать на неё пальцем, и я знаю точно, что произойдёт в момент входа в неё и выхода из неё. Если я выделяю память, я знаю точно, что она не исчезнет, пока я её не освобожу. Итд. итп. [...]

C++ - смесь разных принципов отношения к информации и средствам её прятать или открывать, которые доступны программисту; смесь, кажется, очень плохо продуманная. С одной стороны, полностью сохранён "низкий уровень" C, в том числе отсутствие сборки мусора, т.е. очень важный пример того, что заставляем программиста за всем следить и обо всём помнить. [...] Но, с другой стороны: полностью нарушен (я бы сказал, низвергнут с пьедестала и подвержен особо извращенному поруганию) этот самый принцип локальности поведения системы в ответ на строчку моего кода. Я всего лишь объявил переменную какого-то типа, написав "Typename varname;", но эта строчка может привести к вызову неизвестного мне конструктора, а за ним - кода сколь угодно, вообще говоря, сложности. Я всего лишь применяю известный мне оператор к переменной - а он, оказывает, overloaded у этого класса, и черт знает что на самом деле там произойдет. Я всего лишь вышел из функции, что может быть проще, написал }, а в рантайме на самом деле пошли плясать деструкторы всех автоматических объектов в этой функции. И даже и не буду начинать говорить про copy constructor и прочие подобные прелести.
(это тоже длинная цитата, но не всё - см. по ссылке).

Тогда я хорошо понимал, почему C лучше C++. Прошло четыре года, и теперь я хорошо понимаю, почему C++ лучше, чем C (сомневаюсь, что Линус об этом напишет). При этом я не отказываюсь ни от одного слова, и все еще считаю, что C лучше C++. Никаких дешевых парадоксов, просто два разных смысла слова 'лучше'. Об этом как-нибудь в другой раз.

Оставить комментарий

Архив записей в блогах:
Володимир Ссанич сьогодні опублікував селфі типу "я у Харкові" - на фоні безлюдного старого терміналу "для делегацій" в аеропорту. А на площу перед Харківською ОДА, де його чекало більше 300 людей, приїхати засцяв. ...
Чем больше я думаю, чем могло быть пресловутое грехопадение, тем сильнее мне кажется, что оно могло быть только чем-то вроде небезызвестного спадения умов в тела. Только такой вариант согласовывался бы с устройством этого мира как системы, научными данными, эволюцией, современной ...
Очень показательный сюжет об актуальном состоянии Николаевского Судостроительного Завода и крейсера "Украина". По наводке https://dambiev.livejournal.com/1780445.html ...
Меня удивляет, как ничтожества любят переложить своё разгильдяйство на меня. Наступил кризис? Бушует коронавирус? Вас уволили? Виновата Лена Миро! Фото: Соцсети Кто виноват в том, что в стране кризис? Кто виноват в том, что лично ты, как специалист, бесполезен и деградировал, как ...
все совпадения не случайны! итак, рассказываю про нашего Алёшу он завяз в говнах замкадья : "Из-за снега, который безумно заебал, рад первому говну, которое стыдливо появляется на первых проплешинах.!" и вчера это мне подтвердил, что снега у них почти не осталось и он радуется этому! ...