ソースコードの2レベルの編成。 必然か無意味か?

私は長い間ソフトウェアを開発してきましたが、この間ずっと、直接プログラミング言語がまったく開発されないか、非常に遅く開発されるという考えを取り除くことができません。 80年代以降の開発全体は、C ++を中心にいくつかの、時にはあいまいな形で踊ります。 実際、30年前に発明されたものについて書かれていますが、マイナーな「修正」は除きます。



おそらく、ここで少し気を引き締めますが、開発環境自体が大きく変わったことを認めなければなりません。



もちろん、このトピックは非常に深刻です。 あなたが移動できる多くの側面と方向があります。 この場合、1つだけを検討します。



開発者の大多数が長い間テキストエディタで書いていないが、ある程度はかなり高度な開発ツールを使用しているという事実から進んでいます。 私は、この方向で別の基本的な一歩を踏み出すことを提案します。 つまり、ソースコードを扱うフラットテキストの方法から逃れるためです。 たとえば、同じHTMLを使用してみましょう。たとえば、それほど重要ではありません。 重要な点は、選択された類推に固執する場合、開発環境はそれを編集する機能を備えたソースコードブラウザとして機能することです。 つまり、ソースコードを最終的な形で見たり編集したりすることはありませんが、コードはいつでも私たちにとってより便利な表現になっています。 ブラウザーでHTMLソースではなく、より「楽しい」何かを見るように。 これで何を解決できますか? 私の意見では、たくさん。



1.コードフォーマットの統一の問題が解決されました。 各開発者はコードのフォーマットを気にしませんが、開発環境の設定で、自分にとってより便利なパラメーターを設定します。 インデント、右端などを言います その結果、異なる開発者が同じコードを異なる表現で完全に安全に作業できます。



2.エンティティの分離の問題が解決されました。 さて、最も一般的な例では、これらは型と変数です。 現在、これは無計画に解決されています。たとえば、Java型では大文字で、変数は小さい文字で、Delphi型では「T」で始まるなどの習慣があります。 しかし、これはかなり不器用です。 提案されたアプローチでは、ユーザーによって宣言された型、たとえば、 Tableはユーザーに対してのみTableのように見えます。環境では、<type name = "Table" />のようになります。重要ではありません。このタイプが定義されている「手元」にファイルがなくても、これはデータタイプであることを時間は知っています。 その結果、型、変数などを安全に定義できます。 プレフィックス、サフィックスなどのない1つのレジスタで しかし、それでも、開発者は常に自分の前にあるテーブルを確実に認識します。なぜなら、彼は常にフォントや色などの特別な方法で強調表示されるからです。



3.ソースコードの文書化の問題は解決されました。 はい、もちろん、JavaDocのようなツールがありますが、怪しげな美観に加えて、多くの制限があります。 たとえば、異なる言語でコードを記述したり、関数の各パラメーターを別々に記述してみてください。 提案されたアプローチでは、そのような問題はありません。 コードの文字通りすべての単語に、任意の大きさで任意の多言語のドキュメントを簡単に添付できます。 この場合、文書化されたテキストは、ユーザーが自分で見たいと思うまで完全に見えなくなります。



4.リソース、任意、サウンド、画像までをソースコードに直接保存し、それらをリソースに直接リンクすることができます。 おそらくこれの最も一般的な例は、フォームデータが個別のリソース、Delphiの同じ.dfm、Androidのxmlリソースなどに保存される場合の視覚的な開発です。 デザインは、より安定して便利になり、おそらくより機能的になります。



5.次のような、今ではまったく考えられない設計







または、テーブルの形式の関数のパラメーターの説明、およびツリーの形式のクラスの要素。



6.ソースコードで直接ローカライズ。 つまり、たとえば、同じ文字列定数に複数の値を設定できます。 エディターでは、次のようになります。



constメッセージ= "Hello world!";



例外として、横にアイコンが表示される場合があります。アイコンをクリックすると、任意の言語のテキストを表示/修正できます。



はい、もちろん、提案されたアプローチには欠点もあり、いくつかは正しくそれらを指し示し、いくつかはおそらくさらに進んで、アイデア全体をナンセンスと呼びます。 しかし、私個人としては、この方向への動きは避けられないと確信しています。 唯一の質問は、誰がいついつ最初の一歩を踏み出すかです。



All Articles