質問: 質問です。 良くWindowsで ユーザーがソフトウェアをPCにインストールして それを、起動すると アカウントの作成を求められる アプリケーションがあると思いますが あのようなアプリケーションは C言語で開発したとして どうやってデーターベースに ユーザーの情報を送ってそれを 管理するように プログラミングをしているのでしょうか? C言語だけで、その辺の事も全部出来るのでしょうか?
回答: こんにちは。 > > アカウントの作成を求められるアプリケーションがあると思いますが > > あのようなアプリケーションは(中略) > > どうやってデーターベースにユーザーの情報を送って > > それを管理するようにプログラミングをしているのでしょうか? > > > 一般的には、通常そのアプリケーションを提供している会社にてアカウントを管理すると思います。 その会社がアカウントを管理するためのサーバをインターネット上に設置し、アプリケーションはインターネット通信にてそのサーバと通信して、アカウントを作成します。 つまり、アプリケーション・ソフトウェアとサーバ・ソフトウェアの2種類のソフトウェアが必要になります。サーバ側を1からC言語で開発することも可能ですが、それでは開発費用と期間を膨大に消費することになります。 そこで、MySQL等の既存のデータベース・ソフトウェアを使ってアカウント情報を管理し、アプリケーション・ソフトウェアとそのデータベース間のI/Fをとりもつサーバ・ソフトウェアを開発します。 そして、アプリケーション・ソフトウェアにそのサーバ・ソフトウェアと通信する機能を実装します。 上記のような形態のサーバ・ソフトウェアの開発についてはよく知らないのですが、恐らくあまりC言語で開発することはないだろうと思います。各種のスクリプト言語的な開発ツールを使って開発されることが多い筈です。 アプリケーション・ソフトウェアについても同様でC言語だけで開発するケースは今の時代比較的少ないのではないかと思います。速度が必要な部分はC++言語、速度が不要な部分はJavaやC#等の生産性の高い言語を使うケースが多いように思います。 > > C言語だけで、その辺の事も全部出来るのでしょうか? > > > 開発費用や開発期間を無視すれば、C言語だけで全てのアプリケーション・ソフトウェアとサーバ・ソフトウェアを開発することは可能です。C言語は高級アセンブラとも言われる程、自由度の高い言語です。ほぼ全てのことが可能ですから。 しかし、C言語の標準ライブラリが脆弱なため実用プログラミングを行う際の難易度が高く、また言語仕様が貧弱なので生産性も低くく、使える場面は限定的です。 ですので、速度を必要とする分野では、まずC言語を学び、次にC++をベターCとして使うケースが多いのではないかと思います。