なにもないへやですがごゆっくりどうぞ

独学フリーランスエンジニアの勉強部屋

プログラミング 本棚

初心者がLispに入門してみたら門前払いされた

投稿日:

ども!
ryota@i2AAです!

僕が普段使ってるプログラミング言語はC♯で、たまーにPythonを使うぐらいです。
もちろんそれらを使ってできることをもっと増やしたいな、深めたいな、という思いがありつつも、
「他の言語ってどんなことができるんやろ?」
ってことにもめっちゃ興味あるんです。

で、いろいろ調べてみると、まープログラミング言語の多いこと多いこと…

目的に合わせて決めるといいでー、って記事が多いような印象ですが、
何か作りたいものとか依頼されてることとかがあるってわけでもなく、
ただ純粋に興味・関心で勉強したい!って感じなんですよね。

そこで考えたのが、
「今すぐ必要にはならへんけど、学んでおくとプログラミングの底上げになるような言語」
がいいなー、と思ったんです。

もちろん、今すぐ役立つことを勉強する、ってのも大事ですけど、
もっと本質というか土台というか基礎というか根っこというか起源というか(しつこい)、
なんかそーゆー言語を知っておきたい!勉強したい!
っていう気持ちが強いんです。

で、いろいろ調べてみると、プログラミング言語には
「高水準言語」

「低水準言語」
というものがあって、
簡単に言うと

高水準言語
→人間が理解しやすい(英文法っぽく書かれてる、とか)

低水準言語
→機械が理解しやすい(0と1で書かれてる、とか)

みたいなイメージですかね。

いま使ってるC♯やPythonは英文法っぽく書かれてて、
人間が理解し易いので高水準言語ですね。

反対に、アセンブリ言語とかC言語とかは、
機械が理解しやすい書き方をするので低水準言語。
(C言語に関してはどっちにあてはまるか議論されてるみたいですけど)

普段は高水準言語を使ってるので、
低水準言語を勉強すると幅が広がるかなーと思いながら
いろいろ他の記事も見てみると、
小飼弾さんのこんな記事を見つけました。

初心者向け言語もいろいろ

そこから一部引用すると

で、メタから下りて少しマジレスすると、Computer Scienceをきちんと教えている学校の多くは、最初の一年の前半に scheme を教えて、後半に C と assembly language を教えている。私が教わったのは1980年代の終わりだけど、21世紀の今になってもこれは変わっていない。このことはもう少し注目されてもよいのではないか。

ん?scheme?なにそれ?はじめて聞きましたけど?

と思って調べてみたら、どんぴしゃで低水準言語!
しかも関数型というちょっとおもろそうなカテゴリー!
いま数学も勉強中なんで、関数型でいこう!そうしよう!と決めました。

で、どうやらschemeというのはいわゆる「方言」みたいなもので、
「標準語」にあたるのはLISPという言語みたいです。

でもまぁあれですよね、そのあたりの言語の情報ってほんま極端に少なくなりますよね…
WEB上の情報も少ないし、本を調べても絶版になってて1冊1万円近くするものもあったり…

とにかく大きめの本屋の関数型言語コーナーに行き、
大量にあるプログラミング本の中でちょこっとだけある、
いたいけない関数型言語の本たちを発見。

で、LISPに関する本で唯一?あったのがこの本。

 

Land of Lisp

 

挿絵があったり例え話で説明されてたりとわかりやすい。
と思って早速買って、パラパラと読んでみたものの、
肝心な文法や仕組みの説明がちょっと雑かな?という印象です。

なので、この本を片手にわからないことをまた別で調べなあかんかな…という状態です(笑)

なんか、せっかく低水準言語で、関数型言語を学べる!入門したぞ!
って意気込んだのに門前払いされた気分…(笑)

まぁでもここからいろいろ調べたり作りたいもの作ったりしながら、
どんどんできることを増やしていこうと思ってます。

今はわからんくてもやっていくうちに理解が進むのは体験済みなので、
半年ぐらいはがんばってやろかな。

こうやっていろんな言語を知って、できることが増えていくのが楽しい。
プログラミングを学ぶ醍醐味って感じがしますね。

他にも
「こんな言語を勉強してみたらおもろいよー!」
ってのがあればぜひ教えてください!

勉強した内容はちょいちょいアウトプットしていきます!

-プログラミング, 本棚

Copyright© 独学フリーランスエンジニアの勉強部屋 , 2019 All Rights Reserved Powered by STINGER.