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

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

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

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

5回答

7240閲覧

サーバーサイドのプログラミングとは。

RyoTamura

総合スコア19

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2017/07/26 04:43

今年からプログラミングを学び始め、現在swift歴3ヶ月です。
テックアカデミーでswiftを学び、最近初めての仕事をもらえることになりました。

しかし仕事を探す中で疑問に思ったことがあります。
何回か仕事に応募した際、「サーバーサイドのプログラミングはできますか」と聞かれました。
自分で調べた限りではjavaやpythonがそれに当たると考えられるのですが、
iPhoneアプリ開発をする際はどの言語を使ってサーバーをいじれば良いのでしょうか。

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

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

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

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

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

guest

回答5

0

ベストアンサー

そうだねぇ、スマホを使った質問者さんにとって分かりやすそうな例を考えてみよう。

例えばSwiftを使ってパズルゲームを作るとするじゃん?
そのパズルゲームは早く正確に解けば高いスコアが出てスマホ内に保存される。

でも、折角ハイスコアが保存されるんだから皆で見せあって自慢したいじゃない?
だからプレイヤー達のスコアを集計、ランキングにして表示して、
上位入賞者には豪華景品…なんてサービスにしたら面白そうじゃない?


でも、各スマホの中にあるハイスコアのデータを何処に、どうやって集計するか。

各スマホはインターネットには接続出来るけど、他のスマホの情報を吸い上げる事は出来ない。
そんなこと出来たら、私はあなたのスマホを簡単に乗っ取れることになるからね。

そこで一般的にはこんな手段を使う。
インターネット上の特定のマシンを情報置き場として広く公開する。
そしてその特定マシンへのアクセス情報はパズルゲーム内に埋め込むから「ハイスコア送信」ボタンを押すとそのマシンに保存するという仕組みを作る。

これはクライアントサーバモデル(クラサバ)と呼ばれる手法。
より具体的に言えば、WebサーバーとかAPIサーバーと呼ばれる仕組み。


以上を踏まえて質問への回答。

サーバーサイドのプログラミングはできますか

他の質問者さんが見当をつけているように、サーバーサイドのプログラミングといえば……
クラサバの、特にWebサーバーを指す事が多い。
技術的にはHTTPという規格に準拠した通信を待ち受けるプログラムを動作させるマシンを構築する。

このHTTPはインターネットの仕様でがっちり規格化されている。
iPhoneでSafari等のブラウザを立ち上げて他のWebサイトを閲覧するような場合、裏では全てこのHTTP通信を利用して通信している。

他の手法や技術でやってやれない事はないけれど、
一般的にはスマホアプリのデータを共有するためにはWebサーバーを構築する技術が必要。
学生なら「出来ますか?」の問いにはNoと答えることになるかも知れないけど、親和性が高くて夢が広がるから積極的に勉強してみたうえで「興味がありますので是非作ってみたいです!」と答えられると良いかもしれないね。

どの言語を使ってサーバーをいじれば良いのでしょうか

確かにJavaやPythonってのはサーバーサイドプログラムでよく用いられるけど、
実はWebサーバーたる条件ってのは言語とは直接関係がない。
その条件は下記

  • マシンのバックグラウンドプロセスとして起動し続ける
  • HTTP通信を待ち受ける
  • HTTP通信に従って情報の受け渡しを行う

これが出来れば言語は問わない。
Webサーバーとしてよく見られるPHP、Ruby、Java、Node.js、Pythonは広く使われているけど。
その気になればC言語、C++、GO、LISP、Haskellといった意外な言語も全てHTTP通信のモジュールが存在するからWebサーバーを構築することが可能。
それくらいHTTP通信は出来て当然の世界になってるわけだ。

例えばニコニコ動画は多数のユーザーがアクセスしてくる為に、速度が必要だからC++で書かれてるんだったはず。
去年の勉強会だったかで見知ったけど、ドワンゴが別の言語(ScalaやElixir)での負荷を検証してたりしてたね。

とにかく、気になった言語を見つけてWebサーバーを作ってみる事をオススメするよ。
言語はマジで何でもいいから、有名どころの内から適当に選ぶ程度でいいと思う。
実際の業務は様々な要因で、サービスに適した言語を選択せざるを得ないから、○○以外触れませんってのと、
一つの言語がそれなりに触れれば、他の言語も簡単にそれなりのレベルまで上達するから。

投稿2017/07/26 23:54

編集2017/07/27 02:47
miyabi-sun

総合スコア21158

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

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

RyoTamura

2017/07/27 01:56

とてもわかりやすく教えていただきありがとうございます。 miyabi-sunさんがおっしゃるように、適当に言語を選んでとりあえずwebサーバーというものを作ってみることにします。
guest

0

何回か仕事に応募した際、「サーバーサイドのプログラミングはできますか」と聞かれました。

アプリ開発ではスマホアプリからサーバのAPIを叩いてサーバとの連携をするということがよくあります。

面接ではAPI等のサーバ側の開発もできますかと聞いていると思います。

iPhoneアプリ開発をする際はどの言語を使ってサーバーをいじれば良いのでしょうか。

これはプロジェクトによって異なります。JavaだったりPythonだったり他の言語もあります。
応募前にこの会社はサーバサイドは主にどの言語で開発してるか調べると良いかもしれません。

投稿2017/07/26 05:07

編集2017/07/26 05:10
balaenoptera

総合スコア222

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

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

0

ネットワークシステム(ネットワークで接続された複数の機器で構成されて機能するコンピュータシステム)は、利用者が利用する装置(クライアント:パソコンだったり、iPhoneのような携帯電話だったり、様々)と、クライアントからの要求に対して様々なサービスを提供するシステム群(サーバ:ネットの向こう側にある)から構成されます。クライアントもサーバもコンピュータであり、様々プログラムを実行します。

例えばWebサイトを見る場合、クライアントではWebブラウザ等のプログラムが実行され、サーバではWebサーバのプログラムや、データベースを検索するプログラム等が実行されます。
実行される場所はクライアントとサーバに分けられるので、クライアントで実行されるプログラムの事を「クライアントサイド」のプログラム、サーバで実行されるプログラムの事を「サーバサイド」のプログラムと呼び分けます。

「サーバーサイドのプログラミングはできますか」というのは、というのはwebサーバ、データベース、PHPなどの分散環境の知識を持っていて、要求に応じて適切なプログラミング環境・プログラミング言語を使い分けながらプログラム作成やシステム構築ができるのかという問いだと思います。

もちろん、サーバ側も標準的な構成(LAMP(Linux, Apache, MySQL, PHP)など)の場合が多いですし、様々なパッケージもありますので悲観することはありませんが、iPhoneアプリ開発よりも相当レベルが高いです。

サーバサイドのプログラム構築の仕事が来たら、その時にはすでにサーバの基本的なソフトウェア類はインストールされていて、その中でプログラム開発をするしかありません。 自分の好みでプログラム言語を選べると思わないほうが良いと思います。(技術レベルが上がって、サーバの設計を任される立場になれば、話は別ですけど)

投稿2017/07/26 06:06

coco_bauer

総合スコア6915

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

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

0

「iPhoneアプリ開発のサーバーサイド」
→様々な言語がつかわれるのでこれといった特定はできません。
この質問はたとえて言えばInternet ExplorerでWEB画面を表示するのにどんな言語を使ったらよいか、と聞いているようなもの。
WEBサイトでたとえるとブラウザがサーバーに問い合わせてHTMLを返せばWEBのサーバサイドプログラムといえます。実現手段(=言語)はなんだっていい。
teratailがどんな言語で書かれているかしらないが私のブラウザはこのページをちゃんと表示している。
iPhoneアプリはブラウザの位置にあたります(実際iOSのSafariもiPhoneアプリの1種だし)。
iPhoneアプリ(androidアプリも同じ)が通信して必要な情報をちゃんと返せればサーバはどんな言語をつかってもいい。
ちなみにブラウザ(クライアント)とWEBサーバの場合はhttp/httpsという決め事(プロトコル)に従って情報をやりとりするが、iPhoneアプリ(クライアント)とサーバともに自作する場合はこの決め事すらも自分できめちゃっていい。
ただ良く使われるプロトコルとか、サーバーサイドで比較的よく使われる言語というのは存在しますが。

投稿2017/07/26 05:18

kurokoba

総合スコア276

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

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

0

「サーバーをいじる」となるとかなり御幣がありますね・・。
サーバーサイドの言語とは一言で言うとサーバー上で動作するプログラミング言語のことですね。
html、javascriptなどは「クライアントサイドの言語」ですね。

学ばれているSwiftも「iOSおよびmacOS、Linuxで利用出来るプログラミング言語(Wikipediaより)」とのことで「サーバーサイドのプログラミング言語」と言えます(Linuxはサーバーなので)

iPhoneアプリ開発をしていく上でも様々な言語が利用できると思います。
「何を作りたいか」にもよるのではないでしょうか。
下記も参考にしてみてください。

投稿2017/07/26 04:59

編集2017/07/26 04:59
m.ts10806

総合スコア80850

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問