Upgrade to Pro — share decks privately, control downloads, hide ads and more …

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

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

コドモンわいわいLT大会#2 で発表したプログラミング学習のススメです。
株式会社 RevComm サーバーサイドエンジニア / 小島孝弘

515hikaru

August 24, 2022
Tweet

More Decks by 515hikaru

Other Decks in Programming

Transcript

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  13. Thank you!

    View Slide