Size: a a a

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

2020 June 20

AK

Andrey Konovalov in Язык программирования Julia / Julia programming language
Roman Samarev
Руби имеет простую модель программирования, по сути, впитавшую идеи 90-х. Это и истинная объектность, и функциональность. Но эта модель оказалась чересчур неожиданной. Проблема в том, что его простые идеи часто воспринимаются через призму других, что особенно неприятно, императивных языков программирования.
Руби - просто отличный язык. Не очень понятно, почему он стал вымирать. У меня есть только одна гипотеза, что это это из-за проблем интерпретатора, он очень медленным считается
источник

АО

Андрей Оськин... in Язык программирования Julia / Julia programming language
А можно расшифровать, что такое истинная объектность и в чем неожиданность модели руби (надеюсь никто в чате не против этого). У меня нет специального cs образования, поэтому некоторые фундаментальные вещи не выглядят такими простыми. Так что если не слишком сложно объяснить, было бы очень интересно.
источник

RS

Roman Samarev in Язык программирования Julia / Julia programming language
Сейчас, я думаю, что в состоянии быстро объяснить его концепции, но когда-то, после 10 лет на C++, я его тоже довольно плохо воспринимал. По сути, необычно в нём:
- любая программа должна восприниматься как текст на естественном языке (отсюда синтаксическая избыточность)
- всё является объектом, включая любой код - он является экземпляром Proc
- конструкция do..end  или {} - не операторный блок, а блок в понимании хранимого объекта, который когда-нибудь будет вызван (или не вызван)
- любая конструкция, которая содержит do…end - это метод, который активируется с блоком. Включая if … end, while…end и пр. По их модели, скорее следует воспринимать как if() do … end, while() do…end
- код, написанный где угодно - это всего лишь код, который будет исполнен. Потому class Abc…end, def abc ….  end для него тоже - методы с блоком
источник

RS

Roman Samarev in Язык программирования Julia / Julia programming language
последние пункты - скорее смысловое уточнение. А вообще, если кому интересно, у меня три полуторачасовые лекции есть именно по Ruby 🙂
источник

AK

Andrey Konovalov in Язык программирования Julia / Julia programming language
Viktor Maslov
Так вот и я к тому. У меня за плечами паскаль и делфи, Си и Си крест крест (совсем давно совсем немного), матлаб и матлаб подобные языки (сайлаб и октав), начал внимательно смотреть джулию за много чего приятного. Повторюсь - я далек от сферы IT, но при этом кручусь в инженерии и науке, поэтому моя стезя математика, анализ данных (статистическая обработка и пр.). Мне вполне хватало сайлаба. Начал искать новую работу, а в вакансиях практически везде питон - начал его смотреть и тут как высадка на марс - странные конструкции, куча библиотек и ну по мелочам. Мне он кажется немного диким и сумбурным. С учетом того что я начинал с Паскаля (а питон как я понимаю должен научить программировать) мне он кажется очень беспорядрочным и не логичнын. ИМХО. А популярность объяснима - он действительно не сложный
Для математики можно начать с R и продолжить писать на Julia. С ходу Julia сложновата для понимания, R ощутимо проще, больше заточен под прикладников, но от науки.
источник

RS

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

KT

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

KT

Kirill Tsaregorodtse... in Язык программирования Julia / Julia programming language
S3, S4 какие-то не простые показались, я так и не вникал
источник

RS

Roman Samarev in Язык программирования Julia / Julia programming language
Kirill Tsaregorodtsev
Мне было как раз тяжело R изучать, именно из-за того, что надо не в терминах циклов думать, а в терминах векторизации
смена парадигмы. Проблема с Ruby тоже заключается в том, что те, кто приходят из императивных языков, должны ломать сознание
источник

AK

Andrey Konovalov in Язык программирования Julia / Julia programming language
Kirill Tsaregorodtsev
Мне было как раз тяжело R изучать, именно из-за того, что надо не в терминах циклов думать, а в терминах векторизации
По R есть очень простые и запоминающиеся туториалы. Если нет огромного опыта работы с обычными языками , R очень легко понять.
источник

AK

Andrey Konovalov in Язык программирования Julia / Julia programming language
Roman Samarev
смена парадигмы. Проблема с Ruby тоже заключается в том, что те, кто приходят из императивных языков, должны ломать сознание
Ну хз. Я вот пришёл в развитие Ruby, Crystal, и ничего не поломалось.
источник

RS

Roman Samarev in Язык программирования Julia / Julia programming language
зависит от предыдущего опыта. Из C++ в Ruby - тяжело
источник

RS

Roman Samarev in Язык программирования Julia / Julia programming language
впрочем, в качестве первого языка, я бы вряд ли кому Ruby посоветовал
источник

VM

Viktor Maslov in Язык программирования Julia / Julia programming language
Andrey Konovalov
Для математики можно начать с R и продолжить писать на Julia. С ходу Julia сложновата для понимания, R ощутимо проще, больше заточен под прикладников, но от науки.
С помощью R еще в институте некоторые задачи курса статистической обработки экспериментальных данных решал факультативно. Нас на том курсе мучили пакетом Statistica от StatSoft
источник

RS

Roman Samarev in Язык программирования Julia / Julia programming language
источник

RS

Roman Samarev in Язык программирования Julia / Julia programming language
дополнение к истинной объектности. Все данные по модели Руби - объекты. Любые операции - это метод, вызываемый у конкретного объекта. Результат - или новый объект, или модификация себя самого, но тогда имя должно быть с восклицательным знаком. А любая константа/переменная ссылается на экземпляр
источник

KT

Kirill Tsaregorodtse... in Язык программирования Julia / Julia programming language
такая тема в smalltalk была что ли или в чем-то таком же древнем
источник

RS

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

RS

Roman Samarev in Язык программирования Julia / Julia programming language
просто из современных языков в таком понимании он один
источник

RS

Roman Samarev in Язык программирования Julia / Julia programming language
с другой стороны, за счёт этого максимально упростили модель программирования. Даже создание нового объекта у них - это вызов метода new от объекта типа Class. Например Array.new
источник