プログラミング言語と自然言語

3年前にプログラミングを始めてからいくつかの異なるパラダイムに属するプログラミング言語にふれてきた。

これをあたりまえというか、驚くべきことというかは人によりけりだと思うが、同パラダイム内では概念をほとんど共有している。ひとつのプログラミング言語を学べば、そこで学んだ概念は異なるプログラミング言語にも適用できる。

例えば、PythonRubyは少しの文法的差異を埋めればすぐにある程度のプログラムは書けてしまう。

しかし、パラダイムをまたぐと途端にそれは難しくなる。エキスパートなRubyプログラマでも、関数型言語を学んだことがなければHaskellで流暢にプログラム出来るようになるまでにそれなりに時間を要する。

 

ところで、自然言語でも似たように考えられるのではないかと思う。たとえば、英語と日本語は文法もかなり違い、これをJAVAHaskellだとすると、日本語と漢字を共有し、英語と文法的に似ているといわれる中国語をScalaだと捉えることは出来ないだろうか。

すなわち、ネイティブ日本語スピーカーであり、英語もそこそこ話せる僕にとっての中国語は、エキスパートJAVAプログラマであり、週末にはHaskellモナドモナドしてるあなたにとってのScalaでしかないのだ。

したがって中国語は簡単なはずである。どれほど簡単か試しに勉強してみようと思う。まずはfizzbuzzレベルを目指して。

理工系大学

私は理工系大学に通っているのだが、やはり教養科目とはあるものである。進学のために毎年二科目程度履修しなければならず、学生には忌み嫌われている。

今学期私はリーダーシップに関する教養科目を履修した。

この科目のテーマは、"リーダーシップとはなにか"であり、その概念から始まっていま自分たちに必要とされるリーダーシップについての考察レポートが最終課題となっている。

授業は講義形式よりも、グループを組んでリーダーシップについてディスカッションをする形で進行していく。

さまざまな人とグループを組んで話してみると、もちろん個人なのでいろんな考え方や話し方があるのだが、それを総じるとどうやらどんどんと理工系学生のステレオタイプに近づいていく。なんとおもしろい!

世間の目もあながち的外れでないようなのだ!

あーーーおもしろいっ!

 

ここから得られる仮説は、ステレオタイプとは集合に属する個の性質を表すのではなく、その集合全体の性質を表す。ということだ。

ブログ

ブログを書き始めてからまだたったの3日目だが、毎日更新する難しさを感じてきた。。。

日々のことを綴ればネタは尽きないものの、たくさんの人に読んでもらうために面白いネタを考え続けて、書き続けるのはすごいことだと思う。

ブロガーにはなれないなぁ。

デザインとアート

四月から大学院でデザインサイエンスという学問にふれ始め、だんだんと"デザイン"というものの輪郭がつかめてきた気がする。

 

よくある勘違いなのが、デザインはアートであるということ。これは間違いなく否である。

よりよい感情経験のために、デザインにアート的側面を取り入れることはよくある。しかし、デザイン的に優れていることと、芸術的に優れていることは一致しない。これは僕の理解だが、デザインでより重視されるのは、整理されていることだと思う。

外見の整理、体験の整理、情報の整理。

一方アートはなにを持って優れているとするのかよくわからない。(誰か教えてください)

 

また、デザインもアートもなにかをつくるという点では一緒だが、アートはなにかの表現が本質であるのに対し、デザインは問題解決がその本質である。

なにか解決すべき課題があることが、よいデザインの条件と言えるかもしれない。

 

 

自分の頭のなかを整理するつもりで書き殴ってみたが、まだ結論がない。

もう少し理解が深まったら、また改めて書きたいと思う。

スケッチ練習

プロダクトデザインできるようになりたくてスケッチの練習を始めた。(UIデザインのSketchじゃなく、一般的なスケッチ)

入門の本を買ったんだが、これが絵が下手な僕にも続けられそうでやる気に溢れている。三日坊主にならないよう、毎日少しずつうまくなっていこう。

 

念のためアフィリエイトを貼っておこうかな。

スケッチ練習帖100

スケッチ練習帖100

 

  

ある程度練習が進んだら絵心を晒そう。

 

React SPAのトラッキングについて

バイト先でReactのSPAを作ったのだが、GAみたいなトラッキングがちょっとめんどくさそう。
今は、react-gaというライブラリのメソッドをreact-routerのonUpdateで呼んでるだけになっているんだが、もう少し小さいurlの変更のないイベントをトラッキングするのにすこし細かく書かなきゃいけないみたいだ。

あとは、プロジェクト全体でGCPを導入しようとしているので、Googlestackdriverも活用していく予定。
これに関しても導入がうまくいったらなんか書きたいと思う。