青ポスの部屋

旅と技術とポエムのブログ

大型二輪免許(3) 第二段階

大型二輪免許(2) 第一段階 - 青ポスの部屋

波状路(1時限)

波状路大型二輪だけの教習項目で、はしご状に段差が設けられたコースを5秒以上かけて立ち姿勢で通過する項目だ。

第一段階では横を通過していたのだが、結構段差が高いなと思っていた。第二段階初回ではとりあえず1回やってみたのだが、ハンドルを取られ思うようにまっすぐ進むことができなかった。その上変な体勢になったのか背中が痛くなった。

そのとき、教官に「中腰になっている、もっとまっすぐ立って前傾気味に」と言われた。テキストには「足腰で衝撃を吸収する」といったことが書いてあったので無意識に少しかがみ気味になっていたのだろう。まっすぐ立つことを心がけると簡単に通過できた。またテキストにだまされるところだった。*1

急制動(1時限)

急制動は普通二輪のときからある項目だが、それ自体は初回から「よくできている」とのことだった。

体験項目として、目標位置ぴったりに止まる急制動と、久しぶりにCB400スーフォアを使っての急制動をした。物理的にはCB750のほうが重いので止まりにくいはずなのだが、大型ではさっさと40km/hに達して余裕をもって止まれたのに対し、中型では加速も思いっきりやらないといけないので、大型のほうが止まりやすいような感じがした。久しぶりに乗ったスーフォアは、YBR125よりはパワーがあるはずなのだが、CB750のあとだったので少し加速が鈍い気がした。とはいえやはり400ccは自分にとって十分乗りこなせるバイクだと感じて少し自信がついた。

回避(3時限)

これも普通二輪と同様のもので、教官が上げた旗の「色」に従った方向に回避するものだ。従うのは旗の向きではなく「色」なので、逆の向きにあげられた場合はその旗の方向ではなく旗の逆の向きに回避しなければならない。

一回目はちゃんとした向きにあげられたのだが、少し迷ってしまった。二回目は逆向きにあげられたのだが、すぐに反応しなければと思いこんで間違えた方向に回避してしまった。教官には「気を付けてね」と言われた。とはいえこんな脳トレのような場面は実際にあるのだろうか。

シミュレータ(5時限)

第二段階には大型で唯一のシミュレータ教習がある。とはいえ普通二輪のセット教習の前半と一緒に行われるもので、新たな免許を取るにあたっての見直しというような意味合いのものだ。

普通二輪の人二人と一緒に教習を受けた。普通二輪の二人と違って乗車経験があるとはいえ、バンクもできずタイヤの感覚も伝わってこない、すべての情報が前の画面からしか伝わってこないシミュレータで運転するのは大変だった。

運転している途中、カーブで内側を攻めすぎてはみ出してくるトラックと接触しそうになったり、横断歩道で待っている歩行者に気づかなかったりで、慣れは怖いなあと思った。

高度なバランス走行(6時限)

教習項目としては「『高度な』バランス走行」となっているが、濡れたマンホールの上で後輪をロックさせるのと、変則スラローム、小旋回、波状路をゆっくり、という内容だった。

小旋回はなかなかうまくできなかったが、普段のYBRで旋回するときにも役に立ちそうではあった。総括として、教官は「要するに無理はダメということですね」と言っていた。

見きわめ(7時限)

最後のコマはおなじみ見きわめで、結論から言うと1回で良好だった。
ただし、最後に「右左折で確認と同時に寄せにいってしまうくせがある」と指摘された。法規上は「進路変更の合図は3秒前」ということになっているので、合図を出してから3秒置いてから寄せないといけない。気を付けなければと思った。

次:大型二輪免許(4) 卒業検定、免許取得 - 青ポスの部屋

*1:四輪のときもテキストのハンドリングをマネしようとしてめちゃくちゃなことになっていた。

このご時世にfortranを触ってきて思ったこと

注意:かなり個人的な愚痴がメインです。

fortranという言語をめぐる現状

fortranという言語を考えてみる

最初に言っておくが、fortranは決して「どうしようもなく使えない過去の遺物」というわけではない。並列計算ライブラリであるMPIやopenMPはCやfortranでの使用をデフォルトとしているし、理論シミュレーション業界ではfortranはCと並んでデファクトスタンダードであり続けている。Cのポインタ機能は初心者にはあまりに強すぎてしばしばセグフォで学習意欲をそいでしまうのに対して、fortranではそのようなことも少ない*1。コードの見栄えもセミコロンが必要なCより見やすい。

ただし、歴史の古いfortranという言語が情報化社会と呼ばれて久しい現代ではそれだけでは不十分であることも確かだ。何百本もの真空管からなるコンピュータをパンチカードで動かしていた時代からありつづけるfortranという言語が、複数のCPUやGPUを持つコンピュータを誰もが持つようになった現代でそのまま通用するわけがない。

もちろんfortranという言語も、モジュールプログラミングやオブジェクト指向といった新しい機能を取り入れてFORTRAN77からfortran2008へと進化してきた。しかしfortranが指向しているのは、fortranが生まれた時代にコンピュータが期待された唯一の役割である「数値計算」だけだ。

それに対して現代はどうだろうか。ありとあらゆる仕事がコンピュータに任されるようになり、マルチメディア処理のようにコンピュータ自身が生み出した分野もある。はっきり言ってしまうとfortranという言語はそういった処理がほとんどできないかきわめて煩雑な手続きが必要になる。

fortranのみで「プログラミング経験あり」と言うと笑われる

ここからは僕の実経験の話だ。

僕は大学に入ってからプログラミングを始めた。物理系の1回生のときに講義で初めてFORTRAN(全部大文字で固定形式でコメントアウトをcでやるやつ!)に触れたのが初めだった。2回生では違う先生が担当してfortran(幸いなことに小文字になって自由形式になった)を学んだ。

僕の親戚には情報系の職業についている人が複数いる。親戚同士の集まりで大学の講義でプログラミングをやっているという話題になって、言語でfortranをやっていることを言うと、こう言われた。

fortranなんかやってんの?今時COBOLのほうがまだ役に立つぞ。

今でも、全くその通りだと思う。COBOLも歴史が古いが、幸か不幸かいまだにCOBOLが基幹システムに使われたまま更新されていない例もあって、そういう意味では需要がある言語ではある。それに対してfortranは研究にしかほぼ使われない。そもそもCOBOLfortranよりもやるべき言語はたくさんある。

言われたとき、別に衝撃を受けたとかそういうわけではなく、「やっぱりそうか」としか思わなかった。というのも自分でもある程度授業以外でもfortranを触ってみたが、どうもピンとこないのだ。同時期に触っていたVBAでは家計簿をまとめるマクロを実装することができてすごいとなったのに、当時はfortranでは何も成果物ができなった。

非情報系にはモダンなプログラミングを教えれる人がいない

それなのに、現代の大学ではなぜいまだにfortranが教えられているのか。答えは単純だ。教えられる人間がいないのだ

情報系にはプログラミングができる人が集まる。当然だ。物理系には物理ができる人が集まる。それも当然だ。だから、物理系にはプログラミングができる人がいるとは限らない。

物理系の人はプログラミングを「道具だ」と言う。その上「道具」はとりあえず使えればそれでよいと考えている人が多い。たとえその道具や使い方が30年以上前の手法であっても、だ。

先に述べた通り、fortranオブジェクト指向のような新たな手法を取り入れながら進化を続けている。しかしモジュールプログラミングもオブジェクト指向も実行速度が劇的に上がったり何か新たな計算ができるようになるわけではない*2。使えればいい人にとっては性能が上がるわけでもないことをわざわざ勉強しようと思わない。

しかも物理系にいる人は物理がやりたい人で、プログラミングがやりたい人ではない。中には機械音痴で仕方なくプログラミングをやってる人もいる。そんな人が手続き型プログラミングをやっとこさ覚えて、それがちゃんと動くのに、大して性能が上がるわけでもない機能をわざわざ覚えようとするわけがない。無論そのような人間は情報系では淘汰される。しかしここは物理系だ。物理で功績を上げれば地位につける。それ自体は当たり前すぎることだ。

結果、物理系では教員でも、たとえばオブジェクト指向が何なのかよくわかっていない人が多い。そのような人が片手間でプログラミングの講義を持つのだから、内容も半期かけてやっと手続き型言語をやって、余った時間は重箱の隅をつつくような、自分で書いていくうちに調べればいいようなことに終始する。そんな人が、もし「プログラミングできます」と言って本当のプロの前に出て行ったらどうなるか、想像に難くない。

もちろん、手続き型プログラミングの経験も重要だ。オブジェクト指向型プログラムも結局手続き型で書いたメソッドやら関数の寄せ集めだから、手続き型プログラミングはその基礎となる。ただし基礎練ばかりしていても試合には勝てない。

fortranを学んだ学生がやるべきこと

ここまで、fortranをやっても不十分だということをつらつらと書いてきた。それで「ここまでfortranをやってきたんだけど、どうすればいいんだ」という人もいるかもしれない。

答えは簡単だ。「fortran以外もやってみる」だけだ。

「文法が簡単だから」というのも講義でfortranが使われる建前の一つになっている。しかし、世の中fortranと同じくらいかそれより簡単な言語もたくさんある。それにループや条件分岐といった基本的な構造はほとんどのプログラミング言語に共通だ。プログラミングをやるために入れた仮想端末やターミナルも、Emacsvimも他の言語でも多くの場合そのまま使える。

fortranでは思っていた成果物が作れずがっかりした」という人もいるかもしれない。fortranは味気ない数値計算しかできないのだからそれも当然だ。windowsで別ウィンドウでなんかかっこいいのを出したいならC#だし、Androidアプリを作りたいならJavaだ。プログラミング言語にはこんな風に用途に応じた使い分けがある。そういう意味でも、いろいろできるようになりたいならいろいろ手を出さないといけない。Pythonなんていうやろうと思ったら何でもできるくらいライブラリがある言語もある。

それでもインストールするのが面倒くさいというのもあるかもしれない。どれだけ経験を積んでも環境構築は面倒なものだ。そういう人でもLinuxを立ち上げればシェルスクリプトはすぐに使えるし、ExcelでAlt + F11でVBAがすぐ使えるようになる。そういう入口から入っても構わない。

大事なのは、「比べる」ということだ。基本的な事項という意味でfortranで学んだものが他の言語に生きるだろうし、逆に他の言語で学んだものがfortranで生きることもあるかもしれない。実際、オブジェクト指向の概念はfortranにもあるがPythonのほうが分かりやすい。そうすることでfortranでは気づかなかったプログラミングの面白さや、fortranの他の言語と比べてもよいところにも気づけるかもしれない。

まとめ

結論として、「プログラミングをやるならfortranだけじゃダメだ」ということだ。

「俺はプログラミングに関わるつもりがないんだ」というなら別にそれでもいい。でもわざわざこのページにアクセスして、しかもおっさんの愚痴みたいな駄文をここまで読んだ人は、そうではないだろうと思う。この先fortranしかいじる予定がないとしても、別の言語もやってみるべきだ。その経験はきっと役に立つ。

*1:ただしfortranでもセグフォが出ることはあるが、fortranでポインタを使うことは少ないのでポインタ由来のセグフォは意図して起こそうとしない限りほぼ起こらない。

*2:僕は試していないのだが、実は実行速度も上がるのかもしれない。ただし革命的によくなるわけでもない。

大型二輪免許(2) 第一段階

大型二輪免許(1) 入所まで - 青ポスの部屋

目次

大自二実車(1,2,3,5時限)

四輪、普通二輪のときにもお世話になった教習所だったので、知ってる教官に「お、大型二輪取りに来たんか?」と声をかけられた。僕も緊張しやすい性格だが、そういう会話もあって普通二輪と違ってガチガチに緊張することはなかった。

125cc超のバイクに乗るのは半年ぶりなので、ちゃんと乗りこなせるか少し心配ではあったが、教習はみんな普通二輪の時から知ってる先生だったので安心した。初回は中型の人と2対1だったのだが、開口一番言ったことにびっくりした。

教官「(青ポス)さんは免許取ってから長らく乗ってないとかないですね?運転できますね?」
僕「はい、ここまでバイクで通ってます」
教官「じゃあ検定コース走るのでついてきてください。

普通二輪持ちとはいえ大型は初めてなので、最初は外周を走ってたまに一本橋くらいだろうと思っていたら、いきなりフルコースをやらされることになった。

でかいバイクも久しぶりだったので操作は少しぎこちなかった。しかも教習車はギアも入りにくい、クラッチも固い、リアブレーキの利きもよくない車で、そのうえ教習用のプロテクターでニーグリップがやりにくいという運転しにくい状況だった。

それでも転倒することもなく普通にコースを一周できてしまい、二度びっくりした。125ccと750ccでは実に6倍もの差があるので、正直大型は大型でクランクやスラロームで手こずると思っていた。しかし125ccとはいえバイクに乗っていれば排気量が大きくなっても対応できるのだ。それにクランクは中型ではクラッチをつなぐかつながないかくらいの速度でないと通過できなかったのがローギアでつなぎっぱなしでも通過できるようになったし、スラロームもいきなり7秒を切るか切らないかまで行った。

CB750に乗った感想としては、古い車で運転しにくいところはさっき書いたとして、思った以上にセカンドの下限が低いと思った。エンストはしなかったが、YBRだったら大丈夫だろうなという速度でノッキングしたりしていたので、所内ではローギアのまま走ることが多かった*1

直線で前に車がいないときに少し張り切って加速してみた。すると一瞬で指示速度の35km/hまで出たので、さすがナナハンとは思った。

その後もブレーキの体験を挟んだが、いきなり急制動波状路以外の検定コースの反復練習をこなした。一本橋は多分10秒以上いけたし*2スラロームも7秒を切った。教習の終わりには教官にも「予定以上のことができています」と言われた。

気づけば、僕の「乗りこなせると思えるバイク」の上限は400cc以上に上がっていた。

AT体験(4時限)

4時限はMT免許ではおなじみのAT体験としてビッグスクーターで教習した。とはいえビッグスクーターでは小回りが利かないし微速が難しいので、検定コースから坂発進とS字以外の課題を省いたコースを走ったあと、全く課題のない簡単なコースを延々走っていた。

普通二輪でも思った通り、ビグスクは扱いにくかった。乗っていると「どうしてこんな扱いにくい乗り物に好き好んで乗る人がいるんだろう」とまで思った。もっとも所内では30km/hも出せないからビグスクの微速が扱いにくい特徴ばかり目立つのであって、それ以上の速度でツーリングしていると楽なのかもしれない。教官は125ccのスクーターで先導していたので、僕もそっちで教習したいと思った。

みきわめ(5時限)

ここまで読めば予想できる通り、みきわめも普通に良好だった。一応「今日はみきわめです」と最初に言われたが、検定コースを何周も練習しているうちに見きわめが終わって、練習するだけだった。

第一段階を終えて、一本橋はまた1回だけ落ちたもののほとんど安定して走行できるようになった。しかしスラロームが7秒にわずかに足りないくらいなので課題として残った。

大型二輪免許(3) 第二段階 - 青ポスの部屋

*1:しかもクラッチが固くて半クラで走り続けるのはしんどかった

*2:タイマーが壊れていた。