ディスカッション (10件)
今なお医療現場などで根強く活用されているプログラミング言語「MUMPS 76」の記念エディションについて解説しています。その歴史と背景を網羅したプライマー(入門書)です。
MUMPSの記念すべき年と最初の標準化を祝うプロジェクトに取り組んでるんだ。馴染みがない人のために言うと、MUMPSは1966年にマサチューセッツ総合病院で生まれた有名な命令型言語だよ。最大の特徴は言語とデータベースが深く統合されていることで、NoSQLという言葉が生まれる何十年も前から存在していた先駆け的なNoSQLデータベースなんだ。プロジェクトの詳細はこちらをチェックしてね: https://github.com/rochus-keller/mumps/ 試してみたい人向けに、MUMPS 76インタプリタのプリコンパイル済みバージョンも用意してるよ。
去年のAdvent of Codeの大半をMUMPS(Caché上で動作)のコードゴルフで解いたよ。しかも7日目まではリテラル(数字や文字列)を一切使わないっていう縛り付きでね。すごく楽しかったよ。例えば3日目のパート1はこれ: https://github.com/dominique-m-aoc/aoc-2025/blob/main/day03p1.mac あと7日目のパート2も、英数字がほぼ1文字ずつバラバラに並んでて意味不明な言葉を綴ってるんだ: https://github.com/dominique-m-aoc/aoc-2025/blob/main/day07p2d.mac 面白い言語だし、それ以上にシステム全体や設計思想がすごくよくできているのに、なぜもっと普及しなかったのか不思議でならないよ。
義務なので貼っておくね: https://thedailywtf.com/articles/a_case_of_the_mumps
興味がある人のために補足すると、新しいバージョンのMUMPSは今でも多くの電子カルテ(EHR)企業の基幹データベースフレームワークとして使われているよ。特に有名なのは、米国最大のEHR企業であるEpic Systemsのバックボーンだね。
組み込みの階層型DB?いいね!ローカル変数と同じ構文でDBアクセス?いいね!エポックの日付が1841年?まあ、いいでしょう。文字列型だけで他の型が一切ない?うわぁ…。このページの付録7を見てみてよ http://www.faqs.org/faqs/m-technology-faq/part2/ 恐怖で夜中に叫び出したくなるから。面白いアイデアもあったし、当時としては合理的な考えもあったけど、悪夢のような部分も確実にあるね。
MUMPSの評判が悪いのは完全に濡れ衣だよ。ネットにある例(WikiページやあのひどいCase of the MUMPSの記事など)は、ストレージが貴重でエンタープライズ級のプログラムを数メガバイトに収めなきゃいけなかった60〜70年代の古いコードばかりだから、可読性が犠牲になっているだけ。実際にはMUMPSのコードは他のほとんどの言語より読みやすいし、シンプルで手続き的だよ。永続的なデータとローカルデータを同じように扱える機能は本当に素晴らしい。なぜ現代の言語がこれをもっと取り入れないのか不思議でたまらないよ。
先人の知恵を調べて、見落としていた機能を見直すのはいつだって有意義だよね。過去のアイデアの「良い部分」を組み合わせることでイノベーションは生まれるものさ。
変数を削除するコマンドに「KILL」なんて言葉をよく使えたよね。特に病院で使われる言語なのに。「KILL 患者」とか…?
プログラミングを始めた頃のことを思い出したよ。当時TRS-80でBASICを使っていたんだけど、友人がBASICよりもMUMPSの方がどれだけ優れているかを教えてくれたっけ。懐かしいよ。