Content-Length: 78328 | pFad | http://anond.hatelabo.jp/20201222191134#tb
最初のプログラミング言語として最もおすすめなのは、Bourne (Again) Shell。通称sh(bash)です。shはUNIXの標準的なシェルであり、bashはその拡張です。現在、多くのLinuxディストリビューションでは、bashが標準のシェルです。以下、これらのシェルの上で動作するコマンド言語およびそれによって作られたプログラムを指して「シェルスクリプト」と呼ぶことにします。
シェルスクリプトを最初のプログラミング言語におすすめする理由は、主にその実用性にあります。ほとんどのプログラミング学習者にとって、プログラミングで実現したいことは、「10000以下の素数を求める」などの教科書の課題のようなものではなく、大量のファイルから情報を検索するとか、インターネットから定期的にコンテンツを取得する、などの具体的なタスクのはずです。シェルスクリプトを使えば、後者のような実用的なプログラムを手軽に作成できます。一方、多くのプログラミング入門書には、制御構文などの細かい説明はあっても、後者のようなトピックはあまり載っていません。というのも、そのような機能は汎用的なプログラミング言語(C、Java、Python、Rubyなど)のコアの機能ではないからです。それらの機能は通常、ライブラリによって提供されます。したがって、汎用的なプログラミング言語で実用的なことをしようと思えば、外部モジュールの読み込みや、場合によってはパッケージ管理ツールを使ったライブラリのインストール方法などを学ばなければいけません。これらは、初学者にはいささかハードルが高いです(たとえば、Webフロントエンドのツール群を初学者が独学でインストールするなどは、ほぼ不可能でしょう)。一方、シェルスクリプトでは、grep、sed、awkのようなシェル上のユーティリティは全て、他の言語における組み込みの関数と同様です。つまり、モジュールのインポートや初期化処理などを行わずに使用することができます。
また、シェルスクリプトは、より本格的な言語やフレームワークへステップアップする過程としても非常に適しています。プログラミング入門書ではほとんど語られないことですが、プログラミングにおいては「プログラミング言語以外の技術」がプログラミング言語自体と同様に重要です。たとえば、ファイルやディレクトリを操作するには、OSのファイルシステムにアクセスしなければいけませんし、インターネットからコンテンツを取得するには、HTTPというネットワークプロトコルを知らなければいけません。シェルスクリプトを使う場合、それら「プログラミング言語以外の技術」を自然に利用します。それらは、プロのエンジニアを目指す上でも欠かせない知識です。また、多くのプログラミング言語では、制御構文を用いて変数の値を更新していくプログラミングスタイルが取られます。一方、シェルスクリプトでは、コマンドの出力を他のコマンドの入力に渡してデータを変換するプログラミングスタイルが取られます。後者のスタイルは、現代のソフトウェア開発では多くの場合、良いスタイルだと認識されています。シェルスクリプトを最初に学ぶことで、そのような良いプログラミングスタイルが身につきます。
その流れで言えば、おそらく perl こそが最適な言語になるのでは。
なぜ?
読みづらい文章だから読みづらい言語を勧めた
まさに、「大量のファイルから情報を検索するとか、インターネットから定期的にコンテンツを取得する、などの具体的なタスク」のために開発された言語だからです。
はてなって、よくこういう馬鹿が現れるけど、わざとなのかな
わざとじゃないわけないだろ 常識的に考えてネタだぞ
滑ってるやん
そっか、じゃあ私、ユニケージで業務システム作るね 東急ハンズのblogおもしろいな、「中核を占めるもののひとつ」とされていたユニケージ開発手法が https://t.co/TCuvQsblEN クラウドでや...
それはただの宗教であって、元記事とは無関係だよ
国語
なでしこ
作業効率化のためにシェルスクリプトで書いたツールは今も使っているが、JavaやRubyやPythonで作ったツールはほとんど使っていない JavaやRubyやPythonは、何でもできてしまうから、ちょっ...
Excelは何でもできる(見た目だけ気にするならば)からかえって保守困難になるのと同じだな。
サーバー管理したりするようになったら絶対に触るのだから、最初から触っておいた方がいい。
あとで読む📚
Fetched URL: http://anond.hatelabo.jp/20201222191134#tb
Alternative Proxies: