Raku, раніше Perl 6 — мова програмування родини Perl. Створення Perl 6 розпочалось в 2000 році, та вона все ще перебуває у стадії розробки специфікації. Perl 6 може мати багато , декілька таких реалізацій у вигляді інтерпретаторів та компіляторів також знаходяться зараз на етапі розробки. В Perl 6 представлені елементи багатьох як сучасних так і забутих мов програмування.
Raku | |
---|---|
Парадигма | об'єктно-орієнтоване програмування, імперативне програмування і функційне програмування |
Дата появи | 2000 |
Творці | Ларі Волл |
Розробник | Ларі Уолл і Одрі Тан |
Останній реліз | (різниться в залежності від реалізації) Rakudo Star / 26 вересня 2014 Niecza Perl 6 / 26 березня 2013 |
Система типізації | динамічна типізація[d] і d |
Основні реалізації | , Niecza |
Під впливом від | Haskell (мова програмування), JavaScript, Perl 5, Ruby (мова програмування), Smalltalk |
Мова реалізації | Raku |
Операційна система | Багатоплатформова |
Ліцензія | Загальна громадська ліцензія GNU або |
Звичайні розширення файлів | .raku , .rakumod , .rakudoc , .rakutest або .t |
Репозиторій вихідного коду | github.com/Raku/roast |
Вебсайт | raku.org |
Основною причиною небажання продовжувати розвиток проекту під ім'ям Perl 6 стало те, що Perl 6 не став продовженням Perl 5, як очікувалося спочатку, а перетворився в окрему мову програмування, для якого так і не було підготовлено інструментарію за прозорою міграції з Perl 5. В результаті склалася ситуація, коли під одним ім'ям Perl пропонуються дві паралельно розроблювані самостійні мови, несумісних одна з одною на рівні сирцевих текстів і колом своїх спільнот розробників. Використання одного імені для родинних, але кардинально відрізнених мов, призводило до плутанини, коли багато користувачів продовжують вважати Perl 6 новою версією Perl, а не принципово іншою мовою. При цьому ім'я Perl продовжує зв'язуватися з Perl 5, а згадка Perl 6 вимагає окремого уточнення.
Історія
В Perl 6 ми вирішили, що краще змінити мову, ніж змінювати того, хто на ній пише.
— Ларі Волл
Початок пректування нового Perl було вперше анонсовано 19 липня 2000 року. Тоді, на 4-й день тогорічної конференції Perl, Ларі Волл оголосив це у своїй промові State of the Onion 2000 (Стан цибулини 2000). В той час, основними цілями було позбутись «історичних нашарувань» («historical warts») та в загальному очистити внутрішню структуру мови і інтерфейсів (API). Процес почався із ряду запитів на коментар (RFC). Він був відкритим для всіх бажаючих, та жоден аспект мови не лишився закритим для змін.
По завершенню процесу RFC, Волл розглянув та класифікував кожен із запитів (всього одержано 361). Тоді він почав процес написання декількох «Апокаліпсисів» («Apocalypse»), що значить «відкриття». Існує серія Екзегезів написаних (Damian Conway), що описують вміст кожного Апокаліпсису з точки зору практичного застосування. Кожна Екзегеза містить приклади коду разом із обговореннями його застосування та результатами виконання.
При розробці Perl 6 використовуються такі найзначніші засоби спілкування:
- IRC канал #perl6 зайти в мережі .
- Списки розсилки на серверах , доступні на сайті perl.org [ 11 травня 2022 у Wayback Machine.].
- Git, що міститься на https://github.com/perl6 [ 20 жовтня 2015 у Wayback Machine.].
Специфікація
Perl 6 — це специфікація мови і, так само як у випадку С та С++, для неї може бути створено багато компіляторів. Існує проектна документація, на яку в минулому посилалися як на специфікацію. Але цей підхід було змінено і тепер офіційний набір тестів «roast» визначає специфікацію Perl 6. Як стверджують самі творці, «Perl 6 — це будь-що, що успішно проходить офіційні тести»
Реалізації
Розробка , першої найбільш повної реалізації, почалась у 2005 році, а нині вже існує багато таких проектів по реалізації Perl 6.
базується на і (Not Quite Perl), і випускає нові версії щомісяця. У липні 2010 проект випустив першу дистрибуцію корисну і зручну добірку реалізацій Perl 6 та пов'язаних матеріалів.
В , ще одній значній реалізація Perl 6, головна увага приділяється оптимізації етапу компіляції.
STD — офіційна граматика Perl 6, визначає саму граматику і синтаксичний аналіз коду. Розробляється і підтримується Ларі Воллом
Згідність із Perl 5
Perl 6 не сумісний з Perl 5. Хоч їх синтаксис багато в чому і схожий, але це дві абсолютно різні мови програмування. Згідність із Perl 5 не ставилась за ціль, хоча передбачається специфікацією. Існують реалізації можливості підключення модулів Perl 5 всередині Perl 6, щоправда, на даний момент бракує відомостей щодо ефективності їх використання.
Система модулів
Специфікація Perl 6 вимагає, щоб модулі визначалися ім'ям, версією та авторством. Є можливість використовувати модуль лише певної версії або два модулі з однаковим ім'ям, які відрізняються версіями або авторством. Для зручності можна використовувати псевдоніми.
Система поширення модулів Perl 5 CPAN поки не підтримує модулі Perl 6. Наразі існує прототип системи модулів.
Основні відмінності від Perl 5
Perl 5 і Perl 6 відрізняються докорінно, хоч передбачалось, щоб Perl 6 був схожим на оригінальний Perl. Більшість змін запроваджено щоб нормалізувати мову, зробити її легшою для розуміння як для новачків, так і для досвідчених програмістів.
Специфікація
Однією з основних відмінностей Perl 6 є те, що, на відміну від Perl 5, він почав своє існування як специфікація. Це означає, що Perl 6 може бути за потреби реалізовано заново, а також, що програміст не мусить звертатися до сирцевого коду для підтвердження певної властивості або функції мови. Документацію Perl 5 оцінюють як відмінну, навіть поза Perl спільнотою завжди відзначають її завершеність і повноту. Одначе, вона не вважається офіційним, першоджерельним довідником і лише описує у вільній формі поведінку інтерпретатора. Будь-які невідповідності між документацією і самим інтерпретатором мови можуть призвести до приведення одного з них у відповідність до іншого.
Система типів
В Perl 6 до системи динамічних типів Perl 5 було додано також систему статичних типів. Наприклад:
my Int $i = 0; my Rat $r = 3.142; my Str $s = "Hello, world";
Однак статичне типізування залишається необов'язковим, що дозволяє програмісту вирішувати більшість завдань без його використання:
my $i = "25" + 10; # $i is 35
Perl 6 пропонує гібридну систему типів, даючи програмісту можливість використовувати статичне, динамічне типізування, або їх поєднання.
Джерела інформації
- . 26 вересня 2014. Архів оригіналу за 29 вересня 2014. Процитовано 26 вересня 2014.
- Niecza Perl 6 v16.[недоступне посилання з жовтня 2019]
- . Perl Foundation Perl 6 Wiki. . February 28. Архів оригіналу за 21 січня 2012. Процитовано 9 лютого 2012.
- . perl.org. Архів оригіналу за 15 грудня 2014. Процитовано 20 квітня 2013.
"Perl" is a family of languages, "Perl 6" is part of the family, but it is a separate language which has its own development team. Its existence has no significant impact on the continuing development of "Perl 5".
- (англ.) . Архів оригіналу за 16 грудня 2014. Процитовано 19 грудня 2014.
- Kline, Joe (21 серпня 2000). . Архів оригіналу за 4 червня 2009. Процитовано 17 січня 2015.
- Wall, Larry (2000). . O'Reilly Network. Архів оригіналу за 6 червня 2010. Процитовано 17 січня 2015.
- Wall, Larry (2 квітня 2001). . Архів оригіналу за 23 листопада 2010. Процитовано 17 січня 2015.
- The Perl Foundation (2001). . Архів оригіналу за 14 березня 2007. Процитовано 17 січня 2015.
- The Perl Foundation (2002). . Архів оригіналу за 4 лютого 2012. Процитовано 21 січня 2015.
- (англ.) . Архів оригіналу за 23 грудня 2014. Процитовано 19 грудня 2014.
- . Архів оригіналу за 26 грудня 2015. Процитовано 19 грудня 2014.
- (англ.) . Архів оригіналу за 23 грудня 2014. Процитовано 22 грудня 2014.
Perl 6 is anything that passes the official test suite.
- Michaud, Patrick (29 July 2010). . Архів оригіналу за 19 грудня 2014. Процитовано 12 січня 2012.
- (англ.) . Архів оригіналу за 23 грудня 2014. Процитовано 19 грудня 2014.
- . Архів оригіналу за 26 грудня 2015. Процитовано 19 грудня 2014.
- Wall, Larry (2004). . Архів оригіналу за 13 жовтня 2014. Процитовано 15 вересня 2015.
- . Modules.perl6.org. Архів оригіналу за 24 вересня 2015. Процитовано 21 вересня 2013.
- Wall, Larry (10 серпня 2004). . Архів оригіналу за 31 жовтня 2014. Процитовано 28 жовтня 2015.
- Lhotsky, Brad (10 березня 2004). . Архів оригіналу за 27 вересня 2015. Процитовано 30 жовтня 2015.
- Wall, Larry (20 травня 2009). . Архів оригіналу за 31 жовтня 2014. Процитовано 4 листопада 2015.
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
Raku ranishe Perl 6 mova programuvannya rodini Perl Stvorennya Perl 6 rozpochalos v 2000 roci ta vona vse she perebuvaye u stadiyi rozrobki specifikaciyi Perl 6 mozhe mati bagato dekilka takih realizacij u viglyadi interpretatoriv ta kompilyatoriv takozh znahodyatsya zaraz na etapi rozrobki V Perl 6 predstavleni elementi bagatoh yak suchasnih tak i zabutih mov programuvannya RakuParadigmaob yektno oriyentovane programuvannya imperativne programuvannya i funkcijne programuvannyaData poyavi2000TvorciLari VollRozrobnikLari Uoll i Odri TanOstannij reliz riznitsya v zalezhnosti vid realizaciyi Rakudo Star 26 veresnya 2014 9 rokiv tomu 2014 09 26 Niecza Perl 6 26 bereznya 2013 11 rokiv tomu 2013 03 26 Sistema tipizaciyidinamichna tipizaciya d i dOsnovni realizaciyi NieczaPid vplivom vidHaskell mova programuvannya JavaScript Perl 5 Ruby mova programuvannya SmalltalkMova realizaciyiRakuOperacijna sistemaBagatoplatformovaLicenziyaZagalna gromadska licenziya GNU aboZvichajni rozshirennya fajliv raku rakumod rakudoc rakutest abo tRepozitorij vihidnogo kodugithub com Raku roastVebsajtraku org Osnovnoyu prichinoyu nebazhannya prodovzhuvati rozvitok proektu pid im yam Perl 6 stalo te sho Perl 6 ne stav prodovzhennyam Perl 5 yak ochikuvalosya spochatku a peretvorivsya v okremu movu programuvannya dlya yakogo tak i ne bulo pidgotovleno instrumentariyu za prozoroyu migraciyi z Perl 5 V rezultati sklalasya situaciya koli pid odnim im yam Perl proponuyutsya dvi paralelno rozroblyuvani samostijni movi nesumisnih odna z odnoyu na rivni sircevih tekstiv i kolom svoyih spilnot rozrobnikiv Vikoristannya odnogo imeni dlya rodinnih ale kardinalno vidriznenih mov prizvodilo do plutanini koli bagato koristuvachiv prodovzhuyut vvazhati Perl 6 novoyu versiyeyu Perl a ne principovo inshoyu movoyu Pri comu im ya Perl prodovzhuye zv yazuvatisya z Perl 5 a zgadka Perl 6 vimagaye okremogo utochnennya IstoriyaV Perl 6 mi virishili sho krashe zminiti movu nizh zminyuvati togo hto na nij pishe Lari Voll Pochatok prektuvannya novogo Perl bulo vpershe anonsovano 19 lipnya 2000 roku Todi na 4 j den togorichnoyi konferenciyi Perl Lari Voll ogolosiv ce u svoyij promovi State of the Onion 2000 Stan cibulini 2000 V toj chas osnovnimi cilyami bulo pozbutis istorichnih nasharuvan historical warts ta v zagalnomu ochistiti vnutrishnyu strukturu movi i interfejsiv API Proces pochavsya iz ryadu zapitiv na komentar RFC Vin buv vidkritim dlya vsih bazhayuchih ta zhoden aspekt movi ne lishivsya zakritim dlya zmin Po zavershennyu procesu RFC Voll rozglyanuv ta klasifikuvav kozhen iz zapitiv vsogo oderzhano 361 Todi vin pochav proces napisannya dekilkoh Apokalipsisiv Apocalypse sho znachit vidkrittya Isnuye seriya Ekzegeziv napisanih Damian Conway sho opisuyut vmist kozhnogo Apokalipsisu z tochki zoru praktichnogo zastosuvannya Kozhna Ekzegeza mistit prikladi kodu razom iz obgovorennyami jogo zastosuvannya ta rezultatami vikonannya Pri rozrobci Perl 6 vikoristovuyutsya taki najznachnishi zasobi spilkuvannya IRC kanal perl6 zajti v merezhi Spiski rozsilki na serverah dostupni na sajti perl org 11 travnya 2022 u Wayback Machine Git sho mistitsya na https github com perl6 20 zhovtnya 2015 u Wayback Machine SpecifikaciyaPerl 6 ce specifikaciya movi i tak samo yak u vipadku S ta S dlya neyi mozhe buti stvoreno bagato kompilyatoriv Isnuye proektna dokumentaciya na yaku v minulomu posilalisya yak na specifikaciyu Ale cej pidhid bulo zmineno i teper oficijnij nabir testiv roast viznachaye specifikaciyu Perl 6 Yak stverdzhuyut sami tvorci Perl 6 ce bud sho sho uspishno prohodit oficijni testi RealizaciyiRozrobka pershoyi najbilsh povnoyi realizaciyi pochalas u 2005 roci a nini vzhe isnuye bagato takih proektiv po realizaciyi Perl 6 bazuyetsya na i Not Quite Perl i vipuskaye novi versiyi shomisyacya U lipni 2010 proekt vipustiv pershu distribuciyu korisnu i zruchnu dobirku realizacij Perl 6 ta pov yazanih materialiv V she odnij znachnij realizaciya Perl 6 golovna uvaga pridilyayetsya optimizaciyi etapu kompilyaciyi STD oficijna gramatika Perl 6 viznachaye samu gramatiku i sintaksichnij analiz kodu Rozroblyayetsya i pidtrimuyetsya Lari VollomZgidnist iz Perl 5Perl 6 ne sumisnij z Perl 5 Hoch yih sintaksis bagato v chomu i shozhij ale ce dvi absolyutno rizni movi programuvannya Zgidnist iz Perl 5 ne stavilas za cil hocha peredbachayetsya specifikaciyeyu Isnuyut realizaciyi mozhlivosti pidklyuchennya moduliv Perl 5 vseredini Perl 6 shopravda na danij moment brakuye vidomostej shodo efektivnosti yih vikoristannya Sistema modulivSpecifikaciya Perl 6 vimagaye shob moduli viznachalisya im yam versiyeyu ta avtorstvom Ye mozhlivist vikoristovuvati modul lishe pevnoyi versiyi abo dva moduli z odnakovim im yam yaki vidriznyayutsya versiyami abo avtorstvom Dlya zruchnosti mozhna vikoristovuvati psevdonimi Sistema poshirennya moduliv Perl 5 CPAN poki ne pidtrimuye moduli Perl 6 Narazi isnuye prototip sistemi moduliv Osnovni vidminnosti vid Perl 5Perl 5 i Perl 6 vidriznyayutsya dokorinno hoch peredbachalos shob Perl 6 buv shozhim na originalnij Perl Bilshist zmin zaprovadzheno shob normalizuvati movu zrobiti yiyi legshoyu dlya rozuminnya yak dlya novachkiv tak i dlya dosvidchenih programistiv Specifikaciya Odniyeyu z osnovnih vidminnostej Perl 6 ye te sho na vidminu vid Perl 5 vin pochav svoye isnuvannya yak specifikaciya Ce oznachaye sho Perl 6 mozhe buti za potrebi realizovano zanovo a takozh sho programist ne musit zvertatisya do sircevogo kodu dlya pidtverdzhennya pevnoyi vlastivosti abo funkciyi movi Dokumentaciyu Perl 5 ocinyuyut yak vidminnu navit poza Perl spilnotoyu zavzhdi vidznachayut yiyi zavershenist i povnotu Odnache vona ne vvazhayetsya oficijnim pershodzherelnim dovidnikom i lishe opisuye u vilnij formi povedinku interpretatora Bud yaki nevidpovidnosti mizh dokumentaciyeyu i samim interpretatorom movi mozhut prizvesti do privedennya odnogo z nih u vidpovidnist do inshogo Sistema tipiv V Perl 6 do sistemi dinamichnih tipiv Perl 5 bulo dodano takozh sistemu statichnih tipiv Napriklad my Int i 0 my Rat r 3 142 my Str s Hello world Odnak statichne tipizuvannya zalishayetsya neobov yazkovim sho dozvolyaye programistu virishuvati bilshist zavdan bez jogo vikoristannya my i 25 10 i is 35 Perl 6 proponuye gibridnu sistemu tipiv dayuchi programistu mozhlivist vikoristovuvati statichne dinamichne tipizuvannya abo yih poyednannya Dzherela informaciyi 26 veresnya 2014 Arhiv originalu za 29 veresnya 2014 Procitovano 26 veresnya 2014 Niecza Perl 6 v16 nedostupne posilannya z zhovtnya 2019 Perl Foundation Perl 6 Wiki February 28 Arhiv originalu za 21 sichnya 2012 Procitovano 9 lyutogo 2012 perl org Arhiv originalu za 15 grudnya 2014 Procitovano 20 kvitnya 2013 Perl is a family of languages Perl 6 is part of the family but it is a separate language which has its own development team Its existence has no significant impact on the continuing development of Perl 5 angl Arhiv originalu za 16 grudnya 2014 Procitovano 19 grudnya 2014 Kline Joe 21 serpnya 2000 Arhiv originalu za 4 chervnya 2009 Procitovano 17 sichnya 2015 Wall Larry 2000 O Reilly Network Arhiv originalu za 6 chervnya 2010 Procitovano 17 sichnya 2015 Wall Larry 2 kvitnya 2001 Arhiv originalu za 23 listopada 2010 Procitovano 17 sichnya 2015 The Perl Foundation 2001 Arhiv originalu za 14 bereznya 2007 Procitovano 17 sichnya 2015 The Perl Foundation 2002 Arhiv originalu za 4 lyutogo 2012 Procitovano 21 sichnya 2015 angl Arhiv originalu za 23 grudnya 2014 Procitovano 19 grudnya 2014 Arhiv originalu za 26 grudnya 2015 Procitovano 19 grudnya 2014 angl Arhiv originalu za 23 grudnya 2014 Procitovano 22 grudnya 2014 Perl 6 is anything that passes the official test suite Michaud Patrick 29 July 2010 Arhiv originalu za 19 grudnya 2014 Procitovano 12 sichnya 2012 angl Arhiv originalu za 23 grudnya 2014 Procitovano 19 grudnya 2014 Arhiv originalu za 26 grudnya 2015 Procitovano 19 grudnya 2014 Wall Larry 2004 Arhiv originalu za 13 zhovtnya 2014 Procitovano 15 veresnya 2015 Modules perl6 org Arhiv originalu za 24 veresnya 2015 Procitovano 21 veresnya 2013 Wall Larry 10 serpnya 2004 Arhiv originalu za 31 zhovtnya 2014 Procitovano 28 zhovtnya 2015 Lhotsky Brad 10 bereznya 2004 Arhiv originalu za 27 veresnya 2015 Procitovano 30 zhovtnya 2015 Wall Larry 20 travnya 2009 Arhiv originalu za 31 zhovtnya 2014 Procitovano 4 listopada 2015