The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Режим отображения отдельной подветви беседы [ Отслеживать ]

Оглавление

Выпуск языка программирования Rust 1.47, opennews (ok), 08-Окт-20, (0) [смотреть все]

Сообщения [Сортировка по времени | RSS]


26. "Выпуск языка программирования Rust 1.47"  +5 +/
Сообщение от Аноним (26), 09-Окт-20, 00:23 
Интересно, а в rust специально используется такой синтаксис, чтобы люди привычные к алголообразным языкам рыдали кровью или это случайно так получилось, или от помеси OCaml с Erlang есть какая-то сакральная выгода, которая мне не открылась в попытке набегом понять что написано на rust?..
Ответить | Правка | Наверх | Cообщить модератору

31. "Выпуск языка программирования Rust 1.47"  +/
Сообщение от Аноним (212), 09-Окт-20, 00:50 
Да, есть такой маркетинговый приём.
Ответить | Правка | Наверх | Cообщить модератору

33. "Выпуск языка программирования Rust 1.47"  –4 +/
Сообщение от DerRoteBaron (ok), 09-Окт-20, 01:14 
Специально, чтобы сохранить его понятным людям с опытом в алголообразных языках, выдавив максимум выразительности. Будь у него более приятный, но не похожий на мейнстрим синтаксис, вход в него был бы ещё сложнее
Ответить | Правка | К родителю #26 | Наверх | Cообщить модератору

162. "Выпуск языка программирования Rust 1.47"  +/
Сообщение от Аноним (161), 09-Окт-20, 17:47 
Мейнстрим это java, c, c++, python и в них подобных конструкций нет. Синтаксис rust — это не мейнстрим.
Ответить | Правка | Наверх | Cообщить модератору

250. "Выпуск языка программирования Rust 1.47"  +/
Сообщение от банан (?), 10-Окт-20, 09:02 
> выразительности

Про все языки говорят, что они выразительные.

Что это значит - загадка.

Ответить | Правка | К родителю #33 | Наверх | Cообщить модератору

269. "Выпуск языка программирования Rust 1.47"  +/
Сообщение от DerRoteBaron (ok), 10-Окт-20, 13:24 
> Про все языки говорят, что они выразительные.
> Что это значит - загадка.

Это значит, что языковые возможности обеспечиваются синтакстическими конструкциями, а не внешними костылями. Например, Идеальный пример это Java vs Kotlin, особенно в тех местах, где в первой требуют всякие явные equals и hashCode

Ответить | Правка | Наверх | Cообщить модератору

53. "Выпуск языка программирования Rust 1.47"  –1 +/
Сообщение от Аноним (51), 09-Окт-20, 03:59 
Миф о плохом синтаксисе лишь миф. Достаточно попробовать немного разобрать смысл происходящего.
Бывают упоротые языковые конструкции конечно, но не больше, а то и меньше, чем в C++
Ответить | Правка | К родителю #26 | Наверх | Cообщить модератору

128. "Выпуск языка программирования Rust 1.47"  +3 +/
Сообщение от анон (?), 09-Окт-20, 14:24 
я смотрю стримы по расту, везде плашка 18+
Ответить | Правка | Наверх | Cообщить модератору

300. "Выпуск языка программирования Rust 1.47"  +/
Сообщение от Anonxxx (?), 12-Окт-20, 00:33 
Так это не у всех,
про добычю рисурсов клафтинг и постройку негде нет такой плашки
Ответить | Правка | Наверх | Cообщить модератору

60. "Выпуск языка программирования Rust 1.47"  –1 +/
Сообщение от Ordu (ok), 09-Окт-20, 06:22 
> чтобы люди привычные к алголообразным языкам рыдали кровью

Конечно. Паскалисты должны страдать. Ведь все изобретатели новых языков думают в первую очередь о страданиях паскалистов. /s

> или от помеси OCaml с Erlang есть какая-то сакральная выгода

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

Ответить | Правка | К родителю #26 | Наверх | Cообщить модератору

91. "Выпуск языка программирования Rust 1.47"  +/
Сообщение от nekto (?), 09-Окт-20, 11:27 
>> какие именно свойства синтаксиса вызывают кровавые слёзы, то на твой вопрос, наверное, можно было бы ответить.

Хм, лево- и право- стороннее движение ?! Особливо на одном проекте - это на аматеура..
Так подкосить потенциальную абонентскую базу - основатели(R) знатную поросю подложили в фундамент..

Ответить | Правка | Наверх | Cообщить модератору

100. "Выпуск языка программирования Rust 1.47"  +/
Сообщение от Ordu (ok), 09-Окт-20, 12:04 
>>> какие именно свойства синтаксиса вызывают кровавые слёзы, то на твой вопрос, наверное, можно было бы ответить.
> Хм, лево- и право- стороннее движение ?!

Я не понимаю вот сейчас, о чём ты говоришь. Разговору было бы полезно, если бы ты объяснился.

Ответить | Правка | Наверх | Cообщить модератору

116. "Выпуск языка программирования Rust 1.47"  +/
Сообщение от AnonymPatient (?), 09-Окт-20, 13:45 
i: u64
vs
uint64_t i
Ответить | Правка | Наверх | Cообщить модератору

139. "Выпуск языка программирования Rust 1.47"  +3 +/
Сообщение от Ordu (ok), 09-Окт-20, 15:04 
> i: u64
> vs
> uint64_t i

Хмм... Заглянул в википедию: я думал, что первое как раз и есть алголовский синтаксис, но оказывается, что нет.

Нуок, тогда преимущества, _паскалевского_ способа декларации: он проще. Как с точки зрения алгоритмического парсера (прочитав i в "i: u64", парсер уже знает, что i -- это имя декларируемой переменной, прочитав : он знает, что дальше пойдёт имя типа, прочитав u64 он знает, что это имя типа, даже не сверяясь со списком имён типов), так и с точки зрения человека.

Почему важна такая простота с точки зрения компилятора? Да потому что она избавляет от необходимости декларировать тип _до_ того, как задекларирована переменная этого типа. В C и C++ из-за этого приходится отдельно писать декларации, отдельно дефиниции. Из-за этого в C и C++ возникают интересности, когда изменение порядка деклараций может изменить семантику. В C++ с этим всё совсем плохо на фоне возможностей перегрузки.

С точки же зрения человека, я думаю, полезность простоты обосновывать не нужно, но может быть неочевиден сам факт простоты, так? Ну глянь на C'шное что-нибудь:

int (*fns[16])(int * const * p);

Ты чуешь в чём дело? Тут синтаксис типа перемешан с синтаксисом переменной. Чтобы в этом разобраться нужно аж целое спиральное правило. Без которого плюс-минус можно обойтись, но когда в типе появляются словечки типа const, перетасованные с * -- сам чёрт ногу сломит к чему именно относится этот самый const -- к указателю или к тому на что он указывает?

rust'овый синтаксис отделяет имя типа от имени переменной. Имя типа всегда одинаково, вне зависимости от того, суёшь ли ты его в sizeof, или объявляешь переменную такого типа, или объявляешь функцию, возвращающую значение такого типа.

И кстати обрати внимание на int*const*p: замечаешь, что оно выглядит как два умножения? Прикинь теперь:

a * b;

Что это? декларация переменной b с типом указателя на a, или умножение a на b с игнорированием результата умножения? Чтобы распарсить такое надо знать, что a -- это имя типа. То есть, чтобы понять синтаксис, надо заглянуть в семантику. За такое, если по хорошему, надо руки отрывать, и если разработчикам алгола можно простить ещё -- они писали в такой древности, когда разницу люди не понимали, то разработчикам C совершенно точно надо было бы оторвать руки за то, что они полезли пилить язык, не ознакомившись с современной им литературой о языках и компиляторах.

Ответить | Правка | Наверх | Cообщить модератору

151. "Выпуск языка программирования Rust 1.47"  +1 +/
Сообщение от AnonymPatient (?), 09-Окт-20, 16:41 
...
>>За такое, если по хорошему, надо руки отрывать, и если разработчикам алгола можно простить ещё -- они писали в такой древности,
>>когда разницу люди не понимали, то разработчикам C совершенно точно надо было бы оторвать руки за то, что они полезли пилить язык, не ознакомившись с современной им литературой о языках и компиляторах

В общем, за одно разрабам Java, C#, etc. - они предпочли не нагружать целевого пользователя(с/с++), как говорится дьявол в деталях, вернее в одном терминирующем символе, чтобы все было цело и сыто:
uint64_t: i;

По факту, приличный пласт пользовательской базы под корень подрубили, имеется в виду средне-стат. разраба.
За сим откланяюсь

Ответить | Правка | Наверх | Cообщить модератору

158. "Выпуск языка программирования Rust 1.47"  +1 +/
Сообщение от Ordu (ok), 09-Окт-20, 17:33 
> uint64_t: i;

Это не очень удачный синтаксис. Во-первых, в нём нет ключевого слова let, которое зело упрощает парсинг (не важно с какой целью парсинг проводится -- компиляция, подсветка синтаксиса, search/replace регекспом, ...). Во-вторых, неясно как это изменить, чтобы допустить автоматическое выведение типов. А без автоматического выведения типов довольно неудобно жить, когда типы бывают сложными.

> По факту, приличный пласт пользовательской базы под корень подрубили, имеется в виду
> средне-стат. разраба.

Знаешь, тот пласт о котором ты говоришь, по-моему, не более чем балласт. Этому пласту лучше оставаться в C и C++ и продолжать тянуть их на дно. Ломать копья из-за какой-то там синтаксической детали, причём не в силу серьёзных технически обоснованных причин, а потому, что синдром утёнка? Пускай они этим синдромом топят C. Можно и C++ заодно.

То есть, если ставить перед растом цель "убийство C", то тогда замена синтаксиса на более удачный с технической точки зрения, но топчущийся по синдрому утёнка -- это гениальный ход: жертвы синдрома останутся в C, люди свободные от синдрома с неплохой вероятностью мигрируют в rust. Произойдёт "охлаждение групповых убеждений посредством испарения"[1], и сообщество C окончательно превратится в сообщество догматиков с визгливым голосом, и тогда у него совершенно точно не останется никакого будущего, кроме пенсии.

[1] https://lesswrong.ru/w/%D0%9E%D1%85%...

Ответить | Правка | Наверх | Cообщить модератору

168. "Выпуск языка программирования Rust 1.47"  +1 +/
Сообщение от nekto (?), 09-Окт-20, 18:07 
>> uint64_t: i;
>Это не очень удачный синтаксис. Во-первых, в нём нет ключевого слова let,

.. var, mut, this, etc - это вопрос ключ. слов, можно еще чем нибудь расширить

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


> Ломать копья из-за какой-то там синтаксической детали, причём не в силу серьёзных технически обоснованных причин, а потому, что синдром утёнка?

Это не синдром утенка, а нежелание аудитории тратить ресурсы(невоспол.) на синтaксис, то что спокойно может сделать машина

Ответить | Правка | Наверх | Cообщить модератору

195. "Выпуск языка программирования Rust 1.47"  –1 +/
Сообщение от Ordu (ok), 09-Окт-20, 19:44 
>> Ломать копья из-за какой-то там синтаксической детали, причём не в силу серьёзных технически обоснованных причин, а потому, что синдром утёнка?
> Это не синдром утенка, а нежелание аудитории тратить ресурсы(невоспол.) на синтaксис, то
> что спокойно может сделать машина

Это именно что синдром утёнка. Всё остальное -- это рационализации, то есть попытки придумать рационально-звучащее объяснение, которое скрывает истину. Освоить синтаксис деклараций раста можно за 10 минут. Если 10 минут для тебя такой уж невосполнимый ресурс, то что ты делаешь, флудя здесь?

Ответить | Правка | Наверх | Cообщить модератору

210. "Выпуск языка программирования Rust 1.47"  +/
Сообщение от Аноним (212), 09-Окт-20, 21:08 
> a * b; Что это?

Вот и добралось поколение ЕГЭ до кодинга... А потом будешь спрашивать, "гиде искать определение типа int? что это вообще за int? нипанимать!!"

Ответить | Правка | К родителю #139 | Наверх | Cообщить модератору

216. "Выпуск языка программирования Rust 1.47"  +1 +/
Сообщение от Ordu (ok), 09-Окт-20, 22:49 
>> a * b; Что это?
> Вот и добралось поколение ЕГЭ до кодинга...

Угу. Добралось и увидело косяки синтаксиса, хотя олдфаги десятилетиями смотрели подслеповатыми глазами и в упор не видели.

Ответить | Правка | Наверх | Cообщить модератору

274. "Выпуск языка программирования Rust 1.47"  +/
Сообщение от nelsonemail (??), 10-Окт-20, 18:01 
>> косяки синтаксиса

Ох уж эти смузи-эстеты...

>> олдфаги десятилетиями смотрели подслеповатыми глазами и в упор не видели

Конструктивная критика C? Не, не слышали.

Ответить | Правка | Наверх | Cообщить модератору

275. "Выпуск языка программирования Rust 1.47"  +/
Сообщение от Ordu (ok), 10-Окт-20, 19:07 
>>> косяки синтаксиса
> Ох уж эти смузи-эстеты...
>>> олдфаги десятилетиями смотрели подслеповатыми глазами и в упор не видели
> Конструктивная критика C? Не, не слышали.

Конструктивность вся осталась выше, она закончилась переходом на обсуждение поколения ЕГЭ, а затем на обсуждение смузи. Отметь: не по моей инициативе.

Ответить | Правка | Наверх | Cообщить модератору

270. "Выпуск языка программирования Rust 1.47"  +/
Сообщение от Aleshonne (?), 10-Окт-20, 13:55 
Вот, например, в Аде в пакете Standard даны определения всех стандартных типов и я считаю, что это правильно.
type Integer is range -(2 ** 31) .. +(2 ** 31 - 1);
type Byte is mod 2 ** 8;
type Boolean is (False, True);
type Float is digits 6 range -16#0.FFFF_FF#E+32 .. 16#0.FFFF_FF#E+32;
Ответить | Правка | К родителю #210 | Наверх | Cообщить модератору

123. "Выпуск языка программирования Rust 1.47"  +1 +/
Сообщение от Webmonkey (?), 09-Окт-20, 14:14 
Должны страдать паскалисты, но страдают только сишники, а паскалистам норм, они к LL синтаксисам привыкли.
Ответить | Правка | К родителю #60 | Наверх | Cообщить модератору

143. "Выпуск языка программирования Rust 1.47"  –1 +/
Сообщение от Ordu (ok), 09-Окт-20, 15:31 
> Должны страдать паскалисты, но страдают только сишники, а паскалистам норм, они к
> LL синтаксисам привыкли.

Сишники должны страдать -- это их осознанный выбор.

Ответить | Правка | Наверх | Cообщить модератору

111. "Выпуск языка программирования Rust 1.47"  +1 +/
Сообщение от burjui (ok), 09-Окт-20, 13:22 
Любой программист с мало-мальски развитым кругозором знает о семействе ML и хотя бы видел пару сорцов. Ноют про синтаксис обычно те, кому лень учиться и у кого фантазии хватает только на то, чтобы программированием зарабатывать на хлеб. Интересно, а в других странах специально используют такие алфавиты и грамматики, чтобы люди, привыкшие к англообразным языкам, ссали кипятком, или в этом есть какая-то сакральная выгода, вроде другого способа выражения мыслей и своего набора идиом?
Ответить | Правка | К родителю #26 | Наверх | Cообщить модератору

130. "Выпуск языка программирования Rust 1.47"  +1 +/
Сообщение от анон (?), 09-Окт-20, 14:27 
> Ноют про синтаксис обычно те, кому лень учиться

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

Ответить | Правка | Наверх | Cообщить модератору

181. "Выпуск языка программирования Rust 1.47"  +/
Сообщение от nomad__email (ok), 09-Окт-20, 18:42 
> Интересно, а в rust специально используется такой синтаксис, чтобы люди привычные к
> алголообразным языкам рыдали кровью или это случайно так получилось, или от
> помеси OCaml с Erlang есть какая-то сакральная выгода, которая мне не
> открылась в попытке набегом понять что написано на rust?..

А людям, привычным к Erlang, норм, много знакомых конструкций. Хотя есть неоднозначности типа одинарных стрелок в сигнатурах функций и двойных - в match. Ну так и в Erlang - запятая, точка, точка с запятой...

Ответить | Правка | К родителю #26 | Наверх | Cообщить модератору

271. "Выпуск языка программирования Rust 1.47"  +/
Сообщение от Аноним (271), 10-Окт-20, 16:24 
Ну да норм. Всем полутора землекопам.
Ответить | Правка | Наверх | Cообщить модератору

277. "Выпуск языка программирования Rust 1.47"  +/
Сообщение от nomad__email (ok), 10-Окт-20, 20:15 
Всем разработчикам лаборатории распределенных систем университета Иннополис, где я имею честь работать. Всем разработчикам RabbitMQ, CouchDB, ejabberd, веб-сервера Cowboy. Сотрудникам Facebook, которые занимаются серверами WhatsApp, разработчикам Amazon EC2, сотрудникам T-Mobile. Сотрудники Eltex, разрабатывающие софт-свитч ECSS-10, тоже не страдают.
Также, думаю, не парятся за синтаксис те, кто пишет на Elixir.
Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру