Pull to refresh

Comments 13

Каждым релизом тайпскрипт делает какие-то невероятные штуки, но для новичка становится всё сложнее въехать в это. Я проработал плотно с тайпскриптом 4 года, и имхо всего два языка сегодня находятся на передовой реально применяемых языков, это TS и Rust.

Соглашусь.

Единственное — в TS не хватает встроенных Option / Result. И все же иногда система типовы недостаточно строгая или гибкая, но это возникает очень редко, да и грех жаловаться, потому что в других языках этого вообще нет. Разве что восьмой ПХП вроде норм, но я на нем сто лет не писал, нет времени посмотреть.

Асинхронщина в TS вообще хороша и проще, чем в расте.

UFO just landed and posted this here

Хаха, опять гоисты используют манипуляции, это у вас такая традиция?

Не вижу в своем сообщении пойнта про map-reduce.

Да и без Option / Result в TS можно жить, используя встроенные средства языка, потому что с типами легче работать.

TS имеет недостатки, но пользоваться им приятно. С растом то же самое.

Го — ужасен.

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

Если смотреть с вашей позиции, то Go на мой взгляд это самый лучший язык - он не перегружен синтаксисом, очень быстро компилируется, потребляет мало ресурсов. Что и есть шаг вперед. Хотя он не без недостатков в виде перегруженности if err != nil { ... }.

Подытоживая, мое мнение TS и Rust идут по пути С++, в виде неуемного добавления в язык всех возможных фич на все возможные случаи. Вот только нужно ли это. В отношении С++ там грань разумного перешагнута давно, опять же на мой взгляд, синтаксис стал настолько сложным что трудозатраты на написание и поддержку ПО которое всем этим пользуется превышае выгоды от скорости работы и потребления памяти - как вывод 99% ПО сейчас пишут не на С++ и он полностью маргинализиировался.

Какие фичи TS и Раста вы считаете лишними?

Во первых, фич в C++ гораздо меньше чем, например, в Scala. Это по поводу неуемного добавления фич.

Во вторых, синтаксис C++ проще вырвиглазного синтаксиса Rust, и становиться только проще со временем начиная с 11 стандарта (всякие auto, новый for, ламбды и.т.д.). Вы просто путаете синтаксис и возможность выстрелить себе в ногу. Да, в Rust гораздо сложнее это сделать, но он и менее гибок.

В третьих вы пишете ерунду по поводу 99% ПО, ибо все мало мальски серьезные десктопные приложения пишутся на C++. Тулзы, браузеры, 3д софт, графические редакторы, видеоредакторы, музыкальные студии, игры и.т.д. Даже тот же Firefox состоит лишь на 9% из Rust, по моему это фиаско для языка, стабильная версия которого вышла в 2015 году.

И на мобилках все серьезные игрушки понятное дело, кроссплатформенные и во многих случаях написаны на C++. Так что язык не маргинализировался, он остается на своем месте, и будет всегда там оставаться. Просто разрослись веб и мобильные сегменты, до невероятных размеров, а C++ прекрасно чувствует себя в своей нише.

"[...]Firefox состоит лишь на 9% из Rust[...]"

Можете дать ссылку (ведь я отслеживал по одной, а данные в ней с июля не обновляются)?

P.S. нашел это https://www.openhub.net/p/firefox/analyses/latest/languages_summary (спасибо комменту https://habr.com/ru/post/467901/comments/#comment_20641833 )

Сравнивать Rust и С++ по количеству строк кода, это как ассемблер и питон сравнивать по строкам кода.

Простой аналог

enum Json {
  Null,
  Boolean(bool),
  Number(f64), 
  String(String)
  ...
}

на С++ уже займет под 500 строк кода.

Там где в расте можно написать характеристику и навесить ее ограничения на типы, на С++ придется городить иерархию классов-интерфейсов, которые все равно не будут такими же гибкими.

 это как ассемблер и питон сравнивать по строкам кода.

Вот по количествам строк кода Rust и С++ как раз не сильно отличаются, я смотрел исходники различных растовых библиотек, о краткости и лаконичности там и говорить не приходится.

Им обоим до Kotlin, например, далеко.

Простой аналог

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

А в Rust зато ООП нет.

на С++ уже займет под 500 строк кода.

да вы если поднатужитесь, то и на 5000 напишете, я уверен )

на С++ придется городить иерархию классов-интерфейсов

На шаблонах и union можно сделать, и вообще много вариантов.

Им обоим до Kotlin, например, далеко.

Но Kotlin далеко до Rust по системе типов.


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

Настолько не нужен, что в C++ его давно хотят добавить как минимум с 2016 года, если не раньше (и ещё есть 1 2 3), и до этого добавили в кастрированном виде как structured bindings.


А в Rust зато ООП нет.

Скажите, а что вы называете ООП?


да вы если поднатужитесь, то и на 5000 напишете, я уверен

В стандартной библиотеке GCC порядка полутора тысяч строк, и это не считая кода в подключённых заголовочниках.


На шаблонах и union можно сделать, и вообще много вариантов.

И прощай типобезопасность, ага.

Пересказ нормального анонса... Лучше бы честный перевод сделали, а то без заголовков и с перепутанными примерами кода читать невозможно.

Sign up to leave a comment.

Other news