Ocaml再挑戦

Posted by yonezo in 仕事 | Leave a comment
Pocket

今年も残りわずか360日足らずとなりました。懲りずにOcamlへの挑戦です!

まずはVMwareMintの18を入れて、opamによる環境の構築から。

これは以前に四苦八苦したエントリ

Ubuntu7へOCamlモロモロをインストール

OCaml環境構築メモ

などを参考に。

 

さぁ懲りずに再挑戦。

とりあえずopamをinstallした後はeliomを入れるわけだが、

opam install eliom

とやっても、早速のエラーが。

=-=- conf-gmp.1 troobleshooting -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
=> This package relies on external (system) dependencies that may be missing. `opam depext conf-gmp.1' may help you find the correct installation for your
system.

=-=- conf-libpcre.1 troobleshooting -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
=> This package relies on external (system) dependencies that may be missing. `opam depext conf-libpcre.1' may help you find the correct installation for your
system.

=-=- conf-openssl.1 troobleshooting -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
=> This package relies on external (system) dependencies that may be missing. `opam depext conf-openssl.1' may help you find the correct installation for your
system.

=-=- conf-zlib.1 troobleshooting =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
=> This package relies on external (system) dependencies that may be missing. `opam depext conf-zlib.1' may help you find the correct installation for your
system.

=-=- dbm.1.0 troobleshooting =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
=> This package relies on external (system) dependencies that may be missing. `opam depext dbm.1.0' may help you find the correct installation for your system.

要するに「さっさとinstallしてくれよ」って事みたいなので、ご丁寧に提示までされているコマンドを叩き込んでいきます。

いろいろ聞かれても基本すべて「Y」で。

それにしても

opam depext

って何なんでしょう?

ただ、これでもエラーは無くならない。

仕方なく

opam swtich 4.04.0

としてから(現時点で最新ぽい)、再度

opam install eliom

とすると、どうやらうまくinstallできた様子。

ここで

/home/develop/

とかディレクトリをmkdirしてから、cdしてdevelopの中に入り、おもむろに

eliom-distillery -name hello

とか(helloは適当です)すると、helloディレクトリが作成されて、勝手にファイルが作られます。

なんだか懐かしいw

で、helloに入ってから

make test.byte

とすると、最終的に

ocsigenserver  -c local/etc/hello/hello-test.conf

と表示されて、ブラウザから「localhost:8080」とすると

メデタク「Welcome from Eliom’s distillery!」と表示されました。

 

ようやくスタートラインに立ったという感じですが、今後は以下のような機能について実装の方法を試していこうと思っております。

基本はwebサイトの構築が目的なので、最初は目に見えやすく、言語習得の効果が実感しやすいところから始めようと思います。

(いずれ必要ではあるが)あまり目に見えにくい部分であるocsigenserverの設定についてなどは、とりあえず後。

  1. HTML記述による簡単なwebページの表示、できればsmartyなど使ってテンプレートで表示できればベター。
  2. form画面を作成してgetやpostのデータを取得できるようにする。
  3. DB(とりあえずMySQLでもなんでもOK)に接続して、簡単なSELECTを発行してデータを取得して、適当な変数へ格納する。
  4. 取得したデータについて、簡単な集計・値の操作を行い、それをwebページとして表示する。
  5. セッションを利用したログイン・ログアウト画面の実装

ここまでできれば、ある程度開発はできるようになるだろうと。

その後はeliomについて調べたりして勉強しようかなと思っております。

 

しかし自分でこんな事を書いててつくづく思うのは、初心者向けのOcaml解説コンテンツ(本もサイトも)無いよなぁという事。

そもそもOcamlがプログラミング初心者の触るような言語ではないという見方もあるのかも知れないが、それでいて片方では「PHPなんてウンコ」と批判するというのはどうなのかなーと思います。

Ocaml利用者の裾野が広がって、PHPが駆逐されるような事になってくれば、既存の技術者にとってもいろいろなメリットがあるんじゃないかと思うんですけどね。

具体的には、新規開発において今まではJavaやRuby、PHPなんかの比較的メジャーとされる言語が採用される可能性(メンテにかかる要員の確保が楽とかそういうレベルで)が高かったと思うんですが、人的な懸念が無くなって母国語でのマニュアルや解説などのコンテンツが増えてくれば、「Ocamlでやってみますか」となりませんかね、ならないですかそうですか。

 

周りのOcaml使いの人に言わせると

「開発やメンテのスピードがPHPなんかとは桁違いに早く簡単になる」

「バグ発生の確率が激減する」

「そもそも開発が楽だし、実行スピードもCと同等」

という自慢メリットを散々聞いているので、「ほんまかいな」という気分です。

今年はそれを確認する一年となりそうです。

 

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です