syghの新フラグメント置き場

プログラミングTipsやコード断片の保管場所です。お絵描きもときどき載せます。

ガンダムSEED DESTINYの感想

前作SEEDはTokyo MXの再放送を2016年に観ていたんですが、今年の3月からGyao!でDESTINYのリマスター版を無料配信していたので観てみました。しかし感想文をざっと書いて放置していたのを今日思い出したので一応公開しておきます。随所でDESTINYは酷評されていたので、一体どこがどうひどいのか恐る恐る確かめてみましたが、確かに こ れ は ひ ど い ですね(ニャンちゅう談)。なお、オリジナルのTV版は未視聴です。

以下、ネタバレを含むので要注意。

続きを読む

C/C++がクソ言語である最大の理由

C/C++には公式の言語リファレンスが存在しません。言語仕様や標準ライブラリ仕様を正確かつ明快に記述した無料の公式オンラインドキュメントが存在しないんです。
正直、これは致命的とも言えるレベルの欠陥だと思っています。これがクソ言語たる最大の理由です。それ以外の問題は正直たいしたことではありません。

Q. Cで分からないことがあるんだけど、これは何を調べればいいのかな?

A. ISO/IEC 9899 を読め。

Q. C++で分からないことがあるんだけど、これは何を調べればいいのかな?

A. ISO/IEC 14882 を読め。

JavaC#のようなまともな言語とその標準ライブラリには、公式のオンラインリファレンスマニュアルが存在しています。日本語版は翻訳の品質が低くて嘘が書かれていることも多々ありますが、少なくとも英語版を読めば正しい最新情報が誰でも得られるわけです。翻って、C/C++にはそんなものありません。一応 cppreference.com というWikiサイトはあるんですが、実はWikipediaと同様、匿名で誰でも内容を書き換えることができてしまいます。当然、嘘や不正確な情報が書かれている危険性もあるわけです*1。ユーザー数の多い英語版は大抵間違いに気づいた人が修正をかけてくれていますが、ユーザー数の少ない日本語版は放置されていることが多いです。正確な情報を得るには、規格書を読むしかありません。しかし無料で公開されているのはドラフト版のPDFのみだったりします*2*3。こんな中途半端なシロモノを誰かに勧めることができますか?

他にも日本語ではcpprefjpというサイトもありますが、ここもやはり間違いが含まれていたり*4、言語仕様全体を網羅していなかったりと、包括的に利用できるレベルには到達していません。

過去の記事で以前も述べたことがありますが、ハッキリ言ってC/C++というのは21世紀の新しいアプリケーション開発で採用するべき言語ではありません。今よりずっと貧弱だった、いにしえのコンピュータにおける制約に由来する未定義動作や未規定動作/処理系依存(実装定義)動作があまりに多すぎる*5*6。つまりプログラマが事前に注意すべき事柄があまりに多すぎて、おいそれと触ることができなくなっているからです。言語仕様を完全に理解していないと将来に渡って禍根を残す地雷を埋設してしまう羽目になるような言語、自分の脚を撃ちぬくことも簡単にできてしまうような危険な言語*7、そして何が危険であるかということを正確に知るために本来もっとも必要とされているはずの公式取扱説明書が無料で手に入らないケチな言語を、誰かに勧められるわけがないでしょう。ましてやプログラミング初心者であればなおさらです。もし初心者が最初に触れる言語がC/C++であったら、それは不幸でしかありません。プログラミングが嫌いになる可能性が非常に高くなるだけです*8。教える側もつらい。C/C++は、生のハードウェアやオペレーティングシステムに近い層にアクセスし、コンピュータの動作を理解するには最適な言語であり、今後もバックエンドの記述向けには一定のシェアを維持していくでしょうが、そうでないケースでC/C++を採用するというのは、あなたの時間をドブに捨てているのと同じです。
さあ、アプリケーションプログラマは今すぐC/C++をドブに捨てて、人間にやさしい真の高級言語を選択し、あなただけの優雅で知的な時間を確保しましょう。

*1:一番恐ろしいのは、「ほとんどの情報は正しくて、ごく一部だけ間違っている」というケースです。「木を隠すには森の中」とはよくいったもので、多数の真実の中にごくわずかな嘘を混ぜると大多数の人間は騙されて信じてしまいます。たとえそれが明らかな間違いであったとしても。

*2:実際としては、最終稿にできる限り近いドラフト版を参照すればだいたい事足りるのですが、だったら最終稿も無料で正式公開してくれと言いたいです。C++98/C++03に関してはドラフトも公開されていないので、旧規格ではどういう仕様だったのかという比較や歴史検証が簡単にはできません。C/C++に関して世の中に不正確な情報が大量に氾濫しているのは、標準化委員会の怠慢が原因のひとつでしょう。連中は標準化の作業にしか興味がなく、標準化後の正確な仕様に関する情報を布教するつもりなど毛頭ありません。昔から科学者や技術者にはこういうサイコパスのクズ野郎が多いですね。C++国際標準規格 - cpprefjp C++日本語リファレンス

*3:最近は言語仕様改訂の頻度が上がっているのですが、有用な機能以上に自己満足的で余計なオナニー機能が多数追加される事態になっています。C++20でchar8_t型を追加した際、既存のUTF-8リテラルの型を変更してしまうなど、破壊的な仕様変更すら入るようになりました。JavaC#も以前より仕様改訂の頻度が上がっているものの、かなり慎重に後方互換性に配慮したアップデートがされていますが、C++はダメですね。仕事が雑すぎる。C++11で息巻いて追加したライブラリも、C++17以降で非推奨となったものが多々あります。標準化委員会は現実を知らない頭でっかちな連中ばかりで、そのうえ思慮が浅く、実際のアプリケーションなどひとつも開発したことがないんでしょう。

*4:例えばC++14におけるconstexprの制限緩和について、「既存コードの互換性は壊れない」と吹聴していますが、明らかに大嘘です。新しい規格で非合法(コンパイルエラー)になるような仕様変更はまだ可愛いほうで、旧規格・新規格の双方で合法かつ挙動が異なる仕様変更は、最悪の形で既存コードの互換性を破壊します。c++ - What changes introduced in C++14 can potentially break a program written in C++11? - Stack Overflow

*5:コンパイラが出す警告やエラーに関しても、詳細は処理系に委ねられており、処理系Aでは警告/エラーが出ないのに処理系Bでは警告/エラーが出る、といったことは日常茶飯事です。異なるコンパイラを使うC/C++プログラマは、互いに会話が通じません。移植性のない不適切なコードを書いてしまっても警告が出ないことも多く、プログラマに重い負担がのしかかります。一方JavaC#は、コンパイラの実装がほぼ公式一択なので、こういった処理系間の差異に頭を悩ませる必要がないという点も使いやすさに拍車をかけています。ちなみにJavaには仕様に合致しているかどうかのコンフォーマンステストもあり、テストを通過しなければJavaを名乗ることはできません。Androidは互換性のない非公式のJava実装 (Dalvik VM) を持ち込み混乱をもたらしましたが、このような愚行は非難されて当然です。

*6:C/C++がどのくらい雑に設計されたゆるふわクソ言語であるかは、次の資料を軽く読むだけで分かります。標準規格と処理系 - cpprefjp C++日本語リファレンス

*7:Cの危険性を語るときによく使われる表現ですが、C++の場合はヘマをしたときに脚全体を吹き飛ばすとも言われています。

*8:自分は学生の頃、最初に購入させられたテキストが『プログラミング言語C』でした(通称K&RのC)。この本の難解さには定評があり、案の定Cのポインタで挫折しかけたのですが、『C言語ポインタ完全制覇』という良書に出会って克服し、また『Delphiオブジェクト指向プログラミング』という良書に出会って(C++ではなく)Object Pascalで最初にオブジェクト指向を学習したため、幸いにもプログラミングを武器にして生き残ることができたのではないかと思います。自然言語プログラミング言語を問わず、ある程度複数の言語を経験することはとても重要であり、特定の言語を使うだけでは得ることのできないような豊かな知見をもたらします。

美少女アンドロイドは電気羊の夢を見るか?

10月に『ロン 僕のポンコツ・ボット』を観ました。最高に面白かったです。ファミリー向けですがお勧め。
eiga.com

鑑賞後、何か他にも面白い映画がないか前売り券を探していたときに見つけたのが『アイの歌声を聴かせて』でした。
eiga.com

学園青春モノか……うーん、自分はあまり趣味じゃないんだよな……と思っていましたが、観てよかったです。ツッコミどころも多々ありますが、鑑賞中スクリーンから一度も目が離せなかったということは面白かったということなんだろう。

どちらの作品も前情報一切なしで鑑賞に臨んだんですが、示し合わせて制作したのではないかと思うくらい、驚くほど共通点がありました。一応ネタバレは避けるために核心には触れませんが、ロボット(あるいはアンドロイド)と人間との共生、そして少年少女の自立というものがテーマだったのではないかと思います。『ロン』ではネットワークに接続した「Bボット」を通じて、流行りのSNSに依存する子供たちが描かれます。『アイ』では生活の隅々までAI機器が浸透した近未来が描かれます。正直、自分にとってはどちらの世界も便利というよりはディストピアに見えてしまうのですが、近いうちに似たような技術は出てきて、現実が空想をあっという間に追い越してしまうのではないかと思います。

SF作品というのは往々にして、どうも現実世界における現在(作品制作当時)の技術の延長線上にあるものを小道具として使うことが非常に多いです。それが脚本家・演出家の発想の貧困や想像力の限界によるものなのか、それとも今を生きる観客に親近感を持ってもらうためにあえてそうしているのかは分かりませんが。SNSにしろスマートフォンにしろ、10年後にはまったく別のものに取って代わられているかもしれない流行りのものを画面に出すということは、表現が陳腐化してしまう危険性もはらんでいます*1。例えば『超時空要塞マクロス』(1982) では、移動する公衆電話というデバイスが出てくるのですが、作品の舞台となった2009年の時点で、現実世界ではすでに携帯電話が十分に普及しており、日常的に公衆電話を使う機会は失われてしまっていました。『機動戦士ガンダムSEED』(2002) や続編の『SEED DESTINY』(2004) でも、フィーチャーフォンのような携帯デバイスが出てくるのですが、そのデザインは現実世界の2000年代初頭にラインナップされていた製品そのものでした。今観ると完全に陳腐化しています。バルキリーモビルスーツのようなすごいテクノロジーがあるというのに、どうして現実世界においてすでに過去のものとなった古臭いデバイスどもが同じ時間軸に出現するのか*2

話が逸れました。本当に語りたかったのは、両作品にそれぞれ登場するロボット、「ロン」(日本語吹替CV: 関智一) と「シオン」(CV: 土屋太鳳) の可愛さです。いやあ、メロメロになりましたね。二人(二体?)とも、ロボットらしく健気というかまっすぐなんですよね。融通が利かない。でもひたすらに一生懸命で、そこがいとおしい。バッテリーが切れそうになって動きが鈍くなり、それでも最後の力を振り絞って歩こうとするシーンは心打たれ、悲しくなります。ポンコツと称されていますが、故障して動作がおかしくなっていたロンはともかく、シオンは他とまったく違うワンオフ機で、完全にオーバーテクノロジーです。『アイ』の世界観では、二足歩行の人型ロボットはいても、特定の用途に特化していて、かつ指示したことしかできない「弱いAI」の延長にあるものばかりで、外観もペッパー君やロビのような「ザ・ロボット」といった感じです。そこにシオンのような人間とほとんど区別がつかないレベルのロボットが唐突に出てくる異様さ。正直AIが云々より、このハードウェア技術のほうが驚異的です。しかもとびきりの美少女ときた。いったい誰の趣味だよ。サンダー(柔道部のクラスメートのあだ名)の気持ちが痛いほどよく分かります。

しかし主人公・サトミの母親(シオンの開発責任者)はなんというか……ダメな大人の典型ですね。子供より精神年齢が低い。そもそも、なんで社外秘の機密事項を子供でも見られるカレンダーに入力してるんだよ……こんなセキュリティ意識ガバガバの会社の製品なんて買いたくないぞ。詳しくは伏せますが、もとはと言えばアンタのせいじゃねーか、むしろ本来アンタが土下座して謝るべきでしょうが、と言いたくなる場面が何度もありました。

*1:要は設定の作り込みをどこまで本気でやるかということなんですが、一瞬だけ話題になればそれでいい刹那的な作品なのか、それとも10年いや20年経っても鑑賞に耐えうる作品としたいのか、という作り手の姿勢によっても変わってくるかもしれません。

*2:NECPC-98シリーズが全盛だった時代は、近未来SFアニメであっても登場するコンピュータはみんなPC-98風のデザインで、モニターもブラウン管、メディアはフロッピーディスクでした。ただ、制作当時のコンピュータ事情も知ることができるという点では資料的価値があるとも言えます。

らんま1/2

tvkで現在「らんま1/2」を再放送しているんですが、TVアニメのらんまは結構ストーリーが改変されてるんですよね。今回の「爆走! 雪だるま運びレース」は雪山が舞台でしたが、原作では海*1でした。せっかくの水着回をなぜ改変したし……(泣)
作画は素晴らしく良いし話も面白い、音楽も効果音も声も最高なんですが、やっぱり原作漫画のほうが好みですね。猫拳初出の回や格闘出前レースの回、ムース登場回も原作のほうが好きです。さらに言うと、なんとなく80年代の名残と温かみがある原作序盤の絵柄が大好きです*2。久しく帰っていない実家には、オリジナル装丁の単行本が全巻あるんですが、読み返したくなってきました。ちなみに新装版は全然ダメですね。物足りないんですよ。新旧どっちがコレクションしたくなる表紙か、一目瞭然です。Kindle版もオリジナル装丁にすればいいのに。ドラゴンボールのコミックスも新装版や完全版より当時のオリジナル装丁のほうが好きですね。こちらも実家には全巻あります。

最近のアニメは深夜枠であっても乳首とかTV放送では一切出さなくなってつまらない限りですが、昔はゴールデン枠でも乳首くらいは全然OKでした。とはいえ昨今の下品なエロアニメ*3と違って、らんまのお色気は爽やかで自然なので、別にお茶の間が気まずくなるようなものでもないんですが。

女らんまはたぶん自分にとって初恋のキャラクターだったと思います。特に「おさげの女」にぞっこんの変態九能帯刀が出てくると俄然話が面白くなります。シャンプーやかすみさんも可愛いんですけどね。今は録画とか定額配信とか、ハードウェアや視聴環境の面では恵まれていますが、リアルタイム視聴に関してはたぶん昔のキッズのほうが面白い作品に恵まれていたんじゃないかと思います(思い出補正抜きで)。特に名作劇場があったのが大きい。

そういえば同時代のTS (trans-sexual: 性転換) モノとしては「ふたば君チェンジ」もありましたね。この作品もオリジナル装丁のほうがいいな……

book.dmm.com

週刊少年ジャンプに連載されていた漫画「まじかる☆タルるートくん」でも性転換ネタがありました。主人公・江戸城本丸が魔法アイテム・ホルモンガーを飲んで一時的に女体化し、丸恵ちゃんとなるのですが、ヒロインの伊代菜ちゃんに負けず劣らず結構可愛いのです。日曜朝に放送されていたアニメも観ていました。もちろんオリジナル装丁の原作コミックスが実家に全巻あります。

TS作品は男性作者と女性作者での視点の違いを比較したりすると面白いです。それにしても、昔の漫画・アニメのほうが絶対面白いですね。

*1:イカ割りが食べ物を粗末にするということでダメだったんですかね。だったら出前レースのおかもち返しはどうなんだ。PTA対策だったのかもしれませんが、乳首出しているお色気アニメの時点でへったくれもないだろうに……

*2:ああっ女神さまっ」や「まじかる☆タルるートくん」も序盤の絵柄のほうが好みです。「るろうに剣心」も連載当時は京都編あたりのスタイリッシュな絵柄が好きでしたが、最近は序盤の絵柄のほうが良かったなと思っています。連載が進むと線が減ったり細くなったり抑揚がなくなったりして絵柄が硬質になり、残念な方向に変化してしまう漫画家が非常に多くて悲しい。

*3:やたらめった乳をバネのように不自然にぽよんぽよん揺らすばかりで、お色気とお下劣を勘違いしている、画一的でレベルの低い作画ばかり増えています。デジタルに移行してから特に顕著。これでは規制されても文句は言えないかも。「どたぷーん」とか「たっぷんたっぷん」とか「ぽよんぽよん」じゃなくて、「つんっ」とか「ぷるんっ」のほうが慎ましくて良いんだよ……

アクトレイザーのリメイクに感じる気持ち悪さ

1990年に故・エニックスクインテット)から発売された超名作アクションゲーム*1*2アクトレイザー」のリメイク「アクトレイザールネサンス」が先月発売されたそうです。最近は(日本製の)新しいゲームをほとんどプレイしなくなったので、リメイク版がリリースされたこと自体全然知りませんでした。
古い名作ゲームが見直されること自体は喜ばしいことなんですが、アクトレイザーのリメイク版は絵が全然受け付けないというかもはや気持ち悪さや吐き気すら感じたのでブラウザのタブを速攻で閉じました。これはアクトレイザーの絵じゃない。アクトレイザーはもっと硬派でストイックなゲームなんだ。オタク向けの安っぽい絵で汚すんじゃねえ。

ロマンシングサガ3聖剣伝説3FF7もそうですが、今のスクエニはもう過去のスクウェアエニックス時代の知的財産 (IP) にすがったリメイク版や続編しか作れない弱小メーカーに成り下がってしまったんです*3。自分は当時のパッケージ絵や取説のイラスト、解像度の低いドット絵や粗いポリゴンといった限られた情報から、自分なりに世界観やキャラクターの表情などを想像しながらプレイしていたので、最近のリメイク版には何の魅力も感じません。それどころか、むしろすべて過去の思い出に泥を塗られた気分で不快です。ゲームのリメイクも結局アニメ作品のリメイクと一緒ですね……どこかで見たような小綺麗なハンコ絵や、あからさまにオタク層に媚びまくった萌え萌えな美少女、気持ち悪いホストみたいな美形のキャラクターデザインばかり。さらに最近のリメイク版ゲームはもれなくボイス追加が付いてきますが、これまた最近の特徴のない量産型声優によるボイスなんて興味ありません。仮にどうしてもプレイしろと言われれば、自分はボイスを全部OFFにするでしょう。

懐古趣味? そうかもしれない。老害だと笑いたければ好きにしてくれ。
「80年代や90年代の絵柄は古く感じるし、解像度の高いデバイスでは粗いドット絵は受け入れられないだろうから、新しくプレイする若年層にアピールするために絵柄を変えるぜ!」というのはまあ半分理解できなくもない話です。
「年を食ってゲームをプレイしなくなった旧作ファンなんてどうでもいい。あいつらはもうユーザーじゃないから無視しろ」というのもまあまあ分かります。
しかし、数十年後にトレンドが変わって揺り戻しが起きたとき、真に評価されるのはやはりオリジナルのほうでしょう。当時のオリジナル作品には、今どきの流行りの安っぽい絵柄や音楽にはない普遍性があります。皮肉なことに、それは当時のハードウェアリソースが極めて限られていたからこそ、開発者が容量の限界に挑戦し、妥協と取捨選択をする過程で生まれた結果でもあるのです。極限までそぎ落とされると本当に重要な表現だけが残り、それこそが時代を超えて語り継がれる普遍性です。際限なく有り余る容量は開発者を堕落させるんですね。あれもこれも詰め込もうとすると、結局何をやりたいのか焦点がボヤけてしまい、ボリュームを増やそうとすればするほど逆に存在そのものが薄っぺらくなってしまうんです。

ああ、この先ガイア幻想紀天地創造までリメイクの名目でレイプされてしまうんだろうか。だから最近のゲーム情報なんて仕入れたくないんだ。

*1:アクトレイザーには、神様が自ら魔物の巣窟に潜むボスを倒しに行くアクションモードと、天使を操作して町を発展させていくクリエイションモードの2つがあり、後者はシムシティのようなシミュレーションゲームに近いものとなっています。

*2:このアクトレイザーには有名な逸話があり、古代祐三氏が手掛けたBGMの完成度の高さに驚いた植松伸夫氏が、FF4のBGM音源を録り直した(サンプリングをやり直した)そうです。FF展レポート「FFVII 15周年記念ステージ」 & 「植松伸夫トークステージ」。「FFVII」から「FF音楽」まで、ゲームファン必見のトーク満載でお届け!! - GAME Watch

*3:スクエニに限らず、バンナムコナミなども同じです。かつて隆盛を誇った日本のメーカーは軒並み凋落し、世界で戦えるメーカーはもう任天堂カプコンくらいしか残っていないと思います。

Android Studio 2020.3.1のアンインストール

Android Studio 4.2.xまでは、プロジェクトを読み込んでいないスタート画面にて、「Configure」ドロップダウンリストから「Import Settings」や「Export Settings」を実行できていました。
しかし、7月末にリリースされた新しいバージョン「2020.3.1 (Arctic Fox)」のスタート画面では「Import Settings」は一応あるものの、「Export Settings」が使えなくなっています。
(いちいち何らかのプロジェクトを開いた状態で、メニューの「File」→「Manage IDE Settings」から実行しなければならない)

2020.3.1では他にも使いづらくなった部分があるので、いったんアンインストールして古いバージョンに戻そうと考えましたが、ここで問題が発生。

コントロールパネルの「プログラムと機能」にはAndroid Studioのアイコンが登録されているんですが、アンインストールしようとすると、

[Window Title]
プログラムと機能

[Content]
Android Studio のアンインストール中にエラーが発生しました。既にアンインストールされている可能性があります。

[プログラムと機能] の一覧から Android Studio を削除しますか?

[はい(Y)] [いいえ(N)]

というエラーダイアログが表示され、アンインストールに失敗します。

これまでのバージョンは、インストールすると

uninstall.exe が作成されていました。

しかし、どうもAndroid Studio 2020.3.1 (Arctic Fox) をインストールしても、上記の場所には uninstall.exe が存在しないようです。
多分インストーラーのバグでしょう。それにしてもGoogleの連中はアンインストール作業をテストせずにリリースしているのか……
Android StudioIntelliJ IDEAをAndroid開発向けにカスタマイズしているだけにすぎないのに、相変わらず品質がひどいな……

とりあえず以下を手動削除。

もしかしたらレジストリなどにゴミが残っているかもしれませんが、この際仕方ない。
削除したいのはIDEだけで、Android SDK/NDKやエミュレーターはそのまま使うので、特にアンインストールはしません。

その後、以下から Android Studio 4.2.x のインストーラーをダウンロードして再インストールしました。

developer.android.com

最強のIDEは?

すべてのIDEを使ったことがあるわけではありませんが、最強候補はVisual StudioもしくはIntelliJ IDEAだと思います。
VSは個人開発や少人数開発であれば必要十分すぎる機能を持つCommunityエディションを無償で使えるのも大きい。ネイティブコード/マネージコードどちらでも自由に言語を選択して開発できます。IntelliJのCommunityエディションやAndroid Studioは無償で使えるものの、対応している言語はJava/Kotlin/ScalaとJNIのC/C++だけで、純粋なC/C++対応のCLionや、.NET対応のRiderなどは有償製品のみです。

Android Studio (IntelliJ IDEA) はVisual Studioよりも検索・置換機能の動作が軽快で、使いやすい部分もあるんですが、前述のようなアホな仕様やバグが多々あるせいで、総合的な最強IDEの座に君臨しているのは未だVisual Studioであると断言できます。
あとMSBuildに比べるとGradle + CMakeは絶望的に使いづらい。動作も重いし、大規模プロジェクトになるほど実感するんじゃないでしょうか。

IntelliJはデフォルトのオートフォーマットもクソだと思います。調教しないと使い物にならない。ただ、オートフォーマットに関してはVisual Studioも独特のクセがあってイマイチです*1
Visual Studio 2017以降はEditorConfigに対応しているので、プロジェクト(実際はソースツリー)ごとにフォーマット設定をポータブルに管理することもできるようになっています。一方、IntelliJのEditorConfig対応は中途半端で、現状まともに動作しないので、IntelliJ固有のスタイル設定XMLファイルを別途プロジェクトのリポジトリにコミットしておく必要があります。

コード補完やツールヒントはVisual Studioが最強です。VS2012あたりですでに完成の域に到達していると思いますが、なぜか他のIDEは全然追従できていないですね。C/C++の静的解析ツール (lint) はMSVCもClangも一長一短ですが、Visual Studio 2019以降は設定によりClang-Tidyを有効にすることもできます。

スペルチェッカーに関しては標準でサポートしているIntelliJに軍配が上がります。VSは一応サードパーティ製のアドオンがあるものの、まともに使えません。

デバッガーについてはどちらも遜色ないほど強力ですが、VSのウォッチ式やイミディエイトウィンドウはネイティブコードではうまく機能しないことがあります。一方、IntelliJのEvaluate Expressionでは外部リンケージのシンボルにどのコンテキストからでもアクセスできるので、かなり強力です。とはいえ、Evaluate Expressionもネイティブコードではうまく機能しないことがあります。

developer.android.com

デバッグメッセージの管理はAndroidのLogcatのほうが総じて優秀です。Android端末側でログデータを保持しているので、デバッガーをアタッチすることなく、adbまたはAndroid Studioで端末に接続するだけでログを閲覧することができます。各レコードの出力時刻も自動的にミリ秒単位で記録されるので、パフォーマンス測定やシーケンスの整合性チェックにも使えます。
Visual StudioはWin32のOutputDebugStringW()や.NETのSystem.Diagnostics.Debug.WriteLine()などによるデバッグメッセージ出力を「出力ウィンドウ」で確認できますが、そのためにはアプリケーションをデバッグ実行してVisual Studioデバッガーをアタッチしておく必要があります。しかしデバッグ実行はかなり重くなるので、単純にログを閲覧するだけであれば「DebugView」のようなスタンドアロンのツールを使う方法もあります。DebugViewはUIが古臭くて使いづらい部分もあるのですが、アプリケーションの動作が極端に重くなるようなことはなく、レコードの出力時刻をミリ秒単位で表示することもできます。

なお、VSのAndroid対応は中途半端でバグも多く、特にネイティブコードとマネージコードを併用する際にデバッガーがまともに機能しないため、Android開発に関してはAndroid Studioを使わざるを得ません。

*1:Visual StudioではC++C#も、インラインで記述された複数行のラムダ式を含むコードをオートフォーマットすると、インデントが分かりづらくなります。そもそもラムダ式で書くようなコードは一般的に1行に収めるべきではありますが。

ジュラシックパークにはコミカライズ版もあるのです

金曜ロードショーで「ジュラシック・パーク」(1993) を久々に観ました。カットが多かったのが残念ですが*1、やはり原点にして至高ですね。目が肥えたせいか、今観るとどうしてもVFXやCGに甘い部分が散見されますが、その後に作られたどの続編よりも圧倒的に面白いです。最近の映画でありがちなフルCGよりも迫力があるのは、撮影に実物大のロボットを併用しているせいかもしれません。劇中に登場する中央制御室のコンピュータがブラウン管モニターで、ハードディスクの音がガリガリ聞こえるのも懐かしさを倍増させます。
現在では恐竜自体の研究も進み、当時とは認識や印象がまったく違う生物であったことが分かっている種も多々あり、科学的に正しいとは言えないかもしれませんが、恐竜パニック映画・エンターテイメントとしての魅せ方という点では完全に成功だったと言えるでしょう*2

style.nikkei.com

ちなみにジュラシックパークは、坂本かずみ先生の手によってコミカライズもされています。掲載誌はコミックボンボンの増刊号であるデラックスボンボン。当時小学生だった自分も読んでいて、映画よりも先に漫画で本作のストーリーを体験しました。

middle-edge.jp

めちゃくちゃ画力高いですね。このときのコミックボンボンガンダムロックマンという双璧を手に入れた全盛期でしたが、それだけに頼らず隠れた名作も多数掲載されていました。電子書籍版として再販してくれないかなあ。

ところで自分は最近の洋画を吹替で観るようなことは絶対しないのですが、この時代の吹替はちゃんと本職のプロ声優を起用しており、しかも我々が慣れ親しんだ超ベテランの吹替声優ばかりなので、終始安心して観られますね。最近はアニメでも三流のド素人芸人がヘタクソな吹替をするケースが増えてきて辟易していますが、こういうしょうもない芸能事務所や広告会社のゴリ押しがはびこっているのは日本だけでしょう。芸能事務所や広告会社の連中というのはどいつもこいつも映画の中身には興味ないんでしょうが、あまりにレベルの低すぎる吹替というのは、もはや聞くに堪えない公害レベルの邪悪なシロモノなのです。

*1:相変わらず民放はどうでもいいCMが多すぎです。流しすぎると逆効果だということに気付かないんだろうか……

*2:そもそも劇中のクローン恐竜たちは、部分的にカエルの遺伝子を使って復元されているという設定なので、本来の生態とは異なるものになっていたとしても何ら不思議ではありません。うまく設定を作り込んでいるなと感心しました。