LINUX.ORG.RU

The Julia Language — ещё один ЯП?

 , ,


1

2

Тихой сапой без особых скандалов и новостей зарелизился (очередной?) язык программирования, на этот раз с приятным женским именем Julia.

Зачем еще один? Разработчики заявляют, что хотели взять лучшее из существующих языков, как то: скорость Си, динамизм Ruby, систему макросов Lisp, чтобы создать язык, удобный для статистических (R), математических (Matlab/Octave) задач, естественной обработки строк (Perl), а также использования в качестве шелла для запуска других утилит. Короче, счастья для всех и даром, пусть никто не уйдет обиженным.

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

В наличии JIT-компиляция с бекендом LLVM.

И хотя не всё ещё реализовано, уже сейчас можно скачать первый релиз — версию 1.0 и попробовать.

Код доступен на гитхабе: https://github.com/JuliaLang/julia.
Лицензия MIT/GPLv2

Оф. сайт: http://julialang.org/.
Там же можно увидеть кое-какие бенчмарки (сравнение с С, Python, Matlab, R и др.)

Ответ на: комментарий от segfault

фреймворкам нечего и пытаться тягаться с компилируемыми языками

Мозговзрывающая фраза )

А в той самой таблице (и в других аналогичных) можно увидеть числа и меньшие 1, и примерно равные. Так что тягаться определенно можно.

unsigned ★★★ ()

с приятным женским именем Julia

Не верю я, что это имя женское. Учитывая, что область применения этого языка — математика, наверняка он назван в честь фрактального множества Жюлиа.

VladimirP ★★★ ()
Ответ на: комментарий от d9d9

А вот вероятность что оценит - низкая. Не то они любят.

она любит[его] . и учится в бауманке. поэтому и оценила.

tazhate ★★★★★ ()
Ответ на: комментарий от VladimirP

А множество названо честь Гастона Жюлиа. Не надо плодить лишних сущностей.

anonymous ()

Синтаксис языка так и просит гденить end забыть или лишний впаять.

Скорость на уровне JavaScript, т.е. никакая :(

vada ★★★★★ ()
Ответ на: комментарий от anonymous

> Давно питон стал универсальным? Может и гуй на нем писать уже можно, юез привычных тормозов?
с самого начала. это тебе не похапе, на котором только вебкодить можно.

memnek ()
Ответ на: комментарий от anonymous

> Вообще, кроме Вирта никто приличные синтаксисы для языков придумывать не умеет.
ага. как замечательно писать BEGIN END; вместо всего 2-х символов. и одну из самых частых операций - присваивания - сделать не одним, а двумя знаками, плюс два разных слова для объявления процедур - это да, приличный синтаксис. убогость по всем полям.

memnek ()

Разработчики заявляют, что хотели взять лучшее из существующих языков, как то: скорость Си, динамизм Ruby, систему макросов Lisp, чтобы создать язык, удобный для статистических (R), математических (Matlab/Octave) задач, естественной обработки строк (Perl), а также использования в качестве шелла для запуска других утилит.

Все помнять обложку фейковой книги о perl v6 ? http://hbfs.files.wordpress.com/2009/11/perl6book-parody.jpg

router ★★★★★ ()

Копетан очевидность сообщает
Любой язык сливают, говорят что он не нужен, велосипед с треугольными колесами итд. Но всем пофиг на выши суждения потому что потом вам все равно придется его учить и писать на нем лет через 10 и вы будете корить себя за то что авторам не подсказали, не помогли сделать этот язык лучше и теперь вам приходится мучатся.
Таже фигня со всеми изобретениями за все время сужествавния человека. "- Смотрите я изобрел молоток! - Ненужно, есть уже дубина."

bga_ ★★ ()
Ответ на: комментарий от Buy

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

Я уже понял :)
Т.е. в данном случае будет корректней перевести не как «поверх головы», а «выше крыши» :)))

Steplton ★★★★★ ()
Ответ на: комментарий от unsigned

А в той самой таблице (и в других аналогичных) можно увидеть числа и меньшие 1, и примерно равные.

На это могут быть причины:
1) Кривые руки кодера.
2) В JIT были включены оптимизации, которые не были включены в gcc.

segfault ★★★★★ ()
Ответ на: комментарий от memnek

как замечательно писать BEGIN END; вместо всего 2-х символов.

Будь последовательным до конца - произноси фигурную скобочку одним звуком и все символы юникода тоже!

и одну из самых частых операций - присваивания - сделать не одним, а двумя знаками,

Для перлоподобной скриптоты большой минус, никто не спорит.

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

Наркоман или не отличаешь процедуру от функции? Жги ещё, лор должен быть тортом:)

Napilnik ★★★★★ ()
Ответ на: комментарий от Napilnik

Наркоман или не отличаешь процедуру от функции? Жги ещё, лор должен быть тортом:)

Два раза ха. Жил-был один дядька, который для обучения студентов программированию ввёл в своём языке две сущности, отличающиеся только наличием/отсутствием возвращаемого значения. Ну трудно видать было студентам понять, что процедура — это та же функция. Жги ещё, syntax fapper.

anonymous ()
Ответ на: комментарий от anonymous

Два раза ха. Жил-был один дядька, который для обучения студентов программированию ввёл в своём языке две сущности, отличающиеся только наличием/отсутствием возвращаемого значения. Ну трудно видать было студентам понять, что процедура — это та же функция. Жги ещё, syntax fapper.

Для фанатов сишного синтаксиса давалка (отДАЮЩАЯ параметр) и недавалка (НЕотДАЮЩАЯ) это одно и тоже и должны писаться одним словом, только к недавалке нужно делать приписку «вечный пмс» - логика не для человеков.

Napilnik ★★★★★ ()
Ответ на: комментарий от Napilnik

> Будь последовательным до конца - произноси фигурную скобочку одним звуком и все символы юникода тоже!
наркоман тут ты. причём тут «произнеси», если мне надо писать программы, нажимая на клавиши. я всяко лучше нажимать 2 (если с шифтом - то 4) клавиши, нежели 9.

>Наркоман или не отличаешь процедуру от функции?
норкоман тут ты, потому что сам их не отличаешь. паскаль - императивный язык. императивное и процедурное программирование - синонимы. программа на паскале - набор подпрограмм. если подпрограмма возвращает значение - она называется функцией (но не в математическом смысле). если ничего не возвращает - процедура. и вводить для, по сути, одинаковых вещей 2 разных ключевых слова - маразм

memnek ()
Ответ на: комментарий от Napilnik

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

memnek ()
Ответ на: комментарий от Napilnik

> Для фанатов сишного синтаксиса давалка (отДАЮЩАЯ параметр) и недавалка (НЕотДАЮЩАЯ) это одно и тоже и должны писаться одним словом, только к недавалке нужно делать приписку «вечный пмс» - логика не для человеков.
тебе нравится выставлять себя тупым? с точки зрения сишников - если подпрограмма ничего не возвращает, то пишут, что возвращаемый тип - пустое множество.

а вот объявлять подпрограмму, возвращающую пустое множество и любое другое, отличное от пустого, 2-мя разными словами - логика не для человеков, да

memnek ()
Ответ на: комментарий от memnek

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

#include <stdio.h>

main(t,_,a)char *a; { return!0<t?t<3?main(-79,-13,a+main(-87,1-_,main(-86,0,a+1)+a)):1,t<_?main(t+1,_,a):3,main(-94,-27+t,a)&&t==2?_<13?main(2,_+1,«%s %d %d\n»):9:16:t<0?t<-72?main(_,t,«@n'+,#'/*{}w+/w#cdnr/+,{}r/*de}+,/*{*+,/w{%+,/w#q#n+,/#{l+,/n{n+,/+#n+,/#;#q#n+,/+k#;*+,/'r :'d*'3,}{w+K w'K:'+}e#';dq#'l q#'+d'K#!/+k#;q#'r}eKK#}w'r}eKK{nl]'/#;#q#n'){)#}w'){){nl]'/+#n';d}rw' i;# ){nl]!/n{n#'; r{#w'r nc{nl]'/#{l,+'K {rw' iK{;[{nl]'/w#q#n'wk nw' iwk{KK{nl]!/w{%'l##w#' i; :{nl]'/*{q#'ld;r'}{nlwb!/*de}'c ;;{nl'-{}rw]'/+,}##'*}#nc,',#nw]'/+kd'+e}+;#'rdq#w! nr'/ ') }+}{rl#'{n' ')# }'+}##(!!/»):t<-50?_==*a?putchar(31[a]):main(-65,_,a+1):main((*a=='/')+t,_,a+1):0<t?main(2,2,«%s»):*a=='/'||main(0,main(-61,*a,"!ek;dc i@bK'(q)-[w]*%n+r3#l,{}:\nuwloca-O;m .vpbks,fxntdCeghiry"),a+1);}

ISanych ()
Ответ на: комментарий от memnek

Однако на JAVA он все равно читабельный :)

vada ★★★★★ ()
Ответ на: комментарий от memnek

одну из самых частых операций - присваивания

Пруф.

PolarFox ★★★★★ ()
Ответ на: комментарий от memnek

ты v8 видел?

Это который 32-х клапанный? Видел. У мерса такой.

vada ★★★★★ ()
Ответ на: комментарий от memnek

большим плюсом является компактность синтаксиса, а не наглядность

ну и что? обфусцированный код на любом языке сделать можно.

Придется разжёвывать. Компактность это минус, а наглядность - плюс.

ISanych ()
Ответ на: комментарий от memnek

наркоман тут ты. причём тут «произнеси», если мне надо писать программы, нажимая на клавиши. я всяко лучше нажимать 2 (если с шифтом - то 4) клавиши, нежели 9.

Чукча не читатель, чукча писатель?(с) Написанное человекам потом читать не надо?

норкоман тут ты, потому что сам их не отличаешь.

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

программа на паскале - набор подпрограмм.

Тоже говорилось в прошлом веке про бейсик, может хватит использовать замшелые штампы?

но не в математическом смысле)

Математический смысл - до лампочки.

и вводить для, по сути, одинаковых вещей 2 разных ключевых слова - маразм

Точку в конце программы поставить забыл:) Чуть выше про логику разницы уже написал. Маразм писать void в конце если отличия можно обозначить вначале, с первого слова.

Napilnik ★★★★★ ()
Ответ на: комментарий от memnek

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

Наглядность не нужна, говоришь?

В чужом коде приходилось разбираться?

hobbit ★★★★★ ()
Ответ на: комментарий от Makefile

Интересно, если я свой DSL для роботов заопенсорсю, про него тоже будет тред на ЛОРе?

Ты сначала заопенсорсь :) А там посмотрим.

hobbit ★★★★★ ()
Ответ на: комментарий от KRoN73

Разве бывает уродливее Фортрана? (понятно, я про классический).

Бывает. Бейсик (я тоже про классический). Он и был своего рода кастрированным Фортраном.

hobbit ★★★★★ ()
Ответ на: комментарий от hobbit

если следовать coding style - всё будет нормально. под наглядностью, в данном случае, я имел ввиду отделение блоков: BEGIN END выглядят более наглядно, для полного новичка в программировании, нежели скобки.

memnek ()
Ответ на: комментарий от memnek

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

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

Napilnik ★★★★★ ()
Ответ на: комментарий от anonymous

кроме Вирта никто приличные синтаксисы для языков придумывать не умеет

он ещё за алгол не отработал

shty ★★★★★ ()
Ответ на: комментарий от Napilnik

> void в конце если отличия можно обозначить вначале, с первого слова.
facepalm.pas

ты синтаксис С видел вообще?

void foo() { printf("Pascal sucks!"); }

вот тебе знак отличия в начале(!) определения

>предложения стараюсь начинать с большой буквы.

Точку в конце программы поставить забыл

когда нечего возразить по делу, до*бись до орфографии? я, прошу заметить, пишу в основном грамотно. строчные (строчные и прописные, грамотей, а не маленькие и большие) буквы - от лени.

memnek ()
Ответ на: комментарий от KRoN73

Да ладно! В Фортране хотя бы SUBROUTINE с параметрами были, а не страшный GOSUB-на-строку.

Я понял, что с Бейсика пора слезать после того, как написал программу в 2000 строк.

Единственное, что в Фортране подбешивало - это пресловутый отступ в 6 символов, унаследованный, ЕМНИП, от перфокарт. Я, кстати, про этот отступ вспомнил, когда впервые прочитал про синтаксис Питона и подумал: «Неужели люди не учатся на чужих ошибках»?

hobbit ★★★★★ ()
Ответ на: комментарий от yvv

кое-кто не умеет готовить, как я погляжу

Кое-кто - это компилятор, правильно понимаю?

неправильно

shty ★★★★★ ()
Ответ на: комментарий от matumba

Не надо нести ахинею. Индекс - это и есть «сдвиг», зачем понтоваться бессмысленными мозгозасираниями?

ахинея - это 'элемент с номером ноль'. Нумерация как бы с единицы начинается. А то, что доступ к первому элементу осуществляется через указание смещения от начала лишь демонстрирует тот факт,что массив в С не является полноценным контейнером/абстрактным типом данных, а лишь позволяет хранить данные вместе и предоставляет синтаксис для доступа к нему, напоминающий доступ по номеру.

Я не утверждаю. что это плохо или хорошо, просто констатирую факт, что сделано так и некоторые почему-то считают что 'настоящие программисты нумеруют с нуля ибо это Ъ, а не как в паскале лохи' ;-)

deadman ★★ ()
Ответ на: комментарий от Napilnik

В нормальных языках блобы компилятся легко и быстро

от этого блобы не становятся розовыми и пушистыми

синтаксис не напоминает шифровку. На плюсах не пишу, только компилю

может, в этом всё дело

shty ★★★★★ ()
Ответ на: комментарий от ISanych

злоупотребление темплейтами элементарно доводит компилятор до истерики

не злоупотребляй, чо

shty ★★★★★ ()
Ответ на: комментарий от deadman

А то, что доступ к первому элементу осуществляется через указание смещения от начала лишь демонстрирует тот факт,что массив в С не является полноценным контейнером/абстрактным типом данных, а лишь позволяет хранить данные вместе и предоставляет синтаксис для доступа к нему, напоминающий доступ по номеру.

Си - это высокоуровневый ассемблер, давно известно.

Я не утверждаю. что это плохо или хорошо, просто констатирую факт, что сделано так и некоторые почему-то считают что 'настоящие программисты нумеруют с нуля ибо это Ъ, а не как в паскале лохи' ;-)

Это школие, которое жутко гордится фактом «освоения» некоторого языка. Не понимая, что различия в синтаксисе, на самом деле - далеко не основное.

hobbit ★★★★★ ()
Ответ на: комментарий от PolarFox

И чем же си менее понятен, чем паскакаль?

Грубо говоря тем, что он, и другие языки использованные Виртом, является его альфаверсией.

Napilnik ★★★★★ ()
Ответ на: комментарий от memnek

ты синтаксис С видел вообще?

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

вот тебе знак отличия в начале(!) определения

Если он вначале, то чем лучше паскалевского слова procedure ?

 #include <stdio.h>
 int main (void) {
     printf ("Hello, C laza!\n");
     return 0;
 }

Napilnik ★★★★★ ()
Ответ на: Re: Вау, новый язык программирования! от le_legioner

Re: Вау, новый язык программирования!

считается большой наглостью поехать в Германию и купить там именно паджеру и кататься с этой шильдой по

Это не наглость, а глупость, ну или пофигизм :)) - pajero по-испански «онанист» :-) Соответственно никто из целевой аудитории Pajero не хотел ездить в машине с такой надписью и она продавалась плохо.

anonymous ()
Ответ на: Re: Вау, новый язык программирования! от anonymous

Re: Вау, новый язык программирования!

не хотел ездить в машине с такой надписью и она продавалась плохо.

Ты офисный планктон которому не насрать на общество.

le_legioner ★★ ()
Ответ на: комментарий от Napilnik

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

олсо, не понял я, зачем ты привёл этот код. void в скобках - это не тип возвращаемого значения, а намёк на то, что main вызывается без аргументов. void в скобках можно не писать

memnek ()
Ответ на: комментарий от no-dashi

Ещё один ненужный язык с динамической типизацией :-/

НАпрасно. хорошая замена башу ничуть не помешала бы.

AVL2 ★★★★★ ()
Ответ на: комментарий от shty

синтаксис не напоминает шифровку. На плюсах не пишу, только компилю

может, в этом всё дело

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

Napilnik ★★★★★ ()
Ответ на: комментарий от PolarFox

И чем же си менее понятен, чем паскакаль?

В Си код почему-то в комментариях пишут. И nil почему-то заменили на null.

:)

vada ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.