質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

VBScript

VBScript(Visual Basic Scripting Edition)はMicrosftが開発したスクリプト言語であり、Visual Basicのサブセットです。

PowerShell

Windows PowerShellはコマンドラインインターフェースであり、システム管理を含むWindowsタスク自動化のためのスクリプト言語です。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

解決済

7回答

14485閲覧

覚えたほうがいいスクリプト言語について

mats

総合スコア32

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

VBScript

VBScript(Visual Basic Scripting Edition)はMicrosftが開発したスクリプト言語であり、Visual Basicのサブセットです。

PowerShell

Windows PowerShellはコマンドラインインターフェースであり、システム管理を含むWindowsタスク自動化のためのスクリプト言語です。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

2クリップ

投稿2016/09/02 18:20

システムの運用の仕事をしています。
業務効率の改善のためにbatやpowershellでスクリプトを
書くことがよくあります。
ただ、都度必要な情報を場当たり的に調べて書いているので
あまり知識として習得できていない面があります。

そこで一つ位、スクリプトを覚えておきたいと考えております。
個人的にはPowerShellが気になっています。

環境はWindows環境を想定しています。
皆さんのおすすめの言語は何でしょうか。
理由や学習のしやすさ、おすすめの学習方法等も
教えていただけると幸いです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答7

0

スクリプト言語は作られた経緯や目的が異なるため、場面によって使いやすさ、使いにくさがあります。例えば、シェルに使うために作られたスクリプト言語はコマンドを並べて実行などシェルとしては使いやすいですが、データを分析・加工したい、Webアプリケーションを作成したい、などの使い方になると、汎用的に作られたスクリプト言語の方が使いやすくなります。また、標準で使用できるかどうかも重要です。PowerShellは7以降のWindowsでは標準で使用できますが、MacやLinuxでは別途インストールする必要があります。主なスクリプト言語について下記にまとめてみました。(バッチファイルはスクリプト言語では無いという考えもありますが、他と比較のために含めています。)

|スクリプト言語|目的|Windows|Mac|Linux|ブラウザ|備考|
|---|---|---|---|---|
|バッチファイル|シェル|○|×|×|×||
|PowerShell|シェル|○|△|△|×||
|Bash|シェル|△|○|○|×||
|VBScript|汎用|○|×|×|×||
|ECMAScript|ブラウザ|○|△|○|○|実装によってAPIが異なる|
|Perl|汎用|△|○|○|△||
|Python|汎用|△|○|○|△||
|PHP|Web|△|○|○|△||
|Ruby|汎用|△|○|○|△||
|Lua|組込|△|△|△|?||
|Tcl|GUI|△|△|○|×|Tkと組み合わせて使用|
|Scheme|教育|△|△|△|△||
凡例…○:標準(Linuxではディストリビューションのパッケージとして)で使用可能。△:インストールが必要など制限有り。×:使用不可。
用途…Windows:7以降のみ対象、Vistaは無視。Mac:10.11以降のみ対象。Linux:Ubuntu16.04とCentOS7を想定。ブラウザ:最新の四大ブラウザ(Edge,Safari,Firefox,Chrome)を対象、IEは除外。「△」はJavaScriptへの変換等が必要。
ECMAScript…JavaScriptの言語規格名。かつてWindows上の実装はJScriptと呼ばれていました。

「汎用」では無いからと言って汎用的に使えないと言うわけではありません。ただ、主な使用目的にあわせて作られているため、それ以外の目的では使いづらい場合があると言うことだけです。逆に「汎用」の言語をある特定の目的に使用する場合は、その目的に作られた言語よりも冗長になってしまいます。どちらが良いとは簡単に決めつけられる物ではありません。

各言語は、それぞれ年々バージョンアップを繰り返しており、最新バージョンでは使えるけど古いバージョンでは使えない機能がある、しかし古いバージョンしかインストールされていない、と言ったこともあります。バージョンの違いも、Pythonの2->3のように少し互換性が無い物から、Perlの5->6のように大きく変わっているもの、ECMAScriptのように互換性をほぼ維持している物まで様々です。

さて、以上を踏まえてお勧めの言語は何か…となると、難しいですね。今後廃れるであろう「バッチファイル」と「VBScript」は除外して、また、「Tcl」も用途が特殊すぎる(Tk用ぐらいしか使えないし、別にTk使うのにTclである必要も無い)のでこれも除外して、残った、「PowerShell」「Bash」「ECMAScript(JavaScript)」「Perl」「Python」「PHP」「Ruby」「Lua」はWindowsだけではなくLinuxにも触れるようになるのであれば覚えておいて損は無いと思います。最後の「Scheme」ですが、プログラミング言語とは何かを学ぶには最適だと言われています。実際に使うことはほとんど無いかも知れませんが、LISP系を一つは学んでおくという意味でも、SICPと一緒に教養として覚えておいても損は無いでしょう。


なお、私はWindows上も含めてほとんどRubyだけで済ましています。

投稿2016/09/03 00:52

raccy

総合スコア21735

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

mats

2016/09/03 10:59

batはなんだかんだで残っていきそうなイメージがありますが、VBSは 今後廃れていくだろうなぁっていうのはよくわかります。 表も作っていただいてありがとうございます。 やっぱり一つだとPowerShellがいい印象ですね。 あとRubyとjQuery位を少しかじってみようと思います。
guest

0

ベストアンサー

個人的にはPowerShellが気になっています。

Windows環境ならPowerShellは間違いなくお勧めです。というか、システム運用・管理においては必須です。豊富なコマンドやプログラミング言語と呼んでも差し支えないような制御構文、さらに.NET Frameworkのクラスライブラリも使えるので、スクリプトを組む上で困ることはないと思います。しかもPowerShell ISEと呼ばれるスクリプトの開発環境も標準で提供されているので、デバッグもはかどります。
PowerShellを選択肢から外すことなど、あり得ませんし許しません。

先日、そのPowerShellをマイクロソフトがオープンソース化して、LinuxやOS X向けに提供されました。そのうち各ディストリビューターがパッケージ化してくれるでしょう。そうなれば、Windowsで覚えたことがLinuxでも役に立つことになります。

投稿2016/09/03 00:11

catsforepaw

総合スコア5938

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

mats

2016/09/03 11:06

PowerShellとか.NETをオープンソース化って最近のマイクロソフトはすごいですね。 PowerShellは実際とてもよく出来た言語だと思います。 PowerShell ISEも使いやすいですし。 最新のWindowsServerだとPowerShellでないと取れないログもあるって 言いますし。まずはPowerShellを勉強していくことにします。
guest

0

PowerShellはDorプロンプトを発展的
させたものですが、便利なスクリプトが
作りやすくお奨めの言語の一つだと
思います。

今後、WindowsAzureなどの各種
クラウドサービスやシステムの仮想化が
進む中、システム自動化のニーズは
高まるのでそういう意味でも有望だと
思います。

環境によってはVBAなども良いかと
思いますが、ご自身が現在も使う
機会があってPowerShellを使われて
いるのであれば継続して
色々と応用編する方法を身につければ
将来は有望だと思います‼

投稿2016/09/02 18:49

編集2016/09/02 18:50
Yatsurugi

総合スコア1628

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

Windows専門で1言語しか選べないならPowerShell一択でしょう。
そこからbat、JScriptですかね。

そもそも「俺はPerl・Ruby・Python・Nodeが超得意だぜ~」な人なら兎も角、
最初からbatやPowerShellで、今からあえて他の言語を使いはじめるメリットはあまりないでしょう。

※完全に無駄ではなく、これらの言語はライブラリが豊富だったり文字列操作が強かったりするので、長所がハマればWindows環境下でもそれなりには役に立ちますが…


さて、実際の勉強に関してですが、実際に必要となるモノを作る事が一番伸びます。
直近で特に役に立つモノが思いつかない場合、本を眺めていても中々覚えられません。
四則演算やループ、関数の書き方をざっと写経した上で、下記のような汎用的に使える技術を練習していくのも良いかと思います。

普段からPowerShellのターミナルで操作しているなら十分ではないでしょうか。
エディタとしてPowerShell ISEと共に、香り屋 Vimを覚えると良いかと思います。

Vimは:r !コマンドでエディターにコマンドの実行結果を持ってこれますし、
コマンドをぱぱぱっと書いて、ビジュアルモードで選択して:w !powershellで実行させられます。
優先順位はISE>Vimでしょうけど、本業がエディターなのでちょっとしたファイルを開いて編集するのにも役立ちます。


更なる力を付けるとすれば、タイピング速度とLisp(Scheme)をオススメします。

タイピング速度は一度練習して速くなれば遅くなることは滅多にありませんし、
IDEやショートカットに頼った開発はエディタでは辛いので、なんだかんだで速くなればなるほど得です。
typing.ioを何度かプレイして、WPM30~40くらいまではわりと簡単に伸びるので一つの区切りにしてはどうでしょうか。

Lisp(Scheme)自体は大昔の言語ですが、関数型プログラミングがもてはやされるに従って、「筋がよくなるプログラミング言語」として再度注目され始めてきました。
小さく関数やライブラリを区切って、素早く組み合わせて使えるようにするノウハウはPowerShellに持ち帰っても大いに役に立つでしょう。

投稿2016/09/03 03:22

miyabi-sun

総合スコア21158

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

mats

2016/09/03 10:54

PowerShell ISEは本当に素敵ですよね。Lispって人工知能系の難しい言語ってイメージでしたがちょっとみてます。タイピングソフトはまあまあです。 仕事でめっちゃメール打つので笑
guest

0

少し補足します

他の方も書かれている通りスクリプト言語は実に多彩である一方、お仕事で実感されていると思いますが勉強の時間はなかなか取れないとなると、習得する対象は絞り込みたいところだと思います。

業務上必要という観点で言うと、大抵の場合以下のような縛りがあると思います。

・別途費用のかかるものは導入しづらい。
・無償のものであっても、環境によっては簡単にインストールできない。
・過去のしがらみがあるかもしれない。自分が好きな言語でゼロからスクリプトを作成できるとは限らない。
・Windows環境と言ってもサーバばかりとは限らない。Windows XPかもしれない。

今後を見通すとPowerShellは必須だと思いますが、上記のような縛りを考えると、バッチファイルとVBScriptを捨てるわけにも行かないと思います。

実運用に際してはVBScriptからバッチファイルを呼び出す、もしくはその逆というケースが多いというのが私の実感です。
両方の言語の足りないところを補いあう必要があると思っています。

もちろん、既に業務上導入されている言語があるならそちらの習得が優先だと思います。

投稿2016/09/02 23:19

編集2016/09/03 03:09
ynakano

総合スコア1894

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

「Windowsでのシステム運用」という前提でしたら、
PowerShellが一番オススメです。現在ほぼ一択の状況です。

昔ならコマンドプロンプトとかVBScript(かJScript)でしたし、
今でも古いWin環境であれば、妥協せざるをえない場面があるかもしれません。

しかし、PowerShellはモダンなシェルスクリプトなので、
とくに制限がないなら、今ではPSを使うのが一番快適です。

まあ最初からPSを使っていると、違いが分からないかもしれませんが、
バッチと両方使っていれば、だんだんPSの良さが分かってくると思います。


そんなにPSがいいの? 何がいいの? と思うかもしれません。

まず、オブジェクト指向パイプライン。これはPSの専売特許ですが、
ワンライナーが書きやすいです。いろんな言語で一番書きやすいと感じます。

またプロバイダという仕組みがあって、レジストリや環境変数にもアクセスしやすいです。
そこら辺はゴチャゴチャ複雑で扱いにくかったので、それも利点です。

ほかにも普通にIDEが使えたり、.NETFrameworkが使えたり、
C#と互いに呼び出せたり、最近ではクラス構文までサポートしたりと、
MSDOS時代を引きずるレガシーなコマンドプロンプトとは天と地の違いです。

ただ、もし開発まで視野に入れれば、たくさんあります。何がしたいかで違います。
ビジネスのちょっとしたツールなら、エクセルとVBAが定番。
HTML5アプリならJavaScript、機械学習ならPython、みたいな感じです。

投稿2016/09/03 06:29

LLman

総合スコア5592

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

mats

2016/09/03 10:46

PowerShellはワンライナーで結構な処理ができるのが 素敵ですよね。
guest

0

perl、python、ruby等では外部コマンドの呼び出しは文字列で定義してシステム実行APIをコールするといったスクリプトになるため、外部コマンド呼び出しはおまけみたいな位置づけになります。
システム運用で使用する場合、外部コマンドの呼び出しを自動化する用途に使用することが多いと思いますが、Windows環境でこういった用途のスクリプト言語はPowerShell以外は知らないです。(BATは除外)
とりあえずPowerShellを使いこなせるようになるのが良いと思います。

学習に関してですが、必要になってから調べるのが一番だと思います。
自分の場合、いずれ使うかもしれないと本を読んだりサンプルスクリプトを作成して勉強したりしていますが、数週間かけて覚えた内容は数か月後にはほとんど記憶に残らず、必要になってから数日で調べた内容は数年経っても覚えているといった感じです。

投稿2016/09/03 00:16

tkmtmkt

総合スコア1800

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問