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

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

ただいまの
回答率

90.32%

  • PHP

    21359questions

    PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

  • JavaScript

    17548questions

    JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

  • Python

    9230questions

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

  • Ruby

    8212questions

    Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Webアプリ開発のためのプログラミング言語について

解決済

回答 7

投稿 編集

  • 評価
  • クリップ 3
  • VIEW 1,219

dad

score 30

Webアプリを開発するためのプログラミング言語について質問があります。

私は、Pythonによる機械学習をメインに開発してきた大学生です。

そこで、開発したプログラム(の出力)を利用したWebアプリを開発しようと考えています。画像を渡して、処理した画像を返すって感じです。

はじめは、Pythonで開発してきたため、WebアプリもDjangoやFlaskを使って開発しようかと考えました。

しかし、情報がほかの言語、フレームワークに比べて極端に少なくことや利用している(求人を出している)会社の少なさを感じ、別途、新しい言語を学ぼうかとも考えています。

このまま、Pythonに開発すべきでしょうか?それとも別の言語を学ぶべきでしょうか?学ぶとしたら、どの言語がいいでしょうか?また、おすすめのフレームワークははなんですか?

そこまで大規模なアプリではないです。シングルページでも収まるくらいです。

Python、Ruby、PHP、javascriptが今のところの候補です。

回答よろしくお願いします。

追記

たくさんの回答ありがとうございました。とりあえず、Pythonにて開発し、別途JavaScriptを勉強しようと思います。

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

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 7

+4

やりたいことから考えると、どんな言語を使うにせよ、Web アプリから Python のプログラムを呼び出して処理をさせて、その結果をもらって結果を返す、ということになりますよね。

それを考えると、Web アプリも Python で作るのがもっとも面倒が少なくなるかと思います。
これが例えば PHP だと、「PHP から Python のプログラムを呼び出して、結果が返ってくるのを待機する」とか面倒が増えるので。
※まあフロントエンド(UI担当)とバックエンド(コア処理担当)と考えればある意味よくある作りではあるのですが

むろん、懸念されているように Web アプリを作ると言うだけなら Python という選択肢は狭いので、PHP や Ruby をというのも正しい考え方です。ですが、まず Python で作ってから、フロントエンドだけ別言語に移植し直す、というのもありでしょう。
まだまだ勉強の段階ですから、いろいろ試してみるのもよいかと思いますよ。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/07/10 21:44

    なるべく、Python以外を使おうと考えているのですが、Pythonのプログラムを呼び出すことが難しい言語はありますか?

    キャンセル

  • 2018/07/11 08:44

    JavaScript だと難しいですね。というのも、JavaScript は node.js を使ってサーバーサイドで動かさない限りクライアント側で動いてしまうので、サーバー側のプログラムを呼び出す形にはならないからです。
    ※サーバー側で REST API を用意しておいてそれを叩く、なら簡単ですが

    PHP や Ruby ではそれほど面倒にはなりませんが、基本的な条件として、「Python で作られたプログラムは、コマンドラインから呼び出して動作させられるものである」必要が出てきます。

    キャンセル

checkベストアンサー

+3

今後、「登録してくれた特定の方」にしかデータを公開しないとか、ログインしないとデータを見せないとか、新しいデータ発表に合わせて登録者にメールを発信したいとか、新着情報を掲示したいとか、というような形に発展するようであれば、PHP(HTML・CSS・Javascript)+MySQLなどのDB操作・サーバサイド操作も必要になってくるかも、と思います。

こうしたサーバサイドをいじることになると、必然的にLinuxとか、Apacheとか、NodeJSとか、触れて行くことになるので、知っておいて損はないです。

ま、今の時代はこういう操作もボタンポチポチで何とか構築出来、CMS関連もいろいろ存在する状況ですが、まずはフレームワーク無しで挑戦してみるのも面白いかもしれません。

Macをお持ちなら、こうした環境は割と簡単に可能と思います。

あくまでも私の個人的な感想で、異論反論はあると思うのですが、難易度としては
Javascript > PHP > Ruby > Python
となるんじゃなかろうか、と思っています。^^;。もちろんPythonを学んだ経験があれば、構文的にも他の言語に応用は全然可能と思います。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/07/10 21:43

    Javascript の方が難しく、Pythonの方が簡単だということでしょうか?なぜ、そう思うのか教えてください。

    キャンセル

  • 2018/07/10 21:51

    個人的な感想なので。。

    難しい、簡単、ということではないです。
    Javascriptは、ブラウザによる差異があり(IEでヘコむが多い・・。)、またサーバ上でも動かせます。Javascriptは書き方が多岐に渡り、活動の場が広い、他人のコードを拝借してもそのままで動かない場合が多い、という意味で難易度が高い、という感想です。

    キャンセル

  • 2018/07/10 21:57

    ただ、Javascriptが他の言語と比べて優位だと思うのは、他の言語に比べて面倒な開発環境やフレームワークが要らない、つまりブラウザとメモ帳があればどこでも作れる、という点だと思っています。

    キャンセル

+3

フロントエンドでjavascriptは避けて通れないので、少しはできるようになっておくと幅が広がって良いと思います。私は最近HTML5/CSS/javascript(Bootstrap)を少しかじりました。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/07/10 21:51

    フレームワークはどう選んだら良いでしょうか?

    キャンセル

  • 2018/07/10 22:46

    流行りと使ってみた所感だと思います。まずはかじってみて良い感じだと感じたらそれで。そうじゃなければ乗り換えで、という感じです。

    キャンセル

+2

学ばれる目的によって回答が異なります。
将来、就職あるいは独立を考えての学習ということでしたら、その会社が求めている言語知識がある方が多少は有利かもしれません。
純粋にWebアプリが作りたいだけであれば、言語知識があるPythonを利用するほうが効率は良いと思います。
情報量は差があるかもしれませんが、機械学習以外にもGoogleを筆頭にPythonでWebサービスを行っている企業はたくさんあります。

シングルページで収まると言われている点を考えるとフレームワークなしあるいはシンプルなフレームワークでまずは作ってみてはいかがでしょうか。
小規模なプロジェクトにフレームワークを導入すると、逆にフレームワークの学習コストのほうが上回る可能性もあります。

参考になれば、幸いです。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/07/10 21:52

    学習コストの低いフレームワークには何がありますか?

    キャンセル

  • 2018/07/11 09:52

    まずはどれでも良いので使用してみてはいかがでしょうか。
    ご本人の基準がないと高いも低いもないと思うので。

    キャンセル

+2

情報がほかの言語、フレームワークに比べて極端に少なく

こっちは、英語圏ならいくらでも情報が転がっているので、とりあえずなんとかなると言えます(中学生程度には英語が読めて、google翻訳を使いこなせれば)

利用している(求人を出している)会社の少なさを感じ

こっちを重視するなら、確かにPHPとjavascriptでしょう(Rubyは正直微妙・・・というか最近は廃れ気味なのでは? それでも、Webではまだpythonより使われているようですが。googleトレンドで見ると、世界的にはそろそろ逆転する気がする)。


選択肢は、以下の3つから選びましょうか。

  • フレームワークなしで作る。言語はなんでもいい
    シングルページで高等な機能一切なし、なら十分いけると思います。それこそPHPベタ書きとかで良いと思うので。

  • pythonでflaskとかdjangoとか使って書く
    pythonの分の学習コストが差っ引けますが、フレームワークの方でそれなりに学習コストがかかるでしょう。

  • PHPとかNode.jsのフレームワークで行く
    新しい知識が得られるので楽しい、と思えるならありです。

アプリケーションの規模が小さいと、どれを選んだところで、得られるもの・コストともにそれほど変わらないような気がします。

好き嫌いとか気分で選んでも、そんなに後悔しないと思うので、正直どれでも良いのでは?

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

0

就職を考慮したいのか、単に学習コストで損をしたくないだけなのかが判然としませんが、どちらでしょうか。

母数だけで言えばPHPが一番多いのは間違いないかと思います。
https://trends.google.co.jp/trends/explore?cat=422&geo=JP&q=%2Fm%2F060kv,%2Fm%2F06ff5,%2Fm%2F05z1_,%2Fm%2F0bbxf89

PHPのフレームワークはLaravel,CakePHP,Symfonyなどがありますが、トレンドはLaravelになるかと思います。
https://trends.google.co.jp/trends/explore?geo=JP&q=%2Fm%2F0jwy148,%2Fm%2F09t3sp,%2Fm%2F09cjcl,%2Fm%2F0j3cj1y,%2Fm%2F02qgdkj

Ruby は Web 開発での採用数は増えてきた印象ですが、学習コストがやや高いような気がします。
また、日本以外の国ではやや知名度が落ちるかもしれません。
https://trends.google.co.jp/trends/explore?cat=422&q=%2Fm%2F060kv,%2Fm%2F06ff5,%2Fm%2F05z1_,%2Fm%2F0bbxf89

Python は例えばフランスではPHPと同じくらい知名度があるようですね。
https://trends.google.co.jp/trends/explore?cat=422&geo=FR&q=%2Fm%2F060kv,%2Fm%2F06ff5,%2Fm%2F05z1_,%2Fm%2F0bbxf89

ネイティブアプリもイメージしているなら Electron、React Native、Cordova なども考えてよいでしょう。

結局の所、何を作りたいのか、今後どうしたいのか、で大きく方向性が異なるので、質問文あるいは各回答欄でもう少し詳細に希望を表明してみてはどうでしょうか。

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

0

Pythonをやっていたのであれば、まずは、バックエンドにPythonを利用するのが良いのではないでしょうか?

ただ、djangoなどのフレームワークを利用するにしても、表示部分(フロントエンド)にHTMLやJavaScriptの知識は必要になります。

私自身は、しばらくdjangoを使っていますが、操作性などを重視するとフロントエンドに力をかける必要があり、djangoであるメリットはあまり感じません。テンプレートの中身をごにょごにょ書くことになりますので。

そんなこともあり、最近フロントエンド側として、Reactを始めました。
なかなか、面白いです。React。

結果を出すことを考えると、学習コストなどの効率も大事ですが、
ある程度余裕があるのならば、面白そうだと思うものに、まずは手を出してみてはいかがでしょうか?

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

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

  • ただいまの回答率 90.32%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

同じタグがついた質問を見る

  • PHP

    21359questions

    PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

  • JavaScript

    17548questions

    JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

  • Python

    9230questions

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

  • Ruby

    8212questions

    Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。