ブロックチェーンのプログラミングとなると真っ先に名前が上がるのイーサリアムです。イーサリアムは環境構築&Solidity覚えるのが面倒というが壁。あと、技術的にロックインされるのも嫌だ。— xiaca@aahub (@scrpgil) February 8, 2018
でも、イーサリアムが主流になってくるとAWSやGCPにもイーサリアム系のスマートコントラクトを管理するサービスが出てくるかな? #ETH
本もたくさんでていますし、私も少し勉強したことがあります。
ただ、一つ言いたいのは「開発環境のハードル高すぎ」ということです。
ここがハードル高い。イーサリアムの開発環境
以下が思い当たる内容です。
・安定しているGethのバージョンが不明(1.6.xだと動かないこと多い。)
・Ubuntuじゃないと上手く動かない
・SolidityをVimで書きたい(browser-solidityじゃないとテストが面倒)
特にどのバージョンのGethを使えば良いのかはっきりしないし、VirtualBox上でUbuntuを起動してGethを立ち上げないといけないのもMac Book使ってると辛いところ。
自分はデスクトップのWindowsを使ってSolidityの勉強をしていましたが、やっぱりノートPCで開発したい。
Solidity終わった後の「これからどうすればよいの?」感が強い
イーサリアムの開発=Solidtiyという印象が強いですが、Soliditiyはスマートコントラクトを書くためのプログラミング言語。
実際にサービス開発となるとスマートコントラクトにアクセスするアプリも書く必要があります。しかし、そのアプリを書くためのドキュメントはまだまだ少ない。結果Soliditiy終わった後、大海原に投げ出された気持ちになるんです。
果たしてどうすればよいのか・・・
果たしてどうすればよいのか・・・
気軽にスマートコントラクトをリリースできない
デプロイが気軽にできない所もつらいです。まあ、これは ブロックチェーン全般にいえることですけど。スマートコントラクトをデプロイするのにGasが必要になるし、スマートコントラクト自体がイーサリアムのブロックチェーン全体に反映されるまで時間がかかるそうです。
Web系によくある毎日開発、毎日リリースといった気軽な開発はできなさそうです。
それよりも金融系、組み込み系にあるようなかっちり仕様を決めて、しっかりテストする旧来のウォーターフォールモデルの開発の方がイーサリアムには合いそうです。
ただ、通貨を扱うのでそれぐらいしっかり開発するほうが良いのかもしれません。気軽にリリースするもんじゃないとですかね?
とはいっても一番手なのがイーサリアム
色々言いましたが、そうはいってもブロックチェーンプログラミングの一番手がイーサリアムでしょう。開発者も一番多いでしょうし、プロダクトも多数でています。
そもそも、まだ開発環境も過度期なので今後、どんどんエンジニアライクな開発環境が整備されていくでしょう。
例えば、AWS、GCPなどのクラウドサービスでイーサリアムのスマートコントラクトのバージョン管理とかが出来るようになったり、デプロイ後の反映状態をモニターできたり・・・。
私としては今後もイーサリアムの開発環境の発展もウォッチしていきたいです。それでは。