世界の99%の人が気が付いていない、非常に面白い世界を公開します!vol.2
執筆:ラボラトリオ研究員 村上 卓
言霊とプログラミングの共通点から考察する言葉の力〜日本古来の叡智「言霊」と 現代文明の叡智「プログラミング」の接点〜
今回のテーマ:「宣言的プログラミング」というパラダイム
前回、以下2点を知ることで、非常に面白い世界を知ることが出来るとお伝えしました。
1. ラボラトリオが研究する、日本古来の叡智
2. 現代文明の叡智ともいえる、プログラミング
今回はその具体例として
「宣言的プログラミング」というものをご紹介します。
この「宣言的プログラミング」という言葉は
ほとんどの方が初めて耳にするのではないでしょうか。
それもそのはず。
現役のプログラマでも
まだまだこの言葉を知っている人は少ないからです。
比較的最近になって注目度が高まっている、
新しいプログラミングの技術だと捉えて下さい。
より正確に言うと、昔から存在している概念ではあるのですが
近年、注目度が高まっているのです。
この面白さを感じるために、
技術的な詳細を知る必要はありません。
例えば、宇宙や人体の神秘的な世界を
テレビなどで学ぶ機会があると思いますが
だからといって専門知識を求められる訳では
ないですよね。
それと同じようなイメージで
今回の文章を読んでみて下さい。
それでは、具体的に説明させて頂きます。
宣言的プログラミングとは、
「宣言的に」プログラミングするということです。
これに対する言葉としては、
「命令的プログラミング」があります。
今、プログラミングについてインターネットで検索すると
ほとんどの解説はこの命令的プログラミングについて
説明しています。
それは、
「コンピュータに対しての命令を並べたもの」
とか
「料理のレシピの様に手順を書いたもの」
という解説がほとんどだと思います。
でも、実はこの解説は古いのです。
より正確に言うと、本質ではないのです。
今までは命令的に書かざるを得ませんでした。
ただ、今は宣言的に書けるようになってきたのです。
別の表現で説明してみましょう。
宣言的とは「ありかた」を書く技術。
命令的とは「やりかた」を書く技術。
ある人に何かをお願いするときに、
ひとつひとつ「やりかた」を毎回説明しないと
いけないとすると大変ですよね。
やってほしいことだけを言えば、後のやりかたは
勝手に考えてくれるほうが頼む方は楽です。
それと同じで、今まではコンピュータに対して
ひとつひとつ「やりかた」を教えてあげる
必要があったのです。
ただ、ここにきてコンピュータや
その上で動くソフトウェアが賢くなってきたため
細かいことを指示しなくても、やりたいことを伝えるだけで
出来るようになってきたのです。
その様にやりたいこと、プログラムの「ありかた」を
宣言するプログラミングのことを
宣言的プログラミングと言うのです。
※補足
私は、コンピュータに「命令する」
という表現が好きではないです。
やっぱり命令するのもされるのも嫌ですよね。
よく日本人はロボットを友達として捉えるから
自然と、鉄腕アトムやドラえもんのような
ロボットを想像すると言いますよね。
これって全ての物に魂が宿るという捉え方や
八百万の神の世界観が根底にあるからだと思っています。
宣言的というのが、なんともラボラトリオの世界観と
符合してくると思いませんか。
私達のグループでは、毎月全スタッフが参加する
全体会議というものがあり、
それに合わせて全スタッフがその月の業務内容について
宣言シートというものを書きます。
そう。宣言するのです。
そして、これらは当然ロゴストロンで発信するのです。
祈るとは、意を宣るであり、
自分の意志を発するということです。
日本古来の叡智としての言霊は
この意を発することに極意の一つがあると思っています。
この宣ること、宣言することが
最新のプログラミングの大きな潮流になっていることが
とても面白いことだと思いませんか。
ちなみに、私達が提供しているシステムでは既に
この宣言的プログラミングが導入されています。
私は比較的最近入社したのですが、
私が入った時点では既に(数年前から)導入されていました。
ただ、全てのプログラムに導入されている訳ではありません。
まだまだ従来の方法で書かなければならないもの
その方が合っているものもあるのです。
要は適材適所ですね。
また、現在私はGoogle社が強力に推進している
Flutter(フラッター)
という新しい技術の導入調査をしています。
これは一つのプログラム(ソースコード)で
iOSとAndroidの両方のアプリを
作成できてしまうものです。
今までは、別の言語で
別々に作らなくてはならなかったのです。
ただ、まだまだ先行的な技術で
発展途上ではあるので苦労も多いのですが
世界的にもかなり注目されている技術です。
Google社の計画ではスマホアプリに限らず
ひとつのプログラム(ソースコード)で
Webアプリ、Windowsアプリ、Macアプリ、Linuxアプリの
全てのアプリが開発出来ることを構想しています。
言語を統一している流れ
という風に捉えるとまた面白いですよね。
実現されたら、まさにパラダイムシフトですが
今のところGoogle社は本気のようです。
もちろん、このFlutterも宣言的プログラミングが
採用されています。
https://flutter.dev/docs/get-started/flutter-for/declarative
・・・・・・・・・・
【村上 卓 プロフィール】
netenのプログラマ。最初にプログラミングをしたのは、6歳の時にMSXというコンピュータで。
だからといって、そこから天才プログラマの道に入ったわけではなく、
社会に出るまでは、ほとんどノータッチ。中学生、小学生の子どもが3人いるが、誰もプログラムはやってない。
この記事は素晴らしい!面白い!と感じましたら、サポートをいただけますと幸いです。いただいたサポートはParoleの活動費に充てさせていただきます。