LINUX.ORG.RU

Стоит ли переписывать проект с Go на Rust?

 ,


0

5

Вот думаю, а не переписать бы мне out-of-tree на Rust? Последний я в некоторой степени знаю, но полноценных самостоятельных проектов пока не было. Пока проект не разжирел сильно (всего две с половиной тысяч строк), поэтому переписывание само по себе не будет слишком затратно по времени.

Какие преимущества я получу?

С какими проблемами я столкнусь?

Deleted

Какие преимущества я получу?

С какими проблемами я столкнусь?

мне кажется лучше задать вопрос «какую проблему я решу?», и если ответ «никакую» — то не надо

oxo ()

Какие преимущества я получу?

Подучишь Rust.

Но зачем? Go — это такой компилируемый питон, а Rust — Си на стероидах для браузеров параллельных числодробилок.

intelfx ★★★★★ ()

Если ты rust знаешь «в некоторой степени» то я бы не рекомендовал так делать, поскольку он требует практически полного переосмысления принципов программирования. И если у тебя возникают подобные вопросы, то переосмысление еще не произошло. Поэтому за такие проекты, тем более за переписывание браться точно не стоит, тем более с go.

Serbis ()

Какие преимущества я получу?

Получишь небольшой опыт на Rust.

С какими проблемами я столкнусь?

Тебе придётся переписать код, который и так работает, причём без перспективы получить что-то кроме опыта переписывания проекта на другом языке. В конце возможно ощущение траты времени впустую.

i-rinat ★★★★★ ()
Ответ на: комментарий от Serbis

поскольку он требует практически полного переосмысления принципов программирования

Если ты ранее ничего кроме С++ не использовал, то, возможно – Rust у тебя действительно потребовал практически полного переосмысления принципов программирования.

Я никогда на одной технологии зашорен не был, и для меня после всех других – Rust не требует «практически полного переосмысления принципов программирования».

Поэтому давайте обойдемся без сектантства, этот тред не об этом.

Deleted ()
Ответ на: комментарий от Deleted

Если ты ранее ничего кроме С++ не использовал, то, возможно – Rust у тебя действительно потребовал практически полного переосмысления принципов программирования.

C, C++, Python, Java, Scala, Haskell, JavaScript, TypeScript, Lua - это то что вспомнилось из того с чем я имел дело до раста и все же пришлось переосмыслить. Написав порядка где-то порядка 25к строк кода на расте, понял что ничего подобного среди всего что мне встречалось в мире программирования нет.

Serbis ()
Ответ на: комментарий от Deleted

Короче я не развожу сектантские темы тут. Просто твой вопрос был на мой взгляд таким образом - мне совсем нечего делать, может стоит переписать вот эту штуку на другой яп? Перепиши на си, если делать нечего, это будет куда проще и быстрее чем осваивать раст.

Serbis ()

Щасбы утилиту, состоящую из 99.99% скриптоты, писать на статически типизированых языках. Поэтому:

Какие преимущества я получу?

Никакие преимущества не получишь

С какими проблемами я столкнусь?

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

anonymous ()

Тебя @RazrFalcon покусал или ты просто вбросить решил? Это же заведомо бред, зачем?

P.S. Описание твоего out-of-tree мягко говоря не блещет, я интуитивно понимаю что это и зачем оно, но всё ранво толком не понятно как этим пользоваться.

WitcherGeralt ★★ ()

я думаю, стоит писать и на том и на другом.

это оба языка со своими преимуществами.

я вижу Rust - как хорошая замена для переписывания с C. но Go - очень хорошо подходит для сектора приложений. т.е. Rust я бы оставил для лоулевел, как замена C

PexuOne ()
Ответ на: комментарий от urxvt

Что у них общего?

синтаксис простой. меньше головной мороки, по сравнению с C/C++.

ну и ещё, Go сейчас может полностью заменить Python. за сим их так часто и сравнивают.

PexuOne ()
Ответ на: комментарий от urxvt

Что у них общего?

Квадратно-гнездовой подход, упор на простоту вплоть до примитивности. Если прищуриться — то и область применения.

intelfx ★★★★★ ()
Последнее исправление: intelfx (всего исправлений: 2)
Ответ на: комментарий от WitcherGeralt

ML, где у питона вообще конкуретнов нет.

такое возможно, только если для этого там используется автогенерация кода, когда программа пишет сама себя. если нет, то нет... да и на go такого можно добиться...

PexuOne ()
Ответ на: комментарий от Serbis

Короче я не развожу сектантские темы тут.

Да? А по фразам «полного переосмысления принципов программирования» так и не скажешь.

В целом – не нужно переносить на других людей свой субъективный опыт. Если у тебя были сложности и потребовалось «полное переосмысление принципов программирования» – это не значит, что для всех это представляет такую же сложность.

Deleted ()
Ответ на: комментарий от Deleted

не нужно переносить на других людей свой субъективный опыт

Ты сам этого и просил в хэдпосте. Других способов, окромя как судить по себе, у людей нет

anonymous ()
Ответ на: комментарий от Deleted

А, а ну пиши на расте тогда! В таком случае непонятно из-за чего возник твой вопрос. Ибо раз ты уверен в своих знаниях, почему же ты не видишь какие сложности тебя подстерегают?

Serbis ()
Ответ на: комментарий от vertexua

У другого языка может быть более удобное API для того рода библиотек, что используется – libvirt, docker, GUI/TUI, разбор опций командной строки и прочее.

Поэтому некоторые проекты были переписаны с Python на Go, например.

Deleted ()
Ответ на: комментарий от PexuOne

синтаксис простой. меньше головной мороки, по сравнению с C/C++.

У С тоже синтаксис простой.

ну и ещё, Go сейчас может полностью заменить Python. за сим их так часто и сравнивают.

Я это к чему. Питон гораздо более высокоуровневый язык чем Go. Го, в этом плане, мало чем от С отличается: строка такой же примитивный кусок байт, массив тоже. В Го даже append слайсу сделать уже не так тривиально как в Питоне.
Го это просто более безопасный С с GC, не более.

urxvt ★★★★★ ()
Ответ на: комментарий от PexuOne

У всех популярных ML-фреймворков есть биндинги для питона, есть куча библиотек вокруг них, огромное количество примеров, jupyter, все только на питоне это и пишут. Нельзя просто взять и поменять питон на что-то другое. Это как C для операционной системы, нет ни смысла, ни возможности его заменить.

WitcherGeralt ★★ ()
Ответ на: комментарий от Serbis

Вопроса «стоит ли мне писать на Rust» не стояло, следовательно и элитарного сектантства (к слову, откуда оно вообще взялось в Rust комьюнити? У тех же Haskell’истов несмотря на всю красоту и «возвышенность» языка я никогда никакой элитарности не встречал ― все очень даже приятные люди) на тему «Rust очень сложен, не стоит тратить время на изучение» ― я увидеть не ожидал.

Deleted ()
Ответ на: комментарий от intelfx

упор на простоту вплоть до примитивности

Мне кажется, простота там совсем разная: сравни простоту добавление в слайс у Го и в список у Питона. Одно просто для программистов просто понимающих что такое память и все, не заботящихся о всяких ГЦ, бороу-чекерах, тайпклассах. Другое просто для школьников/математиков/физиков не понимающих вообще ничего.

urxvt ★★★★★ ()