|
2.13, Аноним (-), 01:27, 04/10/2014 [^] [^^] [^^^] [ответить]
| –9 +/– |
> И получится Оберон
Если бы. C++ - язык для тех случаев, когда все остальные подходят ещё хуже. Оберон - очень лаконичный и предсказуемый, зато C++ позволяет выжать максимум производительности даже при использовании высокоуровневых техник. Для разного они, в общем.
И, да, C++ в ядре делать практически нечего. Разве что для какой-нибудь очередной Поттеринговской поделки сгодится, которая без ядерной поддержки не взлетает.
| |
|
|
|
5.59, Аноним (-), 15:54, 04/10/2014 [^] [^^] [^^^] [ответить]
| +/– |
Не видел чтобы поттер сильно фанател по плюсам. Писать юзермод на плюсах можно уже сейчас, ничему не противоречит.
| |
|
|
3.32, _KUL (ok), 03:19, 04/10/2014 [^] [^^] [^^^] [ответить]
| +2 +/– |
Да почему же, плюсы отличный язык, сложный конечно (читая книги по которому, возникает только больше вопросов), но он очень хорош во многих отношениях.Он как девушка с идеальной фигурой - ни кто до этого такого не видел, боятся разглядывать, а значит и считают это злом, т.к. привыкли к дефектным. Просто зачем переписывать с сей на плюсы, ради сомнительной цели - особенности языка плюсов? КПД стремится к нулю?
Просто индусам нужно на хлеб зарабатывать, вот и переписывают по очереди на все языки за бюджетные деньги. Не зря же появилась фраза - про их программистов :)
| |
|
4.47, Аноним (-), 13:57, 04/10/2014 [^] [^^] [^^^] [ответить] | +/– | Отличный, да Но сильно специфический Ruby тоже ведь хороший язык, но драйвера ... большой текст свёрнут, показать | |
|
5.68, тоже Аноним (ok), 16:54, 04/10/2014 [^] [^^] [^^^] [ответить]
| +1 +/– |
Вообще-то С++ - язык мультипарадигменный.
Например, он может использоваться как низкоуровневый язык без ручного управления памятью.
| |
|
4.77, Аноним (-), 19:59, 04/10/2014 [^] [^^] [^^^] [ответить]
| +1 +/– |
>>[C++]Он как девушка с идеальной фигурой -
Это точно! Требует постоянного внимания, никогда не знаешь чего ещё вытворит и постоянно ломаеццо *ать !!! :)
| |
|
3.103, абырвалГ (?), 22:40, 05/10/2014 [^] [^^] [^^^] [ответить]
| +2 +/– |
Выжать максимум производительности помогает компилятор. Язык программирования (любой) - всего лишь способ донести свои мысли до компилятора :) И этот миф, что на каком-то языке программирования, в данном случае - С++, получится более быстрый код, чем, скажем, на Паскале - мифом и остается :)
| |
|
|
|
6.133, Аноним (119), 17:11, 06/10/2014 [^] [^^] [^^^] [ответить]
| –1 +/– |
> крутой нафик не нужен, нужен - правильный
> у паскаля он есть
Там с оптимизацией оочень не хорошо ;)
| |
|
7.137, yantux (??), 19:00, 06/10/2014 [^] [^^] [^^^] [ответить]
| –3 +/– |
На реальных приложениях - всё отлично.
Самое важное для современного софта:
-минимум ошибок;
-сопровождаемость кода;
-код на Си и С++ сопровождать не реально.
| |
|
8.152, Аноним (119), 10:02, 07/10/2014 [^] [^^] [^^^] [ответить] | +/– | Никто не говорит что всё плохо, для чего-то и неоптимизированного js достаточно,... текст свёрнут, показать | |
8.179, Аноним (-), 06:33, 08/10/2014 [^] [^^] [^^^] [ответить] | +1 +/– | Да вот что-то за дельфистами код сопровождать никто не хочет, а линуксное ядро с... текст свёрнут, показать | |
|
7.146, Led (ok), 01:48, 07/10/2014 [^] [^^] [^^^] [ответить]
| +2 +/– |
>> крутой нафик не нужен, нужен - правильный
>> у паскаля он есть
> Там с оптимизацией оочень не хорошо ;)
Сосед по парте тебя обманул.
| |
|
|
|
4.196, Аноним (195), 12:49, 15/01/2024 [^] [^^] [^^^] [ответить]
| +/– |
Нафиг этот регистронечувствительный Паскаль, тогда уж лучше Modula-2. Тем более, что её компилятор теперь есть в составе GCC.
| |
|
|
|
|
4.197, Аноним (195), 12:52, 15/01/2024 [^] [^^] [^^^] [ответить]
| +/– |
>только вместо ядра NT - Linux
А тут без шуток. Вся эта игра вокруг WSL, в конечном итоге, к этому и приведёт.
| |
|
|
|
1.2, Аноним (-), 00:41, 04/10/2014 [ответить] [﹢﹢﹢] [ · · · ]
| +17 +/– |
Странно, что индусы не пишут дрова на xml. А получится не оберон, а очередной никому не нужный випнет.
| |
|
2.3, Аноним (-), 00:45, 04/10/2014 [^] [^^] [^^^] [ответить]
| +2 +/– |
Вы почти угадали. У них про это упомянуто: "It also allows implementation of policies in form of (object oriented) code instead of only a static policy data (e.g. policy file written in a DSL or XML)."
| |
|
3.5, pavlinux (ok), 00:51, 04/10/2014 [^] [^^] [^^^] [ответить]
| +/– |
> a static policy data
шел-код в принципе тоже static policy data, так что ... кто всё это разгребать будет???
Если напр. спинлок от сетевухи подерётся с другим, у другой сетевухи при многолинковых соединениях...
| |
3.28, Аноним (-), 02:40, 04/10/2014 [^] [^^] [^^^] [ответить]
| +/– |
> of policies in form of (object oriented)
И вот это будет проще майнтайнить? По-моему они зубы заговаривают.
| |
|
2.4, pavlinux (ok), 00:46, 04/10/2014 [^] [^^] [^^^] [ответить]
| +10 +/– |
Тут смари чо:
> объёктно-ориентированных обвязок для перехвата системных вызовов
Там дыреней будет лет на 10 вперёд с запасом.Поэтому можно легко срубить бабла на саппорте :D
| |
|
3.10, Психиатр (ok), 01:07, 04/10/2014 [^] [^^] [^^^] [ответить]
| –2 +/– |
>Поэтому можно легко срубить бабла на саппорте :D
блин, павлин за последнее время стал умные вещи говорить
тут ты, батенька, в самое яблочко попал
| |
|
4.15, Аноним (-), 01:31, 04/10/2014 [^] [^^] [^^^] [ответить]
| +10 +/– |
> блин, павлин за последнее время стал умные вещи говорить
Да павлин как стоящие часы - два раза в сутки показывает правильное время :).
| |
|
|
6.29, Аноним (-), 02:41, 04/10/2014 [^] [^^] [^^^] [ответить]
| +1 +/– |
> Тогда уж календарный листок.
> За 4 октября.
Не, ну знаешь, павлин хоть и работает в режиме генератора рандомного спама, но угадывает явно чаще раза в год.
| |
6.92, Аноним (-), 09:01, 05/10/2014 [^] [^^] [^^^] [ответить]
| +/– |
> Тогда уж календарный листок.
> За 4 октября.
да еще и конкретно в субботу?
| |
|
|
|
|
2.78, Аноним (-), 20:01, 04/10/2014 [^] [^^] [^^^] [ответить]
| +2 +/– |
> Странно, что индусы не пишут дрова на xml.
Муха-ха-ха!!! Это 100%, 100500 левел троллинга! Их же любимый фетиш - жаба и хмл ...
| |
|
|
|
3.19, freehck (ok), 01:34, 04/10/2014 [^] [^^] [^^^] [ответить]
| –1 +/– |
Почему же не взлетело? Взлетело. Андроидом зовётся. КПД, правда, у этого полёта...
| |
|
4.25, Аноним (-), 02:14, 04/10/2014 [^] [^^] [^^^] [ответить]
| +7 +/– |
У андрюши обыкновенное ядро Linux, java там только для рантайма, и то у ВМ своя реализация, а не сановская.
Не пишите ересь.
| |
4.84, pavlinux (ok), 23:31, 04/10/2014 [^] [^^] [^^^] [ответить]
| +/– |
КПД у Андроеда выше 100% и кроме iOS ваще не имеет конкурентов.
Под Windows/MacOS столько программ нет, сколько под Андроид.
И только благодаря Андроид любой может себе все, что раньше
ограничивалось стоимостью железа и софта. Ибо купив кетайский
Ляо MTK за 50$ или Gresso Radical Black R3 за 3000$, результат
использования будет абсолютно одинаковый.
| |
|
5.97, freehck (ok), 18:00, 05/10/2014 [^] [^^] [^^^] [ответить]
| +/– |
> КПД у Андроеда выше 100% и кроме iOS ваще не имеет конкурентов.
Ну, на вкус и цвет, конечно, но как по мне, оба плохи.
> Под Windows/MacOS столько программ нет, сколько под Андроид.
Это, пожалуй, правда. Но толку-то от их количества, если большинство из них - дешёвые поделки нерадивых студентов да вирусописателей?
> И только благодаря Андроид любой может себе все, что раньше
> ограничивалось стоимостью железа и софта. Ибо купив кетайский
> Ляо MTK за 50$ или Gresso Radical Black R3 за 3000$, результат
> использования будет абсолютно одинаковый.
Да неужели. Ну, тогда у GNU/Linux тоже потенциал выше 100%, ибо купив китайский ноутбук и накатив на него Debian Вы сможете делать всё то же, что и на новеньком маке.
| |
5.107, Аноним (-), 04:02, 06/10/2014 [^] [^^] [^^^] [ответить]
| –1 +/– |
> КПД у Андроеда выше 100%
Значит надо надеть каски и быстренько съе...ть оттуда, издали наблюдая за тем как оно пойдет вразнос.
| |
|
|
|
|
1.8, Психиатр (ok), 01:05, 04/10/2014 [ответить] [﹢﹢﹢] [ · · · ]
| –3 +/– |
хоспади ...
вантуз уже индусский чуть меньше чем полностью ...
так они уже и до ведра добрались ...
| |
|
2.16, Аноним (-), 01:32, 04/10/2014 [^] [^^] [^^^] [ответить]
| +2 +/– |
> хоспади ...
> вантуз уже индусский чуть меньше чем полностью ...
> так они уже и до ведра добрались ...
Справедливости ради, индусы индусам рознь. Мой бывший непосредственный начальник - потомственный индус, при этом блестящий специалист, хороший преподаватель и просто потрясающий человек. Собственно, "бывший" - потому что финансово-семейные обстоятельства вынудили его уехать зарабатывать на собственное жильё... В общем, я очень горжусь знакомством и благодарен ему за многое, чему я у него научился.
| |
2.24, Аноним рус (?), 02:00, 04/10/2014 [^] [^^] [^^^] [ответить]
| +3 +/– |
Вообще у индусов все шансы повторить успех Китая, сколько шуму подняла на тех. ресурсах, сверхдешевая космическая миссия на Марс, удавшаяся полностью и с первого раза.
Горы ЙТшников с высокой конкуренцией и соответственно большими требованиями к самосовершенствованию. Да к кстати, посмотрите кто в топах у Гугла, после тройки основателей! ;-)
| |
|
3.35, Michael Shigorin (ok), 05:38, 04/10/2014 [^] [^^] [^^^] [ответить]
| +/– |
> Горы ЙТшников с высокой конкуренцией и соответственно большими требованиями
> к самосовершенствованию.
Насколько понимаю, с этими браминами всё далеко не так однозначно.
| |
|
4.55, Психиатр (ok), 15:02, 04/10/2014 [^] [^^] [^^^] [ответить]
| –5 +/– |
>Насколько понимаю, с этими браминами всё далеко не так однозначно.
именно, топовым, опытным кодерам и так работы хватает, они сидят себе и кодят проприетарный софт за нехилые баблосы, им всякие сомнительные недопроекты не нужны.
а вот те которые пытаются изобрести очередной велосипед - обычно неопытные и криворукие по определению.
| |
|
|
2.38, Аноним (-), 09:49, 04/10/2014 [^] [^^] [^^^] [ответить]
| +5 +/– |
"Индусский код" плодят индусы на аутсорс собственно в Индии. А толковые ребята у них очень быстро оттуда уезжают.
| |
|
3.93, Аноним (-), 09:46, 05/10/2014 [^] [^^] [^^^] [ответить]
| +/– |
> "Индусский код" плодят индусы на аутсорс собственно в Индии. А толковые ребята
> у них очень быстро оттуда уезжают.
плодят и плодят
| |
|
|
|
|
3.17, Аноним (-), 01:33, 04/10/2014 [^] [^^] [^^^] [ответить]
| +/– |
> лучше на C# ведро переписать или на vbs
Уже был какой-то прожЕкт от ms. Понятно насколько всем оказался нужен. Ну и си++ туда же пойдет. Торвальдс стопроцентно этим концептуалам волшебную палочку покажет.
| |
|
4.21, Психиатр (ok), 01:40, 04/10/2014 [^] [^^] [^^^] [ответить]
| –3 +/– |
>Торвальдс стопроцентно этим концептуалам волшебную палочку покажет.
Врядли.
Он скорее всего даже внимания не обратит, ибо проект мертворождённый.
| |
|
5.30, Аноним (-), 02:42, 04/10/2014 [^] [^^] [^^^] [ответить]
| +1 +/– |
> Он скорее всего даже внимания не обратит, ибо проект мертворождённый.
Он внимания не обратит, если к нему с этой бнопней не полезут. А если полезут - тогда покажет.
| |
|
|
5.41, имя (?), 10:54, 04/10/2014 [^] [^^] [^^^] [ответить]
| +/– |
>> Уже был какой-то прожЕкт от ms
> Singularity.
И, кстати, проект этот был исключительно исследовательским, в отличие от.
| |
|
6.60, Аноним (-), 15:56, 04/10/2014 [^] [^^] [^^^] [ответить]
| +/– |
> И, кстати, проект этот был исключительно исследовательским, в отличие от.
А у этих прожЕкт тоже чисто исследовательский, только они пока об этом еще не знают :)
| |
|
|
|
|
4.61, Аноним (-), 15:57, 04/10/2014 [^] [^^] [^^^] [ответить]
| +/– |
> Лучше на CUDA.
Да чего мелочиться? Сразу на брейнфаке давайте.
| |
|
|
|
1.22, Xasd (ok), 01:41, 04/10/2014 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
> Стоит напомнить, что Линус Торвальдс является ярым противником C++ и считает его ужасным языком, сковывающим разработчиков рамками ранее созданных абстракций (например, при желании избавиться от неэффективных абстракций, разработчик сталкивается с тем, что весь код зависит от созданных вокруг этих абстракций объектных моделей и не может исправить ситуацию не переписывая своё приложение).
вот же мозгач Линус! молодец, правильно думает..
что же будет когда его не станет (из-за автобуса, того-самого)..?
| |
|
2.48, Ан (??), 14:12, 04/10/2014 [^] [^^] [^^^] [ответить]
| +1 +/– |
А если сишнаую структуру захочешь изменить(заменить существующее поле на другое) то что внезапно весь зависимый софт сам перепишется под новую структуру?
Вообще в API всегда встают вопросы о поддержке каких-то структур/функций и желании их заменить, переписать. Так что это как-то из пальца высосано. Эта проблема всплывёт как в C++ так и в С.
| |
|
3.69, тоже Аноним (ok), 17:01, 04/10/2014 [^] [^^] [^^^] [ответить]
| +/– |
> Эта проблема всплывёт как в C++ так и в С.
Эта проблема всплывет в любом языке. Вопрос в объеме кода, который действительно зависит от таких изменений.
В С и С++ при правильном написании это - только тот код, который реально работает с этими полями. Весь остальной код, касающийся этой структуры, видит только указатель - то есть некое место в памяти определенного размера, но неизвестного назначения.
| |
|
4.98, freehck (ok), 18:21, 05/10/2014 [^] [^^] [^^^] [ответить] | +/– | А как эта скомпилированная программа на C C узнает сколько памяти нужно выдели... большой текст свёрнут, показать | |
|
5.102, тоже Аноним (ok), 22:35, 05/10/2014 [^] [^^] [^^^] [ответить]
| +/– |
Неизменными интерфейсы будут только в том случае, если в интерфейсах используется не структура, а указатель на нее. В этом случае тому коду, который не лезет внутрь структуры, безразлично, что скрывается под void*, а тому, который лезет - ну, тут перекомпиляция при изменениях неизбежна.
| |
|
6.104, freehck (ok), 23:29, 05/10/2014 [^] [^^] [^^^] [ответить] | +/– | Я правильно понимаю, что Вы предлагаете 1 В заголовках писать только определен... большой текст свёрнут, показать | |
|
7.116, тоже Аноним (ok), 08:42, 06/10/2014 [^] [^^] [^^^] [ответить]
| +/– |
Описание структуры логично вынести из заголовков с API в заголовки, которые будет подключать только тот код, которому это действительно нужно. Остальному перекомпилироваться совершенно необязательно.
| |
7.121, Аноним (-), 12:01, 06/10/2014 [^] [^^] [^^^] [ответить]
| +/– |
А что делать? Либо поля структуры, их размер, порядок, тип и количество являются частью интерфейса — и тогда мы можем сами выделять память, обращаться к отдельным полям не call get_field1, а mov eax, [struct_var+offset_field1], и т.п., — либо не являются, а вместо них есть абстрактный интерфейс к структуре — функции создания/удаления, геттеры-сеттеры, всякие удобные запросы (типа метода size() для связного списка) — но тогда, увы, появляются накладные расходы за счет косвенности, и полностью их никак не убрать.
| |
|
|
|
6.144, freehck (ok), 01:32, 07/10/2014 [^] [^^] [^^^] [ответить] | –1 +/– | Не знал, что можно объявлять структуру, не объявляя сами поля Серьёзно, я продо... большой текст свёрнут, показать | |
|
7.149, arisu (ok), 09:09, 07/10/2014 [^] [^^] [^^^] [ответить]
| +/– |
> Вот логичный вопрос-продолжение: а есть ли где-нибудь более подробная справка, в которой
> такие моменты обозначены?
да. называется «стандарт языка си». стоит недорого.
| |
|
|
|
|
3.130, dq0s4y71 (ok), 15:31, 06/10/2014 [^] [^^] [^^^] [ответить]
| +/– |
> А если сишнаую структуру захочешь изменить(заменить существующее поле на другое) то что внезапно весь зависимый софт сам перепишется под новую структуру?
А в чём проблема? Передавайте в функцию указатель на структуру, а какие поля у этой структуры, никого может не волновать, кроме внутренней реализации.
Вы можете вообще даже не объявлять поля структуры:
struct my_object;
struct my_object * my_object_create();
int my_object_do_something(struct my_object * object);
И это будет работать. А о внутренней структуре вашего объекта пользователь может вообще ничего не знать, в отличие от плюсов.
| |
|
|
5.162, dq0s4y71 (ok), 12:43, 07/10/2014 [^] [^^] [^^^] [ответить]
| +/– |
Внезапно выясняется, что если вы хотите использовать какие-то методы класса, класс должен быть определён :)
| |
|
4.145, freehck (ok), 01:34, 07/10/2014 [^] [^^] [^^^] [ответить]
| –1 +/– |
> Вы можете вообще даже не объявлять поля структуры:
> struct my_object;
> struct my_object * my_object_create();
> int my_object_do_something(struct my_object * object);
Уважаемый, не затруднит ли Вас подсказать мне, где это задокументировано, что можно объявлять структуры, не объявляя сами поля?
А то меня очень огорчает тот факт, что о таких вещах я узнаю только сейчас, хотя вроде бы с Си очень давно знаком.
| |
|
5.148, arisu (ok), 09:08, 07/10/2014 [^] [^^] [^^^] [ответить]
| –1 +/– |
> Уважаемый, не затруднит ли Вас подсказать мне, где это задокументировано, что можно
> объявлять структуры, не объявляя сами поля?
в стандарте, однако. forward declaration называется.
| |
|
6.154, freehck (ok), 11:09, 07/10/2014 [^] [^^] [^^^] [ответить]
| –1 +/– |
>> Уважаемый, не затруднит ли Вас подсказать мне, где это задокументировано, что можно
>> объявлять структуры, не объявляя сами поля?
> в стандарте, однако. forward declaration называется.
Я думаю, не с проста Вы не приводите ссылок. Я поискал. И стандарт, и forward declaration. И не нашёл этой документации. Arisu, попробуйте быть снисходительным, ибо вещи, которые Вам так очевидны, мне таковыми очень не кажутся.
| |
|
7.156, arisu (ok), 11:23, 07/10/2014 [^] [^^] [^^^] [ответить]
| +1 +/– |
> Я думаю, не с проста Вы не приводите ссылок.
конечно: я предполагаю минимальные навыки гуглежа.
> Я поискал. И стандарт, и forward declaration. И не нашёл этой документации.
это прискорбно. я по «c struct forward declaration» нашёл сразу много интересного. тебе гугель поломали.
а стандарт денег стоит, да. поэтому на него очень сложно ссылки приводить.
> Arisu, попробуйте
> быть снисходительным, ибо вещи, которые Вам так очевидны, мне таковыми очень
> не кажутся.
куда уж дальше-то? и направление поиска дал, и ключевые слова… ни разу не написал, что «это должны знать все, а кто не знает — тот лох». ан нет, мало, надо разжевать и в рот положить. пардон, но это уже только за деньги.
| |
|
8.161, freehck (ok), 12:43, 07/10/2014 [^] [^^] [^^^] [ответить] | +/– | Arisu, мне сдаётся, что ты видишь то, что хочешь видеть Интересного мне не надо... большой текст свёрнут, показать | |
|
9.164, arisu (ok), 12:45, 07/10/2014 [^] [^^] [^^^] [ответить] | +1 +/– | что-то я запамятовал когда мы успели трудовой договор заключить и где моя зарп... текст свёрнут, показать | |
|
|
|
|
|
6.168, freehck (ok), 13:28, 07/10/2014 [^] [^^] [^^^] [ответить] | –1 +/– | Спасибо Я нашёл стандарт и прочитал этот кусок Там, вроде, не говорится о стру... большой текст свёрнут, показать | |
|
7.170, dq0s4y71 (ok), 14:52, 07/10/2014 [^] [^^] [^^^] [ответить]
| +/– |
> Спасибо. Я нашёл стандарт и прочитал этот кусок. Там, вроде, не говорится о структурах.
А это, собственно говоря, относится ко всем типам. Можно написать:
int x;
int x = 1;
И это будет правильно :)
> Я на выходных поищу в стандарте определение слов declare и define. Интересно посмотреть, что стандарт говорит по этому поводу.
Интересно, что даже компиляторостроители иногда не отличают эти термины. Например, разные компиляторы называют разными словами одну и ту же ошибку:
> error: 'x' undeclared (first use in this function)
> Undefined symbol 'x' in function main | |
|
|
|
|
|
|
1.27, Аноним (-), 02:19, 04/10/2014 [ответить] [﹢﹢﹢] [ · · · ]
| –1 +/– |
Идея правильная, но язык выбран крайне неудачно. Справедливости ради, выбора тут нет нет.
| |
1.31, Ordu (ok), 02:45, 04/10/2014 [ответить] [﹢﹢﹢] [ · · · ]
| +7 +/– |
Отличная новость! Наконец-то кто-то решился на эту экспериментальную проверку непригодности C++ для ядерного программирования. Запасаемся попкорном и наблюдаем, желая успеха индусам: если C++ окажется удачнее, то у нас будет ядро лучше, чем linux. Ну, а если они ошибаются, то мы, по-крайней мере, сможем поглумиться, повторяя "а Торвальдс предупреждал".
| |
|
|
|
4.63, Аноним (-), 16:02, 04/10/2014 [^] [^^] [^^^] [ответить]
| +2 +/– |
> все в жопе.
Еще ReactOS, где ядро переписывали раза три. Последнее на каком-то урезанном субсете плюсов. А более вменяемые люди не выделывались и просто написали ядро на сях 1 раз, зато нормальное. У реально существующих ОС ядра оптимизированы на то чтобы это работало и желательно быстро и безглючно. А насколько оно концептуально - интересно десятку чудаков на всю планету.
| |
|
5.88, Аноним (-), 08:46, 05/10/2014 [^] [^^] [^^^] [ответить]
| +1 +/– |
> Ну Symbian в опе благодаря усилиям маркетолухов и помощи M$.
А также благодаря у...щности системы. Новое разрешение экрана добавить? На симбиане это героизм и достижение. Поэтому смарты на симбиане нокия улучшала в плане экранов очень неохотно. А уж как этот крап работал с сенсорным экраном - это вообще жесть.
| |
|
|
|
2.42, XoRe (ok), 11:39, 04/10/2014 [^] [^^] [^^^] [ответить]
| +/– |
> Отличная новость! Наконец-то кто-то решился на эту экспериментальную проверку непригодности
> C++ для ядерного программирования. Запасаемся попкорном и наблюдаем, желая успеха индусам:
> если C++ окажется удачнее, то у нас будет ядро лучше, чем
> linux. Ну, а если они ошибаются, то мы, по-крайней мере, сможем
> поглумиться, повторяя "а Торвальдс предупреждал".
Проблема в том, что всегда можно будет указать на совершенно иные причины фейла.
"Внутренние конфликты", "Разное видение у разработчиков", "Сворачивание финансирования" и т.д.
И типа, "но сама идея хорошая, только неосилили".
Хотя, вполне возможно, что внутренние конфликты и сворачивание финансирование произошло из за того, что никак не получалось сделать конфетку.
Но в этом могут и не признаться.
| |
|
3.67, Ordu (ok), 16:50, 04/10/2014 [^] [^^] [^^^] [ответить] | +1 +/– | gt оверквотинг удален Ну вы же понимаете, что чем больше фейлов C на поприще... большой текст свёрнут, показать | |
|
4.108, Аноним (-), 04:29, 06/10/2014 [^] [^^] [^^^] [ответить]
| +/– |
> бессильна, а вот probabilistic reasoning очень даже может выкрутится,
Ваш probablistic reasoning всего лишь то что люди попроще называют опытом и обобщением. Вот так вот и получается что даже грузчик с тремя классами образования на базовом уровне владеет этим предметом. Только не знает об этом.
| |
|
5.112, Ordu (ok), 04:52, 06/10/2014 [^] [^^] [^^^] [ответить]
| +/– |
>> бессильна, а вот probabilistic reasoning очень даже может выкрутится,
> Ваш probablistic reasoning всего лишь то что люди попроще называют опытом и
> обобщением. Вот так вот и получается что даже грузчик с тремя
> классами образования на базовом уровне владеет этим предметом. Только не знает
> об этом.
Да-да. И логикой все владеют от рождения, только не знают об этом.
| |
|
6.135, Аноним (-), 18:46, 06/10/2014 [^] [^^] [^^^] [ответить]
| +/– |
> Да-да. И логикой все владеют от рождения, только не знают об этом.
Ну, допустим, не все. Darwin Awards подтверждает - отклонения случаются и к добру не приводят.
| |
|
|
|
|
2.54, Zenitur (ok), 14:36, 04/10/2014 [^] [^^] [^^^] [ответить]
| –2 +/– |
> Отличная новость! Наконец-то кто-то решился на эту экспериментальную проверку непригодности
> C++ для ядерного программирования. Запасаемся попкорном и наблюдаем, желая успеха индусам:
> если C++ окажется удачнее, то у нас будет ядро лучше, чем
> linux. Ну, а если они ошибаются, то мы, по-крайней мере, сможем
> поглумиться, повторяя "а Торвальдс предупреждал".
Драйвер fglrx на C++. Недавно был "отвязан" от libstdc++.so.5. Он такой плохой из-за плохого отношения к Linux в ATi, а в AMD потратили денег на его починку (оказалось дешевле, чем переписать) и теперь он нормален. И всё-таки если бы он был на Си, проблем с исправлением не было бы изначально.
| |
2.62, Аноним (-), 16:00, 04/10/2014 [^] [^^] [^^^] [ответить]
| +/– |
> Отличная новость! Наконец-то кто-то решился на эту экспериментальную проверку непригодности
> C++ для ядерного программирования.
Вон уже есть реактос. Используйте наздоровье.
> Запасаемся попкорном и наблюдаем, желая успеха индусам:
> если C++ окажется удачнее, то у нас будет ядро лучше, чем linux.
Думаю, экспедиция на Марс отправится раньше.
> Ну, а если они ошибаются, то мы, по-крайней мере, сможем
> поглумиться, повторяя "а Торвальдс предупреждал".
А Торвальдс - руководитель проекта, который не дрoчит на концепции а достигает результатов. Этим он и отличается от безбашенных концептуалов с горящими глазами, готовыми все разворотить чтобы свои концепции вкостылить, доказывая с пеной у рта что если все падает и глючит - это ничего, так и надо.
| |
|
3.73, Ordu (ok), 18:29, 04/10/2014 [^] [^^] [^^^] [ответить]
| +1 +/– |
> Вон уже есть реактос. Используйте наздоровье.
Нет, спасибо
> Думаю, экспедиция на Марс отправится раньше.
Я тоже много чего думаю, но при этом различаю умозрительные выводы и факты. И вам рекомендую.
| |
|
4.89, Аноним (-), 08:50, 05/10/2014 [^] [^^] [^^^] [ответить]
| +1 +/– |
> Нет, спасибо
А чего так? :)
> Я тоже много чего думаю, но при этом различаю умозрительные выводы и факты.
Это моя ставка на то чем это закончится. Наиболее вероятный по моему мнению сценарий. Возник на основе смотрения на успех других систем с ядрами на плюсах.
Не хочу ничего сказать, но "ядро на плюсах" (или чем-то еще) - очень абстрактное преимущество, не представляющее из себя никакой самоценности для большинства людей. А какой-нибудь симбиан например был полным шитом совершенно независимо от плюсов в каждой дырке.
| |
|
5.101, Ordu (ok), 20:41, 05/10/2014 [^] [^^] [^^^] [ответить]
| +1 +/– |
>> Нет, спасибо
> А чего так? :)
Не вижу причин. А почему вы спрашиваете? Вы видите какие-либо причины пользоваться ReactOS? С удовольствием ознакомлюсь со списком таких причин.
| |
|
6.109, Аноним (-), 04:33, 06/10/2014 [^] [^^] [^^^] [ответить]
| +/– |
> Не вижу причин. А почему вы спрашиваете?
> Вы видите какие-либо причины пользоваться ReactOS?
Ну мало ли. Отдельные экзотичные личности за "зато на плюсах!" или "зато клон ядра NT!" вон многое прощают. Это конечно очень спорные в плане рациональности подходы, но они бывают.
> С удовольствием ознакомлюсь со списком таких причин.
Честно говоря я их тоже не вижу. Как минимум для себя.
| |
|
|
|
|
2.72, Аноним (-), 18:18, 04/10/2014 [^] [^^] [^^^] [ответить]
| +/– |
> Наконец-то кто-то решился на эту экспериментальную проверку непригодности C++ для ядерного программирования.
Бугага. Таких попыток было... по пояс будет. Самая старая какую могут вспомнить - Chorus.
| |
|
1.37, Аноним (-), 08:34, 04/10/2014 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
Весело им будет. В ядре-то только строгая безопасность с исключениями может использоваться (strong exception-safety). Посмотрим, как у них выйдет это сделать. И это только одна из проблем.
| |
|
2.70, тоже Аноним (ok), 17:08, 04/10/2014 [^] [^^] [^^^] [ответить]
| –1 +/– |
Вообще-то устраивать kernel panic и на Сях нельзя.
С++ предоставит возможность хотя бы ловить и обрабатывать проблемы не в каждом возможном месте их возникновения, а общим блоком. То, что в дровах все такие потенциальные проблемы должны обрабатываться, от языка не зависит.
| |
|
1.39, Нанобот (ok), 10:13, 04/10/2014 [ответить] [﹢﹢﹢] [ · · · ]
| –3 +/– |
имхо, давно пора. расширение возможностей ядра, как никак. в идеале должна быть возможность разработки модулей ядра на любых языках
| |
|
2.44, XoRe (ok), 12:41, 04/10/2014 [^] [^^] [^^^] [ответить]
| +1 +/– |
> в идеале должна быть возможность разработки модулей ядра на любых языках
Напуркуа?
Вы сами когда в последний раз модули ядра писали?
| |
2.64, Аноним (-), 16:06, 04/10/2014 [^] [^^] [^^^] [ответить]
| +/– |
> возможность разработки модулей ядра на любых языках
Ну и как в каком-нибудь бидоне будет выглядеть присвоение адресу 0x100500 значения 0xDEADBEEF? Допустим это memory mapped регистр что-то делающий с вон той железкой. Ну на си - народ прямо так и напишет. Потому что системный ЯП. А вот что будут делать гламурные мальчики-вебдванольчики с высокоуровневым ЯП - не очень понятно. Си используют для системных дел ... потому что он позволяет делать манипуляции, которые по другому только на ассемблере и сделаешь.
| |
|
3.75, angra (ok), 19:22, 04/10/2014 [^] [^^] [^^^] [ответить]
| +1 +/– |
Хмм, да также как и в С - операция присваивания переменной(находящейся в памяти по этому адресу) константного значения. Или вы из тех, кто плодит говнокод, насыщенный магическими числами и копипастой?
| |
|
4.90, Аноним (-), 08:56, 05/10/2014 [^] [^^] [^^^] [ответить] | +/– | Так в сях можно указать что вон та переменная - это вот тот адрес Весь код рабо... большой текст свёрнут, показать | |
|
5.105, angra (ok), 00:14, 06/10/2014 [^] [^^] [^^^] [ответить]
| –1 +/– |
> Весь код работы с периферией - куча магических чисел. Сюрприз.
Нет, не сюрприз. Также как не сюрприз, что ты не знаешь значения термина "магические числа" в отношении патернов программирования.
Правда культурные
> А в питонах и рубях
> такое изначально вообще не предусмотрено. Там нет никакого метода указать что
> "а вот эта переменная должна лежать по этому адресу".
Тебе буквально следующим постом показали как это сделать на питоне. Ниасилил многабукав?
> вообще смысл высокоуровневого ЯП как раз в том чтобы програмер таким
> себе мозг не грел. Но это обрубает низкоуровневые возможности.
С какого перепугу добавление одной возможности обрубает другие? Скажи честно, что в Perl/Ruby/Python не разбираешься.
| |
|
6.110, Аноним (-), 04:42, 06/10/2014 [^] [^^] [^^^] [ответить] | –1 +/– | Я его знаю в значении программирования периферии, в данном контексте этого доста... большой текст свёрнут, показать | |
|
7.114, Аноним (-), 05:36, 06/10/2014 [^] [^^] [^^^] [ответить] | +/– | Слив защитан С LOR Смотри ещё раз, мееееедленно import ctypes g ctypes c_... большой текст свёрнут, показать | |
|
8.138, Аноним (-), 19:10, 06/10/2014 [^] [^^] [^^^] [ответить] | +1 +/– | Ну да, декларация в 3 раза длиннее чем на чистом си, бинарное значение загнать -... большой текст свёрнут, показать | |
|
9.140, angra (ok), 20:05, 06/10/2014 [^] [^^] [^^^] [ответить] | +/– | Пока ты совсем не ушел в мир фантазий напомню тебе с чего началось Тебе показал... текст свёрнут, показать | |
|
|
|
|
|
|
3.79, Аноним (-), 20:50, 04/10/2014 [^] [^^] [^^^] [ответить] | +/– | Зачем это нужно Чем голый С для этого плох До он для этого _идеален_ Не н... большой текст свёрнут, показать | |
|
|
1.43, metallica (ok), 12:39, 04/10/2014 [ответить] [﹢﹢﹢] [ · · · ]
| +2 +/– |
Индусы понтарезы. ООП в линуксе уже давно в полный рост на благородном C.
И посмотрел бы как они не POD объекты будут в строгую карту виртуального
пространства, в которое линкуется ядро, интегрить. Хотя, может какой
фреймворк для ядра, для подключения и функционирования С++ модулей, развить и
получится, но не более. Можно будет модули ядра вантузинтками в Вижукалл Cтудиё
писать. Ключевое в ядре всегда будет на C.
| |
1.45, Аноним (-), 13:36, 04/10/2014 [ответить] [﹢﹢﹢] [ · · · ]
| +1 +/– |
Вот что получается когда веб разработчиков нанять ядро разрабатывать. Лучше бы они деньги потратили на написание модулей к существующему ядру.
| |
|
2.111, Аноним (-), 04:44, 06/10/2014 [^] [^^] [^^^] [ответить]
| +/– |
> деньги потратили на написание модулей к существующему ядру.
Не-не, не надо, что вы. На плюсах их код точно в майнлайн не возьмут, а если это будут сишные модули - они чего доброго смогут проскочить.
| |
|
1.50, manster (ok), 14:15, 04/10/2014 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
Плюсы, это ООП все-же. Там где ООП и другие язычки подтянутся.
Вот только вопрос нужно ли это в ядре и будет ли это отзывчиво?
Мне кажется, лучше развивать ядро и ближайшее окружение, а в ядре лишним абстракциям и сущностям, делать нечего...
| |
1.51, vitalif (ok), 14:16, 04/10/2014 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
Да они могут хоть уразвиваться. Сами напишут, сами поиграются, сами за**утся поддерживать и выкинут, а в апстрим хрен это чудо кто-то примет :)
| |
1.56, Crazy Alex (ok), 15:25, 04/10/2014 [ответить] [﹢﹢﹢] [ · · · ]
| +2 +/– |
Весь этот хай - от непонимания.
В вырожденном виде (без полиморфизма) плюсы - это просто пачка хороших немногословных (по сравнению с сями) интерфейсов со строгой типизацией вообще без потерь скорости работы. Ну да, чтобы так писать, мозг нужен. Но он, в общем-то, и вообще для программирования для ядра пригодится. А какой-нибудь USB, с его кучей сущностей, на объектном языке куда удобнее писать, потому что сама спецификация, по сути, объектная. Плюс шаблоны в разумных количествах таки очень упрощают жизнь. Я тут пару раз постил ссылки на шаблонный код для AVR - который оптимизировался лучше, чем руками писанный ассемблер, и при этом давал простоту модификации.
Оно да, ООП можно сделать и на сях. Но - многословно, обычно зависимо от кучи макросов и будет гораздо хуже обрабатываться разными статическими анализаторами.
| |
|
2.58, metallica (ok), 15:37, 04/10/2014 [^] [^^] [^^^] [ответить]
| +2 +/– |
> это просто пачка хороших немногословных
> (по сравнению с сями) интерфейсов со строгой типизацией вообще без потерь
> скорости работы. Ну да, чтобы так писать, мозг нужен.
О чём речь? О STL? линуксовые list_head, rb_node в составе всех структур и container_of-
более производительное решение, чем эти дебильные STL контейнеры, с их инсертом
копированием (вобще говоря && бесполезен для избежания копирований, такое
прокатит только с объектами определённой структуры). А обобщение шаблонами в ядре
не нужно для 99% всех объектов, которые там существуют.
| |
|
3.118, anonymous (??), 08:56, 06/10/2014 [^] [^^] [^^^] [ответить]
| +/– |
> А обобщение шаблонами в ядре не нужно для 99% всех объектов, которые там существуют.
Т.е. списков там на кождом углу нет, неупорядочныых контейнеров нет, FIFO нет, ....
Замена списка на мап на красно-черных деревьях обошелся ядру в 2.5 года и несколько мегабайт правленного кода. "На попробовть" слишком сложно выходит.
| |
|
4.136, dq0s4y71 (ok), 18:58, 06/10/2014 [^] [^^] [^^^] [ответить]
| +/– |
Чтобы ядро зависело не только от кривой реализации GCC, но и от кривой реализации списков, контейнеров и FIFO?
| |
|
|
2.65, Аноним (-), 16:09, 04/10/2014 [^] [^^] [^^^] [ответить]
| +/– |
> В вырожденном виде (без полиморфизма) плюсы - это просто пачка хороших немногословных
> (по сравнению с сями) интерфейсов со строгой типизацией вообще без потерь
> скорости работы. Ну да, чтобы так писать, мозг нужен.
Чтобы хорошо писать на плюсах - нужен мегамозг. А в ядре любой продолб обернется паникой или разрушением данных к тому же. Если крах игрушки с кодом на 10 метров мы переживем, то вот панику ядра... ну иди да юзай реактос, если тебе бсоды раз в 5 минут доставляют. Как раз последнее ядро на каком-то урезанном варианте плюсов.
| |
2.120, Аноним (-), 11:41, 06/10/2014 [^] [^^] [^^^] [ответить] | +3 +/– | полную херню несёшь Типизации в плюсах не больше чем в си Качество оптимизации... большой текст свёрнут, показать | |
|
1.76, Аноним (76), 19:22, 04/10/2014 [ответить] [﹢﹢﹢] [ · · · ]
| –3 +/– |
драйвера должны писаться исключительно на ассемблере. всё таки самый низкоуровневый доступ обеспечивают. а все эти промокашки высокого уровня, с тоннами мутных абстракций и зависимых модулей, только тормоза да утечки памяти плодят лишние.
| |
|
2.81, тоже Аноним (ok), 20:57, 04/10/2014 [^] [^^] [^^^] [ответить]
| +2 +/– |
Вы что-нибудь знаете про ассемблер, кроме того, что он, теоретически, самый-самый маленький и быстрый? А про причины тормозов и утечек памяти? А про поддержку драйверов и их использование для семейства устройств, а не для одного-единственного? Причем драйвера пишутся для первого, а для последующих, с заранее неизвестным функционалом, их придется вдумчиво переписывать... на ассемблере, ага.
| |
2.82, Аноним (-), 21:01, 04/10/2014 [^] [^^] [^^^] [ответить]
| –2 +/– |
А что есть С? А высокоуровневый ассемблер и есть! :) Плюсф _тут_ не нужны. Ъ.
| |
|
3.83, metallica (ok), 21:58, 04/10/2014 [^] [^^] [^^^] [ответить]
| +1 +/– |
> А что есть С? А высокоуровневый ассемблер и есть!
Неправда. C-абстрактная машина, cостоящая, исключительно, из абстрактных
сущностей и их отношений, описываемых соответствующим документом, называемым стандартом.
Асм, по определению, независимо от разновидностей синтаксиса,
определяется спекой на мнемоники набора инструкций конкретной arch.
| |
|
4.85, pavlinux (ok), 23:52, 04/10/2014 [^] [^^] [^^^] [ответить]
| +/– |
> независимо от разновидностей синтаксиса, определяется спекой
> на мнемоники набора инструкций конкретной arch.
Фсё, приплыли, Java - ассемблер.
| |
|
5.86, angra (ok), 06:13, 05/10/2014 [^] [^^] [^^^] [ответить]
| –1 +/– |
Только если каждая команда джавы порождает ровно одну инструкцию джава машины. То есть является мнемоникой для байткода. Я не знаю джаву, но весьма сомневаюсь, что дела в ней обстоят именно так.
| |
|
6.87, pavlinux (ok), 07:00, 05/10/2014 [^] [^^] [^^^] [ответить]
| –2 +/– |
> Только если каждая команда джавы порождает ровно одну инструкцию джава машины.
То есть, если написать, CMP AX, 0, а гадкий ассемблер переделает это в TEST AX, AX - значит это не ассемблер? А SMP режиме, ваще ж..па. :)
Вы уж определитесь тут...
| |
|
7.106, angra (ok), 00:17, 06/10/2014 [^] [^^] [^^^] [ответить]
| –1 +/– |
> То есть, если написать, CMP AX, 0, а гадкий ассемблер переделает
> это в TEST AX, AX - значит это не ассемблер?
Это уже оптимизации со стороны транслятора. Также как и макросы типа .IF к самому языку ни разу не относится.
| |
|
|
|
4.113, Аноним (-), 04:54, 06/10/2014 [^] [^^] [^^^] [ответить]
| +/– |
> Асм, по определению, независимо от разновидностей синтаксиса,
> определяется спекой на мнемоники набора инструкций конкретной arch.
Попробуй код типа
void _start(void)
{
((void (*)(void))0xffff0020)();
}
выполнить на произвольной платформе :). Не забудь рассказать что получилось.
Кстати да, питонисты, а покажите как это с вашим турбокостылем выглядит? :) С технической точки зрения это переход на адрес 0xffff0020 и выполнение того что там находится. Без знания этим кодом что там вообще за фигня :). Такой вот "платформонейтральный, типа" способ записать нечто типа JMP 0xffff0020. Насколько такая штука платформенно нейтральна - ну вы поняли, еще меньше чем ассемблер проца под который этот трюк делается, ибо подразумевает вообще конкретный SoC :)
| |
|
5.115, Аноним (-), 05:42, 06/10/2014 [^] [^^] [^^^] [ответить]
| –3 +/– |
> Кстати да, питонисты, а покажите как это с вашим турбокостылем выглядит? :)
Парень у тебя большие проблемы с головой. Ты таки закручиваешь гвозди и забиваешь шурупы.
| |
|
6.117, тоже Аноним (ok), 08:47, 06/10/2014 [^] [^^] [^^^] [ответить]
| +1 +/– |
> Ты таки закручиваешь гвозди и забиваешь шурупы.
Вам не приходила в голову жуткая мысль, что код молотка и отвертки выглядит примерно так?
| |
6.139, Аноним (-), 19:36, 06/10/2014 [^] [^^] [^^^] [ответить]
| +/– |
> Парень у тебя большие проблемы с головой. Ты таки закручиваешь гвозди и
> забиваешь шурупы.
Во первых, это не я, а чуваки которые тулсы для allwinner'ов клепают. Во вторых, мне интересно посмотреть как сие выглядит, раз питонисты вещают что с доступом к памяти у них все шоколадно. Вот и покажите как вот такой сорт шоколада изобразить :). В сях доступ к памяти универсален и на предмет данных и на предмет выполнения.
| |
6.190, pavlinux (ok), 01:32, 12/10/2014 [^] [^^] [^^^] [ответить]
| +/– |
>> Кстати да, питонисты, а покажите как это с вашим турбокостылем выглядит? :)
> Парень у тебя большие проблемы с головой. Ты таки закручиваешь гвозди и
> забиваешь шурупы.
Если шуруп забить и провернуть на один оборот, будет тоже самое, только быстрее (см. PHP)
Иль вы сайты на С++ пишете?
| |
|
|
|
|
2.95, Аноним (-), 14:04, 05/10/2014 [^] [^^] [^^^] [ответить]
| +1 +/– |
>драйвера должны писаться исключительно на ассемблере
Открываем linux-3.XX.YY/arch/ и считаем количество аппаратных архитектур (я 29 насчитал). И это не считая того, что внутри каждой архитектуры могут быть процессоры разных поколений, которые поддерживают или неподдерживают какие-то конкретные машинные инструкции. И что, для всех вариантов на ассемблере написать драйвер одного и того же устройства, например, для сетевухи?
| |
|
1.99, Seyko (?), 18:41, 05/10/2014 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
По теме: что там MOOL развивает? Скачать можно пример модуля hello_word и исходники ядра 2.6.23 с C++ include и runtime. Исходники правленные, patch нет. Никакая система на c++ не портирована. Хотя где-то упоминается, что есть портированный сетевой драйвер. Зачем в ядре RTTI и exceptions -- не ясно. Короче: или отсутствует дополнительная информация, или сообщение -- чистый вброс
| |
|
2.125, metallica (ok), 12:41, 06/10/2014 [^] [^^] [^^^] [ответить]
| +/– |
> Зачем в ядре RTTI и exceptions --
Понятно, что сначала нужно будет вcю libsupc++ писать специально для ядра.
Представляю что будет, если индусы решат в новом ядерном _Unwind_RaiseExceptions дёргать INT X.
| |
|
3.129, yet another anonymous (?), 14:49, 06/10/2014 [^] [^^] [^^^] [ответить]
| +/– |
> Представляю что будет, если индусы решат в новом ядерном _Unwind_RaiseExceptions дёргать INT X.
Вы это сказали так, как будто сейчас в C-шной реализации нет ограничений на код в соответствующих обработчиках.
| |
|
2.147, anonymous (??), 07:44, 07/10/2014 [^] [^^] [^^^] [ответить]
| –1 +/– |
> Зачем в ядре RTTI и exceptions -- не ясно.
Да не будет их там.
Логично задействовать метапрограммирование, классы и типизацию. А виртуальные функции использовать, наверное, не надо.
| |
|
3.150, arisu (ok), 09:10, 07/10/2014 [^] [^^] [^^^] [ответить]
| +2 +/– |
> Логично задействовать метапрограммирование, классы и типизацию.
и жаль, что в с++ вместо всего этого неудобные костыли.
| |
|
4.155, bOOster (?), 11:19, 07/10/2014 [^] [^^] [^^^] [ответить]
| –1 +/– |
>> Логично задействовать метапрограммирование, классы и типизацию.
> и жаль, что в с++ вместо всего этого неудобные костыли.
Ты вообще знаешь что такое с++? Если у тебя не хватило серого вещества понять язык, то это не значит что там все плохо.
| |
|
5.157, arisu (ok), 11:35, 07/10/2014 [^] [^^] [^^^] [ответить]
| +/– |
> Ты вообще знаешь что такое с++?
конечно: мерзкий набор неудобоваримых костылей и legacy. употребим только в малых дозах, с водкой или с таблетками от головной боли.
> Если у тебя не хватило серого
> вещества понять язык, то это не значит что там все плохо.
видишь ли, дело в том, что ты-то тоже c++ не знаешь. его вообще не так много людей знают, потому что это куча гуано, рядом с которой дизайн даже не сидел. c++ — это отличный инструмент для того, чтобы сделать простые вещи сложными, а сложные — почти невозможными. и зачастую всё это с синтаксисом, глядя на который perl понимает, что ему ещё есть куда стремиться.
конечно, в c++ не всё плохо: то, что страус взял у си — более-менее терпимо. остальное ужасно. особенно ужасны шаблоны, которые делались существами из параллельного мира, и делались для марсианских слизней.
впрочем, фанбои уверены, что язык надо Превозмогать, что инструмент, который легко изучить и понять — не Ъ. но это личные проблемы фанбоев, я использую D и мне хорошо. товарищ Александреску тоже считает, что D лучше c++, можешь ему рассказать, что у него просто мозгов не хватило понять c++.
| |
|
6.158, тоже Аноним (ok), 12:20, 07/10/2014 [^] [^^] [^^^] [ответить]
| +/– |
Единственное противоречие в этой системе - то, что дорожки, ведущие от С++ к Жабе и Шарпу плотно протоптаны, а к D ведет какая-то заросшая тропа.
Если он и лучше, и проще - почему? Признаться, у меня вообще "Александреску" и "проще" решительно не стыкуются...
| |
|
7.159, arisu (ok), 12:26, 07/10/2014 [^] [^^] [^^^] [ответить]
| +1 +/– |
> Единственное противоречие в этой системе - то, что дорожки, ведущие от С++
> к Жабе и Шарпу плотно протоптаны, а к D ведет какая-то
> заросшая тропа.
да, не любим дураков, есть такое. пусть дураки лучше в жабо-шарпо-плюсах кучкуются.
> Если он и лучше, и проще - почему? Признаться, у меня вообще
> "Александреску" и "проще" решительно не стыкуются...
винда — лучшая ОС. улавливаешь связь?
| |
|
|
|
|
11.172, arisu (ok), 17:53, 07/10/2014 [^] [^^] [^^^] [ответить] | +1 +/– | ты прекращай упарываться с начала недели оно, конечно, никто всё равно не замет... текст свёрнут, показать | |
|
|
|
|
|
6.182, Аноним (-), 07:03, 08/10/2014 [^] [^^] [^^^] [ответить]
| +/– |
> употребим только в малых дозах,
Да ладно тебе, Кэп, на сях обычно как раз большие проекты наворачивают. Для мелких и просто сей хватает. А если кто плюсы юзанул - это обычно уйма кода и бинарь на пять мегов.
| |
|
7.184, arisu (ok), 09:40, 08/10/2014 [^] [^^] [^^^] [ответить]
| +/– |
> Да ладно тебе, Кэп, на сях обычно как раз большие проекты наворачивают.
ну так при наличии достаточной мотивации и траншею детской лопаткой можно выкопать. я же не говорю, что не используют, я говорю, что это печальное зрелище. особенно когда какие-нибудь любители бустов вместе собираются — вообще гаси свет.
| |
7.185, arisu (ok), 09:44, 08/10/2014 [^] [^^] [^^^] [ответить]
| +/– |
> А если кто плюсы юзанул
> - это обычно уйма кода и бинарь на пять мегов.
совершенно необязательно, кстати сказать. бинари раздуваются от шаблонов — и с этим, увы, ничего не поделаешь. в D тоже бинари раздуваются, например. плата за универсальность кода. точнее, плата за быстрый и универсальный код.
но никто не запрещает ни в c++, ни в D не использовать шаблоны, ограничиться структурами и классами. и будет код вполне маленький. собственно, D на bare metal как-то так и используют. ещё и runtime перетачивают, убирая оттуда всё ненужное. получается такой себе Better C.
| |
|
|
|
|
3.171, dq0s4y71 (ok), 15:13, 07/10/2014 [^] [^^] [^^^] [ответить]
| +/– |
> Логично задействовать метапрограммирование, классы и типизацию.
Классы там уже есть, где надо. Только за управление ими отвечает сам программист, а не компилятор, что для низкоуровневого системного программирования закономерно.
Зачем там нужно метапрограммирование - не понимаю. Они операционку пишут, а не программу бухучёта, поэтому их код должен быть максимально управляем и предсказуем.
Строгая типизация тоже не нужна. Они же с "железом" работают, которое о типах ничего не знает, поэтому преобразования типов там сплошь и рядом. Можно конечно усложнить жизнь программистам и заставить писать их вместо естественного (type)data заклинания типа reinterpret_cast<...>...
> А виртуальные функции использовать, наверное, не надо.
Ну, вот и получается, что если не использовать всё ненужное от С++, то писать надо на Си...
| |
|
4.173, yet another anonymous (?), 19:40, 07/10/2014 [^] [^^] [^^^] [ответить]
| –1 +/– |
> Зачем там нужно метапрограммирование - не понимаю.
Alexander Stepanov and Paul McJones / Elements of Programming [Addison-Wesley, 2009; ISBN-13 978-0-321-63537-2; ISBN-10 0-321-63537-X]
| |
4.176, arisu (ok), 19:58, 07/10/2014 [^] [^^] [^^^] [ответить]
| +1 +/– |
> Зачем там нужно метапрограммирование - не понимаю.
большинство не понимает. потому что никакого метапрограммирования в «мэйнстримных» языках нет, культуры и практики его применения тоже. а жаль.
| |
4.178, Michael Shigorin (ok), 04:22, 08/10/2014 [^] [^^] [^^^] [ответить]
| –1 +/– |
> Зачем там нужно метапрограммирование - не понимаю. Они операционку пишут, а не
> программу бухучёта, поэтому их код должен быть максимально управляем и предсказуем.
Любой код, начинающий местами напоминать самого себя, может быть улучшен при помощи метапрограммирования. В том числе и по критерию сопровождаемости.
| |
|
5.186, dq0s4y71 (ok), 12:34, 08/10/2014 [^] [^^] [^^^] [ответить]
| –1 +/– |
Да, а ещё Си не умеет динамических строк, эксепшенов и сборщика мусора. Очень бы пригодились в ядре :)
| |
|
6.187, arisu (ok), 13:04, 08/10/2014 [^] [^^] [^^^] [ответить]
| +1 +/– |
> Да, а ещё Си не умеет динамических строк, эксепшенов и сборщика мусора.
> Очень бы пригодились в ядре :)
конечно, пригодились бы. сборщик мусора вообще очень полезная штука, вместе с динамическими массивами и контролем диапазонов. Oberon всё это умел, и отлично работал на практике.
| |
|
|
|
|
|
1.141, arisu (ok), 23:18, 06/10/2014 [ответить] [﹢﹢﹢] [ · · · ]
| +1 +/– |
хорошо, что это индийцы: их говнокод вскорости не сможет поддерживать никто, и в первую очередь они сами. после чего сабжевая мерзость тихо сыграет в ящик.
| |
1.174, Archer73 (ok), 19:53, 07/10/2014 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
Как называется проблема ООП когда при малейшем изменении реализации класса-предка неожиданно ломается половина нормально работавших классов-потомков?
| |
|
2.175, arisu (ok), 19:56, 07/10/2014 [^] [^^] [^^^] [ответить]
| +1 +/– |
> Как называется проблема ООП когда при малейшем изменении реализации класса-предка неожиданно
> ломается половина нормально работавших классов-потомков?
хреновая архитектура.
| |
2.199, Аноним (195), 13:04, 15/01/2024 [^] [^^] [^^^] [ответить]
| +/– |
Для чего разработчику базовых классов дали protected и private? Учи матчасть.
| |
|
1.177, Аноним (-), 22:12, 07/10/2014 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
Давно пора. Понятно что весь ворох возможностей C++ по части исключений, rtti, множественного наследования, stl тащить не нужно, но на уровни C с классами его не использовать в XXI веке глупо, потому что код это генерит такой же как на C, но писать нужно в разы меньше, и в те же разы меньше вероятность ошибиться.
| |
1.188, Дмитрий Т (?), 13:35, 08/10/2014 [ответить] [﹢﹢﹢] [ · · · ]
| –1 +/– |
Если уж браться программировать на С++, то только закончив медитировать над:
Герб Саттер, Андрей Александреску, «Стандарты программирования на C++».
Но насколько видел многие люди на С++ сначала пишут, а потом собирают шишки, но до чтения так и не доходят... Так как этот язык имеет обманчивую кажущуюся простоту, а внутри мало кем освоенную груду нюансов.
| |
1.189, Аноним (-), 11:10, 10/10/2014 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
вообще с++ это не только ексепшены
и если их отключать для ядра, получается хороший компактный код
виндовый гуи win32.sys полностью на С++
как и многие ядреные модули
| |
|
2.191, iosys (?), 08:58, 28/11/2014 [^] [^^] [^^^] [ответить]
| +/– |
Но всё же, почему бы и не написать ядро с парадигмой ООП?
Определить класс ядра и методы к нему:
class kernel
{
// private variables and functions
public:
ctrl_memory(); // управление памятью
ctrl_processes(); // управление процессами
manager_drivers(); // интерфейс для драйверов
manager_hardware(); // интерфейс для работы с железом
// etc...
};
что-то в таком роде)) Конечно же, это всё условно.
| |
|
|
|
5.194, arisu (ok), 09:11, 28/11/2014 [^] [^^] [^^^] [ответить]
| +/– |
>> иди в гайку, там хорошо и классы.
> что за гайка?
Haiku, открытый наследник BeOS.
| |
|
|
|
|
|