18 ポイント 投稿者 GN⁺ 2025-02-25 | 2件のコメント | WhatsAppで共有

哲学(Philosophy)

  • 私たちは dwm, dmenu, st などの高品質なソフトウェアを開発するコミュニティであり、単純さ、明快さ、節約性(Simplicity, Clarity, Frugality) を中核的な価値としている
  • IT 業界全体において 不必要に複雑で、バグが多く、遅いソフトウェアが蔓延している現実に反対している
  • 私たちのプロジェクトは こうした流れに逆らい、シンプルで最小限に保ち、使いやすく維持すること を目標としている
  • 私たちのプロジェクトの対象は 熟練したコンピュータユーザーおよび専門家 である
    • ほとんどの商用ソフトウェアおよび大半のオープンソースプロジェクトは 非専門家や一般ユーザー向けに開発されており、熟練ユーザーが軽視されていると考えている
    • 一方で、私たちは 熟練ユーザー市場が継続的に成長しており、高度なユーザーが自分の作業方法に合った最適なソリューションを見つけられる と信じている
  • シンプルでエレガントなソフトウェアを設計することは、はるかに難しい
    • しかし、信頼性と保守性のためにはその代償を払わなければならない
    • ミニマリズム(minimalism) を保てば 合理的で達成可能な目標 を持つことができる
    • 私たちはミニマリズムと明快さを維持するために努力している

宣言文(Manifest)

  • 多くの開発者は コードを長く書くことを成果だと勘違いしている
    • しかし、コード量が多いからといって必ずしもソフトウェアの品質が向上するわけではない
    • 先へ進むほどスキルが伸びているように感じるかもしれないが、それは錯覚にすぎない
  • 多くの開発者は コード品質に気を配らず、問題を解決しているように見える「動くこと」自体に満足している
    • このやり方が続けば、時間の経過とともに 膨大な量のコード、完全に壊れたコード構造、欠陥だらけのシステム設計 が残ることになる
    • これは開発プロセスにおける概念的な明快さと完全性の欠如によるものだ
  • コードの複雑さは、非効率で一貫性のないソフトウェアを生み出す根本原因である
    • 複雑なコードにより、性能低下、リソースの浪費、セキュリティ脆弱性が発生する
    • 唯一の解決策は、プロジェクト全体を破棄して最初から書き直すことだ
  • 問題は、高品質なコードの書き直しがほとんど行われないことだ
    • 多くの開発者はコード量を誇りに思い、複雑さを理解したと錯覚して、書き直す必要はないと考える
    • 彼らは自分を天才だと思い込み、複雑なソフトウェアを理想的な目標だと勘違いしている
  • 優れたアイデアはシンプルさにある。優れたソフトウェアもまたシンプルである
    • シンプルさは Unix 哲学の核心
    • 削除したコード行数が多いほど大きな前進であり、コードが減るほど開発者は熟練し、ソフトウェアはより良くなる

2件のコメント

 
aer0700 2025-02-25

かなり気合いの入ったマニフェストですね(笑)。かっこいいです。

 
GN⁺ 2025-02-25
Hacker Newsのコメント
  • SucklessのStali Linux FAQには大きな影響を受けた。彼らはLinux向けに完全静的リンクのユーザー空間を構築した

    • それまでは、Linuxの「何にでも共有ライブラリ」というアプローチを当然のものとして受け止めていた
    • 小さなCLIツールを作るときは、配布パッケージを作るか、tarballを使ってライブラリをセットアップしていた
    • こうしたやり方が必須ではないと気づいた
    • それ以来、可能な限り静的リンクを使い、そうでなければAppImageを使っている
    • 動的リンクにも必要性はあるが、基本的にソフトウェア配布は複雑である必要はないと思う
  • dwmとdmenuのおかげで、10年間デスクトップがほとんど変わっていない。ミニマリズムがもたらす安定性が好きだ

  • forループの初期宣言を使うなという考えが理解できない。可変長マクロは許容するのに、for(int i = 0...)が複雑すぎるというのは納得できない

  • ミニマリズムは受け入れられるが、すべてが必要というわけではない

  • Sucklessのコーディング哲学は美しい。すべてのソフトウェアがこの哲学で書かれていればいいのにと思う。ただし、ウィンドウマネージャーやX-menuは最良の例ではない

  • コミュニティのドラマはばかばかしい。私はソフトウェア哲学が好きでこれらのツールを使っている。作者の個人的な信条や政治的傾向は気にしない

  • さまざまなターミナルを評価した末に、stのforkへ戻ってきた。何年も使っているが、安定していてバグもない

  • この哲学は完璧ではないが、信頼できるソフトウェアを作るうえで最も近いアプローチだ。複雑さを抑えることが最も難しく、最も重要な仕事だ

  • surfはWebKit2/GTK+ベースのシンプルなWebブラウザだ。Webサイトを表示してリンクをたどることができる

  • dwmはソースコードを編集してカスタマイズするものなので、バイナリパッケージを作るのは無意味だ。ユーザーベースは小さく、選民的だ

  • Suckless的でありながら非同期で、何でもこなせるソフトウェアが欲しい。多くのアプリが単一スレッドで協調する形で動くアプリを探している

  • こういう存在があるのは良いことだし、彼らのしていることには感謝している。ただ、自分は少し不便なくらいのソフトウェアのほうが好みだ。BSPWMの設定はちょうどよいが、Cコードを再コンパイルするのはやりすぎだ