The OpenNET Project / Index page

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



Индекс форумов
Составление сообщения

Исходное сообщение
"Эксперимент по разработке частей ядра Linux на языке Rust"
Отправлено voice of universe, 04-Июн-17 22:57 
> Удобство? Вы хоть один сложный проект пробовал писать на Си? Да, язык
> хорош, но как раз удобства ему и не хватает.

Нет, на Си все проектые просты, будьто ОС, движек для любимого джит, браузер или другая элементарная вещь. В то время любой сложный софт уже на си не напишешь.

> 1. Нет switch..case для константных строк. Почему? Ведь это же удобно. Компилятор
> сам бы строил дерево по символам строк и это работало бы
> максимально быстро, т.к. автомат состояний встроен прямо в код.

Самое время именно вам выдать эффективную реализацию, этой фичи. ))

> 2. Для того, чтобы из switch сделать break циклу приходится вставлять метку
> и делать goto. Удобно? Нет.

Т.е. вот так вот нельзя?
    int i = 10;
    switch (i)
    {
    case 10:
        {
            size_t u;
            for (u=0; u<100; u++)
            {
                printf("test");
                break;
            }
        }
        break;

    default:
        break;
    }


> 3. Почему я не могу в switch..case.. использовать continue (как ни странно
> он то применяется уже к циклу) для явного перехода к следующей
> case? Почему для этого мне обязательно требуется писать комментарий /* no
> break */, чтобы моя IDE не ругалась?

Ну тут да, нерадивые разработчики не учли, возможность существования IDE для детей солнца.

> 4. pthreads. pthread_cancel, освобождение ресурсов. Если сталкивались (без lazy), сразу
> поймёте о чём я.

Это намек на pthread_detach ? ))) А еще плохо в си то, что можно вот так написать
int* v = NULL;
*v = 0;
неудобный язык, потому что считает что программист не олигофрен и знает что делает. )

> 5. static - только для одного файла. Если же я делаю внутреннюю
> переменную в библиотеке, состоящей из нескольких файлов, то она в любом
> случае будет доступна и вне библиотеки. private я её могу сделать
> только одним способом: через атрибуты компилятора. Задефайнено, непортабельно и некрасиво.

Единственный пункт который можно считать сказанном по теме. И то, необходимость такова шаринга субъективна. Ну т.е. попахивает нехорошим кодом.

> 6. Макросы - гибкость. А теперь попробуйте сделать макрос с выполнением действия
> в зависимости от размера передаваемой в него переменной. Увы, придётся много
> гуглить и делать костыли. А в итоге просто найти другое решение
> проблемы. А всё почему? Потому что sizeof выполняется в runtime, чтобы
> можно было определять размер стековых массивов. Куча возможностей просто исчезла.

Поддерживаю, это может писать либо наркоман, или человек который не имеет понятия о чем пишет вообще. Ну, хипстер по нашему.

> 7. Попробуйте сделать следующее:
> fmt = NULL;
> if (fmt) {
>     fprintf(stderr, fmt, ##args)
> }
> Для компилятора с включенной опцией format-security это ошибка. Т.к. NULL нельзя передавать
> в качестве формата. Ещё куча возможностей исчезли, либо придётся жертвовать безопасностью
> и выключать опцию.

Ты же овнокодер ))) Но если уже нужно писать такой трэш? то кто мешает отключить варнинг только для этого куска кода? Такую фичу даже не компилятор поддерживает, не говорю уже о gcc.

> И т.д.

Да продолжай позорится.

 

Ваше сообщение
Имя*:
EMail:
Для отправки ответов на email укажите знак ! перед адресом, например, !user@host.ru (!! - не показывать email).
Более тонкая настройка отправки ответов производится в профиле зарегистрированного участника форума.
Заголовок*:
Сообщение*:
 
При общении не допускается: неуважительное отношение к собеседнику, хамство, унизительное обращение, ненормативная лексика, переход на личности, агрессивное поведение, обесценивание собеседника, провоцирование флейма голословными и заведомо ложными заявлениями. Не отвечайте на сообщения, явно нарушающие правила - удаляются не только сами нарушения, но и все ответы на них. Лог модерирования.



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

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