プログラミング蚀語の歎史Perlは、プログラマヌのために蚀語孊者によっお䜜成された珍しい蚀語です





Perlプログラミング蚀語は、1987幎にラリヌりォヌルがアメリカの䌚瀟であるナニシスでシステムプログラマヌずしお働いたずきに䜜成されたした。 ラリヌが新しいプログラミング蚀語を開発する際に远求した目暙は、圌の名前PERLに反映されおいたす。PERLは、埌に実甚的な抜出およびレポヌト蚀語、぀たり「デヌタを抜出し、レポヌトを䜜成するための実甚的な蚀語」ずしお解読されたした。



Perlの起源の䌝説の1぀では、その名前の蚀語はその時点ですでに存圚しおいたため、ラリヌは発音を倉曎せずに1文字だけ名前を短瞮したした。 皮肉なこずに、今日、歎史家以倖の蚀語を誰も芚えおおらず、Perlは䞖界䞭で知られおいたす。



しかし、別のバヌゞョンによるず、ラリヌは圌の花嫁の名前で䜜成した蚀語に名前を付けたした。





ラリヌ・りォヌル



Perlの圢成は、Ada、Basic、Fortran、Lisp、Pascal、そしおもちろんCの蚀語の圱響を受けたした。Perlは、コンピュヌタヌサむ゚ンスのさたざたな分野を吞収したした。コマンドずナヌティリティの豊富なセット、よく考えられたアヌキテクチャ、およびデヌタ衚瀺ぞの統䞀されたアプロヌチを備えたUnix。



Unixレガシヌ



Perl蚀語の開発に察する決定的な圱響は、Perl蚀語が開発されたUnix環境によっおもたらされたした。 圓初から、このオペレヌティングシステムは、プログラマヌの小さなグルヌプによっお䜜成されたした。 したがっお、ここで定められおいる原則は、人が日垞的に䜿甚するこずの利䟿性に焊点を圓おおいたす。すべおは、機胜的、簡朔、可胜な限り均䞀に行われたした。 たずえば、ほずんどのシステム蚭定はプレヌンテキストで保存されるため、簡単なテキスト゚ディタを䜿甚しお歊装した人が読み取り、修正できたす。



Unixオペレヌティングシステムに粟通しおいる人にずっお、この資料は新しいものではありたせん。 しかし、MS-DOSおよびWindowsを䜿甚する倚くのプログラマヌは、Unix OSで䜜成および開発されたツヌルsoftwaretoolsに基づくプログラミングの原則を理解するこずが重芁です。 著名なプログラマヌのブラむアン・カヌニガンずフィリップ・プラりガヌによっお、それらに぀いおの泚目すべき本が曞かれたした。 このアプロヌチの重芁なポむントは次のずおりです。



•特定の問題を解決するために、小さなプログラムが開発され、それぞれが解決されるタスクの1぀の機胜を実行したす。



•問題は、各プログラムからのデヌタの順次凊理による小さなプログラムの盞互䜜甚によっお解決されたす。



•これらの小さなプログラムを開発するずきは、それらが他の問題を解決するために䜿甚できるように、それらの最倧の独立した䜿甚に焊点を合わせるべきです。 したがっお、ツヌルISは、さらに普遍的な䜿甚のために埐々に䜜成されおいたす。



•ほずんどのツヌルは、プログラムの圢匏で開発されたす。これは、暙準入力からデヌタストリヌムを読み取り、凊理枈みデヌタを暙準出力に曞き蟌むフィルタヌです。



•ツヌルは、OSコマンド蚀語を䜿甚しおアプリケヌションに結合されたす。入力/出力のリダむレクト、゜フトりェアパむプラむンの䜜成あるプログラムの出力ストリヌムを別のプログラムの入力に向ける。



•ツヌルの保存デヌタの䞻な圢匏は、人間の凊理および読み取り゜フトりェアに同様に適したテキストファむルです。



•正芏衚珟は、緩やかに構造化されたテキスト情報を効率的に凊理するために䜿甚されたす。



有利な芁因



この蚀語はUsenetネットワヌクのナヌザヌ間で急速に広たりたした。 Perlが䜜成されたUnixオペレヌティングシステムOSには既にテキスト情報awk、csh、grep、sedなどを凊理するための倚数の倚様な手段があったにもかかわらず、膚倧な数のシステム管理者ずプログラマヌが新しい蚀語に恋をしたした。 簡単に習埗しお䜿甚できたした。構文はCに䌌おおり、Perlプログラムをプリコンパむルする必芁がなく、゜ヌスコヌドを簡単に倉曎できたした。 そしお最も重芁なこずは、それは本圓に非垞に実甚的な蚀語でした。その助けにより、最も単玔なものから最も耇雑なものたで、ほずんどの日垞的なタスクが簡単に解決されたした。







Perl蚀語を積極的に䜿甚しお、さたざたな囜のプログラマヌがLarry Wallに新しい機胜を远加するか、既存の機胜を改善する提案を送りたした。 Perlは、Unixワヌドプロセッシングツヌルから匷力で汎甚的なプログラミングシステムぞず埐々に進化したした。 1990幎代半ば、むンタヌネットの発展に䌎い、Perlはりェブマスタヌが動的なサむトやむンタヌネットプログラミングを䜜成するためのお気に入りのツヌルになりたした。



テキストデヌタを凊理するための匷力な組み蟌みツヌルにより、PerlはHTMLおよびXML圢匏の情報を凊理するために広く䜿甚されおいたす。



Perlは、OSのUnixファミリFreeBSD、Linux、Solarisなどの配信に䞍可欠なコンポヌネントになりたした。 さらに、珟圚たでに、Perlはほずんどすべおの最新のハヌドりェアプラットフォヌムスヌパヌコンピュヌタヌ、RISC、Macintosh、PC、パヌムトップコンピュヌタヌおよびオペレヌティングシステムAIX、Linux、MacOS、MS-DOS、NetWare、OS / 2、QNX、Solaris、 Windows、VMSなど。



これにより、人気のあるPerlプログラムをあるオペレヌティング環境から別のオペレヌティング環境に簡単に移怍できたす。



間違いなく、その広範な䜿甚は、GNU GeneralPublic LicenseGPLたたはArtistic Licenseのいずれかのラむセンスの䞋で無料で配垃されるずいう事実によっお促進されたした。 しかし、䞻なものは、さたざたなシステムや適甚された問題を最も単玔なものから最も耇雑なものたで迅速に解決する必芁がある堎合、専門家や経隓の浅いプログラマヌを完党に支揎するすべおの手段を備えおいるこずです。 その結果、PerlはApache、Linux、PHP、Pythonずずもに、最も成功したオヌプン゜ヌスオヌプン゜ヌスプロゞェクトの1぀になりたした。



異垞なプログラミング蚀語



Perl開発の原則は、以前のプログラミングで䜿甚されおいたものずは倧きく異なりたす。 この蚀語の革新的な性質は、著者であるラリヌりォヌルのナニヌクな性栌特性ず、圌の倚様な興味ず関連しおいたした。



倧孊で勉匷しおいる間、ラリヌりォヌルは蚀語教育を受けたした。 さらに、圌はプログラミングに埓事し、倧孊のコンピュヌタヌセンタヌで働いおいたした。



おそらく、Perlの䜜者ずしおのLarryの䞻なメリットは、自然蚀語の特性ず原則を考慮に入れた蚀語を䜜成できたこずです構造の状況的倚矩性、合理的な冗長性そしおこれにより、スタむルの倚様性、ネむティブスピヌカヌのさたざたなレベルの知識ぞの最倧限の適応性、柔軟性構文ツヌルの衚珟力。 このすべおが、この蚀語での「曞く」プロセスそのものに特別な創造的な味を䞎えたす。



Perl蚀語の䜜者は、自然蚀語に通垞適甚される「むディオム」、「メタファヌ」、「シノニム」、「コンテキスト」などの甚語を思わず䜿甚したす。 たた、Perlの蚀語を説明しおいるLarry Wall自身も、名詞、動詞、文、単数圢、耇数圢の代名詞などの蚀語甚語を広く䜿甚しおいたす。



卓越した蚀語孊者 ワヌフは次のように述べおいたす。「蚀語は私たちの考え方を圢䜜り、考えられるこずを決定したす。」 J. Bentleyの著曞「Pearls of Programmers 'Creativity」でも同じ考えが確認されおおり、APLプログラミング蚀語の機胜が開発者に配列の問題に察する独自の解決策を促した堎合に぀いお説明しおいたす。 この意味で、プログラマヌのアむデアを翻蚳するための蚀語ずしおのPerlは、開発者の想像力を劚げず、衚珟の自由を最倧限に䞎え、時には非暙準的な゜リュヌションを提案するこずさえありたす。



蚀語の欠点の蚀及ずしお 

  • 静的型付けメカニズムの欠劂;
  • 蚀語手段の冗長性;
  • モゞュヌル性の欠劂;
  • 「異垞な」OOP実装。


Perl蚀語原則



人間の蚀語は、限られた構造のセットを䜿甚しお、異なる意味を衚珟し、異なるコンテキストで再利甚する傟向がありたす。 この原則に埓っお、Perlでは同じ蚀語の構成芁玠は異なる意味を持ち、それらの明確な理解は䜿甚のコンテキストによっお決定されたす。



コンテキストの原則は、前の原則ず密接に関連しおいたす。 コンテキストは、衚珟の意味を正しく解釈するために自然蚀語で䜿甚されたす。 たずえば、Perlでは、この原則に埓っお、呌び出しのコンテキストに応じお、倚くの関数が単䞀の倀たたはリストを返したす。構文が単䞀の倀たたは耇数の倀の匏を必芁ずするかどうかです。



自然蚀語の意味的匷調の原則は、ステヌトメントの重芁な郚分に泚意を匕くのに圹立ちたす。 この堎合、割り圓おられた郚分は通垞、文の先頭に配眮されたす。 Perlでは、プログラマはこの原則を䜿甚しお、修食子たたは条件付きの構造を持぀単玔な文を遞択するこずにより、意味を匷調できたす。次に䟋を瀺したす。

$ you->が必芁な堎合$ it、$ we->はdo$ it たたは

もし$ you-> want$ it{$ we-> shalldo$ it}}


自然蚀語の自由の原則は、同じ考えを衚珟するためのオプションが垞にいく぀かあるこずを瀺唆しおいたす。 自然蚀語の堎合ず同様、Perlでは、蚀語のさたざたな衚珟手段を䜿甚しお、いく぀かの方法で同じ結果を埗るこずができたす。 これはいわゆるTIMTOWTDIの原則です。略語は「Tim Toody」ず読み、「それを行うには耇数の方法がありたす」を意味したす。「䜕かを行う方法は耇数ありたす。」 それに応じお、各開発者は、蚀語のスタむルや知識レベルに合わせお、特定の状況でより適切な蚀語構成のバヌゞョンを遞択したす。



そのようなアプロヌチは、䞻な開発目暙が蚀語構成の䞀意性ず最小化である堎合、プログラミング蚀語の厳密に圢匏的な芋方ずは完党に反察です。 しかし、心理孊ず蚀語的思考の芳点から、「蚀語的アプロヌチ」は倚くの点で逆説的に生産的です 結局、創造性を刺激し、自然蚀語を䜿甚した人間の経隓を掻甚したす-そしお、Perlでプログラムを曞くこずは刺激的で興味深いものになりたす。 これがおそらく、Perlプログラマヌが「楜しい」楜しい、面癜いずいう蚀葉を奜む理由です。



最初のバヌゞョンずラクダの本



Larry Wallは、Unisysでプログラマヌずしお働いおいた1987幎にPerlの開発を始めたした。 バヌゞョン1.0がリリヌスされ、1987幎12月18日に「awk and sedの代替」ずしお発衚されたした。



Perl 2は1988幎に発売されたした。 その䞻な革新は、再蚭蚈された正芏衚珟メカニズムでした。



1989幎にリリヌスされたPerl 3には、バむナリデヌタストリヌムを凊理する機胜がありたす。



最初は、Perlの唯䞀のドキュメントは単䞀の巚倧なmanペヌゞでした。 1991幎、プログラミングPerl倚くのプログラマヌに衚玙のむメヌゞからCamel Bookずしお知られおいるがリリヌスされたした。これは事実䞊の蚀語暙準になりたした。







同時に、蚀語バヌゞョンは4䜍に「䞊げられたした」-重芁な倉曎を瀺すためではなく、このバヌゞョンの蚀語が本によっお文曞化されたこずを瀺すためです。 Perl 4は、1993幎にPerl 4.036に焊点を圓おた䞀連のリリヌスを行いたした。



Perl 5



Perl 5は1994幎に発売されたした。 同時に、Perl5-portersメヌリングリストは、Perl 5をさたざたなプラットフォヌムに移怍する䜜業を調敎するために䜜成されたした。 Perl 5の開発、保守、移怍のメむンフォヌラムのたたです。



Perl 5.000は1994幎10月17日にリリヌスされたした。 完党に曞き盎されたむンタヌプリタヌず、オブゞェクト、リンク、ロヌカル倉数my $ var_name、モゞュヌルなどの倚くの新しい蚀語機胜が含たれおいたした。 モゞュヌルは、むンタヌプリタヌを倉曎せずに蚀語を拡匵するメカニズムを提䟛するため、特に重芁でした。 これにより、むンタヌプリタヌを安定させるこずができたしたが、同時に、通垞のPerlプログラマヌが蚀語に新しい機胜を远加できるようになりたした。 Perl 5は今日たで掻発に開発されおいたす。



Perl 5.001は1995幎3月13日にリリヌスされたした。 Perl 5.002は1996幎2月29日にリリヌスされ、新しいプロトタむプがサポヌトされたした。 これにより、モゞュヌルの䜜成者は、Perlの組み蟌み関数ず同じように動䜜する関数を䜜成できたした。 Perlバヌゞョン5.003は1996幎6月25日に登堎し、発芋されたセキュリティ問題を修正したした。



Perl 5の歎史の䞭で最も重芁なむベントの1぀は、蚀語自䜓の倖郚で発生し、モゞュヌルサポヌトの結果でした。 1995幎10月26日に、CPAN包括的なPerlアヌカむブネットワヌク-「Perlアヌカむブの包括的なネットワヌク」が䜜業を開始し、Perlモゞュヌルのリポゞトリおよび蚀語自䜓の゜ヌスコヌドになりたした。 珟圚、ネットワヌクには8,000人以䞊のプログラマヌによっお䜜成された25,000以䞊のモゞュヌルがありたす。



Perl 5.004は1997幎5月15日にリリヌスされ、ずりわけ、すべおのクラスが自動的に掟生するメむンオブゞェクトを蚀語に提䟛するUNIVERSALパッケヌゞが含たれおいたした。 モゞュヌルのバヌゞョンを芁求する機胜も含たれおいたした。 これに加えお、PerlはMicrosoft Windowsおよび他の倚くのオペレヌティングシステムのサポヌトを開始したした。



Perl 5.005は1998幎6月22日にリリヌスされたした。 このリリヌスには、正芏衚珟プロセッサのいく぀かの改善、B :: *モゞュヌルを䜿甚したバック゚ンドぞの新しいフック、正芏衚珟のqr //匕甚笊挔算子、他の新しいモゞュヌルの倧芏暡な遞択、倚くのオペレヌティングシステム、特にBeOSのサポヌトが含たれおいたした。



2000幎代



Perl 5.6は2000幎3月22日にリリヌスされたした。 䞻な倉曎には、64ビットシステムのサポヌト、Unicode文字列の衚瀺、倧きなファむル2 GBを超えるファむルのサポヌト、およびキヌワヌドが含たれたす。 Perl 5.6の開発䞭に、バヌゞョンの呜名スキヌムを他のオヌプン゜ヌスプロゞェクトにより近くなるように倉曎するこずが決定されたした。 バヌゞョン5.005_63の埌にはバヌゞョン5.5.640が続きたした。 蚈画によれば、開発䞭のバヌゞョンには奇数番号が割り圓おられ、安定バヌゞョンには偶数番号が割り圓おられおいるはずです。



2000幎、Larry WallはコミュニティにPerlの次のバヌゞョンの提案を積極的に議論するよう呌びかけたした。 この議論の結果は361 RFCコメントのリク゚ストであり、Perl 6の開発で䜿甚されたした。



2001幎、新䞖代のPerlの提案をたずめた最終文曞の䜜業が始たりたした。 結果は正匏な文曞ずしおではなく、すべおのRFCの芁玄ずしお提瀺されたした。 この時点で、Perl 6は蚀語の説明ずしおのみ存圚しおいたした。



Perl 5.8は2002幎7月18日に初めおリリヌスされ、その埌毎幎曎新されおいたす。 5.8.9ずいう番号のPerl 5.8の最新バヌゞョンが2008幎12月14日にリリヌスされたした。 Perl 5.8はUnicodeサポヌトを改善し、新しいI / O実装を远加し、マルチスレッドサポヌトを远加し、数倀の粟床を䞊げ、いく぀かの新しいモゞュヌルを远加したした。



2004幎、Synopsisの䜜業が始たりたした。Synopsisは、圓初、䞊蚘の最終文曞を芁玄した䞀連の文曞ずしお考案されたした。 しかし、この䞀連の文曞は埐々にPerl 6の仕様になりたした。2005幎2月、Otrius TanはHaskellで曞かれたPerl 6むンタプリタであるPugsの䜜業を開始したした。 これは、Perl 6を珟実にする最初の実際の詊みでした。 この詊みは2006幎に行き詰たりたした。



20歳以䞊のずき



2007幎12月18日、Perl 1.0の20呚幎の日、Perlのバヌゞョン5.10.0がリリヌスされたした。 このバヌゞョンには、Perl 6に近づけるいく぀かの泚目すべき革新が含たれおいたした。これらの革新の1぀は、正芏衚珟を曎新する新しいswitchステヌトメント「given」/「when」ず呌ばれるず「〜」スマヌトマッチ挔算子でした。





パヌル蚘念日



ほが同時期に、Parrot仮想マシンず連携しお開発されたRakudo Perlずしお知られる新しいPerl 6実装の開発が本栌的に始たりたした。 2009幎11月以来、Rakudo Perlは毎月定期的に曎新されおおり、珟圚、Perl 6の最も完党な実装です。



Perl 5.11の登堎以来、Perl 5開発プロセスに倧きな倉化が生じたした。 開発コミュニティは毎月のリリヌスサむクルに切り替えおおり、リリヌス日は3か月前に蚈画しおいたす。



2010幎4月12日に、Perl 5.12.0が公開されたした。 顕著な革新には、新しいパッケヌゞNAME VERSION構文のサポヌト、Yada Yadaオペレヌタヌただ実装されおいないプレヌスホルダヌコヌドのマヌク付けに䜿甚、「2038問題」Y2038の完党な゜リュヌション、正芏衚珟オペレヌタヌのリロヌド、DTrace動的フレヌムワヌクトレヌス、およびUnicode 5.2暙準の完党サポヌト。



Perl 5.12.2は2010幎9月7日にリリヌスされ、Perl 5.12.3は2011幎1月21日にリリヌスされたした。 これらのリリヌスには、曎新されたモゞュヌルず、ドキュメントぞのいく぀かの倉曎が含たれおいたす。 バヌゞョン5.12.4は2011幎6月20日にリリヌスされたした。このブランチの最新バヌゞョンである5.12.5は2012幎11月10日にリリヌスされたした。



゚クストリヌム5カ幎蚈画



2011幎5月14日、Perl 5.14がリリヌスされたした。 JSONサポヌトは、バヌゞョン5.14.2以降に組み蟌たれおいたす。 このブランチの最新バヌゞョンである5.14.4は、2013幎3月10日にリリヌスされたした。



2012幎5月20日、Perl 5.16がリリヌスされたした。 重芁な革新は、Perlの正しいバヌゞョンを指定する機胜です。これぱミュレヌトする必芁があり、ナヌザヌはPerlを曎新できたすが、そうしないず新しいバヌゞョンず互換性のない叀いスクリプトを保持できたす。 Perl 5.16カヌネルはUnicode 6.1をサポヌトしおいたす。



2013幎5月18日、Perl 5.18がリリヌスされたした。 重芁な革新には、新しいdtraceフック、字句関数、カヌネルに含たれる関数数の増加、セキュリティ䞊の理由によるハッシュ実装の改蚂、Unicode 6.2のサポヌトが含たれたす。



2014幎5月27日に、新しい安定バヌゞョン-Perl 5.20.0がリリヌスされたした。 開発にはPerl 5.18.0から玄12か月かかり、124人の䜜者による2900個のファむルのうち玄470,000行が倉曎されたした。



2015幎12月に、Perl 5.22.1がリリヌスされたした。 開発には6か月かかりたした。



2016幎5月9日に、Perl 5.24.0プログラミング蚀語の新しい安定バヌゞョンがリリヌスされたした。 開発にはPerl 5.22.0から玄11か月かかり、77人の著者による1800個のファむルのうち玄360,000行が倉曎されたした。



2016幎7月のデヌタによるず 、プログラミング蚀語の人気の高たりを枬定するTIOBEむンデックスは、Perlが9䜍にランクされおいるこずを瀺したした。





これは昚幎よりも2ポゞション高い。



Perl 6



りィキペディアに蚘茉されおいるように、Perl 6はPerlプログラミング蚀語の次のバヌゞョンです構造の芳点から、Perl 6は独立したプログラミング蚀語ず考える方が䟿利です。 それは蚀語の革呜的な開発であり、埌者はほずんど「最初から」曞かれおいたす。 Perlの歎史の䞭で初めお、新しいバヌゞョンの開発は、今日も倉わり続ける仕様を曞くこずから始たりたした。



プログラムをコンパむルするPerl 6は、バむトコヌドを䜜成し、その埌仮想マシンによっお実行されたす。 同じアプロヌチがJavaおよび.NET Frameworkテクノロゞヌにも適甚されたす。



実際、以前のバヌゞョンのPerlず共通のルヌツを持っおいるが、それず互換性のない新しい蚀語に぀いお話すこずができたすが、仕様では互換モヌドを想定しおいたす。



Perl 6の開発は2000幎に始たり、今日たで続いおいたす。



圓初、PerlはコンパむルされたUnixナヌティリティに匹敵する速床のツヌルずしお考えられおいたした。 PerlランタむムシステムがPerlプログラムの゜ヌスコヌドを読み取り、その堎でコンパむルし、コンパむルされたプログラムをすぐに解釈するため、䜜業の速床を確保する必芁がありたした。



Larry Wallは冗談めかしおプログラマヌの3぀の䞻な長所、怠laz、焊り、うぬがれを宣蚀したした。 圌の意芋では、Perlはこれらの開発者の品質を満たすように蚭蚈されおいたす。



All Articles