2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

GoのGopherがかわいいので、JavaのDukeを思い出した

2
Posted at

はじめに

最近、Go言語のGopherを見るたびに「かわいいな」と思います。

プログラミング言語や開発者向けプロダクトには、ときどき妙に印象に残るキャラクターがいます。GoのGopher、GitHubのOctocat、そしてJavaのDuke。機能そのものを説明しているわけではないのに、なぜか技術の印象と一緒に記憶に残ります。

そういえば、自分がはじめて「自分のPCを用意してプログラミングを始めた」きっかけはJavaでした。1995〜1996年ごろに、バイト先の店長にJavaを教えてもらったのが始まりです。

それ以前にも、Logo(ロゴライター)やBASICのようなものは、学校や友達が触っているのを見ていました。ただ、自分で環境を用意して「これは自分でもやってみよう」と思った入口はJavaでした。

そのころのJavaの記憶には、言語仕様だけでなく、マスコットキャラクターのDukeの印象も残っています。この記事では、最近のGopherのかわいさを入口に、JavaのDukeがどういう存在だったのかを少し振り返ってみます。

※本記事は個人の記憶を起点にした整理メモです。DukeやGopherの由来については、Go公式ブログとdev.javaの公式ページで確認できる範囲を参照しています。

fig0_three_mascots.png

技術のキャラクターは、なぜ記憶に残るのか

技術を選ぶ理由は、本来なら機能、性能、エコシステム、学習コスト、チームの状況などで決まります。

ただ、最初に触れるときの印象は、それだけではありません。

  • ロゴや色
  • ドキュメントの雰囲気
  • サンプルコードの読みやすさ
  • コミュニティの空気
  • マスコットやキャラクター

こういうものも、意外と入口の印象を作ります。

特にキャラクターは、技術の説明を直接するわけではありません。それでも、見る人に「親しみやすそう」「楽しそう」「少し触ってみたい」という感覚を残します。

GoのGopherは、その意味でとても強いキャラクターだと思います。小さくて、表情があり、いろいろな派生イラストも作りやすい。Goの言語仕様のシンプルさとは別に、Gopherの存在がGoのコミュニティの親しみやすさを支えているように感じます。

Gopherはどこから来たのか

Gopherについて気になって、Go公式ブログ「The Go Gopher」を読んでみました。すると、自分が漠然と思っていたのとは少し違う話でした。

Gopherをデザインしたのは Renée French というアーティストです。ここまでは知っている人も多いと思います。面白いのは、現在のGo Gopherの元になったキャラクターは Goのために最初から生まれたものではなかった ということです。

公式ブログによると、Gopherが最初に登場したのは Goプロジェクトのおよそ15年前で、ニュージャージーのラジオ局 WFMU の年次募金イベント用Tシャツ のためにRenéeがデザインしたものだったそうです。

そのあと、このキャラクターは Bell Labs のメールシステムでアバターとして使われたり、別の Bell Labs の活動から Plan 9 のマスコット Glenda(WFMU gopherの「遠い親戚」と紹介されています)が生まれたりと、いろいろな場所に顔を出していました。

そして2009年、Goがオープンソースとしてローンチされるタイミングで、Renée自身が「WFMUのgopherを Goのマスコットとして adapt しよう」と提案します。こうして Go Gopher が誕生しました。

補足:公式ブログには「The gopher has no name, and is called just the "Go gopher"」と書かれています。名前はなく、ただ "Go gopher" と呼ぶのが正しい呼び方のようです。

つまり Gopher は、

  • もともとは別の場所(ラジオ局のTシャツ)で生まれたキャラクター
  • 長い時間をかけてあちこちで使われた
  • 最終的に Goのマスコットに「採用」された

という流れで今の姿になっています。最初からGoのために生まれたわけではない、というのが個人的には少し意外なポイントでした。

fig1_gopher_origin.png

JavaにもDukeがいた

JavaにもDukeというマスコットがいます。

いまJavaと聞いて思い浮かべるものは、人によってかなり違うと思います。

  • エンタープライズ開発
  • JVM
  • Spring
  • Android開発の歴史
  • public static void main
  • コーヒーカップのロゴ

自分にとっては、そこにDukeの印象もあります。

当時のJavaには、少し未来っぽい雰囲気がありました。「Write once, run anywhere」という言葉に代表されるように、環境をまたいで動くことが強く語られていました。そこにDukeのようなキャラクターがいることで、単なる堅い技術というより、どこか動きのあるものとして記憶に残ったのかもしれません。

もちろん、当時の自分がDukeの由来を詳しく知っていたわけではありません。ただ、Javaには「あのキャラクターがいる」という印象はありました。

Dukeはどこから来たのか

Dukeは、単にJavaの横にあとから置かれた飾りではなかったようです。

dev.javaの公式ページによると、DukeはSun Microsystems の Green Project で作られた、Star7 というインタラクティブな携帯型ホームエンターテインメントコントローラーのデモに登場したキャラクターとして紹介されています。

Star7のタッチスクリーンUIの中心にいたのがDukeでした。Dukeは、ユーザーのためにタスクをこなす 「software agent」 を表す存在だったとされています。

ここが面白いところです。

Dukeは、単なる言語のロゴではなく、もともとはユーザーインターフェースの中で動くキャラクターでした。ボタン、マウス、ポップアップメニューといったデスクトップ中心のUIとは違う、新しい体験を見せるための存在だったわけです。

また、Dukeを作ったのは Joe Palrang というグラフィックアーティストです。公式ページでは、彼がその後 ShrekOver the HedgeFlushed Away といったアニメーション映画にも関わった人物として紹介されています。

そして、Javaが最初に公開され、コーヒーカップのロゴが作られたのとほぼ同じタイミングで、DukeはJavaの公式マスコットになりました。さらに2006年には、Dukeは BSDライセンスでオープンソース化 されています1。グラフィックの仕様はOpenJDKの「Project Duke」で公開されていて、開発者やデザイナーが自由にDukeで遊べるようになっています。

そう考えると、Dukeの印象が少し変わります。

ただの「Javaのかわいいやつ」ではなく、初期Javaが持っていた 新しいコンピューティング体験への期待を背負ったキャラクター だった、と見ることができます。

fig2_duke_origin.png

自分がJavaを始めたころの空気

1995〜1996年ごろに、バイト先の店長にJavaを教えてもらいました。

いま考えると、かなり不思議な入口です。学校の授業でもなく、専門書を自分で選んだわけでもなく、バイト先の店長から教わる。けれど、当時の新しい技術との出会い方は、そういう人づての偶然が多かった気がします。

Logo(ロゴライター)やBASICは、学校や友達がやっているのを見ていました。興味はありました。でも、自分のPCを用意して、環境を作って、自分でもやってみるところまで進んだのはJavaでした。

Javaは難しかったはずです。環境構築も今ほど楽ではなかったと思います。それでも始めてみようと思えたのは、言語そのものへの興味だけでなく、当時のJavaがまとっていた雰囲気もあったのだと思います。

その雰囲気の一部として、Dukeの存在がありました。

キャラクターは機能ではないが、入口になる

技術にキャラクターが必要かと言われると、必須ではありません。

Javaの価値はDukeがいることではないし、Goの価値もGopherがかわいいことではありません。GitHubの価値もOctocatだけで決まるわけではありません。

ただ、技術を覚えるとき、人は機能だけを覚えているわけではないと思います。

どんなロゴだったか。
どんなドキュメントだったか。
どんな人に教わったか。
どんな環境で最初のコードを書いたか。
その周りに、どんなキャラクターがいたか。

こういう周辺の記憶が、あとから技術への印象を形作ります。

Gopherを見て「かわいいな」と思ったとき、自分の中では少しだけDukeの記憶とつながりました。プログラミング言語にキャラクターがいることは、技術をやわらかく見せるだけでなく、あとから思い出すための目印にもなるのかもしれません。

GopherもDukeも、それぞれ「もともとは別の文脈で生まれて、あとから言語の顔になった」というところが共通しているのも、調べてみて気づいたポイントでした。

image.png

まとめ

image.png

GoのGopherを見てかわいいと思ったことをきっかけに、JavaのDukeを振り返ってみました。

  • Gopher は、現在のGo Gopherの元になったキャラクターがGo専用に作られたわけではなく、もともとはWFMUというラジオ局のTシャツのためにRenée Frenchがデザインしたもの。Bell LabsでのアバターやPlan 9のGlenda(遠い親戚)などを経て、2009年のGoオープンソース化のタイミングで、WFMU gopherをadaptする形でGoのマスコットに採用された
  • Duke は、Sun Microsystems の Green Project が作った Star7 のUIキャラクターとして登場し、ユーザーのために動く「software agent」を表す存在だった。デザインは Joe Palrang による
  • どちらも「言語のために最初から作られたロゴ」というよりは、別の文脈で生まれて言語と結びついていったキャラクター、という共通点がある

自分にとってJavaは、バイト先の店長に教わり、自分でPCを用意して始めた最初のプログラミング体験でした。その記憶の中にDukeが残っているのは、技術そのものだけでなく、当時のJavaが持っていた雰囲気まで含めて覚えているからだと思います。

キャラクターは機能ではありません。けれど、技術に近づくための入口になったり、あとから思い出すための目印になったりします。

そう考えると、プログラミング言語やプロダクトにキャラクターやアイコンなどがあって、そこから親しみをもてることは、思った以上に大事なのかもしれません。

参考(公式情報)

  1. より精緻には、OpenJDK公式ページによると 2006年11月13日に New BSD License(3-clause BSD)でオープンソース化されています。本文では読みやすさを優先して「2006年にBSDライセンスで」とまとめています。

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?