どのプログラミング言語を使えばいいの?
過去の記事で「なぜプログラミング言語はたくさんあるの?」に続くお話をしましょう。
「なぜプログラミング言語はたくさんあるの?」で、プログラミング言語がたくさんある理由は理解できたと思います。
プログラミング言語がたくさんある理由がわからない方は、過去の記事をどうぞ。
では、今回はそのたくさんあるプログラミング言語の中から「どのプログラミング言語を使えばいいの?」という疑問について考えていきましょう。
どのプログラミング言語を使えばいいの?
前回の「プログラミングで何ができるか」は理解できましたか?
では、今回のタイトルでもある「どのプログラミング言語を使えばいいの?」についてお話していきましょう。
その答えは、「あなたがプログラミングで何をしたいか」で決まります。
ここでやっと、以前に説明した「プログラミングで何がしたいですか?」の質問に答えられそうですね。
- 「スマホのアプリを作りたい」
- 「ゲームのアプリを作りたい」
そのあなたが作りたいものによって、使うプログラミング言語が変わってくるのです。
目的別プログラミング言語のメリット・デメリット
あなたが作りたい目的別に、プログラミング言語についてご紹介していきます。
あくまでも代表的なプログラミング言語なので、言語の選択肢はこの限りではありません。
webサイトを作りたいあなたは
webサイトを作りたいあなたは、「Javascript」を使ってみましょう。
Javascriptはwebサイトで広告が出てきたり、ボタンをクリックして画面が表示されるといった「動きのある」コンテンツを実現させるプログラミング言語です。
全世界のwebサイトで使用されており、このJavascript無しには現在の快適なインターネットライフは成り立たないほどです。
Javascriptのメリット
開発者が多い
Javascriptはコンピュータやプログラミングのコミュニティサイト「Stack Overflow」にてサービス開始の2008年より堂々の1位にランキングするほどの人気です。
2019年にAI開発でよく使われる「Python」に1位の座を譲りましたが、それでもなお高い人気を誇っています。
そのため、Javascriptに関しての情報はとても多いです。
困ったときに、ネットで検索すれば多くの問題が解決できます。
特別なツールや環境を必要としない
Javascriptは、特別な開発環境を用意しなくてもプログラミングを行い、開発をすることができます。
特別な開発環境というのは、総合開発ツールが無くてもプログラミングができるということです。
「開発環境」がわからない方は「プログラミングにおける開発環境とは?」を参考にしてください!
ChromeやFirefoxなどの対応ブラウザとテキストエディタがあれば、最低限のプログラミングが可能です。
オススメのブラウザはGoogle Chromeに標準で搭載されている「Google Chromeデベロッパーツール」です。
Google Chromeデベロッパーツールでは、自分が作ったプログラムを実際にweb上で表示させながら、動作確認を行うことができます。
プログラムが完成して、実際に運用開始したあとに発生しがちなエラーを、事前に確認できます。
サーバサイドでもJavascriptを動作できる言語
フロントエンドとサーバサイドの両方で、プログラムを動作させることができる言語は、javascriptのみです。
通常、フロントエンドとサーバサイドは、それぞれ違う言語を使用します。
しかしJavascriptは、サーバサイドのJavascriptであるNode.jsというツールを使えば、フロントエンドとサーバサイドの両方を扱うことができます。
フロントエンドとサーバサイドの両方を扱えると、様々なwebアプリを作ることができます。
フロントエンドとサーバサイドがわからない方は別記事を参考にしてください。
Javascriptのデメリット
動的型付けがバグの元になりやすい
Javascript以外の言語は、変数を定義したときに、整数は整数、文字列は文字列として処理されます。
Javascriptは、プログラミングをするときには、整数や文字列などの「型」という定義がありません。
なので、整数値を入れた変数に途中から文字列を入れることもできてしまうのです。
例をあげると
「10+りんご」という計算。
10は整数、りんごは文字列なので人間の頭で考えれば、計算できません。
しかし、動的型付けでは、この「10+りんご」という計算を許容してしまうのです。
「10+りんご」の答えが「10りんご」になるのか、はたまた全く違う答えが返ってくるのかは、実行してみないとわかりません。
この「実行してみないとどの型になるかわからない」という悪い点も持っています。
この型を宣言せずに、プログラム実行時に変数や関数が決まることを「動的型付け」と言います。
動的型付けは、もちろんデメリットだけではなく、型宣言をいちいちしなくて済む分、記述する量が圧倒的に減ります。
動的型付けのデメリットを解消したTypeScript
Javascriptの動的型付けを、解消したいとの思いから生まれた言語が「TypeScript」です。
TypeScriptはマイクロソフト社によって開発されたオープンソースのプログラミング言語で、型の定義ができるJavascriptです。
型の定義ができることを、先ほどの動的型付けの反対で「静的型付け」と言います。
「10+りんご」という計算を、あらかじめ型を定義することで、「null(=計算できないです)」として返してくれます。
Typescriptで書いた文は、コンパイル時にJavascriptに変換してくれます。
実行する前に、おかしいところを教えてくれるので、バグを未然に防ぐことができます。
ゲームを作りたいあなたは
個人でも初心者でも、本格的なゲーム開発ができるツールのUnityがあります。
そのUnityで多く使われる言語がC#です。
C#はマイクロソフト社が開発したプログラミング言語です。
同じくゲーム開発ツールとして「UE4(=UnrealEngine)」があります。
こちらでもC#が使用できますが、どちらかと言うとC++やUnrealEngine向けの比較的簡単な言語(=スクリプト言語)のUnrealScriptという言語を使います。
初心者のなんとなーくの見解ですが、UE4に比べてUnityの方が初心者向けに感じます。
C#のメリット
初心者向け
開発環境は「Visual Studio」というツールをダウンロードするだけで始めることができます。
もちろん無料です。
C#はコードを書くときの文法が特殊ではないので、分かりやすいです。
動作する対象が広い
C#はWindowsやMac、iphoneやAndroidなど、動かすことのできる範囲が広いです。
様々なアプリを開発することができ、特にゲーム開発においてはC#の需要が高いです。
他の言語に移りやすい
C#で開発できる範囲が広いと書きました。
C#の文法は、初心者向け言語からプロ向け言語まで、広い領域を対象としています。
様々な領域をカバーしているので、C#を一度マスターしてしまえば、他の言語に移る際に、入りやすいというメリットがあります。
C#のデメリット
記述が長い
他の言語であれば省略できる文法が多くありますが、C#は少ないです。
このため記述量が多くなってしまいます。
しかしこれは初心者にとっては、メリットでもあると言えます。
C#でプログラミングの基礎となる文法をしっかりと身につけておくことは、その後のプログラミング生活で必ず重要になります。
Windows以外の開発には不向き
C#はWindowsに特化したプログラミング言語です。
今は「Mono」を使用すれば、OS X(MacのOS)やLinuxでも開発できます。
しかし、現在でもWindows以外の開発にはあまり向いていません。
アプリを作りたいあなたは
androidのアプリを作りたいなら「kotlin」をオススメします。
今まではandroidのアプリを作るには、Javaで作るのが一般的でしたが、現在はkotlinが多く使われています。
大量のコードを書かなければいけないなどのJavaの良くない点を変換して、kotlinになりました。
kotlinはロシアにあるジェットブレインズ社の研究所で生まれました。
ちなみにkotlinというかわいらしい名前は、開発地であるサンクトペテルブルクのコトリン島にちなんで名付けられました。
kotlinはフィンランド語で「やかん」を表し、言語のロゴも「やかん」らしいのですが…全然やかんには見えません(゜_゜)
kotlinのメリット
null安全
Javaと比較して一番の特徴と言えるのが、null安全でしょう。
プログラミングで値に何も入っていないことをが明らかになるのは、実行したあとです。
実行して値がnullの場合、適切に実行できなかったり、ひどいときはアプリケーションが落ちてしまいます。
kotlinはnull安全というメカニズムがあるので、「ここはnullにしたくない」とプログラマーが考えた通りに設定できます。
またコンパイラがコンパイル前に「ここにはnullが入りません」ということを、実行前に教えてくれます。
Javaに比べて書くコードの量が少ない
Javaと比較するとスマートにコードを書くことができます。
スマートでシンプルな記述ができることは、作業時間を圧倒的に少なくしてくれます。
また見やすく、レビューがしやすいです。
kotlinのデメリット
比較的歴史が浅い言語なので、情報量が少ない傾向にあります。
また日本語での情報を知りたいのであれば、なおさらです。
しかしandroidでの開発が増えている昨今では、そのメリットからkotlin開発者も増えています。
プログラミング言語難易度の判断基準
プログラミング言語が、初心者向けかどうかの判断は何を基準にすればよいのでしょうか?
その判断基準は
- 覚えることが多い
- 環境構築が難しい
- 他の言語と比べて明らかに違う言語
- 境構築が難しい
この3つにあると思います。
まとめ
プログラミング初心者の方には、とても難しい内容だったと思います。
かく言う私も超初心者なので、非常に難しかったです。
しかしたくさんあるプログラミング言語を1つ1つ調べていくと、それぞれ特徴を感じます。
まるで、人々の性格が違うようで、擬人化して想像すると中々面白いです。
「プログラミング初心者が感じる疑問シリーズ」はまだまだ続きます!
いつの日か「初心者」が抜け落ち、「プログラマーが」になるまで頑張ります!
ディスカッション
コメント一覧
まだ、コメントがありません