Emacsは私をより良いプログラマーにしてくれますか?[閉まっている]


130

Steve Yeggeが彼のブログにコメントを書きまし

世界で最も優れたエンジニア全員がEmacsを使用しています。世界を変えるタイプ。あなたの隣の立方体の偉大なギャルではありません。フレッドではなく、ホールの下の素晴らしい男。私は、業界の顔を変えた、私たちの職業の最高のソフトウェア開発者について話しています。ジェームズ・ゴズリング、ドナルド・クヌース、ポール・グラハムズ、ジェイミー・ザウィンスキー、エリック・ベンソンズ。実際のエンジニアはEmacsを使用しています。あなたはそれをうまく使うにはとても賢くなければなりません、そしてそれを習得できれば信じられないほど強力になります。あなたが私を信じていないなら、彼がいつか働いている間、ポール・ノードストロームの肩越しに見てください。キャリア全体でVisual Blub .NETのようなIDEを使用している人にとって、これは本当に目を見張るようなものです。

Emacsは100年の編集者です。

私がコードを記述するためにテキストエディタを最後に使用したのは、約1000年前にまだHTMLをメモ帳で記述していたときでした。それ以来、私はVisual Studio、NetBeans、IntelliJ、Borland / Codegear Studio、およびEclipseをキャリア全体に使用しており、多少IDEに依存しています。

それだけの価値があるので、私 Emacs 試しみましたが、すぐに使える発見可能な機能がまったくないため、私の経験はイライラするものでした。(どうやら他のEmacsコマンドを発見するためのEmacsコマンドがあるようですが、それを見つけることができませんでした。これは、Zenのような残酷なジョークを生きているようなものです)。代わりに、ドラッグアンドドロップのGUIデザイナー、IntelliSense、インタラクティブデバッグを使用することを決定しました。

事実をファンボイズムから区別するのは難しいので、私はまだイェッジのコメントを額面どおりに受け入れるつもりはありません。

IDEに依存する人々と依存しない人々の間で、スキル、生産性、またはプログラミングの楽しさに測定可能な違いはありますか、それとも単なるファンボリズムですか?


22
また、Paul Grahamがviを使用していることも注目に値します。Yeggeはリンク先の記事の脚注でこの修正を提供しています。
Eli Courtwright、2009年

16
私が使用したすべてのエディターの中で、Emacsは、起動するたびにチュートリアルを実行する方法を通知する唯一のエディターです(チュートリアルの実行方法を通知するのをやめるように十分に学習するまで)。
Michael Paulukonis、2009年

16
EMACSは何の略ですか?エスケープメタAltコントロールShift!;-)
Peter K.

24
専門用語集:Emacsは単なる「プログラマーエディター」であり、単なる「テキストエディター」ではありません。GUI IDEにはテキストを編集する機能もありますが、単なるテキストエディターではありません。NotepadをEmacsと比較することは、比較するようなものです...何かを投げて、Death Starでその銃で何かを打つことです。
グレッグマット

8
明らかに、相関関係因果関係の
Chubas 2010

回答:


119

まず、私はEmacsのカルトを信ずる本物の信者です。

とは言っても、ブロガーはくだらない。役立つと思うものを書いてください。私はEmacsが私を助けてくれることに気づきました。これは、大学時代に、自分のニーズに合わせて変更する方法を学び、自分のニーズに合わせて自分自身を変更するための初期費用を前払いしていたからです。

しかし、他の人は違うことをしていて、彼らは「大丈夫」と言っています。


73
同意した。私はEmacsが大好きですが、Emacsがあなたをより良いプログラマーにしてくれると考えることは、タイガーウッズのゴルフクラブを使うとあなたはより良いゴルファーになると考えるのと同じです。
クリストファージョンソン

31
上記のクリストファーのコメントに強く同意しないでください。優れたスポーツパーソン/アーティストのツールを使用しても、あなたは彼らほど優れているわけではありません。しかし、正しい仕事のために正しいプログラミングツールを使用することは間違いありません!プログラミングをスポーツとアートと同等と見なすことは許されるかもしれません。:)
Susheel Javadi

6
@バート:彼のポイントは、複数の「正しいツール」があるということです。タイガーウッドのゴルフクラブは優れたツールであり、仕事に最適ですが、同じ結果を提供できる他のクラブもあります。優れたプログラマーが使用するツールはそれらを定義せず、彼らの創造性と能力は定義します。
セス・ムーア

9
Stevesのステートメントの要点は、優れたプログラマはemacsを使用し、優れたソフトウェア開発者はIDEを使用する方が生産性が高いということです。優れたプログラマーは常にプログラミングします。プログラムするコードを作成するときでも、タスクを自動化し、make、ant、bash、perl、およびhudsonを愛しています。彼らは、ソフトウェア開発サイクルのどの部分でも手動タスクがエラーを起こしやすいことを知っています。優れたプログラマーは、他の誰かがあなたのコード(例えばIDEまたはだれでも)をビルドする場合、コード(例えばIDEまたはだれでも)の保守に関しては常にその誰かのスキルに依存することを知っています
Ernelli

4
Steve Yeggeは、elispで完全なJavaScriptパーサーを作成した人なので、Emacsが彼の言うところまで狂っているのは間違いありません:)
Tikhon Jelvis

106

彼(Steve Yegge)はこれについて、彼の他の投稿で少しずつ詳しく説明しています。http://steve-yegge.blogspot.com/2008_04_01_archive.htmlはおそらく最も包括的ですが、メインの主題に接しているため、情報はそこに埋め込まれています。

要約すると思います:単に優れたまたは有能なプログラマーは、IDEを習得してそれを本当によく理解し、おそらく十分に理解しますが、IDEが提供するものに制限されます。つまり、IDEに適応します。偉大なプログラマは、他の一方で、彼らの適応する環境に合わせて自分自身をスクリプトや独自のツールを書く、またはそのツールを拡張するなどの方法で、。そして、その最後の点まで、Emacsが最も拡張性の高い環境であるだけでなく、そこを拡張するのが最も簡単な環境であり、最もメリットを享受できる環境です。 拡張から-拡張機能はストック機能のようにEmacsに統合されるため、将来の拡張機能は以前の拡張機能に基づいて構築される可能性があります(正のフィードバックループのようなもの)。


15
違いは、IDEを拡張するために必要なエネルギーです。emacsでは、すべての構成ファイルはelispプログラムファイルです。したがって、本質的に、エントリの障壁は
途方も

18
アンガスと同じ線に沿って。優れたIDEは、仕事を終わらせるために無限にいじくり回す必要はありません。優れたIDEには、必要なすべての機能が備わっている必要があります。もちろん、ショートカットとレイアウトを構成することもできますが、すべてを処理するために一連のスクリプトを記述する必要はありません。
Kibbee、2009年

5
アンガス:その通りです。あなたが仕事を終わらせるのではなく、物事を追加することに手を出さなければならないなら、あなたは要点を逃しました-Emacsかどうか。Sol:外部プログラムを介してソースを拡張して送信するだけではありません。実際、それだけでは拡張機能はそれほど強力ではありません。
ジョナサンアーケル

15
emacsの拡張とnetbeans、ビジュアルスタジオ、またはEclipseの拡張の違いは速度です。Eclipseに拡張機能を追加することは、アプリケーション全体を作成するようなものです。比較すると、emacsの拡張機能の記述は、1行のコードにすることができます。
ジャスティン・タナー

4
@supercheetah-Visual Studioにあるインテリセンスに比べて非常に原始的に見えます。たとえば、利用可能なメンバーの横に表示されるアイコンは便利です!個人的には、強力なリファクタリングサポートがなければ、Emacsにはほとんど興味がありません。
si618

57

最高のプログラマーはviまたはemacsを使用します。これは、最も経験豊富なプログラマーが最高であり、20年前は、viとemacs以外の選択肢がなかったためです。

テキストターミナルが非常に遅いマシンでvi(1987年頃)を始めた後、数年後に(より高速なマシンで)Emacsを(GNU)Emacsに変換し、ほぼ10年間ほとんど使用しました。

Emacsは真に統合された最初の開発環境でした。編集、リンク、コンパイルのサイクル全体をemacsで制御でき、使用したコンパイラーに合わせて独自に開発できます。

今日、日食などのIDEはさらに統合されています(正直に言うと、emacsはグラフィックスに負けています)が、Emacsは依然として「純粋な」テキスト編集に最適な環境の1つです。


10
最初の段落の自己実現預言の+1。
OregonGhost 2009

12
「最も経験豊富なプログラマーは最高です」-少なくとも暗示によって、真実からはほど遠い。経験の浅いプログラマの方がいいと言っているわけではありませんが、20年以上同じことをやっているからといって、うまくやっているとは限りません。
AviD 2009年

7
20年前には、さまざまな編集者がたくさんいました。それらのほとんどは、一般的には正当な理由で、単に生き残っていません。1989年にviまたはemacsを使用した人が、1989年にMS-DOSベースのエディターを使用した人よりも優れているのはなぜですか。
David Thornley、

10年前、いい Java IDE はありませんでした。
Susheel Javadi、2011

私が20年前に覚えていることから、viとemacsは圧倒的に支配的なエディターでした-当時多くの編集者がいたからといって、すべてが同じように広く使用されているわけではありません。
FinnNk、2011年

34

明確な思考と問題解決を改善することで、より優れたプログラマーになります。プログラムはそれを行うことができません。

より良いハンマーを使用しても、方法と理由を知らない限り、より良い家を建てることはできません。;)


私が言いたかったことについても、よく似ています。
Rob、

21
しかし、悪いハンマーは同じ家を建てようとしているときにあなたの生産性を台無しにし、あなたはおそらく別の家になるでしょう。
user51568 2009年

それは公正です!平均的なプログラマーは、高価なハンマーを使用してもそれほどうまくいきません。
Jas Panesar、

5
優れたプログラマーは、ハンマーに石を使って素晴らしい家を建てることができます。(彼は遅いです-しかし、彼はまだそれをすることができます。:D)
Egon

はい。ただし、コードを有機的に流せるようにするエディター(Emacsはほとんどのエディターよりも優れていると思います)があれば、明確な思考を改善して問題を解決できます。
Skilldrick 2010

21

イェッジはビルジョイに会う必要があります。彼は世界の素晴らしいプログラマーの1人であるだけでなく、viの大きなチャンクも書きました。in vi。

短い恥ずべき告白:すべてのためにvi(および最近のvim / gvim)を20年間使用した後、昨年かそこらでJava編集(および電子メールにはThunderbird)を使い始めましたが、現在の仕事ではmachineにはメモリがほとんどないため、デバッガが必要な場合を除いて、通常はviを使用します。


7
+1 for vi(実際にはvimを使用しますが、違いは同じです)。これは、emacsが半分の手間でできることの98%です。
rmeador 2009年

25
vimを5年間使用しました。Emacsで20分後、二度と戻らないと誓った。Vimは後ろ向きに感じます。
MattBelanger、2009年

5
Yegge氏自身も次のように述べています。emacsよりもviの好みをすでに開発している場合は、VIMの専門知識を追求することで、より大きな幸せを体験することができます。Psh]ソース:steve-yegge.blogspot.com/2006/06/shiny-and-new-emacs-22.html
user674062 '13

1
ええと。ビルジョイはもうviを使わない。
Plumenator 2011年

13

IDEに依存する人々と依存しない人々の間で、スキル、生産性、またはプログラミングの楽しさに測定可能な違いはありますか、それとも単なるファンボリズムですか?

これをVisual StudioとEmacsに絞ってみましょう-それ以外の場合は質問が広すぎるため、ほとんどの人(少なくともここではStackOverflow)はこれら2つに精通していると思います。[私は、そして私はemacsを使用して好んでいます]

次に、質問の3つのコンポーネントを分解してみましょう。

プログラミングの楽しさは、主にプログラミング自体が好きであることに要約され、次に、それを行うときにポップアップ要素がポップアップしないようにします。苦労しているツールを使用すると、楽しみが減ります。ですから、私が推測するように、あなたが好きで、慣れ親しんだツールを使用することで、楽しみは最大化されるでしょう。

もちろん、新しいツールに慣れると、そのツールがより好きになり、新しいお気に入りのツールを使ってプログラミングするともっとプログラミングが好きになるかもしれません。彼らが両方をよく知っている場合、一般に人々がemacsよりもVSを好む(またはその逆)ことを私にははっきりしません。

次に、プログラミングスキル。スキルとVS / emacsの選択の間に何らかの関連がある場合、それは選択を引き起こすスキルではなく、選択を引き起こすスキルだと思います。私の経験では、{VS、emacs}はどれも、より優れたコードの記述について何かを学ばせるようには見えません。

優れたツールを使用すると、同じコード(つまり、同じ品質のコード)を短時間で作成できるようになります。それを前提とすればproductivity = quality of code `times` code per time、優れたコードをより短時間で作成できるエディタが生産性を向上させることは当然のことです。

私はVSに慣れていないかもしれませんが、ここでは、emacsにはVSにはない長所があると思います。ばかげているように聞こえるかもしれCtrl-[fbnp]ませんが、カーソルの動きと同じくらい単純なものは本当の恩恵です---それはあなたが矢印キーに手を動かす必要がないことを意味します。別のこと:改行を含む検索または置換を行うことができます。これは、私が見逃すのが嫌いになるほど頻繁に使用します。

もう1つ気に入っているのは、エディターにシェルを埋め込む機能です。私の経験では、それは非Windowsプラットフォームではるかに価値があります(そして、私の最初の「プログラミング」経験、IIRCはDOS .batファイルを書き込んでいたので、私はただの熱狂的なファンではありませんでした)、しかしそれらのプラットフォームではそれは大きな勝利です。emacsを「すべて」で「統合」します(find / locateを使用したファイル検索、grepを使用したテキスト検索、svn / git / hg /を使用したバージョン管理、...という名前を付けます)。

最終的な評決-あなたはemacsを学ぶべきかどうか?そして、それはすべてファンボイズムですか?時間があれば、同じことをする新しい方法を学ぶ価値は常にあると思います。なぜなら、新しい方法があなたにとってより効果的になるかもしれないからです。そして、あなたがそれを初めて知ったときのように見えるので、それを拒否しないことをお勧めします。その意味では、Dvorakキーボードレイアウトに切り替えるようなものです。最初は遅くなりますが、速度が上がると、少なくともqwertyと同じ速さで、より快適になります。新しい(プログラミング)言語の学習にも同じアプローチをお勧めします。語彙(標準ライブラリ)がわからないため、物事は難しいと言いますが、それでも報酬はあなたを待っています。


1
「これをVisual StudioとEmacsに絞ってみましょう-それ以外の場合は質問が広すぎます。ほとんどの人(少なくともここではStackOverflow)はこれら2つに精通していると思います。」 - 本当に?私のように、VisualStudioを使用せざるを得ない、もっと自発的に使用するような、もっと熱狂的な* nixファンがもっといると思いました。Hrm。
Xiong Chiamiov 09/09/17

「Ctrl- [fbnp]を使用したカーソル移動は本当の恩恵です」。私はEmacsが大好きですが、長い休止期間の後に戻ってきましたが、この方法でカーソルを移動することは、Emacsを再び使用する上で最も便利でなく快適な側面だと思います。対照的に、私は見たり考えたりすることなく、専用のカーソルキーに到達して見つけることができます。多分それはピアノ奏者になるのに役立ちますか?:)しかし、時間が経つにつれ、C-scrunch-letterがより自然に感じるようになることは誰にもわかりません。
グレッグヘンダーショット2011

2
PS私は完全にシェルとプラットフォームについて同意します。Windows、OS X、およびLinux間を移動する場合は、最初にCygwinを、3つすべてにEmacsを使用します。あなたの.emacs.dをGitHubに投げれば、あなたは金色です。
グレッグヘンダーショット2011

また、正規表現を使用してVisual Studioで改行を含む検索を実行できます
Axarydax

10

「世界で最も優れたエンジニア全員がEmacsを使用している」から始まる引用テキストで、私もそれを額面通りに受け取らないでしょう。彼は世界で最も偉大なエンジニアのすべてを知っていますか?それはあなたや私が持っているものと同じ世界最高のエンジニアのリストですか?

学ぶと、EMACSやviのような強力なエディターがあなたをより効率的にします。お気に入りのIDEがなくても、少なくとも効率がよくなります。

キラーは「一度学んだ」部分です。これらのツールを生産的に使用することは多くの作業と実践であり、最初は非常に困難です。


1
誰かが「素晴らしい」エンジニアになるのを本当に助ける資質の1つは、満足感を遅らせ、より大きな固定起動コストを負担して効率を改善できることです。
Tikhon Jelvis 2011年

9

私は個人的にはEmacsのファンですが、Emacsは単なるツールです。それはあなたが超高級ペンがあなたをより良い作家にするよりも、あなたをより良いプログラマーにすることはないでしょう。

「優れたプログラマ」が環境を自分自身に適応させることの明確化にはいくつかのメリットがあるかもしれませんが、多くのツール(vimやSlickEditなど)がそれを行うことができるため、Emacsについては特に何もありません。

「真のプログラマー」はプログラミングに情熱を注いでおり、情熱を傾けている人はその情熱を促進するのに役立つツールを見つける傾向があるというのが本当だと思います。Emacs(およびvimとSlickEditなど)はそのようなツールです。


超高級なペンで、ヘミングウェイっぽい感じがします。
Cheeso 2009年

2
「環境の適応」に関してEmacsの特徴は、VimやSlickEditよりもEmacsのほうがはるかに簡単であることです。(または私が知っている他の編集者)
vedang 09年

8

違いがあるとは思いません。それは好みの問題です。

しかし、私が気づいたのは、コーディングする時間が長いほど、またはコーディングするレベルが低いほど、emacsまたはviを使用する可能性が高いということです。


「長くコーディングした」というのは、優れたIDEができる前にコーディングを始めたことを主張しているようです。
ポールトンブリン

3
良いIDEのようなものはありますか?
David Thornley、

8

IDEは過去10年間で大幅に改善されてきましたが、醜い詳細の一部から遠く離れた、少し安全な「バブル」にプログラミングが含まれています。起こりがちなことは、この抽象化の増加により、より多くのプログラマがより少ない知識でより多くのことを実行できるようになることです。もちろん、それはすべてのプログラマーに当てはまるわけではありませんが、より簡単なツールはプログラミングをより幅広い聴衆にもたらします。

低レベルのツールについての知識が増えると、多くの場合、コードの安定性が高まります。誤って「グレインに逆らう」可能性が少なくなるためです。EMACSを唯一の主要な指標としてリストアップするのは不公平です。これは、EMACSがさまざまな言語やツールに由来し、実際には特定のテクノロジーではなく、理解の深さに関するものであるためです。

昔は、UNIXボックスでVIまたはEMACSを学んだか、PCを専門としていました(VMS、CMS、AS400などもありましたが、これらは古いテクノロジでした)。どちらのストリームも非常に熱心な人々を魅了しましたが、UNIXの人たちは洗練されたソリューションを必要とする傾向があり、PCの人はそれをすぐに実行したいと思っていました。文化は非常に異なっていました。


7

IMHO IDEは、特定のプラットフォームまたは言語またはOSに合わせて最適化される傾向があります。EclipseJDTはJavaに最適であり、Visual StudioはC ++ /。NET中心型などです。そのプラットフォームですが、プラットフォームを変更する場合は、基本的に新しいIDE(または少なくとも新しいプラグイン、ビュー、パースペクティブのセット、およびEclipseの他に何が必要かわからない)を学ぶ必要があります。

emacs、Textmate、またはvim(私の個人的な好み)、または一般的なエディターを知っていることの利点は、そのエディターで習得するスキルが、どのプラットフォームを対象としているかに関係なく適用できることです。これらはテキストの編集用に最適化されており、一度マスターすると、どの言語でも非常に効率的にテキストを編集できます。

優れたプログラマーがツールを自分の作業スタイルに適応させるのではなく、その逆に適応させるというYeggeの主張もあります。4つの異なるIDEをすべて希望どおりに動作させる方法を考え出す必要がないので、1つのエディターをカスタマイズするので、これは汎用エディターの勝利だと思います。


問題は、あなたが書かなければならない時に来て - Aでのベースパスをたとえば、彼らは「/」でBourneシェルを想定していたので、あなたがWindowsへの* nixから移動し、スクリプトのブレーク:あなたがにされてきたものとは別のプラットフォームPostScriptベースの印刷によるFHSのような構造...
SamB

私は今かなり長い間emacsで作業しており、カーソルの動きだけで、他の何かを書くことに憤慨することができます。たとえKMailのメールであっても。
Arne Babenhauserheide 2012年

@ArneBabenhauserheideこれが私がMac OS Xを愛している理由の1つであり、ほとんどすべてのテキストフィールドがサポートしていC-[npfbaed]ます。(残念ながらそうではありませんM-
porglezomp 2014年

6

私は、最良のプログラマーは、時間をかけて環境をカスタマイズし、実行する可能性のあるタスクをより速く/簡単に実行できるプログラマーである傾向があると主張します。Emacsは、環境のカスタマイズに関して、最も強力なエディターの1つです。それは急な学習曲線を持っていますが、一度それを過ぎれば、あなたがそれをあなたに何をさせることができるかに実質的に制限はありません。

最高のプログラマーは怠惰なプログラマーだと誰かがかつて言った。何かを複数回実行する必要がある場合、それを自動化する方法を見つけて、実行する手間を省く方法。Emacsを使用すると、非常に怠惰になることができます;)


4

私はIDEを最初から(おそらく、QBASICから始めて)、何年もの間使用してきました。すべての開発作業でほぼ完全にVIM(多様なフレーバー)に切り替えましたが、後悔していません。私の生産性は確実に向上しました。

もちろん、Visual StudioのWindowsフォームデザイナーに代わるものはありません。しかし、VIM(およびEmacs)と比較すると、Visual Studio内のテキストエディターは本当にお粗末です。コンソールとGNU開発ツール(つまりmake、、GCC、binutilsおよびgdb一部のツール)の生の力を利用すると、これらのツールは原始的に見えるかもしれませんが、それらは正反対であり、実際にはすべてを提供しますIDEが提供するツール(フォームデザイナを除く)。

これらのツールを初めて使用するときは、非常に急な上り坂があり、インセンティブが小さい場合があります。幸運にも私はこれらのツールを使用せざるを得なかった(?)ので、私はイタズラできる選択肢がありませんでした。


3

個人的には、より生産的になるものは何でも使うべきだと思います。Emacsに座って学習するプロジェクトに投資する時間がない場合、それはおそらくその時点での時間の最善の使用法ではありません。

ただし、十分な時間がある場合は、他のIDEについて知っておくことをお勧めします。日常的にVisual Studioを使用していますが、自宅では小規模なプロジェクトにEclipseを使用しており、 Emacsも同様です。私がEmacsの使用を検討した特定の時点で、私の努力は、Emacsと格闘するのを遅くするよりも、実際の仕事を終わらせるためによりよく提供されました。

最高のプログラマー全員がEmacsを使用していると考えるのは、ばかげたことだと思います。Emacsを使用しない、あまり人気がない(またはおそらくボーカルではない)素晴らしいプログラマーがたくさんいます。


3

1年半ほど前にEmacsを使い始めたのは、それが(正規表現をサポートするエディターで)正規表現で作業したい、lispを学びたい、もっと優れたエディターが欲しかったなど、いくつかの欲求が集まったためです。

正規表現を使用してコードを編集すると、コード内のパターンを見つけることについて多くのことを学びました。キーストロークに慣れるまでしばらく時間がかかりましたが、マウスを使わない場合はずっと速く飛ぶことができます。

Emacsを使用すると、同じアプリケーションでメモやコーディングを操作し続けることができます。コンテキストの切り替えが最小限であることは、脳の切り替えが最小限であることを意味し、手元のタスクに集中できます。


3

いいえ。良いコードはあなたをより良いプログラマーにします。

とはいえ、優れたテキスト操作が効率の鍵です。vimかemacsのどちらかでテキストの操作方法が変わります。どちらも効果的であることが証明されていますが、スタイルの点ではほとんど矛盾しています。また、この議論はかなり古く(テキスト->コンパイラーが重要であった80年代と90年代にさかのぼります)、あなたができる最高のプログラマーになるのに役立つ他の多くのテキストエディターやIDEがあります。


3

いいえ。emacsを使用することでより優れたプログラマーになると確信している場合、原因と結果は混乱しています。

でも毎日使っています。Java開発用のEclipseよりもemacs + mavenの方が生産性が高いことがわかります(ただし、時々リファクタリングまたはデバッグセッションを行うためにEclipseを時々起動します)。

これらは私の理由です:

  • emacsでの実際のテキスト編集エクスペリエンスは、他のすべてを打ち負かします。キーボードだけを使用してこれほど高速に達成できるのは驚くべきことです。Eclipseはよりマウス指向であり、タイプすると多くの刺激的な障害に遭遇します。
  • elispを使用してemacsをカスタマイズできることは、非常に強力です。初歩的なelispを学び、環境をカスタマイズするのに時間をかけていなければ、単に時間を浪費しているだけだと私は言っています。
  • テキストエディタで実行することができるほとんどすべての拡張機能があります。

1
相関の+1 =因果関係
Xiong Chiamiov

どのJavaモードを使用していますか?
アベンダエル、2011年

1
私はEmacs23に付属する標準のJavaモードを使用しています。Mavenビルドを実行するためのカスタマイズとハックがいくつかあります。emacs-eclimの使用も開始しました。これはemacsとeclipseの間のブリッジとして機能します。それは素晴らしくて使いやすいですが、現時点ではかなりラフです。
fred-o

3

私がIDEではなくEmacsを選択する主な理由は、キーボードだけですべてを実行できるためです。これは、通常マウスを使用する場合の時間を節約できるという点で優れています。また、私は自分が非常にモバイルであると感じているので、遅いタッチパッドを使用しているため、プログラミングの「溝」が中断される傾向があります。さらに、そのカスタマイズにより、いくつかのIDEを上回っています。ただし、IDEで十分に高速にプログラミングしていることに気付いた場合は、Emacsの学習曲線に問題はありません。


2

IDEに依存する人々と依存しない人々の間で、スキル、生産性、またはプログラミングの楽しさに測定可能な違いはありますか、それとも単なるファンボリズムですか?

あなたは本当にその答えを得ることができるとは思いません。スキル、生産性、プログラミングの楽しみを測定するにはさまざまな方法があります。それらはすべて非常に主観的であり、原因を1つに分解することはできません。

それはまだ興味深い質問です。

私の個人的な信念は-それはプログラマに依存します:)

ジーマン


ファンボーイの男。IDEはエディターではありません。IDEは最高のエディタである必要はありません。
Perpetualcoder、

2

私はそれがあなたをより良いプログラマーにすることはないと思います、しかしあなたがそのレベルを持っているとき、あなたはおそらくemacs(またはvi)を使うでしょう

:-/

これら2つ(私は今までemacsを使用したことがありませんが、最も平凡なタスクにviを使用しています)の良い点は、それらが思考の流れを妨げず、手を離す必要がないことです。キーボードでマウスをつかみ、ファイルメニューで正しいオプションを探します。あなたはただ、書き続けます。あなたの心の中であなたは次のようなことを言います:「その単語のすべての出現をそのために置き換えてください」、Enterキーを押して作業を続けます。

それに、emacsが唯一のツールだとは思わない。

それはあなたをより良いプログラマーにするでしょうか?おそらく違います。しかし、そのレベルの専門知識を持っている場合は、これらのツールを使用してコーディングをどれだけ速く実行できるかが気になるでしょう。


メニューでのハンティングは、IDEを知らない人のためのものです。最後にメニューオプションを「狩る」必要があったのはいつかわかりません。
tster

「ファイル->保存」の方がCtrl-Sよりも良いと思いますか?そうは思いません。マウスをつかんでメニューファイルをクリックし、マウスを下に移動して[保存]エントリに移動する必要があるのは、キーボードの手を使わずに実行できる場合です。
OscarRyz 2011

明らかに同意します。私がこれまで使用してきたすべてのIDEには、emacsと同じように、カスタマイズ可能で幅広いホットキーと組み合わせがあります。
11

2

番号。

規律、批判的思考、自己改善の欲求は、あなたをより良いプログラマーにするでしょう。ツールセットは、生産性の主要な要素ですが、天才を生み出しません。

emacsやviが気に入らない場合は、使用しないでください。意識しない選択を行うことにより、開発環境を自分のニーズと作業慣行に適合するように形成します。いずれにせよ、あなたはあなたが好きなものを使う権利があり、そしてあなたがディスクにビットを書き込むために使うツールにあなたを怒らせるほど愚かである誰も無視します-それは重要なビットです。

注:ここでの「ツールセット」とは、文字通り、ツールの「ブランド」(特定のエディター、コンパイラーなど)を意味します。概念的なツールセット、たとえば、バージョン管理の使用、単体テスト-一般に、すべてが自己の一部です。改善プロセス。


2

emacsの優れた機能の1つは、サイズやサイズに関係なく、投げるほとんどすべてのファイルタイプを処理できることです。確かに、クレイジーな巨大な暗号化ファイルを開いている場合、必ずしも役立つとは限りませんが、開きます。ほとんどのエディター(およびIDE)は、ファイルが大きすぎるか、予期された形式のファイルではない場合、大きな問題を引き起こします。

例として、メモ帳で1 Gigファイルを開いてみてください。

私は1980年頃にEmacsを使い始めましたが、それは常に私のツールボックスのツールでした。これは唯一のツールではありませんが、常に役立つものであり、いくつかの有用な作業を実行できることがわかります。

炎症性のコメント:一方で、viについて言うことはあまりありません。私はいつもviが喜んで私を殺して私の臓器を売ろうと思っていましたが...

実生活では、ほとんどすべての開発形態にNetbeansを使用しており、すばやく編集するために時々emacsを使用しています。今、クレイジーなことをすることに関しては、emacs(私にとって)ほど便利なものはほとんどありません。

他の誰かがコンパイルされたバイナリ実行可能ファイルの静的文字列を編集する必要がありますか?emacsよりもそのようなもののためのより良いツールはありますか?それは確かに私のために働きます。


1
一方、Visual Studioはその機会を完全に逃してしまい、代わりに、財布を調べて、余分な現金があるかどうかを確認します。
Rob

すみません、わかりません。私はほとんどいつでもNetbeansを使い、必要なときはemacsを使います。
ボブ・クロス

2

あなたがこれを尋ねなかったのは知っていますが、emacsを(予想外に)改善したことの1つは、コマンドラインを操作することでした。emacsのキーバインドを学ぶ前は、カーソルを動かしたり、カーソルキーを使用して履歴をナビゲートしたりしていました。それは私が、私が使用することができます気づいたとき電球瞬間のものだったbackward-wordmove-beginning-of-linebackward-kill-word(私はいつもにバインドされたているC-wSteveyが示唆するように)bashM-tあまりにも頻繁に有用であり、それを前に見たことがない人には最も印象的)。

ルートシェルが「posixシェル」であり、デフォルトでemacsバインディングがないSolarisでは、かなりの作業を行います。exec bashログインするたびに、自分の指が自然に一致するようになったので、使い慣れた編集コマンドを指の下で操作するのがずっと速くなりました。

認めざるを得ませんが、私はまだKnuthの本が大変だと思っています(それだけの価値はあります)。つまり、プログラミングが魔法のように改善されたとは思いません。


ああ、私は本当にこれらのトリックの詳細を学ぶ必要があります...とにかく、ログインシェルを変更できませんか、それとも「ルートシェル」と言ったときに「ルートユーザーのシェル」を実際に意味しましたか?もしそうなら、なぜあなたはrootとしてログインしていますか???
SamB

2

Emacsにより、テキスト操作とファイルシステムナビゲーションの効率が向上しました。そして、私がプログラムするときにこれらの両方が関係しているので、私はより効率的な(したがってより優れた)プログラマーになりました。


2

間接的ではありますが、Emacsはあなたをより良いプログラマーにしてくれると思います。Emacsを使用すると、他の関数型言語(Clojure)に興味を持った関数型言語(Elisp)を実際に書くようになったと思います。とはいえ、時間が経てばわかると思います。


Lispの本当に古いスタイル(動的なものだけであり、語彙のスコープはありません)ですが、教えることは確かにたくさんあります。それは、それが実際に正しく機能する当時は、非常に優れたテキストエディターになる可能性があります。
SamB

1

使用することができることいくつかのカスタマイズ可能なエディタは、あなたが気の利いたことを行うことができますが、特にEmacsは必ずしも可能な非常にベストワンではありません。私自身もSlickEditのユーザーです。emacsが有名な奇妙な半自動化されたものをすべて使用しています。私は人々がviやさまざまなWindowsベースのエディターで同様のことをするのを見てきました。

そう、そうです、ソケットセットは良いですが、CraftsmanがOne True Socket Setを作ると主張するのは、ちょっとばかげています。


余談ですが、頭の痛いマーケティングのためでなければ、SlickEditを試してみる傾向があります。「SlickEditを使用しない10の理由-#1:あなたは悪いプログラマーであることが好きです。少なくなります。#3:あなたは近交系マロンなどです。」
ジュリエット

私はそれがマーケティングをする前にスリックに入りました。それは、当時、OS / 2 3.0で実行されていた唯一の本物のエディタであったというだけのことです。これはおそらく、他のすべての人がemacsを使用するのと同じ理由です...
mjfgates 2009年

1

Emacsのキーバインディングとその組み込み関数を習得すると、EclipseやVisual StudioなどのIDEよりも速くテキストを操作できます。

Emacsを使用したプロのビデオをチェックしてください。

Emacsでまともなレベルに達したら、Java Script、Java、Ruby、Python、HTML、C、C ++などの任意の言語を効果的に編集できます。

Emacsを使い始めるのはお尻の苦痛であり、箱から出してすぐの経験は悪いより悪いです。Emacsのデフォルト設定では、Emacsの初心者はEmacsのより強力な機能(ヒッピーエキスパンド、etags、yasnippetsなど)を利用できません。Emacsスターターキットのドットファイルから始めることをお勧めします。

Steve Yeggeが世界最高のプログラマーがEmacsを使用していると主張するもう1つの理由は、elispです。Elispを使用すると、経験豊富なプログラマーがEmacs を簡単に拡張できます。EclipseまたはVisual Studioで拡張機能を作成することは、elispでクイック関数や新しいマイナーモードを作成するよりもはるかに困難です。


問題は、なぜそれを使用し始めるのかということです。幸せで、快適で、生産的であるなら、emacsの学習に時間と労力を無駄にするのはなぜですか?強力なエディタではありますが、古いエディタを学ぶよりも、新しいプログラミング言語を学ぶか、新しいテクノロジーを研究するほうがはるかに好きです。1日は24時間しかありません。時間を上手に使用してください。
sarsnake 2009年

もう1つ注意すべき点は、使用しているテクノロジーにも依存していることです。EmacsにはIntellisenceがありますか?私はUNIXマシンの大学でそれを使用しましたが、それ以来それが変わったと確信しています。ただし、.NET Intellisenceの場合は必須です。すべての名前空間のすべてのクラスのすべての関数名を誰もが覚えている方法はありません。そして、関数名を調べる必要があるたびにMSDNに行くとは限りません。EmacsがIntellisenceを提供している場合、私はそれを検討します。
sarsnake、2009年

1

VIやEmacsなどのテキストベースのエディターを使用することは、「優れたプログラマー」になるために高く評価されている、または必要であるというのは、大きな誤解です。IDEは以前よりもずっとパワフルだといつも思っていましたが、それは本当に好みとスタイルをもたらします。


0

私は大学でemacsを使用しました。それは約16年前のことです。私は振り返っていません。まだemacsを使いこなせることを願っていますが、実際のところ、MS IDEの生産性は非常に高いです。

あなたが投稿したテキストは単なるトロールです。うん。宗教戦争を始める以外に理由はありません。


0

私はemacsから始めましたが、viに切り替えました。viに切り替えたのは、そのシンプルさのために、よりエレガントになっています。また、シングルユーザーモードで立ち往生している場合でも、edコマンドはviコマンドのサブセットです。emacsがそれを処理できるかどうかはわかりません。

したがって、その点でviはあなたをより良いプログラマーにしてくれると思います。


EmacsのDOESは、私が...一種のジョークのだったものと思われるが、のMx viのモードを持っている
ブライアンPostow

システム管理を行うには、viの基本を知ることが不可欠です。ただし、それはプログラミングではありません。
Xiong Chiamiov 09/09/17
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.