Комментарии 19
Опять из Остина Пауэрса всё моджо выкачали?
Не пойму как так одни клепают языки за неделю и уверяют что он на равне с rust и ему подобными по производительности, другие типа гугл , свой карбон пилят не допилят никак. Где логика
Я думаю, что логика в том, что Google не обязательно ехать на хайпе, а Mojo надо - особенно если он никому нафиг не упал в настоящий момент и по коммерческой модели, видимо, не продается.
Плюс сама идея сделать более быстрый Python, забив на совместимость с миллионом пакетов, вроде как не сильно сложна. В Python3 "войны" вокруг GIL уже не один год идут, а все потому что дофига всего написали. Да и разработчики 100% знают какие части работают быстро, а какие могут быть оптимизированы. Все движется медленно, чтобы ничего не поломать.
Я думаю у них у всех бекенд llvm, поэтому производительность одинаковая, если уж совсем не городить в языке чудачества. Так что можно самому любой язык написать сейчас.
Пока выпустили только stdlib. Без компилятора/интерпретатора этого явно недостаточно, чтобы считать язык открытым.
Какие задачи этот язык решает, которые не решают другие языки?
из новинок (последних 25 лет) только разве что Go выдал что-то новое (взял на борт мультитред/EV), а остальные - просто всё то же самое, ничего нового.
В категоричности утверждений не так-то просто достигнуть предела, как я вижу...
Как на счёт erlang, rust, R, Kotlin?
Хотя, тут без описания вашего критерия новизны сложно что-то сказать.
что дает rust чего нет в С++?
на порядок более сложную модель работы с памятью (сложную для использования, а не в работе)
и всё?
зачем программистам С++ потребовалось бы переходить на раст, если б не мода?
erlang сильно отличается от go: в нем отсутствует в традиционном понимании понятие "переменная"
go исправляет как раз этот недостаток, так что с новизной go всё в порядке
На Rust тяжело переходить. Особенно, как ни странно, именно с ЯП с нативным управлением памятью.
Но Rust даёт высокую надёжность при практической такой же производительности!
Я не говорю - что Rust - идеальный ЯП - он просто первый в своём роде - со статическим управлением памятью! Он просто брутальный революционер, обративший на себя взгляды большой части IT-аудитории!
А вот C++ просто ужасный ЯП - учить его для повседневного применения врагу не пожелаешь! Да - у него есть своя и позитивная репутация - и она даёт хлеб тем, кто на нём программирует, и для ряда задач у него, по сути, нет альтернатив (связываться с Rust пока боятся чуть ли не так же как с С++, да и с компиляторами там всё не густо для различных платформ).
И альтернатив тут почти нет
На Rust тяжело переходить. Особенно, как ни странно, именно с ЯП с нативным управлением памятью.
На Rust управлять памятью гораздо тяжелее (нагрузка на программиста куда выше), чем на С++, впрочем сперва эти паттерны Rust появились на С++, а потом были вынесены в один язык.
Это очень спорно. Скорее всего вся сложность - именно в ломке сознания и уже освоенных паттернов!
В ANSI С++ 98 работать с памятью очень просто - там основныхоператоров раз два и обчёлся! А вот эффективно и надёжно работать с памятью даже в ANSI С++ 98 очень непросто! И если бред на Rust либо не скомпилируется либо просто сразу не заработает как надо. То бред на C++ может проявить себя спустя годы успешной работы! Не говоря уже о мелки недочётах. И выливающихся в гигантские отложенные затраты!
Впрочем, и без бреда, чтобы код на С++ скомпилировался - это тоже надо будет очень постараться, даже после незначительных изменений!
А уж последние стандарты C++ столько в него внесли - что чтобы это всё эффективно и надёжно применяться нужно очень сильно мозг напрягать!
И в C++ очень много пережитков прошлого и очень много разных библиотек и паттернов - всё это тоже не добавляет простоты кодирования и отладки!
А уж какую головную боль там обеспечивают шаблоны - что применяются налево и направо!
Но итог тут такой:
Профессионал C++ не будет иметь больших сложностей в кодировании - он 1001 собаку уже съел и знает большую часть тонкостей и нюансов!
Аналогично про Rust профессионала - только тонкостей и тут на порядок меньше, если не на два порядка!
А вот переходить между этими ЯП будет очень больно - это так же больно как переходить, скажем между чисто функциональным и чисто императивным ЯП, и даже убери тут слово "чисто" - по сути ничего не изменится!
Пишите на ассемблере, он решает все те же проблемы что и другие языки
Тут скорее другие задачи. Вот есть ЯП Python - он сейчас очень популярен и имеет кучу библиотек, вот только местами тормознут... и тормознут там - где как раз очень максимальная производительность - не критично, но "время-деньги". Да - безусловно - кто-то сразу решает такие задачи на других ЯП, но есть уже не мало тех, кто терпит и остаётся верен Python - с его плюшками! Вот ради них и затеяли сугубо локальную Mojo-революцию! Просто она пока не увенчалась даже призрачной победой, пока только планы строят по захвату мостов и телеграфов! Ну а как удастся - вот тогда и с других ЯП начнут переманивать...
А глобальные революции - оставьте другим, экспериментальным ЯП, как Rust
из новинок (последних 25 лет)
F#, например, даёт возможность использовать алгебраические типы данных и классы в одной программе. Также, появились языки с более продвинутой системой типов (например, agda).
Mojo — сокращение от Mojolicious и Mojolicious::Lite — перловых веб-фреймворков, появившихся лет 15 назад. На CPAN есть модули с этими словами в своих названиях. Плюс есть какой-то яваскриптовый вариант одного из этих фреймворков под названием mojo.js
Зачем так надо было называть ещё и отдельный язык — непонятно. Видимо, авторы поленились загуглить желаемое название.
Язык программирования Mojo вышел в опенсорс