日本語プログラミング言語「なでしこ」正式リリース 222
ストーリー by Oliver
わびさび 部門より
わびさび 部門より
sillywalk 曰く、 "日本語で記述しプログラミングできるインタプリタ言語「なでしこ」が正式リリースされました。/.Jで過去に報じられた同様言語「ひまわり」の正式な後継バージョンで、昨年8月より開発がスタートし、10月にはベータ版がリリース。その後も精力的にバージョンアップが繰り返されて今回の正式リリースとなりました。
更新記録によれば「ひまわり」が正式リリースされたのは2002年1月1日。さらに「なでしこ」を経て初登場から3年が経過しましたが、作者自らによるプログラミング解説がPC WEBやPC USERなどに連載されており、また公式本も出版されているため、学習環境は相当充実してきているようです。またWordなど他のアプリケーションソフトとの連携機能もあるため、使いこなせれば大変面白い言語だと思われます。実際に使用されている方のご感想などをお聞かせ頂ければ幸いです。"
中途半端に日本語 (スコア:2, 参考になる)
「ひまわり」のサンプルプログラムを眺めたくらいで批判するな、というおしかりはもっともなんですが、プログラミング初学者の障害になっているのはその言語で使われている予約語が英語っぽいことでも文法構造が自然言語からかけはなれていることでもなく、莫大なサンプルやテンプレートから適切なものを選択するのが酔いではないことにあるのではないでしょうか?そしてそれはIDEで解決すべきものじゃないのかと思うんです。
例えばIDEのとあるテキストボックスに「文字を表示したい」と入力すると、文字の表示関係のあるサンプルやテンプレートの一覧が表示され、テンプレートを選択するとウィザード形式で最低限のパラメータの入力を促され、結果がカーソル位置に挿入される、なんていう機能があると、初学者には便利じゃないかと思うんです。Hello で検索するとそのプログラミング言語での Hello プログラムのコードを呼び出せる、とか。
屍体メモ [windy.cx]
IDE は「なでしこエディタ」が付いてます。 (スコア:1)
シェル言語のような、文字列展開+解釈実行+GUI部品なので、
基幹ライブラリを背負うようなプログラム言語ではありません、
グルー言語です。基幹の言語から眺めると珍品ですが、日本語プログラミングの生物種を進化させてほしいものです。
●日本語プログラミングの基本的弱点、
「構文要素は数が少ないので日本語化できるが
巨大ライブラリの名前を全部翻訳できない」はありますが、使えます。
機能の発展方向も基幹言語とは違います、そういうサークルらしいから。
可読性はあがるの…? (スコア:2, 参考になる)
結局同じ構造に基づいてプログラムするならば結局トークンの差ぐらいでしかないわけで…それだったら、日本語を入力することによるコストがかかるだけですよねぇ…。
# 英語が極端に苦手!というときにはそれでも多少は効果が?
# むしろ日本語の論理構造に合うように関数名とかを考えようとしてしまってコーディング効率は下がるかも…?
最終的に、そこら辺(入力のコスト増とか)は許容誤差にまで吸収されてしまって結局は可読性とかどうなの?という話になると思うんですが、どうなんでしょ?
# ついでに国際化とかはどうするの?
---------- ------ ISHII Nayuta
Re:可読性はあがるの…? (スコア:2, 興味深い)
perl -e でやるようなワンライナーのような書き方に向いてそうな印象を受けましたな。
前回「ひまわり」の話題がここで上がった頃、ほうぼうのblogに
「ためしてみた」的な記事が載りましたけど
xxのホストのxxポートに接続。ファイルを持ってこいみたいなワンライナーなんか
もう日本語そのままで驚きましたよ。
こういうのを日本語でやるとなると、
perlの省略時変数のようなものをより自然に扱えるようにならないか、
みたいなところに期待したくなるなあ。
日本語は少なくとも英語よりは語の省略が豊富な言語なので、
その構造みたいのをうまくプログラミング言語に取り入れていけたら強い。
そういうことを考えていく上でも、さまざまな自然言語とプログラミング言語の組み合わせ、
というのはおもしろい試みだと思う。
リーナスさんが
「プログラミングの時は英語でものを考える」みたいなこと言ってたけど
じゃあ逆に母国語的思考ではどのようなプログラミング言語がしっくり来るのか。
仕事に使うならともかく、こういうことの試行錯誤は
やって無駄ということにはならないでしょう。
Re:可読性はあがるの…? (スコア:1)
例えば、ラテン文字を憶える前の小学生に、計算機科学の基礎の基礎を教えるような場合とか。
プログラミングの楽しさって、アルファベットを憶える事とは関係ないのだから、こういうアプローチもあっていいのでは。
Re:可読性はあがるの…? (スコア:1)
文法に日本語が使える事の良さは、プログラマー対象のものではないのでは。私の友人にも、(何故か文系で)プログラミングやりたいと言う人がいますが、アルファベットなので躊躇しているらしいです。つまり、きっかけ作りには日本語で書けるということの意義は極めて大きいと思いますが。
既にプログラムが書ける人にとってはいろいろな短所が目に付くでしょうが、やった事が無い人にとっては、一つの(精神的な)壁が取り払われているのではと感じます。そのレベルでは、アルファベットで書かれている事自体が可読性の障害な訳です。
このまま国際化と言う事にして、海外の人には日本語(の文字)に慣れる一つの方法としてもらう、とか?(笑。文法はさすがに…プログラミングをいくらやっても、英語が上手になっている気はしないし…。ただ、アルファベットを見る事に違和感(或いは抵抗)を覚えなくなったのは事実なので、その効果は望めるでしょう。
Re:可読性はあがるの…? (スコア:2, 興味深い)
うーんと、無論高校生以上ですが、そう言っているのだから仕方ありません(笑。こっちが駄々をこねても無意味ですし、じゃあやるな!ではつまらないでしょう。
それに目が向くのは、プログラミングを始めてからではないですか?しかもプログラム作者以外の人が使う事を考えた上での話ですよね?
言語のターゲットは、プログラミングをやった事が無く、その便利さを知らない一般ユーザーだと思われます。例えば複数のファイルの内容を調べた上で特定の条件なら圧縮するとか、その程度のことに高い敷居をつけるのはいかがなものだろうかと疑問です。
プログラムを作ることが仕事であれば完璧なプログラムを作る事を目指さなければなりませんが、一般人にとってはプログラムを作る事は本来の仕事を為す為の手段に過ぎません。取っ掛かりやすく、ほんの数行程度でもちょっとした処理が可能なこうした言語は、そういう仕事の為に言語を『利用する』ユーザーにとっては便利なのでは?(実際私はPerlという道具を奪われると辛いのです。実行環境(ノート)を常に持ち歩きます。)しかも、日本語でちょろっと書ける事で、これまでプログラミングに触れた事もないユーザーでも楽に扱えるのでは?前に書いた通り、プログラマ対象ではないのでは?と言う事です。
その通りだと思いますが、それ以前に細々とした事を配慮して書く必要のあるプログラムなのかも考えなければなりません。たった1回自分のコンピュータ上で使うだけの仕事処理用のプログラムのために、デバグも含めて何時間もかけてしまっては意味が無いのです。その間に手作業ででも仕事をすれば良いのですから。
Re:可読性はあがるの…? (スコア:1)
# Windows ClientをWindowsXP対応してくれないかなぁ
特徴を短くまとめてみた (スコア:2, 参考になる)
■日本語として
■プログラミング言語として
■ひまわりと比較して
■様々な問題点
#これだけ多くの特徴を持っているのに、一部だけ見て批判されるんですね・・・orz
#中の人なのでAC
Re:特徴を短くまとめてみた (スコア:2, 興味深い)
文法と言うか、仕様が美しく(少なくともそうは見え)ないのが最大の原因かと。
ドキュメントをざっと読んで文法を把握できるくらいコンパクトじゃないと美しいとは思われないんじゃないかなぁ...
「使える」のかも知れませんが「習得しよう」とは思わないかも。
# 既存言語より良くなければ移行する意味がないですし。
最後に、「ならば」や「でなければ」などは接続詞です。助詞扱いは...
それにいわゆる「てにをは」だけでは引数の種類を指定するのには不足かと。
#「Aを幅w、高さh、色cで表示」としたとき、w,h,cの助詞は全て「で」だし。
# この辺に文法的改良の余地が...
日本語プログラミングと聞くと (スコア:1)
Re:日本語プログラミングと聞くと (スコア:2, おもしろおかしい)
確かに。
……なんかあまりにネガティブすぎないか?製品そのものよりも、会社に対して(笑)
#イケ、ヨベ、カエレ、マワレ…… [wind.ne.jp]
プログラム例 (スコア:1)
なんだか小学校の文章題をそのまま入力したら計算してくれる、みたいな感じ。
言語的にはBASIC的ですね。でも、ネットワークI/Oとかメール関連機能とかもそろっていて、ちょっとしたものなら割と手軽に作れそうな気はします。
個人的にはOOじゃないあたりがいまいち。
Re:プログラム例 (スコア:1)
というか、FORTHベースなんじゃないかな。
FORTHって、構文解析いらないから実装が楽だし、後置記法の
おかげでそのまんま日本語になるし。
Re:プログラム例 (スコア:1)
「表示」ってのはObjectクラスのメソッドじゃない訳だな=□○_
Re:プログラム例 (スコア:1)
Re:プログラム例 (スコア:1)
こっちの方がもう少し日本語っぽいかな。
実行例 (スコア:2, おもしろおかしい)
Re:プログラム例 (スコア:2, おもしろおかしい)
特に状態が必要なわけでもない単なる「計算」のために、
オブジェクトをいちいち作ったり殺したりするのは、
「もったいないお化け」が出るので、
やめていただけると嬉しいのですが(^^;
Re:プログラム例 (スコア:2, おもしろおかしい)
Re:プログラム例 (スコア:3, おもしろおかしい)
「どいてお兄ちゃん、そいつ殺せない」
と言って代りにデバッグ。
TomOne
おもしろいんじゃないですか (スコア:1)
で、ほとんどのプログラミングに関わった事のある人間は否定的だと思う
第一日本語が入るとプログラムっぽくない!ってのが一番の違和感
ただこれも慣れの問題のような気がする
何語ベースであろうと少し込み入った処理しようとするとたとえ母国語がベースでもほとんどの人にはわけわからんようになるのだけどね
少なくとも取っつきやすくなるのも事実
私はおもしろいと思うしもっともっと進化させていってほしいなって
プログラムで食ってる訳じゃないのにちょこっとしたものを組まなきゃいけない羽目になるお父さんのお手伝いになれるよう祈っております
Re:おもしろいんじゃないですか (スコア:1)
いや、プログラミングなんてやるのはアルファベットで良い(日本語よりも英語とかのほうが記号化も進んでいるし)と思うのですが、何より日本語で書くと言うことに何か不思議な魅力を感じますね。
確かに、大規模なプロジェクトには向かないだろう(そもそもそんな作りではない)けれど、日ごろのルーティンワークをさくっとこなせることの重要性はPerlとかを見れば明らかだと思われますし、もともと(ひまわりの頃から)その方向で開発されてきた言語だと認識していますが。アルファベットで書かれているだけで躊躇するような一般ユーザーもいるわけで、そういうプログラミングに無関係な人が日々の業務でちょろっと使えるような言語の存在意義は大きいのではないでしょうか。そこでプログラミングの面白さを知り、別の言語に進むことも考えられるし。
# 実は『日本語AppleScript』から入った口なのでID
「て・に・を・は」がちゃんとしていないと使えなさそ (スコア:1)
あと、「それを」で前の文の値を参照できるなど、関係代名詞がつかえると日本語らくなりそうですね。
Re:「て・に・を・は」がちゃんとしていないと使えな (スコア:2, 興味深い)
それを自由に操っているのだから、ひつとの言い方にプログラム言語として縛られると表記がどうしても不自然でしっくりこないものになってしまうような気がする。
# あれとこれを足す
# あれにこれを足す
# あれをこれに足す
# あれへこれを足す
# あれ足すこれ
すべて結果は同じだが、感じる意味を微妙に違う。
Re:やらないほうが... (スコア:2)
私は中学生の時「日本語プログラミング言語Mind [airnet.ne.jp](DOS版)」ではじめてフルスクラッチで自分のためのプログラム(スケジュール管理ソフト)を書きましたが、勉強になったことこそあれ、その後の妨げになった、という気はしません。
#当時はNiftyのFMINDにお世話になりました。
##それまではもっぱらBasicのリスト入力+α程度でした
まぁ、日本語だから効果が高かったか、というとよくわかりませんが、中学生レベルの語彙だとforだのifだのswitchだの、あるいは関数や変数という文言がリアルな感覚を持っていないので、効果ゼロだったとはいえないと思います。
というわけで、プログラマー未満の人が使うには、こういうのも有りだと思いますよ。
# カルマ消費月間
Re:やらないほうが... (スコア:4, 興味深い)
という気もしたり。
さっき、なでしこのプログラムをいくつか見てきたのだけど、
なまじっか日本語の文章っぽく見えてしまうために、かえって
冗長で読みにくいと思っちゃいました。
ワタシが中学生の頃、最初にBASICでプログラミングを覚えた時、
FORとかIFとかの単語の意味なんて考えませんでした。FORは繰
り返しを意味する記号だし、IFは条件判断するための記号とし
か思いませんでしたね。だから、ぴゅう太を見た時、日本語の
単語に変わっても読みやすくなったとは全然思わなかった
MINDにしろ、なでしこにしろ、日本語に良く似ているけれども、
所詮、似ているだけで全く異なる記号の列なわけですよ。
むしろ自然言語と似ていることは、理解の妨げになるんじゃない
かと思うのだけれど。
# そういう意味で、COBOLが英語圏の人達にどのように理解され
# ていたのか、ちょっと興味がありますね。
Re:やらないほうが... (スコア:2, 興味深い)
>冗長で読みにくい
英語圏では、なまじっか英語に見えてしまうために、
自然言語で書いてしまう初心者がいるとか聞いた事あります。
「"display pi" でどうして円周率が表示できないの~?」
って感じで。
個人的に、F-BASIC386 で変数名やラベル名を漢字で書いてた経験では、
制御命令がアルファベット、変数名が漢字だと可読性が上がります。
全部アルファベットだと、斜め読みした時に何処まで制御命令で
何処まで変数かが分かりづらいです。変数名が漢字だと、
アルファベットの制御命令の中で変数名が浮かび上がってきます。
#今時の IDE だと変数名が色分けされて浮かび上がるように。
確かに入力は少し面倒ですが、デバッグで見返す時の認識速度が
それ以上に向上します。
TomOne
Re:やらないほうが... (スコア:1)
ただ、インドとか欧米圏でプログラミング言語の習得がどのように行われているか考えないと、結論は出ないように思います。最近はfMRIで脳の働きを詳細に見られるようになっているので、「人工言語の習得過程における母言語と人工言語の間の語彙の距離の影響」なんて研究があったらそれはそれでおもしろいかも‥‥‥ :-)
# 「の」が多いのはご勘弁。
中国/台湾ではやっぱりfull 漢字言語とか作られているのかしら。
Re:やらないほうが... (スコア:2, 参考になる)
しまった。不等号が死んでいた。
object1<ーmessage1()
と書きたかったんです。
Re:やらないほうが... (スコア:1)
おかげで、他のもの(言語)を覚える気が全くなくなりました^^;
経験に基づいて・・・
なでしこはまだ触ってないけど。
Minder
Re:やらないほうが... (スコア:1, すばらしい洞察)
私の周りにはCしかできない人や、VB Scriptしか
できない人などがいます。他の言語に手を出すかどうかは、
当人の都合だけの問題だと思うのですが。
Re:やらないほうが... (スコア:1)
# まぁ、RPN(記法、は冗長ですよね)と日本語の語順のマッチングが良い、という話はありますが。
Re:やらないほうが... (スコア:1)
class Object
def 表示
print self, "\n"
end
end
class Fixnum
def から(t)
self..t
end
end
class Range
def 合計
結果 = 0
self .each do |数|
結果 += 数
end
結果
end
end
1 .から(100) .合計 .表示
# -Kオプションを適切に設定しないと不正な文字エラーになるので注意
Re:やらないほうが... (スコア:4, 興味深い)
1から10までの合計を表示。
=> 単語の読取に失敗。関数『合計』の引数『Bを』が不足しています。
何も考えずに書いたら通らなかったのでマニュアルの文法をみて書き換え。
結果は0。
1から10まで繰り返す。
結果にそれを追加。
結果を表示。
=> 012345678910
「追加」は文字列関数とな。んでは、
結果は0。
1から10まで繰り返す。
結果にそれを足す。
結果を表示。
=> 0
「足す」では元の変数が変更されないのな。「追加」との扱いの違いが気になるところだが、変数への代入を追加
結果は0。
1から10まで繰り返す。
結果にそれを足して、結果に代入。
結果を表示。
=> 55
やっと出ました。
Re:やらないほうが... (スコア:1)
1から10まで繰り返す。
それを数[それ]に代入。
数の合計を表示。
=> 10
配列の中身を合計してくれYO!!
Re:やらないほうが... (スコア:1)
Re:死にやがれ (スコア:3, おもしろおかしい)
まつもと ゆきひろ /;|)
Re:死にやがれ (スコア:1)
「何回死ななければならないか」と聞かれても、リアルではどうがんばっても二度以上は死ねません。比喩的な表現だとするとなにをたとえてるんでしょう。ものわかりが悪くてごめんね。
まつもと ゆきひろ /;|)
Re:死にやがれ (スコア:2, 興味深い)
すみませんね、日本語が不自由で。
# だからRubyは日本語プログラミング言語ではないのかも。
Ruby以外の「俺言語」は、
* コーディングに取り掛かった(動くのも動かないのもある)は4つ
* 紙の上の仕様だけが4つ
* 名前しかないのが2つ
です、たぶん。高校生の時のとか、古いのは記憶があいまいですが。
どれもアイディア倒れで実用的じゃありませんでしたけどね。
まつもと ゆきひろ /;|)
Re:死にやがれ (スコア:1, おもしろおかしい)
おそらく彼にとって、アセンブリは言語ではありません。
Re:死にやがれ (スコア:1)
Re:近未来 (スコア:3, おもしろおかしい)
みかんのほうはは50円になります。
ご金額を確認させていただきます。りんごとみかんを足してよろしかったでしょうか。
ご金額のほうはこちらになります。
Re:近未来 (スコア:1)
「よろしかった」になるあたり、ロイヤル風ですね。
エラい先生に訊くと「よろしいですか」と答えるのでしょうか。
# 個人的には「よろしかった」の方が好み
---- 何ぃ!ザシャー
Re:近未来 (スコア:1)
まあ、正しくなくても平気で使うんだけどね。
Re:ロイヤル風ですね (スコア:1)
こういう言い回しって、マニュアルに載っているんでしょうかね?
〜三軒廻るより一軒で据わりこめ〜
Re:ロイヤル風ですね (スコア:2, すばらしい洞察)
ロイヤルホスト風って事ですか。
ロイヤルホストをロイヤルと、
まるで王様かのように呼ぶのはやめてもらえませんか?
株)ジョナスより
# 嘘なのでAC
Re:名前が・・・ (スコア:1)
#微妙だけどID
---にょろ~ん
Re:名前が・・・ (スコア:1)
ちと古いですが。
#私は違うぞ?
Re:名前が・・・ (スコア:1, すばらしい洞察)
私も違います。普通「るりるり」だけでいいです:-)
# emacs用にbakabakka-moodeをきぼんぬなのでAC