Size: a a a

Язык программирования Julia / Julia programming language

2020 December 23

АО

Андрей Оськин... in Язык программирования Julia / Julia programming language
Vladimir Shashkin
Если совместить всю дискуссию с процитированным постом, то получается, что Джулия - язык "типовых пиратов" или для "типового пиратства". Забавно звучит.
Почему? Type piracy это редкий и не поощряемый побочный эффект.
источник

АО

Андрей Оськин... in Язык программирования Julia / Julia programming language
Multiple dispatch это мощный инструмент. Это как нож: им можно поехать хлеб, но можно показаться и самому.
источник

AP

Artem Pelenitsyn in Язык программирования Julia / Julia programming language
Интересный пост, спасибо. Немного печально, что у него такая оппозиция: все или ничего, мы или они, МД или ООП, и он говорит, что одно однозначно лучше другого. Из-за того что нет ООП в языке, нет интерфейсов, и поэтому есть только паллиатив "неформальные интерфейсы". Это к примеру.
источник

VS

Vladimir Shashkin in Язык программирования Julia / Julia programming language
Андрей Оськин
Почему? Type piracy это редкий и не поощряемый побочный эффект.
Но Стефан же говорит про то, что можно дописывать методы к не своим классам? И говорит об этом как о преимуществе? Я все верно понял? Или же, "пиратство" это когда и метод не свой и тип не свой?
источник

RS

Roman Samarev in Язык программирования Julia / Julia programming language
“Пиратство” в их понимании несёт меньший негативный окрас, чем у нас. Суть - именно в использовании чужого имени функции для реализации своих методов с чужими же типами. Калька с этого понятия на русский язык явно не годится. Нужен адаптированный ассоциативный термин.
источник

AK

Artem Korzhimanov in Язык программирования Julia / Julia programming language
Не нужно. 90 процентов документации на английском языке. Люди, которых мы будем учить, тоже будут работать в основном с англоязычной литературой. Поэтому крайне желательно, чтобы русская терминология была максимально близко к англоязычной, чтобы не приходилось переучиваться. Тем более, что ничего такого уж страшно некорректного в «пиратстве типов» нет
источник

KT

Kirill Tsaregorodtse... in Язык программирования Julia / Julia programming language
Наверное создатель языка должен быть как раз таким фанатиком убежденным какой-то парадигмы, иначе зачем писать новое )
источник

VI

Vladimir Izotov in Язык программирования Julia / Julia programming language
Artem Pelenitsyn
Интересный пост, спасибо. Немного печально, что у него такая оппозиция: все или ничего, мы или они, МД или ООП, и он говорит, что одно однозначно лучше другого. Из-за того что нет ООП в языке, нет интерфейсов, и поэтому есть только паллиатив "неформальные интерфейсы". Это к примеру.
Для справки. Существует ООП-язык, где можно добавлять методы к чужим классам. Это Котлин. Так что описанное в цитированном сообщении уже не аргумент в дискуссии МД vs ООП.
источник

A

Arthur in Язык программирования Julia / Julia programming language
Экстеншены по сути синтаксический сахар, который позволяет сделать фнукицю с вызовом через dot notation. Ничего нового по сравнению с обычными функциями в них нет
источник

A

Arthur in Язык программирования Julia / Julia programming language
Из доков того же Котлина: By defining an extension, you do not insert new members into a class, but merely make new functions callable with the dot-notation on variables of this type.
источник

A

Arthur in Язык программирования Julia / Julia programming language
Да и в Шарпе они уже давно, ещё до Джулии были
источник

VI

Vladimir Izotov in Язык программирования Julia / Julia programming language
Но expression problem решается?
источник

АО

Андрей Оськин... in Язык программирования Julia / Julia programming language
Artem Pelenitsyn
Интересный пост, спасибо. Немного печально, что у него такая оппозиция: все или ничего, мы или они, МД или ООП, и он говорит, что одно однозначно лучше другого. Из-за того что нет ООП в языке, нет интерфейсов, и поэтому есть только паллиатив "неформальные интерфейсы". Это к примеру.
Хм, там дальше дискуссия в общем-то продолжается и получается немного другой вывод, как мне показалось. Понятие ООП разными людьми расшифровывается по разному и в этом похоже одна из проблем.

Julia (и Лисп до нее) вообще-то вполне ООП языки в том смысле, что они работают с объектами. Другой вопрос, что под ООП подразумевают обязательно язык с классами и свойством, что у любой операции существует один, наиболее важный объект.

Формально, кроме синтаксической записи, разницы между x.f(y) и f(x, y) нет. То есть все концепции ООП можно записать в этой нотации.
источник

RS

Roman Samarev in Язык программирования Julia / Julia programming language
Vladimir Izotov
Для справки. Существует ООП-язык, где можно добавлять методы к чужим классам. Это Котлин. Так что описанное в цитированном сообщении уже не аргумент в дискуссии МД vs ООП.
У Ruby этот механизм называется “mixins/примеси”, а его бездумное использование - “monkey patching”
источник

DP

Dmitry Penzar in Язык программирования Julia / Julia programming language
тогда мы и в пайтон такое можем творить:)
источник

DP

Dmitry Penzar in Язык программирования Julia / Julia programming language
в руби просто чуть удобнее сделано
источник

АО

Андрей Оськин... in Язык программирования Julia / Julia programming language
Vladimir Shashkin
Но Стефан же говорит про то, что можно дописывать методы к не своим классам? И говорит об этом как о преимуществе? Я все верно понял? Или же, "пиратство" это когда и метод не свой и тип не свой?
Да, пиратство это именно когда к чужому типу приписывается чужой метод. Этот плохо, потому что например кто-нибудь другой может сделать то же самое и для конечного пользователя результат использования этого метода станет непредсказуемым: он будет зависеть от того в каком порядке загружаются библиотеки в которых это пиратство определено.

Если ты определяешь свои методы или над своими типами, то это не пиратство.
источник

VI

Vladimir Izotov in Язык программирования Julia / Julia programming language
Какая последовательность загрузки библиотек? Есть же пространства имён и импорт.
источник

АО

Андрей Оськин... in Язык программирования Julia / Julia programming language
Dmitry Penzar
тогда мы и в пайтон такое можем творить:)
Конечно можно. В Пайтоне даже multiple dispatch есть. Другой вопрос, что он не популярен, потому что синтаксис языка и библиотеки вокруг него не сделаны.

Грубо говоря, если тебе нужно numpy и pandas, то тот факт, что в языке есть multiple dispatch тебе не поможет, потому что 90% времени ты все равно будешь обычным подходом пользоваться, а MD будет выглядеть какой-то экзотикой.
источник

A

Arthur in Язык программирования Julia / Julia programming language
Vladimir Izotov
Но expression problem решается?
Не решается, все те же проблемы остаются. Тем более экстеншены же по сути функции, резолв там статический
источник