Linuxで開発する意味

Linuxで開発する意味

2020-05-13


プログラムとパッケージ

Linuxは、プログラムやツールの管理をリポジトリで行います。

LinuxディストリビューションのDebian/Ubuntuでは、aptコマンドによりインストールを行い、リポジトリにソフトウエア情報と依存関係を記録します。

MacOSやWindowsとの違い

MacOSやWindowsではプログラムのインストールは自動で行われます。最新バージョンへのアップデートもAppleStoreやWindowsUpdate経由で自動実行されます。

そのため、不適切なタイミングでのアップデートにより動作不安定を引き起こしたり、バックグラウンド処理により動作が重くなったりします。

またバージョンを固定してインストール、レジストリが破壊される場合があるなど、使用者の意図しない環境変化が起こる場合があります。

この点Linuxでは、適切な動作・マシン性能に見合った安定動作・クリーンなバージョン管理ができます。一方でリポジトリ管理が手動となるため、管理する手間が増大します。

Linuxの環境構築は楽ではない

Linuxは一つではない、答えがたくさん存在します。今回LinuxのディストリビューションからDebian系のUbuntuを選びました。

Linuxはプログラミングに有利ですが、万能ではありません。OSやソフトの統一感にこだわるなら、やはりMacOSやWindowsには敵いません。

ウィンドウの見た目と操作感がコミュニティごとに異なったり、フォントの美しさとバリエーションがイマイチなどWindowsやMacOSに劣る部分もたくさんあります。

全てをLinuxに求めるのは無理があります。Linuxは、MacやWindowsとは違います。

Linuxはロースペックで始めることができる

プログラミングを学ぶには高いスペックのハードウエアは不要です。つまりMacやWindowsPCはハードウエアコストが過剰です。スペックアップはプログラミングを学んでからでも遅くありません。

最初はLinuxをインストールした安い中古PCで、Web上にある参考資料を片手に自学自習します。
プログラミングを学習する上で、教本はあまり役に立ちません。必ずしも自分の環境に適合しているわけでなく、ガイドブックが最新版というわけでもありません。

ソフトのバージョンアップに本の内容がキャッチアップしていないということもあり、参考になる良いWebサイトを見て学んだほうが理解の手助けになります。

LinuxはプログラミングOS

LinuxのベースとなったUNIXは、過去には大学や企業の一部の人間でないと使えませんでした。su権限の必要な操作は許可されなかったことが理解の妨げとなっていました。

Linuxのソフトウエアはすべてパッケージで管理されています。プログラムの集合体がパッケージです。そのパッケージがリポジトリに置かれて管理されます。

Linuxプログラミングの勘所は、構成と管理です。リポジトリによるソフトウエアのバージョン管理、インストールに必要なソフトウエア情報と依存関係の把握、Linux系のコマンド操作、これらを覚えることでプログラミングは始められます。

Debian・Ubuntu系ではaptといったように、OSのディストリビューションによってプログラムの管理方法が異なります。

Linuxの有利な点

JavaScriptであればNode.jsなど、ネットワーク向け言語のプログラミングに向いています

Linuxは自己責任です。ソースコード管理は自分で行います。自分ですべてを行うことは苦しい、しかし必ず得るものがあり、だから楽しくなります。

自分で環境整備できるようになるネットワークプログラミングが分かるようになるために、Linuxにトライしましょう。

Linuxができると知見が広がります。