HarmonyOSはOPENSTEPか?

Hiroki Kaneko
13 min readJun 5, 2021

--

Photo by Victor Garcia on Unsplash

カーネルとしてはLinux、HarmonyOSマイクロカーネル、Huawei LiteOSを利用できるマルチカーネルデザインを採用。ターゲットとするハードウェア環境によって開発者がカーネルを選択できるようにしており、カーネル抽象化層(KAL。Kernel Abstraction Layer)を設けることで実装の違いを隠し、基本的なカーネル機能を上位層に提供するという。

カーネルを抽象化できるというので、「OPENSTEPみたいだ」と思ったオッサンであった。そうなるとHarmonyの「売り」は独自カーネルではなくユーザーランドであると考えるべきだけど、ドキュメントを流し読みしたが何がメリットなのかよく分からなかった。

OPENSTEPの昔話

昔、NeXT Computerという会社がアメリカにあった。創業者はスティーブ・ジョブズという大層口のうまいセールスマンだったので、日本の光学機器メーカーであるキヤノンに出資させて、独自ワークステーションやプリンターを作る工場を作ったのだが「日本人は腐った魚のような目をしている」と今どきトランプでも言わない人種差別的セリフを言い放った。それ以来私は川崎駅前や品川駅前のキヤノンのビルを見る度に「この中に数千人の腐った魚のような目をした奴らが…」と思うようになってしまった。
閑話休題。NeXT Computer Systemは当時としてはとても先進的だったが、いかんせんCPUがモトローラの68030とか040という前時代的なCISC型であり、当時はSunのSPARCなどRISC型が席巻していたために売れなかった。そこでジョブズはハードウェア部門を売却し、社名もNeXT Softwareと変更してOSおよびフレームワークを販売するソフトウェア会社として生き残りをかけていた。そして見本市のNeXT社ブースの中で採用面接などもしていた。
NeXTのOSはNEXTSTEPという名の、Machマイクロカーネル上にBSD系UNIXのユーザーランド、そして更にアプリケーション層には独自のWorkspace Managerというシェルを用意し、アプリ開発環境として’80年代当時、先進的なCとSmalltalkのハイブリッド・オブジェクト指向言語と目されていたObjective-Cを採用、GUIもInterface Builderでマウスによるドラッグ&ドロップで迅速に開発可能と、’80年代後半に「UNIX上に新たなプログラミング・パラダイムを構築しようとしている*1」野心的な製品だった。

https://images.app.goo.gl/ppMdrYfRJeFBftNC6

↑誰だ「Windowsに似ている」と言ったやつは?WindowsがNEXTSTEPをパクったんだ。

上記スクリーンショットに、動画再生アプリ「NEXTIME」が見える。AppleのQuickTimeに対抗してその名前はねえだろ、と当時思ったけど、Appleへのプレゼンの時にジャン=ルイ・ガセーがBeOSで見せた3つの動画の同時再生に対抗してジョブズはNEXTIMEで4つ同時に再生してみせたんだっけ?正確な再生数は忘れた。ジャン=ルイ・ガセーはMediumにブログを持っているから直接本人に聞いてくれ。ああ、当時から気になっていることがあるけど聞いたら失礼だろうか?OSが持つマルチスレッドモデルは当時、マルチCPUで動作実績がなかったNEXTSTEPより既にPowerPC 603 2基で動いていたBeOSの方が進んでいたのにジョブズが無理やり4つ同時に再生して彼一流のハッタリかましたんじゃねえの?

*1) 88年、五十嵐

‘88年のNeXT発表の時点でジョブズはNEXTSTEPをして「Macの20年先を行っている」と発言しており、そして後にその予言は本当になったのだけど、当時は単独のOS製品であり、独自ハードウェアを失ったNEXTSTEPは当時の他社のハードウェアで動かす必要があった。

Machマイクロカーネルはカーネギーメロン大学で作られたものであり、NeXTの強みではない。BSDはカリフォルニア大学バークレー校の産物だ。
ネイティブ言語であるObjective-Cは旧Stepstone社のものであり、後に商標から何から全てNeXT→Appleがコントロールするようになったものの、オリジナルではない。NeXTの強みは統一感のあるGUIシェルや「アプリ開発が他OSの10倍早く作れる」という元祖RAD(迅速開発環境)であるProject Builder/Interface Builderであり、それらをマルチプラットフォームで動かす戦略に出た。それがOPENSTEPだった。

まず動作ハードウェアとしてモトローラの他にインテル、HPのCPUでも動くようになり、その後、カーネルをも抽象化してOPENSTEPとなり、対応カーネルはNEXTSTEPで採用されたMachの他、SunOSやWindowsNTカーネル上でも動いた。

製品としてNEXTSTEPが商業的に成功したのかどうかは知らない。しかし世界初のWWWのサーバーおよびブラウザがNEXTSTEP上で開発され、今みなさんがお持ちのiPhoneの中のコードもNEXTSTEP由来だと思えば、これ以上の成功があるだろうか?とも思う。

NeXTもAppleもそうだが、ジョブズの美意識は「ハードウェアもソフトウェアも完全にコントロールすること」であり、’90年代当時はIBM-PC/AT互換機といって、Intel CPUとその他ハードウェアを、台湾か深センの、金属プレス機械が1つしかない町工場で作った鉄板6枚を組み合わせた箱の中に乱暴に入れて、その上で、こないだ社内の女性社員にちょっかいを出したことがバレて離婚したビル・ゲイツが創業したMicrosoft製OSを動かせばいっちょあがり、という代物であり、それが「PCのコモディティ化」という名前で正当化されていた。だからMacは時代に合わないと言われ、一時期Mac OSを他社にライセンスなどしていた。ところが今はどうだ?「ハードウェアもソフトウェアも完全にコントロールすること」はスマートフォンやスマートウォッチなどの組み込み機器の性能や機能面において最重要事項であり、これらの分野でAppleのシェアが一番(少なくとも日本のスマホ市場では)なのは偶然ではないと思っている。

さて、HarmonyOSはドキュメントを流し読みしたところ、誰でも使えるコモディティ製品…つまりJava, JavaScript, C/C++などで作られており、これのどこで独自性を出していけるのかが分からなかった。OS自体が独自だ!ということでもあろうが、これ、証拠もないので信じないでほしいけど「Androidのライセンスを注意深く回避したAndoirdクローンOS」ではないのか?

OPENSTEPを通してHarmonyOSを見ると

HarmonyOS provides multi-programming-language APIs for you to develop applications. You can choose from Java, Extensible Markup Language (XML), C/C++, JavaScript (JS), Cascading Style Sheets (CSS), and HarmonyOS Markup Language (HML).
https://developer.harmonyos.com/en/docs/documentation/doc-guides/harmonyos-overview-0000000000011903

言語

アプリケーション開発言語は、既存のものの寄せ集めのようだ。想像だがデフォルトでJava、低レベル層はC、Webに近いアプリはJavaScriptではないだろうか。HTLという独自言語があるが、まあHTMLのサブセットだろう。

フレームワーク

ドキュメントを読みすすめるとability frameworkという名前が出てくる。用語説明欄を読んだが、どうということはない極めて基本的な機能の提供のようで別段興味を引くものではなかった。

開発環境

HUAWEI DevEco Studioというものが提供されているが、どう見てもIntelliJだ。

ファーウェイは政治に翻弄される幸運と不運が同居する会社

幸運

  • 次世代高速通信技術を研究するトルコ人研究者を招き入れたこと。その研究が後に5Gとして規格化された時、ファーウェイは5G技術で世界をリードすることになった。一方、大多数のバカな地球人類は5Gが何であるかも理解できなかった。

不運

  • アメリカ大統領にトランプが就任したこと、あるいは創業地が中国であること。おかげで下らない政治に翻弄された結果、アメリカにスマートフォンを輸出できなくなり、GoogleがコントロールするAndroidも使えなくなり、HarmonyOSを採用せざるを得なくなった。HarmonyOSがその市場シェアからいってAndroid並のエコシステムを構築できるとは到底思えない。つまり大衆が欲しがるアプリが開発される可能性が低いということだ。そこでファーウェイは目先をPC/スマートフォンから、5G通信技術を利用したスマートシティへ方向転換したのは苦渋の決断でもあろうが、賢いと思う。
  • ルーターなど、もっとネットワークの基盤技術ならファーウェイの先進的な5G技術を遺憾なく発揮できるはずだ。しかしこれも軍事と関係のある中国企業であるとの政治的な指定を受ければ輸出できなくなる。そこで不信感を払拭するにはOSやハードウェアなどの仕様から製造工程から何から、すべてをオープンにして「バックドアなど仕込んでいませんよ」と証明しなければならないが、大多数のバカな地球人類、これには大学でジャーナリズムを学んだブルームバーグの記者も含むのだけど、コンピューターがどのように動いているか、インターネットがどのように動いているのかなど理解できない技術音痴だらけなので、根拠のない不信感は払拭できない。

結論

HarmonyOSは政治的な混乱の産物であり、まちがっても創業者の娘(カナダで軟禁状態)がスティーブ・ジョブズばりに「HarmonyOSはAndroidの20年後の姿」などと豪語する代物ではなさそうだ。残念だ。

追伸:中国のイノベーションの可能性と確率について

  • 中国の人口は日本の10倍である。頭の良い人の数も日本の10倍だ
  • しかし日本と同様、世界中の才能を引きつける場所ではなさそうだ。これは政治的な理由による
  • しかも中国からは、いまオープンソース・ソフトウェアの中心地となっているGitHubにアクセスできない。これではハードウェアの中心地として深センは君臨しても、そのハードウェアの中で動くソフトウェアに関するイノベーションは起こらない
  • アメリカの本当の強みは、世界中の優秀な人材が集まってくることだ。この点を理解しなかったトランプ政権は自分の首を絞めていた
  • アメリカへの移民を規制したからといって「世界中の優秀な人材」が中国や日本へ目先を変えるわけではない。中国では権威主義的政府の力が強すぎるし、日本では外国人労働者は使い捨てよう、入管で殺そうと“移民は来るな”のトランプ以下のことを政府が言っており、バカな有権者がその政府を支持しているためだ
  • 「カイゼン」などHOWはできるがWHATができない日本企業に非常に近いものを中国企業からも感じる
  • しかし私は単なる底辺エンジニアなので天下国家を語りたいわけではない

追々伸:

バカを集めてもクズしかできないが、天才を集めてもなにか素晴らしいものができるかというと、どうなんだろうか?

もし私が「天才枠」で採用され、このハウステンボスのような施設に招かれたとしても「勤務場所はフツーの雑居ビルでいいからGoogle検索させろよ、仕事にならねえだろ」と言うと思う。

ネット接続規制、権威主義的政府という「構造的問題」があるのに、給料高くて、遊園地みたいな街で働けますと言われても、それは魅力的だろうか?数人から数十人の天才が集まって何か凄いものを発明していた時代はとっくに終わり、インターネットによりコラボレーションというのは世界規模で行われるようになった。少数の天才と、世界中の凡人。どちらから良いものが出てくるのかは知らない。

というかファーウェイのお偉いさんは「伽藍とバザール」読んでないのか?壮大なカテドラルの建設ご苦労さん。

--

--

Hiroki Kaneko
Hiroki Kaneko

Written by Hiroki Kaneko

自営業のソフトウェア技術者。Airbnb TOP5%ホスト。サイクリングと旅行が趣味。

No responses yet