У нас есть Rust, поэтому C++ больше не нужен.

Oct 19, 2017 17:47


Просто чудесный пост у thesz, наглядно демонстрирующий мой лозунг из сабжа.

Давайте пройдёмся по пунктам:
> Большое неудобство, однако, составляет отсутствие подсказок компилятора в сообщении об ошибке

Rust прекрасно всё подсказывает, вплоть до того, что явно указывает как именно тебе надо исправить код, чтобы всё заработало.
> но сама необходимость ( Read more... )

programming, code, rust, c++

Leave a comment

Comments 152

yorool_gui October 19 2017, 15:00:30 UTC
Все так. Но увы, на hh.ru например вакансии на Rust искать чуть менее чем бесполезно :-(

Reply

swizard October 19 2017, 15:14:09 UTC
Тем не менее, вакансии есть :)

Популярность языков, к сожалению, ортогональна здравому смыслу. Я уже на эту тему жаловался по поводу js :)

Reply

Re: Популярность языков... ортогональна здравому смыслу mpd October 19 2017, 19:51:53 UTC
Куда катиться мир!!! :-(

Reply

Re: Популярность языков... ортогональна здравому смыслу wizzard0 October 19 2017, 20:24:26 UTC
в смысле? )

Reply


thesz October 19 2017, 15:06:44 UTC
>А в Rust отсутствует возможность "неправильно" создать объект.

В Rust объект - это значение, или изменяемый кусок памяти? Если последнее, то увы.

>Ведь его же создавали люди, которые много программировали на C++ :)

Его создавали люди, которые мало программировали на Хаскеле, иначе бы его не было.

Надо мне собраться с силами. :(

Reply

swizard October 19 2017, 15:25:58 UTC
> В Rust объект - это значение, или изменяемый кусок памяти? Если последнее, то увы.

Физически это кусок памяти, разумеется. Но Rust нельзя напрямую с памятью под переменными работать вне unsafe-блоков, и в языке, соответственно, есть гарантия на то, что любое прочитанное значение обязательно было до этого корректно инициализированно.

> Его создавали люди, которые мало программировали на Хаскеле

Хаскель в этом плане тоже устарел. В том же purescript head и tail возвращают Maybe :)

Reply

thesz October 19 2017, 15:31:41 UTC
>Хаскель в этом плане тоже устарел. В том же purescript head и tail возвращают Maybe :)

Вопрос библиотеки. В ghc достигается добавление ключика.

>любое прочитанное значение обязательно было до этого корректно инициализированно.

Корректно или согласованно?

Моя проблема в C++ как раз в согласованности инициализации. Типа, программу разобрал, но таблицу символов не положил.

В том же Хаскеле у меня может быть фантомный тип с тем, что я сделал со значением. И я могу требовать наличие AST и таблицы символов одновременно.

Reply

swizard October 19 2017, 15:37:12 UTC
> В том же Хаскеле у меня может быть фантомный тип с тем, что я сделал со значением.

Если что, в Rust ты тоже можешь это сделать, там есть фантомные типы. Даже session types (и даже без монад, кстати, чисто на ownership-е).

Reply


zlokk October 19 2017, 20:53:57 UTC
простите, что я с ассемблером в калашный ряд, но все же - а раст компилируется в нативный винапи код? околосистемные тулзовины на нем можно писать?

Reply

maxim October 19 2017, 23:23:48 UTC
Да.

Reply

metaclass October 20 2017, 12:48:15 UTC
Можно, только когда это начнет, несмотря на все системы типов и прочее ебаться с сегфолтами и Access Violation - дампы можно будет только на помойку выкинуть, а не в отладчике открыть и посмотреть.

Reply

swizard October 21 2017, 00:26:45 UTC
А в чём проблема с отладчиком? Я лично дебажил раст и через gdb, и через lldb.

Reply


4da October 19 2017, 20:54:49 UTC
Чо там с кроссплатформенным гуем под раст?

Reply

kika October 19 2017, 21:30:29 UTC
У раста есть своя библиотека для гуя, довольно прикольная по идее - relm. Это реализация идей Elm в расте для нативного гуя, но к сожалению, базируется она на GTK+ и поэтому выглядит как говно везде, кроме линукса с гномом, который сам выглядит как говно, поэтому на его фоне незаметно.
Есть еще conrod(?) который вообще с нуля вроде как написан, но я его не пользовался.
Было бы удивительно если бы кто-нибудь уже не запилил бы какой-нибудь Qt.rs или что-то подобное. И если бы мне надо было бы написать коммерческое гуеприложение на расте, я бы взял конечно его (если оно есть).

Reply

swizard October 21 2017, 00:28:00 UTC
Понятия не имею, честно говоря :)

Но ведь на расте спрограммирован servo, значит, можно предположить, что какой-то кросплатформенный гуй у раста есть.

Reply

wizzard0 October 21 2017, 12:16:44 UTC
Есть обертка для dear imgui, это немного специфический вид гуя, но для некоторых подойдет.

Reply


ext_4138593 October 20 2017, 07:03:24 UTC
По русски -- "идиоматический" :)

Reply

swizard October 21 2017, 00:28:45 UTC
Точно, спасибо =)

Reply


Leave a comment

Up