LINUX.ORG.RU

Парни из Ричмонда разработали язык Fan на замену C# и Java

 , , , ,


0

0

Устав переписывать программы с Java на C# и обратно, группа лиц разработала новый практичный язык программирования, который предназначен для написания программ в легкой и непринужденной, веселой (fun) манере.

Программы на языке Fan можно запускать как скрипты в браузере (аналогично JavaScript), так и как обычные скрипты (аналогично bash/perl) или десктопные приложения (.exe, elm)

Программы компилируются в промежуточный код fcode, который затем в рантайме транслируется либо в байткод JVM, либо в IL, в зависимости от того, в какой виртуальной машине запустили программу. Также fcode позволит в будущем написать транслятор в Parrot, Object-C либо LLVM.

>>> Подробности

★★★★★

Проверено: Shaman007 ()

Re: Парни из Ричмонда разработали язык Fan на замену C# и Java

>> Тополь уже не в моде ?

У него БЧ не разделяемая. А у РС20 - разделяемая, с кучей ложных целей и генераторами помех.

Klizmoid ()
Ответ на: Re: Еще один велосипед? от KRoN73

Re: Еще один велосипед?

После апгрейда до 1.9.x оценю.

Цифры тебе не понравятся :)

fib.rb:

def fib(n)
  if n<2
    n
  else
    fib(n-2)+fib(n-1)
  end
end
print(fib(43), "\n");

: time ruby1.9.1 fib.rb
433494437

real    2m40.000s
user    2m37.586s
sys     0m0.040s
Deleted ()

Re: Парни из Ричмонда разработали язык Fan на замену C# и Java

> Гогно под названием SWT никак не перепишут под AMD64. Пресловутая IBM

Щито? А как eclipse в 64-битной системе себя рисует?

Bohtvaroh ★★★★ ()
Ответ на: Re: Еще один велосипед? от Deleted

Re: Еще один велосипед?

>Цифры тебе не понравятся :)

Мне индифферентно, ибо я не являюсь ни сторонником, ни противником Ruby :)

>real 2m40.000s

Ну, да, он на числодробилке сильно тормознее Питона с Psyco.

KRoN73 ★★★★★ ()

Re: Парни из Ричмонда разработали язык Fan на замену C# и Java

>Смотрю Red Dawn с П.Суэйзи. Доставляет

очередной фильм для промывки мозгов американцам. Мой мозг такого не выдерживает :)

unrealix ()

Re: Парни из Ричмонда разработали язык Fan на замену C# и Java

>Сейчас Си++ с хипом гляну...

Досчитал. Получилось 31,2 сек. на цикл. В пересчёте на ту таблицу - около 22 сек. Погрешность приличная (было 17 сек), но оценить уровень позволяет. g++ при работе с хипом почему-то опять в пролёте :-/ Так и не разобрались тогда, почему. Надо будет с boost'ом протестировать, там получалось быстрее.

KRoN73 ★★★★★ ()

Re: Парни из Ричмонда разработали язык Fan на замену C# и Java

>> Смотрю Red Dawn с П.Суэйзи. Доставляет

> очередной фильм для промывки мозгов американцам.

"Очередной"? Да он как бы не старше тебя был :)

tailgunner ★★★★★ ()

Re: Парни из Ричмонда разработали язык Fan на замену C# и Java

ржу-нимагу называется

kto_tama ★★★★★ ()

Re: Парни из Ричмонда разработали язык Fan на замену C# и Java

>Надо будет с boost'ом протестировать, там получалось быстрее.

Какой include нужно делать, чтобы boost компилился в этом примере? - http://balancer.ru/2009/02/02/post-1818565.html

KRoN73 ★★★★★ ()

Re: Парни из Ричмонда разработали язык Fan на замену C# и Java

>У него БЧ не разделяемая. А у РС20 - разделяемая, с кучей ложных целей и генераторами помех.

посмотрел видео на ТыТруба. Согласен, оно таки круче. Даже проходит через термоядерный взрыв.

unrealix ()

Re: Парни из Ричмонда разработали язык Fan на замену C# и Java

>Сейчас Си++ с хипом гляну...

Бгыгык. А хип извратись и помести в замапленный файл, чтоб точно тормозило.

legolegs ★★★★★ ()

Re: Парни из Ричмонда разработали язык Fan на замену C# и Java

>Бгыгык.

Предложи более быстрый метод, я оттестирую. Или в том же варианте с boost'ом подскажи, чего там инклудить - я никогда с boost не работал. А бгыгыкать любой дурак может. Сделай лучше, тебе же и карты в руки! :)

KRoN73 ★★★★★ ()

Re: Парни из Ричмонда разработали язык Fan на замену C# и Java

> java [не -server, build 1.6.0_16-b01]

А -server как-то влияет на производительность? Я к своему стыду не в курсе. :)

Bohtvaroh ★★★★ ()

Re: Парни из Ричмонда разработали язык Fan на замену C# и Java

>А -server как-то влияет на производительность?

Очень сильно (в этом тесте - скорее всего меняются алгоритмы выделения памяти). Скажем, раньше поднималось с 3,9сек. на цикл до 2,5.

Сейчас - с 4,99 до 2,33 сек.

KRoN73 ★★★★★ ()

Re: Парни из Ричмонда разработали язык Fan на замену C# и Java

>Но у тебя там аргументы шаблона съелись

Восстановить не сможешь? Там непер в том, что съелись они не при раскраске кода, а в сорцах автора. Я напрямую смотрел.

KRoN73 ★★★★★ ()

Re: Парни из Ричмонда разработали язык Fan на замену C# и Java

а ничего такой язык. острый. можно баловаться

RedPossum ★★★★★ ()

Re: Парни из Ричмонда разработали язык Fan на замену C# и Java

>Восстановить не сможешь?

Пришлось доки раскуривать. Там кое-что можно потюнить. Но в общем я бы сделал так (отключена только тредобезопасность, остальное дефолт):

typedef boost::singleton_pool< MyPoolTag, 32, boost::default_user_allocator_new_delete, boost::details::pool::null_mutex > FibPool;

legolegs ★★★★★ ()

Re: Парни из Ричмонда разработали язык Fan на замену C# и Java

>typedef boost::singleton_pool< MyPoolTag, 32, boost::default_user_allocator_new_delete, boost::details::pool::null_mutex > FibPool;

Спасибо. Работает. И стало НАМНОГО быстрее. Теперь цикл занимает 3,41 сек. Ещё не 2,33 у java -server, но уже не позорно. Код, правда, страшный... ;)

...

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

Займусь понемногу.

KRoN73 ★★★★★ ()

Re: Парни из Ричмонда разработали язык Fan на замену C# и Java

Прочитал "Парни из Редмонта..."

filosof ()

Re: Парни из Ричмонда разработали язык Fan на замену C# и Java

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

chemikadze ()

Re: Парни из Ричмонда разработали язык Fan на замену C# и Java

>Программы на языке Fan можно запускать как скрипты в браузере (аналогично JavaScript), так и как обычные скрипты (аналогично bash/perl) или десктопные приложения (.exe, elm)

только за эти строки автора и модератора новости надо банить. этож надо такое пропустить...

golodranez ★★★★ ()

Re: Парни из Ричмонда разработали язык Fan на замену C# и Java

>программ в легкой и непринужденной, веселой (fun) манере

если бы в очень увлекательной, то была бы совсем укатайка

Valeg ★★★ ()

Re: Парни из Ричмонда разработали язык Fan на замену C# и Java

>> А чем Qt хуже JVM и дотнета? Тем, что быстрее и позволяет с помощью условной компиляции лучше использовать особенности каждой из платформ?

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

А на то, что "современная, модная прогрессивная технология от M$" являет собой дикий тормоз и набор костылей и подпорок, состоит из индусокода чуть более чем полностью, является маркетинговым высером и расчитана на мартышек - как всегда всем пох...

Klizmoid ()

Re: Парни из Ричмонда разработали язык Fan на замену C# и Java

>А на то, что "современная, модная прогрессивная технология от M$" являет собой дикий тормоз и набор костылей и подпорок

Это ты о чём?

KRoN73 ★★★★★ ()

Re: Парни из Ричмонда разработали язык Fan на замену C# и Java

> состоит из индусокода чуть более чем полностью

Ну, из него он ТАМ, у нас Мигель это исправил.

> дикий тормоз и набор костылей и подпорок

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

chemikadze ()

Re: Парни из Ричмонда разработали язык Fan на замену C# и Java

>Спасибо. Работает. И стало НАМНОГО быстрее.

Конечно быстрее, без системных вызовов-то. Ещё чуточку быстрее станет, если нью и делит пометить как inline. По хорошему надо ещё _value и value() сделать константными, но в данном случае это прироста не даёт. Осталось лишь играться к ключами компиляции и изобретать ещё более специализированный аллокатор.

legolegs ★★★★★ ()

Re: Парни из Ричмонда разработали язык Fan на замену C# и Java

>> Это ты о чём?

Да обо всех их высерах, включая дотнет

>> Ну, из него он ТАМ, у нас Мигель это исправил.

Горбатого могила исправит.

>> ихний сборщик мусора настолько бажен, что до сих пор не поглотил себя вместе с самим дотнетом

Наличие этого сборщика уже кагбэ намекает. Нормальные люди не мусорят.

Klizmoid ()

Re: Парни из Ричмонда разработали язык Fan на замену C# и Java

> Чего только не сделают люди, чтобы С++ не изучать.

[пожимая плечами] зачем учить умирающие, плохо спроектированные языки...

yk4ever ()

Re: Парни из Ричмонда разработали язык Fan на замену C# и Java

>Ах да, это если забыть, что использование кучи здесь - идиотизм даже для бенчмарка.

Альтернатива? (Стек - это не альтернатива, так как объект на стеке ты не можешь вернуть)

KRoN73 ★★★★★ ()

Re: Парни из Ричмонда разработали язык Fan на замену C# и Java

> Производительностью. Ы-ы-ы-ы...

[зевая] Да кому она нужна, ваша "производительность". Вы газовую динамику, что ли, обсчитываете? Не говорите ерунды. Даже производительности скриптовых языков сегодня за глаза хватает для большинства прикладных задач.

Единственная проблема жабы и дотнета - долгий старт. Вот об этом да, имеет смысл говорить.

yk4ever ()

Re: Парни из Ричмонда разработали язык Fan на замену C# и Java

>Случай в квадрате 36-80 и тасс уполномочен заявить промывали мозги сильнее

Фиг там :) Они учили тому, что не так просто определить хорошего от плохого. Типа, есть американцы хорошие, а есть плохие. Обсуждаемый вами фильм не видел, но типичный американский фильм говорит, что _все_ русские - плохие.

Почувствуйте разницу.

У нас это прошло уже вскоре после войны (в таком духе только послевоенные фильмы про немцев снимались... И то не все)

KRoN73 ★★★★★ ()

Re: Парни из Ричмонда разработали язык Fan на замену C# и Java

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

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

chemikadze ()

Re: Парни из Ричмонда разработали язык Fan на замену C# и Java

>Альтернатива? (Стек - это не альтернатива, так как объект на стеке ты не можешь вернуть)

У тебя на голове сидит мозговой жаболизняк. Стряхни его.

Теперь поговорим. Я _могу_ вернуть объект на стеке. Да, это означает его копирование (перенос в c++0x), ну и что? Мало того, что в примере данные с запасом влезут в регистры, так к тому же по праздникам в c++ случается оптимизация хвостовой рекурсии.

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

legolegs ★★★★★ ()

Re: Парни из Ричмонда разработали язык Fan на замену C# и Java

>Теперь поговорим. Я _могу_ вернуть объект на стеке.

Я, наверное, туплю. Или ты.

Приведи пример. Закажи в методе метод на стеке и верни ссылку на него его в вызывающий метод.

>Да, это означает его копирование ну и что?

Хм. Приведи мне пример и давай отбенчим. Что-то мне подсказывает, что этот вариант будет ещё медленнее, чем с хипом.

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

Давай примеры. Отбенчим.

KRoN73 ★★★★★ ()

Re: Парни из Ричмонда разработали язык Fan на замену C# и Java

There is a great disturbance in the Force.

isden ★★★★★ ()

Re: Парни из Ричмонда разработали язык Fan на замену C# и Java

Я, наверное, туплю. Или ты.

Да, что-то тут не чисто. Я имею ввиду это:

  int value() const
  {
    if (_value <= 2)
      return 1;
    /*
            Fib *f1 = new Fib(_value - 1);
            Fib *f2 = new Fib(_value - 2);
            int n1 = f1->value();
            int n2 = f2->value();
            delete(f1);
            delete(f2);
            return n1+n2;
    */
    return Fib(_value - 1).value() + Fib(_value - 2).value();
  }

Работает в 4 раза быстрее (и я немного удивлён, что так медленно).

Закажи в методе метод на стеке

Для меня это звучит как «Ехал гилер через гитлер видит гитлер гитлер гитлер»...

legolegs ★★★★★ ()

Re: Парни из Ричмонда разработали язык Fan на замену C# и Java

Что-то я не пойму, мужики, а почему нужен класс Fib? Это ведь дополнительный системный вызов (new) разве не?

Или смысл именно в классе Fib? Ну если в классе Fib - то нужно писать аллокатор памяти, думаю ускорит вполне себе заметно.

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