Web開発をするには、JavaScriptが必須です(ブラウザで動く唯一の言語)。そして、JavaScriptがあればサーバ側も開発できます(Node.js)。よって、WebエンジニアはJavaScriptだけやればいいわけですが、あえてJavaScript以外の言語を使う動機はありますか?
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/06/18 20:29
退会済みユーザー
2021/06/19 04:15
2021/06/19 11:08
回答8件
0
回答では無いですけど
「あえて英語以外の言語で質問した理由」を自問すると、大体質問の回答につながります。
投稿2021/06/19 11:32
退会済みユーザー
総合スコア0
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
プログラミング言語オタクです。本来このようなTeratailのそぐわない質問答えるべきではないように思いますが敢えて答えさせていただきます。
Web開発をするには、JavaScriptが必須です(ブラウザで動く唯一の言語)。そして、JavaScriptがあればサーバ側も開発できます(Node.js)。よって、WebエンジニアはJavaScriptだけやればいいわけですが
他の人も指摘している通り、この前提はおかしいです。SmalltalkでWeb開発している人間もいるし、ClojureやElmでWebフロントエンドを書いて、開発することは可能で、別に必須というわけではないです。
また、サーバー側も確かにNode.jsで開発することは可能です。しかしながらNode.jsではないサーバーの方が多く、大抵の場合、バックエンドは別の言語ということが多いです。
ただし、「JavaScript onlyで開発は可能」ということはそうです。現実の多くの開発ではそうではないのです。
そのところのギャップを考えてみてはいかがでしょうか?「なぜJavaScriptのみで開発できるようになってるのにそれをしないのだろう?」まずこのことをご自身で考えてみてはいかがでしょうか?
、あえてJavaScript以外の言語を使う動機はありますか?
私としてはその問いは、まず「楽しい」のですね。いろんなプログラミング言語があって、いろんな言語哲学や言語の設計思想、環境や、コミュニティ、ツール...そういったものに触れ続けるのは非常に刺激的なことです。
なぜ、そのようなプログラミング言語やプログラミングの環境が沢山あるのでしょうか?私の意見としてはプログラミング言語というのは、単にコンピュータの処理を記述するだけのものではなくて、人間の思考の形式、情報、概念、計算、論理... そのようななんというか目に見えないやわらかいものを表現するために発展してきたように思います。
そもそも、プログラムは「コンピュータに実行してほしいことを書くためのもの」で、プログラムする目的には「コンピュータに希望の処理をしてほしいから」という問答があるけれども、じゃあなぜ「その処理をコンピュータにやらせたいのか?」という問いがありると思います。「ゲームを作るため」「サービスを作る為」「効率化を図りたいため」。いろんな答えが想定され手、多種多様な答えが返ってくるように思います。
じゃあ、現実のプログラムを見てみると、私には「コンピュータに実行してほしいことを記述している」よりもその先の「問題自体」をプログラムで書いているように思います。たとえばゲームにおいて、コンピュータがやっていることとしては、内部でメモリを書き換えて、そのメモリをもとに、画面に何か表示しているだけです。でも「プログラム」はそのようには書いて無く、おそらく高度に発達したプログラム言語は「Destory(enemy)」などを書いているはずです。
プログラミング言語の発展はそのような、人間の課題、問題、思考、そういったものをより適切に表現できるように追及していったそういう面はあるんじゃないかと思います。だからこそ多様な言語が生まれてきたりするわけです。
また、ひとつの言語も発展していくことも忘れてはいけません。JavaScriptもまた、どんどん進化していきました。
たとえば、const
やlet
などの変数宣言これは昔は無かったものでした。そうものが入ってきて、const
でるだけ、使ってプログラミングすべきだという人も沢山出てきました。そうしたとき、JavaScriptだけしかやってきたことがない人間は、そのような変化に耐えられないように感じます。
大抵言語に新しい機能が追加されていくとき、根本に、他の言語の影響があるのです。const
などの機能が追加された背景は、そもそも他の言語をやってきた人が「JavaScriptにはこれが足りない」と言って入れてくるわけです。
だいたいの優秀なエンジニアはこのような変化についていけます。むしろ、ウキウキとしてこのような変化を歓迎します。そもそも優秀な人たちは大抵一つの言語だけではなく他の言語もある程度やっているのです。だから適切な書き方をすでに分かっているわけです。一方で、JavaScriptの畑しかいなかった人間は大変なわけです。今まで、無かった新しいことを沢山学習しないといけないのですから。
たとえば、先のconst
の話の続きとして、const
がJavaScriptに入った正確な経緯は詳しくはないですが、ただ、明らかに関数型プログラミングをしてきた人たちにとっては歓迎されたように思います。関数型プログラミングのためにconst
の機能が追加されたかどうかは知りませんが、関数型スタイルのプログラムの記述の仕方をサポートはまず間違いなくしたでしょう。
なにが言いたいかというと、一つの言語が発展するにも他の言語の影響で発展することもあるというわけで、だからこそ、ある程度言語の発展についていくためには、他の言語についても知っておくと良いことがあるというわけです。むしろ、それは非常に楽しいことです。他の言語に触って、新しい発想を得ることにもつながりますから。
また、JavaScriptだけ書いていたら、理解できないこと、分からなかったこと、書けなかっただろうなと思うこともあります。例えば「参照」の概念なんかは、私はC言語をやっていて、ポインタを理解していたからこそ、正確に把握できることがあります。もちろん、C言語をやっていなかったとしても「参照」は理解できるとは思いますが、正確に理解するには時間を要するのではないかと個人的には思います。そもそもそんなこと、悩むことが無いのかもしれないですね。でも、そうやって、他の言語をやっていて視点を持つことによって、JSを深く理解することができると思います。
あと、Lispを私はよくやっていたからこそ、クロージャーを上手く使ったり、λ(無名関数)を上手く使えたりしたのもそうで、Promise
なんか、あれ難しいらしいですが、私はすっと入ってきたのは、元もE言語を知っていたり、継続モナドについて学習していたりしたからという感覚もあります。
WebエンジニアはJavaScriptだけやればいい
もうすこし言わせてください、あと「Webエンジニアは」という点です。そもそもその人はずっとWebで生きていくつもりでしょうか?との疑問があります。ゲームやその他の例えば機械学習を使ったものを作りたいとは思わないでしょうか?
そもそも私としては、例えばフロントエンドエンジニアはブラウザについてもっと深く知るようになると、ブラウザの内部実装がどうなっているか気になるはずです。その実装を読むためにはC++やRustの知識が必要になります。そのときもまた新しく言語を学ぶ一つの動機になるでしょう。
またサーバーで例えば、node.jsを扱うようにあると、今度はシステムプログラミングの領域が気になり出します。でもそれをもっと深く知りたいとなったら、例えばカーネルについて学習したいとなったら、おそらく必ずC言語のソースは目にするはずです。
だから、そもそも「WebエンジニアJavaScriptだけやればいい」という意見は根本的になにか、そもそもその人がずっとWebエンジニアで成長していかない、範囲を広げていかないということは本来ありえないように思います。Webエンジニアと名乗る、「エンジニア」と名乗る以上、その技術において、深い見識をもちプロフェッショナルとして、エキスパートとして、最新技術を学び、成長していくそういうことが抜け落ちた意見なんじゃないかと個人的には思います。
投稿2021/06/18 18:28
総合スコア320
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
Web開発をするには、JavaScriptが必須です(ブラウザで動く唯一の言語)。
これはまあさほど間違ってはいないでしょう。
別の言語で開発してJavaScriptに自動変換という手もあるものの、その場合でもJavaScriptを全く知らずに書けるとはあまり思いません。
JavaScriptがあればサーバ側も開発できます(Node.js)。
否定はしませんが、サーバ側の言語は多数あるわけで、それぞれ向き不向きがあることは想像に難くありません。
WebエンジニアはJavaScriptだけやればいい
「だけやればいい」は明らかに誤っています。
ネイティブで動くあらゆるプログラムは機械語だけで作れるにも関わらず、機械語だけやればいいと言う人はいないでしょう。
あえてJavaScript以外の言語を使う動機はありますか?
むしろ逆に、あえてJapaScriptに統一する動機が薄いと言えるでしょう。
一般にWebに限らず開発では、様々な言語の中から目的に応じて利点と欠点を比較し適切な言語を選ぶものです。
その中で、現状を観察する限り、「使う言語の数が少ない」というのはさほど大きな利点ではないと見えます。
投稿2021/06/19 03:42
総合スコア3047
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/06/19 07:12
2021/06/19 13:30
2021/06/20 11:18
2021/06/21 16:49
0
Web開発をするには、JavaScriptが必須です(ブラウザで動く唯一の言語)。
この前提がまず違います。用途によってはJavaやGolangなど、JavaScriptを使わなくてもWeb開発はできます。
その上で、どの言語を使うかは様々な要因が考慮されます。社内のリソースや言語の将来性、求人のしやすさなどです。
例えばデザインツールは良い例で、XDやFigmaなど様々なツールがあり、同じことができるのならどれか一つで良いじゃんという考え方もできますが、操作感や慣れなどにより、どのツールでデザインするかは人によって様々です。
そうした中で、例えば社内にXDは使えないけどFigmaは使えるという人が多ければ、Figmaでデザインしようという話の流れになることもあります。
結局プログラミング言語もたかだかツールであり、どのツールを使うかは人や会社の方針によります。
使いやすいか、使う人が多いか(求人しやすいか)、将来性はあるか、etc
投稿2021/06/18 14:09
総合スコア126
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
ほげ言語のパラドックスに陥っていませんか。
投稿2021/06/18 13:56
総合スコア2493
0
WEBエンジニアと一口に言ってもフロントエンドエンジニア、バックエンドエンジニア、インフラエンジニアなど職種があり、大半のプロジェクトではそれらの職種がそれぞれ分担で開発をしております。なのでバックエンドエンジニアを専門としている方の中にはjsを触ったことない方もいます。なのでそれだけでもjsのみで開発すれば良いと言う考えは無理があると思います。
また言語毎に様々な特徴があり向き不向きもあります。なのでプロジェクトが何を求めるかによって言語の採用基準が変わります。
例えばバッグエンドの開発で現在主流と言える言語は、PHPやRuby辺りでしょう。(多分)それならばRubyが扱えるエンジニアが多いのだから募集をかけやすい様にRubyを採用しようと言う判断もあるかもしれません。
また機械学習を使った機能を作ろうとなれば、現在機械学習のライブラリーが充実しているのはpythonだから(多分)pythonを採用しようと言う判断もあると思います。
処理速度が速い方が良いということになればgoやjavaを採用するでしょう。
フロントエンドでjs触ったから新しい言語勉強するのだりーからnode.js使うかなって判断もあるでしょう。
投稿2021/06/19 10:49
編集2021/06/19 11:02退会済みユーザー
総合スコア0
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2021/06/19 11:03
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。