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

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

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

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

Node.js

Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

Webサイト

一つのドメイン上に存在するWebページの集合体をWebサイトと呼びます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

4回答

810閲覧

なるべく少ない言語でWebサイトを作る場合どの言語がいいのでしょうか?

tefusaki

総合スコア1

Ruby

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

Node.js

Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

Webサイト

一つのドメイン上に存在するWebページの集合体をWebサイトと呼びます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

0クリップ

投稿2020/11/25 03:23

編集2020/11/25 04:14

実現したいこと

なるべく少ない言語で効率的にWebサイトやWebサービスの構築を実現したいです。

その場合どの言語が良いのか選択肢をいただけるとありがたいです。

※※※※※※※※※※※※
・目的はフロントエンド、バックエンドの両方です。
・ただただ使用言語が少なければなんでも良いというわけではなく開発効率も考慮していただけると嬉しいです。
・僕自身Web言語周りに疎く、言語の選択肢を並べる段階で悩んでいるので「こういった言語を使ったら自分の知っている中で一番効率的に開発できるよ」といった言語を提示していただけるだけでもありがたいです!

前提・実現したいこと

僕自身現在は 『SwiftUI』 でiOSアプリを作成しているのですが、WebサイトやWebサービスの重要性も痛感することが多くそっちの勉強もしたいなと考えています。

元々プログラミングはWeb系から入ったのですが、
その当時は『HTML』『CSS』『Javascript』『Ruby』『+データベース』と使用言語(前者3つは正確にはプログラミング言語ではないですが)が多く、
また実装内容に対するコード量等が不釣り合いで正直非効率な超肉体労働感が否めなくWeb言語から離れiOS言語に移行しました。

もし少ない言語で、かつ効率的にWeb系の開発ができる言語があれば教えていただきたいです。
無知な質問で申し訳ないです。

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

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

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

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

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

miyabi_takatsuk

2020/11/25 03:44

質問者さんがやりたいのは、 フロントエンドですか? バックエンドですか? それともその両方? それいかんでも変わってきます。
Zuishin

2020/11/25 05:08

目標によっても変わってきます。ある程度大きなプロジェクトなら TypeScript が良いでしょうし、ポートフォリオくらいなら JavaScript で十分でしょう。それに加えて React や vue.js や jQuery を選ぶのが良い場面もあります。 今は開発効率を考える段階ではなく、煽り抜きで html と JavaScript と CSS に注力すべきだと思います。
guest

回答4

0

今回の質問を解決させるにはちょっと行数が必要になりそうですかね?
長くなりましたがわかり易さ重視にしました。

Webを取り巻く技術は現状発展中です。
HTMLとJSを別々に書くのは古いよねって感じになっており、
JSフレームワークという形で統合されました。

それでも最終的な結論はJSフレームワークがベースであり、
それにNode.js製のWebサーバ機能がセットになったライブラリが主流になると思いますので、
質問文への回答としてこれらのライブラリを挙げます。

  • Svelte: 3番手前後のJSフレームワーク、とにかく超楽をプッシュ
  • Next.js: Reactにルーティング機能をつけてWebサーバで包んだモノ、らくちん
  • NuxtJS: Next.jsのVue.js版、こちらも大人気
  • Angular: よくしらない

古の時代はブラウザにHTMLファイルを読み込ませると、
画面表示する際にDOMツリーという階層構造のデータツリーを作って、
それをレンダリングする形で画面に反映します。

JSはDOMツリーを書き換える事で
Webページの画面更新を行っていました。

これって一方通行なので「A → B」は表現出来ますが、
「B → A」を表現したければ改めて書き直す必要があります。
既にBの状態の画面に「→ B」を更に適用すると画面がぶっ壊れる。
これが非常に辛く、コードやテストが膨大になる泣き所になっていました。

そこで、JSで全部やればいいじゃんという発想になります。
変数世界にHTML風テンプレート文字列データをまるっと記憶させてしまいます。
それを「JSフレームワーク」に流し込み、
JS上の変数を書き換えたら、最新の変数の値を使ってDOMツリーを勝手に描画し直すという流れを構築します。

なので今時のJSは変数の管理に注力するだけで、
不具合が殆ど発生しない堅牢なWebサイトを表現出来るようになりました。


しかし、これらは全て積み重ねてきた結果なので、
覚える技術の量という点では減っていません。

先程のJSフレームワークにしたって
デザインの都合は丸投げなのでCSSは勝手に作って頑張れ!ですし、
HTMLの事がわかって無ければHTML風テンプレートなど作れません。
JSの事を理解してなきゃJSフレームワークで変数を作って書き換える事もできない。

まぁ、これは六法全書覚えてないけど弁護士になりたいみたいなもので
どの世界でも前提知識は必要ですからしょうがない事だと思います。

幸いWebのフロントエンドに限っては、
JS以外は浅い知識でわりと何とかなるので
とりあえず触って作ってみて、問題が出たら対応するくらいで良いです。

バックエンドはセキュリティ面でPC乗っ取られた!みたいな事件が発生するので、
こちらは信頼出来る師匠を手にするか、それ系の企業に入って覚えた方が良いでしょうね。


さて、ここからは効率の話です。
覚える事は残念ながら減りませんが、効率は改善出来るので見ていきましょう。

また実装内容に対するコード量等が不釣り合いで正直非効率な超肉体労働感が否めなく

HTMLが「整合性」に全振りした文書形式だからですね。
言い換えれば効率の悪い言語という事です。

最初は学習の為にエディタ開いて手作業で編集する事になりますが、
最終的な結論で言えばHTMLはプログラムやブラウザ等のソフトウェアが読み書きするものです。
人間が扱ってはいけません。

Node.js、PHP、Ruby、Python等……まぁどの言語でも良いですが、
それらを経由して吐き出すような仕組みを構築しましょう。

どうしてもエディタで編集しなければならない場面はありますが、
Rubyならslim、Node.jsならPugのようなHTMLを作るテンプレート言語を使うと良いでしょう。
こういう人間が読み書きしやすい言語で置き換え、コマンド一つでHTMLファイルを作れるようにしておくと効率は桁違いに良くなります。

CSSも同様で、親子構造が表現し辛い効率の悪い言語なので、
Sassといったテンプレート言語が開発されています。


JSに関しては事情が異なります。

当時流行っていたJavaとLispとPerlが悪魔合体して失敗したような言語で、
相当使いにくくへんてこな挙動をする言語でした。
そしてブラウザ毎に実装が違うので、挙動や使えるメソッドが違うとこの世の地獄……

他にもJSはブラウザで表示したページを動的に編集する事に特化した言語です。
HTML(DOMツリー)を後から書き換える事でページの変更を促すことしか出来ない言語でした。


しかしECMAScriptというJSの仕様統一の動きがあり大幅に改革が進みます。
更にRubyやPythonのようなモダンな構文を次々と取り入れ、
JSは2015年あたりを境目に劇的に変化します。

Node.jsの登場も大きいですね。
JS言語のルールだけを持ってきて、C++で作ったファイルの読み書き等を司るライブラリを付与し、
RubyやPythonと同じく汎用スクリプトとして使えるNode.jsが登場しました。

これにより、JSはコードはRubyに並ぶ程モダンに書ける上、
JSはNode.jsの枠組みを利用してRubyのようにCLIライブラリを作ったり、
マシン上でコードを書いてWebサーバになれるようになりました。


という訳で、まずNode.jsですね。
これ単体でも便利なコマンドラインツールを作ったりも出来るので、
PC上の作業は非常に捗るようになるはずです。

投稿2020/11/25 05:13

miyabi-sun

総合スコア21158

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

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

0

一番少ないのはHTMLですべてやることです

投稿2020/11/25 04:03

yambejp

総合スコア114829

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

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

tefusaki

2020/11/25 04:07

僕の質問の仕方が悪かったのもありますが、効率的にって書いてるので最低限質問の意図は読み取ってほしいです、、、 冷やかしのような回答はご遠慮願います。
yambejp

2020/11/25 04:19

> 冷やかしのような回答 いえ、そんなことはありません。 むしろHTML以上に効率的なものはそうそうないでしょう そのたの選択肢は、pdfやすべて画像にするくらいです あとは質問者さんがきちんと要求定義をすればそれに合わせた回答はつくと思います
hentaiman

2020/11/25 04:29

> WebサイトやWebサービスの構築 確かにこの一文と効率的にという事しか質問書かれていなければhtmlでやれと投げ捨てるのも分かりますが、その後の文章で > WebサイトやWebサービスの重要性も痛感することが多く と述べておりさらに過去の経験として > 『HTML』『CSS』『Javascript』『Ruby』『+データベース』 を挙げている事からも、静的ページでもなんでも良いからというような質問でない事は想像つくと思います 少なくとも動的な部分をDBから取得したい事やアプリ用のWebAPIの用意などの要件は、頑張って推測してあげる間でもなく予測できるかと
tefusaki

2020/11/25 04:38

ここで質問している人は割と行き詰まってここで質問している方が多いと思います。 僕の質問の仕方がよくなかったのもありますが、他の人にこのような煽りや小馬鹿にしたような回答はしないであげてください。 たくさん悩んで解決しなかった後の質問でこの回答は結構メンタルにきます、、、
m.ts10806

2020/11/25 05:10 編集

質問内容に「行き詰まった感」が現れてなければそれなりの回答がつくかと思います。(例え行き詰まっていたとしても赤の他人ですし、そこまで手取り足取りする由縁もありません) それにWebとして絶対不可欠なのはHTMLなので、最小という観点なら間違った回答ではないと思います。 あと、yambejpさんは煽ったり小馬鹿にするような回答はほとんどないと言っても良いかもしれません。 結局のところ要件定義が甘ければ言語選択にすら至れないのでは。言語やフレームワークは所詮道具です。
tefusaki

2020/11/25 05:28

ですので質問の仕方が悪かったと反省してますよね、、、 それでも質問の内容は最小のみではないですし、上の方がフォローしてくれているように「HTMLで簡潔するよね」というような回答を求めていないことは自明かと思います。 質問の仕方が悪かったと本人が理解して言葉にしているのに、わざわざ同じことを言いにくる意味がわからないです。。。 以後返信はなくて大丈夫ですので。
m.ts10806

2020/11/25 05:50

第三者の意見を入れただけです。 あと質問は何度でも編集できるので、質問の仕方が悪いと感じられたのでしたら、悪くないと納得できるまで編集すれば良いと思います。推敲はおおいに結構ですし、それで問題が解決に繋がるのであればここらで回答者に対してグチグチ言うよりも幾らか前に向くと思います。 要件次第で変わる内容に「なるべく少ない」という曖昧な内容であれば、どんな回答ついても文句言えないのも自明かと思います。「冷やかし」と書いた上で「反省してる」と言いながら「煽る」「小馬鹿」など思い込みも甚だしい。
guest

0

もし少ない言語で、かつ効率的にWeb系の開発ができる言語があれば教えていただきたいです。

意図がイマイチわかりませんが、この部分を言葉どおりに解釈するなら、C#でできます。
BlazorプロジェクトでDBアクセスにはEntityFramoworkを使えば、基本的なことはほぼ全てC#で書けます。

ページUIを記載する際にrazor構文の中で現れるHTMLやCSSの知識からは流石に逃げられませんし、凝ったことをするならJavaScriptと組み合わせるケースはありますし、EntityFrameworkを本気で使いこなすならSQLの知識は必要になってきますが。

投稿2020/11/25 07:54

gentaro

総合スコア8949

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

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

0

ベストアンサー

少ない言語にこだわるのならjavascriptとsqlだけ覚えればいいです。
ただし少ない=効率的という訳ではない

投稿2020/11/25 03:26

hentaiman

総合スコア6419

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

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

tefusaki

2020/11/25 03:41

一応バックエンドも混みなんですけど、Node.jsあたりのことですか?(疎くてすみません) 確かにそうですね! 元々Rubyしか使ったことがないので、現状比較的効率の良い言語があればそちらも教えていただけると嬉しいです。
hentaiman

2020/11/25 04:12

そうです。 そしてフロントだって別に単純にhtml+css+js使えって意味じゃなくて、reactとか各種静的サイトジェネレーターとかあるから肌に合うものを試してみるのもいいですし アプリだってreact nativeありますからね 自分からしたら > また実装内容に対するコード量等が不釣り合いで正直非効率な超肉体労働感が否めなくWeb言語から離れiOS言語に移行しました。 これが理解出来ないので効率の回答出来ません。自分もwebから入った人ですがiOSの方が非効率で無駄で面倒でリンゴでしか使えなくて二度とやりたくないっていうかもうやってません。質問者は恐らくswiftで自分はObjective-cなので違いもあるとは思いますが。 効率の良さは可能な限り多くの言語をそれなりに使いこなせるレベルで習得して経験するしかありません。しかも人によって合う言語が違います。自分に合うものが質問者に合うとは限りません。 非効率に様々深く勉強して効率の良いものをみつけてください。
tefusaki

2020/11/25 04:29

そうですね。今はSwiftUIやってます。 例えばhentaimanのおっしゃるように Objective-cの方がSwiftUIに比べて学習コストや開発効率が明らかに劣っていると僕は思うので、他者にiOS開発をしたいと言われば、『Objective-c』や『React Native』ではなく『SwiftUI』を進めます。 もちろん開発コスト・開発効率・言語を極めているか否かでの自由度など、どの条件を重視するかで見方は変わると思います。 絶対的な最強の1つの言語が存在しているわけではなく、それぞれの言語に長所や短所があるのも理解しています。 hentaimanさんのおっしゃることはとてもよくわかるのですが、無知なWeb言語ほぼ初心者が手当たり次第言語を試して移行を繰り返していたら学習コストがとんでもないことになります。 すべて理解した上で皆さんのオススメする言語を聞いて、その中で比較して考えてみたいなと思っただけです、、、
tefusaki

2020/11/25 04:35

ごめんなさい、質問が下手すぎたのでまた別の質問で質問しなおします。 グダグダな質問にご丁寧に回答していただいてありがとうございました!!
hentaiman

2020/11/25 04:51

phpの得意な自分が言語選択した例ですが、PWAを作る事とWebAPIが必要となった時に、触ったことも無いreact及び基礎を少し知っている程度のpythonを選択しました。 選択肢としてはreactに対してはvue、pythonに対してはphpがありました。 PWAの比較は、簡単に書けるが書き方が複数あって信用の出来ないvue(主観です)とvueより学習コスト高いけど制作者とドキュメントの信頼出来るreact。 Webの比較は、phpは慣れていてすぐ作れるがテストとモックの作成に優れているpython。(フレームワーク込みで) また、数名の管理者がデータDLする為だけのWEB画面を作る時は触ったことも無いnodejsを使いました。理由は稼働させるにはNodejsのインストールだけで済むから。(npm含む) という感じなので、どこを重要視して効率的である事を望むのかは人それぞれなんです。だから質問者が自分で判断するしかないのです。 本当に何でも良いならphp推奨しちゃいますよ?php8手元で試したけど滅茶苦茶速いからバッチ処理にも使えて良いですよ。
tefusaki

2020/11/25 05:13

なるほどです!! hentaimanさんがPHP推しなのでしたらPHPを最有力で考えてみたいと思います! 本当にありがとうございました!
hentaiman

2020/11/25 07:20

とりあえず学ぶかという気持ちがあるなら是非phpを。 ただ質問者の次の質問に書かれたように作りたいものがあるならそれに適した言語はあります。しかしそれは明確に難易度の高いものもあります。 言語の複合利用は考えない事を前提として、例えばチャットなんかは適任なのは小中規模でnodejs、小規模+web系の汎用性の高さでphp、超大規模なら好き嫌い言う余地無くerlangというように。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問