teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

2

OCamlとClojureを勘違いしてたので差し替え

2017/09/16 05:27

投稿

miyabi-sun
miyabi-sun

スコア21461

answer CHANGED
@@ -1,27 +1,29 @@
1
1
  何をもってレスポンス速度が早いかにもよるけど、下記の言語が早いと言われてるね
2
- 一般的に上にもってきた言語方が速いと言われてるけど、Webサービスに於いては実際にどれが速度出るのかは作ってみないとわからない。
2
+ 一般的に速度の速い順だけど、Webサービスに於いては実際にどれが速度出るのかは作ってみないとわからない。
3
3
  例えばErlangは計算速度は遅いが、スレッドを作るのが軽く他の言語を圧倒的に上回るポテンシャルがある。
4
4
 
5
5
  - C++
6
6
  - Golang
7
- - Java系(Java, OCaml, Scala, JRuby)
7
+ - Java系(Java, Clojure, Scala, JRuby)
8
8
  - Erlang系(Erlang, Elixir)
9
9
 
10
10
  しかし、Webサイト開発の初期にこれらの言語を選択するのは非常にリスキー。
11
- そもそもJava以外はWebサイト開発に使える情報はほぼ得られない。
12
- 機能やライブラリは不足しているので都度作る必要があり、大量に遭遇するハマりポイントも基本的にはエラー文と公式リファレンスのみ、時にはコンパイラのソースコードを読んで乗り切る腕や勘が必要となる。
13
11
 
12
+ この中でWebサイト関連で十分な日本語の情報が公開されているのはJavaだけだろう。
13
+ 機能やライブラリも不足しているので都度作る必要があり、大量に遭遇するハマりポイントも頼れるのは基本的にエラー文と公式リファレンスのみ、時には公開されているコンパイラのソースコードを読んで乗り切る腕や勘が必要となる。
14
+
14
- まず外注や大企業はリスキーな癖に単価安いという理由で嫌がるので絶望的。
15
+ 外注や大企業はリスキーな癖に単価安いという理由で嫌がるので絶望的。
15
- そして上記の言語を自在に操るハッカーやウィザードは有名企業に取られるので、
16
+ 更に上記の言語を自在に操るハッカーやウィザードは有名企業に取られるので、
16
17
  そういったメンバーがジョインしてくる可能性は期待出来ないと思っていい。
17
18
  (Googleやドワンゴ、Twitter、クックパッド社といった有名企業と比較した時、あなたの務めている企業はハッカー達にとって同じくらい魅力的ですか?)
18
19
 
19
20
  結局私たち凡人が内製でコツコツ頑張るしかない。
21
+ 経営者はサービスをちゃんとリリースすることが目的なので、言語自体の速度より安定を取りたがる。
20
- チームメンバー達熱意と要望が必要だし、経営者層にも言語自体の処理速度が速い以外のメリットを示なければ稟議通らない。
22
+ 従って、速度い言語をアピールするためには、処理速度以外のメリットをできなければ稟議通らない。
21
- 殆どのイケてる企業がGolangやScalaを採用しているのは、エンジニア達が休日を潰して勉強した成果で開発に使えると経営者に示して勝ち取った背景が殆どだろう)
23
+ (イケてる企業がGolangやScalaを採用しているのは、エンジニア達が休日を潰して勉強した成果で開発に使えると経営者に示して勝ち取った背景があるだろう
22
24
 
23
25
  なお、素のJavaはお硬い言語なので開発速度が遅くなる傾向があり、仕様変更に弱い。
24
- 1ヶ月のリリースの遅れでライバルにシェアをごっそり取られる可能性のあるWebサービスで致命的、手探りの新規事業には向いていない。
26
+ 1ヶ月のリリースの遅れでライバルにシェアをごっそり取られる可能性のあるWebサービスで致命的、手探りの新規事業には向いていない。
25
27
  仕様が確定さえすればバグが少ないという長所が生きるから、2番目の言語としては魅力的だと思うけどね。
26
28
 
27
29
  従って、上記言語で売れるかどうかもわからないサービスを構築するのはもったいない。
@@ -29,10 +31,10 @@
29
31
 
30
32
  1. まずはPHPやRuby等の扱えるエンジニアの多い言語でサービスを構築する
31
33
  2. 負荷が多くなったらサーバーの台数を増やしてクラスタリングで対応
32
- 3. 速度や継ぎ接ぎになったシステムを置き換える為に上記の言語を提案してリプレース
34
+ 3. 速度面の不満や継ぎ接ぎで開発速度が鈍化するので、システムを置き換える為に上記の言語を提案してリプレース
33
35
 
34
36
  3まで行ける企業はほとんどない。
35
- Twitterクラスまで行かないとサーバーのクラスタリングで対応出来ないケースなんてないからね。
37
+ Facebook, Twitterクラスまで行かないとサーバーのクラスタリングで対応出来ないケースなんてないからね。
36
38
  ChatWork社のようにPHPで作っていたが継ぎ接ぎになったシステムをリプレースする時にScalaを採用するケースはある。
37
39
 
38
40
  ---

1

優秀な言語が選ばれる流れを追記

2017/09/16 05:27

投稿

miyabi-sun
miyabi-sun

スコア21461

answer CHANGED
@@ -1,32 +1,46 @@
1
1
  何をもってレスポンス速度が早いかにもよるけど、下記の言語が早いと言われてるね
2
- 一般的に上にもってきた言語の方が速いけど、Webサービスに於いてはほぼおなじで実際にどれが速度出るのかは作ってみないとわからない。
2
+ 一般的に上にもってきた言語の方が速いと言われてるけど、Webサービスに於いては実際にどれが速度出るのかは作ってみないとわからない。
3
+ 例えばErlangは計算速度は遅いが、スレッドを作るのが軽く他の言語を圧倒的に上回るポテンシャルがある。
3
4
 
4
5
  - C++
5
6
  - Golang
6
7
  - Java系(Java, OCaml, Scala, JRuby)
7
8
  - Erlang系(Erlang, Elixir)
8
9
 
9
- しかし、日本現場では上記言語の内Java以外操れるエンジニアが殆ど居ない
10
+ しかし、Webサイト開発初期にこれらの言語を選択するのは非常にリスキー
10
- 言語自体は良くても情報が殆どなく、それらの言語に精通したハッカー・ウィザードクラスに発注することになる。
11
- 素のJavaはえるエンジニアも多いけど生産性が悪いので当然発注すると高く
11
+ そもそもJava以外Webサイト開発に使える情報はほぼ得られ
12
- SIer笑文章校正1文字変えだけで10万の請求書ようなケースもあったしね
12
+ 機能やライブラリは不足してので都度作必要あり、大量に遭遇すハマりポイントも基本的にはエラ文と公式リファレンのみ、時にはコンパイラのソースコードを読んで乗腕や勘が必要となる
13
13
 
14
+ まず外注や大企業はリスキーな癖に単価安いという理由で嫌がるので絶望的。
15
+ そして上記の言語を自在に操るハッカーやウィザードは有名企業に取られるので、
16
+ そういったメンバーがジョインしてくる可能性は期待出来ないと思っていい。
17
+ (Googleやドワンゴ、Twitter、クックパッド社といった有名企業と比較した時、あなたの務めている企業はハッカー達にとって同じくらい魅力的ですか?)
18
+
19
+ 結局私たち凡人が内製でコツコツ頑張るしかない。
20
+ チームメンバー達の強い熱意と要望が必要だし、経営者層にも言語自体の処理速度が速い以外のメリットを示せなければ稟議は通らない。
21
+ (殆どのイケてる企業がGolangやScalaを採用しているのは、エンジニア達が休日を潰して勉強した成果で開発に使えると経営者に示して勝ち取った背景が殆どだろう)
22
+
23
+ なお、素のJavaはお硬い言語なので開発速度が遅くなる傾向があり、仕様変更に弱い。
24
+ 1ヶ月のリリースの遅れでライバルにシェアをごっそり取られる可能性のあるWebサービスで致命的、手探りの新規事業には向いていない。
25
+ 仕様が確定さえすればバグが少ないという長所が生きるから、2番目の言語としては魅力的だと思うけどね。
26
+
14
27
  従って、上記言語で売れるかどうかもわからないサービスを構築するのはもったいない。
15
28
  現実的には以下のケースが取られる事が多い。
16
29
 
17
- 1. まずはPHPやRuby等の言語でサービスを構築する
30
+ 1. まずはPHPやRuby等の扱えるエンジニアの多い言語でサービスを構築する
18
- 2. 負荷が多くなったらサーバーの台数を増やして対応
31
+ 2. 負荷が多くなったらサーバーの台数を増やしてクラスタリングで対応
19
- 3. 秒間数万アクセスを求められ売れっ子サービス成長したら上記の言語リプレース
32
+ 3. 速度や継ぎ接ぎになったシテム置き換えに上記の言語を提案してリプレース
20
33
 
21
- 3まで行け企業は実はすくない。
34
+ 3まで行け企業はほとんどない。
22
35
  Twitterクラスまで行かないとサーバーのクラスタリングで対応出来ないケースなんてないからね。
36
+ ChatWork社のようにPHPで作っていたが継ぎ接ぎになったシステムをリプレースする時にScalaを採用するケースはある。
23
37
 
24
38
  ---
25
39
 
26
40
  参考資料:[[53選]国内注目のWebサービス・アプリを大調査! プログラミング言語、フレームワーク、アーキテクチャの一覧【2017年】](https://employment.en-japan.com/engineerhub/entry/2017/04/07/110000)
27
41
 
28
42
  これによると上位のイケてる企業もやはりRubyとPHPばかり。
29
- 併用とはいえ、ScalaやGolangがこんな比率あるだけでも驚きだね。
43
+ 併用とはいえ、ScalaやGolangが高確で採用されているのはイケてるベンチャーが多いという印象があるね。
30
44
 
31
45
  - C++: 1社
32
46
  - Java: 6社