LoginSignup
21

More than 5 years have passed since last update.

Go、Scala、Clojureで開発する3社が集結!!

Last updated at Posted at 2015-12-16

「Go、Scala、Clojureで開発する3社が集結!!」に参加してきました。
http://hitomedia-night.connpass.com/event/23452/

メモ程度ですが何かの参考になればと。

コンテンツ 発表者 資料
Golang in eureka エウレカ 三津澤さん -
Scala採用の背景とその謎 Demand Side Sience 平岩さん -
サイボウズスタートアップス サイボウズスタートアップス 落合さん -

Golang in eureka

  • エンジニア:50人 / 社員数:90人
    • エンジニアドリブンの文化
  • pairs
    • 会員数: 2年 300万人
    • 急成長してます
  • PHP から Go にフルスクラッチ
    • DBもマイグレーションも書き換えた

フルスクラッチの背景

  • 大量の技術的負債
    • 密結合
    • スケールしないDB設計
    • 巨大なモノリシックなコードベース

移行先言語に求められるもの

  • シンプルさ
    • キャッチアップに時間がかからないか
    • チーム開発向きか
  • ハイパフォーマンス
    • 開発速度(ビルドの速さなど)
    • 並列処理がシンプルに記述可能
  • チャレンジング
    • エンジニアリングのレベル向上につながる

Why Go?

  • 学習が容易
  • さくっと書いても割と速度が出る
  • goroutine / channel

Goの欠点

  • モダンなシンタックスはない
    • map /reduce
    • パターンマッチ
    • 例外
  • 確立されたライブラリが少ない
    • WAF
    • 3rd party
  • 数値計算系が不得意

Go版pairs

  • フロントサイド
    • AngularJS + Typescript
  • 設計
    • Microservices
      • 決済 を完全に分けて別DBを参照している

Goでアプリケーションを作る時の所管

  • パフォーマンスは出る
  • 罠はそれなりにある
    • 値の初期値でハマる
  • LLのセキュアのものは若干扱いづらい

まとめ

  • やりたいこと/やるべきことが見えているならあり
  • デファクトがないので 0 → 1は厳しい

Scala採用の背景とその謎

  • オプトのアドテク

Scalaとは?

  • オブジェクト指向と関数型

採用した理由

  • やりたい人がいた
  • 技術ベンチャーとしてアピールポイントになると思った
    • DSPとして技術をアピールしたかった
  • なんかすごそうと思った(勢い)

Scalaを採用している理由

  • エコシステムやコミュニティの充実
    • Scala Matsuri
  • エンジニアとしてのメリット
    • 型安全
    • ボイラープレートを減らせる
    • 関数型・オブジェクト型の両面による抽象化
  • 採用にプラス
    • Scalaがキッカケで応募する
    • 量より質を上げる

改善点や課題

  • 枯れていない
    • ベスト・プラクティスが確立されていない分野が多い
    • バグもたまにある
    • Scala本体のアップデートがよくある
  • コンパイルが遅い
    • 最大の欠点
    • SPAでつくっている
      • AngularJS + Typescript
    • プロジェクトを適切に分割する
    • implicit conversion、マクロ
  • 関数型プログラミングをどこまで推奨するか
    • scalazやshapelessの利用
    • 圏論などの前提知識が必要

まとめ

  • 新言語導入は打算と勢いで
    • メリットがないと
  • 現場の人達が幸せになれる選択を
    • 使う人が幸せに慣れば

サイボウズスタートアップス

  • 会社説明

Clojureの採用

  • 会社の技術的な中心に Clojure をおいた

新しい言語を採用するにあたって

  • 優秀なエンジニアを採用したい
    • 優秀なエンジニアが使いたいと思う言語
      • 関数型とか
  • 採用で勝てる条件が揃ってる
    • 大手が採用していない
    • その言語で圧倒的なブランド力がある企業がない

メリット

  • Simple
  • LISP

Simple Made Easy

  • 経営陣の共通の考え

CloureScript

  • Reagent, Om

人材採用面で有利

  • 能力の平均値が高い
  • ブランドが築けそう

まとめ

  • 機械学習
  • 人材採用の面で有利

感想

  • 新しい言語の導入は最後は勢いかも
  • 実際にその言語を使って開発する人が幸せになれるのは重要
  • メリットがないと正直導入は難しい
  • チャレンジすることによって技術力のアピールにはなる
  • あえて競合がいない言語も選ぶのも、差別化という意味ではあり
  • Go言語だったら◯◯社みたいになれるチャンスも

新しい言語にチャレンジするのは技術力アピールにつながるので全然ありだなと思う一方、
経営層の理解がないと結構辛いことになりそうな気がしますね。

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
21