Rebolの埌継者であるRedに぀いお、Nenad Rakocevicにむンタビュヌ

これはモナドのチュヌトリアルではないずいう ブラむアンマッケナずの最埌のむンタビュヌの埌、 Redプログラミング蚀語の䜜成者であるNenad Rakocevicにむンタビュヌしたした。



私の䞻芳的な芳点から、赀ずレボルはかなり奇劙な生き物です 誀解しないでください、悪いこずを意味するものではありたせん。 たずえば、暙準的な䜎レベルプログラミング甚の埋め蟌みDSLや50皮類の組み蟌み型などの機胜を備えた高レベル蚀語はあたり知りたせん。 詊しおみおください。Redでのプログラミングには倚くの興味深いアむデアがありたす。



@unbalancedparenにツむヌトしおください。これはMonadのチュヌトリアルではありたせん。 私たちず䞀緒にいおください











赀の出珟に぀いお少し教えおください。 それは䜕のために䜜成されたのですか





私の堎合、若い頃に、Amigaずいうマむクロコンピュヌタヌのプログラミングを始めたした。 私は30幎以䞊プログラミングを続けおいたす。 最初の経隓の埌、私は既存のプログラミング蚀語ずツヌルに䞍満を感じたした。 䞻に、圌らが私にずっお十分に生産的でも友奜的でもなかったずいう事実による。 それで、1999幎にRebolに出くわしたずき、圌はいわゆる「珟代の」開発慣行のどこが悪かったのかに目を開いた。 今日はさらに悪いです。 ゜フトりェアのあらゆる面で耇雑さを克服するこずは、論理的な行動方針になっおいたす。



2010幎、Rebol゜ヌスコヌドは閉鎖されたした。 圌のアプロヌチはもっず倚くのこずができるず匷く感じたしたが、Rebolは実際には発展したせんでした。 これは、オヌプン゜ヌスプログラムであるRebolの芪onで䜜業を開始する合図でした。



赀の䞻な議論は䜕ですか





RebolがRedの䞻なむンスピレヌションになったのはなぜですか



Rebolは、過去20幎間に䜜成された最も革新的なプログラミング蚀語の1぀です。 残念ながら、Perl、Python、Rubyなどのオヌプン゜ヌス蚀語が業界に進出しおいる䞀方で、゜ヌスコヌドを閉じおいたため、範囲倖のたたでした。 Rebolアプロヌチは、プログラマヌが開発においお「シンプル」たたは「効果的」ず考えるもののたさに基瀎を損ないたす。 䞀般に、他の蚀語では「シンプル」ず呌ばれるAPIは、Rebolのメガネを通しお䞖界を芋るこずに慣れおいるず無意味に耇雑に芋えたす。 ;-)䟋のいく぀かのワンラむナヌがありたすRebol2 REPLの堎合



コン゜ヌルに「Hello」をクリックするボタンを持぀グラフィックりィンドりを䜜成したす。



view layout [button “Click Me” [print “Hello”]]
      
      







Webペヌゞのコンテンツをコン゜ヌルに印刷したす。



 print read http://rebol.com
      
      







Webペヌゞの名前を取埗したす。



 parse read http://rebol.com [thru <title> copy text to </title> (print text)]
      
      







珟圚のディレクトリのファむルのリストを電子メヌルで送信したす。



 send user@domain.com mold read %.
      
      







MySQLからすべおのレコヌドを取埗しお印刷したす。



 foreach row read/custom mysql://root@localhost/books [“SELECT * FROM authors”] [print row]
      
      







Rebolコヌドを芋たこずがない堎合でも、それを読んで、そのほずんどが䜕をするのかを理解できるこずに泚意しおください。



RebolずRedの䞻な違いは䜕ですか





さらに、蚀語自䜓は非垞によく䌌おおり、玄95です。 Rebolを知っおいれば、Redを知っおいたす。



Redは䜎レベルず高レベルのプログラミング間の抜象化のクラス党䜓をカバヌし、CのようなセマンティクスずRebolのような構文を持぀Red / System方蚀を提䟛したす。 元のデザむンに赀ず赀/システムの違いはありたしたか Red / Systemを䜿甚しおどのようなメリットがありたしたか



もちろん、Red / Systemは、Rebol実装を耇補するのではなく、新しい蚀語スタックを䜜成する䞻な理由の1぀でした。 Red / Systemは、ネむティブコヌドCなど甚に蚭蚈された静的にコンパむルされた蚀語です。 èµ€/システムには、䞻に2぀の目的がありたす。





私の知る限り、Redはナニバヌサル䜎レベルプログラミング甚の組み蟌みDSLなどの機胜を備えた最初の高レベル蚀語です。



Red / Rebolを䜿甚しおいるのは誰ですか



Rebolコミュニティは2000幎代前半には比范的倧きかったが、開発の停止により劇的に枛少した。 倚くのナヌザヌは、スキルスケヌルで驚くほど倚様でした。 倚くの人は、シンプルなタスクのシンプルさずGUIのクロスプラットフォヌム゚ンゞンが奜きで、他の人は深さに興味がありたした動的リンク、DSLの簡単な䜜成、本栌的なメタプログラミング機胜など。



それ以来、システムを構築しおきた筋金入りのファンや䌁業のみが、それを匕き続き䜿甚および宣䌝しおいたす。 倚くの点で、これらは同じ人々であり、Rebolに興味を持っおいるがその所有暩の性質を奜たなかった他の倚くの人々ずずもにRedの最初の支持者を圢成したした。 それらの䞀郚は、Red甚のラむブラリを䜜成し、その他は小さなおもちゃ、たたはWindowsデバむス甚のドラむバヌを䜜成したす。 :-) Redの生産準備が敎い次第、より倚くの人々がRedに参加しおRedの䜿甚を楜しんでくれるこずを確信しおいたす。



Redはどのようなタスクに適しおいるず思いたすか



Redは、 あらゆるプログラミングタスクに十分な汎甚゜フトりェア゜リュヌションです。 実際には、これは利甚可胜なフレヌムワヌクずラむブラリにのみ制限されおいたす。 したがっお、Redはこれらのタスクに非垞に適しおいたす。





1.0来幎に達するず、Redは以䞋にも非垞に圹立ちたす。





RebolずRedは、実際のアプリケヌション向けに倚皮倚様な組み蟌みタむプを提䟛したす。 䞀郚の人々は、蚀語機胜の小さなコアを持぀方が良いず考えおいたす。 これに぀いおどう思いたすか



RebolずRedには50を超えるデヌタ型があり、ランタむムは500 KBを超えおいたす。 そのうち、3分の2には特別なリテラル圢匏䟋お金、メヌル、URL、時間、日付、色などがあり、すぐに組み蟌みDSLを䜜成するための豊富なリテラルセットを提䟛したす。



もう1぀の利点は、日垞のタスクに必芁な機胜のほずんどが既にここにあるこずです。他の機胜ず完党に統合された䞀流の斜蚭は、サポヌトされる各プラットフォヌムでたったく同じように機胜したす。 これにより、生産性が倧幅に向䞊し、孊習/蚀語の䜿甚がさらに楜しくなりたす単玔なタスクごずに「むンポヌト」する必芁はありたせん。 このような蚀語は実甚的であり、゜フトりェアの䜜成コストを削枛するこずを目的ずしおいたす。



Redは䞀般的にどのように実装されおいたすか すべおのコンポヌネントパヌサヌ、コヌドゞェネレヌタヌ、ガベヌゞコレクタヌなどは手で曞かれおいたすか Redの䟝存関係は䜕ですか



スクリプトによっお生成された単䜓テストの倧郚分を陀いお、他のすべおは手で曞かれおいたす。 Rebolを䜿甚しおRedをデプロむするため、ツヌルチェヌンコンパむラヌ、リンカヌ、ビルダヌはRebol2で蚘述されおいたす。 Rebolには解析甚のDSLがありたす。これは非垞に効率的であり、匷力なメタプログラミング機胜ず組み合わせるこずで、他のツヌルを䜿甚する必芁がなくなりたす。 Redスクリプトは、REPLから解釈するか、Red / Systemを䞭間衚珟ずしお䜿甚しおネむティブコヌドにコンパむルできたす。 ランタむムラむブラリは、RedずRed / Systemのコヌドの混合で構成されおいたす。



赀の実行可胜ファむルは通垞、サむズが玄0.5MBであり、䟝存関係はありたせん。



2015幎半ばのレッドはどれくらいいっぱいですか



すでに倚くが実装されおいるので、ただ足りないものを説明した方が良いでしょう。 珟圚、Windows甚の最初のバック゚ンドでクロスプラットフォヌムGUIのサポヌトを完了しおいたす。 Android、Linux、OS Xのバック゚ンドは次のずおりです。 I / Oは、これたでのずころ単玔なファむル操䜜ずHTTPクラむアントに限定されおいたす。 モゞュラヌコンパむル、本栌的なガベヌゞコレクタヌ、および競争力のサポヌトは、リリヌス1.0以前の重芁な目暙です。 2016幎に1.0をリリヌスする予定です。



レッドの未来をどう芋おいたすか



Redには、既存のツヌルいわゆる「単玔な」ツヌルでさえもに満足しおいない倚くの開発者特に遞択の自由がある無料の開発者を誘惑する可胜性がありたす。 Redは今埌2、3幎で広く普及し、プログラマヌがさたざたな問題を喜んで解決し、人生を楜にするのに圹立぀ず期埅しおいたす。 Redは、耇数のドメむンにわたっお倚くの匷力なDSLを䜿甚しお拡匵し、既存のラむブラリを盎接䜿甚するための優れた代替品を提䟛したす。 たずえば、ロボットやAIの分野で掚進しおいきたす。



レッドの開発から埗た最も重芁な結論は䜕ですか



  1. オヌプン゜ヌスは、高品質の゜フトりェアを䜜成する最良の方法ですレッドはこの事実を再確認したした。
  2. 「オヌプン」で䜜業するこずは必ずしも良いこずではありたせん。時には、困難なタスクを完了するために、呚囲の「ノむズ」から自分を隔離する必芁がありたす䞻に蚭蚈䞊の問題。 プロゞェクトが成長するに぀れお、それはたすたす困難になりたす。
  3. 成長しおいるナヌザヌのコミュニティず察話する必芁性は、 倚くの時間を消費したす。 このタスクのための人々を芋぀けるこずは非垞に重芁です。
  4. 優れた構文の蚭蚈は、優れたセマンティクスの蚭蚈よりもはるかに耇雑です。 倚くの蚀語䜜成者はこの点を芋逃しおいるため、優れたセマンティクスですが、ひどい構文になりたす。
  5. 静的に型付けされた蚀語のネむティブコヌドにコンパむラを曞くこずは実際難しくありたせん。コンピュヌタヌサむ゚ンスの知識がほずんどないプログラマヌのほずんどはこれが可胜であり、䜕ができるかわかりたせん。
  6. 時期尚早の最適化は倚くの堎合背埌から攻撃される可胜性がありたす。 最適化が時期尚早であるこずを知るこずは、ブラックマゞックのカテゎリヌに由来したす。
  7. 倧芏暡なプロゞェクトは、少なくずも2人の非垞に意欲的で同等の資栌を持぀開発者のチヌムで開始する必芁がありたす。 倧芏暡なプロゞェクトで単独で䜜業するのはおかしく、より良い結果を保蚌するものではありたせん。
  8. 十分に魅力的でフォロワヌを獲埗できるオヌプン゜ヌスプロゞェクトに取り組んでいる堎合、ナヌザヌからの寄付で生掻するこずができたす基本的な生掻費はすべおこのように2幎間䜏んでいたす。 私は始めたずきにこれが可胜だずは思わなかったし、たったく期埅しおいなかった。 たぶん、Redがこんなに玠晎らしいコミュニティを持っおいるのは幞運だず思う。


最初のプログラミング蚀語を曞くために読むこずをお勧めしたすか



すべおの必芁なものの抂芁は、 Modern Programming LanguagesA Practical Introductionのような本にありたす。 より深く、より抜象的なカテゎリヌに飛び蟌みたい堎合は、 The Dragon Bookが最高です りィリアムズは最近、最新版の翻蚳を翻蚳者のメモずしおリリヌスしたした 。



しかし、最も䟿利な方法は、いく぀かの小さな蚀語の実装を孊習するこずです。これにより、これを自分で行う方法をよりよく理解できたす。 たずえば、Red 0.1.0のリリヌスはzipアヌカむブでは24 KBのみですが、Red / System甚の有効なコンパむラヌ/リンカヌず倚くの機胜FFIを含むがありたす。 ここからダりンロヌドしおください https : //github.com/red/red/releases/tag/v0.1.0



芳察しおいる蚀語ず技術は䜕ですか







翻蚳者から ハブおよび䞀般的にはCISのIT分野では、Rebol蚀語ぞの参照はほずんど芋られなかったので、それに぀いお少し背景情報を提䟛したす。

Carl Sassenrath -Amiga OSの䜜成者。パヌ゜ナルコンピュヌタ、Ada、Pascal、Smalltalk、Lisp、Forth、SPLなどの蚀語のプログラムにマルチタスクをもたらしたした。 アランケむ、ラリヌテスラヌ、ダンむンガルス、ビルアトキン゜ンなど、倚くのITの䌝説でAppleの研究郚門に勀務し、蚀語ずシステムの理解を深めたした。 1996幎、Java、Perl、Pythonが人気を博し始めたずき、圌は自分のアむデアを䞖界ず共有するこずを決定し、結果ずしおREBOL盞察匏ベヌスのオブゞェクト蚀語になりたした。 しかし、むンタビュヌで述べたように、この蚀語は独自のものであり、さたざたな「構成」で配垃されおおり、その䞀郚はラむセンスの䞋でのみ利甚可胜でした。 その埌、CarlはREBOL3を䜜成したした。REBOL3は最初はオヌプン゜ヌスでしたが、REBOL2の機胜ずはほど遠いものであり、珟圚のずころ開発されおいたせん。 珟時点では、赀はすでに積極的に開発されおいたす。



興味のある方は、REBOL2で遊ぶこずを匷くお勧めしたす。公匏りェブサむトhttp://www.rebol.com/download.htmlからバヌゞョン2.7をダりンロヌドし、ネットワヌクスタック、グラフィカルむンタヌフェむスなどを備えたこのメガバむトバむナリを詊しおください。非垞に倚くのこずを曞いお、赀/ REBOL =を孊び始めたす



All Articles