プログラミング ツールがなくてもプログラミングが可能で、統合開発環境 (IDE) は開発者の間で人気があります。私は別のアプローチをとっています。私は、一連のプログラミング ツールを備えた Linux システムをそれ自体 IDE として扱います。
1 つのジョブに対して 1 つのウィンドウ
何でも屋の開発アプリは欲しくない
IDE は、エディター、インタープリターまたはコンパイラー、デバッガー、さらにはドキュメントを含むすべてのツールへのアクセスを提供するため、開発者の間で人気があります。ほとんどの開発者がツールをすべて 1 か所にまとめたいと考える理由がわかります。 Linux 環境で別のアプリを使用することで、同様のエクスペリエンスを実現できると思います。
私は、1 つの小さなツールが 1 つの仕事をうまくこなすという Unix の哲学の考え方が好きです。実際に達成するのは簡単ではないかもしれませんが、努力する価値はあると思います。

Unix とは何ですか? なぜそれが重要なのでしょうか?
ほとんどのオペレーティング システムは 2 つの異なるファミリーに分類できます。
これは、IDE が Linux や Unix 以外のプラットフォーム、特に Windows で最も繁栄していることを物語っています。 Windows ではコマンド ライン ツールの使用が減り、プロセスの起動にはリソースが大量に消費されるため、大規模な開発システムなど、より多くのことを実行できる大規模なプログラムを好むインセンティブがあります。
個別のプログラムという伝統的な Unix のアプローチは、私にとってはうまく機能します。 1 つのシェル ウィンドウで Vim を実行し、別のシェル ウィンドウでプログラムをテストし、さらに別のシェル ウィンドウでファイル操作プログラムを実行することができます。 1 つの大きなプログラムではなく、より軽快で小さなプログラムを使用することで IDE の効果を得ることができます。
他のタスクを実行する必要がある場合は、別のターミナル ウィンドウを開いて、すぐに実行できます。
私のワークフローは個別のアプリに適しています
物をコンパートメントに保管する
最初にお断りしておきますが、私はプロのプログラマーではありません。プログラミングは私の職業ではありませんが、楽しくて刺激的な趣味です。 IDE はプロの開発者に適していますが、私の使用方法は他の多くの「本物の」プログラマとは異なります。
私が選んだ言語は Python で、より小さなスクリプトを作成するか、インタラクティブな Python を使用することが多いです。これは、デフォルトの対話型インタープリターまたは IPython のいずれかを意味します。私も卓上電卓として Python を使用している人間の 1 人です。演算を行うためだけに IDE 全体を起動する必要はありません。
私の Python の主な用途の 1 つは、統計とデータ分析です。私は主に対話型 Python、特に Mamba 環境でセットアップした IPython を使用します。 IPython 内またはインターネット上のドキュメントも参照します。後で共有するなど、自分が行っていることを記録したい場合は、Jupyter ノートブックを開きます。私は主に対話的に作業しているため、デバッガーはあまり使いません。通常、エラー メッセージはすぐにトラブルシューティングできます。
IDE を使用すると、使用しないコンポーネントをインストールすることになります。デバッガーは、私がやっていることにほとんど無駄になります。本格的な IDE も同様です。
必要なときにアプリを切り替えることができます
行き詰まりを感じることはありません
多くの開発者は、統合開発環境が、エディタ、コンパイラ、デバッガなどの必須ツールや、リンターやエラー チェッカーなどのその他のツールを含めて統合されているという事実を宣伝しています。 Linux では、パッケージ マネージャーを使用してエディター、コンパイラー、デバッガー、リンター、エラー チェッカーをインストールできます。
IDE 開発者が含めると考えたものに限定されるわけではありません。エディターが気に入らない場合は、別のエディターに切り替えることができます。 Vim にかなり慣れてきました。少なくともラップトップメーカーが最近好んで使用しているチクレットキーボードでは、キーストロークの感触は良くなっているようです。
私が切り替えたツールの 1 つは Python インタープリターでした。 Python インタープリターは、コードのアイデアをテストできる (そして計算機として使用できる) ため、単独でも便利ですが、構文の強調表示と簡単な呼び出し機能に加え、IPython から直接システム コマンドを実行できる機能があるため、IPython の方がさらに優れています。
パッケージマネージャー自体を Mamba 用に切り替えることもできました。 Mamba はデータ分析とデータ サイエンス用に最適化されており、多くの場合、システム パッケージ マネージャーよりも新しいパッケージを提供し、システム Python をそのままにしておくことができます。
標準の IDE では、このような柔軟性は提供されないでしょう。
私の未来は私の手の中にあります
Linux やプログラムを長く使用していると、物事がどのように機能するべきかについて意見を形成する傾向があります。私を含め、多くの人が意見を言うものの 1 つは、テキスト エディターです。私は一時的に Emacs フェーズを経験しましたが、Vim を好む傾向があるため、両方の主要なエディタを使用した経験があります。
IDE アプローチは、IDE とみなされない環境の間でも依然として人気があります。 Emacs ファンはよく、エディタを離れることなくターミナルやファイル ブラウザなどのツールを実行できる方法について言及します。私はその側面にそれほど感銘を受けたことはありません。これは、私がほぼ常にウィンドウ環境にアクセスし、プロセスの起動が簡単なプラットフォームでプログラミング作業のほとんどを行ってきたためかもしれません。
Emacs はもともと文字ベースの端末用に設計されました。これらの端末で新しいタスクを起動するのは簡単ではありませんでした。そのため、必要なものすべてを 1 か所にまとめられるプログラムを構築する動機が生じました。
IDE を使用している場合、開発者が望んでいることに固執することがよくあります。 Linux IDE は人気があるので、Linux IDE が提供するものを欲しがっている人はたくさんいると思います。もしかしたら、私のニーズが他の人と異なるだけかもしれません。他の開発者は IDE を使い続けることができますが、私は喜んで複数のプログラムを使用するつもりです。
使用するツールを快適に使えるようになりました。新しいシステムに移行するときも、すぐにセットアップでき、使い慣れた環境を維持できます。
複数のプログラムでマルチタスクを行うことを好みます
蝶のように舞います
開発に関しては、私は「Unix 哲学」のアプローチを好むかもしれないと思います。これは、新しいプロセスの起動を容易にする Unix 系オペレーティング システムの設計の影響です。新しいターミナルを起動してコマンドを簡単に実行できるという意味では、より簡単です。エディタが必要な場合は、Vim を実行するだけです。インタラクティブな Python セッションを開始したい場合は、Mamba 環境を起動して IPython を開きます。
先ほど述べたように、これは Linux やその他の Unix に似たシステムの設計の結果です。 Linux ではプロセスを簡単に起動できますが、Windows でプロセスを起動すると、通常、よりリソースを大量に消費します。このようなシステムでプログラムを起動すると、パフォーマンスの点でスレッドのコストが低くなります。これが、1 つのプログラムで 1 つのタスクを実行する従来の Unix アプローチよりも、より大きなプログラムにより多くの機能を詰め込もうとする傾向がある理由です。
唯一の問題はユーザーインターフェイスでした。 Unix はマルチタスク向けに設計されていますが、タスク間の切り替えは面倒でした。ジョブ制御と仮想コンソールはこの問題の解決に役立ちましたが、個々のウィンドウで複数のプログラムを実行するアプローチが実行可能になったのは、ワークステーションやグラフィカル端末上で実行されるウィンドウ システムが利用可能になってからです。あるいは、端末マルチプレクサは、特にリモート接続において、かなり良好な仕事をすることができます。

ターミナル マルチプレクサの説明とそれを使用する理由
SSH セッションを継続して続けてください。
複数のターミナル ウィンドウ、タブ付きターミナル、ターミナル マルチプレクサが利用できるため、この軽量な開発スタイルを最大限に活用できます。実験のために 1 つのウィンドウで対話型 Python セッションを実行し、ブラウザーで Jupyter ノートブックを実行し、別のウィンドウでエディターを実行できます。
自分なりの開発
Linux 上で複数のアプリを使用することは「統合」度が低いかもしれませんが、このアプローチは本格的な IDE のオーバーヘッドなしで私にとっては機能します。信頼できる軽量プログラミング環境で私の努力が報われたと思います。
- ブランド
-
デル
- オペレーティング·システム
-
Ubuntu Linux 22.04 LTS
- CPU
-
第13世代インテル Core i7-1360P
- GPU
-
インテル Iris Xe グラフィックス
- ラム
-
16GB DDR5
- ストレージ
-
512GB SSD
関連情報は以下のリンクからご確認いただけます