Slide 1

Slide 1 text

第二プログラミング言語のススメ コドモンわいわい LT大会#2 株式会社 RevComm サーバーサイドエンジニア / 小島孝弘

Slide 2

Slide 2 text

簡単な自己紹介 ● 名前 小島孝弘 ● 1993 年生まれ、29 歳、愛知県出身、エンジニア歴 6 年くらい ● よく書くプログラミング言語 : Python, TypeScript(React), たまに Go ● 株式会社 RevComm というところで MiiTel for Zoom を作っている ● Twitter: tak428k

Slide 3

Slide 3 text

第二プログラミング言語のススメ

Slide 4

Slide 4 text

今日伝えたいこと 複数のプログラミング言語を使ってみるのは大いに学びがある ※ なにかひとつの言語で何かしらのプログラミングをしたことがある方向け

Slide 5

Slide 5 text

複数のプログラミング言語を学ぶメリット ● パラダイム・言語仕様や構文・ランタイムの違いからの学び ● 文化の違いからの学び

Slide 6

Slide 6 text

複数のプログラミング言語を学ぶメリット ● パラダイム・言語仕様や構文・ランタイムの違いからの学び ● 文化の違いからの学び

Slide 7

Slide 7 text

オブジェクト指向 関数型 手続き型 プログラミング言語の分類(独断と偏見)

Slide 8

Slide 8 text

引き出しを増やす ● 違うパラダイムの言語では同じことでも表現方法が 全然違う ○ e.g. 繰り返し処理をどう書くのか ● ひとつのことを実現するのに多数の表現を学ぶ ● -> 自分の開発の幅、コードでの表現の幅が増える

Slide 9

Slide 9 text

そのほかの切り口 ● メモリ管理(手動 / GC / そのほか) ● 実行時の特徴 ● 型(動的型付け / 静的型付け) ● シンタックス(書いていて綺麗だなと思えるか) ● -> いつもの言語との違いは何かを探ると学びのきっかけになるかも?

Slide 10

Slide 10 text

複数のプログラミング言語を学ぶメリット ● パラダイム・言語仕様や構文・ランタイムの違いからの学び ● 文化の違いからの学び

Slide 11

Slide 11 text

言語が違うと文化も違う ● コーディングルール ○ C/C++ や JavaScript - 言語統一のルールなし、各社で制定( Google とか Microsoft とか) ○ Go: gofmt というツールがオフィシャルに提供 ● ライブラリ ○ JavaScript / Ruby: 多数の package に依存 ○ Go Python: むやみに依存を増やさない(標準ライブラリと有名 FW で済ませる) ● パッケージマネージャーなど開発ツール ○ Rust: Cargo というツールが超有能 ■ 最近のパッケージマネージャーはだいたい Cargo をパクって参考にしている ○ npm / composer / gem / pip それぞれ違いがいろいろ

Slide 12

Slide 12 text

まとめ ● ひとつの言語だけじゃなく複数の言語をたまには使ってみましょう ● 自分がよく知っている言語と違う言語を学ぶと結構面白い ○ 最近の流行りのプログラミングパラダイムを知りたければ Rust とかおすすめ ○ 昔のプログラマの苦労が知りたい人は C とかおすすめ ● いつもの開発文化とは違うものを体験すると、自分のプロジェクトに輸入できたりするかも

Slide 13

Slide 13 text

Thank you!