パスワードを忘れた? アカウント作成
10036025 story
プログラミング

もっとも「WTF」なプログラミング言語って? 110

ストーリー by headless
調査 部門より
ITworldの調べによると、開発者に最も嫌われているプログラミング言語はVisual Basicだったそうだ。一方、「WTF(what the fuck)」というキーワードを使い、困った状況に陥りがちな言語のランキングも行っている(ITworldの記事本家/.)。

プログラミング言語の比較に「WTF」を使う方法は開発者のSammy Larbi氏が考え出したもので、GitHubでの検索結果から各言語1リポジトリあたりの「WTF」出現頻度を集計する。調査の意味が少しわかりにくいが、困惑したり怒ったときなどに使われるインターネットスラング「WTF」の出現頻度を調べることで、開発者を悩ませる場面の多さを知ることができるのだという。2年前にLarbi氏が集計した際にはObjective-Cが1位だったという。なお、Larbi氏はコード全体から「WTF」を検索していたが、今回ITworldではGoogle BigQueryを使い、コミット時に添付されるコメントのみを検索対象にしたとのこと。その結果、1位がC++で2位以下はLua、Scala、C#、JavaScriptと続く。特に1位のC++は2位以下に圧倒的な差をつけている。一方、Objective-Cは16位。Visual Basicは20位以内にも入っていないそうだ。
この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
  • by iwakuralain (33086) on 2013年09月30日 9時23分 (#2468315)

    私がコーディングしたものを改修する人は言語に関係なく嫌われているかもしれない

  • by Anonymous Coward on 2013年09月29日 17時47分 (#2468005)

    古い言語ほどやられるし、普及している言語ほどやられる。

  • by Anonymous Coward on 2013年09月29日 18時04分 (#2468016)

    使う言語がひどかったのか、プログラムの題材が悪いのか、
    はたまた前任者/同僚がクソコードを書いただけなのか、

    コメントからは判断できないだろうね。

  • by Anonymous Coward on 2013年09月29日 18時01分 (#2468013)

    言語に対してWTFなのか、コード自体に対してWTFなのか分からんのじゃないの。

    • by Anonymous Coward on 2013年09月29日 19時03分 (#2468050)

      VC++(MFC)で、有る画面と継承された別の画面で、修正前、チェックは親画面側にしかロジックが無く、

      チェック追加時に、子側画面にも親側のまねをして、チェック関数を追加し、そのデリゲートに差分ロジック
      のみを書いたら、

      子側画面で追加した以外のチェックが働かなくなってひどい事になった事が有ります。

      何で、Shadowsと書かなくてもシャドウしてしまうのか不思議でなりません。これこそまさにfxxxxxxxxxxxxxxk
      の典型だと思います。単なる文追加が、それ以上の意味を持ってしまうなんて、吃驚仰天です。

      親コメント
      • Re:言語? (スコア:3, すばらしい洞察)

        by Anonymous Coward on 2013年09月29日 19時39分 (#2468080)

        オーバーライドってそういうものだと思うんだけど。
        C++じゃなくとも、.Net以外のOOD言語って基本オーバーライドするものだよ。
        他にもあるかは知らないけど、OverridesかShadowsかを選べる.Netのほうがむしろ異端じゃないかな?

        ポリモーフィズムってのを勉強するといいよ。
        素人がオブジェクト志向系言語に近づくとこういう痛い目に遇うって言う典型だね。

        親コメント
      • by Anonymous Coward on 2013年09月29日 21時10分 (#2468128)
        言ってる意味がよくわからんが、VB.NETでもオーバーライドしたら自動的に親クラスのメソッド呼び出す行が追加されるだけで差分だけ書いても親側は実行されないと思うんだが。

        仮想関数についても学んだ方が良いかも。
        親コメント
      • by Anonymous Coward

        それって言語の問題じゃなくて、フレームワークの問題でしょ。

        たぶん、Windows関係は、MFCの問題でWTFが多くなっているんじゃないの。
        純粋なC++のフレームワークじゃなかったからはまった人多数ってことで。

    • by Anonymous Coward

      WTFなコードを書けるような言語はダメ,ということかもしれない

      • by Anonymous Coward

        そういうことがないようにした場合、プログラミング言語といえるほどの自由度がなくなりそうですね。

  • lolなプログラミング言語なら
    http://www.blue.sky.or.jp/grass/doc_ja.html [sky.or.jp]

  • by Anonymous Coward on 2013年09月29日 18時15分 (#2468025)

    なんでこんなに嫌われてるんでしょうね。
    取っつきやすい言語だと思うんですが。

    • by Anonymous Coward on 2013年09月29日 18時28分 (#2468032)

      私の偏見ではVBしか扱えない開発者の質が低すぎる。他の言語を使ったことがない、使おうとしても理解できない、そんな開発者がまともなコードを吐けるわけがない。

      親コメント
      • Re:Visual Basic (スコア:4, 興味深い)

        by Anonymous Coward on 2013年09月29日 20時18分 (#2468103)

        VBしか扱えない開発者っていうのは大半が

        ”VBすらまともに扱えていない”

        のが事実かと…

        親コメント
      • by Anonymous Coward

        特定の言語しか使えない(『使わない』ではない)奴が役に立たないのは、
        VBに限ったことじゃないだろ。

    • by Anonymous Coward on 2013年09月29日 19時06分 (#2468052)

      本来、パフォーマンスは高いツールだと思います。かつては素晴らしいものだったといっていい程に。
      自分がストレスを感じるのは
      ・もっとハイカラな言語を知っていて、VBの言語仕様ではその代替案も実現できないような時
      ・VBのスケールに合わない実装をとにかくVBで求められる時
      ・出来の悪すぎるプログラム(VBはやはり多いみたい)のメンテナンスを強いられる時
      ・VB.netはCLIに合わせすぎて誰に優しくしたいのかよく分からん
      こんなところでしょうか。

      親コメント
      • by Anonymous Coward

        VB6(非.Net)で、めんどくさい事をやれと言われた時に、VB6に殺意を覚えるのは共感できますね。
        ただ、小規模な開発だったり、既存システムの運用のためのツールなど、GUIが必要で簡単な代物などを作るには便利ですよね。

        結局は、道具の一つなんだから適材適所でしか無いのですよね…。

    • by Anonymous Coward

      取っつきやすい程度のことをやるには便利な言語だが、いまだにBASICで実務の開発をやってるのは限界を超えて大規模化してしまって、他の言語で作り直すのもままならなくなったようなシステムばかりだからじゃないか?
      #便利だからうちでもこまごましたツール開発にまだBASIC使ってるよ!

    • by Anonymous Coward

      冗談は顔だけにしてくれ

    • by Anonymous Coward

      みんなに嫌われているわけではないですよ。
      一部の感情的に嫌っている人があたかも「こんなに嫌われている」と言っているだけ。 VB以前のモダンでないBASICのトラウマから抜け出せないそんな人たちに。
      別のコメントにあるように、まともに作れない人が言語のせいにしているのはあるかな? VBはとっつきやすいだけでなく、フレームワークや部品をちゃんと用意すれば生産性や品質の良いシステムを比較的簡単に作れるが、それをしない現場も有るので。

      • by Anonymous Coward

        >フレームワークや部品をちゃんと用意すれば
        今はどうかしらないけど、VB.net以前の頃(VB5とかVB6とか?)はそのフレームワークや部品を使うのにいちいちレジストリ登録とか必要だったり、
        開発で何度か差し替えると希にわけのわかんない状態になってDLLを呼び出すのに失敗するようになったり、
        異なるベンダどうしで一種類のクライアントPCにあれこれ自分たちが必要な環境を登録してたら意味不明の挙動をするようになったりと
        ひどいもんだったんだよ。

        当時VBに関わっていた者は、今でもDLLを見るとひどくおびえて意味不明の言葉をつぶやきだすんだ。
        恐ろしいことだよ。

        • by wolf03 (39616) on 2013年09月29日 19時56分 (#2468093) 日記
          管理チームが環境指定しているのに余分な物入れてて、指定環境では動作しない物を作ってくる所があったぐらいだよ。
          そこは納期にも全く間に合わなくて、参加他社が手分けして引き取った物さ・・・・。
          親コメント
        • by Anonymous Coward on 2013年09月29日 19時43分 (#2468082)

          まあ、こういうモダンでない状態でのトラウマから抜け出せないそんな人たちがいるわけです。
          ちゃんとした事ができない現場では仕方ありません。VBが悪いと愚痴るしかできないのです。
          DLL地獄はVB由来ではありません。だいたいなんでレジストリをいじるのでしょうか?
          もしかして、VBソースにAPIの宣言を直接書くとか間抜けなことをしていましたか?

          親コメント
    • by Anonymous Coward

      「取っつきやすい」
      → まともなプログラミングできないようなユーザも多数いる

      ってことかもよ。だからろくでもないコードが一杯あって見る方が苦労する、と。

  • by Anonymous Coward on 2013年09月29日 19時11分 (#2468057)

    本当に「言語」を理由に嫌われているとかなら有益な議論もできるが、どうせ宗教戦争みたいになると予想する。
    どうせ「○×は嫌いだ」と希薄な根拠で悪口を言うことに終始するのでしょう。

    だいたい、Larbi という人はどこまで信用できるの? まあ、悪口の数を数えたそうなので、言っている内容はここの雑談内容とは一致する気はするけどね。

  • by Anonymous Coward on 2013年09月29日 19時12分 (#2468059)

    クラスが使えるCとか、javaより速いjavaみたいな扱いだから、
    名前や使い方が似ているだけのあんまり筋の良くない機能が乱用されている気がする。ポインタとかnew演算子とか、
    ポインタは大抵参照で代用できるし、メモリリークするのはdeleteを忘れたのが原因ではなくて、不用意にnewを使ってしまったのが原因のはず、
    可変長配列は標準で用意されているし、make_sharedを使えば、shared_ptrを使う時にnewを使う必要はない。

    • by Anonymous Coward on 2013年09月29日 19時51分 (#2468089)

      名前や使い方が似ているだけのあんまり筋の良くない機能が乱用されている気がする。

      C++にそれは言ってやるな・・・。
      C++は今ある洗練された多くの言語のおばあちゃんみたいなもんだよ。
      ネイティブ言語の後継者が育たないので未だに現役張ってるだけで。

      親コメント
      • by kmra (33703) on 2013年09月29日 21時13分 (#2468131) 日記

        C++の立ち位置すごくよく分かった気がする…

        危ない使い方は禁止、LINTチェックではじいて使うならC++でも幸せになれますか?

        そして、育ってくれるならどの言語の素性がよいと思いますか?(宗教論争になると思うので個人的意見で)

        親コメント
        • それはMT車で「クラッチペダルを踏むな」と言ってるのに近い。
          書く側が理解するんだ。

          親コメント
      • by Anonymous Coward on 2013年09月30日 0時51分 (#2468209)

        >ネイティブ言語の後継者が育たないので未だに現役張ってるだけで。

        さすがに自己矛盾したコメントじゃなかろうか。C++の役割はまさに「ネイティブ言語」である点にあるわけで。
        そして、その意味で「後継者」、つまりライバルは現在に至るまで不在だし、それはC++がよくできているからだろう。

        C++は複雑な言語だけど、複雑さには理由がある。C++の目標は、「コンピュータの低レベル機能へのアクセスを実現すること」、
        同時に「静的に型付けされたオブジェクト指向設計をサポートすること」、そしてそれらを「なるべくポータブルに」かつ「効率的に(最小限のオーバーヘッドで)」実現することだ。
        これらすべてを同時に実現するために複雑になっているが、これらすべてが必要とされる分野というのが世の中にはあって、
        例えばJavaのランタイムがそうだ(まあCで実装されているものもあるけど)。結局、JavaのプログラムはC++で書いたランタイムの上で動いている。
        単に設計が古いとか、設計者が馬鹿だったという理由で複雑なわけじゃない。
        元コメや元々コメなんかは、ドライバとか、言語のランタイムのような低レベルなコードを書いた経験がないからC++の価値がわからないんだと思う。
        「ポインタは大抵参照で代用できる」とか、明らかにわかっていない。ガベージコレクタを実装することを考えてみればよい。

        親コメント
typodupeerror

弘法筆を選ばず、アレゲはキーボードを選ぶ -- アレゲ研究家

読み込み中...