Raku
![]() Rakuのロゴ | |
パラダイム |
オブジェクト指向プログラミング、命令型プログラミング、関数型プログラミング ![]() |
---|---|
登場時期 | 2015年12月25日 |
開発者 |
ラリー・ウォール、唐鳳 ![]() |
最新リリース | v6.d "Diwali" / 2019年7月17日[1] |
型付け | 動的型付け, 静的型付け |
主な処理系 | Rakudo |
影響を受けた言語 |
Haskell、Perl、Common Lisp、Ada、META II、APL、Ruby、Python、Smalltalk、Self ![]() |
プラットフォーム |
クロスプラットフォーム ![]() |
ライセンス |
Artistic License 2.0 ![]() |
ウェブサイト |
raku |
拡張子 |
raku、rakumod、rakudoc、rakutest、t ![]() |
Raku(旧称: Perl 6)は、ラリー・ウォールにより設計されたオブジェクト指向スクリプト言語である。
Rakuは、2000年にPerlの次期メジャーバージョンとして設計が始められ、2015年12月25日にPerl 6として正式安定版がリリースされた。しかし、言語仕様は従来のPerlと互換性がなく、既存のPerlのソフトウェアをPerl 6用に「アップグレード」するのは極めて困難である。したがって現在はPerl 5とPerl 6は別の言語であると考えられており、Perl 6はPerl 5の次期バージョンではないとされている。換言すれば、Perl 6はPerl 5から移行対象とはみなされていない。そして2019年10月にRakuへ改名することが決定した[2]。
Rakuは言語仕様のみを指し、その処理系は別のプロジェクトとして管理されている。これは、言語仕様の設計と、処理系の(設計及び)実装とが渾然一体としたプロジェクトとして管理されている、バージョン5までのPerlや、他の多くの立ち位置が近い言語(及びその処理系)とは異なっている。2015年12月25日に公式の言語仕様の正式安定版がリリースされた。公式の処理系としてはRakudoがあり、2010年8月に最初の「使用可能な」バージョンがリリースされた。Haskellで書かれたPugsは活発ではなく[3]、もはや歴史的な実装とされている。
Perl 5は動的型付け言語であったのに対し、Rakuは静的な型指定も行える言語となった(動的な型付けも可能)。また、Rakuでは仮引数定義も可能となっている(Perl 5でも可能ではあったが不完全であった)。さらに、Perl 5の様に展開を行うことも可能であり、例えばJavaであればReflectionクラスを必要とする仮引数の取得をいわゆるマジックを用いずとも可能な設計となっている。
RakuではPerl 5と比較してさらに柔軟かつ強力な記法を可能としている。例えば、配列要素毎の演算や、Lisp等に代表されるポーランド記法も可能にするなどPerl 5をより一層強力にした記述である。
Hello world
[編集]"Hello, world!".say
または
say "Hello, world!";
または
print "Hello, world!\n"
出典
[編集]- ^ 出典URL: https://github.com/perl6/roast/blob/master/docs/announce/6.d.md#changelog, 閲覧日: 2019年8月11日
- ^ liztormato (2019年10月15日). “2019.41 New Wineskins”. p6weekly.wordpress.com. 2019年10月26日閲覧。
- ^ “Feature comparison of Perl 6 compilers”. perl6.org. 2019年10月26日閲覧。