Ubuntuはプログラミング環境としてWindowsに比べてどのような利点がありますか?


59

WindowsでVisual StudioのようなIDEを使用するよりも、テキストファイルまたはターミナルを介してプログラムを作成する方が(読みながら)より良いオプションなのはなぜですか?IDEが提供する機能はそこにありますか(コンパイルエラーの表示など)、それとも手動プロセスですか?


16
一部の人々は、長い間プログラミングを行っており、テキスト駆動型のコマンドプロンプトから行うことで非常に効果的になるようになりました。彼らはvim好みに合った編集者を見つけるかもしれません。これは非常に主観的な領域です!ただし、多くの人がLinuxでIDEを使用しているため、ここで複数のことを混同しています。
ウォーレンP

3
IDEは問題の主要なポイントではないと思います。Linux OS用のIDE がたくさんあります。たとえば、すべてのJetBrains IDE(IntelliJ / PyCharmなど)はLinuxで動作します。EclipseはLinuxで動作します。QtCreatorはLinux上で動作します。
バクリウ

12
このサイトにあるこの質問は確認バイアスに苦しむでしょう。
zzzzBov


4
この質問をより具体的にするために、特にタイトルを言い換えてください。Ubuntuは、WindowsよりもIDEを避けたり、ソフトウェア開発のためにテキストエディターを使用したりすることを強制しません。
Reinierポスト

回答:


87

この種の仮説は、Programmers.SEの方が優れている可能性があります。そうは言っても、私は数年間.NET開発者であり、Visual Studioに依存するようになりました。それはあなたのために多くのことをし、はい、私は特に統合デバッガが好きです...しかし、私は人々がLinuxを選ぶいくつかの理由があると思います:

  • Ubuntuは無料です。WindowsとVSは非常に高価になる可能性があります。

  • Ubuntuは無料です。WindowsとVSでは、それらの使用方法をほとんど制御できません。

  • Ubuntuは、すぐに使用できるプログラミング環境です。バッシュのようなツール、grepsedawk。歴史的に、Windowsはスクリプトを作成する上で大きな苦痛です。バッチファイルはひどく、PowerShellを使用した場合でも、Windowsのコマンドラインエクスペリエンスは、BashやGNUツールと比較すると重要ではありません。その一部をWindowsに移植できますが、同じ体験ではありません。

  • 複雑なセットアップはapt-getPuppetChefJujuFabricなどのツールおよびシンプルなスクリプトを介して自動化および複製するのが簡単です。

  • 複雑なIDEを必要としないものもあります。私は最近、Python開発者であり、独自の組み込みツールとデバッガーに完全に満足しています。テキストエディター、コマンドライン、およびファブリックを使用します。. 単一のFabricコマンドでwebappをビルド、テスト、コミット、デプロイできます。

    だからといって、モノリシックなIDEがないわけではありません。EclipseおよびNetbeans。MonoDevelop。KDevelop4およびQT Creator。彼らはすべて、彼らに誓うユーザーを持っています。

Ubuntu はあなたにとってより良いですか?知るか。これは、非常に機能的でカスタマイズ可能なシステムです。機会を与えて、ワークフローを変更して、それがあなたを助けることを許すなら、あなたはそれを固くすることができるはずです。


18
「無料」とは、コストと手間の両方を意味します。私はMacを使用していますが、Vagrantのようなツールを使用すると、プロジェクト用にクリーンなLinux VMを簡単にセットアップし、プロジェクトの完了時に破棄できます。"私が欲しいものは?" 唯一の考慮事項は、「このOSのライセンスキーを持っているか、どのように認識させるか...」ではありません。
ネイサンロング

14
+1非常に多くの人々がひねくれた「Windozeがすべてを吸う」という態度をとることが簡単だと感じたときに客観性を維持するため。
フィル

2
注目すべきことの1つは、Visual Studioは以前よりも無料で、しばらくの間MAKEファイルサポートしており、プラグインを使用すると、Visual Studio内で完全にcygwinアプリケーション記述およびデバッグできることです。
スコットチェンバレン

6
even PowerShell scripts lack the power of Bash-私はあなたがPSをあまりよく知らないと主張します。それは非常に強力であり、PSでできないことをBashでできることは何もありませんでした
マークヘンダーソン

4
@MarkHendersonええ、それはほぼ確実にそれを十分に使わないことによるものです。Windowsと.NETを忘れてしまったように紹介されました。Bash(および「Bash」とは本当にGNUを意味します)は、どこでもすべての目的で使用しているため、私と一緒に取ったと思います。すべてが常に超特化されているため、 PSは毎回非常に多くのグーグルを必要としました。Bashで久しぶりに言うのは正直難しい。
オリ

37

ただし、もう1つの重要な理由を追加します。Ubuntuは、新しいライブラリ、言語、IDE、コンパイラを試すのに最適です。すべてが簡単に逃げられます。

あなたはHaskellと呼ばれる派手な言語について聞いたことがあります:

sudo apt-get install ghc
nano hello.hs
<copy-paste hello world example>
ghc -o hello hello.hs
./hello
Hello World!

ああ、Haskellの素晴らしいエディターを聞いたことがあります:

sudo apt-get install <fancy-editor-for-haskell>

同じC / C ++ライブラリは、あなただけのapt-get install彼らとバイナリとヘッダは、右のフォルダに移動し、することができますだけで#includeも、彼らが置か取得場所を確認するために必要とせず、ソースファイルでそれら!

本質的には、日々の作業環境をどれだけ速くセットアップできるかということではありません。また、実験環境を非常に高速にセットアップできることも重要です。それがLinuxでの学習体験を加速するものだと思います。


36
apt-get、そしてすべてがそのようにインストール可能でなければならないという考え方は、おそらくLinuxの最高のものです。OSXもWindowsもここでは比較しません。
ネイサンロング

11
はい、しかし、あなたは手動で各アプリケーションのインストーラを取得する必要があります:彼らは同じインストーラを使用するという事実は、内部(それはセーブくらいを購入していない彼らにいくつかの努力を)。これは組み込みのパッケージマネージャーとは異なります。
役に立たない

2
@NathanLong Macportsを使用してまったく同じことを行いました。sudoport install ghc。ソースから新たにコンパイル。 The MacPorts Project currently distributes 17699 ports。1つの違いは、常にコンパイルされることです。
アレシール

2
@karadeniz:それは言及していないyumpacmanemergepetgetpkgadd...
Aesin

2
私はMacPortsが好きです(そして、そことHomebrewでいくつかのパッケージを管理しています)が、実際にはDebianと比較することはできません。これらの小規模なプロジェクトには、同じ標準に対する大規模なリポジトリを維持するための人間の力がありません。Windows側のcygwinとcoappについても同様です。主な違いは文化的です。Linuxパッケージマネージャーはシステムの一部であり、すべての人がすべてに使用します。これらはアドオンのわずかに無視されたバックウォーターではありません。
jcupitt

20

主にマイクロソフトのプラットフォーム開発者からの意見です。.NETエコシステムを対象としていない場合、最善の選択肢はUbuntuであると主張します。WindowsではなくUbuntuを使用している場合、他のほとんどすべてのプラットフォーム/言語のツールを入手、構成、および使用するのがはるかに簡単になります。

Microsoftのツールチェーンの価値は、高度に統合されていることです。IDEからソース管理、プロジェクト管理、ビルド、展開、データベース、クラウドインフラストラクチャ、悪心まで。マイクロソフトは、プラットフォームを徹底的に使用する場合に非常に簡単にします。

一部の人が述べたように、Microsoft Wayから逸脱することは苦痛です。コードに.NETを使用し、データベースにOracleを使用するのは大変です。

.NET Webアプリケーションを作成して、それをAmazon Web Servicesにデプロイしたい...それほど単純ではありません。

しかし、マイクロソフトエコシステム内にとどまると、その赤ちゃんはあなたのためにm笑の鳥のように歌います。有能なソフトウェア開発者の手にとって、Microsoftプラットフォームは才能あるアスリートのPEDのようなものです。アマチュアのプログラマーが次のFacebookを作成できるようにするつもりはありません。しかし、それらがどのように適合するかを理解している才能のある開発者に優位性を与えます。

Ubuntuを開始するための無料(ビールなど)のコストの議論は出ていません。Microsoftがツールを無料で開始できるプログラムがいくつかあります。スタートアップ企業に3年間のライセンス(ツールの製品使用ライセンスを含む)を付与するBizsparkを含みます。そして、学生に無料で提供するDream spark。

そうは言っても、新しい言語とプラットフォームを探索して学習したい場合は、Ubuntuを使い始めるためのより良いツールが見つかります。Microsoftエコシステム以外の仕事を探しているなら、慣れる必要があります。 Ubuntuで。


7
はい、同意します。Linux環境でしばらくの間低レベルのC / Unixコードを書いた後、休憩してC#グラフィックスの開発を行い、新しいVSを起動し、控えめに言っても解放されました。それほど柔軟ではありませんが、Micrに魂を売ってもかまわないなら、物事が簡単になることは確かです。
トーマス

3
半情報に基づいたアンチMS狙撃に対する歓迎される解毒剤である+1。
アランB

15

私はツール、IDEやテキストエディタの両方を使用してC ommand- Lの INE 私は nterface(怒鳴ると呼ばれるCLIプログラムを書くために、)。

Linuxが提供するものは、デフォルトのインストールから始まる便利な CLIです。あなたがそれを必要とせず、とにかくIDEを使用しているだけであれば、もはや違いはあまりありません(IMHO)。

IDE

  • IDEは、多くの機能を統合してグラフィカルなGUIで表示する場合に非常に優れています。
  • 欠点は、これが初めての人を圧倒する可能性があることです。これで、学ぶべきことが2つあります。IDEとプログラミング言語です。

テキストエディターとCLIツール

  • テキストエディタとCLIツールを習得するのに時間がかかりません。
  • 何かが機能しない場合、どのツールが期待どおりに機能しないかを簡単に確認できます。
  • すべてがテキストベースであるため、Googleの問題も簡単に調べられます。
  • テキストエディターとCLIツールを使用したプログラミングは、特に古いハードウェアで比較する場合、より高速で応答性が向上します。
  • 低解像度の画面でも作業できます。
  • これにより、リモートサーバー上の最小限のリソースでプログラムとデバッグを行うことができます。

私はしばしばテキストベースのツールを使ってプロトタイピングを行います。後で、管理するファイルが増えると、IDEが提供するリファクタリングツールを高く評価します。


8
将来の参照のために、CLIはコマンドラインインターフェイスの略語です。CLIは通常、GUIに似ていますが、テキストのaptitudeのようなインターフェイスを指します。VimはCLIエディターにgrepなりますが、CLIにはなりません。インターフェイスはありません(コマンドラインツールになります)
kiri

曖昧性解消は良いことです。Windowsプログラミングのバックグラウンドから来たCLIは、Common Language Infrastructureの略です。
jltrem

GUIを使用してGUIを開発し、テキストエディターを使用してCLIまたはテキストベースのプログラム/コンテンツを開発します。VimでGUIを多用するビジネスアプリケーションを作成することは決してありません。VisualC#を使用すると、こうしたものを簡単にプロトタイピングできます。同様に、Windows上のIDEでWeb開発(PHP / HTML / CSS / JSなど)を行うことはありません。これは、Webサーバー上のVimで行う方がはるかに効率的で便利だからです。
ダン

@ minerz029 CLIはgrepスタイルのプログラムです(一度に1つのコマンド[行])。aptitude / vimスタイルの「コンソールアプリケーション」を考えています。
イズカタ

4
@ minerz029のインターフェイスgrepは、引数、stdin、およびstdoutです。この言葉は、グラフィカルまたは擬似グラフィカルを意味するものではありません。他のタイプのインターフェイスには、Web API、シリアルプロトコルなどが含まれます。
イズカタ

12

私は答えをリングに投げます(これらはすべて良いものでもあると思いますが)。

あなたが得ることができる最も基本的な答えは、それすべて哲学に関するものということです。


マイクロソフトの世界では、それは少し宗教的です-あなたは山に神を持っています。あなたが何かを実装したい場合は請願しなければならないレドモンド。時々彼らは耳を傾け、他の時にはあなたの犠牲と嘆願は耳が聞こえなくなるでしょう。おそらく彼らは狩りに出ていたのでしょう。マイクロソフトは、エコシステム全体を制御します。OSを所有し、IDEを所有し、SEネットワークで話すにはおそらく不適切な方法でそれらを結合します。IDEの各部分は密結合されています- 統合と呼ばれることもありますしかし、カップリングの方がより正確だと思います。少し変更したい場合、Gatesは、WindowsまたはVisual Studioのデザイナーが明示的に許可していない方法で何かを変更することを禁止しています。そして、IE、IIS、Microsoftサーバー、MS SQL Server、Officeなどのテクノロジーを投入します。すべてが素晴らしい幸せな家族です。しかし、あなたが家族の一部を置き去りにしたいのであれば?震え


一方、あなたはLinuxを持っています。Linuxは、各ピースがそれ自体の小さな責任範囲に責任を持つべきであるというUnixの哲学を継承しています。それは一つのことをすべきであり、うまくやるべきです。そして、できれば、テキスト文字列を介して通信を行う必要があります。他の人が指摘したように、sedawkgrep、など本の完璧な例です。彼らは、彼らがするように設計されている一つのことを行い、彼らはそれを非常にうまくやっています。2つのことを行う必要がある場合は、2つのツールを組み合わせます。これは非常に簡単です。

sed入力されるテキスト以外は何も期待しないため、テキストを生成できるものはすべてホイールを再発明する必要はありません。彼らは単に使用することができますsed。また、sedテキストを生成するため、テキストを読み取ることができるものはすべて、からの出力を使用できますsed。テキストは非常に普遍的であり(これにはいくつかの例外があります)、これらのタイプのものを組み合わせるのは非常に簡単です。

それらを組み合わせるのは簡単であるだけでなく、それらを分割することも非常に簡単です-ストリームを編集する必要がなくなったと判断した場合、テキストをsedに渡すのではなく、結果をフィルタリングしたい場合、それへのgrep代わり。

現在、これはLinux環境での開発の背後にある基本的な哲学です。したがって、そこから進んでも、多くのツールが同様の種類のインターフェースを提供します。これらを使用すると、それらを部分に分解したり、コマンドライン、ポート、またはHTTPを介してインターフェイスしたりできます。

そして、そうでなかったとしても、あなたはオープンソースソフトウェアも持っています。Linuxプラットフォーム上のほとんどの(すべてではないにしても)ソフトウェアはオープンソースです。したがって、その記述方法が気に入らない場合は、完全に、完全に、絶対にソフトウェアを自分で変更できます。これは非常に強力です。そのIDEを思い通りに分解することはできませんか?変更を行ってアップストリームに送信するか、プロジェクトを分岐します。何かがそのように振る舞う理由がわかりませんか?ソース、ルークを使用してください!コマンドラインから何かを自動化できるようにする必要がありますか?プロジェクトをハックして、変更を反映します。バグやセキュリティの問題に遭遇しましたか?推測できます-自分で修正できます。SP3.432vb89234.startdate1eQがリリースされるのを待つ必要はありません。

必要なツールを組み合わせることができます。そして、あなたの邪魔をしているものがあれば、それを100%変えることができます。あなたが能力を持っていなくても、その変化を開発するために誰かにお金を払うことができます-あるいは、ノウハウを持っている他の誰かにそれを提案することさえできます。

これがプログラミングに適している理由は、摩擦に出くわすと、ワークフローからそれを排除できるからです。開発は難しいので、成功したプログラマーになるために考えなければならないことがたくさんあります。そして、他のことを考えるのが難しくなるほど考える必要があります。

摩擦をなくすことが重要です。

したがって、Microsoft ecostystemの宗教が自宅にいるような場所であり、ツールを非常に楽しんでいるので、あまり/何の摩擦も与えない場合は...まあ、それはおそらく大丈夫です。

しかし、特許申請中のMicrosoft Mold(tm)に適合しない場合は、摩擦が発生します。開発は苦痛になります。希望するたびに、何かできることはできますが、できないことは、貴重な認知リソースを浪費します。その場合は、おそらくLinux開発環境が最適です。


1
あなたがリンクしたエッセイを本当に楽しみました、ありがとう。
ガレスデビッドソン

3
バルマーを称賛し、彼のすべてのパリティビットが正しく設定されるように。ACK。ACK。ACK。
ウォーレンP

9

私は質問に対するより一般的な考えを提供したいと思います:

「なぜLinuxはプログラミングに適した環境なのですか?」

Linuxで開発する最も重要な理由は、ほとんどのソフトウェア内部を完全に把握しているからだと思います。興味があれば、物事が実際にどのように機能するかを学ぶことができます。これにより、実際の動作を確認することで、良いプラクティスまたは悪いプラクティスを学び、適応させることができます。これにより、アイデアの多様性が高まります。


2
いい視点ね。オープンソースは、あらゆる種類の好奇心を持つすべての開発者にとって自然な利点です。窓では、ずっと下がっているカメです!
ウォーレンP

それは良い点です。あなたがここにソフトウェアの内部への洞察を持っている
アンワル

多くのWindows開発者は、Windowsプラットフォームで作業中のすべての作業を行い、APIに対するプログラミングを行い、APIの反対側を見ることはありません。心の刑務所のようなものだと思いませんか?
ウォーレンP

@WarrenP APIが適切に文書化されている場合、ソースコードを見て、APIの詳細を学ぶことはありません。(私は多くのAPIが両方の世界で完全に文書化されていないことを認めていますが。)
svick

8

Linuxがプログラミングに優れている理由

IDE

ほかのVisual Studioの彼らの特定の目的を果たすとXcode、最も人気のIDEはマルチプラットフォームです。数十の言語用の膨大なIDEがあるように見えるかもしれませんが、最終的にそれらのほとんどはEclipseIntelliJ IDEAまたはNetBeansに基づいています。共通点は、すべてJavaベースであるということです。Javaは、同じハードウェア上の他のOSよりもLinuxでより効率的に動作します。実際、JavaのLinuxは、同じハードウェア上のOS Xよりも20%も高速です。これらのIDEの多くは、Ubuntu Software Centerでワンクリックでインストールできます。

コンパイラ

GCCは非常に業界標準になりました。疑いの余地なく、その主要なプラットフォームはLinuxであり、最もよくサポートされています。そして、無料でロイヤリティフリーです。

追加のツール

Linuxは、Valgrind(メモリデバッグ、メモリリーク検出、プロファイリング用のツール)など、他のプラットフォームでは利用できない独自のツールを提供します。Linuxには、straceltraceなどのデバッグツールも付属しています。これらのツールを使用して、本番コード(デバッグシンボルでコンパイルされていないコード)でさえデバッグできます。Windows用の同等のツールは、存在しないか非常に高価であり、同じ機能を提供しません。

OSSのインストールのしやすさ

Ubuntuには優れたパッケージマネージャーがあります。ほとんどの場合、ソフトウェアのインストールはただですapt-get install package-name(Ubuntu Software CenterまたはSynapticのGUIでも実行できます)。一度インストールすると、バグ修正リリースでシステムによって自動的に更新されます。また、パッケージシステムは自動的に依存関係を追跡するため、他のパッケージが必要かどうか心配する必要はありません。それらは自動的にインストールされます。

一方、Windowsでは、パッケージを手動でダウンロードしてインストールする必要があり、他のパッケージが必要な場合は、手動でパッケージをインストールする必要があります。システム全体の更新もありません。各ソフトウェアパッケージは、独自の迷惑なアップデータを実装するか、まったく更新しません。

実稼働マシンはLinuxである可能性が非常に高い

バックエンド、Web、クラウドなどのプログラミングを行う場合、ターゲットマシンがLinuxである可能性が非常に高くなります。ターゲットマシンと同じ種類のOSで開発している場合、意外な驚きはほとんどありません。

もちろん、Windows用のデスクトップアプリケーションを開発しているかもしれませんが、今日ではプログラマーにとってはニッチな仕事市場のようなものです。


Windows用デスクトップアプリはニッチ市場ですか?なに?
アランB

2
@AlanB:いいえ、デスクトップWindowsアプリのプログラマーはニッチです。推定90〜95%のプログラマが社内開発を行っており、これらはほとんどデスクトップアプリではありません。また、考えてみてください。最後にWindowsアプリケーションを(実際にお金を払って)購入したのは、ゲームではありません(アドビ製品でもありません)。
バルテック

クラウド中心の企業が絶えず主張しているにもかかわらず、ビジネス分野のほとんどすべてがデスクトップベースで断固として支払われています。
アランB

4
@AlanB:繰り返しますが、私はエンドユーザーの市場について話しているのではありません。私はプログラマの雇用市場についてしています。たとえば、あなたが話しているアプリケーションの1つはMS Officeです。しかし、MSのOfficeチーム全体は約2,500人のプログラマーであり、その多くはデスクトップバージョンの作業もしていません。
バルテック

7

WindowsでVisual StudioのようなIDEを使用するよりも、テキストファイルまたはターミナルを介してプログラムを作成する方が(読みながら)より良いオプションなのはなぜですか?

そうではありません、私はそれが全く反対だと主張することができます。しかし一般的に、人々は得意なツールを好む傾向があります。使用するツールの種類は、プログラムの作成が簡単になるという利点があります。したがって、たとえば、vimを使用してJavaプログラムをうまく作成できますが、EclipseやIntelliJのような本格的なIDEとは対照的に、実に非生産的です。Jon Skeetは、なぜIDEを使用するのかという質問に対して素晴らしい答えを与えました。

元の質問に戻りますが、Linuxの長所はCプログラミングだけです。LinuxでできることはすべてWindowsでもできますし、その逆も可能です(プログラミングが賢明です)。Cプログラミングは歴史的な理由でLinux上で優れており、優れたツールセットを提供します(Windows BTWで入手できますが、Linuxをセットアップする方がはるかに簡単です)。同様に、C#を作成していて.NETを好む場合は、明らかな理由からWindowsの方が適しています。他のすべては完全に主観的であり、両方の長所と短所を聞くことができます。


5
Windowsで<MS以外の別のプログラミング言語を使用する>環境をセットアップしてみてください。
ブライアム

1
@Braiam私がやった、Java:P
ダニエル

6
LinuxはUnixライクなものを実行するのに優れています。GCCツールチェーン(CおよびC ++コンパイラなどを含む)には、長いUnix / Posixの遺産があります。しかし、すべてのUnixライクなプログラミングがCプログラミングであると考えると、悲しいことに、Unix / Posix / Linuxの伝統とツールの豊富な多様性に十分にさらされていません。
ウォーレンP

2
深くネストされたフォルダーと多くのファイルをすばやく生成するため、Javaは少し特殊なケースです。また、クラスまたはパッケージの名前を変更したらすぐに、それぞれファイル名またはフォルダーを同期する必要があります。楽しい楽しい楽しい:)
MadMike

1
LinuxとCLIがC プログラミングにとって必ずしも優れているかどうかはわかりません(VSはC ++には優れていますが、C99のサポートが不足しているため、PosixはWin32よりも少しクリーンかもしれません)。しかしapt-get、C開発に関しては素晴らしいことです。あなたはすぐに例のためのツール、ライブラリおよびデバッグシンボルを取得することができsudo apt-get install libcurl4-openssl-devsudo apt-get install valgrindsudo apt-get install libz-dbg簡単に物事を試してみてください。
アレックスジャスミン

6

プログラミングに使用するツール(テキストエディターまたはIDE)は選択の問題です。一般的に言えば、初心者や非常に小さなプロジェクトでは、崇高なテキストやgeditの修正版など、より優れたテキストエディターを使用する傾向があります。プレーンテキストエディターを使用する場合にさらに多くを学ぶからです。IDEは、物事を自動化することで学習プロセスを台無しにすることができます(Visual Studioのように;)

多くのツールや言語をいじり回す専門家の場合、IDEを使用すると、より多くのことができるので便利です。プログラミングする言語に応じて、選択できるIDEが多数あります。より優れたIDEがありますが、利便性が低いものもあります。

私の個人的な経験では、Ubuntu OSはWindowsよりもはるかに速く、開発用のセットアップが簡単です。これは、使用しているツールとプログラムのほとんどがLinux上でビルドされているため、インターネットでお気に入りのプログラムへのダウンロードリンクを検索する必要がないためだと思われます。「apt-get install program1 program2 program3」だけです。それに比べて、プログラミングに必要なものすべてを含む新しいWindowsインストールをインストールして構成するには3営業日必要です(プライベートではなく、会社の方が高速です)が、Ubuntuでの同じタスクの場合は1日です。

私の経験では、プログラミングのためにLinuxに切り替えたプログラマーは、(ほとんどの場合)技術的なコンテキストと基本がどのように機能するかをより深く理解しています。MacとWindowsのユーザーは、何かがこのように機能する理由とそうでない理由を知らない傾向があります。Linuxを使って実際に何かを学ぶことができるのか、それとも単に学習意欲のある人がLinuxに切り替えるのかどうかはわかりません。

私の「blafasel」が少し役立つことを願っています...


1

Linuxディストリビューション IDE であると主張します。

最初に、Unixは開発環境として最初から設計されました。それはプログラマーのためにプログラマーによって書かれました。ほとんどのUnix、およびLinuxには、デフォルトの構成で開発ツールが同梱されています。また、不足している部品はわずかapt-get(または同等)離れています。一方、WindowsはIDEをインストールするまでひどい開発環境です。IDEは安価ではなく、簡単なプロセスです。

IDEは、GCC、Git、Viなどを使用するよりも密に結合されているという意味で、より統合されています。密結合により、「インテリセンス」などの機能が向上します。しかし一方で、疎結合には多くの利点があります(柔軟性、互換性、ロックインの欠如など)。

また、コンパイラー設計(LLVMなどの簡単に分離可能なフロントエンドを備えたコンパイラー)の進歩により、ゆるやかに結合した環境でも構文エラーの強調表示などの機能のサポートが改善される可能性があります。


それで、基本的に、Linuxは実際にはあまり統合されていない統合開発環境だと言っているのですか?:-)
svick

1

哲学の問題:Ubuntu / Linuxでは、コンピュータープログラマーが内部およびハードウェアに直接アクセスできますが、Windowsは一種のゲートキーパーです。これは、プログラミングに関しては重要な哲学的問題です。したがって、哲学的に言えば、この機能が利点であるかどうかは、ユーザーがその重要性を十分に知っているか技術的に認識しているかに依存します。

プログラミングの問題について:Ubuntu / Linuxのシステムアーキテクチャ全体は、1つのことを実行してから、より複雑なことを行うためにそれらをパイプで接続するというUnixの伝統に基づいています。 プログラマーにとって、このアーキテクチャは非常に強力であり、私の考えでは、Unixがすべてのプラットフォーム上の他のすべてのソフトウェアアーキテクチャに対して長期的に勝つ理由です。Unixが現在支配的でない数少ない場所の1つはデスクトップですが、それは時間とともに変化します。Ubuntuのようなディストリビューションは、この進化を見るのに役立ちます。

ただし、Windowsには非常に優れたプログラミング環境があることについては異議を唱えません。企業環境内でのプログラミングでは、これらが支配的です。


0

速度がソートの答えです。

Visual StudioやQtCreatorのようなグラフィカルIDEでは、ショートカットを使用する必要があるときにマウスを使いすぎていることがわかりました。コンテキストを切り替えるたびに、脳を一時停止し、ターゲットに集中し、アクションを待つ必要があります。F5を押すと、無限に速くなります。

今、vim、Emacs、または見栄えの良いボタンを持たない他の何かを使用している場合、キーを押すことに集中するでしょう。

エラーはコマンドラインインターフェイスでより詳細に表示されますが、これは私が好むものであり、コンパイル中にフィードバックを提供します。Visual Studioで私が嫌いなことの1つは、デフォルトではコンパイルを実行していることを示す小さなアイコンで、エラーリストが表示されることです。

狭いビューでは、読みやすくするために80列幅を維持しますが、200列幅に及ぶコードを見てきました。80列に適合するコードを使用すると、一度に4/5のウィンドウを開くことができます。

CLIエディターを使用すると、Visual Studioへの遅い(テキストと比較して)RDPセッションを必要とせずに、リモートでコーディングできます。GSMリンクを介してコーディングできます。

視覚的なフォーム開発の一種の悪口。GUI IDEを使用する利点の1つは、画面をより速く描画できることです。ただし、私の経験ではプロトタイプとしては問題ありませんが、多くの場合、コードで手動で行うとより良い結果が得られます。VS2012コードアナライザーは、今朝、Visual Studioによって自動生成されたコードに関する200以上の問題について警告しましたか?!?!?


0

あなたの本当の質問は、「Ubuntuで実行されるVisual Studioの代替品はありますか?

MonoDevelop。

それは実行可能ですが、VSとすべての機能に慣れているなら、あなたはそれを嫌います。

テキストエディタを使用する利点はありません。インテリセンスと呼ばれる素晴らしいものを覚えていますか?発生していません(ただし、MonoDevelopにはそのようなものがあります)。お役に立てれば。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.