- ベストアンサー
プログラミング言語とOSの関係を教えてください
プログラミング言語とOSの関係を教えてください 例えばphpはどのOSで使えるんでしょうか?win,mac,android,ios iphoneアプリはswift言語でしか作れないみたいに聞いたんですが、だとするとiphoneアプリのグーグルクロームはswiftで作られているんでしょうか?全てのアプリはswiftということになりますよね? C,Java、PHP,kotlin,swift等 どの言語はどのOSで使えて使えないのかが知りたいです。
- みんなの回答 (6)
- 専門家の回答
質問者が選んだベストアンサー
>>例えばphpはどのOSで使えるんでしょうか?win,mac,android,ios 一般的にはWebサーバー上で利用されていますから、OSというより「Apacheなどアプリケーションプラットフォームを用意してください」が回答になるようです。 >>iphoneアプリはswift言語でしか作れないみたいに聞いたんですが、だとするとiphoneアプリのグーグルクロームはswiftで作られているんでしょうか?全てのアプリはswiftということになりますよね? Chromeのソースコードは公開されていますので、そこから確認ができます。 https://chromium.googlesource.com/chromium/src/+/refs/heads/master/ios/chrome/ 見たところ拡張子がmmとなっていますので、Objective-Cで開発されていることで良いみたいです。 Objective-Cは、Swiftより古い開発言語です。macOSの開発言語でもあります。以前のアプリはObjective-Cの場合があったようですが、すでにObjective-CからSwiftに移り変わってきています。質問主さんは、Swiftで作り始めて良いと思います。 ※ あくまでも推測なので、間違いでしたらお詫びいたしますが、もしかしたら「iOSアプリの開発にはPHP環境のプログラミングも必要」みたいな文章に触れられたのではないでしょうか。これは、ほとんどのスマホアプリが端末上での実行では終わらず、サーバーとやり取りをするため、サーバーサイドの開発環境の知識を得ることが推奨されていたのだと思います。 もう少し噛み砕きますと、iOS端末向けの開発はSwiftかObjective-Cの環境を用意し、さらにApacheなどPHPが動作する環境も用意する、ということです。 ローカル環境で構築することは可能ではありますが、実際のiOSアプリはインターネット上のいずれかのサーバーにアクセスしますので、レンタルサーバーを借りて環境を用意したほうが合理的かもしれません。なぜかと言うと、iOSアプリにローカルサーバーかWeb上のサーバーかを切り替えが必要になるわけです。問題が起きたとき、iOSアプリなのかサーバー側なのか、特定が難しくなる可能性があります。 以上、参考にならなかったらごめんなさい。
その他の回答 (5)
- wormhole
- ベストアンサー率28% (1626/5665)
>iphoneアプリはswift言語でしか作れないみたいに聞いたんですが、 聞き間違い、もしくは勘違いですね。 swiftという言語が作られ出したのは2010年から、 iPhoneは2007年6月末から販売開始されていますし。 >C,Java、PHP,kotlin,swift等 どの言語はどのOSで使えて使えないのかが知りたいです。 あなたがいう「使える」というのは、 OS上で、そのプログラミング言語が動く事をいわれていますか? それとも OS上で、そのプログラミング言語を使って作られたバイナリが動く事をいわれていますか? インタプリタ型なのかコンパイル型なのかによって答えは変わってくるのでしょうけど。 どちらにしろ各々の言語について、その言語の公式webサイやwikipediaなり調べれば、どのプラットホームをサポートしてるのか書かれてたりしますので、がんばって調べてください。
お礼
ありがとうございます
- Ultra-Hetare
- ベストアンサー率38% (204/526)
OSはアプリケーションが動作するために APIやシステムコール(広く言えばAPIに含まれます)と言う機能を提供しています。 アプリケーションはこれらの機能を利用してOSに命令を代行してもらいますが、 OSの特性を勘案して、ABIと言う機能を介してOSというかカーネルにアクセスが 必要な場合が有ります。 そしてOSによってアプリから受け取った変数を レジスタに配置したりスタックに積んだりして、 アプリの情報をカーネルに伝えます。 プログラミング言語は、そのOSのAPIやABI機能を 利用して、ハードウェアにアクセスするなどの命令を 記述し、機械語に翻訳するのですが、 そのOSのAPI,ABIに準拠しないと動くものを作れません。 あるOSで実行できるファイルを作るプログラム言語が、 これらの条件をクリアするための作業を「移植」と呼びます。 言い換えれば「移植」が可能で、かつ誰かによって実装されていれば、 そのプログラミング言語は、対象OSでの実行ファイルを作成可能です。 そうでない場合は、貴殿が「移植」しましょう(笑)
お礼
ありがとうございます
- AsarKingChang
- ベストアンサー率46% (3467/7474)
>>JavaScriptみたいな、インタープリタ言語ですら、 アプリを作るのに使えるって事になりますよ。 >javascriptでアプリを作れるとか聞いたことがあるんですが? はい。作れます! WebViewというインターフェースがあるので、それでアプリ化できます。 >私はiphoneアプリを作りたいんですが、それを調べたらmacを買わないおWindowsでは作れないというのw見たり聞いたりしたんですがどうなんですかね? 先ほど言った通り、Windowsのみでも作れます。Windows上にMACを インストールすれば、できます。ただし、それは、やっちゃいけない手法になるので、 MACが必要という事になります。できるか?とやっていいかは別なので。 >>結局PHPを実行できるようにコンパイルしてOSにいれれば、 >phpはインタープリター言語だからコンパイルは必要ないと聞いたことがあるんですが? あってますよ。 phpは、ソースをコンパイルしてできたインタプリタ言語です。 今言ってるコンパイルは「PHP」そのものを作り出すときの話です。 PHP言語で書かれたプログラムを実行するのはインタープリタです。 それと、MACにもPHPはあります。 https://www.php.net/manual/ja/install.php 公式サイトですでに紹介済みですが、 面倒なら、MAMPやXAMPPなどのPHPとApacheやデータベースソフトなどが 一体化してるやつを入れるだけで、Win/Macは簡単に動かせますね。 こちらでも、仕事でXAMPPは使うので、これ便利ですよ!。 おまけZend入りなので、対応したPHPデバッガーで デバッグもできるので、お勧めだったりします。 などで、回答になりますか?
お礼
ありがとうございます
- FattyBear
- ベストアンサー率33% (1530/4610)
それぞれの言語ソフトに対応OSが明記されていると思います。 対応OSのバージョンにも関係すると思います。 場合によりwin用のものmac用のものもあっても不思議はないと思います。 その言語ソフトの仕様をみればその動作環境を知ることができます。 PHPは Unix系、Microsoft Windows 上で動作するようです。 下記参照 https://ja.wikipedia.org/wiki/PHP_(%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0%E8%A8%80%E8%AA%9E)
お礼
>PHPは Unix系、Microsoft Windows 上で動作するようです。 だとするとMacでは使えないんですかね?
- AsarKingChang
- ベストアンサー率46% (3467/7474)
例えばですが。 https://docs.microsoft.com/ja-jp/xamarin/get-started/what-is-xamarin こんなのがあったとします(というかあります) プログラム言語→それを理解するための何らかのランタイム/フレームワーク→実際のハードウエア で動くとしたら、例えば、JavaScriptみたいな、インタープリタ言語ですら、 アプリを作るのに使えるって事になりますよ。 実際、WebViewベースのアプリがあり、アプリがHTMLなどで作られてる事すらある! こうなると、OSが何言語?何のプログラム言語?って、だんだんどうでもよくなりませんか? 結局それを実行/理解するランタイム/フレームワークがあれば、何でもいいって事になります。 別の観点で見てみるとします! Windowsにエミュレーターを入れてAndroidアプリが動いたとします(実際動きます) んじゃ、その中のアンドロイドアプリは「Windowsアプリなのか?」 ちがいます!。 当然それは、Androidアプリで間違いはない!しかし最終的に実行してるのはWindowsである。 =つまりアプリと実行するOSには、それほど関係はなく「間に何がいるか?」 の方が重要ってのが、わかると思います。 この関係を小さな単位にしていくと、PHPのような存在が発生します。 結局PHPを実行できるようにコンパイルしてOSにいれれば、 ソースに機種互換性がなくても、 そのOSに対して、命令が発行できる(用に見せれる) 先ほどのXamarin(ザマリン)の場合は、C#で開発をしますが、 その命令をIOSで実行できるもの、Androidで実行できるものと ついでに、Windowsで実行できるものも用意されており、 同一のソースで3機種同時開発ができるようになってます。 (同じようなものでUnityってのもあります。結局C#が主ですが) なので、PHPのソースを、Android上でコンパイルしてしまえば、 Android用のPHPという感じ。 (ただ、入出力関係はAndroidに最適化が必要だが、 命令の処理関連は、そのままでコンパイル通ると思います) ただ、IOS系のコンパイル言語に限り、 >どのOSで使えて使えないのかが知りたいです。 使えるのに使ってはいけないという制約がある事があります。 先ほどのC#は、IOS用を吐き出すとき、内部的にはWindowsでもやれるのに、 MACを使わないといけない!というルールがあり、 このために、コンパイルの為だけにMACを用意しないと行けなかったりします。 ややこしいですが、できるか?とやっていいか?が同じじゃない事が ライセンス上ありまして。 同じように、Windowsの上にMACをインストール(これはライセンス上はやってはいけない) しかし、やれるかやれないか?だけでいえば、「やれます」 となれば、結果的にMACでしかできない?ことはWindowでやれてるとも 言えるので、そうなると、OSの壁って何?って事にぶつかるかと。 ここまででも長い文章なので、これでやめますが。 以外に、できるかより、やっていいか?の壁って大きいんですよね。 この世界。。
お礼
>JavaScriptみたいな、インタープリタ言語ですら、 アプリを作るのに使えるって事になりますよ。 javascriptでアプリを作れるとか聞いたことがあるんですが? >Windowsにエミュレーターを入れてAndroidアプリが動いたとします(実際動きます) んじゃ、その中のアンドロイドアプリは「Windowsアプリなのか?」 私はiphoneアプリを作りたいんですが、それを調べたらmacを買わないおWindowsでは作れないというのw見たり聞いたりしたんですがどうなんですかね? >結局PHPを実行できるようにコンパイルしてOSにいれれば、 phpはインタープリター言語だからコンパイルは必要ないと聞いたことがあるんですが?
お礼
ありがとうございます