• ベストアンサー

プログラミング言語とOSの関係を教えてください

プログラミング言語とOSの関係を教えてください 例えばphpはどのOSで使えるんでしょうか?win,mac,android,ios iphoneアプリはswift言語でしか作れないみたいに聞いたんですが、だとするとiphoneアプリのグーグルクロームはswiftで作られているんでしょうか?全てのアプリはswiftということになりますよね? C,Java、PHP,kotlin,swift等 どの言語はどのOSで使えて使えないのかが知りたいです。

質問者が選んだベストアンサー

  • ベストアンサー
  • kzr260v2
  • ベストアンサー率48% (790/1623)
回答No.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アプリなのかサーバー側なのか、特定が難しくなる可能性があります。 以上、参考にならなかったらごめんなさい。

okwaveokw
質問者

お礼

ありがとうございます

その他の回答 (5)

  • wormhole
  • ベストアンサー率28% (1621/5657)
回答No.5

>iphoneアプリはswift言語でしか作れないみたいに聞いたんですが、 聞き間違い、もしくは勘違いですね。 swiftという言語が作られ出したのは2010年から、 iPhoneは2007年6月末から販売開始されていますし。 >C,Java、PHP,kotlin,swift等 どの言語はどのOSで使えて使えないのかが知りたいです。 あなたがいう「使える」というのは、 OS上で、そのプログラミング言語が動く事をいわれていますか? それとも OS上で、そのプログラミング言語を使って作られたバイナリが動く事をいわれていますか? インタプリタ型なのかコンパイル型なのかによって答えは変わってくるのでしょうけど。 どちらにしろ各々の言語について、その言語の公式webサイやwikipediaなり調べれば、どのプラットホームをサポートしてるのか書かれてたりしますので、がんばって調べてください。

okwaveokw
質問者

お礼

ありがとうございます

回答No.4

OSはアプリケーションが動作するために APIやシステムコール(広く言えばAPIに含まれます)と言う機能を提供しています。 アプリケーションはこれらの機能を利用してOSに命令を代行してもらいますが、 OSの特性を勘案して、ABIと言う機能を介してOSというかカーネルにアクセスが 必要な場合が有ります。 そしてOSによってアプリから受け取った変数を レジスタに配置したりスタックに積んだりして、 アプリの情報をカーネルに伝えます。 プログラミング言語は、そのOSのAPIやABI機能を 利用して、ハードウェアにアクセスするなどの命令を 記述し、機械語に翻訳するのですが、 そのOSのAPI,ABIに準拠しないと動くものを作れません。 あるOSで実行できるファイルを作るプログラム言語が、 これらの条件をクリアするための作業を「移植」と呼びます。 言い換えれば「移植」が可能で、かつ誰かによって実装されていれば、 そのプログラミング言語は、対象OSでの実行ファイルを作成可能です。 そうでない場合は、貴殿が「移植」しましょう(笑)

okwaveokw
質問者

お礼

ありがとうございます

回答No.3

>>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デバッガーで デバッグもできるので、お勧めだったりします。 などで、回答になりますか?

okwaveokw
質問者

お礼

ありがとうございます

  • FattyBear
  • ベストアンサー率32% (1219/3724)
回答No.2

それぞれの言語ソフトに対応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)

okwaveokw
質問者

お礼

>PHPは Unix系、Microsoft Windows 上で動作するようです。 だとするとMacでは使えないんですかね?

回答No.1

例えばですが。 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の壁って何?って事にぶつかるかと。 ここまででも長い文章なので、これでやめますが。 以外に、できるかより、やっていいか?の壁って大きいんですよね。 この世界。。

okwaveokw
質問者

お礼

>JavaScriptみたいな、インタープリタ言語ですら、 アプリを作るのに使えるって事になりますよ。 javascriptでアプリを作れるとか聞いたことがあるんですが? >Windowsにエミュレーターを入れてAndroidアプリが動いたとします(実際動きます) んじゃ、その中のアンドロイドアプリは「Windowsアプリなのか?」 私はiphoneアプリを作りたいんですが、それを調べたらmacを買わないおWindowsでは作れないというのw見たり聞いたりしたんですがどうなんですかね? >結局PHPを実行できるようにコンパイルしてOSにいれれば、 phpはインタープリター言語だからコンパイルは必要ないと聞いたことがあるんですが?

関連するQ&A

  • プログラミング言語

    現在文系私立大学の一年生です。 パソコンを扱うのが好きなので、在学中にプログラミング言語を覚えたいと考えています。 が、今はC、C+、C++、Javaなどの言語の名前だけを知っている状態です。 どのプログラミング言語を学ぶと役に立つのでしょうか? また、どのプログラミング言語が簡単でどのプログラミング言語が難しいなども教えていただけるとありがたいです。 また、私は数学がかなり苦手で文系に進んだのですが、プログラミングは数学が出来ない人間にも可能なのでしょうか? あとOSですが、プログラミングをするにはWindowsよりもLinuxの方が良いのですか? UbuntuとWin7のデュアルブートの経験はあります。今度はDebianというものでやってみようかなと思っています。

  • C言語より後に開発されたプログラミング言語は

    C言語を基にして開発されたのでしょうか? C++,C#はもちろんそうですが、Java、PHP、JavaScriptなどもそうなのでしょうか?と言うのも、C言語の関数とこれらのプログラミング言語の関数がかなり似ているところ(共通しているものも)があるからです。また、Excelの関数とも似ているのですが、これらのプログラミング言語と何か関係があるのでしょうか。

  • mac OSは、何のプログラミング言語で書かれているのですか?

    mac OSは、何のプログラミング言語で書かれているのですか?

  • 初級者のプログラミング用コンピューター

    初めまして、 プログラミングの仕事をしていまして、それに適する新しいコンピューターを買います。 プログラミングは、 Cや、 C++, Java言語を使います。 特に、Java言語ではJDK, サクラエディタと使っています。 C、C++言語はMicrosoft Visual C++ 2010 Expressを使っています。 将来的には、Androidアプリの開発をする環境をする予定です。 これらの条件で適したコンピューターを教えていただけますか? よろしく御願いします。

  • ブラウザが解読できる言語を教えて下さい html,

    ブラウザが解読できる言語を教えて下さい html,css,javascript他にはどんな言語を読めるんですか? php,ruby,python,perl? C,java? swift,kotlin?

  • プログラミング言語

    プログラミング言語のC言語とかJavaとかPerlとかの違いって使いやすさや慣れ以外に違いってあるんですか? 言葉足らずですいません…! 先程あげた三つのプログラミング言語が全く違うのは理解しているのですが、 それを使う、仕様した結果何か変わるのか疑問を抱いたので質問させていただきました。 初心者なので全く分からなくて… 教えてください><

  • 今からプログラミングを勉強するにはどの分野、言語が良いのでしょうか?

    今までプログラミングの経験はありません。 異業種からの転職を考え、これからプログラミングを勉強しようと考えていますが、どの分野(Web系、開発系、制御系など) どの言語(C言語、Java、PHPなど)がこれから先よいのでしょうか? 将来性や求人数も見据えて・・・プログラミングに詳しい方、教えてください。 宜しくお願いします。

  • オススメのプログラミング言語

    以下の中で将来性が高く、面白い言語はどれですか? 参考にさせていただきたいので簡単な理由もお願いします。 1.C言語 2.PHP 3.Java 4.Java Script 5.Ruby 6.Swift 7.Python

  • アプリはなんというプログラミング言語で出来てるの

    Androidのアプリはなんというプログラミング言語で出来てるのですか?

  • プログラミングを一から始めようと考えている初心者です。

    プログラミングを一から始めようと考えている初心者です。 将来的にはiphoneのアプリやゲームなどのソフトウェアを作りたいと思うのですが、 まず手始めとしてHP作成から入っていきたいと思いました。 しかし、何の言語から手をつけるべきかわかりません。 まずはHTML、CSS、JavaScript、PHP、JAVA、C言語のうちから選ぼうと思っているのですが、 モチベーションを維持しやすくて、独学でも十分理解できそうなもので選びたいと思います。 情報技術者の資格も取りたいのでJAVA、C言語をやっておくと便利かなと思ったりもします。 ぜひ、みなさんの見解をお聞かせください。

専門家に質問してみよう