The OpenNET Project / Index page

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

Новый открытый динамический язык программирования Julia, использующий наработки проекта LLVM

10.03.2012 20:31

На предстоящей европейской конференции проекта LLVM в Лондоне будет официально представлен новый язык программирования Julia, использующий JIT-компилятор на базе наработок проекта LLVM. Julia является динамическим языком высокого уровня с открытым исходным кодом (лицензия MIT), нацеленный прежде всего на техническое программирование в статистико-математических областях, с областью применения аналогичной таким известным решениям, как Matlab, язык R и связка из Python и NumPy.

Julia мультипарадигменный язык, который может комбинировать разные стили программирования, такие как императивный, объектно-ориентированный и функциональный. Синтаксис Julia очень близок к синтаксису MATLAB. По мнению создателей этого языка, к его достоинствам также следует отнести множество заимствований из синтаксиса Ruby и Lisp, удобная работа со строками в стиле Perl, кроме того обеспечена очень гибкая встроенная поддержка Hadoop. Уже идет работа по реализации полиморфных функций, поддержки задействования GPU для ускорения вычислений, автовекторизации и прочего.

Отдельно следует подчеркнуть, что язык Julia изначально спроектирован с учетом поддержки параллельного программирования (например, реализованы так называемые Coroutines), поэтому эта среда очень хорошо подходит для таких актуальных сегодня областей, как виртуализация и облачные вычисления, практическая работа со стороны разработчиков языка по экспериментированию в этих областях уже начата.

Если же попытаться выделить основные новшества и отличия этого языка от ему подобных, то в качестве первого важного отличия Julia следует отметить его сильный акцент на производительности, больше сопоставимой по своим характеристикам с языком С, а также полная открытость технологии для сообщества.

Ещё одна важная особенность Julia - язык исповедует "бесшаблонную" философию: внешние функции могут вызываться из Julia напрямую без какого-либо "кода для сопряжения" параметров вызова и библиотеки, и это можно делать не только из скомпилированного кода программы на Julia, но даже из интерактивной командной строки. Единственное ограничение для такого подхода - библиотеки с вызываемыми функциями должны быть представлены в виде " "разделяемой библиотеки". Впрочем, большинство библиотек для C или Fortran'a распространяются как раз именно в таком виде. Машинные инструкции, которые генерирует JIT-компилятор Julia в этом вызове - полностью аналогичны тому коду, который сгенерировал бы C-компилятор, поэтому накладные расходы от вызова внешней функции из Julia здесь почти такие же, как и в C. В этой области возможно ещё множество оптимизаций, которые будут реализованы в этом языке в ближайшем будущем.

Другие интересные особенности этого нового динамического языка:

  • Ядро языка очень невелико, его стандартная библиотека включает минимальный набор примитивных операций, такие как например арифметические операции, т.е. гибкая масштабируемость языка;
  • Богатый язык типов для описания и конструирования объектов;
  • Возможность определять поведение функции при передаче разного количества аргументов через multiple dispatch;
  • Автоматическая генерация максимально эффективного кода для разных типов аргументов и переменных;
  • Полная поддержка Unicode;
  • Мощные shell-подобные функции для запуска и управления внешними программами и процессами.


  1. Главная ссылка к новости (http://permalink.gmane.org/gma...)
Автор новости: Igor Savchuk
Тип: К сведению
Ключевые слова: julia, llvm, matlab, lang, math
При перепечатке указание ссылки на opennet.ru обязательно
Обсуждение (86) Ajax | 1 уровень | Линейный | Раскрыть всё | RSS
  • 1.1, Аноним (-), 20:55, 10/03/2012 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    это эпидемия что-ли такая "новый язык программирования"??
     
     
  • 2.2, Аноним (-), 21:06, 10/03/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Да я вот тоже не понимаю, вместо того чтобы взять существующии и расширить люди пилят новый. Думаю каждый случай надо рассматривать отдельно, однако, #$!#$T@#!!!
     
     
  • 3.7, Аноним (-), 21:25, 10/03/2012 [^] [^^] [^^^] [ответить]  
  • +5 +/
    ну куда еще расширять то? взять те же плюсы? не расширять надо а приводить в порядок, да вот только с учетом совместимости, привычек, духа, организации и т.п, это мало реально, проще новый сделать.
     
     
  • 4.18, Аноним (-), 22:08, 10/03/2012 [^] [^^] [^^^] [ответить]  
  • +3 +/
    > ну куда еще расширять то? взять те же плюсы? не расширять надо
    > а приводить в порядок, да вот только с учетом совместимости, привычек,
    > духа, организации и т.п, это мало реально, проще новый сделать.

    Привели плюсы в порядок, получился D, красивый, простой и мощный. Много им народу пользуется? Нет же, жрут всё те же кактусы, гуи пишут на плюсах, а то и на сях.
    Пропаганда нужна и сообщество типа RoRовского.

     
     
  • 5.26, тоже Аноним (ok), 23:13, 10/03/2012 [^] [^^] [^^^] [ответить]  
  • +7 +/
    Для того, чтобы сейчас сколь угодно прекрасный и правильный язык вдруг стал популярнее плюсов, кто-то должен бесплатно потратить несколько сотен человеко-лет на написание к нему библиотек в объеме, хоть сколько-нибудь сравнимом с плюсовыми.
    Без критической массы существующего кода никакие теоретически великолепные языки никому нахрен не нужны.
     
     
  • 6.29, Аноним (-), 23:51, 10/03/2012 [^] [^^] [^^^] [ответить]  
  • –2 +/
    > Для того, чтобы сейчас сколь угодно прекрасный и правильный язык вдруг стал популярнее плюсов, кто-то должен бесплатно потратить несколько сотен человеко-лет на написание к нему библиотек в объеме, хоть сколько-нибудь сравнимом с плюсовыми.

    Фортран — прекрасный и правильный язык, библиотек для которого на несколько порядков больше, чем для плюсов. И как, сильно фортран популярен?

     
     
  • 7.30, жабабыдлокодер (ok), 23:55, 10/03/2012 [^] [^^] [^^^] [ответить]  
  • +/
    В определенных кругах - там где управляют ракетами и прочими алгоритмоемкими вещами - там фортран очень, очень популярен. А вот гуев к нему, действительно, нет.
     
     
  • 8.33, Карбофос (ok), 00:14, 11/03/2012 [^] [^^] [^^^] [ответить]  
  • +/
    не совсем его применяют в основном там, где считают, что фортран - быстрее оче... текст свёрнут, показать
     
     
  • 9.45, жабабыдлокодер (ok), 08:20, 11/03/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Не-а Фортран - это огромное количество библиотек с реализациями математических ... текст свёрнут, показать
     
     
  • 10.63, Карбофос (ok), 16:30, 11/03/2012 [^] [^^] [^^^] [ответить]  
  • +/
    вы никогда не видели обработку матриц от спецов когда матрицы обрабатываются ... текст свёрнут, показать
     
  • 10.65, Аноним (-), 17:37, 11/03/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Ну допустим, у фортрана обилие прекрасных библиотек Но он вроде бы вполне норма... текст свёрнут, показать
     
     
  • 11.83, vvvua (ok), 01:17, 13/03/2012 [^] [^^] [^^^] [ответить]  
  • +/
    В Европе очень популярен язык Говорю про авиастроение Много мейнфреймов работ... текст свёрнут, показать
     
  • 8.41, фтщтньщгы мгдпфкшы (?), 03:39, 11/03/2012 [^] [^^] [^^^] [ответить]  
  • +1 +/
    The gtk-fortran project aims to offer scientists programming in Fortran a cross-... текст свёрнут, показать
     
  • 7.31, FractalizeR (ok), 00:02, 11/03/2012 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Фортран — прекрасный и правильный язык, библиотек для которого на несколько порядков
    > больше, чем для плюсов. И как, сильно фортран популярен?

    На несколько порядков - явное преувеличение.

     
     
  • 8.60, Аноним (-), 14:55, 11/03/2012 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Нет, явное преувеличение - больше На несколько порядков меньше - ближе к исти... текст свёрнут, показать
     
  • 2.3, жабабыдлокодер (ok), 21:07, 10/03/2012 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Просто ни один из существующих языков не является абсолютно оптимальным; у каждого свои недостатки и своя область применения. Вот и пытаются создавать языки предназначенные для конкретных применений.
     
     
  • 3.4, Аноним (-), 21:12, 10/03/2012 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Этих причин явно недостаточно, т.к. проблема в этом случае решалась бы простым расширением одного языка (ассемблера).
     
     
  • 4.8, жабабыдлокодер (ok), 21:32, 10/03/2012 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Чушь. Вы на ассемблере писали?
     
     
  • 5.38, Аноним (-), 01:44, 11/03/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Не чушь. Писал и если надо напишу. Вдумайся что сказано было. Про HiAsm слышал? А теперь развивай мысль и слови баттхерт.
     
     
  • 6.40, Аноним (-), 01:59, 11/03/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Услышал. Увидел _ещё один_ графический яп.
     
  • 6.44, жабабыдлокодер (ok), 07:30, 11/03/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Чушь. Скорость написания кода и, особенно, его отладки на ассемблере в десятки раз медленнее, чем на любом вменяемом языке.
     
     
  • 7.48, arisu (ok), 09:27, 11/03/2012 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > Чушь. Скорость написания кода и, особенно, его отладки на ассемблере в десятки
    > раз медленнее, чем на любом вменяемом языке.

    фигня. на самом деле на ассемблере достаточно написать Forth, на нём — Scheme, а дальше уже на Scheme писать всё, что надо.

     
     
  • 8.50, жабабыдлокодер (ok), 10:01, 11/03/2012 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Форт Нас учили этому чудищу в университете Было прикольно и страшно ... текст свёрнут, показать
     
     
  • 9.51, arisu (ok), 10:05, 11/03/2012 [^] [^^] [^^^] [ответить]  
  • +2 +/
    да ну, форт простой как обухом по черепу проще ассемблера даже, пожалуй ... текст свёрнут, показать
     
     
  • 10.54, жабабыдлокодер (ok), 10:30, 11/03/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Он очень прост, особенно если раньше программировал на калькуляторе Но от этого... текст свёрнут, показать
     
  • 8.52, FractalizeR (ok), 10:17, 11/03/2012 [^] [^^] [^^^] [ответить]  
  • +3 +/
    А потом на Scheme написать Яву И дальше писать все, что надо уже на ней Это... текст свёрнут, показать
     
  • 6.53, FractalizeR (ok), 10:22, 11/03/2012 [^] [^^] [^^^] [ответить]  
  • +/
    > Не чушь. Писал и если надо напишу. Вдумайся что сказано было. Про
    > HiAsm слышал? А теперь развивай мысль и слови баттхерт.

    А причем тут HiASM? Он к ассемблеру, как языку программирования, имеет весьма условное отношение.

     
  • 4.11, Аноним (-), 21:41, 10/03/2012 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Расширение приводит к каше, усложняет реализацию, понимание, специализированный инструмент лучше универсального, да и к тому же многие вещи в основе так или иначе, расширяй не расширяй а икаться будут, в сях например, минимальность ядра и строгая типизация к чему привели? - к куче разрозненных реализаций одного и того же - яркий пример юникодные строки, или скажем костыли для обхода типизации вроде всяких шаблонов и дженериков... расширение расширением а без коренного пересмотра основы не обойтись
     
  • 3.12, Аноним (-), 21:47, 10/03/2012 [^] [^^] [^^^] [ответить]  
  • +3 +/
    > у каждого свои недостатки

    При том как правило - фатальные, и называются NIH :)

     

  • 1.5, Опять (?), 21:12, 10/03/2012 [ответить] [﹢﹢﹢] [ · · · ]  
  • +9 +/
    Зачем так много языков программирования?? Я один еле еле осилил, и тоне до конца! Каждый день новый язык программирования, сколько же можно елы-палы, это же какое-то помешательство!!!
     
     
  • 2.6, Anonimousss (?), 21:22, 10/03/2012 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Успокойтесь, любезный, и пилите дальше Ваш бейсик. :)
     
     
  • 3.9, develop7 (ok), 21:33, 10/03/2012 [^] [^^] [^^^] [ответить]  
  • +1 +/
    s/пилите/используйте/
     
  • 2.13, Адольф (?), 21:49, 10/03/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Это поиск идеала и заполнение ниш. Думаю в ближайшее время будет много языков которые постараются заменить Java и C#,
     
     
  • 3.14, Адольф (?), 21:51, 10/03/2012 [^] [^^] [^^^] [ответить]  
  • +/
    > Это поиск идеала и заполнение ниш. Думаю в ближайшее время будет много
    > языков которые постараются заменить Java и C#,

    чтобы избавиться от зависимости от Oracle и Microsoft

     
     
  • 4.16, Anonimousss (?), 21:59, 10/03/2012 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Тут не языки а либы писать надо.
     
     
  • 5.75, sergey (??), 00:56, 12/03/2012 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Для либ уже есть python
     
     
  • 6.77, vasek (?), 14:00, 12/03/2012 [^] [^^] [^^^] [ответить]  
  • +1 +/
    а также перл и руби
     
  • 4.61, Аноним (-), 14:57, 11/03/2012 [^] [^^] [^^^] [ответить]  
  • +/
    > чтобы избавиться от зависимости от Oracle и Microsoft

    И от тормозной и жрущей память виртуальной машины.

     
  • 3.22, жабабыдлокодер (ok), 22:29, 10/03/2012 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Языков то полно, а вот чтобы сразу писать - с гуями и вебмордами, с подключением баз и работой с документами odt/M$ - кот наплакал. Куда ни ткнись - всюду только концепции и описания синтаксиса.
     
     
  • 4.27, тоже Аноним (ok), 23:17, 10/03/2012 [^] [^^] [^^^] [ответить]  
  • +/
    А если из оставшихся отбросить те, у которых пригодные к использованию библиотеки принадлежат какой-нибудь корпорации - выбора не остается вообще.
     
     
  • 5.28, жабабыдлокодер (ok), 23:25, 10/03/2012 [^] [^^] [^^^] [ответить]  
  • +2 +/
    А чем Вам не нравятся Qt и OpenJDK?
     
     
  • 6.36, Аноним (-), 00:37, 11/03/2012 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Не достаточно элитны.
     
  • 6.55, тоже Аноним (ok), 11:31, 11/03/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Почему - не нравятся?
    Просто существует нехилая вероятность, что некую программу, развитие которой для вас критично, внезапно надо будет сильно переписать. И вы на эту вероятность повлиять никак не можете. А ОДИН человек может...
     
     
  • 7.79, anonimous (?), 19:44, 12/03/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Это вы о чем?
     

  • 1.10, myhand (ok), 21:41, 10/03/2012 [ответить] [﹢﹢﹢] [ · · · ]  
  • +3 +/
    > Синтаксис Julia очень близок к синтаксису MATLAB.

    Это пугает.

    > следует отметить его сильный акцент на производительности

    О...  Сравнение с Matlab/Octave действительно внушаитЪ.  Смотрим.  Ага!  Они радостно запилили фиббоначи с использованием рекурсии.  Двойка "тестерам" за знание матчасти.  Занавес.

    > полная открытость технологии для сообщества

    Закрытые Octave, R и NumPy - ну такие закрытые.  Бот что-ли новость писал?

     
     
  • 2.21, Аноним (-), 22:16, 10/03/2012 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > > Синтаксис Julia очень близок к синтаксису MATLAB.
    > Это пугает.

    Ну почему же. Синтаксис матлаба не так плох. Даже не смотря на использование круглых скобок для обращения к элементам массива. Или на использование специальных переменных для возврата значения функции вместо человеческого оператора return. Или на контринтуитивные списки аргументов в стандартных функциях. Или на отдельные ключевые слова endfor/endif/endfunction и т.д. для разных блоков. Вот, к примеру, поэлементные операторы в матлабе очень удобны.

     
     
  • 3.66, Аноним (-), 17:41, 11/03/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Синтаксис, по существу, один из наименее важных факторов, несмотря на притягательность этого вопроса для холиваров. Вон, в лиспе вообще с этим не заморачивались )
     
     
  • 4.71, arisu (ok), 21:10, 11/03/2012 [^] [^^] [^^^] [ответить]  
  • +/
    > Вон, в лиспе вообще с этим не заморачивались )

    потому что там дали инструменты для создания любого удобного синтаксиса. притом намного более мощные, чем просто препроцессор. в общем-то, чит, но крутой.

     
     
  • 5.73, Аноним (-), 23:45, 11/03/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Это синтаксис более высокого уровня - конструкции, а базовый синтаксис (типа скобок) в лиспе обычно не меняют, хотя тоже можно. А срачи возникают обычно именно вокруг полной ерунды типа формы скобок или, например, написания оператора присваивания = vs :=, что, по большому счету, дело привычки и ни разу не влияет мощность языка
     
     
  • 6.87, фтщтньщгы мгдпфкшы (?), 21:25, 13/03/2012 [^] [^^] [^^^] [ответить]  
  • +/
    > оператора присваивания = vs :=, что, по большому счету, дело привычки и ни разу не влияет мощность языка

    ну тут ведь такое дело, любому изучавшему арифметику (не ну я понимаю что программисты к ним не относятся) известно что = значит равно т.е. это немного как если бы заменили 3 на 9 и наоборот, привыкнуть то можно конечно...

    кстати в языке вообще не обязательно иметь только 1 оператор присваивания, вот например в этом довольно известном языке их 5 штук

    Assignment Operators
    Description - Assign a value to a name.
    Usage
    x <- value
    x <<- value
    value -> x
    value ->> x
    x = value

    что до скобочек то скажем разделение () и [] позволяет сразу отличить вызов функции от индексирования массива, ну и т.д.

    не ну я опять же понимаю что логичность обозначений и читаемость кода никак не влияют на мощность языка, дело привычки же, китайцы вон пишут иероглифами и довольны, с клавиатуры правда вводить неудобно, но дело привычки же

     
  • 3.68, myhand (ok), 17:55, 11/03/2012 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Ну почему же. Синтаксис матлаба не так плох.

    Для 80-х - да.  А сегодня там "не плохо" - только все что связано с линейной алгеброй.

    > Или на отдельные ключевые слова endfor/endif/endfunction и т.д. для разных блоков.

    Это вы matlab с octave перепутали.  Там ублюдочные end переделали в не менее ублюдочные end<shit>.

     
  • 2.89, Michael Shigorin (ok), 23:50, 14/03/2012 [^] [^^] [^^^] [ответить]  
  • +/
    > фиббоначи
    > Двойка

    Ай-яй-яй-яй-яй.

     

  • 1.15, антоним (?), 21:52, 10/03/2012 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Имеются огромные сомнения насчет того что и как они сравнивали с NumPy. В среднем на порядок быстрее говорите? И яваскрипт тоже также быстрее NumPy на порядок? То есть в разы быстрее чем С/С++. Ага, щас.
     
     
  • 2.17, антоним (?), 22:06, 10/03/2012 [^] [^^] [^^^] [ответить]  
  • +1 +/
    https://github.com/JuliaLang/julia/blob/master/test/perf/perf.py

    я так и думал - от NumPy там только фактически import numpy да создание массивов. вот примерчик:

    def mandel(z):
        n = 0
        c = z
        for n in xrange(0,79):
            if abs(z) > 2:
                n -= 1
                break
            z = z**2 + c
        return n + 1

    def mandelperf():
        r1 = numpy.arange(-2.0, 0.5, 0.1)
        r2 = numpy.arange(-1.0, 1.0, 0.1)
        M = numpy.zeros((len(r1)*len(r2)))
        count = 0
        for r in r1:
            for i in r2:
                M[count] = mandel(complex(r,i))
                count += 1
        return M


    Единственная тестовая функция, действительно задействующая NumPy для вычислений:

    def randmatmul(n):
        A = matrix(numpy.random.rand(n,n))
        B = matrix(numpy.random.rand(n,n))
        return A*B

    смотрим в таблицу - так и есть, для этого теста разница практически незаметная.

     
     
  • 3.19, антоним (?), 22:08, 10/03/2012 [^] [^^] [^^^] [ответить]  
  • +2 +/
    То есть сравнивали с python а не numpy. И не факт, что корректно.
     
  • 2.24, Deepwalker (??), 22:46, 10/03/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Да тесты булшит же откровенный. С этого момента весь интерес пропадает к языку.
     
  • 2.32, FractalizeR (ok), 00:10, 11/03/2012 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Имеются огромные сомнения насчет того что и как они сравнивали с NumPy.
    > В среднем на порядок быстрее говорите? И яваскрипт тоже также быстрее
    > NumPy на порядок? То есть в разы быстрее чем С/С++. Ага,
    > щас.

    Исходники же есть. Возьмите и проверьте.

     
     
  • 3.37, антоним (?), 00:50, 11/03/2012 [^] [^^] [^^^] [ответить]  
  • +1 +/
    numpy вычисляет со скоростью близкой к предельной - для заданного алгоритма и железа, поэтому обогнать его даже в 2 раза практически нереально. Потому что внутри у него не питон, а самый что ни на есть с/с++.  А тут нам внезапно про десятки раз быстрее втуляют. Чистый питон ради бога пусть обгоняют - но и писать надо при этом про питон, а не numpy, это как бы 2 очень большие разницы (на порядки) по скорострельности. при чем тут сырцы?
     
     
  • 4.42, фтщтньщгы мгдпфкшы (?), 03:47, 11/03/2012 [^] [^^] [^^^] [ответить]  
  • +/
    > numpy вычисляет со скоростью близкой к предельной - для заданного алгоритма и  железа, поэтому обогнать его даже в 2 раза практически нереально. Потому  что внутри у него не питон, а самый что ни на есть с/с++.

    NumPy это вообще то не язык, а библиотека для Питона, о чем легко узнать заглянув на сайт проекта

    http://numpy.scipy.org/
    NumPy is the fundamental package for scientific computing with Python.

     
     
  • 5.43, антоним (?), 03:54, 11/03/2012 [^] [^^] [^^^] [ответить]  
  • +/
    в следующий раз, пожалуйста, используйте ник К.О.
     
     
  • 6.86, фтщтньщгы мгдпфкшы (?), 21:02, 13/03/2012 [^] [^^] [^^^] [ответить]  
  • +/
    > в следующий раз, пожалуйста, используйте ник К.О.

    А, то есть здесь всем кроме меня понятно как можно сравнивать язык программирования с библиотекой для языка программирования?

     
  • 4.56, Аноним (-), 11:48, 11/03/2012 [^] [^^] [^^^] [ответить]  
  • +/
    > что внутри у него не питон, а самый что ни на есть с/с++.

    Угу. Остается вопрос зачем пользоваться тормознутым питоном. Наверное чтобы при нужде дописать чего-то чего нет в numpy словить тормоза и героически бороться с ними :)

     
     
  • 5.76, sergey (??), 00:59, 12/03/2012 [^] [^^] [^^^] [ответить]  
  • +/
    >> что внутри у него не питон, а самый что ни на есть с/с++.
    > Угу. Остается вопрос зачем пользоваться тормознутым питоном. Наверное чтобы при нужде дописать
    > чего-то чего нет в numpy словить тормоза и героически бороться с
    > ними :)

    Может потому что это удобно?)

     

  • 1.20, Аноним (-), 22:09, 10/03/2012 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > язык Julia изначально спроектирован с учетом поддержки параллельного программирования (например, реализованы так называемые Coroutines)

    При чем тут coroutines к параллельному программированию? Они же не могут выполняться одновременно. Это не параллельность получается, а банальная многозадачность, при чем невытесняющая.

     
     
  • 2.34, FractalizeR (ok), 00:14, 11/03/2012 [^] [^^] [^^^] [ответить]  
  • +/
    > При чем тут coroutines к параллельному программированию? Они же не могут выполняться
    > одновременно. Это не параллельность получается, а банальная многозадачность, при чем невытесняющая.

    http://ru.wikipedia.org/wiki/Сопрограмма

     
     
  • 3.35, Аноним (-), 00:24, 11/03/2012 [^] [^^] [^^^] [ответить]  
  • +/
    По приведенной ссылке нет ничего, опровергающего мои утверждения. Что сказать-то хотели?
     
  • 2.39, Аноним (-), 01:57, 11/03/2012 [^] [^^] [^^^] [ответить]  
  • +/
    (я другой аноним)

    Верно, не параллельность по отношению к кванту времени. Сопрограммы связаны с параллельным исполнением ровно так же как и параллельное исполнение процессов/потоков связано с одноядерной, однопроцессорной системой. Но параллельность появляется тут уже не по отношению к кванту времени а по отношению к собственному исполнению сопрограммы.

     

  • 1.23, зачем имя анониму (?), 22:41, 10/03/2012 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > сильный акцент на производительности, больше сопоставимой по своим характеристикам с языком С

    А почему тогда в представленной таблице нет Си? Судя по ней, этот язык сопоставим по производительности с JS.

     
     
  • 2.25, антоним (?), 22:56, 10/03/2012 [^] [^^] [^^^] [ответить]  
  • +/
    benchmark times relative to C++ (smaller is better).

    C++ compiled by GCC 4.2.1, taking best timing from all optimization levels (-O0 through -O3).

     
     
  • 3.49, arisu (ok), 09:30, 11/03/2012 [^] [^^] [^^^] [ответить]  
  • +/
    > C++ compiled by GCC 4.2.1

    маководы или бсдоиды, что ли? тут уже 4.7 на подходе, а у них всё пятилетней давности ископаемые.

     
  • 2.57, Аноним (-), 11:48, 11/03/2012 [^] [^^] [^^^] [ответить]  
  • +/
    > А почему тогда в представленной таблице нет Си? Судя по ней, этот
    > язык сопоставим по производительности с JS.

    Да, сопостовим. Раза в три-четыре натянет - такая вот сопоставимость :)

     

  • 1.46, arisu (ok), 09:25, 11/03/2012 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    ребята увидели Dylan и сразу нашли в нём Фатальный Недостаток. даже два: второй в том, что до конца выучить ниасилили.
     
     
  • 2.67, Аноним (-), 17:45, 11/03/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Dylan, afaik, не поддерживается. Куда уж фатальней...
     
     
  • 3.69, arisu (ok), 20:46, 11/03/2012 [^] [^^] [^^^] [ответить]  
  • +/
    > Dylan, afaik, не поддерживается.

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

     

  • 1.58, Аноним (-), 12:02, 11/03/2012 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    уважаемые, цены бы не было этой дискуссии, если бы пара-тройка сведущих просчитала бы конкретные примеры и сравнила результаты со всеми нюансами реализации, как это сделано где-то в середине этого обсуждения. многие, в их числе и я, нуждаются просто в выборе инструмента для математических расчетов подобного матлабу, который сегодня де-факто самый распространенный в данной нише. сейчас я пытаюсь использовать питон с библиотеками типа numpy, но вот появляются такие новшества вроде julia и думаешь, глядя на цифры из презентационной таблицы, стоит ли овчинка выделки? в уважением..
     
     
  • 2.59, myhand (ok), 12:51, 11/03/2012 [^] [^^] [^^^] [ответить]  
  • +/
    > нуждаются просто в выборе инструмента для математических расчетов подобного матлабу

    Если вам так нужен матлаб - ну и возьмите матлаб (octave, scilab, еще что-то - открытые).

    > но вот появляются такие новшества вроде julia и думаешь, глядя на цифры из презентационной таблицы, стоит ли овчинка выделки?

    Так разобрали же выше все "цифры".  Там тупо сравнивается производительность "похожих" языковых конструкций.

    В любом приличном месте за "код на Matlab" там представленный - убъют.  Рекурсивные вызовы функций, for-циклы в самых неприличных местах.  Не думаю, что там что-то от матлаба вообще осталось.

     
  • 2.64, антоним (?), 16:32, 11/03/2012 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Прежде чем это можно будет реально использовать для мат.расчетов на замену матлабу пройдет лет 5 минимум. А пока это не более чем proof of concept. Если вы уж начали баловаться питоном, то смотрите в первую очередь на Sage как на замену матлабу. Поглядывайте временами в сторону pypy - как только там допилят numpy (утверждается что одна из основных задач на  этот год), pypy+numpy станет убойной комбинацией по скорострельности и удобству. Кстати, numpy наконец то прикрутили и к Google App Engine.
     
     
  • 3.72, аноним тот же самый (?), 23:12, 11/03/2012 [^] [^^] [^^^] [ответить]  
  • +/
    спасибо за рекомендацию придерживаться python, sage конечно пробовал и даже использую. не могу сказать ничего плохого, т.к. для бесплатного софта возможности просто фантастические, но всегда есть навязчивая идея относительно повышения скорости
     
     
  • 4.88, фтщтньщгы мгдпфкшы (?), 21:43, 13/03/2012 [^] [^^] [^^^] [ответить]  
  • +/
    > фантастические, но всегда есть навязчивая идея относительно повышения скорости

    ну вот к фримату в прошлом году без особого шума приделали jit компиляцию

    Latest News - 2011-11-28 - FreeMat 4.1 Released

    We are pleased to annouce the release of FreeMat 4.1. This version provides some significant performance improvements over FreeMat 4.0

    New Just In Time (JIT) compiler -- the new version uses C++ as a backend for code generation, which means a much more substantial set of FreeMat code can now be JIT compiled. FreeMat uses CLANG-LLVM to provide run time compilation of the generated C++ code.

     
  • 2.81, Аноним (-), 21:36, 12/03/2012 [^] [^^] [^^^] [ответить]  
  • +/
    > ... многие, в их числе
    > и я, нуждаются просто в выборе инструмента для математических расчетов подобного
    > матлабу, который сегодня де-факто самый распространенный в данной нише. сейчас я
    > пытаюсь использовать питон с библиотеками типа numpy, но вот появляются такие
    > новшества вроде julia и думаешь, глядя на цифры из презентационной таблицы,
    > стоит ли овчинка выделки? в уважением..

    Тебя какие расчёты и в какой области математики интересуют? В определённых областях есть хорошие альтернативы матлабу.

     

  • 1.62, EUGENE (?), 15:20, 11/03/2012 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Ну вас всех послушаешь, зачем новый язык, зачем новый язык. А зачем хомячки тогда, ведь мыши есть. Природе наплевать на ваше мнение,она лучше знает что делать. Так что и новые языки будут и будут появляться - вполне закономерные процесс...
     
     
  • 2.70, arisu (ok), 21:06, 11/03/2012 [^] [^^] [^^^] [ответить]  
  • +/
    > Природе наплевать на ваше мнение,она лучше знает что делать.

    можно увидеть хотя бы один язык программирования, возникший не как результат умственной деятельности человека, а эволюционным путём — от стадии простейшего организма и далее?

     
     
  • 3.74, Аноним (-), 00:07, 12/03/2012 [^] [^^] [^^^] [ответить]  
  • +/
    > возникший не как результат умственной деятельности человека, а эволюционным путём — от стадии простейшего организма и далее

    Одно другому не мешает. Любой относительно молодой и популярный язык: python, ruby, их можно сравнить с более старыми perl, java, c и fortran, и с lisp, откуда понемногу тырятся ништяки, хотя прямого родства нет. Эволюция идет на уровне идей: удачные идеи заимствуются и распространяются в новых языках; биологическая эволюция протекает похожим образом. Беда в том, что на распространение идей сильно влияет коммерция, пиар/недостаток рекламы и всякие случайные факторы, так что не стоит думать, будто "волшебная эволюция" отсеет все недостатки существующих языков за обозримый период

     
     
  • 4.78, Аноним (-), 17:11, 12/03/2012 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >> возникший не как результат умственной деятельности человека, а эволюционным путём — от стадии простейшего организма и далее
    > Одно другому не мешает. Любой относительно молодой и популярный язык: python, ruby,
    > их можно сравнить с более старыми perl, java, c и fortran,

    Python появился в 90-м году, а Java 95-м. Учи матчасть!

     
     
  • 5.82, Аноним (-), 21:37, 12/03/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Не знал, что питону столько :). Я не поклонник его, но, имхо, это только на пользу питону - появиться так давно и уже тогда иметь преимущества перед другими языками, даже появившимися позднее
     
     
  • 6.84, kshetragia (ok), 05:35, 13/03/2012 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Только его почему-то зарулили и Java и Perl. :-D Да и сейчас он как-то не блещет.
     

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



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

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