質問: タイトル通りなのですが、タスクランナーとビルドツールはどう違うのですか? タスクツールはwebpack・gulp・gruntなど、 ファイルの圧縮やコンパイルを自動で行うツールだと色んなサイトに書いてありました。 ビルドは「ソースコードをコンパイルして更にライブラリなどとリンクする」操作のことですが、 ビルドツールというと、「そういう操作をしてくれるツールのこと」ですよね。 【質問1】 タスクツールはファイルの圧縮をするが、ビルドツールはしない、とかそういう違いですか? それとも、「片方は何かに特化していて、何を求めるならこっちを使うべき」 とかそういう違いでしょうか? 【質問2】 あと、コンパイルは「ソースコードの変換」のみを行って、オブジェクトコードの「実行」は行わないといくつかのサイトに書いてありましたが、 ビルドはコンパイルを行いリンクしたあと、オブジェクトコードを「実行」するのですか? コンパイルとリンクを行うだけですか? 回答よろしくお願いします。
回答: こんにちは。 書かれている各用語に広く認知されている定義はありません。その時々の文脈から雰囲気で把握することになります。慣れない人にとって辛い事実ですが。 > > ビルドは「ソースコードをコンパイルして更にライブラリなどとリンクする」操作のことですが、 > > ビルドツールというと、「そういう操作をしてくれるツールのこと」ですよね。 > > > コンパイラやリンカをビルドツールと呼ぶ場合もあれば、Makeのようなコンパイルやリンク過程を自動化するようなツールもビルドツールと呼ぶ場合もあると思います。ソフトウェアを構築するために使うツールを全てビルドツールに分類する場合もあるでしょう。 > > タスクツールはファイルの圧縮をするが、ビルドツールはしない、とかそういう違いですか? > > それとも、「片方は何かに特化していて、何を求めるならこっちを使うべき」 > > > タスクランナーもソフトウェアを構築するために使うツールですので、ビルドツールの1つと思います。フロントエンド開発に特化しているビルドツールをタクスランナーと呼ぶイメージでしょうか。 > > あと、コンパイルは「ソースコードの変換」のみを行って、オブジェクトコードの「実行」は行わないといくつかのサイトに書いてありましたが、 > > > これはその通りと思います。コンパイルと実行は区別する場合がほとんどです。 コンパイルと書いただけで実行まですると言う意味で使っている人は今のところ見たことないです。 > > ビルドはコンパイルを行いリンクしたあと、オブジェクトコードを「実行」するのですか? > > コンパイルとリンクを行うだけですか? > > > ビルドは主にコンパイルとリンクを指します。しかし、コンパイル、リンク、テスト、インストール等も含めてポタン一発で自動実行することもできます。その時、テストやインストールも含めて「ビルド」ボタンを押して行う場合もありますから、必ずしもコンパイルとリンクだけに限定されないと思います。 ところで、「タスクランナー ビルドツール」で検索してみたら、面白いサイトがありました。最近のビルドツールって何なの?