Size: a a a

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

2020 September 27

🐙

🐙 in Язык программирования Julia / Julia programming language
Поправьте меня пожалуйста, но разве за счёт "скомпилированности" исплоняющейся джулии мы не получаем, что на этапе выполения тип ей уже известен? Насколько я помню, как раз по этой причине вызывалось долгое перекомпилирование в рантайме, если тип менялся. То есть, в любом случае, для заданного состояния программы она полностью типизированна внутри?  (если ислючить конверсии типов и приведения)
источник

ЕП

Евгений Погребняк... in Язык программирования Julia / Julia programming language
Мне тоже непонятно почему типизация ухудшает скорость исполнения: In many languages with optional type declarations, adding declarations is the principal way to make code run faster. This is not the case in Julia (из доков). Или тут речь именно об исполнении готового кода, а не времени компиляции?
источник

🐙

🐙 in Язык программирования Julia / Julia programming language
Евгений Погребняк
Мне тоже непонятно почему типизация ухудшает скорость исполнения: In many languages with optional type declarations, adding declarations is the principal way to make code run faster. This is not the case in Julia (из доков). Или тут речь именно об исполнении готового кода, а не времени компиляции?
Я этот кусок понял как "Иногда Джулия может выбрать более оптимальный тип, чем вы", например, если она догадается, что можно, скажем, вернуть только треугольную матрицу вместо квадратной.
источник

VG

Viktor G. in Язык программирования Julia / Julia programming language
Явная типизация улучшает производительность только для полей структуры - см. performance tips выше, там по названиям разделов приведены все случаи.
источник

VG

Viktor G. in Язык программирования Julia / Julia programming language
Для аргументов функции отсутствие явной типизации - это скорее всего про указание типов для улучшения читаемости, и про то, чтобы не писать избыточных функций от узких типов.

Например, можете getindex указать c индексом типа Int, а по факту может потребоваться любой из Integer, UnitRange, и вообще Vector{Int}.
Либо можете типов вообще не писать, но тогда будет труднее понять, что делает функция, а позже все равно придется дописать, если появятся разные специализации методов.
источник

VG

Viktor G. in Язык программирования Julia / Julia programming language
Так что типами лучше задавать "ограничения сверху", а в случаях, когда это какой-то сложный набор разных типов в пределах одного метода - лучше вовсе его не указывать, т.к. сам подставится.
источник

AZ

Aleksey Zhdanov in Язык программирования Julia / Julia programming language
Андрей Оськин
Нет, скорее наоборот.
Почему? Или это как-то связано с железом на котором код исполняться долж5н?
источник

AZ

Aleksey Zhdanov in Язык программирования Julia / Julia programming language
Дмитрий
В каких случаях излишняя типизация замедлит работу программы? Просто как я представляю, если я не определил переменной тип, то при работе программа должна сама это сделать, а если я тип определил, то освободил программу от этого. Поэтому в моей голове типизация = ускорение
Тут вы немного не правы, если типы разные, то в рантайме будет вызываться код соответствующий типу, он может оказаться более оптимальным чем тот что вручную задан.
источник

АО

Андрей Оськин... in Язык программирования Julia / Julia programming language
Да, не совсем правильно написал, избыточная типизация сап по себе не приводит к замедлению выполнения, но усложняет код ненужным образом.
источник

A

Alexandr in Язык программирования Julia / Julia programming language
Дмитрий
Но ведь одно дело когда она в процессе работы определяет тип, а другой когда ты задал заранее.
Я правильно понимаю что если везде указывать типы, то повышу производительность?
Это не так, точнее чаще всего не так. При компиляции функции по сути компилируется перегрузка функции с конкретными типами аргументов, поэтому в самом теле функции компилятор будет знать типы аргументов, а не выводить их в рантайме. Разумеется при условии что в самом теле функции нет нестабильности типов. Но от нестабильности типов указание конкретных типов аргументов не спасает.
источник

N

Nuci in Язык программирования Julia / Julia programming language
Can I start learning functional programming using Julia? If can, kindly point me to easily introduction materials. Thanks.
источник

RS

Roman Samarev in Язык программирования Julia / Julia programming language
Kirill Tsaregorodtsev
What should I read in order to / Что мне почитать, чтобы:


1. Understand basics of Julia / Понять основы языка Julia ?

1.1 ThinkJulia: https://benlauwens.github.io/ThinkJulia.jl/latest/book.html
1.2 QuantEcon parts: https://julia.quantecon.org/
1.3 Zero2Hero Julia: https://www.youtube.com/watch?v=Fi7Pf2NveH0
1.4 Julia wiki: https://en.wikibooks.org/wiki/Introducing_Julia
1.5 From zero to Julia: https://techytok.com/from-zero-to-julia/
1.6 Jane Herriman intro to Julia: https://www.youtube.com/watch?v=8h8rQyEpiZA
1.7  Introduction to Computational Thinking with Julia, with applications to
modelling the COVID-19 pandemic: https://github.com/mitmath/6S083
1.8 Julia as CLI calculator (concrete example of workflow): https://krasjet.com/rnd.wlk/julia/


2. Understand Julia more deeply / Лучше понять некоторые тонкие аспекты Julia?

2.1 Chris Rachauckas tutorial: https://ucidatascienceinitiative.github.io/IntroToJulia/
2.2 Tom Kwong. Hands-on Design Patterns and Best Practices with Julia.
2.3 Malcolm Sherrington. Mastering Julia.
2.4 Julia workshop 2019 (Finland): https://github.com/crstnbr/JuliaOulu20
2.5 D.P.Sanders workshop: https://github.com/dpsanders/hands_on_julia
2.6 Metaprogramming workshop: https://youtu.be/SeqAQHKLNj4
2.7 Parallel computing workshop: https://github.com/mbauman/ParallelWorkshop2019
2.8 Curated list of julia packages for all branches: https://github.com/svaksha/Julia.jl/blob/master/AI.md


3. Learn some applications to specific branches of mathematics / Узнать больше о
приложениях к некоторым областям математики?

3.1 Linear algebra / Линейная алгебра:

3.1.1 Introduction to applied linear algebra: vectors, matrices and least
squares http://vmls-book.stanford.edu/
3.1.2 Folkmar Bornemann: Numerical Linear Algebra. A Concise Introduction  with MATLAB and Julia
3.1.3 MODERN APPLICATIONS OF NUMERICAL LINEAR ALGEBRA METHODS: https://github.com/ivanslapnicar/GIAN-Applied-NLA-Course

3.2 Differential equations, dynamical systems / Дифуры и динамич. системы:

3.2.1 DynamicalSystems.jl tutorial: https://www.youtube.com/watch?v=13hqE_1a158
3.2.2 DifferentialEquations tutorial: https://www.youtube.com/watch?v=13hqE_1a158
3.2.2 Partial Differential Equations tutorial: https://www.youtube.com/watch?v=13hqE_1a158

3.3 Optimization / Оптимизация:

3.3.1 Kochenderfer, Wheeler : Algorithms for Optimization
3.3.2 Kwong: Julia Programming for Operations Research, 2nd Edition

3.4 Data science / Наука о данных:

3.4.1 Data science workshop: https://youtu.be/SLE0vz85Rqo
3.4.2 Queryverse workshop: https://www.youtube.com/watch?v=OFPNph-WxLM

3.5 Statistics, bayesian, etc / Статистика, байесовский подход и др.:

3.5.1 Statistics with julia: https://github.com/h-Klok/StatsWithJuliaBook
3.5.2 Turing language tutorials: https://turing.ml/dev/tutorials/
3.5.3 Statistical rethinking in Julia: https://github.com/StatisticalRethinkingJulia/StatisticalRethinking.jl

3.6 Calculus, symbolic computations, ... / Анализ, символьные вычисления:

3.6.1 Calculus with julia : http://calculuswithjulia.github.io/

3.7 Deep learning (глубокое обучение):

3.7.1 Flux model ZOO : https://github.com/FluxML/model-zoo




4. Ecosystem, packages, etc / Экосистема, пакеты и иное:

4.1 How to write a package (Rackauckas) https://youtu.be/QVmU29rCjaA
4.2 How to install https://youtu.be/oyx8M1yoboY
Common Julia links see here
источник

ЕП

Евгений Погребняк... in Язык программирования Julia / Julia programming language
источник

N

Nuci in Язык программирования Julia / Julia programming language
Roman Samarev
Common Julia links see here
Okay! thanks.
источник

DK

Dmitry Khramov in Язык программирования Julia / Julia programming language
Спасибо, очень интересно.
источник
2020 September 28

ЕП

Евгений Погребняк... in Язык программирования Julia / Julia programming language
Dmitry Khramov
Спасибо, очень интересно.
На здоровье ) главное что можно почти сразу запустить и пощупать в ноутбуке. Автор ноутбука еще и автор книги по машинному обучению, приятно, что он на Джулии дал ороший материал.
источник

AK

Andrey Konovalov in Язык программирования Julia / Julia programming language
Коллеги, к нам присоединился Илья из Ирана, он не может написать в группу, хотя в ней состоит.
У него висит вместо поля для ввода сообщений внизу предупреждение о том, что администрация запретила ему писать, что вроде бы неправда, я во всяком случае я его точно не банил...
источник

AK

Andrey Konovalov in Язык программирования Julia / Julia programming language
Может быть кто-то в курсе, есть в Иране какие-то проблемы с общением в Telegram?
источник

AK

Andrey Konovalov in Язык программирования Julia / Julia programming language
Переслано от ilya
I guess its because IP of my country
источник

i

ilya in Язык программирования Julia / Julia programming language
Andrey Konovalov
Переслано от ilya
I guess its because IP of my country
Thank you its good now
источник