
Linux をもっと使いたいのですが、これまでのプログラミングと開発はすべて Windows で行ってきました。しかし、Windows ではなく Linux を使用する主な利点は何なのか疑問に思っています。Windows ではできないことで、Linux でできることは何でしょうか。
答え1
以下の点の多くは、すべての POSIX オペレーティング システムおよび他の多くの代替 OS に等しく適用されます。
- パイピング、リダイレクト、バックグラウンド プロセスを備えた強力なターミナル エミュレーター。デフォルトのシェルである bash は、日常のシステム管理に使用できるプログラミング言語です。DOS よりも数桁強力であるため、多くの人が IDE よりもターミナルとテキスト エディターを使用することを選択しています。
- Linux は、ソケット、共有メモリ、パイプ、FIFO など、さまざまな種類のプロセス間通信を提供します。
- Linux の fork-exec モデルを使用すると、並行プログラムをより簡単に作成できます。
- ディストリビューションごとに若干異なりますが、自動化されたインストール スクリプトの作成を可能にする標準化されたファイルシステム レイアウト。
- 上記の理由により、パッケージマネージャは新しいライブラリやプログラム、およびそれらの依存関係を自動的にインストールします。Windowsでは、ほとんどのライブラリを手動でインストールする必要があります。そしてコンパイラを設定します。Linux では、「apt-get install」または「yum install」または「emerge」と入力します (それぞれ Debian/Ubuntu、Fedora、Gentoo の場合)。これは、大量消費に適したソフトウェアを配布するのに適した方法でもあります。
- 無料の継続的なアップデート。OS のアップグレードに料金を支払う必要はありません。
- より優れたコミュニティとコミュニティの知識。Linux プログラマーは、A) ソースを読むことができ、B) より密接に作業でき、C) 内部の仕組みに関する参考資料をより多く見つけることができるため、OS の機能についてより詳しく知っています。また、メーリング リスト、フォーラム、およびこのような Web サイトを通じてコミュニケーションも活発に行われます。Linux ではオープン ソース ソフトウェアが当たり前になり、コードを共有するのが大好きです。
- より優れたドキュメント。特定のプログラムの実行方法がわからない場合は、「man」と入力してください。C 関数の動作を知りたい場合は、「man」または「man 3」と入力してください。
- カスタマイズ。カーネルを含め、あらゆるものをカスタマイズできます。デスクトップ GUI を変更したり、タイル ウィンドウ マネージャーを試したりすることもできます。ほとんどのディストリビューションでは、ext4、XFS、JFS、Reiser など、さまざまなファイル システムから選択できます。これにより、Linux ユーザーは OS についてより深く理解できるようになります。
答え2
最大の利点は、特定のベンダーに縛られないことだと思います。たとえば、GNU C が気に入らない場合は、Clang を使用できます。Apache が気に入らない場合は、lighttpd または Nginx または cherokee などを使用します。特定のテクノロジー スタックで代替手段が許可されていない部分はほとんどありません。
ベンダーに縛られないことの裏返しは、ほとんどすべてのものに対して標準、つまり文書化された標準が存在することです。これは、「プロプライエタリの世界」から来た人が想像するよりも大きな利点です。人々は文書化された標準を使用してドキュメントを作成します。人々は (少なくとも大部分は) 文書化された標準に準拠したコードを作成します。大手ソフトウェア ベンダーが行う傾向があるように、誰もあなたの足元からカーペットを引き抜くことはありません *咳* BEA*咳*。バグの修正を拒否するプロジェクトは最終的に「分岐」して置き換えられるため、標準は口先だけで行われるのではなく、実際に遵守される傾向があります *咳* OOXML*咳*。
答え3
私はいつも友人に、Linux は開発者を自分の子供のように扱うと言います。プログラムをライブラリにリンクするのは本当に簡単ですし、使用できる優れたエディタが多数あります (vi、emacs、Code::Blocks、Geany...)。bash は信じられないほど柔軟です (最初はあまり使用しませんが、使い始めると、いくつかのことが簡単になることがわかります)。また、必要に応じて、基本的にすべてのコードを編集できます。
しかし、私にとって最も重要なのはパッケージ マネージャーです (Fedora の場合は yum、Ubuntu の場合は apt、Arch の場合は pacman)。パッケージ マネージャーは、インストールしたいすべてのソフトウェアとライブラリのすべての依存関係をチェックして、インストールします。すべての更新をチェックします。全体的に、生活が楽になります。
Windows には、本来そのような機能はありません。
また、Linux は POSIX に準拠しています。つまり、他の POSIX 準拠 OS (FreeBSD、OpenBSD、OpenSolaris、さらには Mac OS/X など) 向けのクロスプラットフォーム ソフトウェアの作成が容易になります。Linux のライブラリはほぼすべて標準です (Windows には、MFC や DirectX など、Windows でのみ動作する非常に特殊な実装が多数あります)。そのため、Windows 向けのソフトウェア バージョンの作成もそれほど難しくないはずです。