The OpenNET Project / Index page

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



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

Исходное сообщение
"Выпуск языка программирования Rust 1.70 "
Отправлено Срыватель покровов, 04-Июн-23 00:35 
Отвечаю в общем, как обыватель. Прошу местных экспертов присоединиться и помочь с объективностью. Мне кажется, Раст решает сразу несколько Сишных проблем.
1. Стандарты Си и C++ изначально подразумевают своеволие, начиная от такого уродства как типы НЕ фиксированной ширины (ммм, в кайф писать вычислительные программы, которые на разных процессорах выдадут разные результаты, ловить кучу неожиданных багов после компиляции очень приятно), заканчивая кучей "мелочей" вроде знаковости типа char. Да, для предсказуемости вычислений есть int_t, но то же самое нельзя сказать про float. Фиксированные float ввели в C++23, но надо ждать их поддержки в компиляторах. А кодить надо уже сейчас. Можно свой велосипед вкорячить, но это опять приведёт к раздуванию кода, т.к. каждый обязательно напишет свою либу.
2. Исходя из неопределённости стандарта, мы получаем разные компиляторы. А под и разные анализаторы, учитывающие разные нюансы. Под конкретный компилятор может и не быть. А при этом анализатор может оказаться платным и несвободным. А может оказаться кривым нечто, еле-еле включающимся в твоём любимом IDE.
3. Благодаря разным реализациям компилятора то же ядро Линукса смогли собрать Клангом через несколько лет.
4. У Раста нет хедеров, это уже большой плюс. Благодаря запутанным хедерам время компиляции Линукса было заметно увеличено (ирония судьбы, с чем боролся Деннис Ритчи (время компиляции), на то напоролся Линус Торвальдс).
5. Плюсы в некотором смысле это уродство, так как они тянут за собой совместимость с Си, но делают это очень криво (в C++ нет variable length arrays, как пример). У нас есть страшно кривой printf(), который требует каждый раз при печати указывать тип переменной (А что, если я потом захочу поменять тип переменной? Снова ломать глаза и тратить время в поисках нужного процента с правильным типом и форматированием?), а есть страшно уродливый брат-близнец cout с упоротым синтаксисом из двойных знаков сравнения. У нас есть и амперсенды (&), и стрелочки (->), и точки для выполнения семантически одинаковых действий (взятие значения по ссылке). Мы продолжим тянуть кривое г. из Си, поэтому все проекты будут пользоваться кривым г. вместо новых, более адекватных имплементаций. У нас есть 14 видов инициализации, поэтому каждый компилятор обязан из поддерживать вместо внедрения действительно нужных фич. У нас есть структуры и классы, отчасти дублирующие друг друга (напоминаю, что методы и наследование работают и для структур).
Мне кажется, уже этих пунктов хватит для того, чтобы начать новый проект не на C/C++. Паскаль неплох, но он не в мейнстриме. Пожелаем Расту и Зиг удачи.
 

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



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

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