現在プログラミングスクールに通っており、Ruby on Railsを用いて様々なアプリケーションを開発しています。
ふと疑問に思ったことなのですが、Railsのassetsのところに置かれているJavascriptと言うフォルダにJSファイルを作って記述することで動的なページを作ることができることまではわかるのですが、これの代わりにRubyの記述で同じような動的なページを作ることは可能なのでしょうか。
もちろんJSはフロントエンドの言語で、Rubyをバックエンドの言語だと言うことは理解しているのですが、理論上は可能なような気がして質問して見ました。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答4件
0
ベストアンサー
理論上は可能なような気がして質問して見ました。
はい、Opalという、Rubyからフロントエンドを生成するための言語は存在します。ただし、
- マイナーな環境を選ぶとドキュメントがほとんどない
- 現状では結局JavaScriptの知識も必要
ということで、いまのところ、JavaScriptから大きく離れた他言語でWebフロントエンドを書く動きは低調です。
投稿2020/02/18 06:37
総合スコア146018
0
理論上は可能なような気がして
可能です。
応答する HTML に script要素 を書く際、以下の2種類あります。
- インラインで記述する方法
- src 属性でサブリソースを読む方法
ご質問は 「1. の方法はできますよね?」という趣旨に感じますが、2. のサブリソース方式を取るには理由があります。「ブラウザのキャッシュ容量を抑えるために、サブリソースを読むのが現在の常識」になっています。
多くの方が使うライブラリの場合、CDNを活用するのも同じ理由です。
- スクラッチで書いたコードスニペットを「HTMLソースを見て」と案内する公開方法をとる場合
- WebGL のシェーダー言語、や JSON などscript 要素を使える言語を使う場合
- etc
そのページだけで使うコードをスタティックHTMLとして公開するときに 1. の方法も利用されます。
投稿2020/02/18 07:02
総合スコア5434
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
前提条件として、ChromeやFirefox等のWebブラウザで動作するスクリプト言語は
現状JavaScriptだけと言っても過言ではありません
フロントエンドでは四の五の言わずにJavaScript使えという状況が出来上がっています。
結局Rubyのコードをブラウザ上で動かす事は出来ません。
ブラウザが受け付けているのはHTML、CSS、JS、各種画像ファイルくらいのものです。
これを前提に据えた話をします。
これの代わりにRubyの記述で同じような動的なページを作ることは可能なのでしょうか。
ふーむ…メタプログラミングの話でしょうか?
普段RubyやPythonを使っているユーザーはJavaScriptなど書きたくありません。
そこで、RubyやPythonのコードをJavaScriptのコードに変換して、
変換して入手したコードをもってブラウザに読み込ませるという手法があります。
PythonでC言語のコードを作って動かしたいとワガママこねてる奴が作った
Nimみたいな言語も存在します。
この言語はコンパイルするとC言語のファイルが払い出されて実行ファイルに変換されます。
質問文のように
Aの言語をBの言語のソースコードを払い出せばなんだってやれる!
それがメタプログラミングになります。
JavaScriptの話に入ります。
JavaScriptはES2015という最近のバージョンになって
数々のモダンな記法がサポートされて「JSでいいじゃん」というユーザーが増えましたが、
以前は本当に古臭い言語でアンチだらけでした。
なので有名無名含めて大量のメタプログラミング専用言語が開発されました。
まさに「JSを置き換える(オルタナティブ)」という名前で
「AltJS」としてまとめて紹介される程、沢山の言語が存在します。
有名どころのAltJSは現状TypeScriptの1強ですが
Ruby使いが好んで利用していた言語がこれらのようです。
- CoffeeScript: RoRでも採用されている2位のAltJS
- Opal: ガチRubyは使っていた?
もちろん、この方法は一般的ではありませんのでWebStorm等のIDEの恩恵を受ける事は出来ません。
ただまぁ、結局コンパイルされた後は単なるJavaScriptですから、
最終的にはJavaScriptでは何が出来て出来ないのかを正確に知る必要があります。
例えばwindowオブジェクトの使い方とかね。
Rubyでwindowって言われてもなんだそりゃ?ってなっちゃいますよね。
なので新しく言語を覚えるという所は大事にしつつ、
筋の良いCoffeeScriptを学習してみてはどうでしょうか?
投稿2020/02/18 07:06
総合スコア21203
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/02/18 06:49