2021-03-07
対応言語数が47まで増えた「Geo3x3」、最近使われている言語で見るとどのくらいカバーできているか、 GitHubの言語別統計「GitHut」でチェックしました。
PUSH数(GitHubへのコードのアップロード)で見ると、JavaScriptが次点のPythonの倍以上と圧倒的!


6位のShell(シェルスクリプト)が気になりました。そもそもプログラミング言語としてカウントするもの!?くらいの認識でしたが、変数、繰り返し、関数があって一応プログラミングもできる様子。

geo3x3_encode() { local lat=$1 local lng=$2 local level=$3 local res= if [ $level -gt 0 ]; then if [ `echo "$lng>0" | bc` -eq 1 ]; then res=E else res=W lng=`echo "scale=16; $lng+180" | bc` fi lat=`echo "scale=16; $lat+90" | bc` unit=180 local i for ((i=1; i<$level; i++)) do unit=`echo "scale=16; $unit/3" | bc` local x=`echo "scale=0; $lng/$unit" | bc` local y=`echo "scale=0; $lat/$unit" | bc` res=$res$(($x+$y*3+1)) lng=`echo "scale=16; $lng-$x*$unit" | bc` lat=`echo "scale=16; $lat-$y*$unit" | bc` done fi echo $res }

ということで、Geo3x3のエンコードを移植してみたのがこちら(src on GitHub)。 if文やfor文の書き方にクセがあり、変数代入前後にスペースをいれてはいけなかったり、計算するときは$(())で囲む必要があったり、浮動小数には対応していないので、外部コマンドbcに頼ったりとなかなか大変ですが、ちゃんと動くようになりました。

$ bash geo3x3.sh encode 35.65858 139.745433 14 E9139659937288

LinuxやMacであれば何もインストールすることなく使えて、他のコマンドとの組み合わせも簡単なのがシェルスクリプトのいいところ。

ランキングで見るとC++よりは下ですが、C#やCと同じくらい使われています。 確かに、各種プロダクトでもセットアップや、起動スクリプトなどで使われているので、確かにPUSH数が伸びることにも納得です。 WindowsやDOSでいうバッチファイル(BAT)、深くやるかどうかは別として、エンジニアには必須技術ですね!


本日、日興証券オープンイノベーションラボの新企画「高専インカレチャレンジ」の北陸5高専向けトライアルの説明会!


一緒にメンターする、長岡高専出身、フラーの渋谷さんと共に高専生への応援演説!


今回のプラットフォームとして使用する、フランス生まれのイノベーションプラットフォーム「agorize」、日本法人の中澤社長からもメッセージ。

links
- SMBC日興証券がAgorizeオープンイノベーションプラットフォームにて「高専インカレチャレンジ」を開催|Agorize Japan株式会社のプレスリリース

Tweet
クリエイティブ・コモンズ・ライセンス
本ブログの記事や写真は「Creative Commons — CC BY 4.0」の下に提供します。記事内で紹介するプログラムや作品は、それぞれに記載されたライセンスを参照ください。
CC BY / @taisukef / アイコン画像 / プロフィール画像 / 「一日一創」画像 / RSS