とあるIT屋の独白

ITや経営について主に書きます

今さらながらGo言語(golang)について調べてみた

golangが発表されたのが2009年なので、来年には世の中に出てから10年たつことになります。個人的な感覚としては、ここ2~3年で開発言語としてgolangが採用されるケースが徐々に増えてきたという感じなので、今さらながら少し調べてみました。

まず、言語の概要ですが以下の記事にまとめられています。

 

【はじめてのGo―シンプルな言語仕様,型システム,並行処理】

http://gihyo.jp/dev/feature/01/go_4beginners

 

特徴としてはwhile文がないなど、あえて機能を絞っていることや並列処理に対応している点が挙げられます。この並列処理機能を使ってバックエンドの処理で使われるケースもあるかなと感じます。

Go言語の良い部分・悪い部分については、下記の記事にざっと書かれています。機能を削っている箇所が、悪い点として挙げられています。(機能がシンプルという面では良い点なのですが)

 

【なぜGo言語 (golang) はよい言語なのか・Goでプログラムを書くべき理由】

http://www.yunabe.jp/docs/why_golang_is_good.html

 

少し内容が難しいのですが、以下の記事ではオブジェクトの依存性の観点からJavagolangを比較しています。結論からいうと、Javaのようなコードを実現しようとするとgolangでは若干煩雑な書き方になってしまいます。

 

【Goアプリケーションにおけるテスト設計を考える ~Javaとの比較で理解するGoの依存性の分離】

https://codezine.jp/article/detail/10399

お金の役割と仮想通貨

インチェックの騒動が冷めやらぬ中、仮想通貨の仕組み自体もそもそもどうなの?、という意見も出てきています。他国では仮想通貨を規制しているケースが多く、日本では原則容認としていますが、コインチェックの件を期に、規制がかかってしまう可能性もあります。

 

【日本でも仮想通貨は禁止にするしかない!?コインチェック騒動は事件化し、返金されないかも】

http://diamond.jp/articles/-/158968

 

まぁ、ただ闇雲に規制すればよいのかというのもあるので、今の「お金」の役割と仮想通貨に足りないことを少し考えてみたいと思います。

まずは、お金の歴史からですが、まだお金がなかった時代は、物々交換で経済活動が行われていました。そこから普遍的に価値のありそうな、貝殻であったり金が交換の手段として用いられるようになります。最終的に、国がその価値を保証する現在の貨幣制度になりました。

 

【仮想通貨を理解するために、勉強し直すお金の歴史】

https://www.enigma.co.jp/media/page-451/

 

もう少し、貨幣制度ができるまでの経緯を追うと、元々は中国で金本位制度で運用していた金融業者がその引換券として紙幣を発行していたことから始まります。金をたくさん持っている業者は信用の度合いが高かったので、こういったことが出来たのですが、いざ国が通貨発行券を持ち通貨発行を乱発すると、瞬く間にインフレが生じ通貨の価値が失われてしまいました。

 

【”お金の価値は「信用」で決まる!”
原価約20円の紙きれが「1万円札」になる理由】

http://diamond.jp/articles/-/45202?display=b

 

つまり、お金はその発行者(もしくは管理者)が、どれだけその価値を担保でき信用できるか、という点が肝となります。

さて、仮想通貨の話に戻ると現在、大きく分けて発行者が明確にいる通貨といない通貨に分かれると思います。発行者(管理者)が明確にいない通貨の代表格はビットコインで、これは純粋に需要と供給の関係で価値は決まります。一方でICOの手法に代表されるように、発行者もいるような仮想通貨もあります。

 

【仮想通貨の価格はどのようにして決まっているのか? <リスクや注意点>】

http://www.tottemoyasashiibitcoin.net/entry/2017/11/23/135330

 

いずれにせよ、仮想通貨は現在リスクもあり乱高下するような状況ではありますが、個人的には、発行者が明確であるICOの方が将来性があるかなと感じます。特に企業が資金調達の手段として活用していけば、通貨を買う側もある程度その将来性や信頼性なども考慮して、どれを買えばいいか決められます。

 

ICOとは?仮想通貨を利用した資金調達法の解説と情報まとめ】

https://www.enigma.co.jp/media/page-11733/

 

各企業が独自のコインを発行して、自社のサービスと交換が出来るようになり、かつコイン自体も他の企業のものと交換できれば、サービスの価格自体が本当に市場で評価される時代がくるかもしれません。以前に本ブログでも紹介しましたが、ブロックチェーンの仕組み上ではおそらく実現可能なところまで技術的にはきていると感じます。

http://toaruit.hatenablog.com/entry/2016/11/08/225837

コロプラの特許紛争について考えてみる

コロプラといえば位置ゲーの会社、というのは一昔前で、今やスマホゲームでヒット作をもっている有数の会社といえるでしょう。私も幾つかゲームやってみて、よく出来ているなという印象のゲームが多いです。

さて、そんなコロプラですが年初から話題になっているのが、任天堂との特許紛争。焦点となっているのが、コロプラのゲームで使用されているぷにコンの技術です。

 

任天堂、タッチパネル上の操作でコロプラを提訴。ぷにコンに激怒か】

http://ga-m.com/n/nintendo-colopl-punikon-saiban/

 

もう少し細かい内容は、以下のまとめにあります。コロプラは、ぷにコンに関して特許を持っているのですが、保有している箇所はUIの部分で、実際の操作部分は任天堂のジョイスティックの特許を使用しているのではということで今回の訴訟となったわけです。

 

【【ぷにコン特許侵害】コロプラが持ってるのはUIの表示だけ!?技術的な部分の特許は任天堂が所有か】

http://matomame.jp/user/bohetiku/cf76540c118149fc7847

 

こういった技術的な部分の特許に関する訴訟は侵害しているかの判断が、難しいところではあります。そんな中で任天堂の法務部は最強と言われていて、今回はコロプラの分が悪いのではという観測です。

 

【なぜ「任天堂法務部」は最強と言われるのか?過去の裁判での戦いがチート並だった】

https://togetter.com/li/1188776

 

もちろん、訴訟となる前に両社で協議等は行っていて、コロプラの社長が自ら出向いたりもしたそうです。コロプラの言い分としては、重大な侵害はしていないというスタンスな感じですが、話し合いでは解決しなかったそうです。

 

【「信じるものが折り合わない」――コロプラ馬場社長、任天堂との“特許紛争”を語る】

http://www.itmedia.co.jp/business/spv/1802/07/news114_0.html

WebAssenblyとは

今や大抵のサイトでJavaScriptを使っているかと思いますが、JavaScriptによってサイトがもっさりするような感じがする時もあると思います。JavaScriptは下記の記事の通り、名前のままですがスクリプト言語なわけで、ブラウザ側では一行一行、プログラムを解釈することから、その実行速度は一般的にコンパイラ方式に劣ります。

 

【いまさら聞けないJavaScript入門】

http://www.atmarkit.co.jp/ait/spv/0707/17/news114.html

 

最近話題になっているのは、ブラウザ上で動かすプログラムをコンパイルした上で動かすWebAssemblyという仕組みです。現在の対応状況は以下の記事にありますが、主要ブラウザは対応予定で、C++からコンパイルして動かせるようになっているらしいです。

 

【WebAssembly対応、主要ブラウザChrome/Firefox/Edge/Safariで整う。Webアプリの開発言語としてJavaScript以外の選択肢は広がるか?】

http://www.publickey1.jp/blog/17/webassembly_browsers.html

エンジニアの目指すべき方向~テックリードの道

齢30歳を過ぎて数年がたってしまいましたが、いまだに自分の進むべきキャリアに迷っています。個人的には技術を追及したいですが、会社的にはマネジメントをしろと言われたり中々悩みどころです。そんな中でエンジニアの進むべき方向で、参考になりそうな記事がありましたので紹介します。

 

【「自らを実験台として新たなキャリアを切り拓け」 及川卓也氏が贈るアラサーエンジニア進化論】

https://type.jp/et/feature/3960

 

記事にある3分類の職種ですが、特にテックリードについては日本において明示的に役割つけている会社は少ないかなと感じます。テックリードにおいてもマネジメント能力は要求されますが、単純に工数や金額などを管理すればよいというわけではなく、技術面でのメンバーのサポートというのが大事な役割と感じます。私の周りにはあまりテックリード的な人はいないのですが、技術面で周りから頼られたり責任を持つ人がざっくりとしたイメージかと。

 

【Tech Lead(TL/テックリード)の役割 - サンフランシスコではたらくソフトウェアエンジニア】

http://d.hatena.ne.jp/higepon/touch/20150806/1438844046

 

下記は、リクルートライフスタイルでテックリードを行っている方のインタビュー記事です。技術的な観点に加え、サービスへの理解とより良いサービスにする上でどのような行動をとるべきか、といったことも求められるものと感じます。

 

【自ら考え行動できるエンジニアの力が生かせる“テックリード”】

http://ascii.jp/elem/000/001/172/1172550/

なぜ若者はすぐに会社を辞めてしまうのか考えてみた

ここ数年の若者は、というわけではないのですが新卒で入った会社を1年かそこらで辞めてしまう人は、大体の会社でいるような気がします。かく言う私も新卒で入社した会社を1年程度で辞めてしまったので、あまり人のことを言えないのですが。。

当時のことを思い返すと自分が思い描いていた仕事内容と実際の仕事内容にギャップを感じて、このまま続けていけるか不安になってしまった記憶があり、仕事に取り組む意義をちゃんと説明していくのは大事だなと感じます。下記の記事にある地銀の例をみると、ビジョンが明確である人ほど仕事でのギャップを敏感に感じとり、転職等していくそうです。

 

【地元の超一流・地銀をすぐ辞める若者の本音】

http://toyokeizai.net/articles/-/186559

 

もちろん、働く側のある程度の我慢がある程度求められる部分はあり、自分の知識等が活かせずにすぐに一人前になれない→転職ではなく、そこで働いている先輩に敬意をはらいつつスキル等を学ぶという姿勢が必要になってくるでしょう。下記の記事では寿司屋の例をあげていて、さすがに10年は長いような気もしますが、表面的なスキル以外にも修行によって得られるものがあるようには感じます。

 

【なぜ辞める、若者の就職観】

http://lite.blogos.com/article/221026/

 

そこで我慢が出来るかは、その人の価値観と会社の仕事の方向性や目指すところが一致している、というのはやはり大事なことかなと感じます。下記の記事に書かれている通り「心の偏差値」というものですが、この偏差値が高い人に対し、上手く動機付けしてあげられれば若者も自分から学び行動するのかなと、思います。

 

【「一律の社内教育」なんて若い社員をバカにしている】

http://wedge.ismedia.jp/articles/-/11215

シンギュラリティの意味

2045年にAIの知能が、人間を越えると言われています。シンギュラリティを直訳すると技術的特異点となるのですが、指数関数的に技術が進化していくなかで、それまでの進化の継続性がたちきられ、無限大に大きくなるポイントとなります。

 

【「AIが人類を超える」どころじゃない! こんなに凄い「シンギュラリティ」の衝撃】

http://www.gentosha.jp/articles/-/8000

 

なお、よく言われているシンギュラリティとして、AIが人間を越えるということでつかわれていますが本来的な意味合いとしては、下記の記事で論じられている通り、あくまで人間主体の進歩ということになります。

 

【シンギュラリティで人類はどうなるのか】

http://www.nikkeibp.co.jp/atcl/column/16/ai/080300003/?ST=mobile

 

もちろん、今後AIが進歩することで、人間が行わなくてよい作業や判断しなくてよい部分が増えることは想定されます。では人間の存在意義は何なのかというと、下記の記事でドワンゴの川上CTOが指摘している点がおもしろいです。人間を人間たらしめるのは、社会の環境(人工物)であって、それはAIがあろうがなかろうが変わらないということ。

 

川上量生「中国のネット管理政策は正しい」機械が人間を支配する時代は来るのか】

http://toyokeizai.net/articles/-/185263

 

私的結論としては、シンギュラリティはあくまで人間にとってどのような影響を与えるかという視点であって、AIと人間を比較するものではないということ。また、AIを活用することで、今後より人間が自分のやりたいことによりフォーカスできる未来が来るのではと感じます。