『「漢文は教養だ!」って議論が再度賑わうが「その教養、ぜんぶ現代口語訳で学んじゃだめですか?」と問われたら?』という話をプログラミングでも考
『「漢文は教養だ!」って議論が再度賑わうが「その教養、ぜんぶ現代口語訳で学んじゃだめですか?」と問われたら?』という話をプログラミングでも考えてみたら
元記事
漢文についてどう思うか
漢文は難しい、同意できる話だ。
だからこそ、中学生の頃から、先生が懇切丁寧に現代口語訳(超訳)で教えてくれる。
大人になって思うのは、漢文という少ない文字数の中で伝えられている内容は、人生で誰もが悩むことを解決する手がかりになることが多いと思う。
漢文でなく、現代超訳などで学習すると、取っ掛かりとしては良いけど、多分跳躍した著者の体験談とかで解説されることで、意味が絞り込まれすぎる事が問題なのだと思う。
つまり、いろんな解釈ができる故事成語の物語を、自分自身の頭で考えて、自分自身の人生に活かせることが、古文や漢文を現代口語訳で学ばない理由なんだとおもう。
プログラミングだとどうだろう
プログラミングを日本語で現代口語訳にするとこうなる
プログラミングを現代口語訳にして学ぶことは、取っ掛かりとしてはとても良い。
漢文と同じ様に、プログラミングで挫折する理由として、見慣れない文字列が並ぶことにあると思う。
この点だけでいうと、漢文のほうが感じである為、まだ挫折しにくい。
プログラミングだと、いわゆる英語で表記されているので、日本人にとって挫折するポイントしか無い。
だから、現代口語訳して学ぶと、挫折せず学べる。
しかし、ずっと現代口語訳で学び続けるかと言われるとそうではない。
これは、仕事としてプログラミングを行っているとわかるが、結局最終的には英語で表記されているプログラムを実装することになる。
ライブラリも英語だし、最新情報や信頼できる情報筋も結局英語。
クラス名もメソッド名も英語表記にしないと色々困る。
例えば、Google Python Style Guideに次のようなコードが有る。
def connect_to_next_port(self, minimum: int) -> int:
"""Connects to the next available port.
Args:
minimum: A port value greater or equal to 1024.
Returns:
The new minimum port.
Raises:
ConnectionError: If no available port is found.
"""
if minimum < 1024:
# Note that this raising of ValueError is not mentioned in the doc
# string's "Raises:" section because it is not appropriate to
# guarantee this specific behavioral reaction to API misuse.
raise ValueError(f'Min. port must be at least 1024, not {minimum}.')
port = self._find_next_open_port(minimum)
if port is None:
raise ConnectionError(
f'Could not connect to service on port {minimum} or higher.')
# The code does not depend on the result of this assert.
assert port >= minimum, (
f'Unexpected port {port} when minimum was {minimum}.')
return port
connect_to_next_port
というメソッドを定義しているが、日本語で定義すると、 tugino_po-to
みたいな感じになる。
tugino_po-to
は、色々抜けている命名かもしれないが、現代口語訳で学習を進め、実務でも現代口語訳で進む場合の本質をついた命名だとも感じる。
まとめ
- 漢文もプログラミングでも、初学者のつまづきを無くすために、現代口語訳(超訳)を利用することは素晴らしい。
- ずっと現代口語訳(超訳)で学習すると、漢文であれば本質、プログラミングであれば実務から逸れてしまう。
- 難しいから凄いということではなく、簡単にする(現代口語訳にする)段階で第3者の解釈が入る。
Discussion