66183
# 前提

プログラムに関する具体的な質問でなく恐縮ですが、他に質問できるプラットホームがなく、こちらで質問させていただきます。

「[自然言語処理100本ノック](https://nlp100.github.io/ja/)」と言う自然言語処理の演習問題がありますが、その中で「第2章:
UNIXコマンド」では、UNIXコマンドと処理を行うプログラムの両方を作成するように指示されています。

具体的には、以下のようにトップページに章内容が書かれています。

> 研究やデータ分析において便利なUNIXツールを体験します．これらの再実装を通じて，プログラミング能力を高めつつ，既存のツールのエコシステムを体感します．

# 知りたいこと

この点に関してなぜ、UNIXコマンド１行で済んでしまうことをプログラムでも記述する必要があるのかわからず、困っています。

書かれた通りに演習しておけばいいと言う意見もあるかもしれませんが、同じ処理を行うためにプログラムが必要なのはどういった場面で、プログラムの書き方も学んでおく必要があるのか具体例などあれば含めて、説明いただけると大変助かります。
CC BY-SA 4.0
2020-05-01T09:39:51.683
66179
2020-05-01T12:08:01.910
2020-06-17T08:14:45.997
-1
32568
question
python bash unix 自然言語処理
自然言語処理100本ノックにおける第2章: UNIXコマンドの演習について
勉強のためだからではないでしょうか？

うろ覚えですが、「素数夜曲―女王陛下のLISP | 吉田武著」の最後に、  
「車輪の再発明」は、勉強には非常に効果があると書かれており、納得した記憶があります。
CC BY-SA 4.0
2020-05-01T09:58:57.370
66180
2020-05-01T09:58:57.370
35558
66179
answer
身近にあるもの(コマンド)を題材として、一行で済むものを実現するにはどんなプログラムを書く必要があるのか…を体験するためではないでしょうか。

一行で済むコマンドも、魔法で結果が出てくるわけではありません。中身が同じになるとは限らないけど、入力と出力を与えられた時にどんなプログラムを書けばよいかの練習材料だと私は思いました。
CC BY-SA 4.0
2020-05-01T10:08:18.750
66181
2020-05-01T10:08:18.750
3060
66179
answer
その本で述べられている

> これらの再実装を通じて，（……）既存のツールのエコシステムを体感します．

という部分の趣旨を取りこぼしている気がします。

> プログラムでも記述する必要があるのか

や

> 同じ処理を行うためにプログラムが必要なのは

という疑念を述べておられますが、「必要（ニーズ）があるから」そのような代用品を作るための学習をするという話ではなくて、

**UNIX のコマンドもその実体は C 言語やものによっては Python などの何らかの言語で記述されたプログラムです。**

あなたが、ユーザー側の立場で誰かが作成した既存のプログラムである UNIX コマンドを一行で実行するのは簡単です。

そうではなくて、あなたが開発者（エンジニア）側、プログラマーとして、そのようなコマンドを作る側の技術を学びましょう、ということのはずです。
CC BY-SA 4.0
2020-05-01T12:08:01.910
66183
2020-05-01T12:08:01.910
7290
66179
answer