【Webフレームワーク】Vue.js+Vuex / Play Framework / Phoenix

Webアプリなど今まで一度も作ったことはないが、面白そうなので作ってみる。

せっかくなので、3種類の言語でそれぞれのフレームワークを使って、比較してみようと思う。

  • Vue.js + Vuex(Typescript)
  • Play Framework(Scala)
  • Phoenix(Elixir)

当然だが、JavascriptJava といったポピュラーな言語は使わない(^^)

Vue.js + Vuex(Typescript)

javascript のほうが普通だが、折角なので Typescript で頑張る。

Play Framework(Scala)

こちらも Java が普通だが、Scala を選択する。

Phoenix(Elixir)

マイナーな言語なのに、Phoenix の日本語の書籍が発売されている。それくらいおすすめなものなのか?

https://www.amazon.co.jp/Elixir-Phoenix-初級2-データベースとクエリ構造体-BOOKS/dp/4908829144/

 

Typescript, Scala, Elixir は全て関数型言語の特徴を持っている。Webアプリでどれほどコードが変わってくるかは疑問だが、試してみたい。楽しみである。

【Vue.js + Vuex】+ typescript な環境構築

Vue.js のインストール

React.js より新しい? Vue.js というのをつい最近知った。redux と同じ発想で Vue.js 用の実装が Vuex というものらしい。

kuroeveryday.blogspot.jp

qiita.com

 

Vue.js は Typescript もサポートしているらしい。

jp.vuejs.org

kuroeveryday.blogspot.jp

ubuntu にインストールしようとして引っかかったのは1点だけ。ubuntu の apt でインストールできる node.js のバージョンが古すぎて(4.2.x)vue.js のインストールがエラーになった。エラーメッセージでググって、対処法を発見。

vue cli not create webpack-simple · Issue #618 · vuejs/vue-cli · GitHub

npm install -g n 
sudo n stable  
sudo npm install npm -g

これで node.js のバージョンが上がり、エラーなくインストールできた。

 

 React と Vue

 React.js と Vue.js を比較した興味深い記事を見つけた。

torounit.com

postd.cc

【Elixir】Phoenix をインストールしてみた

Elixir のWebフレームワーク Phoenix をインストールしてみた。(^^)/~

yng.hatenablog.jp

qiita.com

www.casleyconsulting.co.jp

無事にブラウザで http://localhost:4000 にアクセスして Phenix の画面を見ることができた!

 

が。データベースの設定をしていないので、それはこれから。MySQLPostgreSQL もインストールはしているが、ユーザも作ってなかったみたい(汗

 

 

【ELM】リアクティブプログラミング?

書店で

[関数型リアクティブプログラミング ](http://amzn.asia/a8yKDTE)

[RxJavaリアクティブプログラミング](http://amzn.asia/0tloosC)

を見てなんだか気になったので、ぐぐった。

 

ninjinkun.hatenablog.com

qiita.com

qiita.com

今どきはやりの React と関係があるのだろうか?

まあ、理解するには触ってみる・動かしてみるしかないだろう。

で、ググっているうちに、ELMという関数型言語があるらしいことに気づいた。

codezine.jp

doloopwhile.hatenablog.com

はじめに · プログラミング言語Elmの薄い本

The Elm Architecture · An Introduction to Elm

本家 http://elm-lang.org/

これも面白そう。触ってみたい。

【Scala】Akkaでアクターモデル

Scala 単独ではアクターモデル(メッセージパッシング)はできないが、Akka というライブラリで実現できるらしい。

 

[Akka実践バイブル アクターモデルによる並行・分散システムの実現 ](http:// http://amzn.asia/1ZucXbW)

発売当時から知っていたが、お値段が高いので我慢していた。

が。勢いあまって本日購入!

 

www.slideshare.net

【Rust】なんかすごくよさげ

言語の存在は知っていたが、実はとてもよさげだった。

Rust (プログラミング言語) - Wikipedia

並列性の機構は軽量タスクとして提供される。これと類似の仕組みはErlang言語などのアクターモデルの言語にも見られるものである。それらのシステムにおいて、複数のタスク同士は直接にデータを共有するのではなく、メッセージ・パッシングによってデータのやり取りを行う。性能上の理由から、データのやり取りには固有の箱[21]を使って行われ、データの複製はされない。それらの箱は所有者が一人であることが保証されたもので、送信タスクから受信タスクに向けて開放することができる

Erlang と同じ、軽量プロセスを持っていたとは!アクターモデルでメッセージパッシングということは軽量プロセスごとにメッセージキューを持っている?

www.rust-lang.org

プログラミング言語Rust

tracpath.com