LINUX.ORG.RU
ФорумTalks

Rust - самый высокооплачиваемый язык программирования в 2021 году

 , ,


0

3

Rust - не только самый любимый язык несколько лет подряд согласно опросу на StackOverflow, но и самый высокооплачиваемый язык программирования в 2021 году (по крайней мере в Великобритании): https://thenextweb.com/news/move-over-python-rust-highest-paid-programming-la...

★★★★★

Ответ на: комментарий от Legioner

Любому очевидно, что Go примитивный донельзя.

Начнём с того, что в rustc львиная доля кода это С++ LLVM.

Go компилятор полностью написан на Go, с генерацией в свой ассемблер единый для всех платформ.
Вроде бы никогда не возникало проблем что компилятор падает, с самого начала.

Ну и нет, unsafe никак не должен быть защищён в компиляторе, он там ровно такой же, как и в любой другой программе.

Unsafe используют для оптизмизации и в комменте пишут что это safe при соблюдении условий которые в данном случае всегда соблюдаются.

tp_for_my_bunghole
()
Последнее исправление: tp_for_my_bunghole (всего исправлений: 3)
Ответ на: комментарий от fsb4000

Да. В Go не устраивает overhead в Cgo, и компиляция больших проектов с Cgo практически приближается по длительности к Rust.
Понятно что лучше писать всё на Go, но SDL2 и Vulkan на Go не перепишешь.

И есть надежда что итеративная рекомпиляция Rust в процессе написания кода не так тормозит как ожидается. Измерял на большом проекте, просто touch для файла, и рекомпиляция 5-9 секунд. Надо привыкать читать код или документацию в это время, абстрагируясь от компиляции.
Хотя, если сравнить, то никогда думать в REPL интерпретаторов не получалось. Сидишь что-то пишешь в REPL и думаешь зачем это делать вообще. В Lisp в этом был смысл потому что там весь образ программы в памяти, выполняется.

Надо дальше поковырять Rust…

tp_for_my_bunghole
()
Последнее исправление: tp_for_my_bunghole (всего исправлений: 3)
Ответ на: комментарий от tp_for_my_bunghole

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

Но Go падает на ура в очень внезапных случаях

package main

import (
	"fmt"
)

type If interface {
   Name() string
}

type Struct struct {
   name string
}

func (s *Struct) Name() string {
   return s.name
}

func main() {
	var i If
	s := &Struct {
	  name: "x",
	}
	i = s
	s = nil
	i = s
	if i != nil {
	  fmt.Printf("%s", i.Name())
	}
}
panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x0 pc=0x47f600]

goroutine 1 [running]:
main.(*Struct).Name(0xc000034750)
	/tmp/sandbox1124585161/prog.go:16
main.main()
	/tmp/sandbox1124585161/prog.go:28 +0x47

И главное err например супер популярный интерфейс, который супер популярно сравнивать с nil. Который в некоторых структурах можно захотеть обнулить

Шикарно я когда-то задеплоил.

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

В пользу Rust, компилятор падает хотя бы на макросах, это ещё можно объяснить сложностью кода.
Понапишут процедурные макросы для шейдеров, и LLVM падает при оптимизации. В dev всё проходит нормально. Вот они всё коммитят после cargo build и не знают что их код в релизе с оптимизацией не компилируется.

tp_for_my_bunghole
()

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

Rust-программисты этим не страдают. По крайней мере ни одного не встречал, чтобы специалист сразу и rust и в прикладной области. Может от того что rust ещё молодой и программисты не освоили приклад

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

Go компилятор полностью написан на Go, с генерацией в свой ассемблер единый для всех платформ.

То-то он толком никаких платформ кроме самых популярных и не поддерживает.

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

github issues, ищем sigsegv: 119 Open, 834 Closed.

Unsafe используют для оптизмизации и в комменте пишут что это safe при соблюдении условий которые в данном случае всегда соблюдаются.

Не очень тебя понимаю.

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

Технологическое превосходство + поддержка корпораций + маркетинг + хайп == Rust. Потому он взлетит, а все остальное нет.

Ну проекты гугла, фейсбука, амазона которые им по 500миллионов$ стоили говорят об обратном.

У покупателей есть деньги если говорить про подажи - то можно впарить что угодно и неважно что там Раст или Джаваскрипт (хоть на серверах хоть у юзеров невжно). Но опятьже это не говорит ничего про долгосрочную перспективу проекта и его применение за границами парочки корпораций.

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

Ну проекты гугла, фейсбука, амазона которые им по 500миллионов$ стоили говорят об обратном.

Не говорит. Хотя бы одного компонента не было

vertexua ★★★★★
()

самый высокооплачиваемый язык программирования в 2021 году

С этим все ясно, а какой самый низкооплачиваемый?

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

Вот именно, что надо именно все. Никогда не знаешь какой фронтенд фреймворк на очередной галере считают «лучшим». И как там относятся к spring или java EE или jakarta или все спецификации томката надо наизусть знать или еще там что...

В общем, не завидую я жабасиньорам, ищущим работу в наше непростое время :)

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

Не очень тебя понимаю.

Понимаешь.
Начиналось всё ещё с падения actix-web, когда автора казаха так задолбали претензиями по unsafe что он отказался работать над проектом и «open source».

tp_for_my_bunghole
()
Последнее исправление: tp_for_my_bunghole (всего исправлений: 1)
Ответ на: комментарий от tp_for_my_bunghole

Unsafe он потому и unsafe, что компилятор не даёт никаких гарантий, всё на откуп умениям разработчика. И unsafe в коде компилятора ничем не отличается от других unsafe-ов. И если где код на Rust и будет падать с SIGSEGV, так это в unsafe.

Автор actix-web вроде бы кореец. Не то, чтобы это имело какое-то значение, но всё же.

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

Что надо знать rust девелоперу? Rust.

Звучит как:

Требования к C++ разработчику - знание и умение пользоваться stdlib, stl.

Требования к Rust разработчику - знание названий популярных crate’ов.

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

Расскажи мне про финтех. Я только что (слава б-гу) сбежал с финтеха, 6 лет там отработав, с такой же зарплаты на меньшую. И счастлив. Бухать перестать не могу насколько я, ска, щаслив!

untitl3d
()
Последнее исправление: untitl3d (всего исправлений: 1)
Ответ на: комментарий от untitl3d

К слову сказать, SOLID, DRY, KISS, DI, а теперь ещё и BI, CI/CD должны знать выпускники шараг. По крайней мере что они означают, я не говорю про умение применять на практике. Если вы хотите быть сеньором и не знать элементарщины, то у меня плохие новости, говорят уже нулевые кончились, хеллоуворлдов на делфях мало.

peregrine ★★★★★
()

COBOL в опросе участвовал?

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

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

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

Повелитель собеседований в треде! Все в учить SOLID наизусть!

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

Ну Дарт если взлетит, то очень заслужено. Конечно сам язык постная размазня для тех у кого не стоит, читай Java. Но этот рантайм! Flutter разработка - просто огонь.

По сути все заслуги у Flutter. А Дарт скоростью компиляции позволяет hot reload работать так быстро. Но никому не прийдёт в голову писать бекенд на дарте, при том что вполне можно, и даже асинхронно

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

Это пока туда фреймворка под это дело не завезли.

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

Ну Дарт если взлетит, то очень заслужено. Конечно сам язык постная размазня для тех у кого не стоит, читай Java.

Dart отличный язык в версии 2.14;

Лучший C FFI который встречал. Парсинг C headers, с настройкой переименований.
В Emacs LSP сервер хорошо сделан.
Исключениями(throw) можно бросать наверх по стеку любой объект, хоть строку. Как обычный инструмент.
Null safety. Шаг в сторону Rust.
Extension methods, как в C#.
*.runtimeType содержит информацию о типах включая generics.
typedef для всех типов.

Компилятор реализован как помощник(так задумал ещё Lars Bak в начале), не Haskell с которым надо биться.
Вместо превентивного компилятора настраиваемыe Lint Rules. Можно указать что нужно ждать(await) все async функции без явного await.
Для обозначения async функций которые не надо ждать - есть unawaited() помощник в библиотеке.

С самого начала при Lars Bak решили не добавлять threading. ​ Вместо этого Isolates на основе threads, передают сообщения. Идея из Erlang. Lars Bak(создатель HotSpot Java) имел опыт поиска бага пол года в Java из-за threading. Теперь с развитым C FFI можно делать разделение памяти между isolates, кастомно.

Увидев всё это продравшись через FUD оппонентов языка в сети, неожиданно понял что Python не нужен, в сравнении.
Создание байндингов к библиотекам C, легко.

tp_for_my_bunghole
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.