アカウント名:
パスワード:
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
みたいなコードのことじゃないの?
# これが保守や改修作業の効率化になるとは到底思えない# 特に最近のちょっと気が利いた開発環境なら特定の変数の使用箇所をリストアップする、ぐらいは容易だから# 検索のしやすさとか、ぱっと見てわかる、というメリットもそこまで重要ではないはずだ
この例みたいな簡単な名前とかでは使われないけど、法律用語や税金絡みだったり、英訳が困難だとかローマ字にしちゃうと一文字違いで違う意味になるとか多いので、名詞限定だけど全角の漢字名称使う。むしろローマ字変数名は絶対禁止。いまじゃレビューで弾かれる。抵抗してる人も多かったのだが、改修時のデグレ発生率とか数字がいろいろ出てくると、反対する人はいなくなったな。
そういう実例は見たことがある。その上であえていうと、そのやり方はクソだ。
デグレ発生率とかバグ発生率がそれで上がるのは、根本的に「正しいテストケースを作れてない」または「正しくテストを実施できてない」だけだから。1文字間違えてる系はそもそもテストの自動化が正しく出来ていれば防止できるし、むしろそっちで防止しなきゃいけない。「人間が目検で気がつく確率を上げる」ために作業効率を落とすのは本末転倒でしかないんだよ。
だいたい法律用語を日本語表記しても「1文字違いで全然別の意味になる」ことはあるよ。それをコードレビューで見つけやすければいいですなんてのは品質向上のためのプラクティスができてなくて、泥縄で対応してるだけの話。
>「人間が目検で気がつく確率を上げる」ために作業効率を落とすのは本末転倒でしかないんだよ。
いや、目検で、気づく確率を上げるとともに、作業効率を上げるために、日本語文字列つかってるんだけどね。効率上がるのは明白だけど、下がる理由ない。結局、好みで嫌がる人がまだ残ってるだけの話
日本語入力に切り替えるのにかかる時間エトセトラが無駄らしい
いや、目検で、気づく確率を上げるとともに、作業効率を上げるために、日本語文字列つかってるんだけどね。効率上がるのは明白だけど、下がる理由ない。
ないわ。IntelliSense等の自動入力支援がIMEのオンオフまで切り替えてくれない限りそれはない。
あと目検で気がつかなきゃいけないような仕事の回し方してる時点で駄目なんだが、わかってないのかね。目検なんてエビデンス残せるものでもないし、確実性もないから。
# 区切りの.とか半角しか受けてくれないのにわざわざ クラス名.メソッド() とか入力するだけで手間だ# class.Method()の数倍、入力時間かかるぞ
そうだな。テストしなきゃいけないコード書いてる時点で駄目だもんな。そこがわかってないから、他の手段で効率あげようなんてことするんだよな。常に完全な仕事してれば変数や関数の名前なんてわかりやすくする必要ないし、読めるコード書く必要なんてないもんな。
うちの場合、開発者が常に100%完璧であることは期待してないから、テストもやるし、目視確認や、レビューでの問題検出の確率あげるために必要な箇所での日本語使うのも有効だと思うが、いかなる状況でと完璧にできてればそんな必要ないな。
> > いや、目検で、気づく確率を上げるとともに、作業効率を上げるために、日本語文字列つかってるんだけどね。
> あと目検で気がつかなきゃいけないような仕事の回し方してる時点で駄目なんだが、わかってないのかね。
俺は「気づく確率を上げる」を「気がつきゃないけない」と解釈しなければならないような環境では仕事したくねえな……
あとタイピング速度が律速になるような仕事も嫌だ
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
ナニゲにアレゲなのは、ナニゲなアレゲ -- アレゲ研究家
よくわからん (スコア: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:よくわからん (スコア:1)
こっちでしょ。
うちも、増えてきた。
この例みたいな簡単な名前とかでは使われないけど、法律用語や税金絡みだったり、英訳が困難だとかローマ字にしちゃうと一文字違いで違う意味になるとか多いので、名詞限定だけど全角の漢字名称使う。
むしろローマ字変数名は絶対禁止。いまじゃレビューで弾かれる。
抵抗してる人も多かったのだが、改修時のデグレ発生率とか数字がいろいろ出てくると、反対する人はいなくなったな。
海外に出せないって話もあったが、設計書や仕様書が日本語だからそもそも出せん。
Re:よくわからん (スコア:1)
そういう実例は見たことがある。
その上であえていうと、そのやり方はクソだ。
デグレ発生率とかバグ発生率がそれで上がるのは、根本的に「正しいテストケースを作れてない」または「正しくテストを実施できてない」だけだから。
1文字間違えてる系はそもそもテストの自動化が正しく出来ていれば防止できるし、むしろそっちで防止しなきゃいけない。
「人間が目検で気がつく確率を上げる」ために作業効率を落とすのは本末転倒でしかないんだよ。
だいたい法律用語を日本語表記しても「1文字違いで全然別の意味になる」ことはあるよ。
それをコードレビューで見つけやすければいいですなんてのは品質向上のためのプラクティスができてなくて、泥縄で対応してるだけの話。
Re: (スコア:0)
>「人間が目検で気がつく確率を上げる」ために作業効率を落とすのは本末転倒でしかないんだよ。
いや、目検で、気づく確率を上げるとともに、作業効率を上げるために、日本語文字列つかってるんだけどね。
効率上がるのは明白だけど、下がる理由ない。
結局、好みで嫌がる人がまだ残ってるだけの話
Re: (スコア:0)
日本語入力に切り替えるのにかかる時間エトセトラが無駄らしい
Re: (スコア:0)
ないわ。IntelliSense等の自動入力支援がIMEのオンオフまで切り替えてくれない限りそれはない。
あと目検で気がつかなきゃいけないような仕事の回し方してる時点で駄目なんだが、わかってないのかね。
目検なんてエビデンス残せるものでもないし、確実性もないから。
# 区切りの.とか半角しか受けてくれないのにわざわざ クラス名.メソッド() とか入力するだけで手間だ
# class.Method()の数倍、入力時間かかるぞ
Re: (スコア:0)
そうだな。
テストしなきゃいけないコード書いてる時点で駄目だもんな。そこがわかってないから、他の手段で効率あげようなんてことするんだよな。常に完全な仕事してれば変数や関数の名前なんてわかりやすくする必要ないし、読めるコード書く必要なんてないもんな。
うちの場合、開発者が常に100%完璧であることは期待してないから、テストもやるし、目視確認や、レビューでの問題検出の確率あげるために必要な箇所での日本語使うのも有効だと思うが、いかなる状況でと完璧にできてればそんな必要ないな。
Re: (スコア:0)
> > いや、目検で、気づく確率を上げるとともに、作業効率を上げるために、日本語文字列つかってるんだけどね。
> あと目検で気がつかなきゃいけないような仕事の回し方してる時点で駄目なんだが、わかってないのかね。
俺は「気づく確率を上げる」を「気がつきゃないけない」と解釈しなければならないような環境では仕事したくねえな……
あとタイピング速度が律速になるような仕事も嫌だ