【読了記録】今月読んだ本 ~24年5月編~
遅くなりました
更科功『化石に眠るDNA 絶滅動物は復活するか』
近年、地球温暖化の影響もあってか永久凍土から冷凍保存された何万年前の生物が見つかったというニュースがたまに報道される。特に有名どころではマンモスで、2005年の愛・地球博でも冷凍マンモスが展示されていた。こういった報道が出るたびに私も心躍らされる。やはり一古生物ファンに取っても新たな発見は嬉しいものである。
さて、その古生物に関する研究でよくあがるテーマなのが「古生物(絶滅生物)は復活できるのか」である。最近金曜ロードショーでも放送されていた「ジュラシック・ワールド」では琥珀の中に封じ込められた蚊の腹部から血を抜き出して恐竜のDNAを採取している。また、冷凍マンモスの例ではマンモスのDNAを何らかの方法で得た後に、系統樹に近いゾウからマンモスの子供を産ませるといった手法が研究されている。
ジュラシック・パークシリーズなどの古代生物の復活をテーマとしたSF作品では前掲の手法が頻繁に取り上げられている印象である。ではこれらは絵空事でなく実際に可能なのか?数万年前に生きたマンモスを基に現世にマンモスは復活できるのか?本書ではそれをテーマにしている。
クアッガ(絶滅した体の一部だけにシマウマ模様のある馬)の剥製からDNAを抽出できるか、から始まった絶滅動物のDNAに関する研究はPCRなど新技術の開発と共に発展してきた歴史がある。(例のウイルスで有名になったPCRはもともとこういった分野で非常に使われている手法だったことを初めて知った。)しかし、どんなに技術が発展していても古代DNA自体は断片化などにより劣化しているため、完全な形で得られることはまず無い。断片化されていると解読したとて解読箇所が全体DNA配列のどの位置が位置してきたか、特定は一筋縄ではいかない。
また、個人的に最も難しいと思った点は、例えば恐竜のDNAを解読しようとして得られたDNAが本当に恐竜のDNAであるかは証明できないことである。恐竜からDNAを抽出できた試しがないので証明のしようがない、正に『悪魔の証明』である。
DNA技術の発展により我々ヒトとネアンデルタール人の交雑が判明したように、過去に起こった事実を突き止めることはDNA技術の発展の賜物であるが、いまだに絶滅動物の復活は実現していない。そもそも絶滅生物を復活させることによって、環境にどのような影響があるかは誰も予想できないのである。例えば18世紀に北アメリカの空を覆うように生息していたリョコウバトを現代に復活させた場合どうなってしまうのか。絶滅により失ったニッチは別の生物に取って代わられることが常であり、復活させた生物が再びそのニッチを再獲得できるかは前例がないため想像できない。
私の好きなドラえもんの話に『モアよドードーよ、永遠に』がある。タイムホールという一種のタイムマシンでのび太がジャイアント・モアやドードーなどの絶滅動物のを現代に連れて来る話で、このときはドラえもんの力によって問題を無事に解決している。書籍や漫画・映画などの活躍で環境保護の機運は徐々に高まりつつあると思う。しかし絶滅してしまったものを生き返らせるのは正しいのか、人間が絶滅生物が暮らす理想郷を作れるのか、命の操作をどこまでするのか、まだまだ議論が必要なテーマだと思った一冊だった。
Dustin Boswell、Trevor Foucher著、角征典訳『リーダブルコード ―より良いコードを書くためのシンプルで実践的なテクニック』
毛色が大分違うが読んだので取り上げる。一応プログラミングにも携わる業種なので読んで損はないと思ったのと、先輩からの勧めもあって読んだ一冊である。
非エンジニアの人もこのnoteを読むと思うので、プログラマーの生態について述べると、恐らくプログラミングの仕事全体のうち50%以上の時間でプログラムを書いているプログラマーは存在しないと思う。プログラミングの本質は「調べること」「読み解くこと」かな、というのが現在の私の持論である。
「調べること」というのは例えば実現したい処理(なんでもいいが、5教科のテストの合計点と平均点を求めるツールだとすると「計算する」ところなどが処理にあたる)があるとして、この計算方法の書き方を求めるコードの書き方をGoogleなどで調べることを指す。もちろんこの例ではあまりにも簡単だと感じるが「Excelのこのセルとあのセルに一致するセル番地を取得する」みたいなものだともう調べるしか無いのである。プログラマーはコードの書き方はあまり覚えていないが、実現したい処理は頭の中にある。それを書き起こすためにはググるほうが早いのだ。
「読み解くこと」はググったりあるいは前任者が作ったツールから自分が実現したい処理をどうやったらかけるかを理解することである。簡単そうに感じるがこれが一番難しいまである。学校の授業で書いたノートは自分でわかるように書くのと同じように、全てが人に見せる前提で書かれたコードでないからである。この「自分だけわかれば良いコード」が一番厄介で読み解くのも大変であれば、再利用(コピペして使いまわし、というのもよくある)も難しい書き方をされてることもある。これが一番忌避されるプログラミングコードというのは何となく理解してもらえると思う。
この逆で「誰でも理解できる」「見た瞬間に理解できる」「使いまわしも簡単」なコードこそが優れたコードであり、『リーダブルコード』では優れたコードの書き方・テクニックが豊富に列挙されている。どういったテクニックかはここでは述べないが一番端的なのは「理解しやすくするためにはコードを書かない、すなわち余計なことを書かないのが一番」というのはその通りである。
プログラマーにとってのバイブルであり、これからも読み直したい一冊である。
今月はこの2冊。ちょっと少なかった。では。