ホーム > President Blog : Sophia Cradle Incorporated

Sophia Cradle IncorporatedPresident Blog : 2005年10月

2005 年 10 月 10 日 : svHacker by Sophia Cradle

英国にある ARM 社をご存知だろうか。携帯電話やPDA、ゲーム機、デジカメなどの組込み機器向けマイクロプロセッサを製造販売している会社である。アップルのiPOD、ソニーのPSP、Nintendo DS のプロセッサも ARM 社製である。組込み機器の分野ではそのシェアは全世界が約 80 %を占めるほどメジャーな存在だ。

ソフィア・クレイドルでは、ARM 社が提供するマイクロプロセッサが携帯端末の急激な普及にともなって世界中にひろまると見込んでソフト事業を展開している。そのひとつのテクノロジーが近日中に発表を予定している"svHacker"なのだ。

それでは"svHacker"とは何なのだろうか?

AUの携帯電話には ARM 社のマイクロプロセッサが搭載されていて、その上に米国 Qualcomm 社の OS があり、BREW というソフトプラットフォームがその OS の上に載っている。携帯電話に ARM のマイクロプロセッサが載っていることは極めて魅力的である。何故ならば、iPOD、PDA、PSP、NintendoDSなどで動作するソフトが携帯電話で使えるようになるかもしれないからである。(NTTドコモや vodafone の携帯電話も大半の機種で ARM 社提供のマイクロプロセッサが利用されている)

それを阻む障害が AU の携帯電話の BREW の仕様にあり致命的なものであった。それは C 言語で利用が認められている大域変数(static variable)が使えないこと。それから ARM の浮動小数演算などの標準組込み関数が使えないのだ。

BREW の仕様を超えて大域変数を利用可能にするのがsvHackerである。ARM の標準組込み関数へのアクセスは SophiaFramework という製品によって実現された。

BREW の仕様の範囲外の話なのでソフィア・クレイドルとしては保証の限りではない。けれども iPOD、PDA、PSP、NintendoDSなどで動作するソフトが 携帯電話に移植され利用可能になれば携帯に新しい視界がひらけるような気がする。

2005 年 10 月 10 日 : ハイテクベンチャー

マイクロソフトシークレット―勝ち続ける驚異の経営」(日本経済新聞社)に、マイクロソフト( 1975 年創業)の 1975 年から 1995 年までの成長の軌跡が記載されている。その中でも注目すべきなのが最初の 5 年間のデータではないかと思う。最初の 3 年間の数字を見る限り、ごく普通の零細中小ベンチャー企業に過ぎない。しかしマイクロソフトはいまや押しも押されもせぬ時価総額世界 No. 1 の大企業である。

------------------------------------------------------------------------------
年度(年)  売上高(千ドル)   伸び率(%)   従業員数(人)
------------------------------------------------------------------------------
 1975                     16                     −                         3
 1976                    22                    38                          7
 1977                382                  636                        9
 1979             1,356                  256                      13
 1980              2,390                 76                      28
------------------------------------------------------------------------------
※ 売上の伸びと比較して、従業員数の伸びは著しく低い。

一般に、マイクロソフトオラクルアップルなどハイテクベンチャーの場合、ひとつの製品の研究開発に 18ヶ月、そしてマーケティングに 18ヶ月、少なくとも計 36ヶ月の時間がかかるといわれる。マイクロソフトもその例に漏れず、創業 4 年目以降、破竹の勢いで業績を伸ばしていった。

ハイテクベンチャーの場合、事業の着想を得てからそれが現実のものとなるまでに、少なくとも 36ヶ月の期間が必要であると想定して起業するのが重要なポイントだと思う。気長な話かもしれない。ネット系の IT ベンチャーであれば 36ヶ月もあれば株式上場すら不可能な話ではない。しかしハイテクベンチャーでは 36ヶ月経って初めてそれが事業として成立するか否かが実証されるといった状況なのである。

しかも 36ヶ月経つまでに事業が立ち行かなくなるベンチャーも多い。また持ちこたえたとしても、飛躍的に成功を遂げるものは指折り数えるほど珍しい存在でしかない。一方、ネット系 IT ベンチャーの場合、結果は数ヶ月で出るものも多く 12ヶ月もあれば概ね結果は見えてくる。創業して 36ヶ月以内の株式上場も全然夢ではない。

そんな背景もあってか、世界マーケットを視野に入れたハイテクベンチャーを志す起業家が周囲に極めて少ないと感じる。時間を要し成功率も低いのであればそれが最大の参入障壁になるのだろうか。現在の事業を創めてまもなく 4 年になろうとしているがいまだにソフィア・クレイドルと競合するベンチャー企業は現れていない。

ネット系 IT ベンチャーを創めて手っ取り早く稼ぐのもひとつの手段であり、実際のところその道の選択もあり得た。敢えてその道を選ばなかった。その理由ははっきりしている。客観的な成功確率は低く時間はかかるかもしれない。けれども自分の思いが実現したとすれば、マイクロソフトのごとくテクノロジーは世界中にひろく影響を及ぼすことができるだろう。それは人生において一度経験できるかどうかといえるほどのワクワク&ドキドキ感なんだと思う。

2005 年 10 月 09 日 : チャレンジング 

大学受験を目前にした頃、どの学部に入学すべきかについて迷っていた。結局その選択が今の自分を運命付けた。その時違う道を進んでいたら今頃…という想像もできるけど、個人的に最善の決断をしてきたと思っている。

今でこそコンピューターは子供の時からの身近な存在であるが、当時、大抵の人にとっては大学でコンピューターに触れるという感じだった。初めてコンピューターに 2 進数で記述された自分のプログラムをインプットしそれは問題なく動作した。その時に味わった感動は今でも忘れられない。プログラミングに深い興味を持ったのもその瞬間で、それからずっとプログラミングの仕事をしている。

プログラムとは、人がコンピューターへ送るメッセージを表現するものである。コンピューターが発明された当初は文字通り 0 と 1 からなる 2 進数で記述するしかなかったので専門家にしか使えない代物だった。ほどなくして日常の言葉に近いプログラミング言語が発明された。コンピューターが止め処無く進化発展を遂げている理由のひとつはプログラミング言語の発明によるものだ。

日常生活において当たり前に使っている電気製品。そのほとんどはプログラミング言語で記述されたプログラムに従ってコントロールされていている。それを考えると、プログラミング言語の果たす役割は偉大である。

そういうことがあって、あるプログラムを開発するというよりはあらゆるプログラムを記述するためのプログラミング言語に関連のある仕事に携わりたい。それが初めてコンピューターに触れたときから今日に至るまで一貫して持ち続けている自分の目標である。

プログラミング言語に求められるものとは何なのだろう。それは自然言語と比較してみると、コンピューターに自分の心の中にある思いや考えがストレートに正しく伝わるというところにありそうな気がする。しかし誰もが簡単にプログラミングできるわけではなく、ほんの一握りの人たちしかプログラマーになり得ない現実がある。それ故、ビジネスのポテンシャルも計り知れないほどに存在しているといえるのではないだろうか。

2005 年 10 月 07 日 : エンドレスな軌跡

販売すべきソフトウェア製品が完成した今、ソフィア・クレイドルのビジネスは単純に次の方程式で表現できる。(ライセンスビジネスなので [売上] = [粗利益] )

[粗利益] = [製品の種類] × [販売価格] × [販売数量]

この方程式の利益を最大化する目的の一種のゲームを考えてみよう。このとき、ゲームに勝利するには「製品の種類」「販売価格」「販売数量」の各パラメーターを最大化する方法を発見すれば良い。人的にも物的にも資金的にもいろんな制約条件がある。だからこれら三つのパラメーターは相矛盾し同時にプラスというわけにはいかない。それ故にアーティスティックなバランス感覚が要求される。

恐らく重要なのは経営におけるプライオリティであろう。プライオリティとはどのようにして設定するのがベストだろうか。起業家ごとに経営のスタンスは異なる。経営に対する自分の思いを表現する姿勢が問われる事柄だ。

できる限り長くソフィア・クレイドルが存続できるようにという思いが私のスタンスである。歴史を振り返った時にある事実に気付いた。どんな組織も範囲を拡大しようとするあまり却って衰退を加速するのではないだろうかということだ。ローマ帝国、モンゴル帝国、古代中国の秦など、あらゆる組織が巨大化することによって繁栄は築けても結果として必ず崩壊を余儀なくされている。だからソフィア・クレイドルの存続を願うには、できるだけ少人数で運営する仕組みやシステムこそが最もプライオリティが高いと考えている。

そのためには「販売価格」を高値で維持することが最も近道ではあるが、一般に製品価格と販売数量は反比例の関係にあって製品価格を高くするとその分製品の販売数量は減少する。

ではどうすれば良いかというと量より質を追求することである。この場合の量とは製品の種類のことである。製品の種類が多ければ多いほど開発や販売に携わる人の数は増える。だからと言って新製品は売れるとは限らない。大抵の新製品はマーケットからすぐ姿を消している。

ある種のヒット製品には限りなく売れ続けるというマーケットの側面がある。コンピューター業界ではそれが顕著である。Windows、Intel、Apple、ORACLE、Adobeなどの製品は寡占状態とも言える。販売する製品を限りなく絞ってヒットさせれば、同時に販売数量も最大化されるのではという未来が予想できる。

製品を販売し受注し出荷する業務そのものをシステムとしてIT化すれば、ソフトウェア製品なので販売数量が増えても人員を増やすことなく単純にコンピューターをグレードアップしたり台数を増やすだけで済む。至極シンプルなビジネスモデルが出来上がる。

もう一つ大切なことがある。それは絞り込んだ製品がロングレンジに渡って売れ続けるかどうかという視点だ。ロングセラーをどうやって発見するかが真の課題なのだ。IT 業界の場合、私たちが日常で使っている言語(言葉)から類推してプログラミング言語の周辺にあるのではないかという仮説を立てることができる。日本語も英語にしてもあらゆる言葉について言えるのは何百年間もその基本形は変わっていないということだ。

IT 業界では、次から次へと限りなく新製品の発売が繰り返されている。しかしそのコンピューターを動かしているソフトウェアそのものを記述しているプログラミング言語の大半は C/C++ や Java もしくは BASIC だ。ドッグイヤーとかラットイヤーとか言われて慌しい IT 業界でも、それを記述するプログラミング言語の世界では時が止まっているがごとしである。

1975年、ビル・ゲイツ氏が率いるマイクロソフトの歴史がスタートした。マイクロソフトの最初の事業は BASIC というプログラミング言語に関連するものであった。その BASIC は名こそ Visual BASIC と変われども、30年以上時を経た今も売れ使われ続けている。

果てしなくひろがるビジネスのヒントはこんなところに隠されていたりする。

2005 年 10 月 06 日 : テレポーテーション

テレポーテーションとは物体がある地点から別のある地点へ距離の隔たりを超えて瞬間的に移動する現象のことをいう。このSFめいた話が現実のものと空想してみた時、私たちのビジネスの価値はまさしくこれじゃないのかと思った。

x,y,z軸から構成される3次元空間に状態s軸を導入して4次元空間へと拡張してみる。もしお客様がソフィア・クレイドルの製品を手にすれば、例えばプログラムの圧縮作業とかユーザーインターフェースの開発作業とかをショートカットして瞬間的に次の状態に移り変わる。

ある意味でこの状態遷移は一種のテレポーテーションというわけで、視点を変えれば夢のような出来事を私たちは実現しているんだと自負することもできる。

その時注意が必要なのは、テレポーテーションする際の安全性ではないだろうか。『ザ・フライ』ではテレポーテーションの際のささいなバグが悲劇を招いた。それは私たちの製品の未来にとって重要な教訓になりそうな気がする。

想像以上に便利なツールであるからこそ、安全性というものに細心の注意を払わなければならない。

2005 年 10 月 05 日 : 計り得ぬ価値創造

2005年10月3日、新月の日。ソフィア・クレイドルの第5期がスタートした。それに併せるように期待の新作 SophiaFramework Ver 3.0(β) を発表した。βとは言え実際のところ製品となんら遜色はない。

Chief Software Architectがしばらくの間、調整の休養をとるので万全を期してβにしただけ。創業以来3年半以上もの時間をかけて開発した渾身の作品である。不眠不休で仕事に没頭する景色にオフィスが彩られることもあった。

リフレッシュして新たな創作活動をするには長期休養が必要なときもある。最近、山下達郎やサザンオールスターズが相次いで6〜7年振りに新作をリリースしている。プロフェッショナルな傑作を世に送り出そうとすればそれなりに歳月がかかるものだ。あるときは何も考えずエンドレスに過ごす時の流れにも意味を見出せる。そんなひと時があるから数字に換算できないほどの価値が生まれる。

創業当初、マーケティングとイノベーションのマネジメントの両面で苦戦することも多かった。でも期を5回重ねるとなるとマネジメントも安定感が桁違いに増してくる。その時ある人は完全無欠なビジネスプランを書き下して、株式上場というようなプランを思い描いたりする。

第5期という事業年度を迎えて思うのは、売上や利益といった数字より遥かに価値があることってあるんじゃないの、ということだ。例えば、名作、名曲といわれる絵画や文学、クラシック音楽というものは数字に換算できないということである。むしろそんなものの方がロングレンジに構想するのならば価値がありそうに思えてくる。

ソフィア・クレイドルの経営の根幹は、そういった過去の歴史の過程を経て現代までに伝わってきた数々の作品の影響を強く受けている。

経営が安定してきた今こそ、目標とすべきは時を超えて生きる作品の創作活動ではないかと思ったりする。傑作と称される作品ほど定められた計画とは別の領域で創られるような気がする。何らかの秘訣は確かにありそうだ。

数字には換算できない価値を創造すること。ソフィア・クレイドルの目標は変化しつつある。

2005 年 10 月 04 日 : 253倍のスピードアップ

従来、組込みソフトC++言語でプログラミングされることはほとんどなかった。何故ならCPUスピードやメモリ容量などのハードウェア的な制約があるからだ。しかしPCのソフトはどうだろうか?限りなく多くの人々が利用する製品レベルのソフトほどC++言語でプログラミングされている。

例えば、Javaシステムの核ともいえるJavaVMもC++言語で実装されているものが多い。Macromedia社の著名なあるソフトでもクラッシュ直後にC++のエラーメッセージが表示されるのを目撃したりする。

昨日、ソフィア・クレイドルが発表したSophiaFrameworkという製品は、組込みソフトが実用レベルでC++プログラミングできるという革新に最大の特長がある。試験的に速度の向上を計測したところ、下記レポートにあるように最大253倍のスピードアップが確認された。

飛行機の発明のおかげで人々は世界の大空を自由に駆け巡れるようになった。同じく、ハードウェア制約の厳しい組込みの世界で桁違いのスピードアップを狙うのならば何らかの抜本的なブレークスルーが必要である。前回のリリースからこの1年半以上に渡る期間というものは、ひたすらこのイノベーションに捧げられたといっても過言ではない。

スタッフの計測実験レポート。
---------------------------------------------------------------------------
SophiaFramework3.0の新旧の性能比較は以下の通りです。

文字列はどのアプリケーションでも多用される基本的なオブジェクトです。新バージョンのSophiaFrameworkでは文字列処理にかかるコストが大幅に削減されました。文字列以外のオブジェクトももちろん最適化されています。例えば、コレクションクラスなどは構造自体が変化しているので、単純な比較はできません。ここでは文字列クラスを取りあげ、どの程度速度が向上しているかを示します。


■例1:文字列の追加

void func1() {
int i, j, sum;
SFXAnsiString str; // 旧バージョンではSFUAnsiString

sum = 0;
for (i = 0; i < 10; i++) { // 10回計測
int startms = GETTIMEMS(); //計測開始
for (j = 0; j < 1000; j++) { // 1000回実行
str += "abcdef"; //文字列の追加(今までの文字列に"abcdef"を追加)
}
int endms = GETTIMEMS(); //計測終了
DBGPRINTF("%d", endms - startms);
sum += endms - startms;
}
DBGPRINTF("avarage = %d", sum / 10);
}

計測された時間(単位は ms)

旧バージョン 2.2
246
691
1161
1698
2269
2802
3348
3849
4364
4909
average = 2533

新バージョン 3.0
10
11
10
10
10
10
10
11
10
10
average = 10

解説

文字列 str に繰り返し "abcdef" 文字列 を追加していく動作です。
例えば、ネットワーク通信で受信した文字列を今ある文字列に次々に追加していく場合、このようなコードが出てきます。

SophiaFramework 旧バージョンでは文字列の追加のたびに新しいインスタンスを生成したため、大幅な時間のロスとなっていました。新バージョンではこのようなロスをなくし、時間短縮がなされています。


■例2:文字列の検索

void func2() {
int i, j, sum, temp;
SFXAnsiString str; // 旧バージョンではSFUAnsiString

sum = 0;
for (i = 0; i < 10000; i++) { // 文字列の準備(abcabc... と続く文字列を用意し、途中に"SophiaFramework3.0"の文字列を挿入したものを用意する)
if (i == 5000) str += "SophiaFramework3.0";
else str += "abc";
}
for (i = 0; i < 3; i++) { // 3回計測
int startms = GETTIMEMS(); //計測開始
for (j = 0; j < 100; j++) { // 100回実行
temp += str.IndexOf("SophiaFramework3.0"); //文字列の検索(何文字目にあるか)
}
int endms = GETTIMEMS(); //計測終了
DBGPRINTF("%d %d", endms - startms, temp);
sum += endms - startms;
}

DBGPRINTF("avarage = %d", sum / 3);
}

計測された時間(単位は ms)

旧バージョン 2.2
7019
6998
7008
average = 7008

新バージョン 3.0
1281
1299
1280
average = 1286

解説

長い文字列から"SophiaFramework3.0"の文字列が何番目にあるかを探しています。
こちらも効率化により時間が短縮されています。

■例3:文字列の置き換え

void func3() {
int i, j, sum;
SFUAnsiString str; // 旧バージョンではSFUAnsiString
SFUAnsiString temp_str;

sum = 0;
for (i = 0; i < 10000; i++) { // 文字列の準備
if (i == 5000) str += "SophiaFramework2.2";
else str += "abc";
}
for (i = 0; i < 3; i++) { // 3回計測
int startms = GETTIMEMS(); //計測開始
for (j = 0; j < 10; j++) { // 10回実行
temp_str = str.Replace("SophiaFramework2.2", "SophiaFramework3.0"); //文字列の置換
}
int endms = GETTIMEMS(); //計測終了
DBGPRINTF("%d %d", endms - startms, temp_str.Length());
sum += endms - startms;
}

DBGPRINTF("avarage = %d", sum / 3);
}

計測された時間(単位は ms)

旧バージョン 2.2
3741
3741
3724
average = 3735

新バージョン 3.0
626
626
626
average = 626

解説

長い文字列から"SophiaFramework2.2"の文字列を見つけ出し、"SophiaFramework3.0"に置換しています。

以上

<前のページ |  1  |  2  |  3  |  4  |  5  |  6  | 次のページ>