The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Режим отображения отдельной подветви беседы [ Отслеживать ]

Оглавление

Линус Торвальдс о проблемах с поиском мэйнтейнеров, Rust и рабочих процессах, opennews (??), 06-Июл-20, (0) [смотреть все]

Сообщения [Сортировка по времени | RSS]


231. "Линус Торвальдс о проблемах с поиском мэйнтейнеров, Rust и р..."  –1 +/
Сообщение от Аноним (227), 06-Июл-20, 23:51 
19 различных способов инициализировать int в C++:

int i1;                 //undefined value
int i2 = 42;            //note: inits with 42
int i3(42);             //inits with 42
int i4 = int(42);       //inits with 42
int i5{42};             //inits with 42
int i6 = {42};          //inits with 42
int i7{};               //inits with 0
int i8 = {};            //inits with 0
auto i9 = 42;           //inits with 42
auto i10{42};           //C++11: std::initializer_list<int>, C++14: int
auto i11 = {42};        //inits std::initializer_list<int> with 42
auto i12 = int{42};     //inits int with 42
int i13();              //declares a function
int i14(7, 9);          //compile-time error
int i15 = (7, 9);       //OK, inits int with 9 (comma operator)
int i16 = int(7, 9);    //compile-time error
int i17(7, 9);          //compile-time error
auto i18 = (7, 9);      //OK, inits int with 9 (comma operator)
auto i19 = int(7, 9);   //compile-time error

И это только начало:
https://youtu.be/h-zy1hBqT74

Спасибо, не надо.

Ответить | Правка | К родителю #179 | Наверх | Cообщить модератору

235. "Линус Торвальдс о проблемах с поиском мэйнтейнеров, Rust и р..."  –3 +/
Сообщение от Ilya Indigo (ok), 07-Июл-20, 00:27 
> 19 различных способов инициализировать int в C++:
> И это только начало:
> https://youtu.be/h-zy1hBqT74
> Спасибо, не надо.

И где Ваша логика?

P.S. Можно != Нужно
На C способов выстрелить себе в ногу гораздо больше!

Ответить | Правка | Наверх | Cообщить модератору

248. "Линус Торвальдс о проблемах с поиском мэйнтейнеров, Rust и р..."  +1 +/
Сообщение от Аноним (248), 07-Июл-20, 05:48 
>На C способов выстрелить себе в ногу гораздо больше!

Дело не в этом.

У Си давно сформированы идиомы. И когда системщик пишет соблюдая правила безопасности и всем известные идиомы, тогда код на чистом Си хорошо чистается. Си хорош тем, что он прост, он проще чем Си++ и Раст.

Ответить | Правка | Наверх | Cообщить модератору

295. "Линус Торвальдс о проблемах с поиском мэйнтейнеров, Rust и р..."  +/
Сообщение от Аноним (294), 08-Июл-20, 14:03 
Технически нет непреодолимых проблем с использованием C++. Ну повозиться придётся, навскидку: оверрайды new/delete на kmalloc, аргументы через регистры, исключения запретить, ещё пунктов 20 наверное, но принципиально нет ничего невозможного. Тот, кто знает кресты на таком уровне, что ему можно доверить писать драйвера, разберётся.
Ответить | Правка | К родителю #235 | Наверх | Cообщить модератору

308. "Линус Торвальдс о проблемах с поиском мэйнтейнеров, Rust и р..."  –2 +/
Сообщение от Аноним (308), 09-Июл-20, 03:46 
И будет следующее:

1. Оверхед в разработке, соответственно, сложнее его будет читать обычным программистам на С++. Надо будет думать не только о чем пишете, но и как пишете.
2. Еадо будет следовать определенной модели в разработке исключая определенное подмножество языка, иначе оверхед в рантайме.
3. Оверхед в рантайме даже если выполнен п.2.

Конечно можно ввести дополнительные ключевые слова, сделать транслятор/компилятор и тогда получим вполне адаптированный С++ под разработку драйверов, например подобный проект для Perl существует в виде RPerl, но он не для драйверов, хотя...:))

К чему речь: С++ несет высокоуровневые абстракции которые не нужны в разработке драйверов, это лишнее. Чтобы получить оптимальное решение - требуется выборка подмножества языка С++, то есть  С++ "спустить на землю" чтобы не летал высоко в своих абстракциях. Но раз так, может легче дотянуть Си до нужного уровня абстракции, тем более что это будет и проще и быстрее. Ой, забыл, обильное использование макросов (в крупных прокетах) на Си как раз закрывает недостаток в уровне абстракции на Си. Так что в Си все хорошо, за исключением того что из-за небольшого недостатка языка в плане абстрации, во-первых, проект обрастает целым лесом макросов и, во-вторых, среднего уровня Си-программистов утопают в макросах.

Недостатки Си закрыты в Vala, но они закрыты "с лихвой" (хотя "лихву" использовать не обязательно).

Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру