История изменений
Исправление 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.