#112 お便り会!プログラミング言語は何でできている!?

2023/1/25 ·

  • ラジオネームヒロキングさんお便りありがとうございますありがとうございますこんにちは私はエンジニアではないですがいつも楽しく聞かせていただいておりますエンジニアじゃない人が聞いてるんだすごいな確かにハッシュ105言語の世界を垣間見るパイソン編を聞いてプログラミング言語には作った人の思想が反映されているんだなと思いましたうんうん



  • 話を聞きながら疑問に思ったのですがプログラミング言語を用いてアプリやシステムを作っていると思うのですがそのプログラミング言語はどうやって作っているのでしょうか今後のポッドキャストのネタとして取り上げていただけたら嬉しいですこれからも頑張ってください温かい根源的な質問知的好奇心がすごいですね考えたこともないこういうの欲しかったこういうのじゅんぺいから欲しかった



  • 確かに1年間触れてきたのに確かに負けた確かにって思ったのでやや調べて話をしましょうかこれ調査しないとわからんよねエンジニアじゃないのにそこに疑問を持ってしかもGoogleフォーム送ってくれるってすごいですねあんまり聞いてる人からしたら関係ないかもしれないですけど年始なのでやっぱりまだ年末年始といえば家計図



  • 見がちなんじゃないかというそんなことない家系図一回も見たことないけどねちょっと苦しいところもありますけどね僕もないんですけど先祖を振り返ろうということでプログラミング言語の先祖を振り返ろうのコーナーですプログラミング言語の先祖を振り返ろういいですねアダムイブあたりまでたどり着く感じですかねリング食っちゃうリング食っちゃう



  • 食べましたね一部のプログラミング言語について何でできてるとかどういう流派なのかみたいな話ができればと思いますお願いしますじゃあ身近なところからいきましょう松江じゃないですけど松江からいく前回のねパイソンとかパイソンっていう言語ですね前回もお話ししたんですけど1991年くらいに登場しましてえタメ?



  • ノリさんためですねちなみに参考までに米津健史さん北野紀さん菊池雄生とためですねそうなんだパイソンはすごい調査力時間の流れが分かりやすいようにパイソンについては前回100何話で言ったので軽く割愛するんですけどパイソンという言語は何で書かれているかというとC言語で書かれています



  • C言語C言語C言語はですねPythonとかに比べて難しいと言われている言語ですねまあそうねなんで難しいかっていうとメモリ領域の管理とかポインター演算とか



  • ビットごとの論理演算とかそういうハードウェアを考えながらいろいろコーディングしなきゃいけないっていうのが特徴でそれにちょっとややこしい通言言語ですねなるほどいろいろ指定できる代わりに難しいよってことですねはいそんなイメージありますねちなみに言うとPythonだけじゃなくてJavaも



  • PHPもいろんな言語がC言語で作られてますオリジンすごいもう本当にビッグダディビッグダディだね確かにC言語はビッグダディでございます逆にC言語じゃないのからできてる言語とかあんのかなあんのかなあC言語よりだから末裔レベルでですよねそうそうそう末裔レベルでCじゃないのでできてるの知らんだよね調べてない手近なところから言ったんであったら



  • マサカリお願いします質問ですなんで言語すでにあったのにそこから言語を作ったんですか言語すでにあったのにそこから言語を作った理由これはですねより簡単に実装できるようにしようというのが根本的なモチベーションだと思いますより簡単に効率的にですねあんまり調査してないんで深いこと話せないんですけど結局その言語の



  • 進化とか新しい言語ができたりするのって直近分かりやすいので言うとSwiftとかですよねSwiftっていうのはiOSのアプリケーションを作るために開発された言語なんですけども今まである言語じゃちょっとiPhoneアプリ



  • 作るようにできてねえなってのが多分当時あったと思うんですよiPhoneのアプリを作れるようにSwiftって新しい言語を作ってなおかつ間口を広げるためにめちゃめちゃ簡単にできるようにしようっていうので既存言語よりもなんならあれGUIいじるだけでもアプリできたりするんで



  • っていう時代の流れに応じたさらにできるようにしたいことプラス今ある言語への不満から多分新しい言語が生まれてんじゃないかなと思ってますなるほどカレールーだとめんどくさいからレトルトカレー作っちゃったよみたいなちょうどそのぐらいですねスパイスからじゃないですねスパイスからじゃないですカレールーからなんですねでもちょうどそのぐらいですね今のレトルトカレー



  • レトルトカレーがパイソンでC言語はルーって感じですかねルーですねジャガイモとか含める聞きはしますけどねソザイズですねはい



  • C言語の話もう少しするとC言語って触ったことありますかありませんないですCプラプラならありますCプラプラもC言語から派生した言語で確かCで書かれたはずなんでもパイソンとかと兄弟ですね



  • ちょっとルールとかは全然違いますけどねC言語って何で使われているかというと僕は大学の授業C言語だったんですけどOSはC言語で書いてますね例えばMacとかWindowsとかWindowsは分からないですけどLinuxもそうだしですね



  • あとは組み込みソフトって言われる家電とかに入ってるプログラムピッてやったら電源つくよみたいなあれはCですねなるほどねC言語オン炊飯器みたいなそうあとなんかWindowsのメモ帳はC言語らしいですそうなんだだから多分WindowsのC言語なのかなちょっと調査してないんで分かんないですけどこんなC言語登場1978年です



  • もうちょっと分かりやすく言うとナイツの花輪さんウィッシュの大吾さんウィッシュでおなじみのその辺と同い年ですね急に分かんなくなりました45歳とかですか今うん大吾がすごい感じしますね確かにそんな言ってるんだ年ってナイツの方は



  • 新言語はより難しい書き方をしてるんですけどこのC言語は何で書かれてるんだとついに本質ですね本質なのかな分かんないです本質化は次出てくるのがアセンブリって言われるやつですね機械語ではない機械語の手前のやつ機械語の手前のやつですね



  • アセンブリ機械語と一対一で対応している言語ですよねその通りです機械語も含めて説明しちゃいますね先に言っちゃうとアセンブリは機械語で書かれています全ての層は機械語です機械語何かっていうと数字の羅列ですマジで0と10100111



  • 人間最初コンピューターは機械語でコンピューターを操作してました昔のコンピューターって今ほど性能は良くないので数字の桁が小さかったんですねなので気合でこの数字はここに対応してるというのを記憶ができたのでなんとかできてたんですけど今の僕らの目の前にいるMacBookとかはそんなんやばいですだよね何兆桁とかになるのかな



  • そんなもんじゃないよねなんかすっごいことになりそう機械語はだから数字なんですよ数字で何桁だろう数字がバーって並んでるのが何行も書いてるみたいな8桁ごとにちょっとスペースが空いててみたいな感じの数字の羅列が並んでるんですけどその数字の羅列の一行一行に意味があってその一行一行を英単語に翻訳したやつがアセンブラです



  • 英単語かなアルファベット英単語だったりアルファベットだったり翻訳者の方がアセンブラなのでアセンブラはギリギリ人間が読みやすいです抽象化されててとはいえプログラミング言語俺らが知っているプログラミング言語からすると全然分かりづらいやばいっすよあれちょっと見たんですけど足し算だけでゲボ吐きそうになりましたね



  • そのレベルはいレールがアセンブラですとはいでアセンブラは機械語で書かれてるって話はしましたじゃあそのアセンブラ登場がですね1940年代ですねあーコンピューターあったのぐらいのレベルだねはいコンピューターちなみにこの特定の年を僕は調査できませんでしたおーなんか1940年代頃にあるコンピューターにはすでにあったよっていうのしか見つけられなくてうーん



  • 年齢的にはだいたいデビー夫人と同じくらいですなるほどねそのくらい歴史のあるアセンブリー元々お便りでいただいていたプログラミング言語って何でできているのっていう回については言語によっては違うんですけどだいたいC言語あと一つ例外的に言えるのはプログラミング言語って



  • 例えばPythonの中でもPythonで書かれているやつあると思うんですよライブラリとかは特にそうじゃないですかなので自分の言語もしくはC言語が大体です自分の言語もしくはCああそういうことねPythonだったらPythonもしくはC言語で書かれていることが多そうPythonの中にもPythonで作られたツールがいっぱいあってそのPython自体はC言語で作られていてそのC言語はアセンブラで作られていて



  • アセンブラでは機械語で作られていると最終的には0と1の数字になってそれは電流のオンかオフかになっているってことですかその通りですねすごいですね01電流のオンオフの話は別の番組か僕らが後でやるかでちょっと何とか調べてください解説は別にやろうと思えばできるんですけど本質からずれるというか今日の話からずれるので置いておきますこれで話が終わっちゃうと面白くないのではい



  • プログラミング言語の流派流派というのがあってですねその流派を掛けずということが多いらしいのでそれをすごく軽く紹介しようと思いますでも聞いたことないかもないですプログラミング言語の流派を見るのって大事だよって言ってる人がいてこれは聞いたの記事からそのままのことを言わせていただくんですけども似てる言語ってやっぱあるじゃないですかありますね



  • なのでその家系図を見ることによって2つ目の言語をやるときにどんだけ距離が離れてるかっていうのを見るとどんだけ学習コストがあるかっていうのはわかるんですよ確かに確かにと思ってなので第2言語触るときは近くから最初は触っていった方がいいよもし選べるならみたいなって話をしてましたねっていうので軽く見ていきますおー



  • まずは何家ですかジャバとスカラジャバとスカラが似てる兄弟片言急に合ってますね合ってますスカラがだってそもそもジャバ作った人がより良くしようとして作ったみたいな感じじゃなかったっけそうなんですかなるほど親が一緒はそれもそうですね異母兄弟異母かどうかしら同じかも



  • 見つけられてないですよちょっと待ってくださいジャバはあったスカラどこジャバとスカラはほぼ同じだと思いますね載ってないパターンもあるかもしれないですかねジャバから生えてるのがジャバスクリプトリンボJプラプラジャバ2ピッツァ知らんだいたい知らんピッツァJプラプラピッツァってジャバからできてたの



  • 違う違う違うってことはC言語ドミノとかピザハットC言語ピザはC言語からできててアセンブラーからできてて01機械語からできてて電気のオンオフからピザできてるってことですかいいえチーズと小麦粉からできてますそういえば確かにピザ屋でバイトしてたな本当だよねすみませんスカラはマジで見つけられないんで諦めましょう結構メジャーな言語な気がするけど



  • いやーちょっとね人間が見つけられないですこれは無理でした諦めましたやばいすごいやばいマインドマップ見てたそれって検索できないんですかできない画像あのじゃあキャッチなところに行きますよはいパイソンパイソン



  • パイソン君はですね後輩にですねルビーさん似てると思ってたわルビーに影響を与えた言語ですね影響を受けた言語としてはCとかC++って言われてますね似てなでもめちゃめちゃ広いことを言うとプリントはプリントは確かにプリントか今探してますけど



  • 探してるそのくらいだわ一方ルビーくんですねルビーくんは影響を受けたのはさっき言ったパイソンとかパール名前は似てるね宝石系だよね影響を与えた言語はスイフトスイフトはルビーに影響を受けてるらしいですねスイフトは他にもいろいろあってCシャープとかラスト



  • の影響も受けてるみたいですねあとじゃあJavaJavaはC++から影響を受けてるみたいですねそれはまあなんとなくでもJavaはもう独自の進化を遂げ続けてるオリジナルCシャープに影響を与えてますCシャープとJavaめっちゃ似てる俺ちょっとC++触ったことないんだけど



  • Cとの違いがわからんわからんえそうなんだオブジェクト思考って言われてるけどむずかったねヘッダーファイルとちゃんとボディのファイルみたいなのがあって一緒にビルドしなきゃいけないみたいなへーPHPPHP我が家はいオタクパーソナルホームページするそうそうそうそれはそうなんでしたねあれはね知ってますCとか



  • C++とかJavaから影響を受けてるって書いてました違ったっぽい見つけられない僕が今見てる図だとパール5パールからも影響を受けてるって書いてましたパール5だけから矢印が伸びてますねオンリーユーパールだけでPHPは誰にも影響を与えずひっそりと伸びてますなんじゃそれ



  • そんな尖ってた?PHP PH4 PH5はもう一匹狼でそんな尖ってんのあいつ?伸びてますねマジかえー意外あと有名なのなんかあるかなGOあーGO気になるGO言語はですねもちろんCから伸びてる?ですよねCから伸びてますねもう信じられないぐらいすごい信じられないぐらいすごいGOって結構あの末裔なんですようんうんうん



  • まだ幼い幼いんですけど語に伸びてる矢印が多すぎてなんだか分かりませんそうなんだいろいろ取り入れてるのいろいろありますねパイソンスライスとかあるかうわマジで分からんパスカル結構古い言語のイメージ古い言語からCからも伸びてますね



  • 古い言語から矢印が伸びていてこの図今見ていただいた通り多分200個ぐらいの点があって矢印グジャーってなってるんですけど語が一番下にあって古い言語からめちゃくちゃ影響を受けてるんでものすごい長い矢印がめちゃめちゃな本数伸びてるんですよそういうことかめっちゃ探しづらいなので人間が見れませんこれはなので諦めますすいませんグライ語は継承してる継承してる



  • 一応今末裔とされているのがPython 3.6Java 8SwiftJavaScript ES2017Go Kotlinあたりが書いてますねちなみに素人意見であれなんですけどシェルSHシェルからバッシュとかに伸びてるんですけどバッシュとか軽シェルゼッシュ



  • あたりの違いあんま知らんす僕はいはい全然わかんないです答えそうなテンションで言うなよ全然わかんないそれは聞きたいです何が違うんだろうちょっとコマンド違ってすんのかなコマンド違うのはあるのと保管のされ方とかなんか違うよねあそうなんだバッシュしか使っておかないそもそもなんで違うん全部バッシュとかでよくないですかちょっと機能拡張してたはずうん



  • あれってMacとWindowsで違ったりもしてるんですかMacだとバッシュどっちにしろ使えるよねバッシュ入れればという感じでふわっと家計図追いかけてみましたちなみにC言語の祖先なんだっていうとアルゴル



  • っていうのがありますアルゴル歴史みたいな感じですねアルゴルさんちなみにですねアルゴルが2代目なんですよ2代目プラグラミング言語のリュウハの2代目アルゴルさんフォートランが全ての祖ですねそうなのフォートランからフォートラン2とアルゴルさんが生まれてでもアルゴルさんが割と結構



  • 大体の親ですねそこでいろいろ決まったんだ何かが何かがねシとかフォートランが神だったんですねフォートランフォートラン知らんすけどね名前はでもよく見る使ってるのは見たことないけどおもろいなおもろいに見てみてくださいフォートランが全ての祖かと思ったんですけどコボルの流派がマジで独立して



  • 違うところで勝手に生まれてましたそうなんだフローマトリックフローマティックっていうのもあるみたいですねすいませんこれは図見てください音声じゃ伝えきれない概要欄に



  • 図をあれを貼りましょうはい勉強してる人からしたら次の言語を触るときのヒントとかになるんじゃないかなと思っているのでやってみてください逆にあれかもね遠い方をやってみて幅を広げるってのもあるかもしれないですねコストかかるけどいろんな書き方を学ぶためにオブジェクト思考の次は関数型やってみる的なコンフォートゾーンから外れていかないとそうですね



  • いい行動はねゴールがあるわけではないんだね本当に探し続けるジャーニーって感じですね探し続けるジャーニーそれっぽいけど絶対ない意味わかんない絶対ないですっていう感じでお便りのお話は終了とさせていただきたいですいいですかいいでしょう



  • 許可出たんで許しますありがとうございますというわけでじゃあ言語の世界を垣間見ようのまあ家系図編スピンオフ版ですねスピンオフ版まだあのPythonしかやってない?もういくらやった?PHPやったよPHPやったまだ編集してないけどそうだやったんすねじゅんぺい聞いてないけどやったPHPやったわ月曜に上げますいいっすね次じゃJavaとかJavaあったおーきたいや僕Rubyも好きなんでおーきたはいそれをJavaScriptでおー



  • ジャバスクリプトの歴史ちょっと見た感あるけどなあるなあるけどなまとかとか花鷹さんになれるようなエピソードもね引き続き話せればといいなと思うのでこれ聞き手とかあれば言ってくださいお願いします叶えられないこと多いかもしれないですけど頑張ります僕らも一生懸命頑張るんで皆さんもぜひこういう知的好奇心をくすぐる



  • メッセージいただけると嬉しいなって感じですよねはいお願いしますではまた次回バイバイ

0:00 23:35

#112 お便り会!プログラミング言語は何でできている!?