Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Программирование Новый топик    Ответить
Топик располагается на нескольких страницах: Ctrl  назад   1 2 [3] 4 5 6   вперед  Ctrl      все
 Re: Тяпничная ворчалка и бухтелка по поводу Rust и ООП и типобезопасности  [new]
Изопропил
Member

Откуда:
Сообщений: 31517
mayton
Ящик. Поддон. Тара.

Корзина
23 фев 20, 17:58    [22085511]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничная ворчалка и бухтелка по поводу Rust и ООП и типобезопасности  [new]
booby
Member

Откуда:
Сообщений: 1995
Корзина - для сбора грибов.
Лукошко - для сбора ягод.
А короб с крышкой, в нём, хочешь бумаги, а хочешь - молоко храни.
И всё переносное.
23 фев 20, 18:16    [22085515]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничная ворчалка и бухтелка по поводу Rust и ООП и типобезопасности  [new]
mayton
Member

Откуда: loopback
Сообщений: 47948
Алексей Роза
mayton
Далее. Наследования нет. В стандартной доке я не вижу исчерпывающего теоретического обоснования.
Поэтому ищу ответы на семинарах и конференциях по Rust от смежных специалистов.

Вот щас в данный момент смотрю:

Rust Edinburgh #1 - Simon Brand "How Rust gets polymorphysm right"

наследования нет, конструкторов нет, классов толком нет...
бааа... Так мы же изобрели C

Да. С одной стороны выглядит так будто они что-то из языка выкинули. С другой стороны.

wiki
Rust (англ. rust — ржавчина, произносится [rʌst] — раст) — мультипарадигмальный компилируемый язык программирования общего назначения,
спонсируемый Mozilla Research, сочетающий парадигмы функционального и процедурного программирования с объектной системой, основанной
на типажах, и с управлением памятью через понятие «владения» (систему аффинных типов[en][7], позволяющую обходиться без сборки мусора).
Объектно-ориентированное программирование как таковое языком не поддерживается, но язык позволяет реализовать большинство понятий ООП
при помощи других абстракций
[8].


Опять-же... я не нахожу пока того что подсветил красным цветом в официальной доке https://doc.rust-lang.org/book/

Если кто-то найдет внятное объяснение политического (тык-скыть) курса - буду признателен.
Эти тезисы КМК важны для понимания того куда вообще двигается этот язык и какие цели стоят.

И еще. Типаж - это trait?
23 фев 20, 19:27    [22085539]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничная ворчалка и бухтелка по поводу Rust и ООП и типобезопасности  [new]
booby
Member

Откуда:
Сообщений: 1995
mayton,
да, это уже почти устоялось, что trait - это типаж.
23 фев 20, 19:34    [22085541]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничная ворчалка и бухтелка по поводу Rust и ООП и типобезопасности  [new]
mayton
Member

Откуда: loopback
Сообщений: 47948
+ offtop

Какой типаж
Картинка с другого сайта.
23 фев 20, 19:36    [22085542]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничная ворчалка и бухтелка по поводу Rust и ООП и типобезопасности  [new]
Алексей Роза
Member

Откуда: РФ
Сообщений: 556
wiki
но язык позволяет реализовать большинство понятий ООП
при помощи других абстракций

"большинство понятий ООП" описано в книжке "Design patterns - Elements of reusable Object-Oriented software"
и как он их реализовывает?
про контейнеры уж не спрашиваю, коли там конструкторов нету...
а вектор объектов у него хотя бы есть?

Сообщение было отредактировано: 23 фев 20, 20:42
23 фев 20, 20:42    [22085568]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничная ворчалка и бухтелка по поводу Rust и ООП и типобезопасности  [new]
mayton
Member

Откуда: loopback
Сообщений: 47948
Вектор есть. Вот здесь описан https://doc.rust-lang.org/book/ch08-01-vectors.html
23 фев 20, 20:55    [22085576]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничная ворчалка и бухтелка по поводу Rust и ООП и типобезопасности  [new]
booby
Member

Откуда:
Сообщений: 1995
mayton,
отнюдь.
Весьма контекстная картинка.
Играет роль, используется в роли, требуется борода, иначе не работает.

Причем дважды контекстная - Пуговкин здесь экземпляр системы проверки типов,
во время исполнения опознающий истинность реализации образа.

Вопрос - а в статической системе проверки типов - как выглядит Пуговкин?
23 фев 20, 20:55    [22085577]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничная ворчалка и бухтелка по поводу Rust и ООП и типобезопасности  [new]
mayton
Member

Откуда: loopback
Сообщений: 47948
Пуговкин - off.

Давай лучше по топику.
23 фев 20, 20:59    [22085579]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничная ворчалка и бухтелка по поводу Rust и ООП и типобезопасности  [new]
booby
Member

Откуда:
Сообщений: 1995
а что по топику?
ты подсвечиваешь красным фрагменты, которые либо вообще комментария не требуют,
либо требуют слишком много слов даже от того, кто на самом деле в теме.

Какой смысл вносил автор в "объектно-ориентированное программирование не поддерживается" - лучше бы спросить у автора текста.
Но весьма вероятно, подразумевалось, что слово класс в описании языка не употребляется, нигде нет речи об "экземплярах объектов", понятие "наследование" не используется как синтаксический конструкт.
И что с того?

про "парадигмы функционального" примерно понятно - переменные иммутабельны по умолчанию, есть лямбды и замыкания,
все это традиционно относят к "парадигмам функционального".


а "политический курс" я вижу примерно так:
технически заменить с++, выкинув "объектную ориентированность", но сохранив zero cors abstractions при статической типизации.

вот как мне кажется, выглядело самоосознание c++ в начале 21 века:
- нам уже понятно, что "ооп не нужен", но он казался нам таким привлекательным, что мы его сохраним, даже если его никто не использует.
- нам остро не хватает концепций и модулей - это точно будем допиливать, пока живы
- нам уже понятно, что сборщик мусора не нужен для "правильно написанной" программы, независимо, от того, использует оно "ооп" или нет. У правильно спроектированного объекта всё правильно освобождается автоматически, все RAII у нас для этого есть.
- хорошо бы нарастить мышцу "безопасного программирования" в части гарантированного исключения переполнения буфера,
исключить memory leak из-потерянных ссылок и крахи обращения к памяти по висячим ссылкам.
- да, еще кому-то что-то про сети, визуалку и параллельные вычисления надо, но это, по большей части, вещи, внешние, библиотечные, как нам кажется, потому второстепенные.

Как отвечает rust (имхо):
- хорошо, что вам "ооп не нужен" - тогда у нас его сразу и не будет
- сейчас (в 2009м) вы еще сами не договорились, что считать концепциями, и как точно их есть, а у нас на этом месте будут traits (хотя само слово это не совсем точно для этого контекста).
- ага, вы говорите, что следующие оба два пункта обслуживаются правильной и аккуратной передачей владения объектом?
во, вот это нам точно надо, и правила передачи владения... кхм... о - объектом памяти, мы прямо в синтаксис языка вошьем.
(имхо, содержательно, именно это и есть центральный пункт и цель всего проекта)
- так-так, там в вашей последней корзине, кажется, что-то полезное завалялось...
а... мы помним, глядя на кого, вы свои обобщения в язык "внедряли". У тех ребят еще "легковесные таски" завалялись, вот их мы себе тоже сразу возьмём, потому что мы "для интернета", пока вы откладываете это на потом.
23 фев 20, 22:37    [22085621]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничная ворчалка и бухтелка по поводу Rust и ООП и типобезопасности  [new]
mayton
Member

Откуда: loopback
Сообщений: 47948
booby

Как отвечает rust (имхо):
- хорошо, что вам "ооп не нужен" - тогда у нас его сразу и не будет
- сейчас (в 2009м) вы еще сами не договорились, что считать концепциями, и как точно их есть, а у нас на этом месте будут traits (хотя само слово это не совсем точно для этого контекста).
- ага, вы говорите, что следующие оба два пункта обслуживаются правильной и аккуратной передачей владения объектом?
во, вот это нам точно надо, и правила передачи владения... кхм... о - объектом памяти, мы прямо в синтаксис языка вошьем.
(имхо, содержательно, именно это и есть центральный пункт и цель всего проекта)
- так-так, там в вашей последней корзине, кажется, что-то полезное завалялось...
а... мы помним, глядя на кого, вы свои обобщения в язык "внедряли". У тех ребят еще "легковесные таски" завалялись, вот их мы себе тоже сразу возьмём, потому что мы "для интернета", пока вы откладываете это на потом.

По поводу передач владения и прочее.

Мне интересно. Какова будет "цена вопроса"? Тоесть насколько глубоко программист должен решать этот
вопрос чтобы код считался безопасным по memory. Тоесть без утечек и попыток "чиркнуть" по памяти чужого
объекта.
23 фев 20, 22:50    [22085628]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничная ворчалка и бухтелка по поводу Rust и ООП и типобезопасности  [new]
booby
Member

Откуда:
Сообщений: 1995
mayton,

смотря что считать "ценой вопроса".
rust считает, что у вопроса нет цены. Просто используешь rust за бесплатно, и в этом месте он за бесплатно безопасен.

C++ говорит - у нас теперь есть безопасное подмножество, используя которое вы не сможете выстрелить себе в ногу.
Цена примерна та же - в минимуме - это цена изучения и освоения нового языка/ нового подмножества существующего языка.

У вопроса о цене много разных граней может оказаться, как у хорошего бриллианта.

Сообщение было отредактировано: 23 фев 20, 23:28
23 фев 20, 23:26    [22085651]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничная ворчалка и бухтелка по поводу Rust и ООП и типобезопасности  [new]
mayton
Member

Откуда: loopback
Сообщений: 47948
Я пока еще смотрю конфы. Сейчас - RustConf 2910 - Bringing Rust Home

Фрагмент слайда
Rough rule of thumb. A new language need to be 10 times better at something than any of the existing languages to make it worth the effort of introducing and support it.

- Rust detects large classes of serious bugs at compile times
- The cost of a bug at compile time is orders of magnitude less than in productions


Rust детектирует классы серъезных багов в фазе компилляции. И еще вдогонку очевидный тезис
о цене фикса этого бага. Тут как-бы и ежу понятно.

Но фраза выше - заявляет о том что новый язык должен быть на порядок лучше чем существующие.
Очевидно что идет попытка доказать что существующие языки (Java/C++/Python) в этом смысле хуже.
23 фев 20, 23:42    [22085656]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничная ворчалка и бухтелка по поводу Rust и ООП и типобезопасности  [new]
booby
Member

Откуда:
Сообщений: 1995
ну, не на Java/Pyton они замахиваются, и не с ними сравниваются. Об этом просто забудь навсегда.
Для них оказаться в одной категории с Java/Pyton, это в лучшем случае сделать красивую мину в момент признания поражения.
И я бы это не за попытку доказать, а за оговорку на случай признания поражения принимал.
Не в том их радость, чтобы к ним люди с Java приходили (хотя и в этом тоже в период начального создания
самовоспроизводящегося коммюнити)
, а в том, чтобы плюсовики побросали свои знамёна,
и стройно сформировали новые ряды ржавых программистов.

PS
Java, на моё удивление, сама, как пластилин, мнётся, и с большими видами на будущее, после смены владельцев и изгнания
из проекта первосоздателей.

Rust пережил фазу изгнания из проекта своих создателей почти мгновенно, за два-три года,
и двинулся примерно перпендикулярно первоначальным планам, но само по себе это не доказательство непременной живучести.
Не волею божьей, а волею пославших разработчиков жён, языки программирования развиваются.
24 фев 20, 00:42    [22085692]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничная ворчалка и бухтелка по поводу Rust и ООП и типобезопасности  [new]
booby
Member

Откуда:
Сообщений: 1995
что до статической проверки типов в момент компиляции - по тому, что ты говоришь, похоже, что еще не смотрел посвященных этому вопросу с cppcon-2019 роликов. Вот советую это сделать.

Это гонка. И гонка не только с rust, но по тому, как вопрос активизируется, и как реагируют
выступающие на упоминание rust в вопросах, неявно с ним в первую очередь, как текущим предметом жёсткого хайпа.

Прочие потенциальные конкуренты слишком нишевые, а со стороны Java только JIT мог бы серьёзно нервировать, но пока Java
не жилец без gc, с++ может чувствовать себя совершенно комфортно, и даже не реагировать на попытки Java ускориться в развитии.
24 фев 20, 00:54    [22085698]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничная ворчалка и бухтелка по поводу Rust и ООП и типобезопасности  [new]
mayton
Member

Откуда: loopback
Сообщений: 47948
Вот нашел более менее внятное сравнение С++/Rust.

RustConf 2019 - The Symbiotic Relationship of C++ and Rust


+

24 фев 20, 00:54    [22085699]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничная ворчалка и бухтелка по поводу Rust и ООП и типобезопасности  [new]
mayton
Member

Откуда: loopback
Сообщений: 47948
booby
что до статической проверки типов в момент компиляции - по тому, что ты говоришь, похоже, что еще не смотрел посвященных этому вопросу с cppcon-2019 роликов. Вот советую это сделать.

В CppCon2019 плейлист на 160 видосов.

Ты хочешь чтобы я смотрелл до следующего года? Что там особо важное? Хотя-бы на 1-2 часа.
24 фев 20, 01:08    [22085701]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничная ворчалка и бухтелка по поводу Rust и ООП и типобезопасности  [new]
mayton
Member

Откуда: loopback
Сообщений: 47948
booby
ну, не на Java/Pyton они замахиваются, и не с ними сравниваются. Об этом просто забудь навсегда.
Для них оказаться в одной категории с Java/Pyton, это в лучшем случае сделать красивую мину в момент признания поражения.

Это я просто комментировал этого бородача.

+


24 фев 20, 01:13    [22085703]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничная ворчалка и бухтелка по поводу Rust и ООП и типобезопасности  [new]
mayton
Member

Откуда: loopback
Сообщений: 47948
booby

Java, на моё удивление, сама, как пластилин, мнётся, и с большими видами на будущее, после смены владельцев и изгнания
из проекта первосоздателей.

Java как виртуальная машина достаточно консервативна. Она до сих пор совместима на уровне байткода с 1.1.
И это правда.

А наличие владельца роли не играет. Существует теневое правительство в виде JCP. Благодаря ему Java - надежна
и лидирует в ентерпрайзах. Очень часто муссируется вопрос что будет если Оракл то или Оракл-сё? Купит-продаст
или запретит. Да по большему счету - по барабану. Пока существует OpenJDK. Этот джин уже выпущен из бутылки
так же как и Linux в 90х.
24 фев 20, 01:26    [22085709]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничная ворчалка и бухтелка по поводу Rust и ООП и типобезопасности  [new]
mayton
Member

Откуда: loopback
Сообщений: 47948
booby

Прочие потенциальные конкуренты слишком нишевые, а со стороны Java только JIT мог бы серьёзно нервировать, но пока Java
не жилец без gc, с++ может чувствовать себя совершенно комфортно, и даже не реагировать на попытки Java ускориться в развитии.

Она и никогда не будет жилец без GC. Исполнительная среда и язык - неотделимы. Нельзя вообще рассматривать этот язык
без GC т.к. при его разработке ставились определённые цели и они были достигнуты именно так.
24 фев 20, 01:31    [22085710]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничная ворчалка и бухтелка по поводу Rust и ООП и типобезопасности  [new]
Basil A. Sidorov
Member

Откуда:
Сообщений: 10413
mayton
Исполнительная среда и язык - неотделимы.
Отделимы. Задача, мягко, нетривиальная, но ничто не мешает использовать JVM с совершенно отдельным генератором байт-кода и без Java SE API.
24 фев 20, 09:21    [22085743]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничная ворчалка и бухтелка по поводу Rust и ООП и типобезопасности  [new]
mayton
Member

Откуда: loopback
Сообщений: 47948
В вопросах сравнения Rust с чем-то неизвестным мы неизбежно будем обсуждать C++ и Java.

Но если сильно углубляться - то лучше создать отдельный топик IMHO.
24 фев 20, 10:52    [22085757]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничная ворчалка и бухтелка по поводу Rust и ООП и типобезопасности  [new]
Алексей Роза
Member

Откуда: РФ
Сообщений: 556
mayton
Rough rule of thumb. A new language need to be 10 times better at something than any of the existing languages to make it worth the effort of introducing and support it.

ну пусть Go это расскажут.
Google создал Go для одной глобальной цели - чтобы его программисты могли быстро программировать.
Они снизили порог вхождения до минимума, при этом оставив производительность на около-максимуме.
Там конечно му**к с комплексом бога делал оформление, как в микрософте - взял и навводил новых стандартов, вместо тех, к которым все привыкли.
и поэтому там массив инициализируется как-то так:
s := []int{2, 3, 5, 7, 11, 13}

но и хвост с ним. Язык таки зашёл и свою функцию выполняет на 200%. А главное - он всего в 1.5 раза медленее C/C++! В основном потому, что вся эта простота (в частности GC) - не бесплатна. Но учитывая возросшую скорость разработки - сойдёт.
Так что если у ржавого корыта (или коробки, или чё там?) выйдет стать круче и проще Go...
...то он всё равно на хер никому не нужен будет.
Я так думаю.
24 фев 20, 11:16    [22085766]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничная ворчалка и бухтелка по поводу Rust и ООП и типобезопасности  [new]
mayton
Member

Откуда: loopback
Сообщений: 47948
Алексей Роза

но и хвост с ним.

Wow-wow... легче с метафорами. А то он обидется.
24 фев 20, 12:05    [22085773]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничная ворчалка и бухтелка по поводу Rust и ООП и типобезопасности  [new]
mayton
Member

Откуда: loopback
Сообщений: 47948
Алексей Роза

А главное - он всего в 1.5 раза медленее C/C++! В основном потому, что вся эта простота (в частности GC) - не бесплатна. Но учитывая возросшую скорость разработки - сойдёт.

Смотря на чём сравнивать. Я думаю что основные фичи связанные с I/O во многих ЯП уже достаточно хорошо вылизаны
чтобы не вызывать явных Bottlenecks. Тем более что Golang позиционировался как замена Python/C++ в гугловских
микросервисах. Я думаю что с сетью он работает достатончно быстро.

Но вот с качеством оптимизатора - там не очень. Синтетический и простой тест рендеринга 3Д-графики.
(интенсивное использование double-чисел в виде вектора или tuple с публикацией на выходе ) показывает что Golang во много больше
медленнее чем С++. А C++ и Rust идут примерно вровень.

С++ - 9s
Golang - 43s
24 фев 20, 12:17    [22085775]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 2 [3] 4 5 6   вперед  Ctrl      все
Все форумы / Программирование Ответить