2021年には、人々がLinuxをこれまで以上に愛する理由が増えました。このシリーズでは、Linuxを使用する21の異なる方法を共有します。ここでは、多くのプログラマーがLinuxを選択する理由を説明します。
私が最初にLinuxを使い始めたとき、それは私が映画製作で働いていたので、その優れたマルチメディアサポートのためでした。一般的な独自のビデオ編集アプリケーションでは、画像を記録できるほとんどすべてのデバイスから取得したほとんどの映像を処理できないことがわかりました。当時、Linuxがサーバーやプログラマー向けのオペレーティングシステムとして評判があることを知りませんでした。 Linuxでやればやるほど、Linuxのあらゆる側面を制御したいと思いました。そして結局、私は、ユーザーがその言語を「話す」ことができるときに、コンピューターが最も強力であることを発見しました。 Linuxに切り替えてから数年以内に、私は無人のビデオ編集のスクリプトを作成し、オーディオファイルをつなぎ合わせ、写真を一括編集し、想像できるあらゆるものを作成して、ソリューションを考案しました。プログラマーがLinuxを愛する理由を理解するのにそれほど時間はかかりませんでしたが、プログラミングを愛するように教えてくれたのはLinuxでした。
Linuxは、初心者でも経験豊富なプログラマーにとっても優れたプラットフォームであることがわかりました。 必要ではありません プログラムするLinux。さまざまな種類のプラットフォームで成功している開発者がいます。ただし、Linuxには開発者に提供できるものがたくさんあります。これが私が便利だと思ったいくつかのことです。
ロジックの基礎
その他のLinuxリソース
- Linuxコマンドのチートシート
- 高度なLinuxコマンドのチートシート
- 無料のオンラインコース:RHELの技術概要
- Linuxネットワーキングのチートシート
- SELinuxチートシート
- Linuxの一般的なコマンドのチートシート
- Linuxコンテナとは何ですか?
- 最新のLinux記事
Linuxは自動化を中心に構築されています。 Linux上のステープルアプリケーションは、少なくとも追加のオプションを備えた端末から起動できることを非常に意図しており、多くの場合、端末から完全に使用することもできます。このアイデアは、端末から動作するソフトウェアを作成することは、動作するアプリケーションを取得するために最低限のことをしているだけだと人々が誤って信じているため、原始的なコンピューティングモデルと誤解されることがあります。これは、コードがどのように機能するかについての不幸な誤解ですが、私たちの多くが時々罪を犯していることです。 もっと 常に優れているので、1,000行のコードを含むアプリケーションは、10行のコードを含むアプリケーションよりも100倍優れている必要があります。真実は、すべてが同じであるため、コード行にどのように変換されるかに関係なく、柔軟性の高いアプリケーションが望ましいということです。
Linuxでは、手動で実行すると1時間かかる可能性のあるプロセスは、適切なターミナルコマンドを使用すると文字通り1分に短縮でき、GNUParallelに解析するとそれより短くなる可能性があります。この現象は、コンピュータが何をするかについてのあなたの考え方を変える必要があります。たとえば、30個のPDFファイルにカバー画像を追加することがタスクの場合、これは賢明なワークフローだと思うかもしれません。
- PDFエディタでPDFを開く
- フロントカバーを開けます
- カバーファイルの最後にPDFを追加します
- ファイルを新しいPDFとして保存します
- 古いPDFごとにこのプロセスを繰り返します(ただし、新しいPDFごとにこのプロセスを複製しないでください)
それはほとんど常識的なものであり、それは痛々しいほど繰り返されますが、それは仕事を成し遂げます。ただし、Linuxでは、それよりも賢く作業できます。思考プロセスは似ています。まず、成功する結果を得るために必要な手順を考案します。調べてみると、pdftk-java
について知ることができます。 コマンドを実行すると、簡単な解決策が見つかります:
$ pdftk A=cover.pdf B=document_1.pdf \
cat A B \
output doc+cover_1.pdf
コマンドが1つのドキュメントで機能することを確認したら、時間をかけてループオプションについて学習し、並列操作に落ち着きます。
$ find ~/docs/ -name "*.pdf" | \
parallel pdftk A=cover.pdf B={} \
cat A B \
output {.}.cover.pdf
あなたが書く「コード」はあなたが慣れている強制された線形性とは異なってデータを処理するので、それは少し異なる考え方です。ただし、古い線形の考え方から抜け出すことは、後で実際のコードを作成するために重要であり、よりスマートに計算できるようになるという副次的な利点があります。
コード接続
コードを書くときにプログラミングしているプラットフォームに関係なく、多くの異なるファイル間の目に見えない接続の複雑な格子を織り込んでいます。ごくまれなケースを除いて、コードはヘッダーから取得し、外部ライブラリに依存して完全なプログラムになります。これはどのプラットフォームでも発生しますが、Linuxは、プラットフォームの開発キットを盲目的に信頼して処理するのではなく、自分でこれを理解することを推奨する傾向があります。
さて、ライブラリを解決するために開発キットを信頼することに何の問題もありません。 およびinclude パス。それどころか、そのような抽象化はあなたが楽しむべき贅沢です。ただし、何が起こっているのかがわからない場合は、開発キットが認識していないことを実行したり、問題が発生したときにトラブルシューティングしたりする必要があるときに、プロセスをオーバーライドするのがはるかに困難になります。
これは、プラットフォーム間でも変換されます。 Linuxや他のオペレーティングシステムで実行する予定のコードをLinuxで開発できます。また、コードのコンパイル方法を理解しておくと、目標を達成するのに役立ちます。
確かに、Linuxを使用するだけではこれらのレッスンを学ぶことはできません。優れたIDEで幸福にコーディングすることは完全に可能であり、インストールしたライブラリのバージョンや開発ヘッダーがどこにあるかを考えることは決してありません。ただし、Linuxはあなたから何も隠しません。システムを掘り下げ、重要な部分を見つけ、そこに含まれるコードを読むのは簡単です。
既存のコード
ヘッダーとライブラリがどこにあるかを知ることは有用ですが、それらを参照することは、Linuxでのプログラミングにさらに追加されたボーナスです。 Linuxでは、基本的に必要なものすべてのソースコードを見ることができます(オープンソースではないがLinuxで実行されるアプリケーションを除く)。ここでのメリットは誇張することはできません。プログラミング全般や新しいプログラミングについて学ぶにつれて、Linuxシステム上の既存のコードを参照することで多くのことを学ぶことができます。多くのプログラマーは、他の人のオープンソースコードを読んでコーディング方法を学びました。
プロプライエタリシステムでは、コードサンプルが含まれている開発者向けドキュメントが見つかる場合があります。ドキュメントは重要なので素晴らしいですが、実装したい正確な機能を見つけて、毎日使用するアプリケーションでどのように行われたかを示すソースコードを見つけるのと比べると見劣りします。
周辺機器への直接アクセス
Linuxを使用しているメディア企業向けのコードを開発した後、私がしばしば当たり前と思っていたのは、周辺機器へのアクセスです。たとえば、ビデオカメラをLinuxに接続する場合、 / dev / video0から受信データをプルできます。 または類似。すべてが/devにあります 、そしてそれは常にそこに到達するための2点間の最短経路です。
他のプラットフォームではそうではありません。オペレーティングシステムの外部のシステムへの接続は、多くの場合、SDK、制限されたライブラリ、場合によってはNDAの迷路です。もちろん、これはプログラミングの対象によって異なりますが、Linuxのシンプルで予測可能なインターフェースに勝るものはありません。
抽象化レイヤー
逆に、Linuxは、直接アクセスまたは手動コーディングによって、必要以上の作業が発生する場合に備えて、健全な抽象化レイヤーのセットも提供します。 QtとJavaには便利な機能があり、Pulse Audio、Pipewire、gstreamerなどのスタック全体があります。 Linux欲しい コーディングできるようになり、それが表示されます。
このリストに追加
Linuxでのコーディングを楽しくする理由は他にもあります。いくつかは広い概念であり、他は私に何時間もの欲求不満を救った過度に具体的な詳細です。 Linuxは、ターゲットとするプラットフォームに関係なく、最適な場所です。プログラミングについて学んでいるだけでも、新しいデジタルホームを探しているコーダーでも、Linuxほどプログラミングに適したワークスペースはありません。