[ 前へ | 目次 | 次へ ]
2019/01/26

シンプル&コンパクトなプログラム関数電卓!
「 リニアンプロセッサー nano 」の概要

Vnano

RINEARNでは現在、デスクトップの隅に置いて手軽に使えるようなものを目指した、 非常にコンパクトなプログラム関数電卓ソフト 「 リニアンプロセッサー nano(ナノ) 」 を開発中です。 今回は、開発途中のバージョンの画像などを踏まえながら、このソフトの概要を解説します。

※ このページで紹介されている「 リニアンプロセッサー nano 」は、名前が少し長すぎたため、その後「 RINPn(りんぷん)」に改名されました。公式サイト: https://www.rinearn.com/ja-jp/rinpn/

前提となるリニアンプロセッサーについて

リニアンプロセッサー nano は、その名前の通り、既存のプログラム関数電卓ソフト「 リニアンプロセッサー 」の派生版となるソフトです。 そこでまず、この( nano ではない方の)リニアンプロセッサーの特徴について簡単にご説明します。

リニアンプロセッサー

グラフ描画機能や関数定義・プログラム実行機能をサポートした関数電卓

リニアンプロセッサーは、RINEARN において2010年から現在まで、幾度かメジャーバージョンアップを経ながら公開している、 比較的高機能な関数電卓ソフトです。 アニメーション対応の2次元&3次元グラフ描画機能が大きな特徴ですが、 もう一つの特徴としてC言語系の簡易プログラミング言語「 VCSSL 」をサポートしており、 それによる自動処理や、独自関数(いわゆるユーザー定義関数)の自作などを行う事ができます。 また、それなりに豊富なライブラリ機能を用いて、GUIなどを備える計算アプリなどを開発し、メニューバーに登録して使う事などもできます。

電卓ソフトの中では、シンプルさやコンパクトさよりも、機能性やカスタマイズ性を重視したタイプのもの

世の中に電卓ソフトは多数存在しますが、 一つの方向性の分類の軸としては、「 シンプルさやコンパクトさを重視したもの 」と、 「 機能性(特殊な用途への特化を含む)やカスタマイズ性を重視したもの 」の2パターンに分けられるのではないでしょうか。 恐らくこれら2つの方向性は、ある程度までは両立できても、突き詰めるとトレードオフがあり、結局は個々のソフトがどちら側に軸足を置くかという話になるのだと思います。

既存の( nano でない方の )リニアンプロセッサーは後者で、先に述べた通りの色々な機能を盛り込んでいます。 電卓ソフトとしてはやや限定的な層向けになってしまっている事もあり、いわゆるヒット作ではないものの、 意外とニッチな需要もあるようで、 加えて雑誌やWebメディア様に何度か取り上げて頂いた事もあり、10年近くにわたって開発が継続しています。

半面、「 日常での使い勝手 」に課題も…

一方で、既存のリニアンプロセッサーは、 電卓ソフトとしては大柄な画面を持ち、起動や操作のレスポンスも電卓ソフトとしては比較的重めな部類に入ります。 その代償を払う代わりに、色々な機能を盛り込んでいるわけです。 ただ、単純な1行の計算式の値を求めるだけのような用途においては、 使わない機能のために画面の面積や操作の応答時間などが消費されるのは無駄になってしまいます。

そして、日常的な場面での使用頻度では、 むしろそのような単純な用途のほうが恐らく多いのが悩み所でもあります。

リニアンプロセッサー nano の開発コンセプトと特徴

リニアンプロセッサー nano では、逆にシンプルさとコンパクトさを優先

そこで、既存のリニアンプロセッサーから、日常的な場面での使用頻度が多いと思われる機能のみを抜き出して、 「 シンプル & コンパクト 」 な方向性の電卓ソフトとしてまとめる事を目指したのが、今回の「 リニアンプロセッサー nano 」 です。

下図は、実際にリニアンプロセッサー nano を起動した画面の様子です。このWebページをPC上で見ている場合は、ほぼ原寸大で表示されています。

リニアンプロセッサー nano の画面

このように、リニアンプロセッサー nano では、入力項目やボタンなどの部品を必要最小限に絞った、非常にシンプルな画面デザインを採用しています。

加えて、別のウィンドウ上に重ねて作業する事を想定して、常にウィンドウの最前面に表示されるモードをサポートします。 その際、邪魔な雰囲気を極力感じさせないように、実は画面は半透明で、背景が少し透けるようになっています。 実際に使い勝手のイメージが伝わりやすいように、デスクトップ背景をイメージした画像の隅(右下の端)に重ねて置いた様子が下図です。

デスクトップ背景をイメージした画像の隅に重ねて置いた様子

このように、作業しながら画面の隅にちょこっと置いて計算するのに便利な形になっています。 なお、上の画像では、Webページ上のサイズで見やすくするために、実際のデスクトップ上に置いた印象よりは、リニアンプロセッサー nano の画面を大きめに見せています。 実際のフルHDディスプレイ上での比率では、もっとずっとコンパクトです。

既存のリニアンプロセッサーから、機能面はかなり割り切って取捨選択
―― 計算式の全体を入力できる事や、プログラムで関数を自作できる事などは踏襲

このように、リニアンプロセッサー nano は、機能性やカスタマイズ性を重視した既存のリニアンプロセッサーに対して、 その派生版として、逆にシンプルかつコンパクトな方向性の電卓ソフトを目指したものです。 そのため、機能面では割り切った取捨選択を行い、「 本当に日常で頻繁に使うか? 」 という観点から、かなり絞り込んだものになる予定です。 例えば、10進ベースで任意精度の多倍長演算を行う「 VF(varfloat)モード 」や、画面を最大化するとプログラムのエディタとして使えるようになる機能などは、 nano ではサポートされません。 グラフ描画機能も、現状の予定では nano では採用しない見込みです(ただし、後々の判断で追加する可能性もあります)。

一方で、計算式の全体を入力できる事や、独自関数(いわゆるユーザー定義関数)をプログラムを書いて自作できる事については、 リニアンプロセッサー nano でもサポートされます。これは、関数電卓ソフトとして、これらの機能は日常利用でもメリットが大きいと判断したためです。 なお、画面デザインの複雑性を上げないように、関数は別ファイルに記述し、自動で読み込まれる方式となります。

プログラム機能にはVCSSLサブセットの「 Vnano 」を採用

アプリケーション組み込み用途に特化した新スクリプトエンジン「 Vnano 」により、軽快なレスポンスを重視

リニアンプロセッサー nano は、既存のリニアンプロセッサーの派生版とは言っても、それは上で述べたような開発コンセプト上のものであって、 ソフトウェアの実装としては土台から完全な新開発を行っています。

これは UI のような目に見える部分だけではなく、より中心的な、計算式やユーザー定義関数などを解釈・実行するスクリプトエンジンについても同様です。 具体的には、リニアンプロセッサー nano では、 新開発のコンパクトなスクリプト言語&エンジン「 Vnano (VCSSL nano)」 を採用しています。 Vnano は、アプリケーション組み込み用途に焦点を絞り、機能を必要最小限に抑える事で、 スクリプトエンジンをコンパクトにする事を目指した、VCSSL のサブセット(機能限定版)です。

Vnano

既存のリニアンプロセッサーで採用している言語のVCSSLは、 単体のスクリプト言語としても使える水準の機能性を目指した代わりに、 起動や実行開始までのオーバーヘッドが比較的大きく、 従ってシンプルさや軽快さを重視したいタイプのアプリ内に組み込むには、そこがネックになってしまう面があります。 Vnano では逆に、アプリ組み込み用途に割り切って機能を削り込む事で、その代わりとして軽快なレスポンスを実現します。

Vnano のプログラムは VCSSL としても動作
―― リニアンプロセッサー nano 用のプログラムはリニアンプロセッサーでも使用可能

VCSSL に対する Vnano( VCSSL nano )の位置づけは、ちょうど既存のリニアンプロセッサーに対する、リニアンプロセッサー nano の位置づけに一致しています。

それぞれ同じ骨格を共有しながら、前者( nano でない方 )は機能性を重視したもので、後者( nano )は機能をコンパクトに抑えて軽快さを重視したものとなっています。 ユーザー側からの視点としては、 後者に対して機能不足を感じれば前者を使用し、前者に対して無駄な機能のせいで重いと感じれば後者を使用する、という使い分けを想定しています。

そのような相補的な使い分けを実現するために、Vnano のプログラムは、原則として VCSSL のプログラムとしても実行できるようになっています。 そのため、リニアンプロセッサー nano のために書いたユーザー定義関数などは、nano でない方のリニアンプロセッサー上でも、そのままコピー&ペーストして使う事ができます。

今後の予定

オープンソースのソフトウェアとしての公開を予定
―― まずは開発版ソースコードの公開と逐次更新から

RINEARNでは、リニアンプロセッサー nano は、スクリプトエンジンの Vnano と同様に、オープンソースのソフトウェアとして公開する事を予定しています。 ライセンスは、メジャーなオープンソースライセンスの一つであるMITライセンスになる見込みです。

リニアンプロセッサー nano の開発は今年に入ってからスタートしたものですが、 そもそもが「 シンプル&コンパクト 」な形を目指しているため実装規模も小さく、そのため現時点で既に試作版が動作する程度までは進んでいます。 そこでまずは、恐らくそう遠くない内に、開発中のバージョンを GitHub 上などで、ソースコード込みで公開する予定です。

正式リリースは Vnano のスクリプトエンジンとの兼ね合いで、2019年内(なるべく早期)を目標に

一方で、完成したバージョンとしての正式なリリース時期については、現状では未確定です。

これは、そもそもプログラム機能のために使用する Vnano のスクリプトエンジン自体が、GitHub の公開リポジトリ上でまだ開発の途中であるためです。 具体的には、機能上はほぼ全て揃っているものの、品質やテスト等がまだ追い付いていない状態です。 リニアンプロセッサー nano は、ソースコードの内訳ではこの Vnano のスクリプトエンジンが大半を占めるため、両者の正式リリースはほぼ同時になる見込みです。

未確定ながら、一応の暫定的な目標としては、2019年内のなるべく早期の正式リリースを目指しています。

リニアンプロセッサー nano についての続報は、また追ってこのコーナーにてお知らせいたします。


[ 前へ | 目次 | 次へ ]

リニアングラフ3DのVCSSL用APIにカメラ制御関数を追加、回転アニメーションツールも同梱
2019年10月09日 - RINEARNでは10月9日にソフトウェアの最新版をリリースしました。VCSSLのAPI関数の追加や、リニアングラフ3Dのアニメーションツールの追加など行っています。その概要をお知らせします。

小型関数電卓 RINPn(旧称リニアンプロセッサー nano)の公式ページを開設
2019年10月02日 - 現在オープンソースで開発中の、「シンプル&コンパクト」を目指した小型プログラマブル関数電卓ソフト「 RINPn 」の公式ページが、RINEARNサイト内にオープンしました。その概要をお知らせします。

Vnanoの公式サイトがオープン、チュートリアルやAPI仕様書等も掲載
2019年08月07日 - オープンソースのアプリケーション組み込み用スクリプトエンジン「 Vnano 」の公式サイトを開設しました。チュートリアルや、スクリプトエンジンのAPI仕様書などが参照できます。その概要をお知らせします。

リニアングラフ3D/2Dが連番ファイルのアニメーションに標準で対応
2019年07月17日 - リニアングラフ3D/2Dでは、7月17日公開の最新版より、連番ファイルを連続的に読み込みながらアニメーション描画するプログラムを同梱し、メニューから標準で使用可能になりました。その概要をお知らせします。

Vnanoのスクリプトエンジンアーキテクチャ解説2: コンパイラ
2019年07月03日 - オープンソースで開発中のスクリプトエンジン「 Vnano 」のアーキテクチャを解説する連載の第2回です。今回は、スクリプトを中間コードへと変換する、コンパイラ部分の内部をクローズアップして解説します。

Vnanoのスクリプトエンジンアーキテクチャ解説1: 全体像
2019年05月28日 - RINEARNでは現在、 アプリケーション組み込み用スクリプトエンジン「 Vnano 」を、オープンソースで開発中です。今回は、このスクリプトエンジンのアーキテクチャ面を掘り下げて解説します。複数回の連載予定です。

リニアンプロセッサー nano の先行開発版やソースコードリポジトリを公開
2019年04月16日 - オープンソースで開発中の小型プログラム関数電卓ソフト、「 リニアンプロセッサー nano 」の先行開発版やソースコードリポジトリを公開しました。概要と使用方法、ビルド方法などについて解説します。

各ソフトウェアの最新版を一括でリリース、OpenJDKのJava実行環境(JRE)に対応
2019年03月06日 - RINEARNでは3月6日に、主要なソフトウェアの最新版を一括でリリースしました。今回のアップデートには、以前お知らせした、OpenJDKで生成したJREへの対応が含まれています。その概要等をお知らせします。

次回のVCSSL 3.4.10において、関数1個の挙動に非互換な修正が適用されます
2019年02月12日 - VCSSLの次回の正式リリース版3.4.10において、これまでドキュメントと実際の挙動が異なっていた描画系の関数1個に、非互換な修正が適用されます。その詳細と、使用コードでの対応方法について解説します。

RINEARNのソフトウェア向けにOpenJDKで生成したJava実行環境(JRE)の提供を開始
2019年02月06日 - Javaのリリースモデル変更への対応として、OpenJDKのjlinkツールを用いて、RINEARNのソフトウェア実行用に生成したJava実行環境(JRE)の提供を開始しました。その詳細と、今後の方針について解説します。

シンプル&コンパクトなプログラム関数電卓! 「 リニアンプロセッサー nano 」の概要
2019年01月26日 - RINEARNでは現在、プログラム関数電卓ソフト「 リニアンプロセッサー 」の派生版として、シンプル&コンパクトな方向性を目指した「 リニアンプロセッサー nano 」を開発中です。その概要をご紹介します。

この階層の目次
[ 前へ | 目次 | 次へ ]
新しいお知らせ

アシスタントAI作成の舞台裏(その1、基礎知識編)
2024-10-07 - アシスタントAI作成方法解説の前編です。今回はまず、アシスタントAIを作る前に抑えておきたい、基礎知識を延々と解説しています。そもそもLLM型AIとはどんな存在か? RAGとは何か? 等々です。

ソフトの利用をサポートしてくれるアシスタントAIを提供開始!
2024-09-20 - RINEARN製ソフトの使い方の質問応答や、一部作業のお手伝いをしてくれる、アシスタントAIを提供開始しました。ChatGPTアカウントさえあれば、誰でも無料で使用できます。使い方を解説します。

Exevalator 2.1 をリリース、新たに Visual Basic に対応
2024-07-28 - オープンソースの式計算ライブラリ「Exevalator(エグゼバレータ)」の2.1をリリースしました。今回から、新たに Visual Basic(VB.NET)でも使用できるようになりました。詳細を解説します。

関数電卓 RINPn(りんぷん)、Esc キーで計算式の一発クリアが可能に
2024-07-20 - 関数電 RINPn の Ver.1.0.2 をリリースしました。今回から、キーボードの「 Esc 」キーを押すと、入力中の計算式を一発でクリアできるようになりました。詳細を解説します。

Exevalator 2.0 をリリース、互換性に注意が必要なバグ修正が 1 件
2024-07-14 - オープンソースの式計算ライブラリ「Exevalator (エグゼバレータ)」の2.0をリリースしました。今回の更新では、互換性に注意を要する 1 件のバグ修正があります。詳細を解説します。

各ソフトウェアをアップデート、リニアングラフのコマンド拡張やVCSSLの英語対応など
2024-02-05 - 各ソフトの一斉アップデートの内容をお知らせします。今回は、リニアングラフのコマンド機能を大幅拡張したのがメインです。また、VCSSLのメッセージ類の英語対応も行いました。

Vnano の Ver.1.1 で実装した反復計算高速化の内側
2024-01-17 - 前回のお知らせ記事の続編です。スクリプトエンジン Vnano の Ver.1.1 において実施した高速化を、エンジン内部の実装面から掘り下げて解説します。

スクリプトエンジン Vnano の Ver.1.1 を公開、同じ内容の反復実行が劇的に高速化
2023-12-22 - スクリプトエンジン Vnano の最新版を公開しました。同じ計算式やスクリプトを反復実行する速さが、大幅に向上しました。次期版リニアングラフ3D内での活用例を交えつつ、詳しく解説します。