はじめに
友人から下記のような質問がありました。
MATLABかPython勉強しようと思ってるんだけど、どっちがいい?
やりたいことが明確ではないなら、Pythonの方がいいよ。
「MATLABパイセン」と名乗っているので、意外と思われるかもしれませんが、私はPython推しです。ただ、あまりにもMATLABに費やした時間が長いので、今からPythonをメインでは使わないというスタンスでいます。もちろん、Pythonのコードもある程度は書けますし、勉強しています。
私の状況を例えると、これまで10年以上バリバリWindowsを使ってきて、MacとかLinuxに移行しますか?という感じかと思います。会社から「絶対に移行せなあかん!これは業務命令や!」ってことなら従いますけどねっという、そんな状況です。
上記内容を伝えたところ、友人からさらに質問がありました。
なんでPython推しなん?
これは回答が難しいですよね。
MATLABとPythonはかなり類似する部分がありますが、メリットとデメリットを明確に分けるのが難しいのですが、私が漠然と感じていたことを整理してみました。
MATLABのメリットとデメリット
まず、断っておきたいのは、私はMATLAB2020も使っていますが、全ての機能を熟知しているわけではないです。特に、個人的にはMATLAB2007と2012を使用していた期間が長いので、そこから拡張された機能を把握できていない部分があります。なので、下記デメリットが解消されていたら、Mathworksの方には反論されてしまいそうですが、ユーザーの印象・感想を伝えたいと思います。
○メリット
・行列計算が直感的にわかりやすい(行列計算のコードを書くのが簡単)
・行列の要素内の操作が容易
・関数が用意されており、使用が簡単なため、数時間〜数日でコードが書けるようになる
・Simulinkがあり、モデルベース開発や制御システム構築が容易
●デメリット
・有料である
(たしか、法人だとMATLAB単体が28.5万円、Simulinkが42.5万円、Signal Processing Toolboxが57万円…..めちゃ高い(笑))
(学生だと数千円、社会人でも個人利用の場合は1万円程度)
・ハードウェアとの連携が弱い(プログラムをハードに実装させるのが微妙)
Pythonのメリットとデメリット
○メリット
・無料(従業員200人以上でanacondaを使用する場合は有償、ライセンスの種類がいろいろあるが最安は$14.95/月)
・ユーザー数や求人数が多い
・Rasbery Piなどのシングルボードコンピュータへの実装が容易
・機械学習用のデータベースが豊富、例題も多い
・システム系のコードも書くことができる
・オブジェクト指向に対応(MATLAB2020ではオブジェクト指向にも対応)
●デメリット
・使用するライブラリを宣言しないて、関数を呼び出さないとダメ
・ライブラリを多数使うことになるので、覚えるのが大変(都度調べる)
・データ形式がめちゃめちゃ多くて何を使えば良いかわからない
・フリーのライブラリが多数あるが、ダウンロードすると会社のセキュリティに引っ掛かり、セキュリティ管理部門に怒られる場合がある
MATLABパイセンの意見
数値計算がしたい場合やSimulinkを使いたい場合はMATLABのが良いと思います。目的が決まっていないけど数値計算ができるプログラミングを勉強したいということであればPythonの方がいいです。転職市場ではPythonに関連する求人がたくさんあります。一方、MATLABではごく少数です(びっくりするぐらい少ない)。
例えば、私が登録している「wantedly」というスタートアップの求人サイトをみると、MATLABの求人は0件ですが、Pythonの求人は10件ありました。
「何のためにプログラムを学ぶのか?」と考えると、結局のところ「市場価値を高めるため」ということになります。そして、大半の人が企業に勤めるということを考えると、高額で求人数の少ないMATLABは分が悪いと言えます。
企業内においてもPython導入の流れが強いです。というのは、AIやIoTといった分野が注目されていますよね。この手の話で良く耳にする、「センサーで測定した信号を通信して、その信号をデータセンターにアップロードして、AIで学習させて、制御や異常判断する」というようなことがPythonで出来てしまいます。そうすると、会社の経営陣はこう思うのですよ。
無料ソフトのPythonでシステム構築も数値計算もできちゃうなら、MATLABに金出すのアホらしくない?
企業の場合、ソフトウェアを購入するのではなく、レンタルしている場合があります。これは経理上の対策でそうしているようです。(固定資産対策だったかな?)そうであると、MATLAB用の費用を確保することが難しいですよね。有償ソフトは経営層の判断で簡単に使えなくなってしまいます。
30代後半以上になって新しいプログラミング言語を学ぶことは相当キツいです。それは年齢的な問題ではなく、日常業務が多忙な中で、新しい言語を学ぶ時間がないからです。そう考えると、プログラムを学び始めるなら無料のPythonを始める方がいいと言えます。
私自身もPythonを学んでいるので、別の記事で私の学習方法についても紹介したいと思います。
今日はこのへんでGood luck
コメント