Fortranをはじめる(Nervesにてはじめる前の準備運動を開始)


いくら考えても、どうにもならぬときは、四つ辻へ立って、杖の倒れたほうへ歩む。

Advent Calendar 2022 3日目1の記事です。
私のAdvent Calendar 2022 一覧


はじめに

Elixirを楽しんでいますか
Nervesを楽しんでいますか

今朝、NervesJP Slack ワークスペースに、@kikuyuta先生から以下のツイートのご紹介がありました。

このビッグウェーブに乗るしかありません2

次回のリリース3で、Nerves上でFortranも楽しめるようになるとのことなので、まずはパソコン上にてFortranでHELLO, WORLD!しておきます。

参考にしたサイト

ありがとうございます!

これのElixir版は、@nikuさんの「Elixir 基礎文法最速マスター」です。

実行環境

Dockerで実行しました。
上記を参考にしました。4

ありがとうございます!

ソースファイル

hello.f
      PROGRAM HELLO
      PRINT *, 'HELLO, WORLD!'
      END PROGRAM HELLO

※ 6個のスペースには意味があります。詳しくは、「とほほのFORTRAN入門」をご参照ください。私もノスタルジー感を出したく、「FORTRAN 77」 に従ってみました。

Dockerfile
FROM alpine

WORKDIR /home/fortran
RUN set -x && \
    apk update && \
    apk add --no-cache gfortran musl-dev

CMD ["/bin/sh"]
docker-compose.yml
version: '3'
services:

  fortran:
    build: .
    container_name: fortran
    volumes:
      - .:/home/fortran
    tty: true

Run

$ docker-compose run --rm fortran gfortran hello.f -o hello 
$ docker-compose run --rm fortran ./hello

$\huge{\ HELLO, WORLD!}$

ビッグウェーブなの?

わかりません。

ただ、少なくとも私にとっては間違いなく、すべからくビッグウェーブです。
私は誰かからたのまれたわけでもありませんが、@kaizen_nagoya さんに刺激を受けて、2022/12/25までアドベントカレンダー 2022と題して書き続けることを決めました。
Fortran on Nervesで何本か書けそうです。
私にはビッグウェーブ到来です。

冗談は顔だけにしておいて、以下の記事をご紹介しておきます。

「Fortran」の人気が再燃?--専門家が考える現状と展望

$\huge{「Fortran」の人気が再燃}$

しているんです!5

これは私の勝手なイメージですが、Nervesには必要最小限のものしかデフォルトでは入れない、必要な人は各自で必要なものを追加してねというようなポリシーがあると思っています。
過去2度ほどのFortranの追加要望があったとツイートには書いてあります。
これが200回とか2,000回とか20,000回なら、必要ですね〜 と、Nervesのコアチームが決断するのを私でも理解できるとおもいます。
たったの2回ですよ、たったの。
ということはですよ、ですよね〜。もうお分かりですよね、私が言いたいことは。

「Fortran」の人気が再燃?--専門家が考える現状と展望」この記事に書いてあるような事態が本場アメリカでは巻き起こっていて、何に使うのかまでは私にはわかりませんが、実行環境としてNervesが一躍スターダムにのし上がってくるのかもしれません2

Wrapping up

近々?、NervesでFortranを楽しめるようになるそうです。
Fortran未経験の方は、「とほほのFORTRAN入門」を参考に、準備をはじめてみてはいかがでしょうか。

Enjoy Elixir


I organize autoracex.
And I belong to NervesJP.
I hope someday you'll join us.

We Are The Alchemists, my friends!


  1. @kaizen_nagoya さんの「「@e99h2121 アドベントカレンダーではありますまいか Advent Calendar 2020」の改訂版ではありますまいか Advent Calendar 2022 1日目 Most Breakthrough Generator」から着想を得て、模倣いたしました。  

  2. いろいろ前提を間違えているかもしれないので、どうでもいい想像です。 

  3. 正確には、Next toolchain releaseと原文のツイートには書いてあります。よくわからないので「次回のリリース」というあいまいで便利な日本語にしています。こうやって、翻訳時に間違いが埋め込まれていくというのを地でやっているわけでありまして、やっぱり英語は英語のまま理解するというのが一番よいわけです。 

  4. 当初、 https://hub.docker.com/r/ibmcom/xlf-ce/ を参考にすすめてみましたが、docker: no matching manifest for linux/amd64 in the manifest list entries.というエラーがでて断念しました。断念したのは、元となるリポジトリが5年間ほど更新されていないことと私はいずれNervesで動かすので、ここで立ち止まる必要はないからです。ググり力が足りず、なんだかわからないけど、今回はまあ、いいやと放っておくことにしました。いや、こういうのってすぐまた別なところで同じく詰まるんですよね。だから、私のマネなんか(だれもしないとはおもいますが)しないほうがいいです。 

  5. 私事ですが実家を片付けていると、20年以上前に買ったFortranの本がでてきました。そのまま格納してしまいましたが、やっぱり引っ張り出してこようとおもいます。実家までは車で30分くらいです。