こんにちは。
現在プログラミング未経験者ですが、来春からSEとしてシステム会社(SIer)で働く予定の者です。会社ではJAVAを主に用いるそうなのですが、個人的に趣味でweb関連技術を勉強していきたいなと思っています。
そこで目をつけたのが、表題のperlとRubyです。しかし正直言って、どちらを勉強すべきなのか良く分かりません。
もし出来れば、将来的に業務にも使えそうな言語・或いはプログラミングに慣れるという意味も含めて、JAVAに近い言語を選びたいと思っています。そう考えたとき、どちらの言語を勉強すべきなのでしょうか?
個人的には
perl・・・少し古いイメージ。またエキスパートが沢山居て、今から身に付けてもあまり価値が無さそう。
Ruby・・・良く分からないけど、今後流行りそう。ただ、非常に敷居が高く難しそう。また、業務で使うことはなさそう。
なんて思っています。
ちなみに、PHPは業務では使いそうにないのでが狭いので外しました。
以上を踏まえて、初心者である私がどちらの言語を勉強すべきか、主観で構いませんので皆様の意見をお聞かせ下さい。宜しくお願いします。
仕事でJAVAをやっていくなら、趣味もRubyでしょう。
Rubyはスクリプト言語といってもオブジェクト指向ですから、
世界がJAVAと似ています。
そこにいくとperlは、昔のCプログラマが住んでいたような、
かなり泥臭い世界です(笑)
Rubyの敷居は高くないですよ。
言語仕様を覚えるだけなら、Rubyもperlも一緒です。
そんなに違いはありません。
perlが読めればRubyも読めますし、Rubyが読めればperlも読めます。
ただ、Rubyで慣れておけば同じ物をperlで組むことは簡単ですが、
perlの知識しか無い人がRubyで書けるかというと、
ちょっとそうはいきません。
やはりRubyの特色を活かすとなると
オブジェクト指向言語の特色を活かす知恵が欠かせませんから、
どちらをやろうかと迷ったなら、Rubyから始めてみるのが
お勧めかなと思います。
perlは正直、CなりRubyなり、それ系の言語が何か一つ分かっていれば、
仕様書さえあればぶっつけ本番で使えます。
どちらが仕事に役立つかは、これはもう職場次第でしょう。
でも、perlは元々awkに毛を生やしたようなものを
Webに応用したに過ぎませんから、
そろそろ需要は頭打ちになってくると思います。
Java(もしくはC言語)をやられているのでしたら、言語仕様的にはPHPが一番すんなりいくと思います。perlもRubyも、文法はクセがあります。
perlとRubyの択一でしたら、個人的にはRubyですかね。Ruby on Railsなんて統合開発環境もありますので。
んー、現時点ではプログラミング経験は無いんですよ。Javaに関しては、夏前から会社の研修で勉強するようです。
やはりRubyがお勧めなんですね。今後有望な技術ということなんでしょうか?
http://homepage3.nifty.com/hippo2000/perltips/index.htm
↑のURLは自分がよく利用させて頂いている、Perlの超訳サイトさんです。
オブジェクト指向で行こうというのであれば、Rubyがいいかなと思います。もとからオブジェクト指向の言語ですし、何しろ、開発者が日本人(まつもとさん)なんで、日本語ドキュメントに苦労しません。
レンタルサーバー借りて、何か試したいとお考えなら、Perlの方がいいでしょう。Rubyが使えるレンタルサーバーって、あんまり聞かないもので。
蛇足ですが、Perlでもオブジェクト指向できますよ。ちょっと敷居が高くなりますが・・・。
ありがとうございます。参考になります。
Rubyが使えるサーバーって余りないのですか。
うーん、それは盲点でした・・・。
やっぱりこういうのって作ってみて試して、
という感じで練習するものだと思うので、
実装出来ないと困りますね・・・。
Rubyばっかりなんで、一応Perlの方も
今、沢山使われているからこそ、Perlの方は利用価値があるわけです。
例えるなら、世界で一人しか使っていない言語に意味は無く、他人との意思疎通に使えるからこそ言語としての意味があります。
即ち、過去の物を使えると言うメリットや、今使われている物を変更して使えるというメリットが有る訳です。
さらに、サーバの管理等を行う際にPerlなら入ってることが有るかも知れませんがRubyが入ってることは稀でしょう。
ただまぁ、JAVAに近いとなると、Rubyの方が近いのは単純に事実だと思います。
とは言え、所詮スクリプトなので、あまり、どれに近いからこれ、みたいな事を考える必要はないと思いますけど。
URLが必須のようなのでダミーです
ありがとうございます。
確かにそういう考え方もありますよね。
結局どちらが入りやすいか、ということが一番重要になってくるんでしょうか。色々と調べていたのですが、個人的にはプログラミング初心者なので、簡潔なRubyの方が入りやすいような気がしています。
趣味とは言えSIerになったし、というきっかけで勉強するなら「両方」というのが答えですかね…。
Perlはまず入っていない環境はないですし、CGIの中身として使われていることも多いです。
だからJavaで何かやるにしても入口はPerlだったり…ということもありえます。とりあえず書けなくても読めるようになったほうがいいと思います。
http://d.hatena.ne.jp/naoya/20050518/1116425594
なんせはてな自体がPerlですしね。
一方で僕個人は何かちょこっと作業するときには(すぐ忘れちゃうんでマニュアル引き引きですけど)Rubyを使います。
オブジェクト指向なところもそうですけど、制御構造が関数型プログラミング風なところが気に入っています(Lispのλ式みたいな感じで書けたりする)。
作った人(まつもとさん)が言語オタクだけあっていろんなプログラミング言語のフレーバーを持っているので書き方に自由度が高いんですよ。あと書き終わった後見やすい(と思います)。
で、どちらがJavaに近いか…というとクラス定義が使えるあたりでRubyなのかなーとは思うのですが、Javaは定義済みクラスがいろいろあってこそのJavaで、あとメソッド名やクラス名が印象としてやたら長いんですよね…プログラムの1行が長くて、まるで全体が四角くびっちり詰まって見える。クラスブラウザか何かで必要そうなものを探して穴埋めするだけ…な感じがしてしまいます。
これはPerl,Rubyどちらとも違う雰囲気です。あまり好きになれません…。
ありがとうございます。
そうですね。やはりperlは世の中に広く普及していますし、perl好きな人って異常に多いように見受けられますよね。
ただ、個人的には(プログラミング初心者ながら)コードを見てみた際、直感的に
「分かりづらい・・・」と感じてしまったんですよ。そういう意味で、「分かりづらさ」以上の誘因が無ければperlにすることはなさそうな気がしています・・・。
個人的にはPHPがオススメですが、今から始めるのであればRubyが良いのではないでしょうか。
日本人が作ってるって言うだけで愛着が湧きそうな気がしませんか。
Rubyが使えるレンタルサーバも結構ありますので、稼働環境を心配する必要はないと思います。
安くて手軽に使えることでお馴染みのロリポップやさくらインターネットではRubyが使えます。
こんな比較もありました。
Pythonという新たな選択肢が出てきてしまいそうですが、ここに出ているサンプルを見てもらえば分かるようにRubyでは短いコードを書けます。
Perl使いの人がRubyに移行した例もあります。
また、過去に似たような(?)質問がいくつかありましたので、ピックアップしてみました。
(私が無意識に取捨選択してしまったのか、PHP寄りの回答が多いです。)
参考になれば幸いです。
ありがとうございます。
ロリポップでも使えるんですね!安心しました。
非常に参考になるご意見ありがとうございます。どれも一読してみますね。
http://www.xrea.com/?action=spec
二回目になっちゃいますが、ちょっと補足させていただきます。
まずRubyの使えるレンタルサーバですが、
これにはXREAの無料サービスなどが代表的かなと思います。
なかなか募集がないのが難点ですが、
有料の「XREA+プラスサービス」を一ヶ月でも申し込むと(400円)、
契約期間が過ぎても、ずっと無料サービスとして
使い続けていくことが出来ます。
http://www.ruby-lang.org/ja/install.cgi?cmd=view;name=top
もちろん実際にRubyで「web関連技術を勉強」ということなら、
ローカルのPCの中にも、それ用の環境を整えたいですよね。
RubyはWindows機にもインストールできますから、
これにHTTPサーバとしてApacheかAN HTTPDでも組み合わせて、
自分なりの実行環境を整えてしまうのがお勧めです。
同じことはperlでも出来ます↓。
http://penguin.nakayosi.jp/windows/perl.html
http://www.pure.ne.jp/~learner/program/Perl_oo.html
あと、perlによるオブジェクト指向プログラミングは、
そういうふうに書けないこともないように拡張されて
今日に至っている考えておいた方が間違いが無さそうな気がします。
やはりどうしても、オブジェクト指向プログラミングに関しては、
最初からそれを指向して作られたRubyの方が綺麗に書けます。
またRubyの場合は、プログラマの予測に反するような例外的な振る舞いや、
仕様上のトリッキーさの排除を目標として設計されていますから、
「省略の美学」を活かして職人芸的に書いていくperlとは、
ある意味対極的な世界と言えるかもしれません。
逆にそこがperlの奥深さであり面白い所なのですがw
非常に参考になります。2度もありがとうございます。
やはりRuby→簡潔・綺麗、perl→回りくどいけどそれを考えるのが楽しいって感じでしょうか。
最初に手をつけるならやはり簡単な方が良さそうですね。
http://cruel.org/freeware/hacker.html
http://practical-scheme.net/trans/gh-j.html
オブジェクト指向はJavaがあれば十分なので、Perlをお勧めしたいところです。
が、PHPを知っておくとサーバサイドの問題に強くなれるのでPHPもお勧めです。
うーん、なるほど。
PHPにもそういう利点があるのですね・・・。
Rubyの敷居は決して高くはないです。JavaでWebアプリケーションを作成する業務であるならば、既に挙がっているRuby on Railsを触っておくことも非常に有意義だとは思います。
が、どちらかを選ぶならば Perl ですかね。Perl ってのは色々なところで使われているので、とりあえず読み書きできるようになっておいた方が良いでしょう。
URL はとりあえずこれでもいれときます。
perlですか・・・。
確かにそういう意味では読み書き出来る方が良いですよね。
ただ、上にも書いたのですが、どうも好きになれそうになくて・・・。最初にある程度「プログラミング耐性」のようなものを身に付けてからperlに挑戦したいな、と最近は思うようになってきました。
Rubyプログラミング入門
http://www.amazon.co.jp/exec/obidos/ASIN/4274063852/503-2813...
たのしいRuby―Rubyではじめる気軽なプログラミング
http://www.amazon.co.jp/exec/obidos/ASIN/4797314087/503-2813...
プログラミングRuby―達人プログラマーガイド
http://www.amazon.co.jp/exec/obidos/ASIN/4894714531/503-2813...
Rubyアプリケーションプログラミング
http://www.amazon.co.jp/exec/obidos/ASIN/4274064611/503-2813...
ありがとうございます!非常に参考になります。
確かにオブジェクト指向と言われていますね。
Rubyはかなり敷居が高いイメージがあったのですが、そうでもないようで・・・。早速勉強してみようと思います。
やっぱりperlは頭打ち感はあるんですね。折角なので、これからの新しい技術に踏み込んでいきたいと思います。