1.1, Аноним (1), 12:21, 28/01/2019 [ответить] [﹢﹢﹢] [ · · · ]
| +7 +/– |
> Синтаксис Julia близок к MATLAB с заимствованием некоторых элементов из Ruby и Lisp. Метод манипуляции строками напоминает Perl.
Не зря назвали женским именем
| |
1.2, Аноним (2), 12:26, 28/01/2019 [ответить] [﹢﹢﹢] [ · · · ]
| –5 +/– |
Опять динамическая хренотень. Даже распоследние нпм-лефтпадчики и пихонисты сообразили, что динамическость - зло
| |
|
|
3.8, Аноним (2), 13:09, 28/01/2019 [^] [^^] [^^^] [ответить]
| +30 +/– |
Здравствуйте, undefined. Согласен с вашей мыслью касательно [object Object].
| |
|
4.14, Аноним (6), 14:26, 28/01/2019 [^] [^^] [^^^] [ответить]
| –3 +/– |
undefined значит что значение никто не присваивал, null значит что я явно присвоил что значения нет. А в вашем статическом C++ не присовенной переменной присваивается случайное значение. Какого размера должна была быть дыра в башке разработчика чтобы придумать такое поведение комилятора.
| |
|
5.18, Ловил (?), 14:52, 28/01/2019 [^] [^^] [^^^] [ответить]
| +2 +/– |
А еще лучше когда андефайнеда и null-значения вообще не предусмотрено.
| |
|
|
7.46, Аноним (46), 19:30, 28/01/2019 [^] [^^] [^^^] [ответить]
| +2 +/– |
Знаете африканцы различают 1 вид снега, а полярники более 11 видов.
Африканцы различают 7 видов песка, а полярники 1.
Я это к тому, что Вы если полярник так и пишите на своем типизированном языке,
а там где нужно людям быстро навять что-то на JavaScript ну и зачем Вы их обижаете
они умеют прототипировать что-то там себе на своих языках ...
Все нужны и все пригодяться ;)
| |
|
|
5.19, Аноним (19), 14:58, 28/01/2019 [^] [^^] [^^^] [ответить]
| +1 +/– |
> в вашем статическом C++ не присовенной переменной
> присваивается случайное значение.
Нет.
std::string str;
| |
5.22, Антон (??), 15:37, 28/01/2019 [^] [^^] [^^^] [ответить]
| +/– |
предыдущий оратор знаком с javascript и как бы намекает что без типизации в гробу он видал отлавливать дурацкие ошибки с типами в рантайме
| |
|
6.28, Аноним (6), 16:05, 28/01/2019 [^] [^^] [^^^] [ответить]
| –1 +/– |
Судя по тому что он написал ничего он про него не знает. Проверять типы тебе никто не мешает даже в чистом джаваскрипте. Если ваши руки растут не из того места вам вообще к компьютеру лучше не подходить.
| |
|
7.30, Попугай Кеша (?), 16:35, 28/01/2019 [^] [^^] [^^^] [ответить]
| –1 +/– |
Все правильно. И эти умельцы в кавычках пытаются свои привычки из С++/Java перетащить на JS, не разобравшись в нем и не изучив (скобки-то ведь похожи!). Вот так и появляются поделия а-ля TypeScript ("подарок" от нашей любимой Microsoft"
| |
|
8.57, Аноним (57), 21:34, 28/01/2019 [^] [^^] [^^^] [ответить] | –1 +/– | Тайпскрипт - лучшее, что случилось с джаваскриптом за последние десять, если не ... текст свёрнут, показать | |
|
7.61, GentooBoy (ok), 21:49, 28/01/2019 [^] [^^] [^^^] [ответить]
| –1 +/– |
Это лучше вам не подходить в компьютеру и уж явно не программировать если вы не понимаете что когда используется динамическая типизация типы не играю роли, проверка идет по интерфейсу. Исли интерфейс совместим то тип нам не важен, а городить костыли с проверкой это совсем васей нужно быть.
| |
|
|
5.34, YetAnotherOnanym (ok), 17:45, 28/01/2019 [^] [^^] [^^^] [ответить]
| +/– |
> не присовенной переменной присваивается случайное значение
Ээээ... а вы как-то используете значение переменной до того, как ей что-то присвоили?
| |
|
6.35, Andrey Mitrofanov (?), 18:00, 28/01/2019 [^] [^^] [^^^] [ответить]
| +/– |
>> не присовенной переменной присваивается случайное значение
> Ээээ... а вы как-то используете значение переменной до того, как ей что-то
> присвоили?
Дебиановский 'return 4;' openssl fail-о-fix как раз такое "использование"... сломал.
Смотри же -- в каждом твоём компе[I]!
| |
|
7.40, Аноним (19), 18:44, 28/01/2019 [^] [^^] [^^^] [ответить]
| +/– |
Смотри на букву С++
julia> function test(x,y)
if x < y
relation = "less than"
elseif x == y
relation = "equal to"
end
println("x is ", relation, " y.")
end
test (generic function with 1 method)
julia> test(1,2)
x is less than y.
julia> test(2,1)
ERROR: UndefVarError: relation not defined
Stacktrace:
[1] test(::Int64, ::Int64) at ./none:7
| |
|
|
9.76, Аноним (42), 23:27, 28/01/2019 [^] [^^] [^^^] [ответить] | +/– | Одна из задач Julia - перетащить питонистов Потому, безусловно, там много конст... текст свёрнут, показать | |
|
|
|
|
5.84, Аноним (84), 00:48, 29/01/2019 [^] [^^] [^^^] [ответить]
| +/– |
Вроде ж неопределённое поведение. Т.е. там и случайное значение может быть и зануленное и вообще что угодно - что захочет компилятор, лишь бы ему было эффективнее. Хочешь платить оверхедом каждый раз получая значение переменной, чтобы избежать полтора случая и то по глупости?
| |
5.122, Алког (?), 07:07, 30/01/2019 [^] [^^] [^^^] [ответить]
| +/– |
Но там ей ничего не присваивается. Как вам такой поворот головы? >:-)
| |
5.124, Ванёк (?), 14:00, 31/01/2019 [^] [^^] [^^^] [ответить]
| +/– |
Самые маленькие кодеры не знают, что у процессорных регистров нет значения null и undef! :)
| |
|
|
3.9, Аноним (42), 13:32, 28/01/2019 [^] [^^] [^^^] [ответить]
| +2 +/– |
В Julia имеется типизация на аргументы функций и возвращаемые значения. Можно не декларировать, но тогда жалобы на прроизводительность не принимаются
| |
3.20, Имя (?), 15:14, 28/01/2019 [^] [^^] [^^^] [ответить]
| +1 +/– |
Числодробилки без статической типизации приводят к всемирному потеплению.
| |
|
4.47, Аноним (46), 19:33, 28/01/2019 [^] [^^] [^^^] [ответить]
| +/– |
Более того динамические интерпретируемые языки особенно, которые много и часто запускают на интерпретацию так же приводят к потеплению. В целом все приводит к потеплению, а это в свою очередь к тепловой смерти всееленной, но вот когда это произойдет?
| |
4.53, Аноним (53), 19:42, 28/01/2019 [^] [^^] [^^^] [ответить]
| –1 +/– |
> Числодробилки без статической типизации приводят к всемирному потеплению.
Ок. А какое отношение к сабжу имеет это высказывание?
| |
|
|
|
|
2.10, Аноним (42), 13:35, 28/01/2019 [^] [^^] [^^^] [ответить]
| +/– |
Поковыряв её полгода с момента выпуска версии 1.0, могу сказать, что для ML-щиков она должна стать приоритетом номер один. Альтернативный питоноский вариант в любом случае требует две версии - одну под ML, вторую - под production на непитоне. В Julia можно обходиться одной реализацией. Если в компании много лишних денег - можно писать на питоне. Если нет, лучше на Julia.
| |
|
3.49, Аноним (46), 19:36, 28/01/2019 [^] [^^] [^^^] [ответить]
| –1 +/– |
Как там с привязками к С библиотекам? Асинхронность? Производительность списков?
Производительность обратных вызовов? Наличие GIL?
| |
|
4.54, Аноним (42), 19:49, 28/01/2019 [^] [^^] [^^^] [ответить]
| +2 +/– |
> Как там с привязками к С библиотекам
Замечательно. А также вызов питон, матлаб и R-кода. Впрочем, в случае последних, есть ограничения на их библиотеки, тянущие очередную порцию C/C++ и прочих библиотек.
> Асинхронность?
заложена на уровне языка. Как и управление кластером из Джулий на разных машинах.
> Производительность списков?
https://julialang.org/benchmarks/
> Производительность обратных вызовов?
У неё две сущности. Функция и макрос. И обе максимально оптимизированы.
Лямбды сводятся к обычным функциям. Полиморфизм реализован на уровне функций с разными аргументами.
> Наличие GIL?
отсутствует
| |
4.90, cutlass (?), 05:45, 29/01/2019 [^] [^^] [^^^] [ответить]
| +/– |
Зачем привязки к си-либам, когда можно использовать язык, где си - родное?
| |
|
3.81, funny.falcon (?), 00:09, 29/01/2019 [^] [^^] [^^^] [ответить]
| +/– |
Хорошо, если она стала надежной.
Мне рассказывали истории, как попытки применить ее 24/7 обламывались по причине острой течки.
| |
|
4.98, Аноним (42), 09:39, 29/01/2019 [^] [^^] [^^^] [ответить]
| +/– |
> Мне рассказывали истории, как попытки применить ее 24/7 обламывались по причине острой течки.
Это на каких версиях было? У нас веб-сервис крутится под 1.0. Не течет.
| |
|
|
|
1.5, Аноним (5), 12:46, 28/01/2019 [ответить] [﹢﹢﹢] [ · · · ]
| –3 +/– |
Lua можно очень легко использовать прямо в Vala через объект LuaVM, вот бы также было в Julia.
| |
1.16, ыы (?), 14:46, 28/01/2019 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
тут тебе и маргинальные begin-end, и победное количество скобок на строчку кода...и матлаб с перлом...и функции через точку...привет от 1С ?
| |
|
2.21, Аноним84701 (ok), 15:37, 28/01/2019 [^] [^^] [^^^] [ответить]
| +6 +/– |
> тут тебе и маргинальные begin-end,
Обзывать (скорее всего) самую узнаваемую часть синтаксиса ISWIM/Algol-like ЯП "маргинальщиной" … довольно инновативно.
| |
2.24, inferrna (ok), 15:47, 28/01/2019 [^] [^^] [^^^] [ответить]
| +/– |
Насчёт скобок зря, в ней есть композиция функций. Например, округление с приведением к типу вглядит как-то так
(Int32 ∘ round).(some_float);
| |
|
3.25, Аноним (42), 16:01, 28/01/2019 [^] [^^] [^^^] [ответить]
| +/– |
а ещё в ней есть pipe. Например, взять массив, отсортировать и что-нибудь с ним сделать, можно:
[3,1,2] |> sort |> arr -> map(x -> x^2, arr)
| |
|
2.29, Аноним (42), 16:06, 28/01/2019 [^] [^^] [^^^] [ответить]
| +/– |
Функция через точку - это применение функции к каждому элементу (перечислителя). Запомнить довольно просто.
| |
|
|
4.95, Аноним (94), 08:24, 29/01/2019 [^] [^^] [^^^] [ответить]
| +/– |
julia> a = [-1, -2, -4]
3-element Array{Int64,1}:
-1
-2
-4
julia> b = abs(a)
ERROR: MethodError: no method matching abs(::Array{Int64,1})
julia> b = abs.(a)
3-element Array{Int64,1}:
1
2
4
| |
|
|
2.65, GentooBoy (ok), 22:05, 28/01/2019 [^] [^^] [^^^] [ответить]
| +/– |
begin-end маргинальщина, как тогда выделить блоки кода? Давайте свой вариант чтоб прямо ух ))
| |
|
|
|
3.32, диники (?), 17:14, 28/01/2019 [^] [^^] [^^^] [ответить]
| –2 +/– |
Вообще Rust -- попытка сделать ML с сишным синтаксисом. Как и другие подобные попытки (BitC) -- не очень удачная
| |
|
4.33, Аноним (33), 17:30, 28/01/2019 [^] [^^] [^^^] [ответить]
| +/– |
В этом смысле, Julia - весьма неплохая реализация языка под ML. Она совсем не C-подобная.
| |
|
5.86, Иваныч (??), 01:23, 29/01/2019 [^] [^^] [^^^] [ответить]
| +/– |
И все равно понятна даже заядлому любителю C, в отличии от Rust.
| |
|
4.68, bentall (ok), 22:33, 28/01/2019 [^] [^^] [^^^] [ответить]
| –1 +/– |
А можно вопрос? Этот самый BitC где-то пощупать можно? А то исхдники совсем уж древнего Cyclone (попытка создать типобезопасный C 2000 года) на GitHub лежит и с помощью такой-то матери даже скомпилировать и запустить можно. А тут вообще не вижу следа открытия исходников, только спецификацию.
| |
|
|
|
1.36, Андрей (??), 18:20, 28/01/2019 [ответить] [﹢﹢﹢] [ · · · ]
| –1 +/– |
Если бы они ещё LLVM 6.0 не патчили! Ну и 4+ месяца назад вышел LLVM 7.0.
| |
|
2.39, Аноним (42), 18:39, 28/01/2019 [^] [^^] [^^^] [ответить]
| +/– |
Julia - простая до безобразия. Сложности начинаются, когда надо срочно какой-нибудь scikit-learn-код с питона переписать. Тогда приходится рыться в различных библиотеках, а их много....
| |
2.41, inferrna (ok), 19:03, 28/01/2019 [^] [^^] [^^^] [ответить]
| –1 +/– |
Если переносишь готовый проект, то отсчёт индексом массивов с 1 включительно уже съест тебе мозг. Потом его будет подтачивать отсутствие элементарной иде с проверкой синтаксиса и очепяток, которое, вероятно, невозможно из-за невероятно долгой компиляции (в атоме не работает даже "go to declaration"). В расте это всё есть даже в плагине для вима.
В ней есть также то, за что мы так не любим питон - объявление переменной в любом месте в любое время. Если ты опечатался, то это, вуа-ля, новая переменная. И не факт, что при компиляции вывалится ошибка. А если и есть ошибки, то видны они только во время компиляции или выполнения, для чего, опять же, нужно п_о_д_о_ж_д_а_т_ь.
| |
|
3.43, Аноним (42), 19:10, 28/01/2019 [^] [^^] [^^^] [ответить]
| +/– |
Не всё так плохо. К ней надо приноровиться. Но когда работаешь в Atom, он даже индексы хэша может подсказывать, когда начинаешь кавычки набирать. А лишние переменные, во-первых надо объявлять локальные как local. Во-вторых, если ошибся, они начинают светиться в workspace от Atom. Плюс, надо разбивать код на мини-тесты. Тогда прямо из Атома можно выделить один из них и запустить в уже загруженном системном окружении.
| |
|
|
|
2.48, Аноним (42), 19:34, 28/01/2019 [^] [^^] [^^^] [ответить]
| +/– |
> Только чистый Си, по заветам старой школы.
Если он действительно старой школы, то должен знать Фортран. А вот с ним у Julia много общего. Включая нумерацию индексов массивов и упаковку памяти в матрицах по колонкам.
| |
|
3.55, Аноним84701 (ok), 19:55, 28/01/2019 [^] [^^] [^^^] [ответить]
| +1 +/– |
>> Только чистый Си, по заветам старой школы.
> Если он действительно старой школы, то должен знать Фортран.
Да не, это псевдо-ИТшный стишок-песня:
...
C++ или C# - это юнцам по вкусу.
За решёткой есть жизнь, и на кладбище есть плюсы,
Но мой папа не любит эти модные приколы,
Только чистый Си, по заветам старой школы.
...
Поставить в один ряд плюсы (которые существуют еще с начала 80-х) и с-шарп …
Ну и "чистый Си" в "старой школе" (когда до середины 2000х были регулярные эпичные срач^W кидания этим-самым по поводу asm vs c) тоже еще тот перл ;)
| |
|
2.52, Аноним (46), 19:40, 28/01/2019 [^] [^^] [^^^] [ответить]
| +1 +/– |
Пока в Велорибо создавали сборку проекта в Велобаджо уже сделали MVP.
| |
|
1.58, Аноним (58), 21:41, 28/01/2019 [ответить] [﹢﹢﹢] [ · · · ]
| –2 +/– |
>Компилятор Julia основан на наработках проекта LLVM и генерирует эффективный нативный машинный код для многих целевых платформ;
Компилятор Julia основан на наработках проекта LLVM и генерирует эффективный машинный код, РОДНОЙ для многих целевых платформ;
Что русский язык в школе не учил?
| |
|
2.62, Анон546 (?), 21:57, 28/01/2019 [^] [^^] [^^^] [ответить]
| +1 +/– |
Судя по пунктуации, русский язык вам самому вряд ли родной. А вот код именно что нативный.
| |
|
|
2.96, Аноним (94), 08:26, 29/01/2019 [^] [^^] [^^^] [ответить]
| +/– |
Для саксесс стори на хабре она слишком молода. Полгода с первого релиза.
Думаю, что к лету появятся.
| |
|
1.97, Alexklonoff (?), 09:21, 29/01/2019 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
Как обстоят дела с отладчиком? Уже завезли в первую версию, или все ещё нужно отлаживать в уме?
| |
|
2.99, Аноним (99), 09:42, 29/01/2019 [^] [^^] [^^^] [ответить]
| +/– |
> Как обстоят дела с отладчиком?
пошагового нет
> Уже завезли в первую версию, или все ещё нужно отлаживать в уме?
По желанию.
Вообще, есть Atom с возможностью построчно запускать код и видеть результат. Кроме того, отладочный вывод никто не отменял. Классический вариант отладки работает всегда.
| |
|
3.100, Alexklonoff (?), 09:49, 29/01/2019 [^] [^^] [^^^] [ответить]
| +/– |
> пошагового нет
Это плохо. До Матлаба Джулии еще долго. Даже до такой его инкарнации как Octave.
> Вообще, есть Atom с возможностью построчно запускать код и видеть результат.
Спасибо, не надо. Я лучше продолжу делать прототипы в Октаве и потом переписывать на Си++. И там и там отладчики имеются и причем очень качественные.
| |
|
4.102, Аноним (102), 11:16, 29/01/2019 [^] [^^] [^^^] [ответить]
| +/– |
>> пошагового нет
> Это плохо. До Матлаба Джулии еще долго. Даже до такой его инкарнации как Octave.
Это, реально, лишь вопрос привычки и предыдущего программистского опыта. После отладки встраиваемых устройств через COM-консольку, мне лично, это совсем проблемой не кажется.
К тому же, они работают в этом направлении. Поэтому, рассматривая выбирая между написанием прототипа на одном и прода на другом языке, и реализацией на одном единственном языке одной единой версии, мне лично, больше подходит второй вариант.
| |
|
5.103, Alexklonoff (?), 11:50, 29/01/2019 [^] [^^] [^^^] [ответить]
| +/– |
Что такое COM-консолька я не знаю, но для отладки ПО для встраиваемых устройств вполне подойдет GDB, так что мазохизмом с printf-ми там можно и не заниматься. Касаемо Джулии. Допустим нужно разобраться как работает, какая ни-будь сложная рекуррентная нейронная сеть. И как это сделать без отладчика? Там полно многомерных тензоров, матриц. Конечно может какой-то гений от программирования наверное и способен понимать просто глядя на код, но я таковым не являюсь поэтому использую отладчик. Еще момент, где вы видели, чтобы Джулия использовалась в продакшене?
| |
|
6.104, Аноним (104), 12:23, 29/01/2019 [^] [^^] [^^^] [ответить]
| –1 +/– |
>Что такое COM-консолька я не знаю
RS232. Ничего, кроме вывода и ввода она не поддерживает.
> Допустим нужно разобраться как работает, какая ни-будь сложная рекуррентная нейронная сеть.
https://julialang.org/blog/2019/01/fluxdiffeq
> И как это сделать без отладчика?
"Отладчик" != "пошаговый отладчик" !!!. Отладчик для Julia есть.
> Еще момент, где вы видели, чтобы Джулия использовалась в продакшене?
Сам начал использовать.
| |
6.105, Аноним (105), 12:38, 29/01/2019 [^] [^^] [^^^] [ответить]
| +/– |
> Допустим нужно разобраться как работает, какая ни-будь сложная рекуррентная нейронная сеть. И как это сделать без отладчика?
А gdb здесь как поможет?
| |
|
7.107, Alexklonoff (?), 14:02, 29/01/2019 [^] [^^] [^^^] [ответить]
| +/– |
Позволит пройти пошагово и посмотреть нужные значения переменных, размерности тензоров, возможно вызвать какие-ни будь функции и таким образом разобраться как работает код.
| |
|
8.109, Аноним (108), 14:24, 29/01/2019 [^] [^^] [^^^] [ответить] | +/– | Вот уж где точно не пригодится вызов каких-то абстрактных функций, так это в про... текст свёрнут, показать | |
|
|
|
|
|
|
|
|