中国の格安実装と国内メーカーによる実装の違い

Fusionの格安基板実装サービスと国内メーカーによる実装の比較

Seeed studioが基板実装サービスの宣伝が、新し物好きの私の好奇心を刺激して、中国メーカーによる実装サービスを試しているところです。

中国メーカーによる実装もピンキリ

中国の会社による実装もピンからキリまであり、同じ会社でも複数グレードのコースがあり、今試しているのは一番安い格安サービスなので中国メーカーによる実装品質が全てここで紹介する内容というわけではありません。

この記事は「格安実装サービスはどの程度使えるか?」という内容です。

中国の実装サービスによる基板の状態

Amazonで買った新しい実体顕微鏡が届きました。

7インチ マジックアーム&スーパークランプとスマホ用ホルダを組み合わせて顕微鏡撮影が出来るようにしました。

これが中国の会社による最初の実装基板です、写真で見るとわかりにくいですが端子の端面に半田クラックがあり、2割の基板に半田ゴテでの修正が必要でした。
よく見ると、あちこちに小さい半田ボールが残っています。

次が2枚目の基板です、下の端子の半田クラックは写真で見てもわかる大きさです。
こちらも半田ボールがあちこちに残っています。
2枚目の基板も2~3割の不良率でした(ただし修正可能)。

国内の会社による実装基板の状態

比較のために、製品として出荷する国内の会社で実装した基板の写真を載せておきます。

半田の状態だけでなく半田ボールなどもないきれいな仕上がりです。
右にある二本の白い線は天井の蛍光灯の映り込みです。

中国の会社による格安実装基板は試作レベルでしか使えない

見ていただいてわかるように現状では、中国の会社による格安実装基板は工業製品として出荷できるレベルではありません。

ただ、中国の会社レベルは日進月歩で変化していますし、試作や教育分野ではコスト面と部品入手を一任できるメリットが大きいので品質差をわきまえて中国の会社による実装も上手に活用していくのが得策です。

 

 

Microsoft Visual C++は、プログラミング教育の癌 (2)

続、独断と偏見に満ちたアンチC++オヤジの妄言です

内容は、ただでさえ挫折しがちなプログラミング学習の現場に、時代遅れで複雑怪奇なVisual Studio と C++が大きな顔をしている、実にけしからんというお話です。

有害無益なC++の入出力データストリーム

C++入門というキーワードで検索すると、多くのサイトでcout, cinを使った例が最初に紹介されています。

(例)C++入門 – asahi-net.or.jp から

C++入門2   coutを使った出力
C++入門3   cinを使った入力
C++入門4   オブジェクト指向について
C++入門5   クラスを作ろう

学生がこれを使ったプログラムを書いて(コピペ?)行き詰っているのにつきあっていて、このcin, coutという書き方は有害無益だと思うようになりました。

cinに誤った文字列を与えると黙って処理をさぼるようになる

cinに誤ったパラメータを読ませると黙り込んで処理を流すするようになります。
学生が次のようなプログラムを書いて「処理がうまく行きません。」と質問してきました。

double xa, ya;
while (true)
{
  // データ受信
  ...
  // データ送信
  cout << "input xa ya:" << endl;
  cin >> xa
  cin >> ya;
  // xa, ya に入れたデータを送信
  ...
}

具体的には一回目は入力待ちで止まるが、次から無限ループになるという症状です。

C++に拒否反応があり知識がない私でも、デバッガで確認すればcinが反応しなくなっていることがわかり、Webで調べれば解決策もすぐ見つかるので、C++のエキスパートにとっては「なんだ、そんなこともわからないのか。」という感覚なのでしょうが、デバッグの仕方もよくわからない初心者に取ってエラーで黙りこんでしまう言語仕様は最悪です。

 変数xの型にかかわらず cin >>  x でコンソール入力した文字列の値をxに読み込めるということは、裏で値に応じた変換がおこなわれているということで、うまく働いているときは便利な書き方に見えます。

しかし上の例のようにcinを使って2つの変数にどのように値を読み込むかがわからず、変数の型もよく分かっていない初心者に cin がプログラムの基本的な書き方ですよと教えるのは間違いだと思うのです。

cin, coutはC++を格好よくみせるためだけのものではないのか?

cin はコンソール入力用の記述ですから、コマンドラインアプリケーションを書くために使うことになります。
しかし、Windowsで新しいコマンドラインアプリケーションを書くことなど殆どなく、簡単なプログラムでもウィンドウが開くGUIアプリケーションになります。

コマンドラインアプリケーションを書くとしたら入力文字列にエラーがあるときはそれに対応した処理をするのが必須であることを考えても cin など誰かが思い付きで作って実用的なアプリケーションでは使われない言語仕様が未だに初心者向け文法として大きな顔をしているだけのように思えてなりません。

実際のところ、cin cout が無いと効率的にコンソールアプリを書くことが出来ないと思って使っているベテランプログラマがいるのでしょうか。

Microsoft Visual C++は、プログラミング教育の癌(1)

続、独断と偏見に満ちたアンチC++オヤジの主張です

内容は、ただでさえ挫折しがちなプログラミング学習の現場に、時代遅れで複雑怪奇なMicrosoft Visual  C++が大きな顔をしている、実にけしからんというお話です。

スキルアップのために選ぶべきプログラミング言語

プログラムを勉強するなら、多くの人が使っている・これから使うプログラミング言語を選ぶのが鉄則です。
 出来ればこれから伸びる言語の方が、需要と供給のバランスを考えるとプログラミング技能を売り込むために有利です。

また、流行っている言語向けには便利で使いやすい開発環境が出てきますが人気のない言語の開発環境は古臭くなりサポートが無くなっていきます。
便利で使いやすい開発環境の有無は、実用上でも学ぶためにも大きな効率差となります。

世の中の流行りすたりを調べるにはグーグルトレンドが便利です。
グーグルトレンドで、どの言語が世界中で人気があるかを調べてみると次のようになります。(2004ー2019/11現在)

カテゴリはコンピュータ 家電で検索キーワードの多さのグラフです。

グーグルトレンドで見ると死んでいるMicrosoft Visual C++

C++,Python,Cはプログラミング言語で、DelphiとVisual C++は統合開発環境なので公平な比較ではありませんが、C++に対するVisual C++の人気度や同じPascalベースの開発環境DelphiとVisual C++を比較するためにどちらも表示しました。

注目すべき点は、メジャーなC++ベースのVisual C++が、マイナーなPascal言語ベースのDelphiに圧倒的な差をつけられていたことと、C++の開発環境としてVisual C++が如何に人気がないかということです。

それなのに、Visual C++がマイクロソフトのネームバリューと早くから無償版を提供していたことで、日本の教育界でいまだに多く使われていることが問題です。

 

地域を日本に絞ると次のようになっています。全ての国を対象にしたグラフに比べてPythonへの注目度が高くなっています。

 

最近5年間の傾向を見るとC言語に関する検索はほぼ横ばいで、Pythonへの関心が近年急速に高まっていることがわかります。

 

こちらは開発環境に対する人気度をしめすグラフで、教育界では全く人気のないDelphiがいまも検討していることとPythonの開発環境Pycharmの人気が徐々に高まっていることが注目されます。

Visual C++の人気がないのはGUIアプリケーションを開発するには効率が悪すぎるし、C++の開発環境としてもWindowsの都合による縛りが強すぎて使い勝手が悪すぎるためだと思われます。

Visual C++は止めてPythonを学ぶべき

スキルアップのためにプログラミングを勉強するなら、C++は止めてこれからはPythonを選ぶべきだと言えるでしょう。
少なくともVisual C++を学生に使わせて、ただでさえ少ないソフトウェアエンジニアの目を枯らす愚は避けるべきです。