プログラミングと言えども、機械を動かすものや、経理や売上などを計算したりするものなど色々あります。
※名称、呼び方は正式に決められたものはなく、業界での通称のようなものです。また下記の呼び方は私が良く使う呼び方で、他にも色々あると思われます。
1.大分類
大きく分けると (A)業務系 (B)制御系 という2つの分類があります。そして、それぞれに必要な知識などが異なります。
(A)業務系
これは事務関連のシステムを総じてこう言います。つまり、工業系のシステムでないものです。どちらかというと文系的なシステムです。
(B)制御系
これは業務系と反対で理系的なシステムを示します。ロボットや外部機器などをコントロールするシステムです。
2.業務系を分ける
工業系機械の制御ではないシステム、例えば経理や会計、売上や人事、労務や最近ではネットショップ、あと、建築や土木の積算など色々な細かいものがありますが、業務系をシステムの運営形態から分けてみると
(A)業務系アプリ系システム
WEBブラウザーを使用せず、システムを開発する言語等で特別な画面を構築していくような作り方で作るものを示します。
開発言語は、VisualBasicやC#、JAVAなどが使用され、ほぼほぼデータベースと接続されます。データベースは、オラクルやSQLサーバーなどがよく使用されます。
学校での生徒管理や履修管理、学費管理などもこな業務系アプリ系システムとなります。
(B)WEB系システム
インターネットを介在しない、サーバーと接続して動くシステムを総じてこう呼んでいます。画面は、インターネット検索などで使用する、Google ChoromeやInternet Explorer を使用します。
プログラミング言語はPHPやJava script、HTMLなどが多く見られます。以前は、PerlやRubyなどもありましたが、最近はPHPが多く使われますね。JAVA で作る場合もありますが、無料だったJAVAは今後有料になりますからどうなるでしょう?
それから当然サーバーと接続するのでデータベースが使われます。データベースは無料のMySQLやSQLサーバーが多く見られます。
サーバーはインターネットに接続していて、大量の大切なデータを扱うため、殆ど専用のサーバーをレンタルで使用します。
大手有名なのはAmazonのAWSやマイクロソフトのAzureなどです。これらはデータベース込みの月額使用料でサーバーを利用できます。
最近はAIを構築できるように、音声認識や音声合成、顔認識、GPS位置情報など、多くの情報まで利用できるようになりました。
自分の技術だけで顔認識なんて到底不可能でそんなシステムは今までは作れなかったのですが、なんと、そのサービスまで全部サーバー毎利用できるようになりました。
これらのAIのシステムを作る言語として最近はPythonが流行ています。
3.制御系を分ける
工業系、理数系システムも大きく分けることができます。
(A)計測制御系
パソコンを中心として、ロボットや制御ラインをコントロールするシステムを総じてこう呼びます。
装置の動作条件や、装置から取り込んだデータを処理してグラフを表示したりします。
また、完成したものを検査して良品不良品に分けたりするようなシステムもあります。
プログラム言語は、パソコンの画面はC#が最近は多く、まだ昔の産物を使い続け、C++もあります。
VisualBasicも良く使われますが、やはりC#が多いですね。
そして、装置側は、制御にPLCという装置専用のコンピュータが使用されることが多いため、それ専用言語でラダーと呼ばれる言語を使用します。
(B)組み込み系
主に、電子基板上で直接動作するその装置専用のプログラムを開発するシステムをこう呼びます。
大型
組み込み系でも、スマホやカーナビなどのようにそれなりに高価な装置には、OSというソフトが載っていますので、OS上で動くアプリを開発します。これは、Windows上で動くアプリを開発するようなイメージで、組み込み系といっても、どちらかというとアプリ開発者よりになります。
ただ、このようなOSの載っている組み込み系の開発者でも、OSと内部の部品をコントロールするような部分の開発は特殊で、ここはデバイスドライバー系といいます。
この開発者はなかなか少なく、高額な収入を得られます。
例えば、スマホの中にあるWIFIのLSIをコントロールして通信の根元を作る。ここで開発された通信の根元を利用した簡単なプログラムをアプリ開発者は利用する。と言ったイメージです。
小型
これは小さなCPUが載ったボードやそ 装置で、それ単体の動きを作るものです。
例えば、洗濯機のマイコンコントロールやテレビ、エアコンなどです。
開発言語は、C言語やC++、アセンブラが使われます
クムクムは…
(1)クムクムのお腹の基板は、小型組み込み系です。C言語とC++で開発しています。小さなOS(正式にはブートローダーと呼ぶ)として学習用としてイタリアで開発されたArduinoを利用しています。
(2)パソコン上のソフトは、計測制御系です。Windows上で動く専用アプリをC#で開発しています。
一部、テキストの表示や動画の表示はWEBを利用しています。
(3)塾用教務システムは、業務系WEB系です。開発はPHPを使っています。サーバーはIDCFという日本の専用レンタルサーバーを利用しています、
(4)AIにつなげるためのAPIを用意しました。PythonでAI系エンジンとつなぎ、Pythonからクムクムを動かすことができます。