|
Тяпничная ворчалка и бухтелка по поводу Rust и ООП и типобезопасности
|
|||
---|---|---|---|
#18+
mayton Ящик. Поддон. Тара. Корзина ... |
|||
:
Нравится:
Не нравится:
|
|||
23.02.2020, 17:58 |
|
Тяпничная ворчалка и бухтелка по поводу Rust и ООП и типобезопасности
|
|||
---|---|---|---|
#18+
Корзина - для сбора грибов. Лукошко - для сбора ягод. А короб с крышкой, в нём, хочешь бумаги, а хочешь - молоко храни. И всё переносное. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.02.2020, 18:16 |
|
Тяпничная ворчалка и бухтелка по поводу Rust и ООП и типобезопасности
|
|||
---|---|---|---|
#18+
Алексей Роза mayton Далее. Наследования нет. В стандартной доке я не вижу исчерпывающего теоретического обоснования. Поэтому ищу ответы на семинарах и конференциях по Rust от смежных специалистов. Вот щас в данный момент смотрю: Rust Edinburgh #1 - Simon Brand "How Rust gets polymorphysm right" наследования нет, конструкторов нет, классов толком нет... бааа... Так мы же изобрели C Да. С одной стороны выглядит так будто они что-то из языка выкинули. С другой стороны. wikiRust (англ. rust — ржавчина, произносится [rʌst] — раст) — мультипарадигмальный компилируемый язык программирования общего назначения, спонсируемый Mozilla Research, сочетающий парадигмы функционального и процедурного программирования с объектной системой, основанной на типажах, и с управлением памятью через понятие «владения» (систему аффинных типов[en][7], позволяющую обходиться без сборки мусора). Объектно-ориентированное программирование как таковое языком не поддерживается, но язык позволяет реализовать большинство понятий ООП при помощи других абстракций[8]. Опять-же... я не нахожу пока того что подсветил красным цветом в официальной доке https://doc.rust-lang.org/book/ Если кто-то найдет внятное объяснение политического (тык-скыть) курса - буду признателен. Эти тезисы КМК важны для понимания того куда вообще двигается этот язык и какие цели стоят. И еще. Типаж - это trait? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.02.2020, 19:27 |
|
Тяпничная ворчалка и бухтелка по поводу Rust и ООП и типобезопасности
|
|||
---|---|---|---|
#18+
mayton, да, это уже почти устоялось, что trait - это типаж. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.02.2020, 19:34 |
|
Тяпничная ворчалка и бухтелка по поводу Rust и ООП и типобезопасности
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
23.02.2020, 19:36 |
|
Тяпничная ворчалка и бухтелка по поводу Rust и ООП и типобезопасности
|
|||
---|---|---|---|
#18+
wiki но язык позволяет реализовать большинство понятий ООП при помощи других абстракций "большинство понятий ООП" описано в книжке "Design patterns - Elements of reusable Object-Oriented software" и как он их реализовывает? про контейнеры уж не спрашиваю, коли там конструкторов нету... а вектор объектов у него хотя бы есть? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.02.2020, 20:42 |
|
Тяпничная ворчалка и бухтелка по поводу Rust и ООП и типобезопасности
|
|||
---|---|---|---|
#18+
Вектор есть. Вот здесь описан https://doc.rust-lang.org/book/ch08-01-vectors.html ... |
|||
:
Нравится:
Не нравится:
|
|||
23.02.2020, 20:55 |
|
Тяпничная ворчалка и бухтелка по поводу Rust и ООП и типобезопасности
|
|||
---|---|---|---|
#18+
mayton, отнюдь. Весьма контекстная картинка. Играет роль, используется в роли, требуется борода, иначе не работает. Причем дважды контекстная - Пуговкин здесь экземпляр системы проверки типов, во время исполнения опознающий истинность реализации образа. Вопрос - а в статической системе проверки типов - как выглядит Пуговкин? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.02.2020, 20:55 |
|
Тяпничная ворчалка и бухтелка по поводу Rust и ООП и типобезопасности
|
|||
---|---|---|---|
#18+
Пуговкин - off. Давай лучше по топику. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.02.2020, 20:59 |
|
Тяпничная ворчалка и бухтелка по поводу Rust и ООП и типобезопасности
|
|||
---|---|---|---|
#18+
а что по топику? ты подсвечиваешь красным фрагменты, которые либо вообще комментария не требуют, либо требуют слишком много слов даже от того, кто на самом деле в теме. Какой смысл вносил автор в "объектно-ориентированное программирование не поддерживается" - лучше бы спросить у автора текста. Но весьма вероятно, подразумевалось, что слово класс в описании языка не употребляется, нигде нет речи об "экземплярах объектов", понятие "наследование" не используется как синтаксический конструкт. И что с того? про "парадигмы функционального" примерно понятно - переменные иммутабельны по умолчанию, есть лямбды и замыкания, все это традиционно относят к "парадигмам функционального". а "политический курс" я вижу примерно так: технически заменить с++, выкинув "объектную ориентированность", но сохранив zero cors abstractions при статической типизации. вот как мне кажется, выглядело самоосознание c++ в начале 21 века: - нам уже понятно, что "ооп не нужен", но он казался нам таким привлекательным, что мы его сохраним, даже если его никто не использует. - нам остро не хватает концепций и модулей - это точно будем допиливать, пока живы - нам уже понятно, что сборщик мусора не нужен для "правильно написанной" программы, независимо, от того, использует оно "ооп" или нет. У правильно спроектированного объекта всё правильно освобождается автоматически, все RAII у нас для этого есть. - хорошо бы нарастить мышцу "безопасного программирования" в части гарантированного исключения переполнения буфера, исключить memory leak из-потерянных ссылок и крахи обращения к памяти по висячим ссылкам. - да, еще кому-то что-то про сети, визуалку и параллельные вычисления надо, но это, по большей части, вещи, внешние, библиотечные, как нам кажется, потому второстепенные. Как отвечает rust (имхо): - хорошо, что вам "ооп не нужен" - тогда у нас его сразу и не будет - сейчас (в 2009м) вы еще сами не договорились, что считать концепциями, и как точно их есть, а у нас на этом месте будут traits (хотя само слово это не совсем точно для этого контекста). - ага, вы говорите, что следующие оба два пункта обслуживаются правильной и аккуратной передачей владения объектом? во, вот это нам точно надо, и правила передачи владения... кхм... о - объектом памяти, мы прямо в синтаксис языка вошьем. (имхо, содержательно, именно это и есть центральный пункт и цель всего проекта) - так-так, там в вашей последней корзине, кажется, что-то полезное завалялось... а... мы помним, глядя на кого, вы свои обобщения в язык "внедряли". У тех ребят еще "легковесные таски" завалялись, вот их мы себе тоже сразу возьмём, потому что мы "для интернета", пока вы откладываете это на потом. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.02.2020, 22:37 |
|
Тяпничная ворчалка и бухтелка по поводу Rust и ООП и типобезопасности
|
|||
---|---|---|---|
#18+
booby Как отвечает rust (имхо): - хорошо, что вам "ооп не нужен" - тогда у нас его сразу и не будет - сейчас (в 2009м) вы еще сами не договорились, что считать концепциями, и как точно их есть, а у нас на этом месте будут traits (хотя само слово это не совсем точно для этого контекста). - ага, вы говорите, что следующие оба два пункта обслуживаются правильной и аккуратной передачей владения объектом? во, вот это нам точно надо, и правила передачи владения... кхм... о - объектом памяти, мы прямо в синтаксис языка вошьем. (имхо, содержательно, именно это и есть центральный пункт и цель всего проекта) - так-так, там в вашей последней корзине, кажется, что-то полезное завалялось... а... мы помним, глядя на кого, вы свои обобщения в язык "внедряли". У тех ребят еще "легковесные таски" завалялись, вот их мы себе тоже сразу возьмём, потому что мы "для интернета", пока вы откладываете это на потом. По поводу передач владения и прочее. Мне интересно. Какова будет "цена вопроса"? Тоесть насколько глубоко программист должен решать этот вопрос чтобы код считался безопасным по memory. Тоесть без утечек и попыток "чиркнуть" по памяти чужого объекта. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.02.2020, 22:50 |
|
Тяпничная ворчалка и бухтелка по поводу Rust и ООП и типобезопасности
|
|||
---|---|---|---|
#18+
mayton, смотря что считать "ценой вопроса". rust считает, что у вопроса нет цены. Просто используешь rust за бесплатно, и в этом месте он за бесплатно безопасен. C++ говорит - у нас теперь есть безопасное подмножество, используя которое вы не сможете выстрелить себе в ногу. Цена примерна та же - в минимуме - это цена изучения и освоения нового языка/ нового подмножества существующего языка. У вопроса о цене много разных граней может оказаться, как у хорошего бриллианта. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.02.2020, 23:26 |
|
Тяпничная ворчалка и бухтелка по поводу Rust и ООП и типобезопасности
|
|||
---|---|---|---|
#18+
Я пока еще смотрю конфы. Сейчас - 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.02.2020, 23:42 |
|
Тяпничная ворчалка и бухтелка по поводу Rust и ООП и типобезопасности
|
|||
---|---|---|---|
#18+
ну, не на Java/Pyton они замахиваются, и не с ними сравниваются. Об этом просто забудь навсегда. Для них оказаться в одной категории с Java/Pyton, это в лучшем случае сделать красивую мину в момент признания поражения. И я бы это не за попытку доказать, а за оговорку на случай признания поражения принимал. Не в том их радость, чтобы к ним люди с Java приходили (хотя и в этом тоже в период начального создания самовоспроизводящегося коммюнити), а в том, чтобы плюсовики побросали свои знамёна, и стройно сформировали новые ряды ржавых программистов. PS Java, на моё удивление, сама, как пластилин, мнётся, и с большими видами на будущее, после смены владельцев и изгнания из проекта первосоздателей. Rust пережил фазу изгнания из проекта своих создателей почти мгновенно, за два-три года, и двинулся примерно перпендикулярно первоначальным планам, но само по себе это не доказательство непременной живучести. Не волею божьей, а волею пославших разработчиков жён, языки программирования развиваются. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.02.2020, 00:42 |
|
Тяпничная ворчалка и бухтелка по поводу Rust и ООП и типобезопасности
|
|||
---|---|---|---|
#18+
что до статической проверки типов в момент компиляции - по тому, что ты говоришь, похоже, что еще не смотрел посвященных этому вопросу с cppcon-2019 роликов. Вот советую это сделать. Это гонка. И гонка не только с rust, но по тому, как вопрос активизируется, и как реагируют выступающие на упоминание rust в вопросах, неявно с ним в первую очередь, как текущим предметом жёсткого хайпа. Прочие потенциальные конкуренты слишком нишевые, а со стороны Java только JIT мог бы серьёзно нервировать, но пока Java не жилец без gc, с++ может чувствовать себя совершенно комфортно, и даже не реагировать на попытки Java ускориться в развитии. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.02.2020, 00:54 |
|
Тяпничная ворчалка и бухтелка по поводу Rust и ООП и типобезопасности
|
|||
---|---|---|---|
#18+
Вот нашел более менее внятное сравнение С++/Rust. RustConf 2019 - The Symbiotic Relationship of C++ and Rust [spoiler] ... |
|||
:
Нравится:
Не нравится:
|
|||
24.02.2020, 00:54 |
|
Тяпничная ворчалка и бухтелка по поводу Rust и ООП и типобезопасности
|
|||
---|---|---|---|
#18+
booby что до статической проверки типов в момент компиляции - по тому, что ты говоришь, похоже, что еще не смотрел посвященных этому вопросу с cppcon-2019 роликов. Вот советую это сделать. В CppCon2019 плейлист на 160 видосов. Ты хочешь чтобы я смотрелл до следующего года? Что там особо важное? Хотя-бы на 1-2 часа. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.02.2020, 01:08 |
|
Тяпничная ворчалка и бухтелка по поводу Rust и ООП и типобезопасности
|
|||
---|---|---|---|
#18+
booby ну, не на Java/Pyton они замахиваются, и не с ними сравниваются. Об этом просто забудь навсегда. Для них оказаться в одной категории с Java/Pyton, это в лучшем случае сделать красивую мину в момент признания поражения. Это я просто комментировал этого бородача. [spoiler] ... |
|||
:
Нравится:
Не нравится:
|
|||
24.02.2020, 01:13 |
|
Тяпничная ворчалка и бухтелка по поводу Rust и ООП и типобезопасности
|
|||
---|---|---|---|
#18+
booby Java, на моё удивление, сама, как пластилин, мнётся, и с большими видами на будущее, после смены владельцев и изгнания из проекта первосоздателей. Java как виртуальная машина достаточно консервативна. Она до сих пор совместима на уровне байткода с 1.1. И это правда. А наличие владельца роли не играет. Существует теневое правительство в виде JCP. Благодаря ему Java - надежна и лидирует в ентерпрайзах. Очень часто муссируется вопрос что будет если Оракл то или Оракл-сё? Купит-продаст или запретит. Да по большему счету - по барабану. Пока существует OpenJDK. Этот джин уже выпущен из бутылки так же как и Linux в 90х. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.02.2020, 01:26 |
|
Тяпничная ворчалка и бухтелка по поводу Rust и ООП и типобезопасности
|
|||
---|---|---|---|
#18+
booby Прочие потенциальные конкуренты слишком нишевые, а со стороны Java только JIT мог бы серьёзно нервировать, но пока Java не жилец без gc, с++ может чувствовать себя совершенно комфортно, и даже не реагировать на попытки Java ускориться в развитии. Она и никогда не будет жилец без GC. Исполнительная среда и язык - неотделимы. Нельзя вообще рассматривать этот язык без GC т.к. при его разработке ставились определённые цели и они были достигнуты именно так. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.02.2020, 01:31 |
|
Тяпничная ворчалка и бухтелка по поводу Rust и ООП и типобезопасности
|
|||
---|---|---|---|
#18+
mayton Исполнительная среда и язык - неотделимы. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.02.2020, 09:21 |
|
Тяпничная ворчалка и бухтелка по поводу Rust и ООП и типобезопасности
|
|||
---|---|---|---|
#18+
В вопросах сравнения Rust с чем-то неизвестным мы неизбежно будем обсуждать C++ и Java. Но если сильно углубляться - то лучше создать отдельный топик IMHO. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.02.2020, 10:52 |
|
Тяпничная ворчалка и бухтелка по поводу Rust и ООП и типобезопасности
|
|||
---|---|---|---|
#18+
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 для одной глобальной цели - чтобы его программисты могли быстро программировать. Они снизили порог вхождения до минимума, при этом оставив производительность на около-максимуме. Там конечно му**к с комплексом бога делал оформление, как в микрософте - взял и навводил новых стандартов, вместо тех, к которым все привыкли. и поэтому там массив инициализируется как-то так: Код: plaintext 1.
но и хвост с ним. Язык таки зашёл и свою функцию выполняет на 200%. А главное - он всего в 1.5 раза медленее C/C++! В основном потому, что вся эта простота (в частности GC) - не бесплатна. Но учитывая возросшую скорость разработки - сойдёт. Так что если у ржавого корыта (или коробки, или чё там?) выйдет стать круче и проще Go... ...то он всё равно на хер никому не нужен будет. Я так думаю. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.02.2020, 11:16 |
|
Тяпничная ворчалка и бухтелка по поводу Rust и ООП и типобезопасности
|
|||
---|---|---|---|
#18+
Алексей Роза но и хвост с ним. Wow-wow... легче с метафорами. А то он обидется. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.02.2020, 12:05 |
|
Тяпничная ворчалка и бухтелка по поводу Rust и ООП и типобезопасности
|
|||
---|---|---|---|
#18+
Алексей Роза А главное - он всего в 1.5 раза медленее C/C++! В основном потому, что вся эта простота (в частности GC) - не бесплатна. Но учитывая возросшую скорость разработки - сойдёт. Смотря на чём сравнивать. Я думаю что основные фичи связанные с I/O во многих ЯП уже достаточно хорошо вылизаны чтобы не вызывать явных Bottlenecks. Тем более что Golang позиционировался как замена Python/C++ в гугловских микросервисах. Я думаю что с сетью он работает достатончно быстро. Но вот с качеством оптимизатора - там не очень. Синтетический и простой тест рендеринга 3Д-графики. (интенсивное использование double-чисел в виде вектора или tuple с публикацией на выходе ) показывает что Golang во много больше медленнее чем С++. А C++ и Rust идут примерно вровень. С++ - 9s Golang - 43s ... |
|||
:
Нравится:
Не нравится:
|
|||
24.02.2020, 12:17 |
|
|
start [/forum/topic.php?fid=16&msg=39930007&tid=1339580]: |
0ms |
get settings: |
26ms |
get forum list: |
16ms |
check forum access: |
5ms |
check topic access: |
5ms |
track hit: |
52ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
497ms |
get tp. blocked users: |
2ms |
others: | 315ms |
total: | 933ms |
0 / 0 |