よもやま話お知らせQiitaに「「Rubyで英語記事に含まれてる英単語を数えて出現数順にソートする」をカッコよく書いてみた」という記事を書きました。前回のエントリ「シンプルでわかりやすいコードを書くためにあなたがすべきこと」の具体例を示したような記事になっているので、「よいコード」を書けるようになりたいプログラマの方はぜひ読んでみてください。問題の内容と僕の書いたコードちなみに「Rubyで英語記事に含まれてる英単語を数えて出現数順にソートする」問題は、こんな問題でした。以下のような英文が書かれているテキストファイルを読み込みます。categories.(以下略)この中に含まれる英熟語(複合語)や単語を抽出し、次のように出現回数順に表示する、というのがこの問題のゴールです。app(略)僕の書いたコード僕はこんなコードを書きました。endendどういう考えでこんなコードにしたのかは、Qiita記事の解説を読めばだいたいわかると思います。Rubyプログラムを日本語で書いてみるところで、風の噂で「プログラミングはやってないけど、伊藤さんのブログはときどき読んでます」という人の話を聞きます。(どうもありがとうございます!)そんな人は上のようなプログラムを見ても、ちんぷんかんぷんな呪文にしか見えないと思います。そこでロジックはそのままで、英語になっている部分を全部日本語に変えてみました。定義おわりクラスおわりまあ、英語と日本語を1対1で直訳しただけなので、Ruby(と正規表現)の知識がある程度ないと結局意味不明だとは思います。プログラミング未経験の方も、プログラムとはいったい何なのか、上の「日本語プログラム」を読んでなんとなくの雰囲気だけでも感じ取ってもらえると嬉しいです。僕たちプログラマはこういう文字をパチパチ打ち込んで、コンピューターを動かす仕事をしているわけです。英語が母国語だとこんな感覚なのかも僕は10年以上プログラマの仕事をやっていますが、今でもときどき「英語が母国語だとプログラムが全く違って見えるんだろうなあ」と思うことがあります。僕はまあまあ英語は得意ではあるものの、母国語である日本語の方が書いたり読んだりするのははるかに簡単です。英語が母国語だと、それこそ上で示した「日本語のRubyプログラム」のような感覚でいろんなソースコードが読み書きできるんでしょうね。いやあ、うらやましい!日本語でプログラミングできる言語もある!さて、こんなことを書いてると、読者のみなさんの中には「日本語でプログラミングできる言語だってあるよ!!」とツッコミたくて、うずうずしている人もたくさんいると思います(苦笑)。日本語でプログラミングできる言語も世の中にはあるんです。以下はWikipediaに載っていた「日本語プログラミング言語」の例です。Wikipediaこの中でも「ひまわり」や「なでしこ」は比較的有名な日本語プログラミング言語かもしれません。日本語でプログラミングするとどうなるんでしょうか?以下は「なでしこ」の公式ページに載っていた、うるう年を判定するコードです。「閏年である」と表示。「閏年ではない」と表示。「閏年である」と表示。「閏年ではない」と表示。これは本当にこのままで動く「日本語のプログラム」です。日本語プログラミング言語を使うとこんな感じで日本語でプログラムを書いていくことができます。興味がある方は「なでしこ」やその他の日本語プログラミング言語について調べてみてください。まとめというわけで、今回のエントリではQiitaで公開したプログラムの話から脱線して、人間が読み書きする言語とプログラミング言語の関係性について、ふわっとお話ししてみました。「プログラミングは難しそう」と思われがちですが、これが自分の母国語だったら、プログラミングに取り組むまでのハードルがちょっと低くなるかもしれませんね。逆に言うと、一見「謎の呪文だらけ」にしか見えないプログラミングも、実際は英語で「ああしろ、こうしろ」とコンピューターに命令しているだけなんです。考えると、プログラミングに対する心理的ハードルが下がったりしないでしょうか?まあ、プログラミングには本当に難しい側面もありますが、ぱっと見の印象だけで言えば、母国語かそうでないかの違いは大きいんじゃないかな~と僕は感じています。した情報がプログラミング未経験者の方の参考になれば幸いです。僕はその昔「ひまわり」の本を読んだことがあります。見るこちらは読んだことはありませんが、「なでしこ」の本も出ているみたいですね。見る最近では視覚的にプログラミングできる子ども向けプログラミング言語「スクラッチ」も有名です。はてなブログPro株式会社ソニックガーデンで働くRubyプログラマ。2017年11月に「プロを目指す人のためのRuby入門」を出版。blog)はてなブログをはじめよう!JunichiItoさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。