アカウント名:
パスワード:
プログラムって英語と数学出できた手順命令書なわけで読み手によって解釈し放題の玉虫色言語には不向きだと思われ
# ならば量子コンピューター用に再開発だ!
日本語も厳格に表現できるし、英語も曖昧に表現できるものなんだがな。例えばRFCなんか曖昧な記述を厳格にって改訂されたりしてる。使い手次第だわ。つか曖昧な表現が出来ないほうが言語としては出来が低いっての。
7の平方根かける3に34を加算して、それを二乗して、そこから128に3を掛けたのから2を引いた物を、引く。
みたいに日本語で書かれたからと要って、算数は簡単にはならないよ。プログラミング言語は英語ではなく、Σ とか log なんかと同じで、ほとんどそういう記号だからね。
表記を日本語にしたら分りやすくなると思ってる人は、失望するだけと思う。
わかりやすくなるというより、ぜんぜん本質的でないことで邪魔されたくないってほうが近いんじゃないかなぁ
意味のとりにくい文字列って立派な心理的障害物だよLISPの cdr とか carとかいい例だと思う
LISP の car/cdr が心理的障害になったという人がいてちょっとびっくり。"頭" "尾" とかだったらよかったんだろうか?それとも左、右?
私としたら、プログラミング言語がアルファベットだと、説明文との区切りがはっきりして読みやすい。
> LISP の car/cdr が心理的障害になったという人がいてちょっとびっくり。> "頭" "尾" とかだったらよかったんだろうか?それとも左、右?
抽象的なものを抽象的なまま扱う事が出来ない人なんだと思う。ときどき居る。car/cdrをどの様に変更したとしても、多分ダメだろうね。
頭のいい奴らはこれだからダメなんだよ
これから学ぼうって層に合わせるのは当然でしょ。教科書なんだから。
理解できてないんだよなぁwお前のレベルに合わせてくれる人に巡り合えよ
LISP以外の言語ではcar,cdrはまず使われてないしLISPですらfirst,restを追加したりしてるし言語作ってる頭いい人たちもcar,cdrが良いものと判断してないと思われ
> ぜんぜん本質的でないことで邪魔されたくないってほうが近いんじゃないかなぁつまり、日本語を使うなという話ですよね、それ。
日本語に置き換えたら、かえって混乱するだけだもの。
本質がそれで、それをどう表記するのがプログラミングと言うことかな?RPN電卓使っていると、式を頭の中で「7の平方根かける3に34を加算して…」に変換して入力している。
RPN電卓は入力方式の話で、表記法やソースコードの話じゃないと思う。それこそキーボードかフリック入力か、はたまた音声入力かみたいなレベルの話。
さすがにRPN電卓でも、プログラムまでRPNってわけではなかったし。
RPNて逆ポーランド記法という表記方法だと思ってた
RPN「電卓」の話ね。
画面上に3 4 + 2 * 12 3 / -みたいに表記するわけじゃないもの。
RPN「電卓」でも、マクロや公式入れるときに、そのとおりに入力しますし、エディタで表示/再編集する場合にも、変わらずそのまま表示・編集ですよ。使ったことないのでご存知ないのだと思いますが、普通にどこまでもRPNのまんまですよ。
プログラムも RPN (RPL)ですけど、、、使ったことないですか?FORTHとかもスタックで書きますよ。
PRNは、入力方法の話ではないですよ。もちろん表記方法とか、そんなレベルじゃなくて、人間が頭の中で考える考え方、思考方法の話です。数式で関係を考えて、あくまで入力方法だと思って使ってる人には、理解できないでしょうし、便利だとも効率的とも思えないのかもしれませんが。
RPNに馴染むと、ものごとの関係は最初からRPNで考えるので、いわゆる数式で書かれた公式も一回RPNに変換してから頭が理解するようになります。手計算のメモも、頭にあるものをそのまま出すので、RPNのままです。
> RPN電卓使っていると、式を頭の中で「7の平方根かける3に34を加算して…」に変換して入力している。
それを日本語のプログラミング言語として実装したのが「MIND [scripts-lab.co.jp]」だな。
ナウイ言語は英文的に書けますよ。なう言ってほどふるくはないか。
COBOLと何が違うの?
それ、駄目な言語ってことじゃないですか。
部分的ではあっても現在に至るまで人類社会を支え続けてきているプログラム言語を、駄目な言語って事はないでしょう。
COBOLを使ったことないか、ちょっとさわっただけ、とかですか?
そういう私も数年使っただけですけど、それでもCOBOLはかなり優れた開発言語だと思いますよ。8ビットBASIC+アセンブリ言語しか使ってなかった時だったんで、JCLとCOBOLの組み合わせは衝撃的でしたね。
数学って言われても、中学校で習う範囲では、「x = x + 1」って意味不明。変形したら、「0 = 1」だからね。なでしこでも、代入は「変数 = 値」が普通だけど、「値を変数に代入。」という書き方もあるので、それを使えば迷わずに済む。
# 英語だって、「読み手によって解釈し放題の玉虫色言語」だと思うけどね。
「とにかく日本sageする俺様カッケー」という人は結構あちこちに居るのですよ
日本語の文法だと、カッコ無しで式が完全に記述可能とか面白い特徴あるのにね、日本語もコンピュータ言語も数学もしらない人なのですよ。英語の文法や数学の中置演算だとどうしてもカッコ無しでは書けない式がある。
>日本語の文法だと、カッコ無しで式が完全に記述可能とか面白い特徴あるのにね、
それが論理的に可能だからといって、それが実用的かどうか・中学生に分かりやすいかどうかは、また別の話。
「美しく青きドナウ」って言われたら美しくが青きとドナウのどちらにかかってるか聞いた側が決めないといけなくないか一般的には、言う側も大きな齟齬が出るような言い回しは避けるんだろうが
んな事実は無いから、スラドのタイトル(本文でも)突っ込みが多々為されるんだろうに。
むしろ代入記号を導入した方が。ついでに==も排除できるし。
日本語プログラミング言語つっても構文の英単語を日本語に置き換えただけだから日本語特有の曖昧さは無いと思う。
利点は詳細設計を日本語で書けばそれがそのままプログラムになることなんだろうけどちょっとしたプログラムを書く場合だといちいち日本語の入力自体がめんどくさい。
いや、「置き換えただけ」じゃないですよ。この手の日本語プログラミング言語って、「日本語の自然言語風に読めること」に主眼を置きすぎているきらいがあります。MINDなんか基本的に「ひらがな無視」だし。
なでしこも、同じことを行うのに複数の手段が用意されています。
変数について - なでしこ3 [nadesi.com]
代入文についてなでしこの変数に値を代入することができます。代入文は、いくつかの形式で記述できます。 値段は3000値段を表示。 値段=3000値段を表示。 値段に3000を代入。値段を表示。
代入文について
なでしこの変数に値を代入することができます。代入文は、いくつかの形式で記述できます。
値段は3000値段を表示。 値段=3000値段を表示。 値段に3000を代入。値段を表示。
なんで代入に3パターンも必要?しかも、一見すると代入の形でも、変数名部分が関数だと関数呼び出しになったり。他にも「『です・ます調』でも書ける」とか、コーディングに必要ないでしょう。
C言語とかi += 1 と書けば済むところにi++とか++iとかサポートしてるぜ。
>>なんで代入に3パターンも必要?コレは確かに初心者向け教育用言語としては致命的だと思う。中級以上でも、コーディング規約が必用になる、バッドノウハウ。それとも、なでしこ用のlintみたいなのがあるのかな。
>i += 1 と書けば済むところにi++とか++iとかまず、それは単なる代入文じゃなくて、インクリメントですよね。
第二に、i++ と ++i の両方は使えるけど、現在においては、半ばバッドノウハウと化してる。
たとえばi = f(i++) + g(++i) - ++iみたいな書き方は、出来るけど絶対に止めろって言われる。ここに複雑なマクロが入ったりするともう地獄。重し出したくもない。
> 同じことを行うのに複数の手段が用意されています。
Perl へのアツい風評被害
Perlは機械言語を目指してるだろ、ラクダ本を読む限りにおいて。
自然言語と書いたつもりが、機械言語と書いている
初学者にとっては、曖昧な日本語との違いの理解が難しく有害。英単語の命令を機械的に並べるほうがまだ理解が早くなる。
英語は単純明快な言語って言ってる人は、言葉が分からないからって向こうから配慮されてるかバカにされてるだけだよ…日本語は他の言語と違いすぎるからあまり複雑な言葉遣いは日本じゃ教わらないし英語ができる人でも使えない人も多い京都に旅行に行って俺でも京都人と会話ができるぞって自慢するような物だから早めに卒業しな
英語だから良いのではなく、日本人にとっては曖昧な言語から切り離された記号だから良いのですよ。下手に言語のイメージの曖昧さに引きずられるよりも、プログラム用の記号として捉えたほうが、習得が早い。プログラマにとって、プログラム中のifやforは英語ではない。orなんて自然言語との意味が違い過ぎる。これを日本語にしてしまうと、正確な文法に従って書かなければならないプログラムと、曖昧にかける自然言語のとの区別が出来るようになるまでの障壁が増えるので、プログラムの入門者には特に学習が難しくなる。
うーん、この支離滅裂さはなかなか英語は(他と比べて)単純明快とは言えない、という点にだけは同意できるが・・・
>日本語は他の言語と違いすぎるとりあえずこの誤解からは早めに卒業しよう
いわゆる「日本語プログラミング言語」って、日本語というか日本語の単語に置き換えただけなので、日本語話者が書いた設計がそのままプログラムとして望む動作になるわけではないわけで。(英語っぽい書き方ができるCOBOLだからと英語の文章そのままがプログラムになるわけではないのと同様)
抽象的なブロックに置き換えた系の環境の方がプログラムというものを理解しやすいのでは。
板書して教えるから、読みくだせるやつが助かるよpascalはいいがCは非常にテンポが悪いなでしこはそこはいいんじゃないかな
つか、みんな自分の得意分野だと思うと、いきなり義務教育だと言うことをわすれている
義務教育でなでしこを板書してる場面を想像したら、あほらし過ぎてクラクラする。
実際の開発現場では往々にしてなでしこのプログラムみたいな詳細設計を書かされるんだが。
そんな奴隷の現場の話なんて関係ないでしょ。
「数学出できた」とか書いて平然としてるやつには玉虫色言語は難しいわな
英語が出来る人だったら英語プログラミング言語のCOBOLがすいすい
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
海軍に入るくらいなら海賊になった方がいい -- Steven Paul Jobs
英語と数学と明確さ (スコア:0)
プログラムって英語と数学出できた手順命令書なわけで
読み手によって解釈し放題の玉虫色言語には不向きだと思われ
# ならば量子コンピューター用に再開発だ!
Re:英語と数学と明確さ (スコア:3, すばらしい洞察)
日本語も厳格に表現できるし、英語も曖昧に表現できるものなんだがな。
例えばRFCなんか曖昧な記述を厳格にって改訂されたりしてる。
使い手次第だわ。
つか曖昧な表現が出来ないほうが言語としては出来が低いっての。
Re:英語と数学と明確さ (スコア:1)
7の平方根かける3に34を加算して、それを二乗して、そこから128に3を掛けたのから2を引いた物を、引く。
みたいに日本語で書かれたからと要って、算数は簡単にはならないよ。
プログラミング言語は英語ではなく、Σ とか log なんかと同じで、
ほとんどそういう記号だからね。
表記を日本語にしたら分りやすくなると思ってる人は、失望するだけと思う。
Re: (スコア:0)
わかりやすくなるというより、ぜんぜん本質的でないことで
邪魔されたくないってほうが近いんじゃないかなぁ
意味のとりにくい文字列って立派な心理的障害物だよ
LISPの cdr とか carとかいい例だと思う
Re: (スコア:0)
LISP の car/cdr が心理的障害になったという人がいてちょっとびっくり。
"頭" "尾" とかだったらよかったんだろうか?それとも左、右?
私としたら、プログラミング言語がアルファベットだと、説明文との区切りがはっきりして読みやすい。
Re:英語と数学と明確さ (スコア:1)
> LISP の car/cdr が心理的障害になったという人がいてちょっとびっくり。
> "頭" "尾" とかだったらよかったんだろうか?それとも左、右?
抽象的なものを抽象的なまま扱う事が出来ない人なんだと思う。
ときどき居る。
car/cdrをどの様に変更したとしても、多分ダメだろうね。
Re: (スコア:0)
頭のいい奴らはこれだからダメなんだよ
Re: (スコア:0)
これから学ぼうって層に合わせるのは当然でしょ。教科書なんだから。
Re: (スコア:0)
理解できてないんだよなぁw
お前のレベルに合わせてくれる人に巡り合えよ
Re: (スコア:0)
LISP以外の言語ではcar,cdrはまず使われてないし
LISPですらfirst,restを追加したりしてるし
言語作ってる頭いい人たちもcar,cdrが良いものと判断してないと思われ
Re: (スコア:0)
> ぜんぜん本質的でないことで邪魔されたくないってほうが近いんじゃないかなぁ
つまり、日本語を使うなという話ですよね、それ。
日本語に置き換えたら、かえって混乱するだけだもの。
Re: (スコア:0)
本質がそれで、それをどう表記するのがプログラミングと言うことかな?
RPN電卓使っていると、式を頭の中で「7の平方根かける3に34を加算して…」に変換して入力している。
Re: (スコア:0)
RPN電卓は入力方式の話で、表記法やソースコードの話じゃないと思う。
それこそキーボードかフリック入力か、はたまた音声入力かみたいなレベルの話。
さすがにRPN電卓でも、プログラムまでRPNってわけではなかったし。
Re: (スコア:0)
RPNて逆ポーランド記法という表記方法だと思ってた
Re: (スコア:0)
RPN「電卓」の話ね。
画面上に
3 4 + 2 * 12 3 / -
みたいに表記するわけじゃないもの。
Re: (スコア:0)
RPN「電卓」でも、マクロや公式入れるときに、そのとおりに入力しますし、エディタで表示/再編集する場合にも、変わらずそのまま表示・編集ですよ。
使ったことないのでご存知ないのだと思いますが、普通にどこまでもRPNのまんまですよ。
Re: (スコア:0)
プログラムも RPN (RPL)ですけど、、、使ったことないですか?
FORTHとかもスタックで書きますよ。
Re: (スコア:0)
PRNは、入力方法の話ではないですよ。もちろん表記方法とか、そんなレベルじゃなくて、人間が頭の中で考える考え方、思考方法の話です。
数式で関係を考えて、あくまで入力方法だと思って使ってる人には、理解できないでしょうし、便利だとも効率的とも思えないのかもしれませんが。
RPNに馴染むと、ものごとの関係は最初からRPNで考えるので、いわゆる数式で書かれた公式も一回RPNに変換してから頭が理解するようになります。
手計算のメモも、頭にあるものをそのまま出すので、RPNのままです。
Re: (スコア:0)
> RPN電卓使っていると、式を頭の中で「7の平方根かける3に34を加算して…」に変換して入力している。
それを日本語のプログラミング言語として実装したのが「MIND [scripts-lab.co.jp]」だな。
Re: (スコア:0)
ナウイ言語は英文的に書けますよ。なう言ってほどふるくはないか。
Re: (スコア:0)
7の平方根かける3に34を加算して、それを二乗して、そこから128に3を掛けたのから2を引いた物を、引く。
COBOLと何が違うの?
Re: (スコア:0)
それ、駄目な言語ってことじゃないですか。
Re: (スコア:0)
部分的ではあっても現在に至るまで人類社会を支え続けてきているプログラム言語を、駄目な言語って事はないでしょう。
Re: (スコア:0)
そもそも現在に至るまで人類社会を支え続けてきたのは駄目な大人達だったわけで
Re: (スコア:0)
COBOLを使ったことないか、ちょっとさわっただけ、とかですか?
そういう私も数年使っただけですけど、それでもCOBOLはかなり優れた開発言語だと思いますよ。
8ビットBASIC+アセンブリ言語しか使ってなかった時だったんで、JCLとCOBOLの組み合わせは衝撃的でしたね。
Re:英語と数学と明確さ (スコア:1)
数学って言われても、中学校で習う範囲では、「x = x + 1」って意味不明。変形したら、「0 = 1」だからね。
なでしこでも、代入は「変数 = 値」が普通だけど、「値を変数に代入。」という書き方もあるので、それを使えば迷わずに済む。
# 英語だって、「読み手によって解釈し放題の玉虫色言語」だと思うけどね。
Re: (スコア:0)
「とにかく日本sageする俺様カッケー」という人は結構あちこちに居るのですよ
Re: (スコア:0)
日本語の文法だと、カッコ無しで式が完全に記述可能とか面白い特徴あるのにね、日本語もコンピュータ言語も数学もしらない人なのですよ。
英語の文法や数学の中置演算だとどうしてもカッコ無しでは書けない式がある。
Re: (スコア:0)
>日本語の文法だと、カッコ無しで式が完全に記述可能とか面白い特徴あるのにね、
それが論理的に可能だからといって、それが実用的かどうか・中学生に分かりやすいかどうかは、また別の話。
Re: (スコア:0)
「美しく青きドナウ」って言われたら美しくが青きとドナウのどちらにかかってるか聞いた側が決めないといけなくないか
一般的には、言う側も大きな齟齬が出るような言い回しは避けるんだろうが
Re: (スコア:0)
んな事実は無いから、スラドのタイトル(本文でも)突っ込みが多々為されるんだろうに。
Re: (スコア:0)
むしろ代入記号を導入した方が。
ついでに==も排除できるし。
Re: (スコア:0)
日本語プログラミング言語つっても構文の英単語を日本語に置き換えただけだから
日本語特有の曖昧さは無いと思う。
利点は詳細設計を日本語で書けばそれがそのままプログラムになることなんだろうけど
ちょっとしたプログラムを書く場合だといちいち日本語の入力自体がめんどくさい。
Re:英語と数学と明確さ (スコア:2, 参考になる)
いや、「置き換えただけ」じゃないですよ。
この手の日本語プログラミング言語って、「日本語の自然言語風に読めること」に主眼を置きすぎているきらいがあります。
MINDなんか基本的に「ひらがな無視」だし。
なでしこも、同じことを行うのに複数の手段が用意されています。
変数について - なでしこ3 [nadesi.com]
なんで代入に3パターンも必要?
しかも、一見すると代入の形でも、変数名部分が関数だと関数呼び出しになったり。
他にも「『です・ます調』でも書ける」とか、コーディングに必要ないでしょう。
Re: (スコア:0)
C言語とかi += 1 と書けば済むところにi++とか++iとかサポートしてるぜ。
Re:英語と数学と明確さ (スコア:1)
>>なんで代入に3パターンも必要?
コレは確かに初心者向け教育用言語としては致命的だと思う。
中級以上でも、コーディング規約が必用になる、バッドノウハウ。
それとも、なでしこ用のlintみたいなのがあるのかな。
>i += 1 と書けば済むところにi++とか++iとか
まず、それは単なる代入文じゃなくて、インクリメントですよね。
第二に、i++ と ++i の両方は使えるけど、現在においては、半ば
バッドノウハウと化してる。
たとえば
i = f(i++) + g(++i) - ++i
みたいな書き方は、出来るけど絶対に止めろって言われる。
ここに複雑なマクロが入ったりするともう地獄。重し出したくもない。
Re: (スコア:0)
> 同じことを行うのに複数の手段が用意されています。
Perl へのアツい風評被害
Re: (スコア:0)
Perlは機械言語を目指してるだろ、ラクダ本を読む限りにおいて。
Re: (スコア:0)
自然言語と書いたつもりが、機械言語と書いている
Re: (スコア:0)
初学者にとっては、曖昧な日本語との違いの理解が難しく有害。
英単語の命令を機械的に並べるほうがまだ理解が早くなる。
Re: (スコア:0)
英語は単純明快な言語って言ってる人は、言葉が分からないからって向こうから配慮されてるかバカにされてるだけだよ…
日本語は他の言語と違いすぎるからあまり複雑な言葉遣いは日本じゃ教わらないし英語ができる人でも使えない人も多い
京都に旅行に行って俺でも京都人と会話ができるぞって自慢するような物だから早めに卒業しな
Re:英語と数学と明確さ (スコア:2, すばらしい洞察)
英語だから良いのではなく、日本人にとっては曖昧な言語から切り離された記号だから良いのですよ。
下手に言語のイメージの曖昧さに引きずられるよりも、プログラム用の記号として捉えたほうが、習得が早い。
プログラマにとって、プログラム中のifやforは英語ではない。orなんて自然言語との意味が違い過ぎる。
これを日本語にしてしまうと、正確な文法に従って書かなければならないプログラムと、曖昧にかける自然言語のとの区別が出来るようになるまでの障壁が増えるので、プログラムの入門者には特に学習が難しくなる。
Re: (スコア:0)
うーん、この支離滅裂さはなかなか
英語は(他と比べて)単純明快とは言えない、という点にだけは同意できるが・・・
>日本語は他の言語と違いすぎる
とりあえずこの誤解からは早めに卒業しよう
Re: (スコア:0)
いわゆる「日本語プログラミング言語」って、
日本語というか日本語の単語に置き換えただけなので、
日本語話者が書いた設計がそのままプログラムとして
望む動作になるわけではないわけで。
(英語っぽい書き方ができるCOBOLだからと英語の文章そのままがプログラムになるわけではないのと同様)
抽象的なブロックに置き換えた系の環境の方がプログラムというものを理解しやすいのでは。
Re: (スコア:0)
板書して教えるから、読みくだせるやつが助かるよ
pascalはいいがCは非常にテンポが悪い
なでしこはそこはいいんじゃないかな
つか、みんな自分の得意分野だと思うと、いきなり義務教育だと言うことをわすれている
Re: (スコア:0)
義務教育でなでしこを板書してる場面を想像したら、あほらし過ぎてクラクラする。
Re: (スコア:0)
実際の開発現場では往々にしてなでしこのプログラムみたいな詳細設計を書かされるんだが。
Re: (スコア:0)
そんな奴隷の現場の話なんて関係ないでしょ。
Re: (スコア:0)
「数学出できた」とか書いて平然としてるやつには玉虫色言語は難しいわな
Re: (スコア:0)
英語が出来る人だったら英語プログラミング言語のCOBOLがすいすい