フリーソフト「朝刊太郎」開発者
ふくなが
元地方紙記者。1999年にWindows専用の新聞DTPフリーソフト「朝刊太郎」を公開。約10年の開発休止期間を経て、2017年にアーキテクチャを刷新した「朝刊太郎改」の開発版を公開。現在もアップデートを続ける。
1999年から、約27年間にわたり個人によって開発されている、「朝刊太郎」というWindows向け新聞専用DTPソフトがあります。
新聞特有の複雑な組版を、高価な専門ツールを使わずとも実現できるこのフリーソフトは、中高生の授業における新聞づくりや、有志団体の会報製作などで活用されてきました。
開発者はITエンジニア……ではなく、長らく地方紙で報道記者や紙面レイアウトなどを専門とする「整理記者」として活躍していた、ふくながさんです。2017年には、全面的にアーキテクチャをつくり直した「朝刊太郎改」をリリースしています。
なぜプログラミング未経験だった記者が、30歳を過ぎてから、C言語を独学してまで新聞DTPソフトを自作したのでしょうか? そして、なぜ今もなお、開発を継続しているのでしょうか? 「どこから話したものか……」と語るふくながさんに、新聞、そしてプログラミングと歩んだ27年間をインタビューしました。
▲朝刊太郎でふくながさんが作成した新聞の例(公式サイトよりスクリーンショット)
「なぜこんなに使いづらいものがつくれるのだろう」
――「朝刊太郎」の組版の機能性から、印刷・出版業界のエンジニアの方だと想像していたのですが、もともとは新聞記者でいらっしゃったのですね。
ふくなが:はい。
これは偏見かもしれませんが、私の世代でフリーソフトの開発をしてきたという方には、少年時代にMSXを買い与えられて、ベーマガ(マイコンBASICマガジン)を読んで……というような元・パソコン少年が多いのではないでしょうか?
しかし、私は生粋の文学少年でした。小学校では図書室の本を読み尽くし、親に頼み込んで日本文学全集を買ってもらうような子だったんですよ。さらにディストピア小説の影響か、「コンピュータというものは人間を監視し管理する『悪の象徴』である」というイメージすら持っていました。大学も情報系ではなく、当然のように文学部でしたね。
――どのようにしてDTP開発へとつながっていくのか、まだ想像がつきません。
ふくなが:転機のひとつは、大学時代に入った新聞サークルです。
当時のサークルには、自ら企画を立て、取材をし、記事を書き、ジャーナリズムについて熱く議論を交わすような学生が多く集まっていました。
しかし、実際に新聞を発行するには、「割り付け」という作業が不可欠です。紙の上に記事や写真の配置を書き込み、見出しの大きさなどを細かく指定して、レイアウトを組むんですね。
「俺は記事を書きたいのであって紙面をつくりたいわけではないのだ」ということで、誰しもがこの割り付け作業を嫌がりました。
ところが、私はこの作業が大好きだったんですね。
――なぜ?
ふくなが:なぜでしょうね? 性分が合っていたのでしょうか。他の部員が嫌がる中、自分が1文字も書いていない面でも「俺がやってやるよ」とレイアウトや組版作業を引き受け続けました。気がつけば、全ページのレイアウトを担当するようになっていましたね。
その後、就職活動の時期を迎えると、新聞社には「整理部」という紙面レイアウトと見出し付けを専門に行う部署があることを私は知りました。「この仕事を生業にしたい」と考え、私は郷里の地方紙に入社したんですね。
ただ、希望すればすぐに整理部へ行けるわけではなく、外勤記者として警察回りや行政取材を7〜8年経験し、30歳を過ぎてようやく整理部へ異動となりました。
――念願の整理記者になったのですね。当時の新聞製作は、どのような環境だったのでしょうか。
ふくなが:私が整理部に配属された1990年代半ばは、新聞業界全体で大きな技術的転換が進んでいました。
既に多くの新聞社ではコンピュータ制作が主流ではありましたが、当時は、整理記者がレイアウトの指示書を作成し、それを元に専用の特殊な機材を扱う専門の職人が紙面を組み上げるという、2人1組の分業体制が主流でした。しかし70年代以降、人件費削減や効率化の波を受け、記者がコンピュータ上で編集組版システムを使って直接レイアウトを行い、1人で紙面を完成させる「編集記者組版」への移行が全国的に起きたのです。
私の勤務先でも、大手メーカーが開発した数億円規模の新しい組版システムが導入されることになり、事前の研修が始まりました。実際にそのシステムに触れてみて、私は強い衝撃を受けました。
――どのように衝撃的だったのでしょうか?
ふくなが:あまりにも使いづらかったのです。
その編集組版システムは、職人が「従来行ってきた作業工程を、コンピュータ上の画面に模倣する」ような形でつくられていました。当時のWindowsやMacのような直感的なGUIの思想とは似て非なるものだったのです。
「Undo」機能すらなく、いちど何か間違えればイチからやり直す必要がありました。
――現代の標準的なソフトウェアのUIとは、思想が全く違ったのですね。
ふくなが:どうやったら、こんなに使いづらいものがつくれるのだろう?
純粋に疑問を抱いた私は「なぜこのような仕様になってしまうのか、実際に自分で一からつくってみたら理由が分かるのではないか」と考えたのです。
また、仕事とは別に「プライベートでも自由に新聞レイアウトを行える手軽なツールが自分用に欲しかった」という動機もありました。
だから、新聞専用DTPソフトを開発することにしたのです。
新聞記者がC言語に挑んだ日
――とはいえ、プログラミングは未経験だったのでは?
ふくなが:おっしゃる通りです。
まずは当時定番だった、林晴比古氏が書いたC言語の入門書を購入しました。しかし、内容は全く理解できず、完全に挫折しました。「スーパービギナー編」と銘打たれた本でも駄目でした。
途方に暮れて本屋を巡ったところ、偶然「プログラミングに馴染みのない生徒へ、どのように教えるか」について指導ノウハウを工業高校の教員がまとめた本を見つけました。これを読んで、ようやく変数の概念や基礎的な制御構文を理解することができました。
――しかし、プログラミングの基礎が分かったとして、どうやって新聞専用のDTPソフトの仕組みを構築していけばいいのか、という大きな壁にぶつかりますよね。
ふくなが:そこは、ノンフィクション書籍『メディアの興亡』(※1)がひとつ参考になりました。
この本には、日本の大手新聞社が活版印刷からコンピュータ組版へ移行した際の、日米合同プロジェクトの苦闘が描かれています。その中には、開発者が複雑な日本の新聞紙面をいくつかの要素に抽象化し、「線の長さと位置を定義して、その線に文字や模様を流し込むプログラムをつくれば、紙面ができるだろう」などと考えるような描写がありました。
これを読み、私は「なるほど、どんな複雑な紙面も、結局は文字や直線の座標計算の積み重ねなのだ」と腑に落ちました。
もともと新聞の割り付けというのは、紙面に記事や見出しの箱を、パズルのように配置していく作業です。であれば、画面上に記事を入れる箱を置いて座標を指定し、その箱の中に収まる文字の座標計算はプログラムに任せてしまえばいい。こうした仕組みにすれば、頭の中で思い描いたレイアウトをそのまま形にできるはずだ、と考えたわけです。
▲記事や矩形を組み合わせながら紙面をつくっていく(画像は公式ヘルプから)
ふくなが:こうして仕事から帰宅した後の深夜や週末の時間をすべて注ぎ込み、約半年後には、最初の「朝刊太郎」を形にして公開しました(1999年)。当初は禁則処理(※2)も写真のトリミング機能もない、原始的な状態ではありましたが。
そして公開後、私にとって想定外の「誤算」が2つ起きました。
(※1)メディアの興亡:杉山隆男氏によるノンフィクション書籍。1986年出版(文藝春秋)。上・下巻。
(※2)禁則処理:例えば句点や読点、閉じ括弧などが行頭に来ないように、文字の配置や間隔を自動で調整する処理のこと。
――誤算、ですか。
ふくなが:1つ目は、予想以上に多くのユーザー層に利用されたことです。
私は中学校や高校の新聞部、あるいはPTAの広報担当者などせいぜい数十人~数百人しか利用しないだろうと想定していました。
しかし実際に公開してみると「ずっと新聞を読んできて、いつか自分でもつくってみたいと何十年も思っていた」という、個人の方々からの反響が多く寄せられていたのです。
新聞制作の経験者や、その必要に駆られているでもなく、純粋に「新聞紙面をつくりたい」という欲求を持つ人々が、自分以外にも世の中にこれほど潜在しているとは、全く想像していませんでした。現在でも、年に1万前後のダウンロードがあります。
――では2つ目の誤算とは?
ふくなが:「誰も、上位互換となるフリーソフトをつくってくれなかったこと」です。
この拙いソフトを世に出すことで、フリーソフト開発者や、凄腕のプログラマーを抱えた大手新聞社なんかが「もっとまともなツールを俺がつくってやる」と本気を出してくれるだろう、という期待を私は抱いていたんですよ。
ソフトを自作する過程を通して、「なんでこんなに使いづらいんだ?」という当初の疑問については、自分の中である程度は解消されていました。
初期の新聞コンピュータ制作システム(CTS)は、職人の手作業を模倣したような機器と操作体系で構成されていたようなのですが、時代が下って、私が触れた組版システムも、結局はかつての特殊な操作を単にマウスとキーボードに置き換えただけだったのです。活字を扱ってきた職人ならともかくとして、文字入力や機械操作の専門家ではない整理記者が1人で紙面作成まで完結させるとなれば、職人的な作業のほとんどはシステム側に任せて自動化できるソフトウェアが必要でした。しかし、当時のメーカーや新聞社には、単純に「そこまでの見識や技術がなかった」ということなのでしょう。
自分で一からソフトをつくり、機能とUIを工夫して実装していく中で、そう感じるようになりました。
疑問は解決した。なら、後は誰かがより良い代替ソフトをつくってくれれば、「朝刊太郎」はお役御免にし、プライベートの新聞づくりではそっちの便利なソフトを使えばいい、と考えたわけです。
しかし、待てど暮らせど代替品は現れず、朝刊太郎のユーザー数ばかりが増加していきました。需要は、なくはないのに、誰も上位互換をつくってくれない。
結局、私自身がユーザーの要望に応えて機能を追加するしかなくなり、その後も「朝刊太郎」の開発が継続されていきました。
その開発の手も、2007年ごろにいちど完全に止まるのですが。
「今度はちゃんとしたものをちゃんとつくろう」
――朝刊太郎の開発を一時停止したのは、どのような理由があったのでしょうか。
ふくなが:仕事が忙しくなったのと、シンプルにソフトウェアとしての拡張性が限界に達したからです。
結局、C言語を1か月だけ学んでつくったソフトに、行き当たりばったりで機能を追加し続けていたわけですから。例えるなら、基礎工事もせずに建てた掘っ立て小屋に、無理やり2階を増築し、地下室を掘り、隣に別館を建てたような状態です。
土台が脆弱なため、そのうち原因不明のバグが発生するようになりました。あるタイミングで、もはや「どこを直せば、どこにどう影響するのか」が自分で把握できなくなり、開発から手を引きました。
――その後、ふくながさんは「朝刊太郎改」を2017年にリリースしました。なぜ、再起したのでしょうか?
ふくなが:理由は3つあります。
まず、開発を停止している間も、OSのアップデートに伴う不具合報告など、ユーザーからのメールは細々と届き続けていました。このまま古いソフトウェアを長年放置しておけば、いずれ動作しなくなるだけでなく、深刻な脆弱性を引き起こすリスクもあるため、気がかりな点でした。
2011年の東日本大震災も、心残りになった出来事です。当時、被災地の地方紙がシステムダウンに見舞われ、手書きの壁新聞を発行したという報道がありました。
当然、大規模な停電下で輪転機も動かなかったようなので、どんな組版ソフトがあろうと紙の新聞を刷るのは困難だったかと思います。ただ、私は「朝刊太郎のようなスタンドアロンで動くソフトがもっと新聞社にも知られれば、こうした非常時における選択肢のひとつになれるかも」と思ったのです。
最後の理由は、私が普段使っている文書作成ソフトにある時、新しく新聞作成機能が追加されたことです。本格的な紙面がつくれる、との触れ込みでしたが、例示されたサンプル紙面は、個人的には感心できるほどのものではなく、新聞特有の組版ルールを満たすにはまだ足りない部分があるように見受けられました。そこで「自分の方が、もっと新聞づくりに適したものを提示できるのではないか?」との考えが浮かんだのですね。
だから、今度はちゃんとしたものをつくろうと思いました。2014年ごろのことです。
――「ちゃんとしたもの」をつくるために、どのようなアプローチを取ったのでしょうか。
ふくなが:また開発が頓挫しないよう、ソフトウェアの安全性や拡張性を確保するためには、定番の設計手法に則ってつくるのが最善だと考えました。また、私の年齢も年齢だったので、将来的には誰かに引き継いでもらえるよう「オープンソース化」を目指すことにしました。
そこでプログラミングを基礎から学び直しました。改めて、C++やSTL(標準テンプレートライブラリ)の入門書や、「GoF本」(オブジェクト指向における再利用のためのデザインパターン。ソフトバンクパブリッシング刊)などの定番書籍を読み込んだのです。コーディング規約についても、一から勉強し直しました。
また、いきなり本体のコーディングを始めるのではなく、まずはデータ構造を安全に変更するためのテストコードを何十個も作成しました。それ単体では何の役にも立たない検証用のプログラムを数年かけて書き続け、アーキテクチャの安全性を担保してから、ようやく「朝刊太郎改」の本体開発に着手したのです。
初代の時は半年で公開まで漕ぎ着けましたが、「改」の開発版を公開するまでには、約3年の歳月を費やしました。
――そのような経緯だったのですね。では初代~改を通して、新聞特有の組版を実現する上で、アルゴリズム面も含め、技術的に特に苦労した点を教えてください。
ふくなが:実際のところ、複数の段を跨ぐ見出しや写真の周囲に、記事を回り込ませる「抱え畳み」など、新聞特有のレイアウトをめぐるアルゴリズム自体は、それほど難しいものではありません。指定された矩形領域に対して、文字を流し込む経路を計算するだけなので、基本的には四則演算や一次方程式の組み合わせで解決できます。
▲畳みの例(公式ヘルプから)
ふくなが:技術的に苦労し、今でも私を悩ませ続けているのは、「日本語を正確に描画すること」そのものです。
そもそも現在のOSやプログラミング言語のAPIは、本質的に「英語を左から右へ横書きする」ことを前提に設計されています。それらを縦書きに対応させるだけでもなかなかの手間を要求されます。
特に最大の壁は、世の中に存在する、「新聞特有のレイアウトとは相性の悪いフォントデータ」の存在です。
例えば、Webやモダンな環境でよく使われる一部のオープンソースフォントなどは、画面上で美しく見せるためのさまざまな工夫が凝らされています。しかしその分、新聞特有の厳密な縦書き組版のルールに当てはめようとすると、文字の幅や配置が想定と異なってしまうケースがあるのです。そうした場合、ソフト側で文字一つひとつの座標を強制的に補正し、正しく配置し直す独自の処理を組み込まなければなりません。
新聞社が導入している業務用システムであれば、「使用するフォントはこれとこれのみ」と仕様を固定できるため、予測可能な制御ができます。
しかし、誰がどんなフォントをインストールしているか分からないフリーソフト環境において、日本語のタイポグラフィを破綻させずに描画させる処理は、エッジケースが無数に湧き出るのです。全ての定番フォントに対応できるわけでもないので、ユーザーにはサイト上で推奨フォントを案内しています。
――では、DTPソフトとしてはどのようなこだわりを込めていますか。
ふくなが:強いて言うなら「使えば使うほど新聞づくりが楽しくなるようなUI」でしょうか。直感的な親切さよりは、毎日のように触って、操作に習熟するほど手になじむような設計を目標にしています。
そのため、ひとつの操作ごとに、なるべく2〜3の異なるアプローチを用意するようにしています。
例えば、見出し枠などの「矩形」を紙面上で移動させる操作だけでも、「マウスでのドラッグ」「キーボードの矢印キーによる段・行単位での移動」「CtrlキーやAltキーを組み合わせた0.5文字単位・ピクセル単位での微調整」「右ドラッグによる、複数段を跨ぐ移動」など、さまざまな方法を実装しています。
こうしておくと、ユーザーは自身の好みや熟練度、シチュエーションに合わせて最適な操作を選ぶことができます。
「組版」の美学
――初代と「改」それぞれを手がけた経緯をお聞きしましたが、現在もアップデートを継続しているそのモチベーションはどこからくるのでしょうか。
ふくなが:実のところ、開発はもう終わってしまってもいいと思っています。ただ、「ここまで対応したら、開発に一区切りつけよう」と考えていても、新しい技術的課題が次々と出てくるため、結果的に開発が続いている状態です。
例えば、開発を始めた当時は想定していませんでしたが、時代の変化に伴い、64bit環境への完全移行や、OpenTypeフォント(※3)への対応、さらには4Kモニターなどの高解像度環境への最適化が必須になってきました。こうした「5年後、10年後を見据えれば、さすがに対応しておかなければマズいだろう」と感じる技術的な負債の解消に追われています。
常に高いモチベーションを維持しているわけでもありません。すでに新聞社は退職しているため時間はありますが、私の開発スタイルは非常にムラがあります。やる気が出た時は、2週間ぶっ続けで毎日10時間以上コードを書き続けることもありますが、熱が冷めれば、数か月間ソースコードを全く見ないこともあります。
また、長らくオープンソース化をひとつの目標にして開発を続けてきましたが、最近は迷いも生じています。
「これほどニッチなソフトウェアをオープンソースにしたところで、果たして誰か引き継いでくれるのだろうか……?」という疑問があるのです。
それに、せっかくアーキテクチャの土台を書き直したものの、気がつけば当時のコードも古くなりつつあり「果たしてこんなコードを公開していいのだろうか」という葛藤もあります。
迷いは尽きませんが、ひとまずは既存の32bit版でできていたことがすべて確実に実行できる、完全な64bit版の開発を進めていきます。
(※3)OpenTypeフォント:AppleとMicrosoftが共同開発した、現在主流のフォント形式。従来のTrueTypeフォント等に比べて収録可能な文字数が大幅に増え、異体字や複雑なタイポグラフィの高度な制御が可能になっている。
――さまざまな葛藤がありつつも、自身では朝刊太郎を使い続けているわけですよね。大学時代から熱中してきた組版の面白さとは、何だと思いますか?
ふくなが:新聞のレイアウトには、独特の奥深さがあります。
例えば、同じ日の、同じニュースの、テキストや写真素材を渡されたとしても、レイアウトを組む人間によって、出来上がる紙面の印象は異なってきます。見出しの大きさ、記事の配置バランス、写真のトリミングの仕方など、制約の中でどれだけ読者の視線を誘導し、情報の優先度を視覚的に伝えるか。そこに、編集者の個性や力量が明確に現れるのです。
また、アメリカの新聞などは比較的自由で、記事が枠に収まらなければ適当なところで切って「詳細は何面へ」と飛ばすこともあります。しかし、日本の新聞は違います。限られた1面の矩形空間の中に、すべての記事と要素を律儀にピチッと並べきる傾向がある。そうした制約の中で、紙面を構築していく際の創意工夫が楽しいのだと思います。
それに、新聞というのは堅苦しくて面倒なイメージを持たれがちですが、実は分かりやすさとつくりの簡単さが両立したメディアだと思うのです。Web上でHTMLを組むよりも、新聞を組む方がずっと簡単だと思います。だからこそ、「朝刊太郎」を使っていただける方には、ぜひ毎日のように気軽に触って楽しんでほしいのです。
――ちなみに、ご自身ではプライベートでどのような新聞を作成されているのでしょうか。
ふくなが:一例を挙げると、パロディ新聞です。
――パロディ新聞?
ふくなが:はい。
例えば、話題になっているドラマの中で起こった架空の事件や出来事を、まるで現実のニュースであるかのように、新聞紙面のフォーマットで作成するんですね。ドラマ内に登場した小道具や設定を元に、架空の書籍の広告欄までつくり込んで楽しんでいます。
――何と言いますか、市民団体の広報誌のような「真面目」な用途ではないのですね。
ふくなが:ほとんど遊んでばかりですよ(笑)。
結局、自分が楽しく遊ぶための道具を、自分自身で手入れし続けているだけなのかもしれません。
取材・執筆:田村 今人
編集:王 雨舟