※本記事はChatGPTに質問しながら構成していますが、ChatGPTの使い方などを説明した記事ではありませんのでご了承ください。
制作環境といってもまず何からはじめていいかわからないので、ChatGPTに聞いてみたところ、Pythonという言語が良さそうだという話になりましたので、その決める過程を含め開発言語について解説します。
とはいえ、実際には「何がしたいか」、「何を学びたいか」によって開発言語をしっかり考える必要があると思いますので、今回は開発言語ごとに「どんな特徴があって、何ができるのか」という部分をまとめました。
尚、初学者向けの内容ですので、既にわかっている方にとっては冗長でつまらない内容かと思いますので、読み飛ばしてください。
開発言語を決める
開発言語を決めるといってもまず目的(「選手の背番号を調べる作業を自動化する」)に対して、どのような開発言語を使えば目的が達成できるかと考えるわけですが、右も左もわからない自分にとってはそれを選ぶだけでも大変な調査が必要でした。
結論から言いますと、開発言語を決めるといっても、どの言語を選んだとしても開発は可能だと思うので、「何を学びたいか」で決めると後悔が少ないだろうと判断しました。ただし、「フロントエンド」の「HTML」、「CSS」、「JavaScript」はWebアプリを作る上では必須なので避けて通れないということもわかりました。
まず、Webアプリの開発言語を決めるにあたり、我々シロートが知っておくべき重要な用語を説明します。
「フロントエンド」とは:
フロントエンドとは、ユーザーが直接触れる部分のことで、通常はウェブサイトやウェブアプリケーションの見た目とインタラクションに関する部分を指します。フロントエンド開発者はHTML、CSS、JavaScriptなどの技術を用いて、ユーザーが直感的に使いやすく、視覚的に魅力的なインターフェースを作成します。これには、レイアウト、色、フォント、画像、ボタン、メニュー、フォームなどのデザインと実装が含まれます。
「バックエンド」とは:
バックエンドとは、ユーザーが直接触れることのないシステムの部分で、通常はサーバーサイドの処理を担当します。バックエンド開発者はサーバーとデータベースの管理、アプリケーションのロジックの実装、ユーザー認証、データの検証、サーバーからフロントエンドへのデータの送信等を担当します。バックエンド開発者はPython、Java、Ruby、Node.jsなどの言語を使用してこれらのタスクを行います。
フロントエンドとバックエンドは異なる役割を果たしますが、共にウェブアプリケーションの重要な要素です。それらをつなげるのが、しばしばAPI(Application Programming Interface)という仕組みで、これによりフロントエンドとバックエンドが互いに通信できます。
フロントエンドの言語
言語名 | 特徴 | 主な使用目的 |
---|---|---|
HTML | Webページの構造を作るためのマークアップ言語です。実質的には全てのWebページがHTMLを使用しています。 | ブログ、Webアプリケーションのフロントエンド開発 |
CSS (SASS, SCSS) | Webページのデザインやレイアウトを制御するスタイルシート言語です。HTMLと組み合わせて使用されます。 | ブログ、Webアプリケーションのフロントエンド開発 |
JavaScript (React, Next.js) | Webブラウザ上で動作するプログラミング言語で、動的な機能をWebページに追加するために使用されます。 | ブログ、Webアプリケーションのフロントエンド開発 |
TypeScript (React, Next.js) | JavaScriptに型を追加した言語で、大規模なプロジェクトにおけるエラーの早期発見やコードの管理を容易にします。 | Webアプリケーションのフロントエンド開発 |
Vue.js | ユーザーインターフェイスを構築するためのプログレッシブフレームワーク。 | Webアプリケーションのフロントエンド開発 |
Angular | Googleにより開発された、大規模なWebアプリケーションの構築に適したJavaScriptフレームワーク。 | Webアプリケーションのフロントエンド開発 |
バックエンドの言語
言語名 | 特徴 | 主な使用目的 |
---|---|---|
Python | シンプルで読みやすいコードが特徴で、WebフレームワークのDjangoやFlaskと組み合わせてバックエンド開発に利用されます。 | Webアプリケーションのバックエンド開発、データ解析、AI・MLプログラミング |
Java | プラットフォームに依存しないことが特徴で、企業のWebアプリケーション開発によく使われます。 | Webアプリケーションのバックエンド開発、企業向けアプリケーション |
JavaScript (Node.js) | JavaScriptをサーバーサイドで実行できるようにしたNode.jsは、リアルタイムアプリケーションやAPIの開発に使用されます。 | Webアプリケーションのバックエンド開発 |
Ruby | コードが直感的で読みやすく、Ruby on Railsというフレームワークと共にバックエンド開発でよく使われます。 | Webアプリケーションのバックエンド開発 |
PHP | ウェブアプリケーション開発に特化した言語で、WordPressなどのCMSでも利用されています。 | Webアプリケーションのバックエンド開発、CMS (WordPressなど) |
Go | Googleが開発した言語で、シンプルさと高速な実行速度が特徴。システムやネットワークプログラムの開発に使われます。 | Webアプリケーションのバックエンド開発、マイクロサービス、並行プログラミング |
Swift | Appleが開発した言語で、iOSアプリ開発が主な用途です。また、サーバーサイドSwiftも増えてきています。 | iOSアプリ開発、サーバーサイド開発 |
.NET / C# | Windowsプラットフォームでの開発に特化した言語で、エンタープライズレベルのアプリケーション開発に用いられます。 | Webアプリケーションのバックエンド開発、デスクトップアプリケーション |
Kotlin | 静的型付けのプログラミング言語で、Javaと100%の互換性を持ちつつも、よりシンプルで現代的な構文を提供します。Android開発で公式に推奨されています。 | Androidアプリ開発、Webアプリケーションのバックエンド開発 |
Rust | 高性能で安全性に重視したシステムプログラミング言語。メモリ管理上のエラーをコンパイル時に防ぐ設計がなされています。 | システムプログラミング、Webアプリケーションのバックエンド開発 |
Scala | 静的型付けの多様なプログラミング言語で、Javaと互換性がありつつも関数型プログラミングを可能にします。 | Webアプリケーションのバックエンド開発、データ処理 |
SQL | データベース管理と操作を行うための言語で、アプリケーションのデータ管理に広く使われます。 | Webアプリケーションのバックエンド開発、データベース管理、データ解析 |
各言語が得意とする領域や使用目的には重複があります。例えばJavaScriptはフロントエンドだけでなくバックエンドでも利用されますし、PythonやJavaもフロントエンドとバックエンド両方で使用可能です。
通常はこのようにフロントエンド言語のた技術者とバックエンド言語の技術者がチームを組んでWebアプリを開発するようです。
1つ1つの言語を覚えるのは大変なことなので、勉強し直すのは難しいので、「何がしたいか」、「何を学びたいか」をここでしっかり考えるのは非常に重要だと思います。
ちなみに、フロントエンド言語のた技術者とバックエンド言語どちらもできる人は「フルスタックエンジニア」と呼ばれるらしいですが、自分は基本的に暇ということもあるし、プロを目指すわけではないので、ChatGPTの助けを借りながら、その「フルスタック」にチャレンジしていきます。
言ってみれば「おめーらプログラマーの常識は、オレには通用しねえ!! シロートだからよ!!」の桜木花道的な心境です。
もっと詳しく知りたくなったら
以下のサイトが個人的にはもっともおススメです。
まとめ
さて、自分は「Python」を選んだわけですが、Pythonはシンプルで比較的シロートにも扱いやすいということと、世界的に流行っているということもあって、Webからたくさんの情報を得ることができるためです。
これはChatGPTの受け売りですが、「開発は問題解決の繰り返し」とのことですので、このアドバンテージは大きいと思います。
というわけで、次回はPythonのインストールの解説を予定していますので、よろしくお願いします。