言語は1つで十分と人間界でも言えないように、コンピューターと会話するための言語も1つというわけにはいきません。 様々なコンピューターの設計があり、様々な用途があり、様々な言語開発者のこだわりがあります。 自分にぴったりなものがないと感じたら、創ってしまうことが気軽にできるソフトウェアの世界、世界中で新しい言語が誕生します。 中学生が開発した「Blawn」も有名ですね!(15歳が独自プログラミング言語「Blawn」を発表 わずか数週間で開発 - ライブドアニュース)
Go言語が好きだけど、ちょっと不満があることできっと誕生したV言語でGeo3x3を実装してみました。(src on GitHub、公式ロゴできました!Thanks < macoto1655)
module geo3x3 pub fn encode(lat f64, lng f64, level int) string { if level < 1 { return "" } mut res := "E" mut flat := lat mut flng := lng if lng < 0.0 { res = "W" flng += 180.0 } flat += 90.0 // 0:the South Pole 180:the North Pole mut unit := 180.0 for _ in 1 .. level { unit /= 3.0 x := int(flng / unit) y := int(flat / unit) res += (x + y * 3 + 1).str() flng -= f64(x) * unit flat -= f64(y) * unit } return res }
Go言語よりちょっとコンパクトに書けてなかなかいい感じです。 値を変化させるときにはRustのようにmutを付けることと、文字を囲む時の記号が ' ではなく、` なのがポイントで、好みが分かれるところかも。
V言語は、C言語のソースコードを生成するトランスパイラとして実装されています。
C言語の最初の #include 行を書くのが嫌 → 1行追加するトランスパイラ言語
forやifをIchigoJamのように大文字で書きたい → FORやIFを小文字に変換するトランスパイラ言語
{}じゃなくてbegin/endで書きたい → #define begin { を追加するトランスパイラ言語
・・・
好みに合わせて無限にできそうですね。
自分だけの言語、一度創ってみること、オススメです!
プログラミング好きなこどもたちのおまつり、PCNこどもプロコン今週末!
プログラミング好きな高専生のおまつり、jigインターン今週末締め切り!