質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

Q&A

7回答

2044閲覧

Linux プログラミング

furuta

総合スコア20

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

0グッド

0クリップ

投稿2016/09/24 03:57

ウィンドウズ マック リナックス それぞれのOSでプログラミングをするメリットはなにかありますか?

特にLinuxについて詳しく聞きたいです

ざっくりした質問ですみませんが教えていただきたいです

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答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

raccy

総合スコア21735

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

どれも長所短所できることできないことがあります。

スマホアプリ開発について説明します。

Windows
iOSアプリの開発ができません
Androidアプリの開発ができます
自分で開発環境を整える必要があります

Mac
iOSアプリの開発ができます
Androidアプリの開発ができます
最初からある程度の開発環境が整っているのも特徴です。

Linux
iOSアプリ開発ができません。
Androidアプリの開発ができます。
自分で開発環境をセットアップする必要があります。その際にコマンドラインを駆使することが多いです。

投稿2016/09/24 04:16

shotakeu

総合スコア386

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

普通に考えると最終ターゲットをどうするかによるかと思います。
Unix(Mac)用のアプリならばUnix(Mac)の環境で
Windows用のアプリならばWindows環境で
Linux用のアプリならばLinux環境で
開発した方がデバック、テスト、本番テスト共に便利であるのは
明らかです。

但し、最近は各種エミュレーションツールも色々とあるのでやろう
と思えば開発OSの環境を別のOSで簡単に実行できてしまいます。

又、Javaの開発などであればどの環境で開発してもマルチプラット
フォームなのでランタイムを用意すればどの環境でも実行できます。

今回のご質問にはどの言語でどんなアプリケーション開発しどの環境
で動作させることが最終ターゲットなのかが書かれていないため
「それは条件によって回答が異なる」
としか申し上げられないと思います。

投稿2016/09/26 15:28

Yatsurugi

総合スコア1628

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

何をやりたいのかにもよりますが、(他の方もかいてらっしゃるように)
極端なことをいえば大差ないともいえますかねえ。

個人的には、プログラミング(コーディング)以外の
使い勝手がいいので unix系OSを使えるならそうします。
例えば環境の運用であったり、テストデータの作成であったり、
まあ、いろいろと、ね~

最終的には自分が使い慣れてるのが一番だとは思います。

投稿2016/09/24 14:00

takasima20

総合スコア7458

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

最低限、プログラミングするだけならば別にOSは問わないはずです。その用途とか、別のところに違いがある思いますよ。

たとえば、「Windows用のアプリケーションを作りたいから開発もWindowsでする」。「自分はマカーだからMacが使いやすい」とかです。「リナックスのOSを弄るプログラムだからLinuxを使う」とかですね。

投稿2016/09/24 13:44

HogeAnimalLover

総合スコア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
popobot

総合スコア6586

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

furuta

2016/09/24 11:53

話が変わるのですが、未経験でWEB開発のプログラマーとして働くには最低でもどれくらいの知識がないと雇ってもらえないでしょうか? バイトでもなんでもいいです
shotakeu

2016/09/24 12:29

横からすみません。 バイトでもなんでもいいので未経験でも雇ってくれるところに行けば勉強するかと思います。 ですが、Webサーバのバックエンドをやるのかクライアント側のフロントエンドをやるのかで必要となる知識が変わります。 たいていWeb業界に行けばフロントエンド・バックエンド両方経験することが多いです。
popobot

2016/09/24 23:07 編集

新卒ではなく、中途で未経験という意味ですか? 求人もピンキリだと思うので、未経験で知識あまりなくても入れる会社もあると思います。 shtr_tさんの意見に賛成です。どんなに知識を増やしても、業務経験は増えないので、とにかくプログラミングの仕事があるなら、仕事をしながら学ぶのが一番いいと思います。 話が変わったついでに、自分が好きなエッセイを載せておきます... http://www.aoky.net/articles/jason_zimdars/the_first_step_is_to_start.htm
furuta

2016/09/25 03:03

みなさんはどのようにして業界に入られたんですか? 最初はどのようにプログラミングの勉強をし始めたんですか?
popobot

2016/09/25 07:17

自分は新卒で弱小Sierに就職しました。プログラミングは大学時代に研究でCを独学で少しやった程度で、ほとんど仕事を始めてからです。ただし、最初は仕事も古いシステムの保守であまりコードを書く機会もなかったので、自宅でも暇さえあれば勉強していました。プログラミングに限らず、OS、DB、テストなどの開発手法などなど... そして、3年で自社開発の技術を売りにしているような会社に転職しました。 どんな会社でも学ぶこと多いし、そこで頑張ってステップアップしていけばいいと思います。 話戻しますが、とりあえずプログラミングの勉強がしたいのであれば、今使っているOSでいいので、今すぐコードを書き始めたらいいと思いますよ。その後、他のOSを触ってみたくなったら、乗り換えればいいだけですし
furuta

2016/09/25 14:03

自分はデスクトップしか持ってないんですが、会社に入れば貸してもらえるんですか? 使ってるOSが違うと困ることはないですか? あと、初心者にはWEB開発で働くのは難しいですか? よくSierで最初は働いている人が多いようなイメージですので
popobot

2016/09/25 20:47

別にデスクトップでもプログラミングはできますよ。サーバは常時稼働することを前提にしており、実際に作ったサイトを公開するなら必要ですが、単に勉強が目的であれば、デスクトップでも、別のOSでも問題ないですよ。 > あと、初心者にはWEB開発で働くのは難しいですか? > よくSierで最初は働いている人が多いようなイメージですので Web開発が何をイメージしているのかはわかりませんが、Sierでも開発するのはWebシステムの場合は多いと思いますよ。 一概には言えませんが、傾向としては... 請負(派遣)のSierは、人手を売りにするので、あまり経験なくても、現場に出して育てればいいので、未経験でも採用とか多いです。逆に自社開発は、自社システムを作る担い手なので、より採用は厳しくなりますね。
furuta

2016/09/26 04:28

初心者はどのような業務をするもんなのでしょうか?
popobot

2016/09/26 04:33

会社にもよりますが、未経験なら数ヶ月研修をする場合もあると思います。その後、配属されたらコードを書く場合もあれば、OSのインストールなどの環境作りをやったり、ひたらすテストをやる場合もあると思います。こればっかりはその時やるべき仕事によるのでわかりません。
furuta

2016/09/26 11:18

WEB開発の仕事をしているそうですが、なんの言語を使ってどんな業務をしているのですか? それと、WEB業界に入るのにどのように勉強をして入られたんですか?
退会済みユーザー

退会済みユーザー

2016/09/27 08:42

質問者へ 「石橋を叩いて渡らない」のでは何も成長できないよ。
popobot

2016/09/27 08:50 編集

今はPHPを使っていますが、今の会社に入るまではほぼ未経験でした、そのまえはJavaやCをやっていましたよ。特にSierからWebに変わるときに勉強したりはしていません。Sier時代の経験で十分だったので。 というかこの業界入ってから、仕事に関係なくても、自主的に日々いろんな本を読んだり、オープンソースのコードを読んだりしています。
guest

0

ふつーに考えて。

【客先都合】

なんじゃないの?(・ω・)

客先にプラットホームの提示をする立場になればわかるのかもしれんが。

自分で好きに作る(プライベートで)場合、なんでもいいさね。

逆に客先に提示する場合、セキュリティを優先するのかなぁ?

投稿2016/09/25 15:50

Huyuto

総合スコア67

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問