はじめに
プログラミングをしていて、
・「なんでこんな書き方するの?」
・「人間の言葉と違いすぎる」
・「型変換とか意味わからん」
自分もそう思っていました。
なので、個人的なプロジェクトとして**「より自然に書ける言語」**を作ってみました。
それが "Water" です。
ダウンロード
実行するPythonのダウンロードページはこちら
GitHubでスターをいただけると、開発の励みになります!
Discussionsで構文案を募集中です!あなたの理想を教えてください
Waterとは?
僕はこのような言語を目指して開発しています。
・自然に読めるコード
・型を意識しすぎなくていい
・でも安全性もある
まぁつまり、人間の感覚とプログラムの厳格さのバランスを取る言語です。
わかりやすい例
まず以下の例を見てもらいましょう。
Python :
x = int(input("Enter number : "))
x = x + 5
Water :
set stay x int
x = input("Enter number")
x = x + 5
Pythonは事前の変数宣言が不要な代わり、型が変わるので厳格性の部分では劣っています。
Waterは一度変数を作成してしまえば、そのまま流用できてしまうのでその後も型入力をする必要はありません。
もし型の変更が必要であるならば、stayto x floatを打ってしまえば、float型に変化します。
また、型が自由に変更されるのを望むのであれば変数の作成時にstayをfreeに変更し、最後の型指定を外せば動的な型の変数を作成することが可能です。
もし初心者で「型とは何?」となったら最初の方は柔軟性のあるfreeを使用し、慣れてきたらstayを使って安定性を取ることができます。
リスト操作について
Python :
nums = [1,2,3]
nums.append(4)
nums[1] = 10
Water :
set list nums
list nums add [1,2,3] ←1,2,3をnumsの最後尾に追加
list nums add 4 ←4をnumsの最後尾に追加
list nums change 2 10
このように、一度リストの作成が必要だったり少し長かったりしますが、appendなどを使用せずにかなりわかりやすく記述されていることが分かります。
また、リスト内に入れる値の型を指定することもできます
上級を初心者も扱いやすく - 深層リスト
AIの行列計算なども考慮して、多レイヤー構造のリストが存在します。
例のコードを示します。
set depthlist data
deplist data add [1,1,1] "Hello"
deplist data add [1,1,2] "world"
このコードは、1つ目のリストの1番目のリストの1番目のリストの1番目に"Hello"という文字列を格納し、1つ目のリストの1番目のリストの1番目のリストの2番目に"World"という文字列を格納するコードです。
Pythonだと
data = [[["Hello"]]]
data[0][0].append("world")
と、正直わかりにくいです。
課題
それでも正直
・書き方が長くなる
・慣れすぎてる人には違和感がある
・多コードの時のパフォーマンスは未検証
などなど。
お願い
実際に使ってみて、noteやZenn、Qiita、Youtubeなどにレビューや改善点を残してほしいです。拡散の意味も込め、これから期待していただくと嬉しいです。
また、他力本願ではありますが、海外にも広めてほしいです。よろしくお願いします。