2018年1月24日水曜日

JavaScriptのアロー関数( =>)は初心者にとってはバグの元かも

JavaScript講座をやっているのだけれど、受講生の方に例題を解いてもらうと、「何でこれで動かないのだろう?」と考え込んでしまうケースが時々ある。だいたいは長くても5分ぐらい試行錯誤すると「ああ、これが原因か!」とわかるのだけれど、講師の実力が疑われる場面だけに、かなりあせる(笑)。

ところが先日、「なぜこれがエラーにならないのだろう?」というケースがあった。ひとまず動き出すのだが、なぜか途中で止まってしまう。でもコンソールにはエラーメッセージが表示されない。

止まっている(止めている)箇所を探ってみたら、問題のコードは次のものだということがわかった。

if (picnum => 5) {
  clearInterval(timerID)
}

タイトル読んだ人は分かったと思うけど「=>」は「以下」の意味には使えないので、「>=」が正しい。 でも「=>」か「>=」なんてあまり意識しないよな〜。

「何で構文エラーにならないんだろう?」と少し考え、自分のパソコンでも似たようなコードを動かしてみたが、自分のパソコンではエラーになるようだ。あまり時間を割くわけにも行かず、結局その日はわからずじまい(今考えると自分のパソコンでは「=<」を試していたんじゃないかな。こちらはエラーになる)。

今日受講生の方からソースを送っていただいて眺めていたら、「なんだアロー関数ジャン」。

ifの条件でいつも5を返す関数を定義していたのだ。「->」はポインタっぽいから「=>」にしたのかもしれないけど、ちょっと紛らわしいかな〜。間違える初心者、結構いそうだな〜。

自分が無意識にやっていることを意識させされる

このケースもそうだけど、初心者の人といろいろやっていると、自分が無意識にやっていることを意識させられることが多い。 「以上」は「>=」とほとんど無意識に打ってる。だから「=>」と書かれていても最初は気が付かなかった。

ちなみに私が「>=」と打つケースはまずないのも気が付かなかった原因のひとつかもしれない。「a >= b」とは書かずに「b <= a」と書く。数直線は左から右に大きくなるからね。こう決めておけば、迷わずに済む。これは誰に教わったのか忘れけれど、まだ学生だったような気がするから、○十年前の話。本で読んだんだっけかな。

英語の語順が反映されている

考えてみれば英語では、"greater than or equal to" とか "less than or equal to" だから、順番どおり打つと「>=」とか「<=」になる(「>」は "greater than" で「<」は "less than")。だから、「=>」とか「=<」にはならない。

こんな所にも、英語が影響しているのだ。英語がよくできたほうが、プログラミングの習得には有利なのだ。

日本語で「以上」は「以下」というのが普通だから、本当は「≧」とか「≦」とか書きたいところだけれどね。

2017年12月21日木曜日

「トランスコンパイラ」のほうが「トランスパイラ」より好き

『初めてのJavaScript 第3版』を訳したとき、「トランスパイラ」にするか「トランスコンパイラ」にするか議論になった。

「『トランスパイラ』じゃ、意味わかんねーじゃん」というのが私の主張。

「トランスコンパイラ」なら「コンパイラはコンパイラだけど『トランス』するものなのね」とわかる。 「トランス(trans)」なら、transformとか、transformationとか、transportationとか、「移す」とか「移動させる」とかそんな意味があることがわかる。

JavaScript界隈の人々は「トランスパイラ」という言葉を使っている人が多いみたいだけど、う〜ん。

「わかりやすい」というのはとても重要だと思うのだけれど。仲間内の言葉を使いたがるのかな〜。

今日偶然Wikipediaを見たら「トランスコンパイラ」で立項されていたので、ホッとした。

メデタシ、メデタシ。

2017年12月6日水曜日

出版翻訳業界も景気回復? ならいいな。

最近、うちの回りで、新しい家がバンバン建っているようなんですけど、皆さんの所はいかがでしょうか? 久しぶりに景気がよくなって来ている?

月曜日(12月6日)に「ノンフィクション翻訳忘年会」がありました。カミさんが突然風邪を引いてしまったので、一人で出席。「今年は二人で営業に行くか」と言っていたのだけれど...。

なんか、去年より参加者が増えたと感じたのは私だけ? 結構な混雑で、知り合いを探すのもちょっと大変でした。景気回復の恩恵が少しは翻訳者に回ってきたのかな? ならいいけど。

日本経済新聞出版社(日経)の方から本をいただいた

ところで久しぶりにブログの記事を書くことにしたのは、日経の編集者の方から本をいただいたから。ありがとうございます。この忘年会では、毎年3册、「今年のベスト翻訳書」みたいなのが選ばれるのだけれど、その1冊に入った『OPTION B―逆境、レジリエンス、そして喜び 』の帯を見たら、「人生は、『オプションB』の連続だ」と書かれていて、 「まったくだな〜」と思って、ディスプレイされていたのを少し読んで興味をもったのだ。

「受賞者スピーチ」で「投稿してくれたら差し上げます」みたいなことをおっしゃったので、厚かましくも送っていただいてしまいました。で、このブログを書いています。

写真を撮ろうと思ったけど、iPhoneで撮るのも面倒なので、Macで簡単に撮れないかなと思ったんだけど、まだMacで写真を撮ったことはなかったことに気がついた。

QuickTime Player立ち上げてみたけどそれらしきものはなさそう。

「FaceTimeで写して画面キャプチャしちゃえば大丈夫だな」と思って、起動して本を写してみたら、反転するのね。「そうか、鏡のイメージか」となんとなく感心してしまった。いつもは自分の顔しか映らないから、反転だと気がつかないのだ(もっともFaceTimeも最近ではほとんど使いませんが)。

結局、プレビューで画面の一部をキャプチャ(command+option+shift+4)して、反転させて用を足しました(下記画像参照)。他に方法もちろんあるんだろうけど、まあ、いいや。

内容はこれから読んでみます。


なんと、ブログ(Blogger)に写真撮影機能がありました(考えてみれば、もっともな話ですね)。タハッ。