ウィンドウズ マック リナックス それぞれのOSでプログラミングをするメリットはなにかありますか?
特にLinuxについて詳しく聞きたいです
ざっくりした質問ですみませんが教えていただきたいです
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答7件
0
メリットデメリットについては、二つの視点が考えられます。
※ 下記文章でUNIXと書いた場合、UNIXにはMacも含まれると考えてください。UNIX/Linuxと書いてある場合は、Macの他、UbuntuやCentOS等の各Linuxディストリビューション、FreeBSDやSolarisと言った伝統的なUNIXを含みます。
###本番環境(実行環境)と開発環境が同じOSの場合の有利性
Linux上で動作させる予定で、Linux上でしか動作しないプログラムのコーディング自体をWindows上で行うこと自体は可能です。逆もまたその然りです。ですが、プログラミングとは、コーディングとテストの繰り返しです。テストを実施するには、実際に動作させなければなりません。Linux上でしか動作しないプログラムをWindows上で直接動作させるわけには行きませんので、毎回毎回、Linux上に持ってきて、テストする必要があります。これは非常に面倒です。
本番環境と開発環境が同じOSであれば、開発環境ですぐにテストや動作確認が実施できるようになるため、大きなアドバンテージになります。完全に一致までとは行かなくても、WindowsはWindowsで、UNIX/LinuxはUNIX/Linuxで行った方が開発が容易になることでしょう。ただ、これは別に必須ではありません。最近はVagrant等を用いて、Windows上でも簡単にLinuxのテスト環境が構築できるようになりました。他にも継続的インテグレーションなどのツールが揃ってきており、別のテスト用環境などを用いたテストの自動化ができていれば、開発環境で必ずしもテストをする必要性は無くなってきています。これらのツール類のセットアップなどに手間はかかりますが、昔ほど同じOSにしたほうが有利という訳ではなくなったと思います。
もう一つ、マルチプロットフォーム向けの場合はどうするかという問題があります。こちらは、始めにどの環境をメインターゲットにするかで決めると良いのではないかと思います。
なお、iOSやAndroid等については、そのOS上で開発するわけには行きません。この場合は、テストを行うためのエミュレーターが用意されているか、エミュレーターが安定して動くかどうかが重要になってきます。
###開発ツールからの選択
プログラミング向けテキストエディタについては、Visual Studio CodeやAtomなどのマルチプラットフォームなエディタが出てきたため、どのOSを使おうがあまり問題ではありません。vimやEmacsは元々UNIX/Linux用に開発されていましたが、Windows上でも(やや不安定感はありますが)動作します。IDE(統合開発環境)についてもEclipseやNetBeans等のマルチプラットフォーム対応のものであれば特に問題ありません。その他、周りのツール、git等のバージョン管理システムや、Vagrant等の開発環境を補助するようなツールは、マルチプラットフォーム対応がほとんどですので、困ることは少ないでしょう。
問題は、次の二つのIDEがOS限定であると言うことです。
- Visual Studio 各エディション (IDEではなくテキストエディタであるVisual Studio Codeを除く)
Microsoft製の主にWindows向けアプリケーションを開発するためのIDEです(Windows向け以外も作成は可能です)。Windowsアプリ作成についてはデファクトスタンダードであり、C#やVB.NET等の.NET FrameworkからC++によるネイティブアプリ、JavaScript等を用いたWebアプリなどが作成できます。IDEとして多くの強力な機能が備わっているため、愛用者も多いです。しかし、Windows上でしか動作しません。
- Xcode
Apples製のMac及びiOS向けアプリケーションを開発するためのIDEです。Objective-CやSwiftで開発ができることはもちろんですが、iOSのエミュレーターなども備わっています。MacとiOSに関する開発者向けドキュメントも揃っているなど、MacやiOSのシステムを操作するようなアプリを開発する場合は、必要不可欠でしょう。しかし、Mac上でしか動作しません。
この二つをどうしても使わなければならないという事情が無ければ、どのOSであってもさほど違いは無いと思います。
投稿2016/09/24 10:36
総合スコア21735
0
どれも長所短所できることできないことがあります。
スマホアプリ開発について説明します。
Windows
iOSアプリの開発ができません
Androidアプリの開発ができます
自分で開発環境を整える必要があります
Mac
iOSアプリの開発ができます
Androidアプリの開発ができます
最初からある程度の開発環境が整っているのも特徴です。
Linux
iOSアプリ開発ができません。
Androidアプリの開発ができます。
自分で開発環境をセットアップする必要があります。その際にコマンドラインを駆使することが多いです。
投稿2016/09/24 04:16
総合スコア386
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
普通に考えると最終ターゲットをどうするかによるかと思います。
Unix(Mac)用のアプリならばUnix(Mac)の環境で
Windows用のアプリならばWindows環境で
Linux用のアプリならばLinux環境で
開発した方がデバック、テスト、本番テスト共に便利であるのは
明らかです。
但し、最近は各種エミュレーションツールも色々とあるのでやろう
と思えば開発OSの環境を別のOSで簡単に実行できてしまいます。
又、Javaの開発などであればどの環境で開発してもマルチプラット
フォームなのでランタイムを用意すればどの環境でも実行できます。
今回のご質問にはどの言語でどんなアプリケーション開発しどの環境
で動作させることが最終ターゲットなのかが書かれていないため
「それは条件によって回答が異なる」
としか申し上げられないと思います。
投稿2016/09/26 15:28
総合スコア1628
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
何をやりたいのかにもよりますが、(他の方もかいてらっしゃるように)
極端なことをいえば大差ないともいえますかねえ。
個人的には、プログラミング(コーディング)以外の
使い勝手がいいので unix系OSを使えるならそうします。
例えば環境の運用であったり、テストデータの作成であったり、
まあ、いろいろと、ね~
最終的には自分が使い慣れてるのが一番だとは思います。
投稿2016/09/24 14:00
総合スコア7458
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
最低限、プログラミングするだけならば別にOSは問わないはずです。その用途とか、別のところに違いがある思いますよ。
たとえば、「Windows用のアプリケーションを作りたいから開発もWindowsでする」。「自分はマカーだからMacが使いやすい」とかです。「リナックスのOSを弄るプログラムだからLinuxを使う」とかですね。
投稿2016/09/24 13:44
総合スコア4830
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
何を開発したいかによって、変わってくると思います
(目的が明確なら追記しますので、教えてください)
自分はWebサービスの開発をしており、サーバサイドがCentosだったので、
長年PC側もUbuntuのDesktop版でJavaとPHPのプログラミングをしていました。
※最近諸事情で、Macですが...
OSがLinuxのみなので、プログラムやコマンドも共通ですし、PC環境でもある程度テストができるなど、WindowsのPCに比べると、メリットしかなかったですね。
※あ、唯一のデメリットは、エクセルですかね...
投稿2016/09/24 06:49
編集2016/09/24 07:12総合スコア6586
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/09/24 12:29
2016/09/24 23:07 編集
2016/09/25 03:03
2016/09/25 07:17
2016/09/25 14:03
2016/09/25 20:47
2016/09/26 04:28
2016/09/26 04:33
2016/09/26 11:18
退会済みユーザー
2016/09/27 08:42
2016/09/27 08:50 編集
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。