kotlinちょこっとかじってみたけどね苦いわ。
それとJAVA系の訳わからん開発環境。
昔からの柵(ソフト資産)引きずって雁字搦め。
私はJAVA嫌いなので関わってこなかったんですわ。
根っこはアセンブラー使いで、アセンブラ語でシコシコ書くのが好きな人種。
それから気楽なインタプリター系。そして今はpythonにたどり着く。
インタプリター系で楽なプログラミング覚えちゃったので戻れないですね。
お仕事ならJAVAでもなんでも使わんといけませんけど、
趣味でやる分には選ぶ自由がこっちにある。JAVAなんかクソ。
クソではあるけどビジネスとしては大成功ではある。
JAVAで飯食ってるプログラマーは多い。
pythonは高級で汎用なプログラミング言語で
複数のパラダイムをサポートする。
極めて柔軟で記述性が高い言語。
リスト型と辞書型を使って直感的なコードが書ける
list型(配列)
list=[[1,2],[3,4],[5,6]] 初期化された二次元配列。
x=list[0][1] 取り出し 2
list[1][1]=x 格納
list[2][1]=[1,2,3] 格納 動的型付け 整数から3つの数列に変更
辞書型 ネストk可
{dict=”key1":{"data1":0,"data2","abc","data3":20.1,"data4":[1,2,3]},
”key1":{"data1":1,"data2","def","data3":30.1}
}
x=dict["key1"]["data1"] 取り出し
dict["key2"]["data1"]=x 書き換え
dict["key2"]["data4"]=[1,2,3] 項目追加
よく使うのはデシジョンテーブル
dict={"A":0,"B":1,"C":2,"D":3}
x=dict["A"] if文を使わず値を設定
if文が減ればコードが見やすくなる。
dict={"A":処理a,"B":処理b,"C":処理c"D":処理d}
x=handler(dict["A"]) if文を使わず関数を呼び出す
処理ルーチンに直接飛ぶ手法は機械語的。
並列処理に向いてる。
内包表記
x=[ row for row in list if row[0]=1] リストから特定の行を取り出す。
慣れればわかりやすい構文。一文なので処理が高速化される。
通常表記だと、for以下がループの都度解釈されることになって負荷が上がる。
x=[]
for row in list:
if row[0]==1:
x.append(row)
簡潔に書く事によってインタプリターの負荷を下げ直感的で読みやすくなく。
直感的で読みやすくなれば細かいコメントは不要。
静的言語は直感的に書けないので、何をやってるのかコメントを記述しとかないとわからなくなる。
静的言語はマシン語への対応で必ず制約が伴います。
コンパイラだけでそれを解決するのは困難です。
言語仕様が窮屈になってしまう。
直感的に書ける事はとても重要です。
それをインタープリターと動的型付けで解決しようとしてるのがpython。
実行時にエラを吐くので商業ベースのアプリには向きません。
逆に個人ユースのアプリには最適。
今後もプログラマーの感性に合わせた記法が追加されていくでしょう。
記法は魔法の呪文のようなもので、強力な呪文が開発され度に大きく進歩します。
プロクラムはシコシコ書くものではなく、強力な呪文で簡潔に書く。
そしたら強い威力が出る。
kotlinでコード書いてても楽しくないね。javaの牢獄に居るみたい。
世間のプログラマーの苦労が身にしみますわ。奴隷労働やね。
これからkotlinに突っ込んでもあんまり意味が無いね。
言語としてpythonより大幅に劣るし、これからの記法の発達も望めないしね。
kotlinを学ぶよりはpythonの記法を極めるほうが方向性としては良い。
AIが苦手な分野は人間が持つ直感力とか感性。
javaでシコシコ書くレベルはそのうちAIでカバーできると思うよ。
マシン語って制約条件が与えられたテーマだから答えはある。
java屋が飯の種を無くすようなヘマはしないとは思います。
pythonに最強の助っ人。
このDBはパソコンにインストールして無料で使えます。
このDBはpythonの辞書構造でそのままDB化出来る優れもの。
SQLの知識が不要でデータの直感性が保たれてわかりやすい。
このような単純構造もあるでしょうが、
一般的にはユニークなkeyを生成してテーブルにデータを格納します。
{”key1":{"data1:0,"data2":"abc","data3",20.11,"data4":[1,2,3]},
”key2":{"data1:0,"data2":"abc","data3",20.11,"data4":[1,2,3]}
}
これだと二次元の表計算データ等を保存できる。
テーブルとkeyを指定して読み書き出来ます。
処理性能はSQL型DBのほうが軽くて早い。
pythonの実行環境はまだまだ整備されるって感じがします。
フリーランスのpythonエンジニアの需要はこれからも増しそうですね。
GPIOを持ってるSBC向けにもパイソンは威力を発揮しそうです。
SBCにはLINUXが搭載されpythonがインストール済み。
linuxのアプリのいくつかはpythonで書かれてる。
このレベルのSBCでもCPU性能はかなりあるので
インたプリーターによる負荷は気にならないでしょう。
JVM乗せるよりはましかも。
今後も開発が楽なpythonの比重が増えて行くでしょう。
python使っていろんな制御が出来ますね。
こんなのをドローンに乗せてカメラの制御とかGPSで測位で自動操縦とかやれたら
かなり面白い玩具になりそうです。
javaとSQLはもう過去の遺物。