The OpenNET Project / Index page

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



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

Оглавление

Выпуск языка программирования Rust 1.54, opennews (??), 29-Июл-21, (0) [смотреть все]

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


54. "Выпуск языка программирования Rust 1.54"  +3 +/
Сообщение от Аноним (46), 29-Июл-21, 23:25 
Нормальный синтаксис, просто для некоторых незнакомый и непривычный, потому что нет опыта с ML-языками например.
Ответить | Правка | Наверх | Cообщить модератору

60. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Хан (?), 29-Июл-21, 23:30 
Нормальный? В каком месте? Это же кому то взбрело в голову скрестить ML-языки в которых шарит 3,5 анонимуса и ООП вроде C++/Java/C# которое знают процентов 90... от чего получился Rust который могут понимать все теже 3,5 анонисуса
Ответить | Правка | Наверх | Cообщить модератору

101. "Выпуск языка программирования Rust 1.54"  +2 +/
Сообщение от Аноньимъ (ok), 30-Июл-21, 00:45 
> ML-языки в которых шарит 3,5 анонимуса

То что вы не шарите, не означает, что шарит мало людей.

> и ООП

И в чём тут проблема? ООП родной подход для функциональных языков.

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

139. "Выпуск языка программирования Rust 1.54"  –2 +/
Сообщение от Хан (?), 30-Июл-21, 02:31 
Аудитория OCaml, F#, Haskell, Lisp как бы намикает на популярность и понятность ФП

Особняком стоит Erlang который также непонятен но кое где взлетел

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

216. "Выпуск языка программирования Rust 1.54"  +1 +/
Сообщение от Аноньимъ (ok), 30-Июл-21, 04:46 
>Аудитория OCaml, F#, Haskell, Lisp как бы намикает на популярность и понятность ФП

Вы забыли Javascript и Python.

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

436. "Выпуск языка программирования Rust 1.54"  –1 +/
Сообщение от Хан (?), 30-Июл-21, 20:21 
JS в котором любой базовый тип это обьект? Хммм не знал что в ФП все обьект и наследование есть через прототипы, хотя это уже неактуально в новом JS наследование правильное
Ответить | Правка | Наверх | Cообщить модератору

122. "Выпуск языка программирования Rust 1.54"  –1 +/
Сообщение от Aukamo (ok), 30-Июл-21, 02:00 
С чего вы вдруг взяли что в Rust есть ООП? ООП держится на 3х китах: инкапсуляция, наследование, полиморфизм. Можете начать пояснять начиная с наследования.
Ответить | Правка | К родителю #60 | Наверх | Cообщить модератору

140. "Выпуск языка программирования Rust 1.54"  –2 +/
Сообщение от Хан (?), 30-Июл-21, 02:33 
Ключевое слово "Скрестить" ФП и ООП... понятное дело что нормальным ООП там и не пахнет
Ответить | Правка | Наверх | Cообщить модератору

147. "Выпуск языка программирования Rust 1.54"  +1 +/
Сообщение от Aukamo (ok), 30-Июл-21, 02:44 
Т.е. ваше экспертное мнение таково, что LINQ для C# как и сам С# не состоятелет в силу того что используются 2 таких несовместимых подхода как ФП и ООП?
Ответить | Правка | Наверх | Cообщить модератору

152. "Выпуск языка программирования Rust 1.54"  –2 +/
Сообщение от Хан (?), 30-Июл-21, 02:52 
C# изначально спроектирован как ООП язык, различные фичи добавлялись походу, так что дефолтная концепция не пострадала

Скажи еще что у Java плохое ООП из за того что туда добавили лямбды

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

160. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Aukamo (ok), 30-Июл-21, 03:04 
RTFM: https://doc.rust-lang.org/book/ch17-00-oop.html
Ответить | Правка | Наверх | Cообщить модератору

171. "Выпуск языка программирования Rust 1.54"  –5 +/
Сообщение от Хан (?), 30-Июл-21, 03:22 
Наследования нет))) лол

Тупо почти структуры...

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

316. "Выпуск языка программирования Rust 1.54"  +1 +/
Сообщение от Аноним (316), 30-Июл-21, 12:14 
А чего вы его здесь минусуете? Ну, ведь, действительно же в Rust нет нормального наследования.
Ответить | Правка | Наверх | Cообщить модератору

143. "Выпуск языка программирования Rust 1.54"  +1 +/
Сообщение от adolfus (ok), 30-Июл-21, 02:38 
Не три кита, а гораздо больше, причем главный из них -- это обмен сообщениями между объектами, чтобы передавать информацию, а не вызовы "методов". Кстати, в C++ вообще нет методов, только функции-члены классов.
Ответить | Правка | К родителю #122 | Наверх | Cообщить модератору

150. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Aukamo (ok), 30-Июл-21, 02:49 
> Не три кита, а гораздо больше

Нить рассуждений потеряна. Я выступил с критикой сравнения стуктур в Rust с ООП, в то время как вы.. не знаю о чём говорите.


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

527. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от adolfus (ok), 31-Июл-21, 15:32 
>> Не три кита, а гораздо больше
> Нить рассуждений потеряна. Я выступил с критикой сравнения стуктур в Rust с
> ООП, в то время как вы.. не знаю о чём говорите.

О том, что "три кита" инкапсуляция, наследование, полиморфизм для ООП вторичны, а первичен обмен сообщениями. Эти три кита появились в дискурсе потому, что не смогли в сообщения.

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

191. "Выпуск языка программирования Rust 1.54"  +2 +/
Сообщение от Аноньимъ (ok), 30-Июл-21, 04:05 
>инкапсуляция, наследование, полиморфиз

Никакого отношения к ООП не имеет.
Это система типов страуструпа.

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

205. "Выпуск языка программирования Rust 1.54"  –2 +/
Сообщение от Хан (?), 30-Июл-21, 04:30 
Бредишь истинным ООП Алана Кея на клеточном уровне? Лол конечно, но это лютые тормоза... для примера можешь написать программу где каждая функция будет отдельным процессом и любой чих будет вызывать ОС для передачи сообщений через пайпы
Ответить | Правка | Наверх | Cообщить модератору

231. "Выпуск языка программирования Rust 1.54"  +2 +/
Сообщение от Аноним (246), 30-Июл-21, 05:36 
Концепция не имеет никакого отношения к вопросам производительности. Концепция - одно, реализация - другое.

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

А вот полиморфизм обязателен - это просто другая формулировка принципа контрактов. А без виртуальных функций с соответствующим оверхедом никакого полиморфизма не будет, так что всегда в общем случае будет dispatch table. Называть это вызовом метода или обменом сообщениями - вопрос терминологии, суть та же. Принимать «неизвестные сообщения» (скажем, в специальный метод, как в Ruby), или не давать такое скомпилировать - вопрос дизайна языка, добавить или убрать случай «not found in dispatch table» можно всегда».

Инкапсуляция тоже обязательна, но она может быть и неявно выражена в языке.

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

253. "Выпуск языка программирования Rust 1.54"  –1 +/
Сообщение от Хан (?), 30-Июл-21, 07:48 
Действительно я то думал, че смолтолк так взлетел с его передачей сообщений! Прям да, тормоз был всех времен и народов
Ответить | Правка | Наверх | Cообщить модератору

228. "Выпуск языка программирования Rust 1.54"  +1 +/
Сообщение от Аноним (246), 30-Июл-21, 05:26 
На трёх китах держится плоская земля. А для ООП достаточно понятия контракта и объекта как чёрного ящика, поддерживающего контракты.

Способ реализации в плюсах, позаимствованный из Симулы - это лишь способ реализации. Читайте Алана Кея, короче.

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

259. "Выпуск языка программирования Rust 1.54"  –1 +/
Сообщение от Хан (?), 30-Июл-21, 08:01 
ООП Кея больше подходит для сетей, в чем и нашло себя в виде микросервисов.... но в программе ООП по Кею не канает
Ответить | Правка | Наверх | Cообщить модератору

413. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Аноним (547), 30-Июл-21, 19:12 
Если воспринимать буквально, то не канает.

А если немного переформулировать, и добавить типизации (что намного чаще полезно, чем вредно), то получается:

1. Есть контракты, описывающие по сути сигнатуры методов,
2. Есть объекты, которые снаружи "черные ящики", о которых известно, что они поддерживают определенные контракты,
3. Нет привязки к конкретным объектам, есть привязка к контрактам.

Тогда внезапно получается, что:
1. Инксапсуляция нужна ("черный ящик", во внутренности которого не лезем),
2. Полиморфизм нужен (привязка к контрактам, конкретный объект не важен),
3. А вот наследование вообще мимо. И, действительно, наследование всегда заменяется композицией, и зачастую в языках, где есть наследование, композиция предпочтительнее (см. composite reuse principle).

При этом и Rust, и Go получаются вполне себе ООП.

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

415. "Выпуск языка программирования Rust 1.54"  +/
Сообщение от Аноним (547), 30-Июл-21, 19:18 
Другими словами, представь себе, что в С++ ты можешь наследоваться только от pure abstract классов. После чего, чтобы не городить кучу микрообъектов и ручное делегирование, добавим трейты как в Scala.

Что-то принципиально изменилось? Да ничего.

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

282. "Выпуск языка программирования Rust 1.54"  +1 +/
Сообщение от n00by (ok), 30-Июл-21, 09:12 
> Нормальный синтаксис, просто для некоторых незнакомый и непривычный, потому что нет опыта
> с ML-языками например.

Это не синтаксис. Когда вместо return пишется просто значение - в случае ML это семантика. Получается, что Rust исходно функциональный с императивными возможностями. Отсюда все споры и отторжение его как "замены Си".

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

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

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




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

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