今週、いくつかのスクリプト言語を行ったり来たりしてみて、どれもどれも似ていることに気づきました。それでも、私は常にGoogle(または最近はSO)に、「instanceof」と「endswith」のローカルでの同等物や、インターフェイスを宣言する正しい構文などの詳細を覚えてもらうようにしています。
これは、(人間の)言語であるEuropontoを思い出させました。漠然とした英語の構文と、漠然としたロマンス語/ゲルマン語/スラブ語の語彙を選択するだけで、すべて問題ありません。
では、スクリプト言語で同じことをしようとするとどうなるでしょうか。今日、Python スタイルのインデントされたブロックに興味がありますか? 罰金!プロトタイプ オブジェクトを使用しますか? Ok!いくつかのライブラリ関数の PHP 名のスペルを覚えることしかできませんか? 問題ない!
とにかく、それはワイルドでクレイジーなアイデアです。具体的な答えを認める質問が必要なので、次のように締めましょう。
[Python、Ruby、PHP、Perl、shell、JavaScript] のすべてのネイティブ構文とライブラリ関数を許可し、言語間でコード ブロックと関数名を自由に混在させることができるスクリプト言語を作成する際の最も重大な競合は何でしょうか。 ?
そして、特定の構造はステートメント レベルで一貫している必要があるとしましょう。したがって、次を許可します。
foreach( $foo as $bar )
{
if $foo == 2:
print "hi"
}
しかし、そうではありません。
foreach( $foo as $bar )
{
if $foo == 2:
print "hi"
endif
end
競合には次のようなものがあります。パーサーのあいまいさ。名前の衝突; オブジェクトまたは関数またはクロージャの矛盾するセマンティクス。など。その範囲は非常に大きな問題になると思いますが、教えてください。
最初から「コミュニティ ウィキ」として開始するので、楽しい質問だと思うが、より厳密にしたい場合は、自由に編集してください。