IDEに頼るとプログラミング能力は劣化するのか 149
ストーリー by hylom
劣化ってなんだ 部門より
劣化ってなんだ 部門より
あるAnonymous Coward 曰く、
本家/.にて、IDEに依存すると悪いプログラマになるのか?(Does Relying On an IDE Make You a Bad Programmer?)という話が議論になっている。
元々は、とあるプログラマが.NETを使う際にIDEに頼ってしまう、という話を自身のブログに書いていたものを、ITworldが取り上げたもの。.NET開発においてVisual Studioはコードの自動生成などを含めた非常に強力な開発支援ツールを提供している。しかし、それは逆に言えば「IDEで提供されているものしか使えない」というプログラマや、「ほかの言語や環境を扱えないプログラマ」を生み出してしまうことになるのではないか、という疑問が呈されており、そこからIDEを使うとプログラミング能力が落ちるのでは無いかという議論に発展している。
いっぽうのIDE擁護派は「言語が持つの特定の機能や関数を覚えているプログラマが良いプラグラマというわけではなく、問題を解く方法を知っており、問題を解決するためのベストな技術やツールを知っていることが重要なのだ」とし、言語の機能を使う手助けをするIDEは悪くない、としている。
本家/.のコメントでは、IDEを擁護する意見が多いようだが、「90年代の議論を蒸し返すのか? 次にお前はソースコード管理(バージョン管理)の必要について議論する」などのツッコミも入っている。
IDEそれは無限力 (スコア:2, おもしろおかしい)
またIDEの力をめぐって人は争うのか…
Re:IDEそれは無限力 (スコア:2)
こすも~♪ 振り向かないで~♪ (スコア:1)
何故だ!何故殺す!何故戦う!何故そっとしておけないんだ!
viさんの理想主義がコーデイング能力の劣化を抑える鍵だったかも知れないんだ!
コーデイング能力の劣化の力が解放したらどうなるか誰も分かっていないんだぞ!
貴様達が、貴様達が責任を取ってくれるのか!貴様達が!(走召糸色木亥火暴)
"castigat ridendo mores" "Saxum volutum non obducitur musco"
Re:こすも~♪ 振り向かないで~♪ (スコア:1)
きっと「逆襲のギガンティス」なんだよ。
らじゃったのだ
emacs (スコア:2)
emacsでもそこそこのIDE環境を作れますが、ダメになりますか、そうですか。
Bad Programmer (スコア:2)
何かカッコ良さそうだから、IDEに頼るのも一興。
Re:Bad Programmer (スコア:2)
このところ雲行きが怪しいけど、
オンラインゲーム関連サービスを提供する企業がユーザーのPCにボットネットを仕込む [srad.jp]
とか。
本物のプログラマはSCSIを使う (スコア:1)
ごめんなさい、ちょっと言ってみたかっただけです。
Re:本物のプログラマはSCSIを使う (スコア:2)
それでもIDEは生き残る (スコア:1)
SATAってピン数が少なくてきつい感じがするのでやっぱりIDEの方がグラウンドも安定していて温かみを感じますね
Re:それでもIDEは生き残る (スコア:3)
IDEで楽をしていると、IDEを使っている人間がマスタでIDEががスレーブなのか、それとも人間がスレーブでIDEがマスタなのか判らなくなる感覚にとらわれることがあります!
# ないない。
Re:それでもIDEは生き残る (スコア:3)
Re:それでもIDEは生き残る (スコア:1)
でもなぁ、IDEはターミネータがないから不安で…
ホスト側にシュワちゃんみたいにゴッツイの置いて、相方はニャンコ先生みたいにフカフカしたのが良いなぁ
弘法筆を選ばず (スコア:1)
こんなこと言う奴に限ってスキルがイマイチなんだよね
#私もですが
Re:弘法筆を選ばず (スコア:2)
できる奴は筆を選ばずそこそこできるんだけど、
いいものはいいと言える見識も持っている。
ツール語らせて「xxのyyがいい」「こんな風にいい」と出てくれば見込みありで、
「xxが悪い」「yyは使いにくい」「zzはだめ」と出てくればイマイチ率高し。
Re:弘法筆を選ばず (スコア:1)
xyzzyの悪口ですかー!!!
#ちげーよ
Re:弘法筆を選ばず (スコア:2)
優れてる奴ほど最高の道具にも拘るんだよ。
それを知らん奴は三流。
IDE(インテリセンス)ありきの言語はどうすんの (スコア:1)
.NETやJDKだとかでコード補完が使えなかったら利便性生産性が著しく下がります。
コード補完が無いとやってられない命名ルール、com.sun.java.foo.Util.longCamelCaseMethodLikeThisとか暗記したくない。
IDEが流行る言語と流行らない言語は、人気もそうだけど言語/環境がIDEを頼っている部分が大きい。
CのためのMakefileなら楽しく書きますが、antなんて人間が直書きするためのものじゃないだろと思います。
IDEを使うと、例えば「ファイルの属性を見るにはどうすればいいんだったっけ」とかいうのに出会うと、
まずFile/Sys等のファイル操作に関するパッケージorクラスをコード補完で探します。
で、その中でattrとかisBarとか適当なメソッドorプロパティをコード補完で探します。
見つかったらソース中のdocstringを流し読みして使う。
同じようなことがC#でもJavaでもできます。
こういう、大まかな感触だけ覚えておいて詳細はIDEに任せるっていうコーディングができます。
そりゃ関数の名前バッチリ記憶していて注意事項も把握しているっていう人の方が頭が良いのかもしれませんが、
楽をするために全力を尽くすべきだと言われて育った身分としてはそんな苦労はすべきじゃない、悪だとすら思います。
Re:IDE(インテリセンス)ありきの言語はどうすんの (スコア:2)
EmacsLispは何のためにあるのかと、
emacsでもvimでも普通に補完ぐらい効くよ。
Re:IDE(インテリセンス)ありきの言語はどうすんの (スコア:2)
C/C++の補完は、clangの構文解析を使うから、マクロもテンプレート補完できるんだが
Re:IDE(インテリセンス)ありきの言語はどうすんの (スコア:1)
いやいや、プロジェクトを実際に理解し、それに合わせたコード補完をしてくれるのはIDEならではだと思いますよ。
エディタのコード補完はバッファ内やctagsのファイル等から単語を探してきますが、そのプロジェクトで何のライブラリを使っているのか分かっていて、
ソースのコンパイル時に利用可能なもので、型が一致するもので、というところまでエディタはやってくれません。
できるというならそれはエディタじゃなくてIDEになりませんか?
自分定義で申し訳ありませんが、IDEに必須な機能、自分が欲しい必要最低限の要素って
くらいだと思うのですよ。UIデザイナーとかその他の機能はオマケレベルじゃないかと。
逆に上述の必須(だと私が思う)機能がお粗末だとIDEとして貧弱だと判断します。
実はエディタ機能すら外部委託なものも有ります。OCamlのでMerlin [github.com]というものがあります。
これはIDEではありませんが、ocamlfindを組み合わせたMakefileを用意するだけでIDEとしての機能を提供出来てしまっている(と思います)。
皆さんはIDEに必須、これが無ければIDEと呼べないという機能として何を挙げますか?
Re:IDE(インテリセンス)ありきの言語はどうすんの (スコア:1)
その程度なら、vim+clang+qmakeである程度出来ると思う。
PLC (スコア:0)
「キーエンスばっかりつかってると…」と囁かれます。
ソースコード管理(バージョン管理)の必要? (スコア:0)
> IDEを擁護する意見が多いようだが、「90年代の議論を蒸し返すのか? 次にお前はソースコード管理(バージョン管理)の
> 必要について議論する」などのツッコミも入っている。
この文章の意味が分かりません。
ソースコード管理は、もはや例外なく必須と言って良いでしょうから、その発言が比喩として成立しているのであれば、
IDEも必須になるわけで、「IDEを擁護する意見が多いようだが…ツッコミも入っている」にはならないのでは?
自分は以下のような意見です。
・ソースコード管理は必須。
・IDEにプログラミングを助ける効果はある。
・IDEは必須とまでは言えないが、使った方が良い状況はあるし、その状況では使うべき。
・IDEにより、ある方面のプログラミング能力の伸びが制限される可能性はないわけではないが、それは教育次第で避けられる
と言いつつ、特定の状況を除き、ふだんはIDE使わずにEmacs使ってますが。(汗)
Re:ソースコード管理(バージョン管理)の必要? (スコア:2)
えっEmacsってIDEじゃないの?
Re: (スコア:0)
Emacsは実行環境だろう常識的に考えて
Re:ソースコード管理(バージョン管理)の必要? (スコア:1)
その割にはIDE使ってる開発現場でもVCS使ってるとは限らないところがままあるのは何でなんだぜ
Re:ソースコード管理(バージョン管理)の必要? (スコア:1)
IDE 使いというか、IDE 依存症の人はダメですね。
大昔に新人研修を受けていた時のことを思い出しました。
ビンボー会社なもんで LSI-C 試食版(懐かすぃ……)でやってましたが、
情報系の学校を出た同期の子から「どうやってコンパイルするの?」
と言われてひっくり返り、じゃあ学校でどうやってたんだよ!と聞いたら
「F5 キーを押す」と言われてまたひっくり返った覚えがあります。
要は裏で何やってるか知ってるか知らないかの違いでしかなくて、
普段 IDE を使っているか否かとは直結はしてないと思います。
ただまあ、最近そういうことを知らない輩が増えたのではないか、
ということであれば、確かにそんな気はします。
そういう輩は思慮が浅く、すぐにドヤ顔で「簡単ですよ」と言うので、見分けはすぐつきますね。
もはやお約束で emacs も引き合いに出されてますが、
大昔の Unix 系だと素の vi しか入ってない場合があって、
やはりキーキー騒ぐ輩はいました。
Vim 依存症患者で同様の発作を起こすのもいます。
これもまあ同じですな。
Re:ソースコード管理(バージョン管理)の必要? (スコア:3, おもしろおかしい)
それを聞いて私も思い出したことがひとつ。
私がヘルプで入ったプロジェクトはアプリケーションをVC++で開発していましたが、
ユーザへのインストレーション作業をみていて驚愕しました。
なんとユーザの各クライアントPCにVC++の開発環境ごとインストールしていたという……
どうやらランタイムやらライブラリやらという概念が無かったらしい。
いやー おかげで客先での問題解決が楽でよかったですよ(棒)
あれ、ちゃんと開発ライセンス買ってたんだろう・・・・な?
Re:ソースコード管理(バージョン管理)の必要? (スコア:1)
言われているのは「サポート機能や自動化に頼りすぎて、それがなきゃできなくなる」
って話かと。
IDEもバージョン管理システムも、でた当初は
「便利すぎて、自分で書く・管理するスキルが低下する」
と器具する人がいました。
が、「人のミスを減らすのに有効、スキルが低下するのは、低下した人の問題だろ」
的に落ち着いてた訳です。
それを、一応の決着がついたそれを、
また言い出すのか?IDEの話の次は、またバージョン管理システムについて言い出すつもりなのか?
と、言っている訳です。
Re: (スコア:0)
IDEが必要かどうかについての議論は、VCSに関するそれと同じく90年代にし尽したよね、ってことでは。
問題解決能力がすべて (スコア:0)
I/Oの仕様が与えられて、それを満足できるものが作成できれば
という条件なら、それでいいだろう。
しかし、顧客によってはさらに制約条件
言語、開発環境、使用ライブラリの制約、等がある場合があり、
そういう縛りに対応できるか、というのも能力に含まれるといえばいえる。
つーか、コマンドラインコンパイラを使ったこともない奴に
開発を任せられるかどうか、気分の問題に近いが
顧客に使ったことが無いと威張れる話ではない罠。
#個人的にはアセンブラが判らん奴はプログラマとして認めたくはないと思う
関係ない (スコア:0)
COBOLerはIDE使わないと思うんですけど、「ほかの言語や環境を扱えないプログラマ」の代表みたいなもんですよね。
Re:関係ない (スコア:1)
-- 哀れな日本人専用(sorry Japanese only) --
Re: (スコア:0)
すばらしい洞察+1
駄馬に乗ってみるのもまた (スコア:0)
Visual Cafe, JBuilder, Forte, Delphi・・
VS,Eclipseなんてイケメンサラブレッドはほんとは嫌いなんです:)
"知ってれば"問題ない? (スコア:0)
「解法知ってれば問題ない」という擁護に象徴的だけれど、
IDE使いは、既に知っているorどっかのブログで紹介された解法しか使わずに、
問題に合わせて最適な解法を考え出す能力に欠ける印象がある
Re:"知ってれば"問題ない? (スコア:1)
IDE使いは、既に知っているorどっかのブログで紹介された解法しか使わずに、
IDE使いに限らずほとんどのプログラマはその通りだと思うけど、逆に、プロはそれでいいんじゃないかと思う。
仕事なのに、ろくに検証もされていない「ぼくのかんがえたさいきょうの解法」なんて使われては困るんじゃないかな。
もちろん、「既に知っている」解法の種類を増やす努力や、新しい解法を調べる努力は怠ってはいけないけど。
Re:"知ってれば"問題ない? (スコア:1)
ただの道具にケチつけてもどうしようもない
そんな人間はIDEがあってもなくてもスキル的には未熟なだけ
仮にIDEが無ければ勝手に淘汰されてるだけ
逆に伸びる人間はIDEの便利機能を駆使して人の書いたコードをガシガシ読んで育っていく
>IDE使いはry
そんな事言い出したら、
IDEに頼らない俺かっけーな人はTypo多すぎ+単体テストすらしないでエラーが出たら人のコードを疑う印象がある
…のような感じで、架空の使えねープルグラマを作り出して叩き合いになりそうだから不毛だと思う
Re: (スコア:0)
Re:"知ってれば"問題ない? (スコア:1)
> 自動生成されるダイアログ
IDE批判してる人は知識が前世紀で止まってそうだと思った。
IDEに頼ると (スコア:0)
能力のない人でも(一応)それなりにプログラミングできるようになる。
◯◯を使うと××になる系の議論はだいたいこれ。
Re:IDEに頼ると (スコア:1)
IDEを使う奴のプログラミング能力は劣化しないが、
IDEに頼ってる奴のプログラミング能力はイマイチなのが多い。
#そもそもIDEがあると便利な言語って意外に少ないんだが……
Re:インテリセンス (スコア:1)
むしろ積極的に使わないと駄目じゃないかな
Re:インテリセンス (スコア:2)
phpとか動的言語はインテリセンスが使いずらいんで静的言語使いを羨ましいと思います。
ツーことでgolang使いを目指します( ー`дー´)キリッ
Re:インテリセンス (スコア:1)
インテリセンスがあれば、どういう機能を準備していけばよいのかリアルタイムに戦略を立てながらコーディング作業が可能
これが無いとドキュメントorライブラリソースと、制作中のコードを行ったり来たり無駄な時間を浪費してしまいます
API名に関しては記憶しておいた方がより素早く組めると思います、小さな加速要因にしかなりませんが。
Re:インテリセンス (スコア:1)
自動補完機能を搭載していながら、それが正常に動作しなくなったときに、激しくむかつく。
動作がおかしくなったとき、インテリセンスデータベースファイル(*.ncb)を削除して、
Visual Studioを再起動するとか、あんまりインテリじゃない。ときどきバカになる。
Visual StudioよりQt Creatorの方が、的確な補完をしてくれる印象。
もうそろそろMFCなんか捨ててQtに移行しようぜ>うちの会社
Re:インテリセンス (スコア:1)
Qt Creatorの補完は autoで型推論を使うと使うと補完候補をど忘れするんじゃ。
それ以外はいいんだけどね、QDebug便利だし。Android開発も出来るし、eclipseより遥かに軽いから
Re:ここまで (スコア:3)
mouse に騙されて参加できなかったんですよ!
Re:フレームワークに頼るとプログラミング能力は劣化するのか (スコア:2)
最近はコンソールアプリのフレームワークは選択できないのかな?
WSHのことだと思いますがjQueryを使う事例はあるようです。
https://www.google.co.jp/search?q=jQuery+WSH [google.co.jp]