LoginSignup
93
90

More than 5 years have passed since last update.

集合知で各言語、ライブラリ、フレームワーク、DB、アーキテクチャの適材適所をみんなでまとめたら面白いんじゃないか?

Last updated at Posted at 2016-07-20

表現力を取るか、可読性を取るか、安定性取るか、書きやすさを取るか、メンテナンス性を取るか、性能や速さを取るか、などはトレードオフがあるので、

組織やサービスにあった問題を解決するために設計された適材適所な言語を選択するのが、

楽だし、苦手な言語は苦労するので、適材適所を知りたい

集合知で各言語、ライブラリ、フレームワーク、アーキテクチャの適材適所をみんなでGoogleスプレッドシートにまとめたら面白いんじゃないか?

自分は全然詳しくないので、誰かが間違っているところを訂正して、知らないことを教えてくださるかもしれないのではと思い、Googleスプレッドシートを作ってみました。

みなさん、悪用しなければ、自由に編集して大丈夫です。

今の組織が解決したい問題に対して、集合知で向き不向きの比較一覧を集めて、それぞれ適材適所な言語を選べるようにするのが目的です。

24時間ネットTVなどのライブストリーミングな、ミッションクリティカルシステムだと

マイクロサービスで、適材適所に言語を使い分けたら、強いリアクティブアプリケーションになりそうな気がする

クラウド使っていた場合は、クラウド側が、そういう問題を解決する適材適所な言語やアーキテクチャを選択しているのではないか

いろいろな言語やフレームワーク、VMやアーキテクチャの適材適所がわかる資料を教えてほしいです。

以下、参考になりそうな資料を集めてみた。

Erlangの伝説 年間稼働率「9の9個」= 99.9999999% つまり,年に31.54ミリ秒しかダウンしない!2012年にサーバー1台あたり2,000,000同時接続実現
http://aucnet-ibs.com/technology/erlang/

ErlangとGolangを比較してみる
http://qiita.com/soranoba/items/68d57b4635a2917f3c73

Communicating Sequential Processes (CSP)
An alternative to the actor model
CSP modelとActorモデルの比較
http://arild.github.io/csp-presentation/#1

Akka vs Erlang
http://qiita.com/okumin/items/b0e85704268dfb4741b5

JVMとDart VMとBEAM VMの比較
https://github.com/nothingcosmos/VM/blob/master/erlang/vm_architecture.rst

雑把の仮想マシン(JVM, .NET, BEAM, スクリプト言語, LLVM)
http://yohshiy.blog.fc2.com/blog-entry-238.html

BEAM VM Source Code Reading
https://github.com/nothingcosmos/VM/blob/master/erlang/beam.rst

疑問点とか、調べたいこと
https://github.com/nothingcosmos/VM/blob/master/erlang/todo.rst

Go cooperative scheduler
https://github.com/nothingcosmos/VM/blob/master/golang/cooperative.rst

Go garbage_collection.rst
https://github.com/nothingcosmos/VM/blob/master/golang/garbage_collection.rst

Erlang(Elixir)の使いどころについて使ってる人から教わった話
http://togetter.com/li/977171

使いたい!ホットコードローディング
http://qiita.com/stwind/items/f13072f1c23af06d1bd6

ドワンゴでのホットデプロイ事例
http://sile.github.io/slide/kbkz_tech_05/#/

ニコニコ生放送の配信基盤改善
http://www.slideshare.net/takahiro_yachi/ss-44828680

並行処理初心者のためのAkka入門
http://www.slideshare.net/sifue/akka-39611889

アクターモデル
https://ja.wikipedia.org/wiki/%E3%82%A2%E3%82%AF%E3%82%BF%E3%83%BC%E3%83%A2%E3%83%87%E3%83%AB

Elixir試飲録 (1) – 今、プログラミング言語を選ぶということ: Scala, Go, Elixir
https://ubiteku.oinker.me/2015/12/22/elixir%E8%A9%A6%E9%A3%B2-1-%E4%BB%8A%E3%80%81%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0%E8%A8%80%E8%AA%9E%E3%82%92%E9%81%B8%E3%81%B6%E3%81%A8%E3%81%84%E3%81%86%E3%81%93/

Elixir試飲録 (4) – オブジェクト指向と関数型の違い
https://ubiteku.oinker.me/2016/01/14/elixir%E8%A9%A6%E9%A3%B2%E9%8C%B2-4-%E3%82%AA%E3%83%96%E3%82%B8%E3%82%A7%E3%82%AF%E3%83%88%E6%8C%87%E5%90%91%E3%81%A8%E9%96%A2%E6%95%B0%E5%9E%8B%E3%81%AE%E9%81%95%E3%81%84/

リアクティブ・アーキテクチャ ~大規模サービスにおける必要性と課題〜 #devsumi
http://www.slideshare.net/okapies/reactive-architecture-20160218-58403521

Typesafe Reactive Platformで作るReactive System
http://www.slideshare.net/yugolf/typesafe-reactiveplatformreactivesystem-scalasummitkansai

LINE Platform Development Chronicle
http://www.slideshare.net/linecorp/a-4-47983116

Akka ActorとAMQPでLINEのメッセージングパイプラインをリプレースした話
http://www.slideshare.net/linecorp/a-9-47983077

最新DDDアーキテクチャとAkkaでの実装ヒントについて
https://speakerdeck.com/j5ik2o/zui-xin-dddakitekutiyatoakkadefalseshi-zhuang-hintonituite

静的言語の真の価値は「統合」ではないかな?
http://qiita.com/shiracha/items/a9387e54f77ee39dcea0

ScalaによるDDDライクなプロダクト開発
http://sssslide.com/speakerdeck.com/yshnb/scalaniyorudddraikunapurodakutokai-fa

リアクティブ宣言
http://www.reactivemanifesto.org/ja

Go言語がダメな理由
http://postd.cc/why-go-is-not-good/

GAM is a MVP Actor Model framework for Go.
https://github.com/rogeralsing/gam/blob/dev/README.md
Go Actor Model framework - Ultra fast distributed actors for Golang

For a more indepth description of the differences, see this thread Actors vs. CSP
https://www.quora.com/How-are-Akka-actors-different-from-Go-channels

Event Horizon is a CQRS/ES toolkit for Go.
https://github.com/looplab/eventhorizon

AbemaTVとGKE
http://www.slideshare.net/strsk/abematvgke

Kubernetes を使ってサービスを加速させる取り組み
https://speakerdeck.com/koudaiii/kubernetes-woshi-tutesabisuwojia-su-saseruqu-rizu-mi
GKEのKubernetesはGoでできてるらしい

Tokyo ex handson
https://github.com/ohr486/tokyoex_handson_demo/wiki

Phoenixのインストールから始まり、Ruby on Rails TutorialをベースにPhoenixでのWeb開発を説明している本
http://hayabusa333.tumblr.com/

Studio is a lightweight framework for node development to make easy to create reactive applications according to reactive manifesto principles. It uses micro-services (freely inspired by akka/erlang actors) implemented using bluebird a+ promises (or generators async/await) to solve the callback hell problem.
https://github.com/ericholiveira/studio

東京Node学園#8 Let It Crash!?
Node.jsのエラー処理とErlangスタイルのエラー処理
http://www.slideshare.net/koichik/node8-let-it-crash

Kubernetes is an open-source system for automating deployment, scaling, and management of containerized applications.
http://kubernetes.io/

Kubernetesは、次のような機能を提供し、より本格的な分散コンテナシステムの構築を実現してくれます。
http://qiita.com/applideveloper@github/items/d0b89308493f9806693f より
フェイルオーバー(コンテナが異常終了したことを検知し再起動させる)
スケーリング(起動しているコンテナの数を自由に変更できる)
スケジューリング(コンテナを任意のホストに割り振る)
ロードバランス(複数のコンテナにリクエストを振り分けて負荷分散する)
サービスディスカバリ(サービスへのルーティングを自動で提供する)

ここに書いてある言語やアーキテクチャ、参考資料に限らず、いろいろな言語やフレームワーク、VMやアーキテクチャの適材適所な資料を教えてほしいです。

評価軸を絞ってReactive+DDDの観点での各言語の議論したい方はこちら
https://docs.google.com/spreadsheets/d/1SzpmkIls3kTSpryQbryndrzrYJcDcHzWM4hiPrtyL2k/edit#gid=257693355

93
90
0

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
93
90