LINUX.ORG.RU

История изменений

Исправление debugger, (текущая версия) :

Единственный минус - непопулярен, но я думаю что это изменится.

Это не проблема. Медленный старт как-то сильнее напрягает. Я накропал микротест:

$ cat test.pl
#!/usr/bin/perl
use v5.30.0;
use warnings;
say "Helo";

$ cat test.raku
#!/usr/bin/raku
use v6;
say "Hello";

$ time ./test.pl
Helo

real	0m0.006s
user	0m0.005s
sys	0m0.001s

$ time ./test.raku
Hello

real	0m0.151s
user	0m0.161s
sys	0m0.027s

Программа на раке запускается во много раз медленнее, чем такая же программа на перле. Хотя пока время меньше секунды — на глаз не заметно.

Для справедливости надо сказать, что Perl+Moose тормозит примерно так же:

$ cat test+moose.pl 
#!/usr/bin/perl
use v5.30.0;
use warnings;
use Moose;
say "Helo";

vdb@antec:~/prj/raku/test
$ time ./test+moose.pl 
Helo

real	0m0.185s
user	0m0.169s
sys	0m0.013s

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

Писал один скрипт, понадобился YAML-парсер. Нормального на раке не нашлось, решил сделать на раке биндинг к libyaml, заодно NativeCall освоить. А там туева хуча енумов, методов… Ну, как-то незаметно этот биндинг перевалил за 1000 строчек. То есть функциональности как таковой ещё нет, одни биндинги, а 1000-строчная программа на раке стартует уже 3.5 секунды. А это уже как-то напрягает.

Для проверки сделал вот такой файл:

#!/usr/bin/raku
use v6.d;
my $a = 0;
$a = $a + 1;
$a = $a + 1;
$a = $a + 1;
...1000 assignments...
say $a;

Эта хрень запускается 1.6 секунды. С тремя тысячами строк — 4.8 секунд. А что такое три тысячи строк? Мелочь.

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

Но скрипты на 20 строчек благодаря IO::Path писать очень приятно. Лучше чем Perl и Path::Tiny.

Исходная версия debugger, :

Единственный минус - непопулярен, но я думаю что это изменится.

Это не проблема. Медленный старт как-то сильнее напрягает.

Я накропал микротест:

$ cat test.pl
#!/usr/bin/perl
use v5.30.0;
use warnings;
say "Helo";

$ cat test.raku
#!/usr/bin/raku
use v6;
say "Hello";

$ time ./test.pl
Helo

real	0m0.006s
user	0m0.005s
sys	0m0.001s

$ time ./test.raku
Hello

real	0m0.151s
user	0m0.161s
sys	0m0.027s

Программа на раке запускается во много раз медленнее, чем такая же программа на перле. Хотя пока время меньше секунды — на глаз не заметно.

Для справедливости надо сказать, что Perl+Moose тормозит примерно так же:

$ cat test+moose.pl 
#!/usr/bin/perl
use v5.30.0;
use warnings;
use Moose;
say "Helo";

vdb@antec:~/prj/raku/test
$ time ./test+moose.pl 
Helo

real	0m0.185s
user	0m0.169s
sys	0m0.013s

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

Писал один скрипт, понадобился YAML-парсер. Нормального на раке не нашлось, решил сделать на раке биндинг к libyaml, заодно NativeCall освоить. А там туева хуча енумов, методов… Ну, как-то незаметно этот биндинг перевалил за 1000 строчек. То есть функциональности как таковой ещё нет, одни биндинки, а 1000-строчная программа на раке стартует уже 3.5 секунды. А это уже как-то напрягает.

Для проверки сделал вот такой файл:

#!/usr/bin/raku
use v6.d;
my $a = 0;
$a = $a + 1;
$a = $a + 1;
$a = $a + 1;
...1000 assignments...
say $a;

Эта хрень запускается 1.6 секунды. С тремя тысячами строк — 4.8 секунд. А что такое три тысячи строк? Мелочь.

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

Но скрипты на 20 строчек благодаря IO::Path писать очень приятно. Лучше чем Perl и Path::Tiny.