web-dev-qa-db-ja.com

学習体験のための新しいスクリプト言語を作成しますか?

私自身の個人的な学習体験のためのスクリプト言語を作成することは価値がありますか?

私が尋ねる理由は、すでに非常に多くのプログラミング言語が利用可能であるということです。私は、良い学習体験を提供する以外に実際に使用することは決してないでしょう。ただし、学習体験としてスクリプト言語を作ろうとするだけでは欠点があると思います。「生産的」なことを行うには、多くの時間と労力が必要です。

プログラミング言語を作成すること(意図された目的、構文、哲学、通訳などの草稿を書くことを含む)は、時間、努力、および学習経験に値するでしょうか?それとも私がもっと利益を得ることができる他のプロジェクトはありますか?

13
Ivan

スキルとポートフォリオを構築する

私の意見では、これは非常に良い学習経験になるでしょう。

  • 強制的にボンネットの下を見る
  • 物事が内部でどのように行われているかを学ぶためにあなたを導く
  • 他の実装を見て比較することをお勧めします
  • アルゴリズムスキルを最新の状態に保ち、
  • あなたに code (そしてうまくいけば document )をたくさん作ってください、それも悪いことではありません、
  • オンラインで共有してすべての人に見てもらえる重要なプロジェクトとコードベースを提供します。
    • 個人的な楽しみと満足感
    • あなたのスキルを潜在的な雇用主に紹介する、
    • 同じ分野に関心のあるピアと通信/ 交換
    • 潜在的にそれをさらに何かに成長させます...

だから私はこれを生産的で、有用で、全体的に「それに値する」と見ています。

始めましょう

これで、これに費やす予定の時間に応じて、さまざまなアプローチを使用できます...:

  • あなたが限られた時間枠を持っているなら、私は飛び込んでそれをコード化すると思います。
  • タイムフレームが長い場合は、確かに長い時間をかけて、仕様、チュートリアル、マニュアルなどを書くことができます...

小さなスタート

小さいから始めることをお勧めします。私が知っているように、そのような素晴らしい言語を直接書いた人はいません。 あなたはつまずき、落ち、失敗し、失敗し、失敗します。次に、成功しますが、うまくいきますが、まだ最悪なので、もう一度やり直します。そして、あなたは新しい機能を追加し、それは最終的にクールになっていますが、突然、最初に失敗した基本的な概念があることに気付きます。それで、あなたはもう一度最初からやり直します ...

私には非常に教育的なようです。

先に進んでください(そしてリンクを私たちと共有してください)。

「短い」のように小さい

しかし、繰り返しますが、から始めることをお勧めします。多くのコードと時間を要すると人々が言っ​​ても恐れないでください。必ずしもそうではありませんが、複雑な言語を目指していない場合は。 アランケイ と他の ゼロックスPARC エンジニアは簡潔さの目的として、1枚の用紙に収まる Smalltalk の初期バージョンを開発しました[〜#〜] parc [〜#〜] )の履歴の詳細については、 Xerox PARC:Dealers of Lightning を参照してください。 (読みやすさを犠牲にしない限り)教育的で制約のある適切なアプローチのようです。

「制約付き」のように小さい

高度な型システム、高次の関数、42の異なるパラダイムの組み合わせをすぐにサポートする必要はありません。それは単なる数式言語かもしれません。

他者の知識の再利用(および覗き見)

また、言語を最初から作成するために使用されるツールを確認することもできます。すべてを自分で再実装することもできますが、たとえば、既存のレクサーやパーサージェネレーターを検討する価値もあります。

そして、明らかに、 コンパイラの構築 全体を読みたくなるかもしれません。


さて、あなたの質問を「あなたの時間の最も生産的な使用になるでしょうか?」に変更すると、それは完全に別の問題になります:)

あなたが取り組むことができる他のたくさんの学習プロジェクトがあります、そしてそれはあなたのスキルを同等に上手く訓練することを示します。何を目指したいかによります。

15
haylem

私は先に行くと言います。

プログラミング言語の実装は幅広いトピックをカバーしており、内部でどのように機能するかについて多くを学びます。あなたはおそらく半ダースほど失敗した試みを経験するでしょうが、学習経験は非常に貴重です。

3
tdammers

(おもちゃだが完全な)プログラミング言語の設計と実装は、実際には私の上位部門のCSクラス(コンパイラクラスまたはプログラミング言語調査のいずれか、私はどちらを忘れたのか...)の(必須?)演習の1つでした。

したがって、少なくとも1人のCS教授がそう考えました。

あなたは他の言語が持っているすべてのそれらの「癖」のためのはるかに良い感謝に終わるでしょう。

2
hotpaw2

それには時間がかかります。維持する予定はありますか?

プログラミング言語を作成すること(意図された目的、構文、哲学、通訳などの草稿を書くことを含む)は、時間、努力、および学習経験に値するでしょうか?それとも私がもっと利益を得られる他のプロジェクトはありますか?

あなたの財政状態は無限ではないと思いますので、一見の価値はないと思います。あなたはあなたのお金を稼ぐことができる他の有用なプロジェクトにあなたの時間を費やすことができます。これはあなたが探している答えではないかもしれないことを覚えておいてください。しかし、論理的な観点からは、あなたのプログラミング言語は現時点で適切なプロジェクトではないかもしれないと私は言うでしょう。あなたが引退したコンピューター科学者であり、業界に貢献する必要性を感じたなら、私はそれを考えます。あなたはプログラミングに対する強い情熱を持っているようで、それは素晴らしいことです。しかし、まったく新しいスクリプト言語を構築するのですか?それは非常に長いプロジェクトになるでしょう。その間に、ポートフォリオに投げ込める多くのアプリケーションを構築できたでしょう。問題は次のとおりだと思います。新しいプログラミング言語をゼロから作成できるようにするための時間やオープンプライオリティはありますか。

1
Ryan