プログラマー VTuber 衣亥栖ティオのちょっとした話

Youtubeに投稿したプログラミング学習動画の補足説明をするためのブログです。

Web系エンジニアにおすすめのプログラミング言語 2021 #3 の補足説明

こんにちは、プログラマーVTuberの衣亥栖ティオです。
今回は以下の動画の補足説明をします。


衣亥栖ティオが実際に使ったことのある言語について

私は以下の言語を使ったことがあります。

それぞれ使った時期と期間が異なるので、それぞれどの程度使えるかのレベル感は違います。 一番得意な言語はGoです。

Java

Javaは日本国内でもPHPと共にシェア率の高い言語です。 日本国内でもCyber Agent, DMMで利用されていたと思います。 ただ、私の個人的な感覚で申し訳ないですが、Web系企業だとPHPに比べるとそれほど利用されていない印象があったので、おすすめからは除外しています。

Javaは以前Androidアプリの開発でも利用されていましたが、今はKotlinが推奨言語となっています。 同じようにサーバサイドでもJavaよりもKotlinやScalaなどの後発のJVM言語が今後は主流となっていくのではないかと思っています。

https://www.java.com/ja/

Perl

Perlは以前はWeb系企業が利用する言語として採用されていた気がします。 DeNAのモバゲー, mixi のような一昔にブームになったサービスはPerlで作られています。 しかし、現在はその他の言語を利用することが多くなっているので、今から勉強する必要もあまりないかなと思っています。

The Perl Programming Language - www.perl.org

PHP

PHPは日本国内でのシェア率が高いプログラミング言語です。 DMM, グリー, メルカリ で利用されていますし、なんといっても有名はフェイスブックPHPで作られています。 PHPは昔から使われている言語にも関わらず、現在でも開発が続けられているので、将来性もそれなりに期待できると思います。

PHP: Hypertext Preprocessor

フレームワークとしては Laravel が有名です。

Laravel - The PHP Framework For Web Artisans

JavaScript

サーバサイドで動作するJavaScriptはNodeという仕組みを利用します。

Node.js とは | Node.js

Nodeは当時問題となっていた "C10K問題" を解決する仕組みとして注目を集めました。

C10K問題 - Wikipedia

MongoDBと呼ばれるドキュメント型NoSQLと組み合わせることによってハイパフォーマンスなWebアプリケーションを作ることができます。 これはNodeが注目された当時のデファクトスタンダードなテクノロジースタックだったのではないでしょうか。

Web Frontend の Single Page Application(SPA) が利用する Server Side Rendering(SSR) や Backend for Frontend にも Node が利用されるので、 フロントエンドからサーバサイドまで幅広く活躍する言語です。

Ruby

Rubyは日本で生まれたプログラミング言語です。

オブジェクト指向スクリプト言語 Ruby

開発者は "まっつ" こと "松本 行弘" さんです。

Yukihiro Matsumoto (@yukihiro_matz) | Twitter

RubyRuby on Rails というフレームワークが有名ですが、そのフレームワークの中で利用されている Active Record というORMがとても便利です。 Active Record はクラスのフィールドにアクセスすると、そのフィールドに対応する値をDBから取得できるという特徴があります。 簡単なデータ取得であればSQLを書くことなく実装が完結するため、Rubyメタプログラミングによる自由度の高さが伺えます。

Ruby on Rails | A web-application framework that includes everything needed to create database-backed web applications according to the Model-View-Controller (MVC) pattern.

Active Record の基礎 - Railsガイド

日本で有名なRubyの会社といえば、クックパッドですが、開発効率の高さからスタートアップで採用されるケースも多く、 メガベンチャーからスタートアップまで幅広く利用されている言語です。 PHP, Perl といった言語の次の世代として Ruby による開発が主流になった印象があります。

Python

私は Python を個人て軽く触ったことがある程度なので、詳しくないというのが前提としてありますが、 Python は日本国内でWebアプリケーション開発で利用されているケースはあまり多くないとい印象があります。 理由は分かりませんが、日本だと Perl, PHP が強いので、それに押された形になっているのかもしれません。 海外ではとても人気のある言語です。

Welcome to Python.org

一方で機械学習の分野では Python が一番良く利用されているので、 私としてはサーバサイドで利用される言語というよりは機械学習の言語という印象が強いです。

GCPのCloud SDKPythonで作られていますね。

Cloud SDK のインストール  |  Cloud SDK のドキュメント  |  Google Cloud

Go

Go言語はGoogleが作った言語であり、私が普段仕事で使っている言語でもあります。

The Go Programming Language

GoogleではSREがGoを利用しているという記事がありました。

Development Operations & Site Reliability Engineering - go.dev

Cloud Native なOSSでも採用されている事が多く、今後Web系の開発において主要な言語になっていくと思います。


ここまでは私がそれなりに知っている言語でしたが、以下はそうでもありません。 なので、サラッと説明して終わりにしようと思います。 どれもシェア率が低い印象があるのですが、比較的後発の言語なので、将来性は高いと思っています。

Scala

ScalaJava と同じく JVM で動作する言語です。 あまり採用例は多くないと思うのですが、有名なところだとチャットワークで利用されています。 Akka によるアクターモデルはなんかかっこいいですね。

Kotlin

Kotlin も Scala と同じく JVM で動作する言語です。 Kotlin, ScalaJava の次世代言語として採用される事が多いので、今まで Java で開発していた部分を Kotlin, Scala で開発するようになるのではないかと思っています。

Elixer

Elixer は・・・どーゆー言語なのでしょうね・・・。 mix(XFLAG)で利用されていることは知っているのですが、採用例が少なく、私も触ったことがないので全然分かりません。

Rust

Discordが動画のエンコードパイプラインをGoからRustに書き換えたというのを知っているくらいです。

Why Discord is switching from Go to Rust | by Jesse Howarth | Discord Blog

GoはGCによってメモリが管理されているので、Stop the World によって処理が止まってしまいますが、Rust はGCでメモリを管理していないので、それがありません。 シビアにメモリ管理してパフォーマンスを出したいユースケースで利用されることが多いのかもしれません。