今と始まり

存在する様々な商品やルール、仕組み等は少しづつカタチを変え今に至っています。現状に沿わないものは消えていき、今残っているものはそれなりの意味があると考えられます。

以下ではあまり使われていないツールや非難をあびがちなツールを少し紹介します。

コンピュータの分野で言えば、sed(1974年)やawk(1979年)等のコマンドはUNIX(1969年)に搭載された古いコマンドで、今なおUNIXで重要なプログラムです。強力なテキスト処理が行なえ有用ではありますが、コンピュータ利用者全体から見れば利用する人は殆どいないでしょう。UNIXでは様々なファイルがテキスト形式であるためにこれらのツールは非常に有用です。古くから使われ続けていますが、多くの人に使われているとは言えないでしょう。

TeX(1978年)も重要なシステムではありますがあまり使われていない状況です。日本ではTeXというとLaTeX(1985年)の事を指すことが多く、LaTeXを使うことが多いでしょう。一緒に扱われることが多いですが実際は異なるものです。TeX は Donald E. Knuth が開発し、LaTeX は Leslie Lamport が TeX にマクロを組み込む形で開発しました。
LaTeX は TeX がもっと手軽に使えるようにという考えのもと作られています。
TeX は出版物にきれいな文字や数式を使うために作られました。
その為、現在における使いたい用途と合わないことがあります。LaTeX等のTeX派生物はその用途に合うように開発がされています。
TeXは数式を綺麗に印刷することが出来る為、論文等の作成にLaTeXはよく使われています。

Perl(1987年)は Larry Wall が開発したプログラミング言語です。一時期はCGIで掲示板等を作るためによく使われていました。
Perlは簡単なスクリプトで業務を効率よく行えるようにするため開発されました。それまでに存在していたプログラミング言語や自然言語等を参考にして作られていることもあり非常に多くの人に使われました。
現在の日本では古い言語としてあまり利用されていません。自由度が高い為他の人が書いたプログラムが読みづらい所もデメリットとして考えられています。

ここで取り上げたプログラムはUNIX哲学を持って作られています。それは一つの機能に特化していること、他のプログラムと協働させることで作業を行うことです。その為、何に向いていてどんなことを補助する必要があるかを知っておくとうまく使うことが出来ます。しかし、単一の機能に特化しているとはいってもうまく使う為に学習しておくべきことが多い為、不勉強な人が使うと使いにくいと思われます。これらを避け他のプログラムを使うことも出来ますが、長い期間使われているプログラムはバグも少ないと考えられる為コンピュータを使いこなすためには勉強することが必要でしょう。

コンピュータの話だけではありません。法律やルールも不要に思われるものもあります。しかし、始まりがどの様な理由でその法律やルールが出来たのかを知り、その理由は今後も考慮するべきであればそのルールは無駄ではないでしょう。
今だけを見て判断するのではなく、始まりを知っておくことは今後どの様に扱うかを決める上で重要となります。今と始まりを同時に評価することがこれから先を考える為に必要となるでしょう。

人とインタフェース

インタフェース

インタフェースとは、ある物と外部との境界であり外部からの接触を受ける部分のことを指します。これが転じて、コンピュータ分野ではソフトやハードウェアが外部と情報の受け渡しをする手順等を指します。

例えば、旅館に宿泊する時に予約の電話をかける場合、宿泊しサービスを受ける為に「電話をし受付に宿泊する日を伝える」ということが旅館のインタフェースとなっています。この時、宿泊台帳がインタフェースということも出来ますし、電話自身もインタフェースということも出来ます。どこまでが旅館となるのかで前密な意味でのインタフェースは変わります。

多くのコンピュータにおいて、GUIと言われるインタフェースが用いられています。GUIとはGraphical User Interface(グラフィカルユーザーインタフェース)の略で、カラフルな画面とマウスでの操作を主とします。マウスの少ないボタンでの操作を行う為に画面には色々な説明が表示されます。初めて触る人にとっては理解しやすくコンピュータを扱う為の必須のインタフェース とも言えます。

GUIに対してコンピュータにはもう一つ無愛想なインタフェースもあります。
CUI(Character-based User Interface, キャラクタベースユーザインタフェース)やCLI(Command Line Interface, コマンドラインインタフェース)と呼ばれ、画面に文字が表示されるだけのインタフェースです。CUIでコンピュータを操作していると物凄く詳しいと思われがちです。
実はCUIで操作するほうが簡単なことも多く、CUIはとても便利です。しかし、GUIと違い処理させたいことをどうやってコンピュータに指示するかはある程度知っていないといけません。この為、初心者にとっては敷居の高いインタフェースと言えます。

人とインタフェース

人がコンピュータを操作する時、インタフェースを介して行います。GUIであればマウスを用いて画面のいろいろな情報を見ながら操作します。CUIであればキーボードでコマンドを入力し情報を引き出します。

コンピュータの果たす仕事の範囲を広げて人よりの部分までコンピュータに処理させるならGUIというインタフェースになり、コンピュータの範囲を狭く見て人がコンピュータに寄って操作するならCUIということになります。

初心者にとってわかりやすいのはコンピュータが人に寄り添ったGUIです。しかし、わかりやすいというのは多様な選択肢がない状態で迷わせないということですから、様々な処理を扱うのは向いていません。
CUIはコンピュータよりで人が操作するために様々な処理が行いやすいです。ただし、操作するためには知識が必要なため初心者が扱うには難しいです。

今では様々なインタフェースが人寄りになれば人の負担は減りますが、人が学ぶ機会が失われます。コンピュータだけではなく日本の様々なサービスがお客様目線でという事を言いますが、過度の客よりなサービスであれば客が学ぶ機会が失われていると思われます。「日本人は優秀である」とか「日本の教育水準は高い」と言われますが、身の回りの様々なサービスや製品は人の能力が低くても利用できるように作られている為それに甘んじていては能力が低いままになりかねません。もっと、不便なもの理解しがたいものに触れて楽しむ余裕が持てないと人の成長ができないのかもしれません。

新しい物好き

日本人は新しい物好きです。
古いものに固執する人もいるが、多くの場合新しいものを選択します。
これは日本のものづくりの影響が大きいと考えられます。

日本では製品の改善点を見つけてより良い製品にする事が当たり前でした。ですから、古いものより新しいものの方が改善されたものになる為、わざわざ在庫数の少ない古いものを選ぶ必要はありません。同じ様な機能であれば価格もそんなに変わらずにつけられます。日本ではより良いものが安く手に入る状態になります。

しかし、ソフトウェアにおいては、新しいものが優れているとは限りません。
プログラムには常にバグが潜んでいると考えられており、改善の為の修正が新たなバグを生じさせているかもしれないのです。バグが無いことを示すのは困難ですが、同じソフトウェアが不具合なく正常に動作した期間が長いほどバグは無いと考えられます。その為に新しいものがいいとは言えないのです。

日本ではまだまだセキュリティに関する意識は低いです。
不便だからと言う理由で管理者権限でシステムにログインしたり、よく考えずに様々なソフトをインストールしたりとセキュリティに気を使わないことが多くあります。

大工や料理人は自分が使う道具は把握し管理するものです。コンピュータを使う仕事であればコンピュータという道具をきちんと把握し業務にあたってもらいたいものです。

日本の開国

日本は近年まで鎖国状態でした。

鎖国時代の話

1995年にWindows95が販売され、2000年頃に日本全体にブロードバンドの波が押し寄せました。Androidが2008年に登場し、2017年には日本語の漢字約6万文字の国際規格化が完了しました。

その昔のコンピュータは日本語の処理が難しく、Windows95は日本語用が用意され日本で販売されました。コンピュータで文字を扱うには扱う全ての文字に文字コードと呼ばれる数字を割り振る必要がありました。日本語は文字数が多く、日本語を扱うためには欧米で使われる文字コードでは全く足りません。その為、日本ではShift_JISやEUC-JPなどの日本仕様の文字コードを用いる必要がありました。
日本では英文を処理できても外国では日本語の文を処理出来ず、日本国内のソフトウェアは日本国内で作られたものを利用することが多くあり、外国産のソフトウェアは日本のためにローカライズを行うことが多々ありました。

日本語の表示も大変でしたが、入力も特殊な事情がありました。
英文はアルファベットを入力していくだけですが、日本語の入力は平仮名を入力した後に変換を行う必要があります。そのためには日本語変換ソフトが必須となっていました。

表示を行う日本語の文字をまとめたフォントも作成が困難であり、商用のフォントばかりで日本語のフリーフォントは殆どない状況でした。

外国のコンピュータからは日本のウェブサイトを表示するのは難しく、日本とコミュニケーションをとるためには英語で行う必要がありました。
これは良い面もあり、外国からの詐欺やウィルス付きメール等は英語で書かれることが多く無条件で削除を行っていて、脅威にさらされることは少ない状況でした。

開国への道

文字コードが日本独自でありましたが、世界で統一された文字コードUnicodeを作る動きがあり、日本語のほとんどの文字は 2017年 に国際化が完了しました。

「文字情報基盤整備事業」で推進していた漢字6万文字の国際規格化が完了
https://www.ipa.go.jp/about/press/20171225.html

文字コードの整備をすすめる中、日本語フォントも整備されていきました。
IPAでは無料で使えるフォントを公開しています。

IPAフォント新シリーズの公開
https://www.ipa.go.jp/about/press/20100226.html

Web検索サービスの企業として1998年に設立されたGoogleはWebサイトのデータを収集し、この解析した結果を検索サービスに折り込み急激な成長を遂げました。様々なWebサービスを始め、Androidを開発しました。
これらのサービスから集めた情報を活用して日本語変換ソフトをGoogleが開発し、世界中で利用できるようになりました。

文字コードについても多くのOSがUTF-8を標準にするようになり、2019年頃のWindows 10ではメモ帳もUTF-8が標準になるようになっています。これにより、文字コード、日本語フォント、変換システムが世界中で手に入るようになりました。

現在の状況

日本語の扱いが外国のコンピュータでも容易に行えるようになったことで、世界との繋がりが簡単に持てるようになりました。今では、オンライン翻訳もあり、言語の壁はなくなりつつあります。

これにより、日本人をターゲットにした詐欺等も目立ち、日本のサーバへのクラッキングも大きな問題としてニュースで見かけるようになりました。言語の壁により日本語以外を拒絶していた事により外国の悪意を退けていましたが、近年では世界の悪意に晒される様になりました。

それまでは、セキュリティについて重要視されない状況でしたので、システムのセキュリティレベルを挙げ様々な悪意から守ることが現代の急務となっています。しかし、セキュリティに費用をかける企業はまだ少なく、プログラム開発も流行りが重要視されがちです。動作させるシステムの把握を行い無駄なプログラムを導入しない等、セキュリティを意識した開発を行わないとシステム開発は廃れていくかもしれません。

AndroidやMacOSX等、身の回りの多くの機器はUNIX系OSが使われており、自分たちを守る為にもUNIXの知識は必要不可欠になりつつあります。
1970年頃に出来たUNIXが形を少しづつ変えながらも半世紀利用され続けた為、この先もまだまだ利用され続けると考えられます。様々な脅威から守る為、自分たちが攻撃者とならないためにもUNIXの基礎知識は抑えておく必要があるでしょう。

オープンソースライセンスと著作権

オープンソースライセンス

オープンソースライセンス とは、ソースコードが開示されており修正等が認められているライセンスのことを指します。ソースコードを開示することにより様々な人が多くのソフトウェア開発に関わってもらいたいという精神の元ライセンスを定めています。
様々な形でライセンスを定めることは出来ますが、ライセンスの乱立はオープンソースの精神にそぐわないこともありOpen Source Initiativeではライセンスの精査を行い一覧をまとめています。
https://opensource.org/licenses

主要なライセンス

GNU GPL

GPLのソースコードは自由に改変しプログラムの公開ができますが、修正後のプログラムもGPLにしなくてはいけない事になっています。この為、他のライセンスのプログラムと一緒に出来ないことがあります。

MITライセンス

ソースコードのを自由に変更し別のライセンスを付与して公開できます。極めて緩いライセンスとしてよく用いられます。

著作権

日本における著作権は著作権法にて規定されています。著作権は大きく分けて人格権と財産権があります。財産権は著作者が他の人に渡すことが出来ますが、人格権は他の人に渡せないとされています。

オープンソースライセンスと著作権

オープンソースライセンスのソフトウェアは多くの自由が認められていますが、著作権が放棄されているわけではありません。ライセンスに従って利用する分には著作権を行使しないとしているだけなので、ライセンスに反するのなら著作権違反となります。オープンソースのソフトウェアは様々な人が修正を行いますが、個々の修正箇所は修正した人が著作者となります。その為、状況によっては多くの人の著作権を侵害することになりかねません。

GPLはソースコードの公開が求められる為、ライセンスの問題になることもあります。GPL違反として様々な事例がネット上に公開されていますから確認してみるといいでしょう。