プログラム言語の触り方

こんにちは mtjです

最近中学生がプログラミング言語を作ったで話題になっておりましたが
その中に”C++を始めたが、扱いにくかった。もっと可読性の高い構文とメモリの安全性や速度を高めたいと思った”との発言があった

これはほかの言語をそれなりに触っていないと出てこない考え方だと思う。
正直中学生でこの発想に至れる事は驚きました。

C++のみを触り続けていて ほかの言語を使用していない人には全くでてこない発想だと思う。
オブジェクト指向で最近の言語を触っている人からすればC++,C等はどうしても物足りなく感じてしまう。

自分の友達にも大学で少しプログラムをかじった人がおりますが 大学教授のC++は至高、基礎との言葉を受けて
ビット、バイトの違いもわからないにも関わらずC++は世界の流行りと疑わない人もいます。

1つの言語を突き詰めていくことも重要ですが、様々な言語を使用することでそれぞれの言語の利点、欠点を学び適材適所に対応、柔軟な思考を持つことも大事だと思います。
特に学校では言語1つに特化でなく様々な言語に触る事が大事なのではないかと思いました。

C# おすすめ書籍

弊社では主にC#を用いてソフトウェア開発を行っています。
そこで初学者の方向けにおすすめの書籍をご紹介します。

1. 新・標準プログラマーズライブラリ なるほどなっとく C#入門
著者:出井 秀行 氏
対象者:プログラミングを初めて学ぶ方
・プログラミングの基礎から丁寧に解説されています。
変数やif などの制御文が初めての方でも、読み進める事ができると思います。
Unityスクリプトに初めて触れる方向けの参考書としても良いと思います。

2.独習C# 新版
著者:山田 祥寛 氏
対象者:VBAなど他の言語を少しでも触れた事がある方
・C#の言語仕様やオブジェクト指向について体系的に学べます。
本書でC#の基本部分は網羅しているので、本格的に学びたい方が
最初に読む本として適していると思います。

3.実戦で役立つ C#プログラミングのイディオム/定石&パターン
著者:出井 秀行 氏
対象者:C#を実務で使う方、C#のレベルアップを目指す方
・C#で「こう書くべき」というイディオムが豊富に紹介されています。
プログラミングの難しさの一つとして、何通りもの書き方が存在する事が
挙げられますが、定石とも言える書き方をその理由とともに紹介されています。
特にLINQやコレクションの操作を磨きたい方におすすめです。

4.増補改訂版 Java言語で学ぶデザインパターン入門
著者:結城 浩 氏
対象者:オブジェクト指向をさらに学びたい方
・言語はJavaで書かれていますが、C#の基礎を知っていれば読み進められます。
デザインパターンを学ぶことで、インタフェース、継承、委譲などの使い方
とオブジェクト指向についての理解を深められます。
もっと早く読んでいれば良かったと思えた本です。

信頼できる内容を、体系的に学習する事が近道だと思います。
以上、おすすめの本でした。

.NET Framework から .NET Core へ

C#などで作成した既存のプロジェクトを .NET Framework から .NET Core へ移植するのに必要な作業量を調べるツールが有ることを知ったのでメモ。

.NET Portability Analyzer

早速、社内ライブラリで試してみたところ、.NET Coreでさポートされていない機能の一覧が合計25箇所表示されました。DataContextとRemotingに関する内容が大半です。
これくらいなら対応できそうです。

あとは参照している別ライブラリ類ですが、どうも.NET Coreプロジェクトから.NET Framework を使用しているDLLが使用できるようなので大丈夫そうです。
試していないですが、以下のサイトなどで出来ているのでなんとかなるのでしょう。
https://qiita.com/soi/items/e1cf2abf9845164bf439