The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

Выпуск языка программирования Julia 1.1

28.01.2019 11:47

Опубликован релиз языка программирования Julia 1.1, сочетающего такие качества как высокая производительность, поддержка динамической типизации и встроенные средства для параллельного программирования. Синтаксис Julia близок к MATLAB с заимствованием некоторых элементов из Ruby и Lisp. Метод манипуляции строками напоминает Perl. Код проекта распространяется под лицензией MIT.

В новой версии переработана обработка исключений - отдельный стек исключений теперь предоставляется для каждой задачи и может быть разобран при помощи функции "Base.catch_stack". Добавлен экспериментальный макрос "Base.@locals" для доступа к параметрам текущей локали. Реализован оператор ".~". Ужесточён разбор списков, заканчивающихся на запятую. В стандартную библиотеку добавлена подборка новых функций и расширены многие существующие функции.

Ключевые особенности языка:

  • Высокая производительность: одной из ключевых целей проекта является достижение производительности близкой к программам на языке Си. Компилятор Julia основан на наработках проекта LLVM и генерирует эффективный нативный машинный код для многих целевых платформ;
  • Поддержка различных парадигм программирования, включая элементы объектно-ориентированного и функционального программирования. Стандартная библиотека предоставляет в том числе функции для асинхронного ввода/вывода, управления процессами, ведения логов, профилирования и управления пакетами;
  • Динамическая типизация: язык не требует явного определения типов для переменных по аналогии со скриптовыми языками программирования. Поддерживается интерактивный режим работы;
  • Опциональная возможность явного указания типов;
  • Синтаксис, превосходно подходящий для численных вычислений, научных расчётов, систем машинного обучения и визуализации данных. Поддержка многих числовых типов данных и средства для распараллеливания вычислений.
  • Возможность прямого вызова функций из библиотек на языке Си без дополнительных прослоек.


  1. Главная ссылка к новости (https://github.com/JuliaLang/j...)
  2. OpenNews: Увидел свет язык программирования Julia 1.0
  3. OpenNews: Новый открытый динамический язык программирования Julia, использующий наработки проекта LLVM
  4. OpenNews: Доступен язык программирования Dart 2.1
  5. OpenNews: Выпуск языка программирования Clojure 1.10
  6. OpenNews: Релиз языка программирования Rust 1.32
Лицензия: CC-BY
Тип: Программы
Ключевые слова: julia
При перепечатке указание ссылки на opennet.ru обязательно
Обсуждение (112) Ajax | 1 уровень | Линейный | Раскрыть всё | RSS
  • 1.1, Аноним (1), 12:21, 28/01/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +7 +/
    > Синтаксис Julia близок к MATLAB с заимствованием некоторых элементов из Ruby и Lisp. Метод манипуляции строками напоминает Perl.

    Не зря назвали женским именем

     
     
  • 2.120, Аноним (120), 03:31, 30/01/2019 [^] [^^] [^^^] [ответить]  
  • +/
    https://venturebeat.com/2019/01/29/hackerrank-developer-skills-report-2019/
     

  • 1.2, Аноним (2), 12:26, 28/01/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • –5 +/
    Опять динамическая хренотень. Даже распоследние нпм-лефтпадчики и пихонисты сообразили, что динамическость - зло
     
     
  • 2.6, Аноним (6), 12:47, 28/01/2019 [^] [^^] [^^^] [ответить]  
  • –13 +/
    Статическая типизация не нужна.
     
     
  • 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-значения вообще не предусмотрено.
     
     
  • 6.26, Аноним (6), 16:03, 28/01/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Языки о которых ты говоришь не нужны.
     
     
  • 7.46, Аноним (46), 19:30, 28/01/2019 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Знаете африканцы различают 1 вид снега, а полярники более 11 видов.
    Африканцы различают 7 видов песка, а полярники 1.

    Я это к тому, что Вы если полярник так и пишите на своем типизированном языке,
    а там где нужно людям быстро навять что-то на JavaScript ну и зачем Вы их обижаете
    они умеют прототипировать что-то там себе на своих языках ...

    Все нужны и все пригодяться ;)

     
     
  • 8.59, GentooBoy (ok), 21:43, 28/01/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Ага то то я смотрю все на TypeScript переписывают с динамического JS ... текст свёрнут, показать
     
  • 8.117, Урри (?), 18:25, 29/01/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Исправил, не благодарите ... текст свёрнут, показать
     
  • 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 +/
    Это лучше вам не подходить в компьютеру и уж явно не программировать если вы не понимаете что когда используется динамическая типизация типы не играю роли, проверка идет по интерфейсу. Исли интерфейс совместим то тип нам не важен, а городить костыли с проверкой это совсем васей нужно быть.
     
     
  • 8.121, Алког (?), 07:05, 30/01/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Вы уверены Что там по интерфейсу идёт какая-то проверка - ... текст свёрнут, показать
     
  • 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 [^] [^^] [^^^] [ответить]  
  • +/
    Смотри на букву С++
    [code]
    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
    [/code]

     
     
  • 8.42, Аноним (42), 19:06, 28/01/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Опасный код function test x,y local relation String if x y... текст свёрнут, показать
     
     
  • 9.63, GentooBoy (ok), 21:58, 28/01/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Ну вот а нам рассказывали что обезьяны не могут программы писать ... текст свёрнут, показать
     
     
  • 10.64, Аноним (64), 22:00, 28/01/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Надо полагать, они ещё и комментарии оставлять умеют ... текст свёрнут, показать
     
     
  • 11.66, GentooBoy (ok), 22:15, 28/01/2019 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Не обижайся анонимка, просто смени профессию если тебя удивляют ошибки в твоем к... текст свёрнут, показать
     
  • 9.91, Аноним (19), 05:59, 29/01/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Это пример из руководства Транслятору тоже могло быть сразу видно ... текст свёрнут, показать
     
  • 8.70, YetAnotherOnanym (ok), 22:49, 28/01/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Ну молодец, чо И это язык виноват ... текст свёрнут, показать
     
     
  • 9.89, Аноним (19), 05:42, 29/01/2019 [^] [^^] [^^^] [ответить]  
  • +/
    У написавшего исходное в статическом C не присовенной переменной присваив... текст свёрнут, показать
     
  • 8.74, аноним3 (?), 23:13, 28/01/2019 [^] [^^] [^^^] [ответить]  
  • +/
    julia function test x,y if x y relation less th... текст свёрнут, показать
     
     
  • 9.76, Аноним (42), 23:27, 28/01/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Одна из задач Julia - перетащить питонистов Потому, безусловно, там много конст... текст свёрнут, показать
     
     
  • 10.88, аноним3 (?), 03:27, 29/01/2019 [^] [^^] [^^^] [ответить]  
  • +/
    вот это и удивило ни разу на julia внимание не обращал, а тут раз и знакомый т... текст свёрнут, показать
     
     
  • 11.92, Аноним (19), 06:01, 29/01/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Не прижилась идея ... текст свёрнут, показать
     
  • 11.94, Аноним (94), 08:22, 29/01/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Julia ориентирована на область математики Питон по синтаксису сильно проще, чем... текст свёрнут, показать
     
  • 11.101, Клыкастый (ok), 10:21, 29/01/2019 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Угу, как только появилось то, где они нужны А кому-то кажется что достаточно од... текст свёрнут, показать
     
     
  • 12.112, Анонимчжан (?), 15:38, 29/01/2019 [^] [^^] [^^^] [ответить]  
  • +/
    разработчик С перешел на разработку D, тоже полагая, что сможет создать язык л... текст свёрнут, показать
     
     
  • 13.115, Клыкастый (ok), 16:18, 29/01/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Недостатков прежнего он таки лишён Но понятное дело не лишён их совсем очень м... текст свёрнут, показать
     
  • 11.123, Andrey Mitrofanov (?), 17:04, 30/01/2019 [^] [^^] [^^^] [ответить]  
  • +/
    И это тоже см ниже Это вы путеетесь А Настоящие Профессиональне Программист... текст свёрнут, показать
     
  • 5.71, Junior frontend developer (?), 22:52, 28/01/2019 [^] [^^] [^^^] [ответить]  
  • +/
    C++ далеко не образец статической типизации, он весьма слабоват в этом плане.
     
  • 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.51, Аноним (51), 19:39, 28/01/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    И озеленению Сахары. Так выпьем же за диалектику!
     
  • 4.53, Аноним (53), 19:42, 28/01/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Числодробилки без статической типизации приводят к всемирному потеплению.

    Ок. А какое отношение к сабжу имеет это высказывание?

     
  • 2.31, Аноним (-), 16:35, 28/01/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Можно указывать типы, через двоеточие, даже128-битный есть
     

  • 1.3, Cradle (?), 12:38, 28/01/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Познакомился недавно - красивая, современная и без лишних заскоков
     
     
  • 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. Не течет.

     
  • 2.113, Анонимчжан (?), 15:38, 29/01/2019 [^] [^^] [^^^] [ответить]  
  • +/
    блин ты прям как идеальную девушку описываешь)))
     

  • 1.5, Аноним (5), 12:46, 28/01/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • –3 +/
    Lua можно очень легко использовать прямо в Vala через объект LuaVM, вот бы также было в Julia.
     
  • 1.7, tupick (?), 13:08, 28/01/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    NA уже научили поддерживать?
     
  • 1.11, Аноним (11), 13:56, 28/01/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Есть встраиваемый в код?
     
  • 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 ЯП "маргинальщиной" … довольно инновативно.

     
     
  • 3.75, vitalif (ok), 23:14, 28/01/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    А, ну конечно, кто ж щас на алголе-то не пишет!
     
  • 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 [^] [^^] [^^^] [ответить]  
  • +/
    Функция через точку - это применение функции к каждому элементу (перечислителя). Запомнить довольно просто.
     
     
  • 3.72, Junior frontend developer (?), 22:58, 28/01/2019 [^] [^^] [^^^] [ответить]  
  • +/
    То есть map функция — это просто точка?
     
     
  • 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

     
     
  • 5.114, Junior frontend developer (?), 15:49, 29/01/2019 [^] [^^] [^^^] [ответить]  
  • +/
    > julia> b = abs.(a)

    Действительно. В любом другом языке это было бы без специального синтаксиса
    > map(abs, a)

    или
    > a.map(abs)

     
     
  • 6.116, Аноним (42), 17:23, 29/01/2019 [^] [^^] [^^^] [ответить]  
  • +/
    > a.map(abs)

    map(abs, a) для Julia. Но можно же и не писать map.

     
  • 2.65, GentooBoy (ok), 22:05, 28/01/2019 [^] [^^] [^^^] [ответить]  
  • +/
    begin-end маргинальщина, как тогда выделить блоки кода? Давайте свой вариант чтоб прямо ух ))
     

  • 1.23, inferrna (ok), 15:43, 28/01/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    А я качусь с неё на раст, доволен, как слон.
     
     
  • 2.27, Аноним (42), 16:03, 28/01/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Слабо верится, что Rust станет популярен у ML-льщиков.
     
     
  • 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 лежит и с помощью такой-то матери даже скомпилировать и запустить можно. А тут вообще не вижу следа открытия исходников, только спецификацию.
     
     
  • 5.77, диники (?), 23:30, 28/01/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Есть https://github.com/repos-bitc/bitc
    Сам проект самоустранился где-то в 2008-м году.
     
     
  • 6.80, bentall (ok), 23:57, 28/01/2019 [^] [^^] [^^^] [ответить]  
  • +/
    > Есть https://github.com/repos-bitc/bitc
    > Сам проект самоустранился где-то в 2008-м году.

    Спасибо

     
  • 4.73, Junior frontend developer (?), 23:01, 28/01/2019 [^] [^^] [^^^] [ответить]  
  • +6 +/
    Первый оратор подразумевал Machine Learning, тогда как второй ML язык Милнера. Лучше уточняйте, пока вообще шизофазия не пошла
     

  • 1.36, Андрей (??), 18:20, 28/01/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Если бы они ещё LLVM 6.0 не патчили! Ну и 4+ месяца назад вышел LLVM 7.0.
     
  • 1.38, Аноним (38), 18:25, 28/01/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Кто пробовал, голову пытается съесть?
     
     
  • 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. Плюс, надо разбивать код на мини-тесты. Тогда прямо из Атома можно выделить один из них и запустить в уже загруженном системном окружении.
     
  • 3.44, Аноним (44), 19:11, 28/01/2019 [^] [^^] [^^^] [ответить]  
  • +/
    https://julialang.org/blog/2019/01/fluxdiffeq - см. анимированные картинки с иллюстрацией как в Atom/Julia контролировать процесс обучения нейросети.
     

  • 1.45, Анонименок (?), 19:20, 28/01/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    Но мой папа не любит эти модные приколы, Только чистый Си, по заветам старой школы.
     
     
  • 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) тоже еще тот перл ;)

     
     
  • 4.56, Аноним (56), 20:44, 28/01/2019 [^] [^^] [^^^] [ответить]  
  • +/
    https://www.youtube.com/watch?v=cdX8r3ZSzN4 неплохо так.
     
  • 2.52, Аноним (46), 19:40, 28/01/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Пока в Велорибо создавали сборку проекта в Велобаджо уже сделали MVP.
     

  • 1.58, Аноним (58), 21:41, 28/01/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    >Компилятор Julia основан на наработках проекта LLVM и генерирует эффективный нативный машинный код для многих целевых платформ;

    Компилятор Julia основан на наработках проекта LLVM и генерирует эффективный  машинный код, РОДНОЙ для многих целевых платформ;

    Что русский язык в школе не учил?

     
     
  • 2.60, Аноним (60), 21:46, 28/01/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Не надо умничать. Там сверху есть кнопка "исправить"
     
  • 2.62, Анон546 (?), 21:57, 28/01/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Судя по пунктуации, русский язык вам самому вряд ли родной. А вот код именно что нативный.
     
  • 2.79, Аноним (79), 23:52, 28/01/2019 [^] [^^] [^^^] [ответить]  
  • +/
    > РОДНОЙ для многих целевых платформ;

    Учите матчасть и терминологию:

    https://ru.wikipedia.org/wiki/%D0%9C%D0%B0%D1%88

    "Машинный код иногда называют нативным кодом, когда говорят о платформенно-зависимых частях языка или библиотек"

     

  • 1.87, Аноним (87), 01:31, 29/01/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Не вижу стартапов, митапов, конф о саксесс стори на хабре :(
     
     
  • 2.93, bentall (ok), 07:57, 29/01/2019 [^] [^^] [^^^] [ответить]  
  • +/
    А почему они там должны быть, если это такая числодробилка для физиков? Собственно одна из первых статией про Юлию на хабре вот https://habr.com/ru/post/210298/ и это перевод вот этого http://www.evanmiller.org/ аспиранта.
     
  • 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 есть.

    > Еще момент, где вы видели, чтобы Джулия использовалась в продакшене?

    Сам начал использовать.

     
     
  • 7.106, Alexklonoff (?), 14:00, 29/01/2019 [^] [^^] [^^^] [ответить]  
  • +/
    > Сам начал использовать.

    Поздравляю. Потащили в продакшен недоделанную сырую вещь.

     
     
  • 8.108, Аноним (108), 14:22, 29/01/2019 [^] [^^] [^^^] [ответить]  
  • +/
    С чего такое заключение Если я пишу один, то сырая вещь , а если нас будет тыс... текст свёрнут, показать
     
     
  • 9.111, Alexklonoff (?), 14:47, 29/01/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Если можно будет объявить глобальную переменную с типом, то это будет не сырая в... текст свёрнут, показать
     
  • 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 [^] [^^] [^^^] [ответить]  
  • +/
    Вот уж где точно не пригодится вызов каких-то абстрактных функций, так это в про... текст свёрнут, показать
     
     
  • 9.110, Alexklonoff (?), 14:46, 29/01/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Спасибо, если речь о нейросетях, то я лучше код Кафе посмотрю Мой заказчик ника... текст свёрнут, показать
     

  • 1.118, Аноним (118), 22:10, 29/01/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    На чем пишут ОС?
     
     
  • 2.125, Ванёк (?), 14:11, 31/01/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Молодёжь пишет ОС на JavaScript и пищит от радости, как дети :)
     

  • 1.119, Аноним (118), 22:13, 29/01/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    И микрокод к процам, дети!
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Спонсоры:
    MIRhosting
    Inferno Solutions
    Hosting by Ihor
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2019 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру