Pull to refresh

Comments 29

Экосистема js такая развитая, потому что в ней все знают js и пишут на нем. Любой может написать плагин к популярному инструменту типа вебпака или Бабеля. А на расте плагины смогут писать единицы

Например, сейчас next 12 перешёл на swc, но мы не можем обновиться потому что у нас подключены плагины которые не реализованы для swc. И поделать с этим ничего нельзя - Раст в команде никто не знает

Так что мейнстримом такой подход точно не будет

Ну и ещё не только на расте пишут но и на го. Го не сильно медленнее, но в разы проще. Если уж и писать тулинг на чем-то нативном, то на нем

Компиляция в wa даёт всего-то 20% плюс к производительности, игра не стоит свеч. Это имеет смысл когда нужно переиспользовать нативную библиотеку, или скрыть сорцы от посторонних глаз. Но тоже не мейнстрим

Раст — это просто очередной язык, в котором некоторые вещи сделаны не так, потому что в остальных языках очень долгое время абсолютной нормой считалось компилировать и запускать (падая в рантайме) очевидно ошибочный код. В остальном — это просто еще один язык с си-подобным синтаксисом. За месяц литкода любой разраб будет на нем писать.

В го можно читать из переменных, которые не были инициализированны. Длинна неинициализированного массива — 0. Даже в TS такой дичи нет.

Го не сильно медленнее, но в разы проще.

До тех пор, пока в коде не появились неявные ошибки.

В го можно читать из переменных, которые не были инициализированны.

А вы хотя бы букварь читали? https://go.dev/tour/basics/12

Длинна неинициализированного массива — 0.

Это как? >An array's length is part of its type

Длинна неинициализированного массива — 0.

Под массивом наверно имеется в виду slice.
Из того же букваря go.dev/tour/moretypes/12:
The zero value of a slice is nil.
A nil slice has a length and capacity of 0 and has no underlying array.

А вы хотя бы букварь читали? https://go.dev/tour/basics/12

А вы? Там написано что неинициализированные переменные неявно "инициализируются" каким-то рандомным значением, которое разработчики почему-то посчитали подходящим.

Это не инициализация, это присваивание переменным рандомного значения, которое ничем не лучше мусора, который си читает из неинициализированной памяти.

Это как? >An array's length is part of its type

Ниже вам уже написали, но если хотите, можете продолжать блистать знаниями терминологии.

A nil slice has a length and capacity of 0 and has no underlying array.

Где там написано про «какое-то рандомное значение»? Значение вполне определенное и зависит от типа переменной — ноль, false, пустая строка, nil.

ноль, false, пустая строка, nil.

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

Очевидно, они ошиблись.

То, что вы считаете их неудачными - это одно.

Но они не рандомные - они весьма конкретные и каждый раз одинаковые.

Он про такой кейс. ИМХО есть и есть, язык простой, пару особенностей запомнить не так сложно, но на любителя да.

var data []int; fmt.Println(len(data)) // -> 0

Массив может быть nil (выше ситуация), а может быть нулевой длины. Особой разницы нет в повседневной работе, кроме случаев JSON серелизации, тк nil будет null, а не []

Я наблюдал подобную ситуацию при появлении Scala и Kotlin. Матёрые Java программисты с опытом 10+ лет посмеивались над новыми языками, ведь всё тоже самое можно сделать на Java. Но вот уже вышла Scala 3 и нашла своё приминение в Kafka, Spark, BigData, а Kotlin постепенно захватывает Android разработку.

В современно ИТ нет одного языка, который объединит все остальные. Наоборот каждый пишет на том, что удобнее. Я думаю найдутся любители Rust во фронтэнде, и от этого никому не будет хуже.

Во фронтенде было несколько таких попыток: CoffeScript, Dart, теперь вот TypeScript. Кроме TypeScript-а никто не прижился, но даже с учетом всей его популярности, он все равно не лидер пока.
Вот, приложил сравнение количества PR-ов на GH по котлину vs джаве, джава vs скала и TS vs JS.

Всегда меня так веселят оголотелые староверы любители того-самого правильно.

Но потом, через 5-10 лет почему-то пишут "ой, что-то на Делфи и Паскале вакансий не найти", "ой, что-то ПХПшникам платят меньше чем доставщикам пиццы"

Может, в будущем что-то и изменится но пока что JS помирать не собирается

А медианная зарплата в этих вакансиях одинаковая?

За год тайпскриптеры получают на 10% больше на рынке США.

Но какое это имеет отношение к обсуждаемой теме?

Я к тому что нужно смотреть не только на количество, но и на "качество" вакансий.

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

Когда наступит будущее и все изменится уже поздно будет пить боржоми

Из всего пестрого многообразия "стильных-модных-молодежных" язычков в мейнстрим пробиваются единицы. Вот выше вспомнили про Scala и Kotlin (которым в общем-то тоже ещё далеко до мейнстрима, это нишевые языки), а про тот же Groovy не упомянули - забыли наверное, да? :) (неудивительно). Просто не всем нравится тратить свое время на переписывание coreutils и прочих велосипедов на очередном маргинальном языке из списка "other programming languages" у TIOBE, а выучить "очередной язык с си-подобным синтаксисом" в случае необходимости проблемой не является. А вот возникнет ли эта необходимость - это отдельный вопрос.

Вот выше вспомнили про Scala и Kotlin (которым в общем-то тоже ещё далеко до мейнстрима, это нишевые языки)
Kotlin же аж основной рекомендованный Гуглом язык для разработки под Андроид. Или мейнстрим — это когда он популярнее Джавы будет во всех сферах, включая легаси?

Подобное уже случалось во фронтенде. Была библиотека libsass, написанная на C++. Однако из-за неудобного стека, новые фичи добавлялись катастрофически медленно. В результате, libsass всё, закрылся.

Возможно библиотекам на Rust повезет больше, потому что язык более дружелюбный, но время покажет

бред какойто TS будет в вебасамбли , зачем еще одна прослойка , явно автор курил чтото или сам запутался ....

быстрее, чем JS, но не совсем по скорости
Быстрее, но не по скорости? Это как, вообще? В оригинале
WASM is definitely a lot faster than JS, but not quite native speed.
Т.е., быстрее JS, но не на уровне нативного кода.
UFO just landed and posted this here

Основная причина, почему Vercel выбрала Rust, а не Go (и написала эту статью) — им удалось купить мейнтейнеров SWC и получить полный контроль над проектом.

Аналог на Go (esbuild) не уступает по скорости и функциональности, а где-то даже превосходит решение на Rust. Единственная проблема — его пишет технический директор Figma, поэтому купить его затруднительно, а это противоречит бизнес-модели Vercel.

esbuild и swc - это не аналоги, один инструмент другой не заменяет. esbuild – это бандлер (вроде webpack), а swc – транспайлер (вроде babel)

Ну да, esbuild не только транспайлер, но и бандлер. Поэтому я и написал, что "где-то даже превосходит".

Rust вряд ли сменит JS, мне он видится больше языком для wasm, написания утилит для сборки, оптимизации и прочих прикладных задач для node.js/deno. За пару лет собрал несколько интересных проектов. "Убийца" Electron - Tauri и вот буквально вчера попал на проект PostCSS-RS.

Sign up to leave a comment.

Articles