Unityでインディゲームを作る!

Unityでのゲーム制作を目指し、それに関わる話題についてのブログ

Unityのための打倒C#[2] プログラミング用語について。

プログラム用語の多くは時代を考えて、70年代的な日本語センスの元で 訳されており、今の感覚とそぐわないのではないか?という問題提起です。

  

プログラミングは、あくまで目的を達するための手段だと思います。

プログラミングで何がしたいのか。

 自分はUnityを使う上で、最低限プログラミングできないとまずいだろうと始めたわけですが、なんかプログラミング自体が楽しくなってきたなぁと。そんな感じです。  

 引き続き、プログラミングを勉強していく上で思いついた愚痴を書きます。前回はプログラミング初心者にいきなり、オブジェクト指向教えんな!!って話でした。もっと基本的なことを覚えてから教えろよと。

 

 今回は日本のプログラミングにおけるちょっと納得いかない慣習について素人の視点から考えてみたいと思います。未熟な自分を棚上しての『いちゃもん』ですけどね。

 そもそもプログラミングというものは結局は、特殊なルールを持った英語の文章を書くことなんじゃないかなと最近考えています。

 当然各用語も英語からきております。(すこーしだけ英語は出来るのでそこは役立ちました。)

 では今回何が言いたいのかというと、プログラミング用語(term)を英語で表記するか日本語で表記するか、あるいはカタカナで表記するかの基準、ライン引きがちょっと曖昧じゃないか?もっと言葉について丁寧に教えるべきじゃないか?ということです。

  

言葉を書き連ねる。

用語に関しては、本来はもう全て英語表記にしてしまうのが良いのかもしれません。
しかし日本語として定着してるような英単語についてはカタカナで表記しても良い気はします。要はここら辺のライン引きはどうやって判断されているのか?ということなわけです。プログラマの本職の方に、それはそういうもんだからさって言われたらそこまでですが。

素人視点からすれば、これはどうなのかなっていうケースが多いのでちょっと考えていきたいと思います。

まずは『データ型』。
コンピュータの中に何があるかといえばデータです。データには種類があり、文字だったり数字だったり、“はい”か“いいえ”かだったり。その種類による処置がそれぞれあるわけですので、型は大事です。しかし型というよりかは、もうそのまま『タイプ』といっていい気がします。自分の好きな異性の感じを言うのに、あの人はタイプだ、あの人はタイプじゃないっていう言い方はもう日常会話レベルで定着しているわけです。あの人は好きな型だ!とは言わんでしょう。
繰り返しになりますが、本質的に今回自分が言いたいことは感覚の問題だと思います。
ただ時代によって人の感覚は変わるわけですので。

 

次はこれが一番むかつくんですが、
インクリメント、デクリメントですね。
これはカタカナ表記で頭に入りづらいパターンの代表例ですね。日本語に馴染んでない言葉をカタカナにするな!と言いたい。今日はじゃあインクリメントしよっか!とかじゃあインクリで!とか言いますかい?

increment, decrement

英語と言うのは基本表音文字ではありますが、しかしスペリングが視覚的に意味を表す面もあるわけじゃないですか。(漢字は象形文字から来ているので字ズラと意味が密接に結びついていますね。)un-expect, u-able, dis-communication,de-meritなどまあいわゆる接頭辞です。言葉の意味がわからなくても感覚としてそれがポジティヴな意味なのか、それともネガティヴなのかわかるわけです。
しかしカタカナ表記するとそうも行かないわけです。しかも日本語に和製英語としてなじんでもいないので言葉に関するイメージが湧きにくいなと思うのです。

  

平穏なる、確固たる

同じような例は“スタティック”ですね。これは基本的にはstaticと英語表記されています。プログラムを勉強し始めての最初の壁がstaticでしたね。まずプログラムを始めて思うのがstaticってなんだよ、voidってなんだよ、Mainは・・・まあ大事なんだろうな・・・という感じだったのをよく覚えています。数ヶ月前程度のことですが。
しかしstaticはstaticなんだよとしか今でも言い様がないかもしれません。日本語訳として“静的な”とされますが、よくわからん。“動的な”と対になっているんでしょうけどもstaticはしかし、強い意味を持っているわけです。揺るがない、確固たる。隔絶された、など。孤高の存在、くらいの意味もあるように思います。

 

プログラミングは言葉の連なりだと思います。
pro-gram つまり『あらかじめ』『綴られたもの』ですので。言葉を大事にしないといかんのではないかと。

 

あとは“構造体”とかですかね。なんか仰々しすぎるような。言いたいことはわかるけど。structureでいいじゃんかと。
訳としてはそのものなんでしょうがイメージの問題だと思うんですよねー。

 

あと番外編としては"int"ですね。
要は整数なわけで、"integer"の略なわけです。そのくらいの英単語くらい知っとけよ!って言われたらそこまでですが一言教えてくれてもいいじゃん・・・。

こういう感じの英単語の略語表記は多いですよね。本来の意味をきちんと抑えたいところです。 

 

というわけで、いろいろ言っとりますがプログラミングをする上ではむしろ英語を先にきちんと勉強した方が良いのではないかとすら思います。じゃないとより暗号度が増す、感覚的に理解できないのではないかと。

基本的英単語くらいは感覚的にパッと出るくらいのリアルな英語力がないと、変数や関数のネーミングにも困りますしね。 

 

DotNetPerlsという英語のプログラム学習サイトがあります。

当然全部英語です。

項目ごとに短くまとめられており、サンプルコードはかなりシンプルなので

英語が苦手でもMSDNとかよりわかりやすいです。

こういう感じの方が初心者にはいいと思うんですがねー。

 

などと文句いいながら、日々プログラミングに挑んでいる真っ最中でございます。