Linuxターゲットを開発するときはLinuxで開発します。 ただし、直接Linuxで開発せず、Windows上のIDEからつないだり、sshで入って開発したりすることもあります。
私のLinuxに対する開発では、WindowsマシンでRLoginを使ってLinux VPSを使って開発しています。
VPSを利用することで、インターネット環境さえあればどこでも開発できて、クライアントの入れ替えによる作業コストも非常に少なくなり、仮想ハードウェアとイメージバックアップで障害復旧も容易等多くの利点があります。 Linuxの利点ではなく、リモートに開発環境を置くことでの利点ですね。 しかし、この利点を低価格で享受するにはLinux VPSは良いものです。
Linuxで開発することの利点は、Linuxで動かすものはLinuxで開発したほうが差異を最低限に抑えることができます。
Windows上でPythonやPHPなどを使って開発したとしても、本番環境でうまく動かないということはあることで、ライブラリの非互換やパスルール違いの問題等によります。 元からターゲットで開発すると、開発作業と異なることが少なくなったり、あるいは別の環境に対する設定が必要な追加ライブラリ等は、開発時に行った設定作業を記録しておくことでスムーズに本番に展開することができます(yum install libxxxが必要とか、echo “extension=mcrypt.so”>>/etc/php.iniが必要とか、開発時のナレッジは本番で使える)
要は最終的な環境に対してクロスプラットフォーム開発を行うことは出来ても非効率だから、最初からターゲットに合わせて開発しています。 Windowsターゲットのアプリを開発するなら当然Windowsで行いますし、OSXやiPhoneターゲットならOSXで行います。
クライアントWindowsを経由することの利点は、優れたUIとツールが揃っていて、Linuxダイレクトで日本語入力を行う場合の面倒さよりも、ATOKが使えることの利点を感じていて、GUIベースの多くのユーザフレンドリーツールが利用でき、Webシステムではクライアントのブラウザを直接検証できるのでそれは大きな利点です。 Linuxでダイレクトに開発した場合、想定するクライアントUIと異なる結果を得ることで不都合を生じます(基本的にユーザ環境は、カスタマイズしていないEdgeやIE、ChromeのWindowsでの表示をベースにするため)
現在、Python, Java, PHP, Ruby, Node.js 等のよく使われているプログラミング言語は主に Linux 上で開発されています。Windows も努力しているようですが、やはりLinux(Mac)の方が開発環境をさらっとインストールして作成できるのに対して、Windows では調べながらソフトウェアをダウンロードして開発環境を作らないといけないケースがしばしば出てきます。
例えば Python を使う場合であれば、Linux (Mac)であれば殆どのライブラリーが pip で簡単にインストールできますが、Windows の場合は自分でソースコードからコンパイルがすることが難しいので、ライブラリーをコンパイル済みにしたAnaconda というディストビューションを使うのがお勧めになります。
OSの歴史からみても、Linuxは多くのハッカーによって育てられてきたのに対して、Windowsは商用のアプリケーションを動作させるためのものです。その違いが、プログラム(業務用は除く)をするのであれば Linux(Mac) がベターだというようになってきた原因だと思います。
Webの世界では、Macで開発する人が多いです。ちなみに自分のサイトの利用者のうちブラウザーで Internet Explorer を使っているのが23.7%、Edgeが3.0%で、最早Microsoftは少数派なのです。
開発をするための環境がそろっているからです。
Windowsでプログラミング開発をするには別途環境を整えないとできませんが、通常のLinuxディストリビューションであればインストールした時点でほぼC/C++,Python,Perlの開発、エディタなどが揃います。
またWindowsXP以前のWindows(NT以外)は開発するときにブルースクリーンになりがちだったりしていました。なのでその点でもあんていしているLinuxが使われたとおもいます。
また、Linuxや、その他言語環境がほぼがオープンソースなので中身を見て勉強するなどということもできます。
Linux使いはUNIXユーザーのあいだでは犬とか犬厨と呼ばれてましたね。Linuxをローマ字から日本語に表記すると、「ぃぬx」となるので犬と呼ばれてました、口の悪いUNIXユーザはFreeBSDとかを馬糞(バフンでなくバクソ)と言っていたようですが、それはBerkeley software designを略称でバクソという語源だったようです。
Windowsユーザは「パチョコンの人」くらいな感じに蔑称も無くドザとかですかね。
おそらく一般的に広く大きなコミュニティで呼ばれてたことはないと思いますがマカーとかドザとか犬厨とかはそこそこ通称として通っていたのかもしれませんね。
ちなみに厨とは厨房の略で中坊(中学生)のようにチョットあたまがアレな感じのハツラツと元気の良いユーザの蔑称であったようです。
今はLinuxしかありえんよ、フンフンフーと鼻息が爆音でメガネの真ん中を中指でいつも上げてるような攻撃的な子を犬厨とよんでたのかなぁと古い記憶を思い起こしています。
あくまで客観的に俯瞰で傍観していたことを書いてるだけで私の主義思想信条や言葉では無いです。
※記憶が蘇ったので追記します。
ぃぬx=は犬糞と呼ばれていた時期がありました、最後のリヌっ”クス”、リナッ”クス”の語尾を糞に言い換えられていぬ糞とか犬糞の時期もあったかと思います。
その流れが馬糞を造り出した起爆剤だったかもしれません。
怒らないで下さい、自己弁護しますが私はLinux寄りの人ですw
LinuxはWindowsがずっと前から持っている数多くの機能を持っていません。その一部についてはこちらで言及しています。
デビッド・カトラーがWindows NTを設計した時、反面教師にしたUnixの欠点はありましたか? - Quora
私が10年ほど前にマイクロソフトで働いていた時、機能的な面で、LinuxよりもSolarisのほうが印象深かった記憶があります。Linuxが機能的に後れを取っていた一方で、SolarisはWindowsと同様に数多くの先進的な機能を備えていました。例えばデバイスマネージャや、O(1)アルゴリズムの高速スケジューリング、ジャーナリングファイルシステム、サービスの依存関係管理、きめ細かいカーネルロック機構、軽量スレッド、カーネルのバージョンが異なっていてもデバイスドライバを動的にロードできる機能、その他諸々です。
一方Linuxは、アーキテクチャサポート、ボリューム管理、ネットワーク、POSIX互換性などでWindowsより進んでおり、他にももっとあるでしょう。エンドユーザーの利便性に関する機能もあれば、エンタープライズ構成で意味のある機能もあります。そのためカーネルの機能で両者を比較するのは不可能ですが、Windowsの開発チームにいたエンジニアとしては、これらの機能的な違いを間近にするのは嬉しいことです。私が知る限りLinuxは足りない機能で追いつきつつあり、それを聞いて私も嬉しく思います。
Linuxに対する当時の私の個人的な感想でした。アンチLinux的なカルチャーがあるとは聞いたことがありません。私は深く学ぶことができたので、Windowsのカーネルを正当に評価できただけに過ぎません。
Linuxが失敗しているのはデスクトップだけです。Linuxデスクトップユーザーとして言えることは、Linuxがデスクトップ環境で失敗している唯一の理由は過大(過剰)な利己主義にあります。
distrowatchを見てみると、100種類以上のLinuxディストリビューションがあります。なぜこれほど多くのLinuxディストリビューションがあるのか、そして何がそんなに特別なのでしょうか?簡略化して説明してみましょう。
最初は主に3つのバージョンがありました。Debian、Fedora、Slackwareです。ここでは、物事をできるだけシンプルにするために、Debian の系統を踏襲していきます。
Debian は良いものであり、Debian は安定しています。しかし、Debian は堅牢であるが故に新しいものやクールなものが不足しています。そこで、開発者の中には軽量なLinux Knoppixに取り組み始めた人もいれば、より最先端のバージョンであるUbuntuに取り組み始めた人もいました。
Ubuntu は注目を集めました。しかし、多くの人はUbuntuのインターフェースが好きではありませんでした。だから、しばらくして、Ubuntuのほかに、Kubuntu、Lubuntu、Xubuntuが産まれました。
それから、より良いソフトウェアサポートを望む人もいました。そこで、彼らはUbuntu Studioを作りました。他の人は、それでも別のインターフェイスを望んでいたので、mintを作りました。もう一つは、すべてが好きだった人の中には、インターフェイスにてより良い色を望んでいたためZorinOSを作ったのもいました。Googleはもっとシンプルなものを望んでいたためにChromeOSを作りました。またMacOSに似たものにしたいと思っていたので、Elementary OSを作った人もいました。さらに、よりセキュアなものを望んでいたので、ParrotOSを作っりました。何人かの人はそれを全部嫌ったがために、Solus、Arch、その他何百ものものを作ったわけです。
時代が進むにつれ、共通の目標に向かって一緒に働くのではなく、全員が同じ問題を何度も何度も修正しなければならないため、この労働力は水増しされていきました。よって、以下のような不条理な図にたどり着ついてしまいました。
もしこの人たちが同じLinuxのディストリビューションで働いていたらと想像してみてみましょう。
MacOSが独自カーネルからUNIXカーネルに切り替えたようなことがWindowsでも起こりうるか、ということですかね。
ありうるか、ありえないか、ということではありうるでしょう。
先日も、Microsoftは複雑になりすぎたブラウザエンジンの自社開発を諦めてChromiumに切り替えました。同じことがカーネルで起こる可能性はゼロではありません。
でも、可能性がゼロではないだけで、今のところ移行されることはないと思います。
MacOSがUNIXに切り替えたのは設計が古すぎてこれを改良していくより切り替えた方が良策だという判断だったからでしょう。かつてMicrosoftでも、行き詰まってきたパソコン向けの95のカーネルから、サーバー向けのNTカーネルに切り替えが行われています。この段階でスケーラビリティの問題は解決していますので、今のところ敢えて全然違うアーキテクチャーのカーネルに切り替える理由がありません。
数十年くらいに先に、システムの階層化や仮想化がさらに進んで「コアがWindowsアーキテクチャーであること」である利点が今よりさらに失われてきたら、場合によってはあるんじゃないかな、くらいかと思います。また、それがLinuxであるとも限らないとは思います。
0 コメント:
コメントを投稿