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

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

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

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

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

3回答

628閲覧

Python or Ruby on rail、どっちからマスターするのが近道??移行の学習コストは??

samlife

総合スコア45

Ruby

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

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

1クリップ

投稿2018/10/06 22:31

Prog8でpythonを学習しています。

Googleがpythonで作られてる、シンプル、AIといえばpython、というミーハーな理由で選びましたが、現在の目標は、自分でログイン機能やいいね機能のついたウェブサービスを作れるようになることです。Prog8にはRuby on ralisでTwitter風サービスを作る、というのがあり気になっています。機械学習やAI関連はその後かなと。

このような記事も読みましたが、

【徹底比較!】Ruby vs Python 勉強するならどっち??
https://www.sejuku.net/blog/19247

例えば、Ruby on Railsをある程度マスターしてからpython、というのは、学習コストとして難易度はどんなもんでしょうか(主に時間)。

最初からPythonでのウェブサービス制作を学ぶか、Ruby on railsから入るか、、、

先輩方、アドバイスよろしくお願い致します。

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

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

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

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

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

guest

回答3

0

まず、記事に書いてあることを参考にしたいと思うなら、記事のコメント(書籍であればAmazonレビュー等)を確認してください。参考に載せた侍エンジニア塾ブログの記事は第三者によるコメントが一切書かれないシステムであるため、真偽を判断する知識がない人にとって、参考にする価値はありません。コメントが書かれないということは、間違っていても放置されている可能性が非常に高い事を意味し、そして、だいたいの記事が間違っています。

webサービスを作りたい人

Python vs RubyはDjango vs Railsの比較に収束しません。RubyでシンプルにWebアプリを作るのであれば、Sinatraがあります。PythonにもBottle等があり、Djangoが全てではありません。

Webアプリはプログラミング初心者が簡単にできる物でありません。何を作ろうが、Webに関するそれなりの知識が必要です。むしろ、最初はCGIでも作ってから、フレームワークはその後に学んでも良いぐらいです。

在宅リモートワークで働きたい人、就職転職したい人

初心者がプログラミングを学んで、実際に仕事として物になるまで、または、就職時に評価されるほどの実力をみなされるまで、それなりの時間がかかります。それまでトレンドが変わっている可能性を考慮しない、無責任な内容です。

第一、求人数だけで見たら、PHPやJavaの方が多いです。そのような根拠ではPythonやRubyを初めから選択に入れない方が良いでしょう。

人工知能を作りたい人、自然言語処理したい人、深層学習(ディープラーニング)したい人、強化学習を勉強したい人

現在の人工知能の主流は機械学習の手法の一つであるディープラーニングです。人工知能を用いた自然言語処理もそれらの技術を用いています。わざわざバラバラに説明する必要はありません。

結局、ディープラーニングをやりたいなら、利用数が多いTensorFlowを使うことになり、TensorFlowの利用で活発なのがPythonであると言うことだけです。

英語が苦手な人

プログラマーになること自体を諦めて下さいとはっきり宣告したほうがその人のためです。


何から始めようが、最終的な学習コストはほぼ一緒です。効率性を求めるよりは、何に興味があるかから始めないと、長続きしません。何か一つの作品を作ることは、その言語だけを習得すればいいというのでは無く、その周りの技術や知識、ディープラーニングならニューラルネットワークの基礎知識や数学的な概念、WebアプリならWeb全般の知識やHTML等の技術、等も必要になってきます。Webサービスを作りたいなら、まず、静的なWebページでも作って、自分のホームページを作ることぐらいから始めないと、PythonやRubyをいくら学んでも作れるようにならないでしょう。逆に、そういった知識を身につけ、Pythonで一旦Webサービスを作っていれば、Rubyで言語とフレームワークの使い方を学ぶだけで、Webサービスを作れると言うことでもあります。

より良いものを作りたいのであれば、Pythonだけできる、Rubyだけできる、よりも、PythonもRubyもできるとならないと難しいです。最適解は状況によって刻々と変化し、これがあれば十分というモノが存在しません。結局、どちらもするのであれば、どちらが先かというのは些細な問題であり、そんなことに悩む前にどんどん学んでいった方が良いのではないでしょうか。

投稿2018/10/07 00:37

raccy

総合スコア21735

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

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

samlife

2018/10/07 01:43

自分のアイデアやデータを自分の思うがままに表現したり扱えるようになりたい。 アイデアを自在に形にして、すぐに、世の中にいくつもリリースしたい。 まずはウェブサービス、それができるようになったらアプリやIoTなど。 これが目指すべき姿です。 アイデアはたくさんあるのに、作れないからモヤモヤします。 -- 最終的にほぼ一緒、なるほどです。 PHPは少し触ったことがあったので、pythonも基本的な文法みたいなのは比較的スムーズに理解できました。PHPみたいにhtmlに直接書けるようなものではないと思うので、それはこれから調べます。 いろんな言語の初心者ページ(forだのwhileだのclassだの)だけみてると、方言の違いこそあれど基本はほとんど同じように見えたので、ひとつマスターしたらあとは少し応用するだけなのかなと思ったり。 -- ウェブサービス制作の容易性という意味では、どうやらRuby on railっぽいので、そちらにしてみます。たぶんそれが自在にできるようになれば、その後pythonもいけそうですね。 -- もう一つお聞きしたいのですが、どこかで見たのですが、「覚えたり調べたりするのは、文法が3:フレームワークが7」というのは感覚的に合っていますか?文法やclassの概念はもう少しで理解できそうなので、フレームワークとやらが本番なのかなと。
pepperleaf

2018/10/07 01:44 編集

> 参考にする価値はありません これを言ってしまうと、ここのサイトだけでなく、Web上の大半の記事が、、、 最近では減ったみたいですが、こうすれば、成功するなんて、雑誌が結構ありました。そのWeb版かなと思います。ここには、正しいけど、本当に実践できるのか? 誰でもできるのか? 一時、ページをめくった事もありますが、最近は、見出しだけでおなか一杯。 > 英語が苦手な人 これに対しては、疑問がありますが、自分でそう思っている時点で正しいでしょうか。 (苦手ですが、生きています) 後半については、ほぼ、同意。
guest

0

ベストアンサー

現在の目標は、自分でログイン機能やいいね機能のついたウェブサービスを作れるようになることです。Prog8にはRuby on ralisでTwitter風サービスを作る、というのがあり気になっています。

じゃあRailsで良いんじゃないですか? やりたいことからやってみると良いですよ。

例えば、Ruby on Railsをある程度マスターしてからpython、というのは、学習コストとして難易度はどんなもんでしょうか(主に時間)。

適当ですが、

「Ruby on Railsをゼロから学習するのに要する時間」+ 「pythonをゼロから学習するのに要する時間」*0.8

くらいになると思います。Railsでプログラミングに慣れた分、pythonでは2割くらいの時間を削れるかと。
(pythonで何をやるのかわからないから、この程度のことしか言えない)


いろいろな言語やフレームワークに手を出してみるのはプログラミング初心者のムーブとして悪くない気がするので、とりあえずやってみたら良いんだと思います。

ただし、そこから脱皮するにはミーハーにやってるだけじゃ駄目で、基礎知識が必要になる印象。

投稿2018/10/07 06:38

hayataka2049

総合スコア30933

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

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

samlife

2018/10/07 08:01

ありがとうございます。 ひとまずProg8でRuby on Railsを触っています。 削れるのは0.2くらいなのですね。 もっと削れるかと思ってましたが、甘くなさそうですね笑 超初心者は脱出できたっぽく、少し楽しくなってきたので、楽しんでやろうと思います。 -- プログラミング学習の7割はフレームワーク、みたいなのを聞いたことがありますが、合ってますか?
hayataka2049

2018/10/07 08:13

>プログラミング学習の7割はフレームワーク そうなのかなぁという程度。状況によって幾らでも変わると思います。あまり深く考えない方が良いかと
guest

0

個人で開発するのであれば、自分も使っていますが、PythonにはFlaskというフレームワークがあります。Ruby on rails や Django より軽量なフレームですが、個人で開発するのであれば十分な機能があります。そしてシンプルで素に近いのでWebアプリの基本的なことが理解しやすく学習コストも低いです。

最近は、クライアント側で React.js や Vue.js 等を使ってSPAにすることが多くなってきています。SPAを使う場合にはサーバーサイドでHTMLにレンダリングする必要はありません。Ruby on rails や Django には、サーバーサイドでHTMLに便利にレンダリングするための機能が多く含まれています。SPAにしたいのであれば、Flaskでも十分すぎる機能があります。

Webサービスを作りたい場合には、まず、Ruby on railsが得意な従来型のサーバーでHTMLにレンダリングするタイプにするのか、Facebookのように React.js や Vue.js 等を使ってブラウザー側でJavaScriptに処理をさせるタイプにするのかを決めた方がいいと思います。JavaScriptのライブラリーが充実してきたこと、ブラウザー側でJavaScriptを使った方が操作性に優れていることから、現在の流れからいえば、できるだけブラウザー側でJavaScriptを使ってプログラムをするのがベターだと思っています。

こういうことから考えると、自分でWebサービスを作りたいのであれば、すでにPythonをマスターしているので、Ruby on Railsをマスターするよりも、JavaScriptの方をマスターすることが先決だと思います。また、Go言語のライブラリーがかなり充実してきたので、Flaskに不満が出てきた時には、複雑で高速な処理が必要な部分をGo言語で書き直すという選択肢もあります。

なお、Webサービスの提供している企業に就職したいというのならば、先に Ruby on Railsをマスターすることを勧めます。現在、Webサービスを提供している企業では、Ruby on Railsを使っているところが多いので、就職するためにはその方が有利です。

ディープラーニングをやりたいならなぜ Python なのか
ディープラーニングをやりたいならなぜPythonなのか、TensorFlowの利用で活発なのがPythonであると言うことだけではありません。ディープラーニングをするためには、多くのデータを集めてディープラーニングに使うのに適したデータに変換する必要があります。Pythonの場合は、データサイエンスの分野では圧倒的に使われてきたプログラム言語なので、そのための優秀なツールが揃っています。ディープラーニングをやりたいなら、データサイエンスの分野の学習が必要になりますが、そのためのツールが揃っているプログラミング言語を使うべきです。それができる言語はPythonだけとはいいませんが、RubyやPHPでは相当苦労すると思います。

投稿2018/10/06 23:44

編集2018/10/07 01:41
YasuhiroNiji

総合スコア584

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

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

samlife

2018/10/07 01:52

ありがとうございます。 まだ一つも習得できてない自分としては色んな言語や環境の話が混乱したり戦意喪失しそうになってしまいます。 すでに別の事でフリーランスにはなっているので就職というよりは、自分のアイデアやデータを自分の思うがままに表現したり扱えるようになりたい。アイデアを自在に形にして、すぐに、世の中にいくつもリリースしたい。まずはウェブサービス、それができるようになったらアプリやIoTなど。というのが目指すべき姿です。 重視すべきは自分のひらめきやアイデアを形にする容易さ、スピード感ですね。ちょっとした静的Webは作れるので、ログインしたり、自分独自の内容のウェブサービスをサクッと作りたい。 そう考えると、まずはRuby on Railsが良さげな気がしてきています。それが自在にできるようになったら、pythonもスムーズに覚えられそうな気が。
YasuhiroNiji

2018/10/07 02:20

認証の仕組みを作るのが大変だということが、Ruby on Railsを使うと便利な理由の一つでした。でも、Firebase Authentication を使うとライブラリーを組み込むだけであっという間にできてしまいます。Googleは社内での開発にもPythonを使っているので、Pythonは随分使いやすくなっていますよ。
samlife

2018/10/07 02:28

認証の仕組みもGoogleが用意してくれているのですね。これは便利そうですね。 pythonでウェブサービスだとサーバーが、という投稿も見かけましたが、GoogleのCloudを使うのがよいのですか?
asm

2018/10/07 02:43

サーバーについてはRailsにしろPythonにしろVPSやHeroku・AWSなどを使う必要がありますね
YasuhiroNiji

2018/10/07 02:44

Google App Engine(GAE) の Standard environment で Python 3.7 が beta ですが今年の8月から使えるようになりました。そこでは標準でFlaskが動くように設定されているので、Flaskだとすぐに動くし、それに無料分があってアクセスが多くなるまでは無料で使えるのでGAEを使わない手はないです。
YasuhiroNiji

2018/10/07 02:55

GAEのPython2.7の方は開発環境が別に必要だったので不便でしたが、Python 3.7ではSecond generationというだけあってPyCharmで開発してそのままアップロードしたら動きます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問