- 1
https://habrahabr.ru/post/347688/
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+1
https://habrahabr.ru/post/347688/
Ученые выяснили, что плюсы медленнее си.
если хочешь пользоватся крестами - то классы это обязательно. и наследование вынуждают кресты тоже использовать. и еще надо операторов перегруженых вхуячить. самое главное - все объекты выделять динамически с new. потом сделать драму из исключений, потому что мы их не поддерживаем.
"какой говняный язык, не будем им пользоватся." - почти буквальная цитата.
хм, это точно сишник в кресты пришел а не джавист или пхпшник?:)
а вы кстати знаете, что в джаву хотят завести объекты, живущие на стеке?
ходят кучи книжек/этц как раз рекламирующие кресты в встроенщине.
с другой стороны, какие зеленые выпускники каких курсов скорее все ничего кроме такого стиля и не видели.
> а вы кстати знаете, что в джаву хотят завести объекты, живущие на стеке?
лучше 20 лет поздно - чем никогда.
Теперь жабоёбы будут ломать голову над вопросом: "а где же мне разместить этот объект"?
... а блин, может быть. я думал просто вечный дроч со стороковыми операциями, что бы в гц лишнего не сорить. а строки то там (как и крестовый стринг) динамические их на стек не положишь. или в жабу какую shortstring завезли уже?
Строки в жабе, если я верно помню, это честная обёртка вокруг массива char.
Массивы в джаве имеют информацию о размере (они не null terminated, там физически есть инфа).
Так что теоретически строку тоже можно сложить на стек, но это implementation details, программист про это думать не должен наверное
Но это вообще не вопрос строк: это вопрос стека и кучи, имхо. Если я знаю что нечто будет расти до неебических размеров то я ложу это на кучу, даже в няшненькой.
А вот
тут-то зачем pitux на кучу класть?
Но вообще я фантазирую, конечно: надо читать сырцы jdk, а мне лень.
В принципе это известный факт что иногда некоторые объекты jit может покласть на стек если сможет доказать что ссыль на них никуда не утечет.Делает-лион это для примера выше я хз
>> char buf[] = new char[33];
>> return new String(buf, charPos, (33 - charPos));
Код написан сишником, который решил оставить место под нолик?
З.Ы. А, тьфу, это под знак.
И это хорошо, что в местах, где сейчас нужна производительность, был впилен такой язык (тормозной по определению, с низким порогом вхождения). За счёт этого мы теперь имеем отличные движки с хитрожопейшими системами оптимизации опередившими своё время и внутренним компилятором, который из исходников готовит рабочий код за доли секунды (привет шаблонам C++).
Наконец с программой пердолится и выжимает все соки не человек, а другая программа. Никто из авторов движков не надеется, что на JS напишут хороший быстрый код, и не нагружают программиста деталями реализации.
А если позволять пользователю раскладывать переменные туда, куда он хочет их положить, придётся либо попрощаться с пирфомансом, либо мириться со временем и стоимостью разработки, ибо то же самое, что напишет на JS неумеха оператор шаблонизатора за час, дорогой опытный сишный оператор памяти выдаст за 100500 часов, а результат тот же.
Если уж такое делать, то стоит оставлять это как директивы компилятора (потом, когда все начнут писать на всякий случай какие-нибудь традиционные или устаревшие директивы, не слушать их по умолчанию и добавить второй комплект, третий, чётвёртый - как в GCC с inline), и чтобы без них всё работало автоматически.
Ну в общем-то логично. Плюсы - язык более высокого уровня.
разумеется