トップページに戻る

AUTHOR: schwarz1009
TITLE: つまらない世界
BASENAME: 2023/01/04/202955
STATUS: Publish
ALLOW COMMENTS: 1
CONVERT BREAKS: 0
DATE: 01/04/2023 20:29:55

この世界はつまらない

この世界は、つまらない。
なぜか、みんなよくできる。
みんなはいろんな面白いことができていいよな。
僕はまったく面白いことができない。
プログラミングの知識をどれだけ学んでも、
一向にアプリケーションが書ける気配はないし、
音楽も美術も、僕には「練習したいと思える」という才能がないため、
結局、練習など何もせず、何ひとつできていない。
僕はこの世界とは上手く噛み合うところがひとつもない。
僕はこの世界でできることが何もない。
このような世界で、なぜ、みんなはそんなによくできているのだろうか。
本当は、できている人間は一部だけで、その裏側には何もできていない無数の集団がたくさんいるのかもしれない。
ああ、早く新しい生物に進化したいものだ。
早く、人類よりも優れた生物の時代になってほしい。

大学の教科をもう少しマシで面白いものにしてほしい

また、僕は大学の勉強などできない。
その理由は、大学の教科はつまらないからだ。
大学の教科を、もう少し面白い、マシなものにしてほしい。
大学の教科はあまりにつまらない。
数学の数式なんかきちんと理解したくない。
歴史の教科書には説明のない言葉の羅列しかでてこない。
ああ、つまらない。
このような人間はまだ天国に逝くべきじゃない。
これくらいで天国に逝けるなら、この世界で生きた理由はどこにあったのか。
僕はまだ地獄を選ぶ。
地獄を、地獄に生まれたのに相応しいぐらい、十分に経験してから天国に逝かなければ、シナリオとしておかしいだろう。

Microsoft Linuxを作ってほしい

僕は、MicrosoftにMicrosoft Linuxを作ってほしい。
もちろん、LinuxカーネルにWindowsのウィンドウシステムを載せて、UNIXのツールはGCCを含めて全部最初から搭載し、パッケージ管理システムにはRPMを採用する。
NTカーネルはLinuxカーネルのサブシステムとなって、DockerでネイティブなWindows環境が動くようにし、MS-OfficeやVisual StudioがEmacsやviと同じシステムでネイティブ動作するようになる。
MSが作るなら使う。早く作ってほしい。どのように評価されるか恐れる必要はない。Microsoft Linuxを全員が使うようになればこの世界は楽園になる。
僕の敗北を認めるから、MSの政治力でLinuxを世界標準にしてほしい。それがこの世界においてもっとも正しい最善策だ。ほかの方法で、Linuxが普及する方法や手段など存在しない。MSが堂々とLinuxディストリビューションを作ること、それ以外に最悪の極みへと向かうIT業界を明るい未来へと変えることのできるような解決策はない。
MSよ、目を覚ませ。そしてLinuxよ、MSを許してやれ。確かにMSはLinuxの敵だ。それでも、もうそれ以外に、Linuxが勝利することのできるようなシナリオは存在しない。MSよ、Linuxに目覚めてくれ。

勉強したいと思えるようなことが何もない

また、僕は勉強したいと思えるようなことが何もない。
数学はつまらない。数式の説明をきちんと理解して数学書を読み進めるほど、僕は真面目でも律儀でもない。
物理学の専門書は、ありえない用語ばかりが出てきて、IT技術以上に「この本の著者はまともな人間か?」という疑念を抱いてしまう。
歴史の教科書は読みたくない。読めば読むほど普通のことが分からなくなる。
経済学の教科書は、つまらない理論の本か、あるいは普通の社会や政治や経済を説明してある、普通の本ばかりであり、読む気が起きない。
どうすればいいのか分からない。僕が興味があるLinuxは、残念ながら2023年の現在においては、デスクトップ用途でまったく使えない、もう流行が終わったOSであり、いくら15〜20年前の知識をつけたところで、なんの意味もない。

プログラミングはつまらない

僕は、C/C++の仕様を、もう少しマシなものにしてほしい。
構造体が値のコピーなのに、配列は参照のコピーであり、ポインタのインクリメントを多用し、オブジェクト指向においても通常のオブジェクト作成と動的な作成では異なる記法をし、gets()のような「使ってはならない関数」があり、そしてテンプレートやSTLを見るとカオスのように仕様が大きく、そうでありながら配列の要素数を求める手段すら標準で存在せずサイズから計算する必要がある。
このようなC/C++のありえない仕様を、もう少しなんとかしてほしい。
C/C++の仕様が最悪のせいで、プログラマ志願者が挫折する「最大の壁」となっているし、JavaやPythonがあると言っても、本当にネイティブなアプリケーションの開発に必要な分野ではC/C++を使わざるを得ないのだ。
また、Rubyは素晴らしい言語だが、C/C++とは逆の意味で問題だ。Rubyを使うと、プログラマが普通書くようなプログラムを書く必要がないくらい、簡単に短く書けてしまう。その結果、Rubyだけができて、Ruby以外のことが何もできなくなってしまう。Rubyを使うだけの「エンジニアに見えないRuby使い」になってしまうのだ。
だが、そのようなRuby的な考え方が、結局プログラミングの行き着く「最後の境地」であるということは分かる。Unityのようなゲームエンジンを使えば、非常に短時間でゲームが作れる。たまにソフトを操作してたまにC#を書くだけでいい。
そのようなプログラミングという分野は、はっきり言ってつまらない。本当にアプリケーションを書くという段階に行くことができない。
なぜ、本当にアプリケーションを書かないのか、それはWindows APIを知ってしまえば、普通に、そして完全にWindowsの考え方の下に、書こうと思えば書ける。メッセージループをしながらAPIの関数でデバイスコンテキストを操作するようにすれば、確かにWindowsアプリケーションは作れる。だが、それは完全に「Windowsのやり方で、Windowsの流儀に従う」ということが前提であり、いわばプログラミングというよりはWindows開発なのである。
だから、結局、プログラミングをやろうと思っても、広く浅く学んでも何も作れないし、深く狭くやろうとすればプラットフォームに完全に依存したものが出来上がる。その中できちんと知性と知識と知恵を使ってプログラムを書くのは、僕にとっては簡単なことではない。そう、結局僕自身が未熟なのも含めて、プログラミングはつまらないのである。

もっとPythonとTypeScriptに詳しくなれば賢い

だが、そのような愚痴をこぼしても、はっきり言ってなんにもならない。
もっとPythonとTypeScriptに詳しくなれば賢いのが分かる。
Pythonは、人工知能やデータマイニングといった得意分野があるし、初心者がプログラミングのエッセンスを吸収するのに良いため、どこの学校でもまずPythonを教える。
その後は、TypeScriptをやる人間が多い。
TypeScriptは、そもそもJavaScriptというWebブラウザで動く言語があって、そのJavaScriptに静的な型とクラスベースのオブジェクト指向を付け足したのがTypeScriptだ。
今のWeb業界は、このTypeScriptがほとんど業界を支配している。クライアントサイドで使うことの多いJavaScriptだが、最近はNode.jsの影響でサーバーサイドでも使われることが増えている。
あるいは、サーバーサイドにはPythonやRubyやPHPを使って、DjangoやRailsやLaravelのようなフレームワークを使うこともある。
フレームワークを使うのはサーバーサイドだけではなく、クライアントサイドのJavaScriptであっても、ReactやVue.jsのようなフレームワークを使うことがある。
結局、そのような業界で働きたいならば、PythonとTypeScriptを学んでおけば外れはないと言える。
ただし、JavaScriptとは別の言語として、名前は紛らわしいがJavaという言語があり、Javaはとても広く使われている。仮想マシンで動く移植性の高い言語でありながら、洗練されたオブジェクト指向のクラスライブラリAPIを持っていて、C/C++がパフォーマンス重視の言語であるとしたら、Javaは安全性と大規模な開発における生産性重視の言語だ。従来C/C++を使っていた分野で、Javaを使うことも多い。
そういうわけで、TypeScriptとPythonとJavaを学ぶしかない。そのまま、ITハッカーのようなマスターになればいい。

カーネル

だが、結局、そのようなITを学び続けること自体に、なんの意味があるのだろう、という疑念を抱いてしまう。
僕はそもそもLinuxが好きなのであり、LinuxカーネルやGNOME/KDEのようなアプリケーションを開発したかったのだ。
だから、カーネルの勉強もしなければならない。そこにはC言語だけではなく、1960年代に培われた「ソフトウェアのオペレーションのためのシステムの技法」が存在する。並列処理のために、タイムスライスとCPUレジスタのコンテキスト切り替えによるスケジューリングと、論理アドレスを物理アドレスに翻訳する仮想アドレス空間を使用し、デバイスドライバやファイルシステムを通じて、システムハードウェアを支配するその世界では、「ハードウェアにおける安定したカーネルの動作」という目的がある。
そういうわけで、ハードウェアやCPU・メモリ・IOの知識についても、引き続き学ぶ必要がある。カーネルを書くことができるぐらい学ぶためには、はるかに遠い目標地点であると言える。

IllustratorとPhotoshop

ただし、僕の主な仕事はデザインであり、IllustratorとPhotoshopを使ってデザインの仕事をやっている。
だから、本当は、IllustratorとPhotoshopの技術や技法をさらに高めていきたい。
僕は分厚い600ページ超の美術解剖学の本も最後まで読んだし、アルフォンス・ミュシャの絵画の模写もしたし、風景デッサンの本を読んで透視図法とパースの付け方についても学んだが、それだけでは絵は描けないし、僕は全然プロ並みの絵が描けていない。
それでも、毎月のカレンダーと事業所の通信を作り、その後の実際の仕事の現場と合わせて、6年間実践形式で学んできたため、イラレとフォトショの基本的な使い方は分かった。
ベジェ曲線も以前よりは綺麗に描けるようになったし、パスを使って写真を切り抜くのはほかの誰よりも上手になった。
僕は「作業スピードが速い」と言われるが、その通り、流れ作業のようにたくさんのデザインをするのは得意だし、パズルのように写真と写真を組み合わせてクリッピングしながら綺麗にレイアウトするのが得意だが、その実、作業が雑で丁寧な仕事ができていないところがある。
写真補正についても、きちんと丁寧に補正することが難しい。
なので、より丁寧で、精巧なデザインができるようになりたい。その上で、イラレとフォトショの高度な技法を身につけたい。
世に存在するさまざまなデザイン・アート作品を見ると、僕は自分の技術レベルが低すぎて、申し訳ない気持ちになってしまう。これではいけない。世に存在するさまざまなアート作品ぐらい、美しくてかっこいい作品をもっと作りたいと真摯に願い、反省しているところである。