小規模なタスクにはスクリプトまたはコンパイルされたコードを選択する必要がありますか?

StackOverflow https://stackoverflow.com/questions/54703

  •  09-06-2019
  •  | 
  •  

質問

私は Java プログラマーで、堅牢で効率的なコードを迅速に提供するのに役立つツールとして、コンパイラー、静的分析ツール、単体テスト フレームワークが気に入っています。JRE は私が働く場所のほとんどどこでも利用できます。

そのような状況を考えると、クールな黒のシステム管理者フェドーラ帽のような他の帽子をかぶっているのであれば、どんなに小さなタスクであっても、シェル スクリプトや VB スクリプトなどを使用することを選択する理由がわかりません。

他の帽子はあまりかぶらないので、 どのような状況では、コンパイルされたコードを記述するよりもスクリプトを選択する必要がありますか?

役に立ちましたか?

解決

あなたにとって最も効率的だと思うことは何であれ!

私の同僚には、仕事ごとに異なる言語を使用しているように見える人がいました。素早いテキスト処理には Perl、小規模な社内 Web アプリケーションには PHP、当社の主要製品には .NET、ファイルシステム関連には cygwin が使用されます。彼は、当面のタスクに最も特化したテクノロジーを使用することを好みました。

個人的には、テクノロジー間のコンテキストの切り替えは面倒だと感じています。私の日々の仕事は .NET で行われているので、ほぼそのような条件で考えています。ほとんどのタスクでは、PowerShell やスクリプト環境をいじるよりも、SnippetCompiler を使用して C# で何かを作成する方が効率的であることがわかりました。

他のヒント

Java に慣れていて、作業する場所のどこにでも JRE がある場合は、それを使い続けることをお勧めします。ただし、perl や python など、問題を迅速に解決するのに特に適した言語もあります。Perl か Python のどちらかを学習し、それをいつ使用するかを判断することをお勧めします。

すぐに解決したい小さな問題がある場合、私はスクリプト言語を使用することが多いです。コード税は少なくなり、少なくとも私にとっては、結果がより速く現れます。

それが理にかなっているところは言うでしょう。IDE を開くのに時間がかかる場合は、スクリプトをコンパイルするなどしてください。スクリプト ファイルを使用するよりも、スクリプト ファイルを編集してそれで完了するよりもです。頻繁に変更するつもりがなく、Java コーディングの方が早い場合は、その方法を選んでください :)

通常、コンパイルされたプログラムよりもスクリプトを作成する方が高速です。異なるプラットフォームや環境間の移植性についてはそれほど心配する必要はありません。シェル スクリプトは、ほとんどのプラットフォーム上のほぼすべての場所で実行されます。あなたは Java 開発者で、どこにでも Java が使われているとおっしゃっていますが、すばらしい (http://groovy.codehaus.org/)。これは Java ライブラリを使用できる Java で書かれたスクリプト言語です。

私の見方では (他の人も同意しませんが)、コードはすべて保守可能である必要があります。有用なコードの最小のコレクションは、1 人の人間が保守するものです。それさえも、あなたが言及した言語とツールの恩恵を受けます。

ただし、タスクによっては、単一の汎用言語よりも特殊な言語の方が有利な場合があります。

Java でより速く書けるなら、それを使ってください。

さまざまなスクリプト言語で何ができるかを意識してみてください。

例えばbash ワンライナーで同じことができる場合でも、本格的な Java アプリを作成しないでください。

ツールの重要性と、テキスト エディタを開いて簡単に編集することと、ツールの重要性を天秤にかけてください。IDE を開く、再コンパイル、再デプロイなど。

もちろん、主要な指令は「あなたが快適に使用するものを使用する」ことです。 Javaが仕事を正しく、時間通りに完了させている場合は、それに固執してください。ただし、スクリプト言語の多くはさまざまな問題に対応しているため、時間を節約できる可能性があります。正規表現を使用している場合は、スクリプト言語が適しています。シェルコマンドを使用する場合は、スクリプトが便利です。

私は、小さなものを書くときはいつも Ruby スクリプトを使用することが多いです。Ruby スクリプトはすぐに書けて、メンテナンスが簡単で、(Gem を使用すると) JAR などを使用せずに追加機能を簡単に追加できるからです。もちろん、走行距離は異なります。

結局のところ、これはあなた自身だけが答えられる質問です。「シェル スクリプトを使用する理由が見当たりません...」という事実に基づいて、おそらく今はシェル スクリプトを選択するべきではないでしょう。

しかし、私があなただったら、Python、Ruby、Perl などのスクリプト言語を選択し、この言語を使用してこれらの小さな問題のいくつかを解決しようと試み始めるでしょう。時間が経つにつれて、本格的なソリューションを構築するよりも、簡単なスクリプトを作成する方が適切な時期が分かるようになります。

私は、数回の実行を超えて維持されることが期待されないプログラムを作成するためにスクリプト言語を使用します。これらの言語のほとんどは定型構文に軽く、REPL を備えています。これらの両方の機能により、迅速なプロトタイピングが可能になります。

Java についてはすでに知っているので、Groovy、JRuby、BeanShell などの JVM 言語を試すことができます。Scala は Java よりもはるかに軽い構文を持ち、REPL があり、静的に型指定され、JVM 上で実行されます。これも試してみるとよいでしょう。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top