=> /blog.gmi ブログ一覧へ #【デジタル奴隷制度】低水準言語書ける方が消えたら、テクニカルな世界がおしまい 公開日:2023-03-27 ## 紹介 抽象化のレイヤーがソフトウェアに積み上げられると、ベースで何が起こっているのかを見失います。 抽象化されたコマンドをエディターに入力するときに、ハードウェアが何をしているかを正確に理解する事は出来なくなりました。 プログラミングと基盤となるハードウェアについての理解の欠如は、システムの崩壊と将来の重要なインフラの潜在的な崩壊を引き起こします。 ## 最新ソフトウェアは最悪 年々ハードウェアが改善されているにもかかわらず、最新のソフトウェアは低速です。 これは、Slack のようなものを開くだけではっきりとわかります。 デスクトップ環境で実行されるウエブテクノロジーの上に構築されたソフトがあります。 このテクノロジーの変化により、特に抽象的な言語やフレームワークを勉強して、使用するプログラマーが増えています。 よくある理由は、今のコンピューターのハードウェアの高速があるから、どうでもいいと言われます。 これにより、ハードウェアの制限、メモリ管理、およびCPU使用率に関する考慮事項がほとんどなくなります。 このスキルは、プログラマーのキャリアで洗練されていないため、あまり普及せず、あまり求められておらず、あまり知られていません。 => https://archive.md/7VKc1 2022年に最も人気のある5つのプログラミング言語は次のとおりです: 1. JavaScript 2. Python 3. Java 4. TypeScript 5. C# 全部はガベージコレクションされている言語です。 最高の給与はすべてガベージコレクター言語であり、ガベージコレクター無しの言語に真に習熟するインセンティブが少なくなります。 => https://archive.md/aCwm7 給与の上位は、Go、Swift、JavaScript、C#、及びPHPです。 プログラマーは自分の技術の低い次元の学びの意欲が低く、喜んでハードウェアの整理は言語に決められます。 ## 貴方の無知はビジネスに有益ばかり ビジネスの観点からは、特定のフレームワークの普及によるプログラミングパラダイムの標準化は非常に有益です。 これらのフレームワークを使用してソフトウェアを構築する方法を知っている人が多ければ多いほど、従業員を簡単に置き換える事が出来ます。 一部の企業は、初期のソフトウェアを構築するために経験豊富なプログラマーを高率で雇い、その後解雇して低賃金のメンテナーに置き換える事さえあります。 これは、フレームワークの大量採用によって非常にうまく促進されます。 フレームワークのトレンドが毎月変化し、プログラマーがこれらの新しいフレームワークを学習する事を優先して基本を無視するため、レガシーシステムを維持するのに十分な知識を持つプログラマーの可用性が低下します。 この影響は、10年か20年で前述のフレームワークに引き継がれ、ソフトウェアのカスケード障害が発生します。 ## テクノロジーがどのように機能するかは誰にもわかりません これが変わらせず続けば、私たちのインフラが誰もどのように機能するかを理解出来ず、ゆっくりと劣化して崩壊する時代に自分自身がいる事に気付くでしょう。 これは過去に数回発生しており、こんなイベントは普通に暗黒時代と呼ばれています。 これは、テキサス・インスツルメンツ社が不良品プロセッサの出荷を開始したときに実証されました。 何が起こっているのかを尋ねられたとき、彼らは、これらのプロセッサの設計者が会社を去り、新しいスタッフはこれらのプロセッサを正しく製造するために必要な深い知識を不足していると述べました。 ## これはソフトウェアだけの問題ではない 誰でも12週間のブートキャンプに参加して、プログラマーとしての仕事に就き、うまくやれるという事実は大変な事です。 これは、機械の機能性の理解するという大きな負担が、ごく少数の人々にかかっている事を意味します。 この仕事をうまくやるために取り組んでいるハードウェアについて何も知る必要がないため、プログラマーは、強い好奇心を持っているか、具体的にそうするように指示されない限り、それについて学ぶ事はありません。 これは、コードがハードウェアとどのように機能するかに関して、考慮と計画の欠如につながります。 ## 正しい問題の解決策の設計 沢山ソフトウェアは背後にある原動力となる観念形態で作成されています。 構造化された方法を強制し、プログラマーが解決する問題を作成します。 これは、独断的なアプローチのためにのみ存在します。 予め決められたコアアイデアに基づいてソフトウェア全体を設計すると、重大な問題が発生する可能性があります。 これらの恣意的なフレームワークを使用する事に力を注ぐと、難しい問題を効率的に解決する方法についての理解が不足します。 ## 情報の劣化は避けられない データの経年劣化であるデジタル暗黒時代が近づいています。 私たちにとって、これは奇妙な考えのように思えます。 現在手元にある情報にアクセス出来ないかもしれないという考えです。 しかし歴史は、文明の崩壊と知識の喪失が急速に起こる事もあるい、誰も気付かないうちにゆっくりと起こる事もあると示しています。 文化とその経済的および社会的組織の複雑さは、生存者が自分自身を再構築し、世界のこの部分を暗黒時代に突入させる事が不可能になったほどのものでした。 2012年7月に地球をほぼ直撃したような大規模な太陽フレアや、大気圏での核爆発により、地球上のすべてのデータを消去するのに十分な大きさの電磁パルスが送出される可能性があります。 このような状況では、技術を再構築する方法に関する知識が不可欠です。 ## 熟達は重要なトレードオフ プログラミングの習熟を追求する事は、将来にとって重要ですが、それには、コストがかかります。 熟達のプログラマーになるには膨大な時間が必要ですが、現在の抽象化されたテクノロジーのトレンドが増加し続けているため、そのほとんどは職場にいません。 その間、企業が一般的に求めている理想的な欠如した考え方に反するため、あなたの努力に対して支払われる事も難しくなります。 真に献身的な個人のための場所は常に存在し、熟達のプログラマーは、前述の機能不全に陥った重要なシステムを支援するために、今後数十年でこれまで以上に必要とされます。 ## 結論 人間の知識は人間の心の中にあり、伝えられなければ簡単に失われてしまう事を覚えておく事が重要です。 デジタルデータは、エントロピー、自然災害、または意図的な破壊の影響を受けないわけではありません。 プログラミングを真にマスターしたいと考えている人は、ハードウェアとランタイム環境、およびメモリ管理やCPUキャッシングなどの低水準言語の概念を必ず理解してください。 重要なシステムを高速化するために、アセンブリ言語を学習し、ターゲットアーキテクチャの仕様を読む事を検討してください。 今後、上記の課題についての深い理解が必要になります。 抽象的なトランプタワーが崩壊するまでは、時間と複雑さの問題です。 以上