ポール・グレアムの「Arcに挑戦」を翻訳しました。

http://d.hatena.ne.jp/lionfan/20080226

原題は"Take the Arc Challenge"で、原文は以下です。
http://www.paulgraham.com/arcchallenge.html

英語に強い方、ぜひ訳文にアドバイスいただければと思います。
よろしくお願いします。

回答の条件
  • 1人5回まで
  • 登録:2008/02/26 12:47:05
  • 終了:2008/03/02 09:23:33

ベストアンサー

id:ttamo No.1

たも回答回数175ベストアンサー獲得回数292008/02/26 22:47:52

ポイント150pt

今回は誤訳が多いので、ひとまず前半までにします。



>Arcでのプログラミングには何が向いているのかを語る経験をするのに必要な時間がないからだと思う。

>because no one has had enough time yet to be able to speak from experience about what it's like to program in Arc.

「何が向いているのか」ではなく、ふつうの it ... to 構文なので、

「Arc でのプログラミングがどういうものかについて経験から語れるようになるほどの時間がまだないから」

だと思います。


>平均的な層の意見もある。

>we have the medium-level responses

ネット上には悪い評判のほうが多いかもしれませんから、平均というより、「中間」とかじゃないでしょうか。


>私がArcを書くのにたいして苦労していないように見える

>I don't seem to have had to work hard enough writing it.

ここの have had to work hard は難しいですね。

「私がじゅうぶん苦労しなくてもよかったように見える」では意味不明ですし。

どうも直後の punt のようなことではないか、つまり、

「Arcを書くに際して、やるべき苦労をしないですむようにしてきたように見える」

という意味ではないかと思いますが、いかがでしょう。


>反論は書くほうが読むより楽しいものだからだ。

>Refutations tend to be more gratifying to write than to read.

原文もですが、読みにくいですね。(自分が)反論を書くと(相手が)読むことになり、それは自分には more gratifying だけど相手には less gratifying であり、よって普段は書かない、ということですよね。

日本語でよく言う表現にすると、「反論を書くほうは楽しいが、読むほうはそうでもないからだ」とかいうことになるかもしれません。


>なぜなら言語デザインに関するいくつかの重要な問題がはっきりするからだ。

>Explaining why will clarify...

この why は「why I don't seem to have had to work hard enough writing it」でしょうかねえ。

誤解の理由を説明することによって言語デザインに関するいくつかの……」

というようなことかと。


>高水準言語

>high level languages

専門家じゃないのでわかりませんが、ふつう「高級言語」って言うものではないのでしょうか。


>プログラミング言語の唯一の判断基準が力だと言ってるんじゃない。

>I'm not claiming that power is the only criterion by which to judge programming languages.

主語が違います。

「力がプログラミング言語を判断する唯一の基準だと言ってるんじゃない」


>たとえば子供が学ぶとか、(昔ほど一般的ではないが)効率的にコンパイルできるとか、グループ中のダメなプログラマによる被害を抑えるのが容易な言語の設計も立派な目標だ。

>It would also be a legitimate goal, for example, to design a language

>(1) to be easy for kids to learn, or

>(2) to compile efficiently (though this is less common than it used to be), or

>(3) to limit the damage that can be done by individual bad programmers within a group.

というように、easy は to learn にだけ有効で、to limit には行ってないと思います。

「たとえば子供が学びやすいとか、(昔ほど一般的な目標ではないが)効率的にコンパイルできるとか、グループのダメなプログラマによる被害を抑えるとかいう言語の設計も立派な目標だろう」


>だが力は、そういった特殊な目的以外のために設計された言語に対するテストだ。

>But power is the test of languages not designed for such special purposes.

これ、the test なんですよね。直前の the only criteria を思い出させます。でも「唯一」と入れていいかどうかは自信ありません。

「だが、そういった特殊な目的のために設計された言語以外に対しては力こそがテストとなる」

というような感じで……。


>だから実装が困難なことより、プログラムを短くする努力をした。

>So working on what makes programs short rather than what's hard to implement translates to:

「だから、『実装が困難なことに努力を傾けるより、プログラムを短くすることに努力する』とは、言いかえればこういうことだ」


>私は自分の努力量ではなく、ユーザに関する値に基づいて、どんな作業をするか決めたのだ。

>I chose what to work on based on the value to the user, rather than the cost to me.

ふふふ、「the value to the user」ですから、その作業をすることによる益のことでしょう。

「どの作業をするかは、自分に与える損害ではなくユーザにもたらす価値に基づいて選んだ」

とか。


>あるものは私には困難だった。

>Some of it seemed hard to me.

直前で「容易なものばかりだったわけではない」と言っているので、

「困難に思える仕事もあった」

のほうがピッタリだと思います。


>だが言語の設計では、問題の解決は、その問題が困難か容易かにかかわらず、ゴールではない。

>But in language design, solving problems, whether hard or easy, is not the goal.

日本語では主語と動詞が分断されると読みにくいので、

「だが言語の設計においては、困難か容易かにかかわらず、問題の解決はゴールではない。」

「だが言語の設計では、困難な問題かどうかにかかわらず、問題の解決がゴールなのではない。」

のほうが読みやすくなるかもしれません。


>……のゴールは、特徴xがある、問題yを解決するとかではなく、プログラムの短さだ。

>The real test …… is not whether it contains feature x or solves problem y, but how long programs are in it.

あれ? 「the real test」が「ゴール」になっちゃってますよ。

「……の真価を測るテストは、特徴xがあるとか問題yを解決しているとかではなく、それで書いたプログラムがどれほどの長さになるかということだ」

ここは強調するので、間接疑問を「短さ」にしなくてもいいかも。

>短いプログラムは、ユーザが本当に書く必要があるものであるべきだ。

>The programs that get shorter should be the ones users actually need to write.

短くするプログラムは、ユーザが本当に書く必要があるものであるべきだ」

id:lionfan

ttamo様、ありがとうございます。すぐに修正いたします。

2008/02/26 22:50:14

その他の回答(1件)

id:ttamo No.1

たも回答回数175ベストアンサー獲得回数292008/02/26 22:47:52ここでベストアンサー

ポイント150pt

今回は誤訳が多いので、ひとまず前半までにします。



>Arcでのプログラミングには何が向いているのかを語る経験をするのに必要な時間がないからだと思う。

>because no one has had enough time yet to be able to speak from experience about what it's like to program in Arc.

「何が向いているのか」ではなく、ふつうの it ... to 構文なので、

「Arc でのプログラミングがどういうものかについて経験から語れるようになるほどの時間がまだないから」

だと思います。


>平均的な層の意見もある。

>we have the medium-level responses

ネット上には悪い評判のほうが多いかもしれませんから、平均というより、「中間」とかじゃないでしょうか。


>私がArcを書くのにたいして苦労していないように見える

>I don't seem to have had to work hard enough writing it.

ここの have had to work hard は難しいですね。

「私がじゅうぶん苦労しなくてもよかったように見える」では意味不明ですし。

どうも直後の punt のようなことではないか、つまり、

「Arcを書くに際して、やるべき苦労をしないですむようにしてきたように見える」

という意味ではないかと思いますが、いかがでしょう。


>反論は書くほうが読むより楽しいものだからだ。

>Refutations tend to be more gratifying to write than to read.

原文もですが、読みにくいですね。(自分が)反論を書くと(相手が)読むことになり、それは自分には more gratifying だけど相手には less gratifying であり、よって普段は書かない、ということですよね。

日本語でよく言う表現にすると、「反論を書くほうは楽しいが、読むほうはそうでもないからだ」とかいうことになるかもしれません。


>なぜなら言語デザインに関するいくつかの重要な問題がはっきりするからだ。

>Explaining why will clarify...

この why は「why I don't seem to have had to work hard enough writing it」でしょうかねえ。

誤解の理由を説明することによって言語デザインに関するいくつかの……」

というようなことかと。


>高水準言語

>high level languages

専門家じゃないのでわかりませんが、ふつう「高級言語」って言うものではないのでしょうか。


>プログラミング言語の唯一の判断基準が力だと言ってるんじゃない。

>I'm not claiming that power is the only criterion by which to judge programming languages.

主語が違います。

「力がプログラミング言語を判断する唯一の基準だと言ってるんじゃない」


>たとえば子供が学ぶとか、(昔ほど一般的ではないが)効率的にコンパイルできるとか、グループ中のダメなプログラマによる被害を抑えるのが容易な言語の設計も立派な目標だ。

>It would also be a legitimate goal, for example, to design a language

>(1) to be easy for kids to learn, or

>(2) to compile efficiently (though this is less common than it used to be), or

>(3) to limit the damage that can be done by individual bad programmers within a group.

というように、easy は to learn にだけ有効で、to limit には行ってないと思います。

「たとえば子供が学びやすいとか、(昔ほど一般的な目標ではないが)効率的にコンパイルできるとか、グループのダメなプログラマによる被害を抑えるとかいう言語の設計も立派な目標だろう」


>だが力は、そういった特殊な目的以外のために設計された言語に対するテストだ。

>But power is the test of languages not designed for such special purposes.

これ、the test なんですよね。直前の the only criteria を思い出させます。でも「唯一」と入れていいかどうかは自信ありません。

「だが、そういった特殊な目的のために設計された言語以外に対しては力こそがテストとなる」

というような感じで……。


>だから実装が困難なことより、プログラムを短くする努力をした。

>So working on what makes programs short rather than what's hard to implement translates to:

「だから、『実装が困難なことに努力を傾けるより、プログラムを短くすることに努力する』とは、言いかえればこういうことだ」


>私は自分の努力量ではなく、ユーザに関する値に基づいて、どんな作業をするか決めたのだ。

>I chose what to work on based on the value to the user, rather than the cost to me.

ふふふ、「the value to the user」ですから、その作業をすることによる益のことでしょう。

「どの作業をするかは、自分に与える損害ではなくユーザにもたらす価値に基づいて選んだ」

とか。


>あるものは私には困難だった。

>Some of it seemed hard to me.

直前で「容易なものばかりだったわけではない」と言っているので、

「困難に思える仕事もあった」

のほうがピッタリだと思います。


>だが言語の設計では、問題の解決は、その問題が困難か容易かにかかわらず、ゴールではない。

>But in language design, solving problems, whether hard or easy, is not the goal.

日本語では主語と動詞が分断されると読みにくいので、

「だが言語の設計においては、困難か容易かにかかわらず、問題の解決はゴールではない。」

「だが言語の設計では、困難な問題かどうかにかかわらず、問題の解決がゴールなのではない。」

のほうが読みやすくなるかもしれません。


>……のゴールは、特徴xがある、問題yを解決するとかではなく、プログラムの短さだ。

>The real test …… is not whether it contains feature x or solves problem y, but how long programs are in it.

あれ? 「the real test」が「ゴール」になっちゃってますよ。

「……の真価を測るテストは、特徴xがあるとか問題yを解決しているとかではなく、それで書いたプログラムがどれほどの長さになるかということだ」

ここは強調するので、間接疑問を「短さ」にしなくてもいいかも。

>短いプログラムは、ユーザが本当に書く必要があるものであるべきだ。

>The programs that get shorter should be the ones users actually need to write.

短くするプログラムは、ユーザが本当に書く必要があるものであるべきだ」

id:lionfan

ttamo様、ありがとうございます。すぐに修正いたします。

2008/02/26 22:50:14
id:ttamo No.2

たも回答回数175ベストアンサー獲得回数292008/02/27 00:38:20

ポイント100pt

後半です。眠くなってきたので変なことを書いてるかもしれません。ご注意ください。


>Arcでアプリケーションを書き、それからそれを1行ごとに、より短くする言語の機能について、さまざまな想像をすることだった。

>to write applications in it, then comb through them line by line trying to imagine language features that would make them shorter.

うわー難しい。辞書によると comb through は「くまなく捜す」だそうです。

「……それをもっと短くできそうな機能が思い浮かばないかと1行ごとに見回すというものだった」

とか。


>その後、機能を実装し、その機能を使ってプログラムを書き直して、やり直す。

>Then I'd implement those features, rewrite the program to use them, and start over.

「その後、そうした機能を実装し、……」


>以下に私がときどき追跡していたHacker Newsのソースのコメントを示す。

>Here's a comment from the source of Hacker News where I occasionally kept track:

この where I kept track は文脈からすると news.arc の大きさ(?)のことでしょうか。

コンマはありませんが、非制限用法な関係副詞として訳して大丈夫かと。

「以下にHacker Newsのソースのコメントを示す。私がときどき記録していたものだ」


>(The numbers go up sometimes because I'd added features to News.)

「(機能を追加したせいで、数字はたまに増えている)」



>だが最優先したのは、より短いアプリケーション(言語ではなく)を作ることだった。

>But my first priority was making applications shorter, not the language.

「だが最優先したのは、言語ではなくアプリケーションをより短くすることだった」

(make A B で 「A を B にする」)


>ある種類の特徴があって、最も顕著なのはProlog流のパターンマッチングなのだが、つまりプログラムの長さを非常に短くすると請け合っているように見えながら、実は単に「追加」「削除」といった少数の初歩的なシーケンス・オペレーションを書くことにしか役立たないとわかる特徴だ。

>There are features, most notably Prolog-style pattern-matching, that seem to promise great savings in length, but turn out only to be useful for writing a few basic sequence operations like append, remove, and so on.

うまい日本語にはなりそうもないので、分割しちゃうのも一つの方法です。たとえば

「プログラムをとても短くしてくれそうな機能の中には、実のところ少数の初歩的なシーケンス・オペレーションを書くことにしか役立たないものがある。最も顕著な例はProlog流のパターンマッチングなのだが、『追加』や『削除』などにしか有効ではなかった。」

ではどうでしょう。



>モード

>the mode

「流行」かとも思いましたが、無難なところで「流儀」「様式」あたりにしてみては?


>マッカーシーの論文はそれほど遠くないように思える。

>McCarthy didn't get very far along it in his paper.

辞書を引くと、get far で「成功する」「進展する」だそうです。

「マッカーシーの論文はその点であまり成功しなかった」


>その後、言語はマッカーシーの院生の手に移った。そしてその院生は当時、マッカーシーの自明なアプローチを続けることより、早くコンパイラをIBM 704の上で動かそうと悩んでいた。

>And after that the language passed into the hands of his grad students, who at the time were more worried about the exigencies of making an interpreter run on the IBM 704 than continuing McCarthy's axiomatic approach.

「その後、Lispはマッカーシーのところにいた院生たちの手に移った。しかし彼らは当時、マッカーシーの公理的アプローチを続けることよりも、IBM 704で動くインタプリタの必要性のほうに気をもんでいた。」


>これは開拓する価値がある領域に思える。

>This seemed a territory worth exploring.

過去形です。


>土台を支える公理と、実際のアプリケーションが要求する簡潔さを兼ね備えたオペレータの核をつくりたいと私は思う。

>And I hoped that with the axioms pushing from below and the demands of brevity in real applications pushing from above, I'd be able to grow an optimal core of operators.

過去形です。あと上下からっていうのが欲しいですよね。operators は何のことなのかよくわかりませんが、Lisp業界の用語ですか?

「下からは公理という力、上からは実際のアプリケーションにおける簡潔さという力を加えることにより、(その道を探るために)最適な(オペレータの)『核』となるものをつくれたらと思った」

とかいう感じでしょうか。


>完成したとはまだ言わないが、通常の利用に関して、少ない公理から完全な言語までの最適な道を見つけるために、それを目標としている。

>I'm not claiming I have yet, just that that's the goal: to find an optimal path from a small number of axioms up to a complete language for everyday use.

最後の for everyday use は a complete language にかかっていると思います。

「実現したと言っているのではなく、目標だと言っているだけだ。すなわち、少ない公理から出発して、日常用途に関して完全なる言語に至る、最適な道を見つけるために。」

id:lionfan

夜中にありがとうございます。それでは修正いたします。

2008/02/27 00:53:18

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません