Infoma!!
情報系大学生が最強のオサレプログラマを目指す
プログラミング

【初心者向け】プログラミング言語とフレームワークを独断と偏見で解説【後編】

【初心者向け】プログラミング言語とフレームワークを独断と偏見で解説【後編】

こんにちは、mochi(@osaremochi)です!

今回も2018年現在世の中に普及しているプログラミング言語やフレームワークをまとめてみたいと思います。

この記事は前回、前々回の記事の続きになります!良ければこちらもご覧ください(´ー`)

【初心者向け】プログラミング言語とフレームワークを独断と偏見で解説【前編】
【初心者向け】プログラミング言語とフレームワークを独断と偏見で解説【前編】こんにちは、mochi(@osaremochi)です! 日頃twitterやQiitaを見ていると分からない言語やフレームワークが...
【初心者向け】プログラミング言語とフレームワークを独断と偏見で解説【中編】
【初心者向け】プログラミング言語とフレームワークを独断と偏見で解説【中編】こんにちは、mochi(@osaremochi)です! 今回も2018年現在世の中に普及しているプログラミング言語やフレームワーク...

それではどうぞ!!

 

Julia(ジュリア)

Juliaのイメージ画像

最近の数値計算界隈をザワザワさせているのはこいつ。

今まではPythonが担っていた高度な計算を爆速でこなすことができます。

その速度は動的型付け言語ながらC言語並みになるとかならないとか。

コンパイルしながら実行するインタプリンタ型言語と違い、実行する直前にコンパイルするという方式をとっています(‘ω’)

また、Juliaの中から手軽にPythonやCを呼べるので、ライブラリを使いたいなと思った時も安心です。

今後機械学習系はPython、数値計算系はJuliaというように住み分けがされていくかもしれませんね(*’ω’*)

 

LISP(リスプ)

Lispのイメージ画像

式指向言語とはいったい…??

1958年発表、前置記法と大量のカッコが特徴です。

最初期のプログラミング言語として、現在のプログラミングパラダイムに用いられる様々な概念を生み出しました。

LISPは「Lots of irritating superfluous parentheses(大量のイラつくクソみたいなカッコ)」に由来します。というのはよく言われるジョークですね。

人工知能開発に古くから使われていて、関数型的な考え方を取り入れていたおかげか現在でも非常に使われている言語です。

カッコを多用する言語方式は、一見するとみにくいかもしれません。

しかしコーディング上のメリットも多いので熱狂的なファンが多い言語でもあります(´ー`)

機械学習関係で幅広い教養を身に着けるならば、LISPの考え方や実装を勉強しておくのは有用そうですね。(*’ω’*)

 

Perl(パール)

Perlのイメージ画像

CGI(Common Gateway Interface)を作成するためによく使われる言語です。

インターネット黎明期に、Cよりは簡単だけどOSのシェル機能では物足りない…といった場合に使われてきた言語です。

非常に息の長いベテラン言語で、そのためたくさんのモジュールやライブラリを備えます。

ただ、現在ではPHPのほうが主流になっているので、優先度は少し低めかもしれません(´ー`)

ニッチなニーズを極めてみたい方はぜひ…(´◉◞౪◟◉)

 

PHP(ピーエイチピー)

PHPのイメージ画像

フィリピンペソ。嘘です。PHPは主に動的にWebページを作成するために使われる言語です。サーバー側で動いてページを作り、作成したページをユーザーに飛ばします。

自分のブログに、ブログ内検索やパスワードの受け取りなどを設定する場合には必要になってきます。あのWordpressもPHPで作られています(´ー`)

PHPはHTMLと混ぜて書くことができるため、直接動きを同一ファイル内で指定出来て便利です。スパゲッティコード?知らん奴だな。

PHPを書けるようになるとWordPressのテーマを自分で編集したり、テーマを自作できるようになるので、めちゃくちゃ役立ちます(´ー`)

使える場面が非常に多いのでぜひとも勉強しましょう!!

 

Cake PHP(ケイク ピーエイチピー)

誰でも簡単に、素早く開発ができることを目的として作られたWebアプリケーションフレームワークです。

Rails的な高速開発とPHPの機動性を兼ね備えている、なんて言われます。かわいい雰囲気がしますね。

いまではLaravelにPHPフレームワークの人気トップを奪われてしまったようですが、三洋できる資料の多さや、そのフレームワークとしての親しみやすさからまだまだ人気は高いです。

自分の好きなモノを勉強しましょう(*’ω’*)

 

Laravel(ララベル)

Laravelのイメージ画像

1番人気のPHPフレームワークですね(´ー`)

PHPを簡単に記述することができ、Webアプリケーションもサクッと創ることができます。PHPと比べると、あまりの快適さに昇天する方もいるみたいで…

楽天などでもサーバサイドの言語として研修があったり、出番が多そう(´◉◞౪◟◉)

Laravelの名前は『ナルニア国物語』に登場するナルニア国の王都であるケア・パラベルにちなんで名付けられたそうです。

おなじくPHPフレームワークの Cake PHP と宗教戦争を起こしたりしているようで…♰♰

 

Python(パイソン)

Pythonのイメージ画像

ニシキヘビ高級プログラミング言語の1つです。オブジェクト指向を備え、インタプリンタ型で、動的型付けを行うといった特徴があります

最近盛り上がりを見せているDeep Learning(深層学習)などにもpythonが応用されています。人工知能について勉強したり、統計学を習得してデータサイエンティストを目指すならば、避けて通れない言語ですね。

複雑な科学的・数学的計算が得意で、研究用・ソフトウェア用問わずライブラリが非常に充実しているのが特徴です。大規模なソフトウェアやゲームを作ることも可能です。(有名なゲームだとバトルフィールド2やWorld of Tanks)

欠点としては、高級言語かつインタプリンタ型ゆえの実行の遅さです。競技プログラミングや速さが重要になるソフトウェアにはあまり推奨できません。(でもやり方次第でCくらいには早くできます)

全世界でのpythonの使用率は第2位、さらに平均年収ランキングでも約600万円と第2位です。正直なんでもできるので最強です(推し)

ちなみにですが、本ブログでもpythonを使用してtwitter botを作る過程を紹介しておりますので、ぜひご覧ください(´ー`)

pythonでtwitter botを作ろう!!#0
【誰でも簡単】pythonでtwitter bot を作ろう!!【#0】こんにちは、mochi(@osaremochi)です! 今回はPythonでTwitter botを作っていきたいと思います。 ...

 

Cython(サイソン)

まさかPythonがいくら遅いからといってそのコードにC++を混ぜるなんてそんなバカな…という感じのプログラミング言語。

しかしその実力は本物で、Pythonが遅い原因であるループ処理などの速度を劇的に向上できます。(早くて100倍くらいになったり)

また、基本的にPythonの記法を流用できる、というよりはほぼ完璧といっていいほどの互換性を備えていますね(*’ω’*)

機械学習などの大規模な演算や複雑な数値計算が必要になるときは、Pythonで書いたコードを高速化する用途でも用いられます。

♰♰♰悪魔合体♰♰♰

 

Django(ジャンゴ)

Djangoのイメージ画像

Dを発音しないのが解せない…PythonのWebフレームワークの中で最も人気のあるもののうちの一つです。かなり学習コストが低く作られているので、pythonを勉強して何か作ってみたい!という方にはかなりオススメなんじゃないでしょうか。

ただ、正直RubyとRuby on railsのほうが簡単なのでは…??

そこは多言語を学習するコストとトレードオフですね。

HTML, CSS, JavaScriptの知識は必要になるので、その点もご注意ください。(これはrailsも一緒)

 

R(アール)

Rのイメージ画像

統計解析向けのプログラミング言語です。

1996年リリースなので多少古い仕様が残っていますが、統計解析での有用性は目を見張るものがあります(´ー`)

ちなみに、R言語とその実行環境全体をさしてRと呼びます。ヤヤコシイですね。

最近では機械学習系にも応用されていますが、プログラミング経験があるならPythonのほうがなじみがあるかもしれませんね。

RはPythonのライブラリであるPandasにも生かせるので、勉強したい人は調べてみてください(´◉◞౪◟◉)

 

Rust(ラスト)

Rustのイメージ画像

手続き型かつ関数型かつオブジェクト指向型の言語です。

C++に代わる、低レイヤーまで制御可能なシステムプログラミング言語を目指してMozillaが開発中です。競プロ界隈で話題(*’ω’*)

「実用性」「安全性」「速度」「並行性」の4つを柱としています。

Rustは大体何でもできます。OSの開発やサーバーサイドプログラミング、Webアプリケーションや機械学習まで、あらゆることを実現できます。

関数型言語ゆえに非同期処理も可能で、かつメモリ管理が容易にできて高速に動作するアプリケーションを作成できます。

さらに特徴的な概念として、変数に「所有権」と「寿命」が存在しています。

ただ、それゆえに学習コストが高めであり、コーディング難易度はスクリプト言語のほうが優しいですね。

ですが、そのデメリットを打ち消してしまえるくらいの強みがRustにあることが、Stack Overflow 2017年の「最も愛されているプログラミング言語ランキング」1位獲得という点に表れています。

今後ニーズが高まってくる言語のひとつといえそうですね(*’ω’*)

 

Ruby(ルビー)

Rubyのイメージ画像

日本人のまつもとゆきひろ氏が趣味で開発したオブジェクト指向のスクリプト言語です。

言語的には関数型と命令型の融合といった感じ。インタプリンタ型でコーディングも軽快にできます。

コードの可読性が非常に高いのが特徴で、言語としての指針もコーディングの楽しさを重視しています。

もし気になるのであれば製作者さんのTwitterも観てるといいかもしれません(*’ω’*)

現在のWebアプリケーション界隈ではRubyといえばRuby on railsといった感じですが、本来のRubyはそれにとどまらずもっと多くのことをできます。

ただ、現状求人やプロジェクトとしてはrailsを使ったものが多い感じですね(‘ω’)

 

Ruby on rails(ルビー オン レールズ)

Rubyonrailsのイメージ画像

日本語にするとダサい…

非エンジニアでさえ知るRubyを使ったWebアプリケーションフレームワークです。

アプリケーションというのは本来フレームワークが無くても記述可能なのですが、フレームワークを使うことのメリットはたくさんあります。

例えば

  • コードの記述量減少による生産性の向上
  • 可読性の上昇によるメンテナンス性の向上
  • 統一されたコーディングルールによる保守性の向上

などなどですね(*’ω’*)

開発期間を短縮することで、スピード感あるプロダクト制作ができるのは非常に強みになります。

しかもRubyという言語のわかりやすさから、学習コストも低めでありプログラミングの負担が少なくなります。

もしあなたがWebで何かを作りたい!と考えているならば、Ruby on railsは素晴らしい選択になると思います(´ー`)

 

Swift(スウィフト)

Swiftのイメージ画像

テイラー!

ネイティブアプリの開発に使われている言語で、対象OSはMacOS や iOSですね(´ー`)

上述のObjective-Cに代わって専用言語になった形です(´◉◞౪◟◉)

2014年発表なのでめちゃくちゃ若い言語です。発表に際してappleは

  • モダン
  • 安全
  • 高速
  • インタラクティブ

の4つを理念として挙げました。

スクリプト言語としては非常に軽快に動作し、かつ簡単に書けてしかもアプリ開発もできる…最強か?(´ー`)

唯一の弱点はMacOS上でしか動作しない点ですね…ん?大問題では??

ぶっちゃけMac系のPCがないと開発できません。初期投資ェ…(‘Д’)

ちなみに同じ名前の並列スクリプト言語があります。辞めてくれ…

なんやかんや言いましたが、Apple製品以外に使えないという点を除けば(やっぱ大問題では)非常に使いやすい言語です。

iPhoneアプリを開発したいなら迷うことなく必須の言語ですね(*’ω’*)

 

プログラミング言語まとめ

さて!前中後編と3回にわたってプログラミング言語を紹介してきました!

もしこの記事が

「次にどんな言語を勉強しようかな」

「どんな言語がいま流行っていて、何を使えばいいのかな」

という人の助けになれば幸いです(´ー`)

上記の言語の中でもPythonを使って実際にプロダクトを作ってみたいという方はこちら

よかったら何度か復習してみて知見を深めてくださいね(*’ω’*)

前編はこちらから!

【初心者向け】プログラミング言語とフレームワークを独断と偏見で解説【前編】
【初心者向け】プログラミング言語とフレームワークを独断と偏見で解説【前編】こんにちは、mochi(@osaremochi)です! 日頃twitterやQiitaを見ていると分からない言語やフレームワークが...

中編はこちらから!

【初心者向け】プログラミング言語とフレームワークを独断と偏見で解説【中編】
【初心者向け】プログラミング言語とフレームワークを独断と偏見で解説【中編】こんにちは、mochi(@osaremochi)です! 今回も2018年現在世の中に普及しているプログラミング言語やフレームワーク...
Blog Hacks

現在”ガチで稼ぎたい人しか受けてはいけないブログ講座 Blog Hacks”を受講中です!ブログの作り方や戦略だけでなく、Webマーケティングライティング心理学まで幅広い知識と、細かな記事添削、アドバイスが受けられます(´ー`)

私がたったの1記事で約5万円の収益をあげためちゃくちゃ凄い講座です!!興味のある方はレビュー記事を書いてますので、こちらの体験記事か、公式ページをどうぞ!!

【初心者が20万越え!?】大学生でもBlog Hacksで稼げる!【必見】

Blog Hacks公式ページ