前回に続き2016年10月に入手したHP 50gについて書いてみたいと思います。
前回はハードウェアでしたが、今回はファームウェアについて書きます。
本レビューはファームウェアバージョン 2.15 に基いています。
目次
今までに3つ記事を書いたTI-84 Plus CEとは段違いの機能の多さを誇ります。
それは以下に示す説明書(全て英語版)の物量の違いからも明らかです。
ページ数はAcrobat Readerによって表示される全体のページ数ですので、pdf内に書かれているページ数ではありません。
合計1,821 pagesです。
TI-84 Plus CE
の主要説明書4冊の合計が 273 pages("Quick Start"を16 pagesとしたとき)ということを考えるとその物量が知れるというものです。
以前書いたようにTI-84 Plus CEの説明書が手抜き気味なのでページ数が少ない面もありますが、それを差し引いても説明書のページ数は圧倒的にHP 50gが多いのです。
ちなみに"user's manual"(概要)だけは日本語版がありますが、酷い翻訳のものです。翻訳会社に丸投げしてHP社が校正していない感じのものです。
日本語版が分かり難いので、私は英語版で読みました。
私が読んだ説明書は"Quick Start Guide"全部, "user's manual"全部, "advanced user's reference manual"のChapter1(RPL言語の文法)です。
それ以外のところは必要なところだけ読んでいます。
ネイティブの英語話者でも全部通して読む人はほとんどいないでしょう。
比較対象のTI-84 Plus CEは CAS (数式処理システム)がありません。CASのない電卓の変数はただの数値の入れ物です。
一方、HP 50gはCASがあるので、変数は変数として扱えます。つまり値がないものとして扱えます(もちろん値を入れることもできる)。
例えば、HP 50gの場合、Xを未定義の状態で'LOG(X)+X^4'を微分すると、
'(1/X)/(LN(10))+4・X^3' と計算してくれます(下図)。
一方、CASなしのTI-84 Plus CEだと、このような代数的な微分はできません。Xの数値を具体的に決めないと微分できません(日本で売っている教科書表示関数電卓と一緒)。
HP 50gがマクローリン展開、フーリエ変換、ラプラス変換などができるのもCASのおかげです。HP 50gに限らず、変数を変数として扱えるのがCASの魅力でしょう。
電卓の設定をするシステムフラグは83個もあります。
システムフラグの設定画面を出してみましょう。
MODEボタンを押すと、電卓モード画面が表示されます。
電卓モード画面下のソフトメニューの[FLAGS]を押すと、システムフラグの設定画面が出てきます。
設定できるシステムフラグは83個もあります。
それなのに一画面で表示できるのは9個にすぎないので自分が全体的に何を設定しているのか把握するのは困難です。少なくとも分類分けはできなかったのでしょうか。電卓モード画面や後述のCAS設定画面と重複している設定もあります。
余談ですが、RPL言語からシステムフラグを参照する時はフラグ番号に負号を付ける必要があります。
HP 50gのメニュー選択の方法は、CHOOSEボックスとソフトメニューがあります。
システムフラグの117番でどちらを主に使うのか設定できます。
注意するべきはCHOOSEボックスを選んでもソフトメニューを使うときもあれば、その逆にソフトメニューを選んでもCHOOSEボックスを使うこともあります。
初期設定ではCHOOSEボックスを主に使う設定になっています。
下図はCHOOSEボックスの画面です。
選択肢の末尾が..になっている選択肢を押すと、メニュー階層が下に移動します。
ただし、最後の選択肢の末尾が..になっている場合は上に移動します。
下図はソフトメニューです。上のCHOOSEボックスと同じ意味です。
選択肢の黒い箱の左上が膨らんでいるところを押すと、メニュー階層が下に移動します。
ただし、最後の選択肢の黒い箱の左上が膨らんでいる場合は上に移動します。
CHOOSEボックスとソフトメニューはお互いに利点と欠点があります。
・CHOOSEボックス
利点: 長い名前の選択肢が表示できる。9個まで選択肢が表示できる。ユーザーに選択を強制できる。
欠点: CHOOSEボックスの下の画面が隠れてしまう。表示されている間は他の操作ができない(ユーザーに選択を強制させるときはそれが利点になる)。選択肢を選んでからOKを押すので手順が一つ増える。
・ソフトメニュー
利点: 画面の下の方しか使わないので、他の表示を妨害しないし、通常操作も妨害されない。押すだけで実行できるので、手順が少ない。
欠点: 選択肢の先頭5文字しか表示できない。先頭5文字が同一の選択肢が一緒に表示されると区別できない。さらに選択肢が6個までしか表示できない。NXTボタンで次の6個の選択肢を表示できるが、戻る時は左シフト+NXTボタンを押す必要がある。
自分は主にソフトメニューを使っています。画面がCHOOSEボックスで隠れるのは好きではないし、操作手順も少なくて済みます。しかし、先頭5文字では分かり難い選択肢があったり、先頭5文字が重複する選択肢が一緒に表示されるという欠点があります。
そのため、HP社はCHOOSEボックスを作ったのでしょう。
以下の資料を調べたところHP 49Gから"choose list menu"という言葉が登場します(HP 49G User's Guide, Chapter2 Page 2-7)。これがCHOOSEボックスの始まりだったと思われます。
・HP-28S取扱説明書 :
http://support.hp.com/us-en/product/HP-28s-Scientific-Calculator/33550/model/20670/manuals
・HP 48G Series User's Guide :
http://www.hpcalc.org/details/3937
・HP 49G User's Guide :
http://www.hpcalc.org/details/3003
しかし、CHOOSEボックスにも欠点はあり、ソフトメニューの完全な代わりにはなりません。
HP社はソフトメニューを改良するべきでした。HP 49Gの画面解像度は131×64でしたが、hp 49g+から画面解像度は131×80になりました。縦解像度が16画素増えたのです。
これの一部をソフトメニューに使えば良かったのです。ソフトメニューを2行表示にするべきだったのです。その方がCHOOSEボックスよりも使いやすいことが多かったはずです。
ただし、ユーザーに選択を強制させたい時はCHOOSEボックスの方が便利です。
HP 50gのメニューの最大の問題点は全てのメニューを集めたメインメニューがないことです(TI-84 Plus CEにも言えていることだが、TI-84 Plus CEは機能が少ないので、それほど問題になっていない)。
メインメニューではないのですが、CAS関連のメニューだけを集めたメニューはあります。しかし、APPSボタンを押してCHOOSEボックスを表示して、上から11番目にある"CAS Menu"を選択する必要があります。あまり分かりやすいところにあるとは言えませんし、このような手間をかけるなら直接特定のメニューを表示する方が速いという人もいるでしょう。
基本的には各メニューがバラバラに存在しているのです。
各メニューはキーから呼び出さないといけないのですが、キーボードには短縮名でしかメニュー名や機能名が印刷されていないのです。そのため、キーボードを見ただけでは、どれがメニューなのか機能なのか設定なのかよく分かりません。
しかもキーを押すだけで表示されるメニューもあれば、左右シフトキーを使わないと表示されないものもあり、操作は煩雑になっています。
さらに左右シフトキーを 押してから 特定のボタンを押した場合と、左右シフトキーを 押しながら 特定のボタンを押した場合で表示されるメニューが異なることもあります。
例えば、右シフトを 押してから 7を押すとソルバー機能のCHOOSEメニューが出ます(CHOOSEボックスのシステムフラグを無効にしても)。一方、右シフトを 押しながら 7を押すとSOLVEソフトメニュー(前述のソルバー機能とは別のメニュー)が表示されます。これは酷いと思いました。
結局、どのキーを押したらどのような内容のメニューが出るのか覚えるしかないのです。
さらにメニュー階層も深くなっているものが多いのにソフトメニューやCHOOSEボックスのような表示項目数が多いとはいえないものでメニュー内の移動をしないといけません。
まるで巨大な迷路の中をウロウロしているような操作性です。
膨大な機能数にGUIが明らかに追いついていない感じです。
MODEボタンを押して電卓モード画面を出して、ソフトメニューの[ CAS ]を押すと、CAS設定画面が出ます。
CASの設定項目は短縮語なので分かり難く、以下のような意味になっています。
Indep var :
独立変数として使う変数名(デフォルトはX)
Modulo :
合同式の計算に使う法の値
Numeric :
チェックすると、定数(π,eなど)を数値化する。関数もできるだけ数値化する。
Approx :
チェックしない場合、答えをできるだけ代数式にする。チェックすると答えをできるだけ数値化する。
Complex :
チェックするとComplexモードになり複素数の計算ができるようになるが、計算速度が低下する。
Verbose :
チェックすると微積分をしているときに画面の上によく分からないコメントが表示される。
Step/Step :
チェックすると代数式の計算を内部ステップ毎に計算・表示する。ENTER連打が必要になる。
Incr Pow :
チェックすると代数式の次数の少ない項から順番に左から右へ表示される。
Rigorous :
チェックを消すと、式から絶対値記号||を消去して計算する(通常はチェックして使う)
Simp Non-Rational :
チェックすると、有理式ではない式を自動的に単純化する。
この中で最も頻繁に切替えるのはApproxでしょう。
そのため、Approx切替用のショートカット(右シフトを押しながらENTERを押す)が用意されています。しかし、そのショートカットはキーボードには印刷されていないので、覚えるしかありません。
"user's guide"(Page C-6)によると、できるだけComplexをチェックしないで使って欲しいとのことが書かれています。チェックすると計算速度が低下するからです(計算時間がかかるので、消費電力も増える)。
ここはグラフ電卓の限界を感じます(本機より高性能な HP Prime ですら複素数モードがデフォルトで有効になっていない)。
Complexをチェックしていなくても複素数の計算が必要になるとHP 50gがComplexモードを有効にするかどうか聞いてきます。それ自体は便利なのですが、Realモード(通常のモード)に戻るには、CASの設定画面を表示する必要があり面倒です。
CASの設定は全て正確に設定しないと、HP 50gが正確な結果を出さなかったり、変な動作をします。しかし、設定項目が全て短縮語です。そのため、全部覚えないといけません。
少し脱線しますが、CAS( Computer Algebra System )は一般的に「数式処理システム」と翻訳されますが、直訳すると「コンピュータ代数システム」となります。個人的にはこっちの方がCASの意味が分かりやすいような気がするのですが。
例えば、 テイラー展開 関係のコマンド/関数が下記のように3つあります。
数学が分からない人のために簡単に説明しておきます。
テイラー展開
とは四則演算で表現できない関数(三角関数、対数関数など)を無限級数化するときによく使います。無限級数(テイラー級数)はたいてい四則演算で計算できるものになります。
つまり、テイラー展開によって、三角関数や自然対数を四則演算で計算できる近似式に変換できるのです(無限級数を実際に無限に足すことはできないので近似になる)。
マクローリン展開 はテイラー展開の特別な場合です(x=0まわりのテイラー展開)。マクローリン展開の方が計算が容易かつ結果が同じ場合が多いので、テイラー展開と言ってもマクローリン展開で済ませてしまうことが多いのです。
話を戻しますが、上のコマンド名/関数名を見て正確な意味が分かりますか?
TAYLR は"TAYLOR"をソフトメニューのために5文字に短縮したのでしょう。しかし、マクローリン展開であることは名前から推測できません。
TAYLOR0 は関数名から「x=0まわりのテイラー展開=マクローリン展開」程度のことは想像できてもTAYLRと何が違うのかは関数名だけで推測するのは不可能です。
SERIES は直訳すると「級数」です(苦笑)。確かにテイラー展開はテイラー級数を求めるのが目的ですが、ただ単にSERIES(級数)はあまりにも酷いです。せめてTSERIESにできなかったのでしょうか。何か都合があったのかもしれませんが。
このようにコマンド/CAS関数名に酷いものがあります。HP-28C(1987年発売)から19年間拡張を続けた結果なのでしょう。
せめてHP 48G+(1998年)からHP 49G(1999年)へ移行する時に名前を整理できなかったのかなとは思いますが。
HP 50gのHELP機能はCAS関数にしか対応していません。
上述のTAYLOR0はCAS関数なのでHELPで見れます。
一方、上述のTAYLRとSERIESは電卓コマンドなので、HELPで見れません。
これってHELPの意味がないのでは?(そもそもTAYLRとSERIESがCASに入っていないのが不思議だが、機能拡張の歴史によるものだろう)
CAS以外のコマンドや関数のHELPはフリーライブラリのHLP49をHP 50gにインストールするしかありません。問題なのはHLP49は500KB程度の空き容量を消費しますので、内蔵フラッシュメモリの空き容量の半分くらいを使ってしまいます。そのため、SDCARDにインストールすることもできるようになっています。
HLP49にはもう一つ問題があります。'HLP49'とコマンドを打てば呼び出せるのですが、それだと呼び出しが面倒なので、どこかのキーに割当てないといけません。しかし、HP 50gは空いているキーなんてないので、かなり強引なキー割り当てになります。HLP49の説明書には「左シフト+ALPHA+EVAL」という割当てが例として書かれています。忘れると使えなくなりそうなキー割り当てですが、HLP49のせいではありません。外部のライブラリを統一的に呼出す仕組みを作らなかったHP社の問題なのです。例えば、TOOLソフトメニューのHELP項目の右に空きがあるので、そこに外部のライブラリをCHOOSEボックスで選択・実行できるような仕組みがあっても良かったと思うのですが。
説明書に ALGモード (中置記法。普通の数式記法)の説明と RPNモード (逆ポーランド記法)の説明が混在していて読みにくくなっています。しかも必ずしも両モードを公平に扱っておらず、片方のモードにおける説明が中心になっていることもあります。コマンドや関数のリファレンスも両モードに対応した書き方になっていて見辛くなっています。
そもそもRPL言語搭載グラフ電卓にALGモード(中置記法モード)を付けたのが間違いだと思うのです。ただでさえ煩雑な操作をさらにややこしくしてしまったのです。
しかし、問題はそれだけではありません。操作モード(ALG / RPN)と関係なく分かり難い説明もあります。
例えば、"advanced user’s reference manual"の3-286ページの|(Where)コマンドの説明は酷いと思いました。
Where Function: Substitutes values for names in an expression.
| is used primarily in algebraic objects, where its syntax is:
'symbold | (name1 = symb1, name2 = symb2 …)'
(訳)
Where関数: 数式中のnameを値に置き換える。
|(whereコマンド)は代数式オブジェクトの中で最優先で使われる。その文法は:
'symbold | (name1 = symb1, name2 = symb2 …)'
この中で酷いのは文法の説明です。
symboldがexpression(数式)に相当するという説明がどこにもありません。
name1,name2は理解できますが、symb1,symb2が「数値」だと言う説明がどこにもありません。
このコマンドの意味は実は簡単です。例えば、
'X+Y|(X=2,Y=5)' → 2+5
ということです。簡単なのにどうやったらここまで酷い説明ができるのか。
私は"advanced user's reference manual"の説明で理解できなかったので、前述のHLP49というフリーライブラリを使ってやっと理解できました。
2016年10月に買ったのにCDに入っているPC接続ソフトが Windows XP までしか対応していません。
Windows Vista 以降ではこのCDに入っている接続ソフトは使用できません。
ハードドライバがVista以降用に書き換えられていないからだと思われます。
実はWindows VistaとWindows 7に対応した新しい接続ソフト(PC Connectivity Kit / Conn4x)とそのためのハードドライバは以下からダウンロードできます。これらは2009年にリリースされたものです。
HP 50g, 49g+ and 48gII PC Connectivity Kit (Conn4x)
http://www.hpcalc.org/details/5890
HP USB Drivers
http://www.hpcalc.org/details/7168
ここで凄まじく疑問が生じます。
HP 50gは2006年秋に発売されました。一方、Windows Vistaは2007年1月発売です。
ということはHP 50gの付属CDは2006年から修正されていないということです。
付属CDの修正なんてたいして費用はかからないのに2006年秋発売から2015年の製造終了まで放置していたとは異常ではないでしょうか。
さらにCDの中にはPDF資料(最初の上で書いた説明書)も入っているのですが、2006年からCDの内容が変更されていないとするとネットからダウンロードした方が良いと思います。
PC接続ソフト"PC Connectivity Kit"(Conn4x)は機能によって接続方法を変える必要があります。
(1) HP 50gのファイルをPCから操作するとき
1.付属のmini USBケーブルでPCとHp 50gを接続する。
2.HP 50gでXSERVコマンドを実行しておく(HP 50gがXmodemサーバーになる)。
3.PCで"PC Connectivity Kit"を起動し、FileメニューからConnectを選択。
(繋がらない時はConnect usingをAutoからUSBに変えた方がいいかもしれない。自分の場合はAutoで問題なかった)
(2) HP 50gの画面をキャプチャするとき
1.付属のmini USBケーブルでPCとHP 50gを接続する。
2.PCで"PC Connectivity Kit"を起動し、キャプチャボタンを押す。
するとPC側がキャプチャ待機状態になる。
ちなみに(1)のファイル操作用の接続をしているときに
キャプチャボタンを押すと(1)の接続は切れる。
3.HP 50gのONボタンを押しながら、↑カーソルキーを押すと、キャプチャ画像がPCに転送される。
どうやら(1)ファイル操作の時はHP 50gがサーバーになって、(2)画面キャプチャのときはPCがサーバーになるようです。
そのため、ファイル操作と画面キャプチャを同時に使えません。
ここのところにも古さを感じます。
ちなみに以前紹介したテキサス・インスツルメンツ社の
TI-CONNECT CE
だと接続は自動だし、ファイル操作と画面キャプチャは同時にできます。
しかもMac版まであったりします。
自分の HP 50g ファームウェアの評価をまとめると以下の3点になります。
操作方法は HP-28C(1987年発売)からそのまま拡張された感じです。
HP 50g は2006年発売ですから19年もの歳月が流れています。
HP-28C が元になったGUIも賞味期限切れだったのでしょう。
GUIが大幅に改善できなかった理由に液晶画面の解像度が低すぎるというのもあると思います。
HP-28C の画面解像度は137×32画素でしたが、HP 50g になっても131×80画素しかありません。
19年もかかって約2.4倍しか画素が増えていないのです。
ただし、HP社の電卓部門は1990年代後半に売上が良いとはいえなかったようでHP 48シリーズの後継機種に十分な予算が出なかった可能性があります。事実、1999年に発売された HP 49G は HP 48シリーズよりもチープな作りでした。従来のプラスチックボタンはゴムボタンになり、従来のソフトケースはスライドケースになってしまいました。
しかし、HP 48シリーズが売れなくなったからと言って、予算を減らしてチープなものを作っていたらますます売れなくなるという悪循環に陥ったのではないでしょうか。HP 49G のような貧弱なものではなく、もっと大幅に性能を上げたもの、あるいは新シリーズの電卓を立ち上げるべきでした。
その後、HP社のカーリー・フィオリーナCEOが2001年にHP社の電卓部門を一時閉鎖して大量の電卓開発者が解雇されました。これも後にGUIが改善できなかった一因かもしれません。
NEC が技術的理由で Saturn CPU の製造ができなくなったとき、HP社が ARM CPU 上で Saturn 4bit CPU エミュレータを動かす方法を採用したのは、電卓開発者を大量解雇したので、新しい電卓シリーズを立ち上げる人材もいなかったのかもしれません。エミュレータがあれば今までのファームウェアの改造をするだけで済みますから。その代わり性能を大幅に上げることはできません。
結局、HP 50gまで Saturn CPU エミュレータが使われ、ハードウェアとファームウェアの大幅な改善はなく終わった感があります。
話は変わって、HP 49G から HP 50g まで続いている ALGモード(中置記法モード)も失敗だったと思います。ただでさえ複雑だった説明書をさらに複雑にしてしまっただけではないでしょうか。
それに ALG モードは画素数の多い画面が必要です。計算対象の数式とその結果を同時に表示するからです。しかし、HP 49G/49g+/50g はいずれも画素数が少ないので、ALGモードで使うとその画面解像度の低さをさらに強調してしまったのではないでしょうか。
RPN と RPL 言語のためだけに作られたハードウェアに ALGモードを搭載したため副作用が出てしまった気がします。
HP 49G は初期設定がALGモードで起動するようになったので、RPNに関心のない消費者(多数派)にとってHP社のHP 49G以降のグラフ電卓はRPNではない普通のグラフ電卓になったわけです。
そうなると HP 49G の比較対象はその1年前に発売された TI-89 になってしまいます。
HP 49G は Saturn 4bit CPU 4MHzです。対して TI-89 は初期型でも MC68000 32bit CPU (外部バス16bit) 10MHzです。これでは速度性能が全然違います。速度性能的には HP 49G は逆立ちしても TI-89 に勝てないのです。
それに加えて画面解像度、GUI、そしてキーの押しやすさも TI-89 の方が上です。
HP 49Gより前の時代、HP社のRPL言語搭載グラフ電卓はRPN+RPL言語という別の土俵にいたから 4bit CPU でも他社と勝負できたわけです。それなのにALGモードを付けて他社と同じ土俵に立ってしまったのですから却って不利になっただけではないでしょうか。
その後、HP 49/50シリーズは ARM9 CPU 75MHz 上で Saturn CPU エミュレータを動かして高速化することができました。
HP 49g+
(2003年発売)と
HP 50g
(2006年発売)は MC68000 CPU 16MHzを搭載した
TI-89 Titanium
(2004年発売)よりも高速になったのです。しかし、HP 50g は TI-89 Titanium を速度で圧倒するほどではありませんでした。
このサイトのベンチマークによると、HP 50g の方が TI-89 Titanium よりも総和計算で約1.5〜約1.7倍、積分計算で約1.1〜約5.8倍高速です。総和計算で大差はなく、積分計算も大きな負荷をかけたときだけ大差が出るだけですので、通常使用では大きな差は出ないのではないでしょうか。
それでも HP 50g は速度で TI-89 Titanium を超えたのは間違いありません。その一方、画面解像度、GUI、そして計算精度は TI-89 Titanium に追いつけませんでした。
結局、HP 50g が発売されてから1年後の2007年に TI-Nspireシリーズが発売されて、HP 50g は完全に時代遅れになりました。TI-Nspireシリーズはその性能と強力なGUIで HP 50g を圧倒してしまいました。
ところで、ALGモードの弊害は他にもあります。
RPL言語はRPNモードに極端に依存したものです。そのため、ALGモードしか使わない人がRPL言語を見ても何故スタックや後置記法(RPN)が必要なのか理解できないでしょう。
RPNモードで操作をしていれば、スタックと後置記法(RPN)は常に操作に使うので、RPL言語は理解しやすいはずです。
ALGモードしか使わない人がプログラミングを始めようとしてもRPL言語を難しく感じてやめてしまいそうな気がするのは私だけでしょうか。
結局、ALGモードを搭載して、RPNモードが分からない人をHPの世界に引き込んでも「HP社の電卓は難しい」と思われて終わりだったのではないでしょうか。HP 49G/49g+/50gは、GUIが古くて操作が難しく、プログラミング言語も後置記法(RPN)なので、ALGモードしか使わないユーザーには分かり難い電卓に過ぎません。
HP社は HP 49G でALGモードを付けるのではなくて、新シリーズの中置記法式のグラフ電卓を立ち上げるべきだったのです(HP 38/39/40のような教育用途専用ではなく、TI-89シリーズやTI-Nspireシリーズのような強力なもの)。
RPL言語搭載グラフ電卓はALGモードを付けずに新シリーズの電卓と並行して続けても良かったのではないでしょうか。
以上です。