始めに
こんにちは!
まんじです!
今回はPythonとJavaScriptどっちをやるべきか理論みたいなのを書きたいと思います。
結論から書いてしまうと、「何をしたいか」によるものの、、、
人によって見解はちょっと違いそうですけど、大体こんな感じの結論になるかと思います。
- フロントエンドエンジニアをしたい: JavaScript
- バックエンドエンジニアをしたい: どっちでもOK
- フルスタックエンジニアになりたい: JavaScript1個でOK
- データサイエンティストをしたい: Python
- 機械学習をしたい: Python
- プログラミング入門: Python
すっごくざっくりと書くなら、
データ系とか機械学習系とかプログラミング入門ならPython、
ウェブ系でフロントエンドメインならJavaScript、
って選び方がいいんじゃね?とぼくは思ってます。
そんなわけで今回はいろいろ比較やらもしつつ書いてみたいと思います。
ちなみに自分はTS(JSに型がついたTypeScript)推しです😀😀😀
「向いていること」で比較
Pythonが向いていること
こんな感じのやつらがPythonというプログラミング言語は向いてます。
- プログラミング入門
- バックエンドの開発
- スクレイピング
- データ分析(データサイエンティスト)
- 機械学習(AI)
データ系とかバックエンドメインでやりたい場合にはJavaScriptよりもPythonのが良いカナーって思ってます。
バックエンドはJavaScriptでも書けるんですけど、データサイエンスとか機械学習系に関してはPython1択です。
あと個人的にはプログラミング入門とスクレイピングはPythonがJavaScriptよりもやりやすかった派です。
PythonのほうがJavaScriptよりもデータ操作系の処理が文法的にも楽ですし、非同期処理(Promise)とかも入って来なかったりするので、Pythonのが入門しやすいしスクレイピングとかも楽。特に最初ゎ楽。
constとかletとかの変数スコープもPythonのがゆるいので、楽に書いていけます。入門時は。
JavaScriptが向いていること
- プログラミング入門…?(Pythonより少し難しい気がする)
- フロントエンドの開発
- バックエンドの開発
主にフロントエンド開発で使われるのでフロントエンドをメインにやっていきたい人はJavaScriptをメインにやると良いんじゃないかなって思ってます。
ただ、JavaScriptはNode.jsって言うやつ(JavaScriptの文法)でバックエンド開発もできるのでウェブ開発メインでやっていきたいならJavaScriptのほうがPythonよりもいろいろとコスパはいい気がします。
Pythonでウェブアプリケーションも作れるんですけど、どっちみちフロントエンドにはJavaScriptが登場してきます。
フロントエンドはhtmlとcssだけでもいけなくはないんですが、最近のモダンウェブアプリだとhtmlとcss自体を書くよりもReact(JavaScriptのフロントエンドサイドのフレームワークのようなもの)を書いて吐き出されるスタイルが多いです。
ぼくはフリーランスでJavaScript(TypeScript)をメインの言語としてフロントエンドをReact、バックエンドのTypeScriptでやっていますが、ウェブアプリ系ならJavaScriptだけに集中するのはコスパが良いと思ってます。
というのも、JavaScriptできればバックエンドもフロントエンドもいけるからです。
(もちろん、JavaScriptがある程度書ければPythonを書くのはわりと簡単です。)
あと、TypeScriptはJavaScriptに型がついてるもので、イマドキはJavaScriptをやる=TypeScriptをやるって感じになります。
プログラミング入門の人からすると「いろんな単語が出てきすぎて意味不明すぎるぜ!」って思うかもしれません。ごめんなさい。
一応JavaScriptとTypeScriptの比較も記事にしてるのでよければ..🙄
学習コストの違い
正直どっちも変わらない(入門の学習コストは低い)気がしますが、Pythonのほうが入門はしやすいです。
JavaScriptの場合、非同期処理とコールバック関数と関数型の処理らへんがデフォルトで出てくるのが、そこが入門時は若干つらいです。
でもそこまで大きな違いはないかなって印象です。
関数型の書き方(mapとか無名関数のlambdaみたいなやつ)はPythonにもJavaScriptにもあります。
中級者以降ぐらい(歴1~2年のエンジニアレベル?)になると、文法とかはほぼ同じように見えてきます。
本当に上級者になると違く見えるのかもしれませんけど。。。
JavaScriptよりもPythonのほうがノリで動かせるので入門には楽です。
トータルの学習コストで見ると、そこまでどっちも変わらないと思います。
年収の違い(?)
プログラミング言語別の年収が比較されてグラフで表示されることも多いんですが、あれは正直当てにならなくて、PythonとJavaScriptに関して言うと違いはほとんどないカナーって印象です。
ちなみに年収が言語ごとに結構違うカラクリとしては、その言語を使ってる会社の特性のようなものが大きいと思います。
例えば、Pythonが一般的に高い給与みたく言われているのは、単純にPythonを使うような会社の給料が高い傾向にある(Pythonはイマドキだから)ってだけでPythonの言語を選んでやったからって理由にはほぼなりません。
たまに「Pythonをやったら〜とか、Goをやったら〜とか」をネットで見ますが、どの言語をやるかでは年収は変わらなくて、どういう会社でどういうことをするかとかのが年収を上げる場合においては重要です。
もちろん、VBAとかは除きます。
単純にウェブアプリケーションのサーバーサイド開発みたいなくくりであれば、JavaでSpringしててもPythonでDjangoでもTypeScript(JavaScript)でExpressやNest.jsでも変わらないって感じです。
フリーランス案件的な側面
(3ヶ月ではなれないので、ネタだょ🥹ピエン)
フリーランスの案件に関しては、PythonはバックエンドだけなのとそもそもPythonを使ってる会社がJavaScriptに比べると案件自体が少なめです。
JavaScriptに関してはReactなどのフロントエンドフレームワーク(厳密にはライブラリ)とセットになりますけど、言語だけでみるとバックエンドもフロントエンドも案件があるので案件数が多いです。
JavaScriptをメインにやるほうがフリーランス案件は見つかりやすいと思います。
年収というか案件の単価とかもほぼ同じです。
主観: Python VS JavaScript
Python VS JavaScriptの個人的な主観も書いてみたいと思います。
プログラミング未経験からフロントエンドメインのアプリケーションレイヤーのフリーランスエンジニアをしているので、あまりにも検討はずれなことは言ってないと思います。
Pythonを選んだほうがいい人
- プログラミング入門者
- データサイエンスやる人
- 機械学習やる人
- バックエンドエンジニア(インフラ含む)をメインにやりたい人
- スクレイピングに使いたい人
JavaScriptを選んだ方がいい人
- ウェブエンジニアのフロントエンドメインにやりたい人
- アプリケーションサイドのウェブエンジニアをやろうと思ってる人
- フロントエンドとバックエンドメインなタイプ
- 個人開発で稼ぎたい人(個人開発したい人)
ワイが歩んだルート
Pythonでスクレイピングとかポートフォリオっぽいウェブアプリ作って、実務ではJavaScriptメインになってそこからずっとJavaScript(TypeScript)しか使っておらんです。
Pythonは使えるけれど、特に必要ないので全部TypeScriptで書いてます。
アダルトウェブアプリ作ってた頃にAV(アダルトビデオ)をスクレイピングしまくってた時とかにはPythonを登場させましたけど、それ以外はPythonは使わない・・・かなあ・・・。
あとはコーディング試験はPythonが便利なので、Pythonで書いてました。
普段はTypeScriptばかり使っていますが、スクレイピングとかコーディング試験とかに関してはPythonのが便利というか、書きやすさではPythonがやっぱり強いです。
まとめ
データサイエンスとか機械学習とかバックエンドメインの人はPythonでOKで、ウェブ系のフロントエンドメインにやりたいならJavaScriptでOKカナーって思います。
正直どっちでもいいというよりかは、どっちも良いと思います!
ぼくはPythonでプログラミング入門してポートフォリオ作って、結局TypeScript(JavaScriptに型がついてるやつ)で仕事とか開発系はほぼ全部やっています。
JavaScriptはフロントエンドもバックエンドも書けるので、個人的には好きです。
(プログラミング入門時はPythonが好きだったんだけど…)
ということで、オワ。