パスワードを忘れた? アカウント作成
この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。

開発者に嫌われているプログラミング言語トップはVB6」記事へのコメント

  • by Anonymous Coward

    PHPが好かれて居るのと同時に嫌われて居るって多分上級プログラマと下級プログラマ双方がいるからだろう

    Perlが嫌われて居るには初級者が多く回答したのかな?学習コストが高い言語程そんな気はする
    Perlわかりやすいと思うんですけどね

    • by Anonymous Coward

      VB6も本当は似たようなものだと思う
      ただ敷居が低すぎたせいで馬鹿がごり押ししたプログラムも成立しちゃうってだけ

      まあ今見ても言語仕様としてイケてない部分は確かにあるんだけど、それを差し引いても「きちんと設計されたVB6プログラム」はわかりやすくて良いと思うよ

      # 関数呼ぶ時、戻り値ありとなしで書き方が違うのとかは今見てもイケてない部分だけどね
      # Call Hoge(a, b) は通る
      # ret = Hoge(a, b) も通る
      # Hoge(a, b) は通らない
      # Hoge a, b と記載する必要がある

      • by Anonymous Coward

        VB6はヘタするとWin32API呼び出しだらけで、何言語なの、ってことになったりするねぇ…。
        それ、VB6の必要あったの、という。

        でも意外となんでもできる言語(←諸悪の根源?)だと思うし、画面絡むとVC6よりマシな気がする。
        せめて構造化例外があれば、もうちょい便利だったと思うのだけど。

        VB派生でVBAが嫌われてるのは、Excel使いの素人が多いからでしょうね。変数や関数が日本語とか普通に見る。
        そしてVBScriptは話題にもならないっぽい。ASPとかでけっこう使ったもんだけどね。

        VB.Netが嫌われてるのは、VB6から移行したへたくそが多いせいですかね。
        言語仕様的にはC#との違いなんてほぼ誤差なんだから、嫌われる理由はあまりないはずなんで。

        • by Anonymous Coward
          VB6 で、Win32 を直接呼び出すってのは苦肉の策。
          VB は VC++ で作られた OCX の 積み木でシステムを開発するためのグルー役の言語。
          VB6 の中で全部やろうとするから破綻する。

          コンポーネントベースの設計をやって積み木でシステムとしての組み上げ、カスタマイズも積み木を並べ変えるだけっていう設計でラスト1マイル的な使い方するなら、あれ以上にはまる言語もない。

          変数や関数の日本語は、数十年前は忌避されてきたけど、今ではバグを出さないシステム開発のために必要な要素とみなされてきてるよね。
          • by Anonymous Coward

            だいたいは同意だけど

            変数や関数の日本語は、数十年前は忌避されてきたけど、今ではバグを出さないシステム開発のために必要な要素とみなされてきてるよね。

            これは流石にないわ。日本語使うとメンテナンス性が大幅に損なわれるし、似た変数名が並ぶと英文字以上に可読性にも悪影響になる。
            たとえバグを出さないためだとしてもバッドノウハウの領域。

            1度作ったら修正することがないことが担保されてる、保守や改修を無視していい、という特異な案件ならそれもアリだろうけど、一般化することじゃないし、そんなのやってる奴いたら殴ってでも止めるぞ。

            • by Anonymous Coward
              固くなに理解しない古い世代のもいるけど、ローマ字の変数名とか、法令用語みたいに誤訳したことで致命的な問題起こす事例が増えてきてるから、将来的な保守や改修作業の効率化のために日本語の名称やキーワード使うってのは増えてきたね。
              • by Anonymous Coward

                日本語ってこの場合、俗に言う「全角文字(2byte文字)」のことじゃないの?

                法令用語や間違ったら困る用語をローマ字で表記することはあるけど、それは別にVBに限った話じゃないよね。

                「日本語のコードがクソ」って、VB6でありがちな

                IF 価格入力.Text < 最低額 THEN

                みたいなコードのことじゃないの?

                # これが保守や改修作業の効率化になるとは到底思えない
                # 特に最近のちょっと気が利いた開発環境なら特定の変数の使用箇所をリストアップする、ぐらいは容易だから
                # 検索のしやすさとか、ぱっと見てわかる、というメリットもそこまで重要ではないはずだ

              • by Anonymous Coward on 2017年03月31日 18時02分 (#3185721)
                >IF 価格入力.Text < 最低額 THEN

                こっちでしょ。
                うちも、増えてきた。
                この例みたいな簡単な名前とかでは使われないけど、法律用語や税金絡みだったり、英訳が困難だとかローマ字にしちゃうと一文字違いで違う意味になるとか多いので、名詞限定だけど全角の漢字名称使う。
                むしろローマ字変数名は絶対禁止。いまじゃレビューで弾かれる。
                抵抗してる人も多かったのだが、改修時のデグレ発生率とか数字がいろいろ出てくると、反対する人はいなくなったな。
                海外に出せないって話もあったが、設計書や仕様書が日本語だからそもそも出せん。
                親コメント
              • by Anonymous Coward on 2017年03月31日 20時37分 (#3185809)

                この例みたいな簡単な名前とかでは使われないけど、法律用語や税金絡みだったり、英訳が困難だとかローマ字にしちゃうと一文字違いで違う意味になるとか多いので、名詞限定だけど全角の漢字名称使う。
                むしろローマ字変数名は絶対禁止。いまじゃレビューで弾かれる。
                抵抗してる人も多かったのだが、改修時のデグレ発生率とか数字がいろいろ出てくると、反対する人はいなくなったな。

                そういう実例は見たことがある。
                その上であえていうと、そのやり方はクソだ。

                デグレ発生率とかバグ発生率がそれで上がるのは、根本的に「正しいテストケースを作れてない」または「正しくテストを実施できてない」だけだから。
                1文字間違えてる系はそもそもテストの自動化が正しく出来ていれば防止できるし、むしろそっちで防止しなきゃいけない。
                「人間が目検で気がつく確率を上げる」ために作業効率を落とすのは本末転倒でしかないんだよ。

                だいたい法律用語を日本語表記しても「1文字違いで全然別の意味になる」ことはあるよ。
                それをコードレビューで見つけやすければいいですなんてのは品質向上のためのプラクティスができてなくて、泥縄で対応してるだけの話。

                親コメント
              • by Anonymous Coward

                >「人間が目検で気がつく確率を上げる」ために作業効率を落とすのは本末転倒でしかないんだよ。

                いや、目検で、気づく確率を上げるとともに、作業効率を上げるために、日本語文字列つかってるんだけどね。
                効率上がるのは明白だけど、下がる理由ない。
                結局、好みで嫌がる人がまだ残ってるだけの話

              • by Anonymous Coward

                日本語入力に切り替えるのにかかる時間エトセトラが無駄らしい

              • by Anonymous Coward

                いや、目検で、気づく確率を上げるとともに、作業効率を上げるために、日本語文字列つかってるんだけどね。
                効率上がるのは明白だけど、下がる理由ない。

                ないわ。IntelliSense等の自動入力支援がIMEのオンオフまで切り替えてくれない限りそれはない。

                あと目検で気がつかなきゃいけないような仕事の回し方してる時点で駄目なんだが、わかってないのかね。
                目検なんてエビデンス残せるものでもないし、確実性もないから。

                # 区切りの.とか半角しか受けてくれないのにわざわざ クラス名.メソッド() とか入力するだけで手間だ
                # class.Method()の数倍、入力時間かかるぞ

              • by Anonymous Coward

                そうだな。
                テストしなきゃいけないコード書いてる時点で駄目だもんな。そこがわかってないから、他の手段で効率あげようなんてことするんだよな。常に完全な仕事してれば変数や関数の名前なんてわかりやすくする必要ないし、読めるコード書く必要なんてないもんな。

                うちの場合、開発者が常に100%完璧であることは期待してないから、テストもやるし、目視確認や、レビューでの問題検出の確率あげるために必要な箇所での日本語使うのも有効だと思うが、いかなる状況でと完璧にできてればそんな必要ないな。

              • by Anonymous Coward

                > > いや、目検で、気づく確率を上げるとともに、作業効率を上げるために、日本語文字列つかってるんだけどね。

                > あと目検で気がつかなきゃいけないような仕事の回し方してる時点で駄目なんだが、わかってないのかね。

                俺は「気づく確率を上げる」を「気がつきゃないけない」と解釈しなければならないような環境では仕事したくねえな……

                あとタイピング速度が律速になるような仕事も嫌だ

ソースを見ろ -- ある4桁UID

処理中...