LoginSignup
65
67

More than 5 years have passed since last update.

今、Fintechスタートアップを始める時にどんな言語を選ぶべきか?

Last updated at Posted at 2016-05-14

現在、Fintech系のスタートアップを始めるにあたって、以下の言語で選定を迷っている。

フロントエンド(これは決定済み)

  • Reactjs
  • ReactNative
  • redux

バックエンド

  • Node.js
  • Golang
  • Elixir (Phoenix)
  • Ruby (RoR)
  • Python
  • PHP

どんなプロジェクトか?

  • 会計に関する業務オートメーションサービス
  • 企業向けとそこの従業員さん向けのサイトとアプリが必要。
  • 細かな設定や20種類のレポートページ、情報ダウンロード、データ登録、データ編集がある。
  • アクセスは、契約した企業に限定され、同時アクセスは、1000ぐらいを想定しておけば問題ない。
  • 会計に関するビジネスロジックには絶対にバグを出せない。
  • 長く続けていくプロジェクトなので、今後、優位性のある言語を選びたい

Node.js

採用すべき理由
  • 僕が今最も書ける言語
  • npmが本当にすごい
  • 構成がシンプル
  • 結構早い
  • フロントとバックエンドの知識を共有できる
  • WEBに情報が多い
  • javascriptの文法を知っているプログラマは多い
採用すべきでない理由
  • 安定的に動かす仕組みが弱い(シングルスレッド・エラー処理・非同期)
  • バグのないコードが書きづらい
  • 非同期が多すぎて、読みづらい、バグが出やすい
  • co + Promise + yield はいいが学習が必要

PHP

採用すべき理由
  • 僕が2番目に書ける言語
  • リクエストごとにコードを一から読むやり方は、問題が少なくて楽
  • プログラマの採用がしやすい
  • WEBに情報が多い
採用すべきでない理由
  • ライブラリ関係が微妙
  • 速くない
  • 文法が良くない
  • 今後、大きな発展が望めない
  • 書いていてつまらない
  • テスト環境を作るのが、他と比べてめんどくさい
  • コードが長くなる
  • 強固なコードが書けるわけではない
  • エラー処理が優れていない
  • 非同期処理がやりづらい

Ruby

採用すべき理由
  • RoRが使いやすい
  • 文法がわかりやすい
  • 書いていて楽しい
  • Gemが充実している
  • 採用もそこそこしやすい
  • テストが組み込まれており、導入しやすい
  • WEBに情報が多い
採用すべきでない理由
  • 速くない
  • 強固なコードが書けるわけではない
  • エラー処理が優れていない
  • 非同期処理がやりづらい

Python

採用すべき理由
  • コードが見易い
  • 分析系のライブラリが多くある
  • コンパイルシステムがある
採用すべきでない理由
  • 速くない
  • 強固なコードが書けるわけではない
  • エラー処理が優れていない
  • 非同期処理がやりづらい

Golang

採用すべき理由
  • かなり速い
  • 型がある
  • 文法が単純で学習コストが低い
  • 生産性が低くない
  • ライブラリが充実してきている
  • 非同期処理がやりやすい
  • CPUやメモリを使う処理でも低コストにできる
  • go fmtがあり、コードが統一できる
  • テストが組み込まれており、導入しやすい
  • WEBに情報が多い
採用すべきでない理由
  • スクリプト言語に比べて生産性が落ちる
  • 文法が少ないせいで冗長なコードになりがち

Elixir

採用すべき理由
  • かなり速い
  • Phoenixが使いやすい
  • 書いていて楽しい
  • Mixがある
  • テストが組み込まれており、導入しやすい
  • 関数型、ガード、パターンマッチ、パイプ演算子により安全なコードが書きやすい
  • 軽量プロセスにより、安全にエラー処理ができ、エラーに対処しやすい
  • ホットスワップ機能により、ゼロタイムデプロイがしやすい
採用すべきでない理由
  • 採用がしにくい
  • 情報が少ない
  • 関数型なので、新規概念が多く、学習コストが高い
  • ライブラリが少ない
  • 人気が出るかわからない
65
67
6

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
65
67