Windowsプログラミングの哲学はありますか?[閉まっている]


30

UnixとWindowsの両方の環境でプログラミングを行ってきました。私は主にUnixで働いており、そこでUnix Philosophyを学びました。

  • 1つのことを行うプログラムを作成し、それをうまく実行します。
  • 連携して動作するプログラムを作成します。
  • テキストストリームを処理するプログラムを作成します。これはユニバーサルインターフェースであるためです。

UnixとWindowsの世界では、プログラミングの文化に明らかな違いがあるようです。例えば:

  • GUIとCLI
  • レジストリと設定ファイル
  • 特定のニーズに特化した多くのツールと組み合わせることができる汎用直交ツールのグループ

Windowsの世界には「Unix哲学」に相当するものがありますか?Windowsからプログラミングに移行する際に、UnixプログラマーがWindowsから学習できること、または知っておくべきことは何ですか?

Windowsプログラミングのベストプラクティス(およびWindowsとUnixの戦いではない)に焦点を当てた回答をお願いします。


15
知っておくべきですか?「物事は吸う、悪い吸う。」
11

3
哲学はありません。哲学はありません。;)
Mudassir

6
実際、PowershellはUnix哲学の一部をWindowsにもたらしました。特に、1つのことだけを行う小さなプログラム(実際にはPowershellのコマンドレット)を作成し、他のことを行う他のコマンドレットと組み合わせます。もちろん、ほとんどの一般ユーザーはまだPowershellの使用方法を知りませんが、その種類はあなたが書いているソフトウェアの種類に依存します。
JohnL

4
3回目は正しく処理します。
-aufather

7
Windowsの哲学は、Microsoftに収益をもたらすことです。
dan04

回答:


28

実際には、「Windowsの哲学」のようなものがあります。ほとんどの場合、構成の概念とユーザーインターフェイス部分-他のプログラマーのためではなくユーザーのためのプログラムを設計します。

つまり:

  • シンプルで直感的なユーザーインターフェイス
  • 自然なワークフロー
  • 箱から出して動作するはずです
  • 技術的な知識は必要ありませんが、必要ありません。

ここに良い読み物があります:

バイカルチュラリズム

Windowsの急増に伴い、コーディングに対するハッカーのアプローチは不利になり始めました。最初に、最も複雑で難読化された方法でC / C ++プログラムを作成し、最も難しい脳だけがそれらを通過儀礼のようなものとして理解できるようにしました。Windowsでは状況が変化し始め、その「コードスタイル」は今や非常に不利になりました。直接のWindowsがコード品質の新しいレベルの理解に影響を与えるかどうかはわかりませんが、少なくともタイムリーに一致します。


7
これらの箇条書きがWindowsに特によく当てはまるとは思いません。
トムホーティン-タックライン

4
@Tom:それは哲学です。何にも適用する必要はありません。それにもかかわらず、私はそれがWindowsの世界のほとんどのものに非常によく当てはまると信じています。
アロングラネレク

@Tom私は@Allonにもっと同意します。私にとっては、OPの質問はコンソール対GUIプログラミングの方が多いように思えるからです。
ギデオン

6
何?!?古き良きBSDとAT&Tのソースを見てください。清潔でシンプル、エレガント。そして、典型的な肥大化したMFCコードよりも難読化されたものを見たことはありません。
SKロジック

ひとつの正解もありませんが、私はこれが一番好きでした。Joelのブログ投稿は素晴らしかったです。
マグロブ

8

あなたの質問であなたが除外する違いは、開発者のプログラミングスタイルよりもこれらのシステムのユーザーに関するものだと思います。長い間、* nixはプログラマーまたはコンピューティング愛好家の分野でした。「カジュアル」な使用方法はほとんどありませんでした。Windowsの[ホーム]ユーザー数は桁違いに大きいのです。

カジュアルなユーザーは、プログラムを実行するために数十種類のコマンドラインフラグを覚えたくありません。彼らはボタンをクリックしたい。

カジュアルなユーザーは、システム構成ファイルや、Fluffy Kittiesがお気に入りのネコ科の動物をどのように覚えているかを心配したくありません。

通常、カジュアルなユーザーは、「より良い」製品が利用できる場合でも、必要なことをする限り何かを使用します。

私はここに私の主なポイントは... Windowsのための作成について非常に多くあると思いユーザーのではなく、クリエーター。Windows開発に存在する長年のパラダイムに反対しないでください。ユーザーのMy Documentsをがらくたに汚したり、理由もなくスタートアップに自分を入れたりしないでください。

同様に重要なのは、ユーザードキュメントを作成することです。


7
ユーザードキュメント?成功したプログラムのユーザーは、ドキュメントに触れる必要はありません。

@Developer Art-これはある程度真実ですが、さまざまな国籍の人々が理解しなければならない素粒子物理学などのソフトウェアを作成している場合、「私たちがあなたのデータで行うことの説明についてはここをクリックユーザーの心からの期待を引き出すことができるテレパシーコンピューターを書くよりも簡単なら、ここで」。
TZHX

3
「がらくたでユーザーを汚染しないでください。」-かなり皮肉。
オコド

1
どうして、スロモジョ?
TZHX


4

妥協とカスタマイズ

それは何でも最高ではありませんが、時間を費やして、いくつかの場所でいくつかの不愉快な決定をすることをいとわないなら、あなたはそれをすることができません。現在何をしているか気に入らない場合は、おそらく変更できます。唯一の方法、または常に最良の方法さえある場所はほとんどありません。

ユーザーが開始するのに十分

すぐに使えるものはほとんどありませんが、ほとんどのものは使用できます。Unixは、設定するまでは何も機能しない方向に向かう傾向があり、Appleはすべてをかなり洗練させますが、設定可能性/柔軟性を犠牲にします。

ログサポートテールを期待する

Windowsユーザーは、新しいバージョンがあるからといってアップグレードしません。脆弱性やバグ修正のために、常にアップグレードするわけでもありません。多くの場合、Windowsユーザーは強制的にアップグレードする必要がありますが、すぐに強制的にアップグレードする場合は、代替製品を探します。

ユーザーには幅広いスキルレベルがあります

Unixには、カジュアルなホームユーザーの観点から、技術レベルからの参入に対する高い障壁があります。Appleは必要なスキルレベルが非常に低いと感じていましたが、OSをカスタマイズする方法でカジュアルユーザーが多くのことをすることを奨励していません。Windowsは間にあります。使用を開始するのはApple製品よりもわずかに難しいだけですが、かなり詳細なシステム構成を変更する方法については、インストール自体に含まれる多くの簡単な情報があります。これにより、ユーザーの中間層でかなりランダムなスキルレベルが得られます。ユーザーが何かを試してみる自信がある場合は、その方法を理解できる可能性が高いからです。また、物事がうまくいかないという警告を警戒しているため、more病なユーザーには経験がない場合もあります。



2

UNIXはずっと前からプログラマーやそのような人々向けであり、windowsは常にbashスクリプトの書き方を知らないユーザー向けでした。したがって、Windowsではユーザーを気にする必要があります。つまり、すべてのタスクに対して1つのツールを作成することを意味します。


1

それが哲学であるかどうかはわかりませんが、私見では、Windowsプログラミングに関連する一種の思考の密度があります。また、物事がときどきどのように機能するかにも驚きの感覚があります。

Windows開発を採用している場合は、忍耐をお勧めします。また、前提についてもう少し注意を払ってください。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.