アカウント名:
パスワード:
PHPが好かれて居るのと同時に嫌われて居るって多分上級プログラマと下級プログラマ双方がいるからだろう
Perlが嫌われて居るには初級者が多く回答したのかな?学習コストが高い言語程そんな気はするPerlわかりやすいと思うんですけどね
VB6も本当は似たようなものだと思うただ敷居が低すぎたせいで馬鹿がごり押ししたプログラムも成立しちゃうってだけ
まあ今見ても言語仕様としてイケてない部分は確かにあるんだけど、それを差し引いても「きちんと設計されたVB6プログラム」はわかりやすくて良いと思うよ
# 関数呼ぶ時、戻り値ありとなしで書き方が違うのとかは今見てもイケてない部分だけどね# Call Hoge(a, b) は通る# ret = Hoge(a, b) も通る# Hoge(a, b) は通らない# Hoge a, b と記載する必要がある
VB6はヘタするとWin32API呼び出しだらけで、何言語なの、ってことになったりするねぇ…。それ、VB6の必要あったの、という。
でも意外となんでもできる言語(←諸悪の根源?)だと思うし、画面絡むとVC6よりマシな気がする。せめて構造化例外があれば、もうちょい便利だったと思うのだけど。
VB派生でVBAが嫌われてるのは、Excel使いの素人が多いからでしょうね。変数や関数が日本語とか普通に見る。そしてVBScriptは話題にもならないっぽい。ASPとかでけっこう使ったもんだけどね。
VB.Netが嫌われてるのは、VB6から移行したへたくそが多いせいですかね。言語仕様的にはC#との違いなんてほぼ誤差なんだから、嫌われる理由はあまりないはずなんで。
だいたいは同意だけど
変数や関数の日本語は、数十年前は忌避されてきたけど、今ではバグを出さないシステム開発のために必要な要素とみなされてきてるよね。
これは流石にないわ。日本語使うとメンテナンス性が大幅に損なわれるし、似た変数名が並ぶと英文字以上に可読性にも悪影響になる。たとえバグを出さないためだとしてもバッドノウハウの領域。
1度作ったら修正することがないことが担保されてる、保守や改修を無視していい、という特異な案件ならそれもアリだろうけど、一般化することじゃないし、そんなのやってる奴いたら殴ってでも止めるぞ。
日本語ってこの場合、俗に言う「全角文字(2byte文字)」のことじゃないの?
法令用語や間違ったら困る用語をローマ字で表記することはあるけど、それは別にVBに限った話じゃないよね。
「日本語のコードがクソ」って、VB6でありがちな
IF 価格入力.Text < 最低額 THEN
みたいなコードのことじゃないの?
# これが保守や改修作業の効率化になるとは到底思えない# 特に最近のちょっと気が利いた開発環境なら特定の変数の使用箇所をリストアップする、ぐらいは容易だから# 検索のしやすさとか、ぱっと見てわかる、というメリットもそこまで重要ではないはずだ
15年ほど前だとファイルやディレクトリの名称に日本語使うことにも文句言う人が残ってましたよ。そういう人は今では滅多に見かけないですけど、プログラム内の日本語はまだ許容できない人が結構な率でいますね。自然に淘汰されてくと思いますが。
それで「固くな」とか妙な単語使われてイラつくわけですね。
分野によっては日本にしかないような概念の語句が変数名になったりする。まあ日本語の変数名だろうが英語だろうがフランス語だろうがロシア語だろうが中国の簡体字だろうがエディタなりIDEなりが補完してくれるからそれでオッケー。むしろて入力より補完で入れる方が誤入力が減っていい。
ファイル名といえば単語と単語の間をスペースで開ける言語(自然言語の方だよ)の地域ではファイル名にスペースをいれない派と入れる派の対立がありますね。#ファイル名は””で囲む派
この例みたいな簡単な名前とかでは使われないけど、法律用語や税金絡みだったり、英訳が困難だとかローマ字にしちゃうと一文字違いで違う意味になるとか多いので、名詞限定だけど全角の漢字名称使う。むしろローマ字変数名は絶対禁止。いまじゃレビューで弾かれる。抵抗してる人も多かったのだが、改修時のデグレ発生率とか数字がいろいろ出てくると、反対する人はいなくなったな。
そういう実例は見たことがある。その上であえていうと、そのやり方はクソだ。
デグレ発生率とかバグ発生率がそれで上がるのは、根本的に「正しいテストケースを作れてない」または「正しくテストを実施できてない」だけだから。1文字間違えてる系はそもそもテストの自動化が正しく出来ていれば防止できるし、むしろそっちで防止しなきゃいけない。「人間が目検で気がつく確率を上げる」ために作業効率を落とすのは本末転倒でしかないんだよ。
だいたい法律用語を日本語表記しても「1文字違いで全然別の意味になる」ことはあるよ。それをコードレビューで見つけやすければいいですなんてのは品質向上のためのプラクティスができてなくて、泥縄で対応してるだけの話。
>「人間が目検で気がつく確率を上げる」ために作業効率を落とすのは本末転倒でしかないんだよ。
いや、目検で、気づく確率を上げるとともに、作業効率を上げるために、日本語文字列つかってるんだけどね。効率上がるのは明白だけど、下がる理由ない。結局、好みで嫌がる人がまだ残ってるだけの話
日本語入力に切り替えるのにかかる時間エトセトラが無駄らしい
いや、目検で、気づく確率を上げるとともに、作業効率を上げるために、日本語文字列つかってるんだけどね。効率上がるのは明白だけど、下がる理由ない。
ないわ。IntelliSense等の自動入力支援がIMEのオンオフまで切り替えてくれない限りそれはない。
あと目検で気がつかなきゃいけないような仕事の回し方してる時点で駄目なんだが、わかってないのかね。目検なんてエビデンス残せるものでもないし、確実性もないから。
# 区切りの.とか半角しか受けてくれないのにわざわざ クラス名.メソッド() とか入力するだけで手間だ# class.Method()の数倍、入力時間かかるぞ
そうだな。テストしなきゃいけないコード書いてる時点で駄目だもんな。そこがわかってないから、他の手段で効率あげようなんてことするんだよな。常に完全な仕事してれば変数や関数の名前なんてわかりやすくする必要ないし、読めるコード書く必要なんてないもんな。
うちの場合、開発者が常に100%完璧であることは期待してないから、テストもやるし、目視確認や、レビューでの問題検出の確率あげるために必要な箇所での日本語使うのも有効だと思うが、いかなる状況でと完璧にできてればそんな必要ないな。
> > いや、目検で、気づく確率を上げるとともに、作業効率を上げるために、日本語文字列つかってるんだけどね。
> あと目検で気がつかなきゃいけないような仕事の回し方してる時点で駄目なんだが、わかってないのかね。
俺は「気づく確率を上げる」を「気がつきゃないけない」と解釈しなければならないような環境では仕事したくねえな……
あとタイピング速度が律速になるような仕事も嫌だ
変数名をローマ字にして、[shu,syu]とか[tu,tsu]が混在したり、命名者が知っている単語だけは英語にしているせいでローマ字と英語が混在したり([芸者名]が、[geishaNm]と[geisyaMei]で混在する)、英語を採用すると、例えば、[業務]という単語を[affair]と変換しさらに省略して[afr]と記述してるせいで何を示す単語がわからなくなったりするので、
少なくとも、業務では日本語で入力したほうがまだまし(効率化ではなく、難読化の予防)だと思います。#どうせなら、フラグも、何通りの意味を定義してしまうから(0:無効,1:有効,3:検討中,9:対象外とか)、使用禁止にすればいいのに
そうか?全く新しいプロジェクトなら日本語推奨だぞ
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
私は悩みをリストアップし始めたが、そのあまりの長さにいやけがさし、何も考えないことにした。-- Robert C. Pike
よくわからん (スコア:0)
PHPが好かれて居るのと同時に嫌われて居るって多分上級プログラマと下級プログラマ双方がいるからだろう
Perlが嫌われて居るには初級者が多く回答したのかな?学習コストが高い言語程そんな気はする
Perlわかりやすいと思うんですけどね
Re: (スコア:1)
VB6も本当は似たようなものだと思う
ただ敷居が低すぎたせいで馬鹿がごり押ししたプログラムも成立しちゃうってだけ
まあ今見ても言語仕様としてイケてない部分は確かにあるんだけど、それを差し引いても「きちんと設計されたVB6プログラム」はわかりやすくて良いと思うよ
# 関数呼ぶ時、戻り値ありとなしで書き方が違うのとかは今見てもイケてない部分だけどね
# Call Hoge(a, b) は通る
# ret = Hoge(a, b) も通る
# Hoge(a, b) は通らない
# Hoge a, b と記載する必要がある
Re: (スコア:0)
VB6はヘタするとWin32API呼び出しだらけで、何言語なの、ってことになったりするねぇ…。
それ、VB6の必要あったの、という。
でも意外となんでもできる言語(←諸悪の根源?)だと思うし、画面絡むとVC6よりマシな気がする。
せめて構造化例外があれば、もうちょい便利だったと思うのだけど。
VB派生でVBAが嫌われてるのは、Excel使いの素人が多いからでしょうね。変数や関数が日本語とか普通に見る。
そしてVBScriptは話題にもならないっぽい。ASPとかでけっこう使ったもんだけどね。
VB.Netが嫌われてるのは、VB6から移行したへたくそが多いせいですかね。
言語仕様的にはC#との違いなんてほぼ誤差なんだから、嫌われる理由はあまりないはずなんで。
Re: (スコア:0)
VB は VC++ で作られた OCX の 積み木でシステムを開発するためのグルー役の言語。
VB6 の中で全部やろうとするから破綻する。
コンポーネントベースの設計をやって積み木でシステムとしての組み上げ、カスタマイズも積み木を並べ変えるだけっていう設計でラスト1マイル的な使い方するなら、あれ以上にはまる言語もない。
変数や関数の日本語は、数十年前は忌避されてきたけど、今ではバグを出さないシステム開発のために必要な要素とみなされてきてるよね。
Re:よくわからん (スコア:0)
だいたいは同意だけど
これは流石にないわ。日本語使うとメンテナンス性が大幅に損なわれるし、似た変数名が並ぶと英文字以上に可読性にも悪影響になる。
たとえバグを出さないためだとしてもバッドノウハウの領域。
1度作ったら修正することがないことが担保されてる、保守や改修を無視していい、という特異な案件ならそれもアリだろうけど、一般化することじゃないし、そんなのやってる奴いたら殴ってでも止めるぞ。
Re: (スコア:0)
Re:よくわからん (スコア:1)
日本語ってこの場合、俗に言う「全角文字(2byte文字)」のことじゃないの?
法令用語や間違ったら困る用語をローマ字で表記することはあるけど、それは別にVBに限った話じゃないよね。
「日本語のコードがクソ」って、VB6でありがちな
みたいなコードのことじゃないの?
# これが保守や改修作業の効率化になるとは到底思えない
# 特に最近のちょっと気が利いた開発環境なら特定の変数の使用箇所をリストアップする、ぐらいは容易だから
# 検索のしやすさとか、ぱっと見てわかる、というメリットもそこまで重要ではないはずだ
Re: (スコア:0)
15年ほど前だとファイルやディレクトリの名称に日本語使うことにも文句言う人が残ってましたよ。
そういう人は今では滅多に見かけないですけど、プログラム内の日本語はまだ許容できない人が結構な率でいますね。自然に淘汰されてくと思いますが。
Re: (スコア:0)
それで「固くな」とか妙な単語使われてイラつくわけですね。
Re:よくわからん (スコア:1)
こっちでしょ。
うちも、増えてきた。
この例みたいな簡単な名前とかでは使われないけど、法律用語や税金絡みだったり、英訳が困難だとかローマ字にしちゃうと一文字違いで違う意味になるとか多いので、名詞限定だけど全角の漢字名称使う。
むしろローマ字変数名は絶対禁止。いまじゃレビューで弾かれる。
抵抗してる人も多かったのだが、改修時のデグレ発生率とか数字がいろいろ出てくると、反対する人はいなくなったな。
海外に出せないって話もあったが、設計書や仕様書が日本語だからそもそも出せん。
Re: (スコア:0)
分野によっては日本にしかないような概念の語句が変数名になったりする。
まあ日本語の変数名だろうが英語だろうがフランス語だろうがロシア語だろうが中国の簡体字だろうがエディタなりIDEなりが補完してくれるからそれでオッケー。
むしろて入力より補完で入れる方が誤入力が減っていい。
Re: (スコア:0)
ファイル名といえば単語と単語の間をスペースで開ける言語(自然言語の方だよ)の地域ではファイル名にスペースをいれない派と入れる派の対立がありますね。
#ファイル名は””で囲む派
Re:よくわからん (スコア:1)
そういう実例は見たことがある。
その上であえていうと、そのやり方はクソだ。
デグレ発生率とかバグ発生率がそれで上がるのは、根本的に「正しいテストケースを作れてない」または「正しくテストを実施できてない」だけだから。
1文字間違えてる系はそもそもテストの自動化が正しく出来ていれば防止できるし、むしろそっちで防止しなきゃいけない。
「人間が目検で気がつく確率を上げる」ために作業効率を落とすのは本末転倒でしかないんだよ。
だいたい法律用語を日本語表記しても「1文字違いで全然別の意味になる」ことはあるよ。
それをコードレビューで見つけやすければいいですなんてのは品質向上のためのプラクティスができてなくて、泥縄で対応してるだけの話。
Re: (スコア:0)
>「人間が目検で気がつく確率を上げる」ために作業効率を落とすのは本末転倒でしかないんだよ。
いや、目検で、気づく確率を上げるとともに、作業効率を上げるために、日本語文字列つかってるんだけどね。
効率上がるのは明白だけど、下がる理由ない。
結局、好みで嫌がる人がまだ残ってるだけの話
Re: (スコア:0)
日本語入力に切り替えるのにかかる時間エトセトラが無駄らしい
Re: (スコア:0)
ないわ。IntelliSense等の自動入力支援がIMEのオンオフまで切り替えてくれない限りそれはない。
あと目検で気がつかなきゃいけないような仕事の回し方してる時点で駄目なんだが、わかってないのかね。
目検なんてエビデンス残せるものでもないし、確実性もないから。
# 区切りの.とか半角しか受けてくれないのにわざわざ クラス名.メソッド() とか入力するだけで手間だ
# class.Method()の数倍、入力時間かかるぞ
Re: (スコア:0)
そうだな。
テストしなきゃいけないコード書いてる時点で駄目だもんな。そこがわかってないから、他の手段で効率あげようなんてことするんだよな。常に完全な仕事してれば変数や関数の名前なんてわかりやすくする必要ないし、読めるコード書く必要なんてないもんな。
うちの場合、開発者が常に100%完璧であることは期待してないから、テストもやるし、目視確認や、レビューでの問題検出の確率あげるために必要な箇所での日本語使うのも有効だと思うが、いかなる状況でと完璧にできてればそんな必要ないな。
Re: (スコア:0)
> > いや、目検で、気づく確率を上げるとともに、作業効率を上げるために、日本語文字列つかってるんだけどね。
> あと目検で気がつかなきゃいけないような仕事の回し方してる時点で駄目なんだが、わかってないのかね。
俺は「気づく確率を上げる」を「気がつきゃないけない」と解釈しなければならないような環境では仕事したくねえな……
あとタイピング速度が律速になるような仕事も嫌だ
Re: (スコア:0)
変数名をローマ字にして、[shu,syu]とか[tu,tsu]が混在したり、
命名者が知っている単語だけは英語にしているせいでローマ字と英語が混在したり([芸者名]が、[geishaNm]と[geisyaMei]で混在する)、
英語を採用すると、例えば、[業務]という単語を[affair]と変換しさらに省略して[afr]と記述してるせいで
何を示す単語がわからなくなったりするので、
少なくとも、業務では日本語で入力したほうがまだまし(効率化ではなく、難読化の予防)だと思います。
#どうせなら、フラグも、何通りの意味を定義してしまうから(0:無効,1:有効,3:検討中,9:対象外とか)、使用禁止にすればいいのに
Re:よくわからん (スコア:2)
{
if (記者.帰社)
汽車 += 記者;
}
こうですかわかりません
Re: (スコア:0)
そうか?全く新しいプロジェクトなら日本語推奨だぞ