こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

WEB API/REST APIが流行る理由

最近システム連携の世界にまで異様にWEB API/REST APIが浸透していると
言われているのが納得いきません。

AWSなどは最たる例だと思います。
GUIをほとんど使わずCLIベースでコマンドばっか打ちまくる、
しかも歴史ある信頼性の高いC言語やJavaを使うわけでなく
ここ最近コンシューマ向けなどという信頼性などいい加減で許されるような
HTTPをベースにしているとか、そんなのを社内システムに持ち込むなど
正気の沙汰と思えません(金融機関や総合商社までAWSを使いだしたそうですが。。。)

「情シスやインフラSEをわざわざ通なくても、プログラミングに慣れている
 開発者(プログラマー)からしたらAPI叩いてシステム動かしてるほうがよっぽど楽だから」
と言いますが、ホントですか?

あんな長ったらしいURLが書かれたスクリプトをたらたら書くのが
効率いいとはとてもじゃないですが信じられません・・・・・・
システム管理でGUIにCLIが勝るなどありえない・・・・・

同じプログラマー寄りの技術使うならば、
せめて歴史があり、その分信頼性も高いC言語やJavaを使うべきだと思いますが、いかがでしょうか?

投稿日時 - 2016-09-05 01:35:55

QNo.9224627

困ってます

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

回答(1)

ANo.1

おそらくご自分でやられたことがないんでしょう。

C言語がいいとおっしゃっているレベルの話と、GUI/CUIの話は別の次元の話です。
Cシェルというものがありますが、これはスクリプト言語であり、Cで書きますがWindowsでいうとバッチのようなもんです。

言語の何がすぐれているかどうか、は違うレベルで話すことですが、とりあえず言いましょう。
JavaとCを並列してお考えのようですが、全く違うものです。
Cはプログラミングというものを習得するには非常に優れたものではありますが、実用の開発にはお勧めできません。
理由は、メモリ管理が非常に危険である、ポインタを中心にした記述になること、および、オブジェクト指向でないからです。
C++の話ではありません。C言語の話をしています。
ちょっとした開発で数万ステップになり、どこにバグがあるかの当たりを付けるのも大変という開発系ですから、私がプロマネなら採用はしません。

Javaに関しては、いいところはバーチャルマシンであるためハードウェア依存を考えないで開発できることです。
しかし、そのためにかぶっているフレームワークが重たく、特にWebにかかわると、圧縮ファイルを再び圧縮するWARファイルというものでデプロイなんていうとんでもないサイズになります。
そして、プログラマにたいした能力は要求しない代りにメンバーが多く必要になる。ポータルサイトを一つ作るのに億の費用が必要となります。

PHPは、そのような巨大化はなく、スーパークラスレベルから末端までひとりの人間が設計開発できます。そのため開発費用はJavaよりゼロがふたつ減ります。
そのかわり、開発者が少なすぎるので相互レビューとかチェックがいきわたらず、品質に問題が出る可能性が高い。
それはRubyでも同じです。
Pythonになってくると、もう超越的なコーディング、仙人のようなやりかたになりますから、ソリューションというよりは管理プログラムの域になります。
今言ったPHP以下はすべて、コンパイラではなくインタープリタです。

実際はJavaもそうです。コンパイラというものは提供されていますが、コンパイルして出てくるオブジェクトが、バーチャルマシンの機械語なので、それを実際のマシンの命令に翻訳するためにインタープリタが走るのです。

コンパイラは、コンパイルすることで全部のソースの関連や影響を調べますから、実行する前にかなりのバグが退治できます。
インタープリタは、記述されているその場所に行かない限り動作が変であることが分からない仕組みなので、品質操作はそこそこたいへんです。

これら開発言語は、それぞれ一長一短があります。それを語っても仕方がない。

で、GUIの話です。

UNIX系の人間は、まず間違いなくGUIでの操作を嫌います。すべてシェルでコマンドを叩いて設定したい。
LinuxでもGUIがあるのはご存じのとおりで、これをXといいますが、これを環境設定で殺すことをしてから開発を始めます。あるパラメータを5から3にするだけです。

なぜかというと、思ったことがすぐに実行できるからです。
通信で流れてくる電文の中に「WEB]と言う言葉があったら、逐次画面に表示し、それをカウントアップしていく、なんていうのをGUIですぐにできますか。
そういう風につくられたプログラムがあればできるでしょうね。
それは誰がつくるんですか。
それこそJavaなりでプログラムして、コンパイルして、複雑なコードで実現するしかないですね。
どのくらい時間かかりますかね。
まあ目から鼻に抜けるという人がやっても1時間はかかるんじゃないでしょうか。

それがCUIでやったら、1行タイプするだけですから、ゆっくりやっても1秒です。

スクリプト言語は、同じ行に組みあわせて連動で実行するのは簡単にできます。複数のプログラム開発かもしれないけどそんな意識はなくてできる。
awkで下処理をしてsedでフィルターをかけて翻訳し、PHPでデータベースに書き込むなんて簡単に1行でできます。

jsonファイルを数ステップ記述して保存し、composerというpharにかけてPHPを起動すると、異常に複雑な環境設定をすべてすらりとやってのけるなんていうのは、Windowsでinstallshieldなんかを設定することに比べたら、魔法の呪文一つと言うことになります。

思いついてすぐにできないなら、思考は飛んで行ってしまいます。
それがいやなんです。そもそもGUIでやると、そのGUIのルールを覚え、そのGUIに合わせたやりかたをしなければならない。
靴に足を合わせるなんていうことをしてまともな仕事ができますか。

頭の中に停滞を生まないというのは効率がいいということです。
そして比較にならないほど楽です。

ただしこれは水泳ができる人がプールの話をしているのに過ぎないので、水に入ったこともない人だったらおそらく理解できないかもしれません。

投稿日時 - 2016-09-05 07:04:44

あなたにオススメの質問