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

Oct 19, 2017 17:47


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

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

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

programming, code, rust, c++

Leave a comment

sigterm October 22 2017, 09:07:29 UTC
нет никаких причин в настоящее время программировать что-то новое на C++, потому что есть Rust. Могут быть причины, чтобы выбрать вместо Rust, там, какой-нибудь Haskell, Scala, Erlang, да даже Common Lisp. Но не может быть никаких причин, чтобы вместо Rust выбрать C++.

Леша, ну есть же. Например, наукоемкие вычисления где нужна скорость. Расчеты всякие, диффуры, вот это вот все.

Reply

swizard October 22 2017, 21:43:18 UTC
А ты сейчас Rust ни с чем не путаешь, часом? Он ведь местами быстрее плюсов, если что :)

Reply

sigterm October 23 2017, 06:22:53 UTC
Там же не только скорость.
1) Библиотеки. На C/C++ написано огромное количество сложных мат. библиотек. Собственно из-за библиотек до сих пор Фортран во всю в этом мире используется.
2) Люди, которые понимают в предметной области, часто *очень* далеки от всех этих новых веяний в ЯП. Для них язык программирования -- сущность, которую они вынуждены терпеть. В идеале нужен язык максимально приближенный к математический нотации типа Matlab, но конкретно Matlab чудовищно медленный для реальной жизни. В этом смысле Rust хуже C++, т.к. вносит ненужную для этих людей сложность.

Reply

yorool_gui October 23 2017, 19:59:38 UTC
Это да. Но 20 лет назад и C++ не рассматривался как язык для рассчетов - фортран наше все. А сейчас C++ в положении фортрана: сколько его лямбдами не обмазывай, а в реальном коде будут (void*) и strcpy

Reply

swizard October 23 2017, 23:27:29 UTC
> 1) Библиотеки. На C/C++ написано огромное количество сложных мат. библиотек. Собственно из-за библиотек до сих пор Фортран во всю в этом мире используется.

Нет никаких проблем из программы на Rust слинковаться с библиотекой на Си или на Фортране. Это ничего не стоит (zero cost), точно так же, как и из С++. Раст - это компилируемый язык без рантайма, как и плюсы.

> В этом смысле Rust хуже C++, т.к. вносит ненужную для этих людей сложность.

Если ты под С++ подразумеваешь "Си с классами", то с натяжкой соглашусь. Если это всё-таки С++, с исключениями, темплейтами, STL, или даже C++11, C++14 или 17 - то ты однозначно не прав: Rust намного проще для человека с мороза. Причём, я бы даже сказал, на пару порядков.

С++ - невероятно сложный язык. Я не уверен, что в мире есть много людей, которые владеют им в совершенстве, хотя бы знают все места с undefined behaviour. Учёный или инженер всё это добро осваивать точно не будет.

Reply

sigterm October 24 2017, 06:02:12 UTC
А покажи мне самую правильную сейчас либу на Расте для линейной алгебры?

Что касается как ученые пишут -- то что я видел это "Си с классами" + немного STL (std::vector, std::string, std::cout).

Насчет того что проще для изучения с нуля -- возможно ты прав. Но смотри, эти люди зачастую потратили десятки лет на изучение своей предметной области, чтобы радикально сменить ЯП должна быть какая-то очень веская причина (для ученых) т.к. отрасль очень, очень консервативна, это тебе не очередной фреймворк на JS запилить. Там зачастую во всем мире десяток человек понимает в проблеме, 2-3 из них могут что-то работающее запрограммировать на языке, который они как-то выучили в студенчестве или аспирантуре.

Reply

swizard October 24 2017, 14:59:11 UTC
По-моему, ты всё пытаешься сову на глобус натянуть :)

> А покажи мне самую правильную сейчас либу на Расте для линейной алгебры?

Ты можешь из раста свободно пользоваться и blas, и lapack, и что там ещё бывает - для всего этого есть zero-cost обёртки. Если ты зачем-то хочешь библиотеку, которая именно что на расте написана, ну вот, например, какая-то есть.

> Но смотри, эти люди зачастую потратили десятки лет на изучение своей предметной области, чтобы радикально сменить ЯП

Но я же и не предлагаю их переучивать, это ты всё пытаешься их как-то оберечь от меня =) Эти люди пусть программируют на чём хотят и могут, а вот новых таких людей лучше бы учить языку Rust, а не C++.

Там тебе выше уже yorool_gui написал, что учёные-фортранщики то почти повымерли, хоть их тоже в своё время много было, и ребята вроде тебя всячески предостерегали их от С++ :)

Reply

sigterm October 24 2017, 16:31:57 UTC
Да я то не предостерегаю, я может даже всеми руками за Rust в системной разработке. Вот начал даже книжку почитывать, возможно даже с вопросами к тебе полезу если ты не против. Но я хочу сказать, что чтобы перевести отрасль научных вычислений с C/C++/Fortran на Rust нужно очень много времени и усилий. И, честно говоря, пока не очень понятно зачем это нужно и кто это будет делать? Я понимаю, например, какую задачу ставит перед собой Julia (https://julialang.org/) -- нотация, приближенная к математической + почти нативная скорость (ну по крайней мере сильно быстрее Matlab'а) -- и почему это может оказаться привлекательным для сообщества. Про Rust такого понимания пока нет.

Reply

wannabeamug February 22 2018, 18:04:20 UTC
А какую книгу по Rust Вы начали читать?

Reply

wannabeamug February 22 2018, 18:08:27 UTC
А можно изучать Rust, если не знаешь ни одного из следующих языков: c/c++ , Haskell, Elm, Erlang, Scala, Common Lisp , Python, Perl ?
Как лучше начать изучать Rust? Просто погуглить и скачать любую англоязычную книгу по Rust ?

Reply

swizard February 22 2018, 23:19:00 UTC
Можно, конечно. Вот прямо отсюда и начинай!

Reply


Leave a comment

Up