コドモンわいわいLT大会#2 で発表したプログラミング学習のススメです。 株式会社 RevComm サーバーサイドエンジニア / 小島孝弘
第二プログラミング言語のススメコドモンわいわい LT大会#2株式会社 RevComm サーバーサイドエンジニア / 小島孝弘
View Slide
簡単な自己紹介● 名前 小島孝弘● 1993 年生まれ、29 歳、愛知県出身、エンジニア歴 6 年くらい● よく書くプログラミング言語: Python, TypeScript(React), たまに Go● 株式会社 RevComm というところで MiiTel for Zoom を作っている● Twitter: tak428k
第二プログラミング言語のススメ
今日伝えたいこと複数のプログラミング言語を使ってみるのは大いに学びがある※ なにかひとつの言語で何かしらのプログラミングをしたことがある方向け
複数のプログラミング言語を学ぶメリット● パラダイム・言語仕様や構文・ランタイムの違いからの学び● 文化の違いからの学び
オブジェクト指向 関数型手続き型プログラミング言語の分類(独断と偏見)
引き出しを増やす● 違うパラダイムの言語では同じことでも表現方法が全然違う○ e.g. 繰り返し処理をどう書くのか● ひとつのことを実現するのに多数の表現を学ぶ● -> 自分の開発の幅、コードでの表現の幅が増える
そのほかの切り口● メモリ管理(手動 / GC / そのほか)● 実行時の特徴● 型(動的型付け / 静的型付け)● シンタックス(書いていて綺麗だなと思えるか)● -> いつもの言語との違いは何かを探ると学びのきっかけになるかも?
言語が違うと文化も違う● コーディングルール○ C/C++ や JavaScript - 言語統一のルールなし、各社で制定( Google とか Microsoft とか)○ Go: gofmt というツールがオフィシャルに提供● ライブラリ○ JavaScript / Ruby: 多数の package に依存○ Go Python: むやみに依存を増やさない(標準ライブラリと有名 FW で済ませる)● パッケージマネージャーなど開発ツール○ Rust: Cargo というツールが超有能■ 最近のパッケージマネージャーはだいたい Cargo をパクって参考にしている○ npm / composer / gem / pip それぞれ違いがいろいろ
まとめ● ひとつの言語だけじゃなく複数の言語をたまには使ってみましょう● 自分がよく知っている言語と違う言語を学ぶと結構面白い○ 最近の流行りのプログラミングパラダイムを知りたければ Rust とかおすすめ○ 昔のプログラマの苦労が知りたい人は C とかおすすめ● いつもの開発文化とは違うものを体験すると、自分のプロジェクトに輸入できたりするかも
Thank you!