081.狙い目の言語
初回:2020/06/22
修正:2020/06/23
1.晴れ、時々エンジニア
P子「時々エンジニアじゃダメでしょ」(※1)
コラム名にPythonを関しているにも関わらず、Pythonネタが少ないって、コメント欄(※2)に書かれました。
今回は、勝ち逃げ先生のコメントに匿名さんによる「面白いコラムでした。勝ち逃げ先生の戦略では、どの言語が狙い目とお考えでしょうか?」に対する、山無駄さんのコラムに触発されて、私も『狙い目の言語』を考えてみました...というコラムです。
Innovation "D"(山無駄)
戦略的言語とは
https://el.jibun.atmarkit.co.jp/densol/2020/06/post_42.html
2020/06/09
P子「2,3週遅れでしょ」
トラック競技で周回遅れは、先頭を走ってるように見えるので、いいんです。
つい、この間、@ITでも記事がアップされていました『最も愛される言語は「Rust」』ですが、「Rust」が首位、TypeScriptが2位、Pythonが3位だそうです。C#が入ってるのに、JavaとかVisual Basicが入ってないというのが気になります。
https://www.atmarkit.co.jp/ait/articles/2006/12/news019.html
最も愛される言語は「Rust」――Stack Overflowが開発者調査結果を公開
2020年06月12日 08時00分 公開
「TIOBE Index」の2020年4月版では、JavaとCが1位(直近ではCがJavaを逆転して1位)で、3位がPythonです。先ほどのRustですが、2019年に38位から、20位に大躍進です。記事では、Scratchが20位にと書かれていますが、6/20時点で18位にまで上がってきています。
https://codezine.jp/article/detail/12169
TIOBE、プログラミング言語の人気ランキング4月版を発表、Scratchが20位に
https://www.tiobe.com/tiobe-index/
逆に、アンケート人数の少なさが気になりますが、「学びたくない」言語ランキングと言うのがあります。
https://xtech.nikkei.com/atcl/nxt/column/18/01068/111100003/
技術者440人が「学びたくない」言語ランキング、不名誉な首位はあの言語
日経 xTECH/日経SYSTEMS
2019.11.20
ここでは、スキルを磨きたい言語の第1位は「Python」でした。上記のURLを初めてクリックしたときの図で、Pythonが1位だったので『みんなPythonは「学びたくない」って、思ってんだ。良かった』と思いましたが違いました。
実はこのアンケート『今後、スキルを磨かなくてもよいと思う言語』で、見事?1位は、例の言語でした。
2.狙い目の言語
ここまで、真面目にリンクをクリックして下さった皆様は、すでに狙い目の言語のパターンが見えて来たのではないかと思います。
①人気上昇中の言語「Rust」「Scratch」など
②物件が豊富に存在する「Java」「C」など
③AIなどの人材不足で年収アップが期待できる「Python」「R」など
④みんなが嫌がるが需要はしっかりある「COBOL」「Visual Basic」など
私は、Javaが好きなので、Pythonが嫌いです。Javaは、静的型付け言語であり、PythonやJavaScriptなどは、変数に好き勝手に値を入れられるし、実行時にしかエラーは出ないし、業務システムの構築には使えません。
※この記事は個人の感想であり、効果・効能を示すものではありません。
結論から言うと「狙い目の言語」とは「何を狙っているのか」によって変わるという事です。
3.Pythonによる顔認識
折角なのでプログラムコードを載せておきましょう。
これは、Python(と言うより、OpenCV)の顔認識のサンプルです。
https://ja.wikipedia.org/wiki/OpenCV
#!/usr/bin/env python # -*- coding: utf-8 -*- import cv2 cascPath = '/home/pi/iot/opencv/haarcascade_frontalface_default.xml' faceCascade = cv2.CascadeClassifier(cascPath) cap = cv2.VideoCapture(0) while True: _, frame = cap.read() gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY) faces = faceCascade.detectMultiScale(gray, 1.1, 3, 0, (10, 10)) for (x,y,w,h) in faces: cv2.rectangle(frame,(x,y),(x+w,y+h),(0,255,0),2) # BGR=GREEN cv2.imshow('Face Detect Frame',frame) k = cv2.waitKey(1) if k == 27: break cap.release() cv2.destroyAllWindows()
これは、Raspberry Pi上で動作します。
関数も、try~except~finallyも使わず、色やフレーム名、カメラのデバイス番号なども固定値ですが、サンプルと言う事でお許しください。
Pythonは、業務システムには使えませんが、こんなことをサラッとやってのけるポテンシャルはすごいと思います。
※この記事は個人の感想であり、効果・効能を示すものではありません。
ちなみに、コードだけなら、コピペでもタイピングでも大して時間はかかりませんが、実際に動かすまでには、Raspberry Piの設定(OSのインストールから、社内ネットに繋いだので、ポート制限やproxy設定、RDPやVNCの設定)の後に、openCVのインストールを行う必要があります。また、特徴分類器もgithubからダウンロードしたものでは動作しなかったので、公式サイトからダウンロードしています。
P子「愚痴ってるの?」
Pythonは、遊ぶには楽しい言語ですが、業務システムには使えませんので、これを業務システムとして利用できるくらい習熟できれば、狙い目の言語なんじゃないかと思います。私は、狙い目から除外してますけど。
※この記事は個人の感想であり、効果・効能を示すものではありません。
ほな、さいなら
======= <<注釈>>=======
※1 P子「時々エンジニアじゃダメでしょ」
P子とは、私があこがれているツンデレPythonの仮想女性の心の声です。
※2 コメント欄
074.#検察庁法改正案に抗議します
https://el.jibun.atmarkit.co.jp/pythonlove/2020/05/074.html
P子「普通に考えれば、Pythonの話をしないPythonコラムってタイトル詐欺ね」