FRL 自由研究ラボ

はじめての道具箱 — まず知っておくこと

HTML・JavaScript・Python の分担

— 画面の表側と、裏の倉庫番 —

AI の説明には、「HTML」「JavaScript」「Python」という名前がくり返し出てきます。この記事では、それぞれが道具のどの部分を受け持っているのかを、画面のある道具を例に、はじめての人向けに説明します。

この記事を読むとできること

  • HTML・JavaScript・Python(と CSS)の役割が分かるようになります
  • ブラウザだけではファイルを書き換えられない理由が分かるようになります
  • おかしいとき、どの部分を疑えばよいか見当がつくようになります

想定している使い方

ブラウザで開くチャット型の AI(Gemini や ChatGPT など)にコードを書いてもらい、 それを自分の Mac に保存して動かす使い方です。この記事の操作や画面の説明は、すべて Mac を前提にしています。

  1. 3つの名前は何か
  2. 4つの係に分けてみる
  3. ファイルに手が届く係
  4. 症状から係を当てる
  5. よくあるつまずき
  6. AI への伝え方
  7. 確かめ方
  8. 関連する項目

読む目安:約13分 ・ 道具箱の項目 A3(まず知っておくこと)・ 図4枚

HTML・JavaScript・Python とは何か ―― なぜ分担を知っておく必要があるのか

HTML は画面の中身と骨組み、JavaScript は画面の上での動き、Python は Mac の中でファイルを扱う裏方です。HTML と JavaScript はブラウザの中で、Python は Mac の中で動きます。

どれも、コード(Mac やブラウザへの指示を書いた文章)を書くための言葉、つまりプログラミング言語です。AI に画面つきの道具を作ってもらうと、この3つが組み合わさった形で返ってきます。

道具がおかしいとき、チャットの AI はあなたの画面を見られません。そこで「どの部分がおかしいか」を伝えるのはあなたの役目になります。3つの分担を知っておくと、症状から「どの係の話か」を添えて頼めるので、AI が見当違いの所まで書き換えてしまうことが減ります。

✕ 「動かない」とだけ伝えると 「道具が動かない。 直して」 チャットの AI どこのこと? 画面は見えない 関係のない所まで 書き換えてしまう ○ どの部分の症状かを添えると 「ボタンを押しても 反応しない」 =画面の動きの話 チャットの AI JavaScript を調べる 直す場所が絞れ、 ほかを壊しにくい AI は道具の画面を見られません。どの係(部分)の話かを添えるだけで、見当違いの直し方が減ります。

図の見方:上の段は、「道具が動かない。直して」とだけ伝えた場合です。画面を見られない AI はどこのことか分からず、関係のない所まで書き換えてしまうことがあります。下の段は、「ボタンを押しても反応しない」と、画面の動き(JavaScript)の話だと分かるように伝えた場合で、AI は直す場所を絞り込めます。

4つの係に分けてみる

動画の一覧を出す道具を例にします。画面の上の働きは、どれかの係が受け持っています。見た目を受け持つ CSS を加えた4つで考えると分かりやすくなります。

HTML は、表の見出しや行、ボタンを画面に「置く」係です。CSS は、分類ごとの色分けや余白、暗い配色への切り替えといった見た目を受け持ちます。JavaScript は、ボタンを押したときに一瞬で絞り込んだり並べ替えたりする、画面の上の動きを受け持ちます。ここまでの3つはブラウザの中で働きます。そして Python は、Mac の中でフォルダを読んで一覧を作ったり、ファイルの名前を変えたり消したりする裏方です。

画面の表側(ブラウザの中) HTML 中身と骨組み 表の見出し・行・ ボタンを「置く」 CSS 見た目 分類の色分け・余白・ 暗い配色への切り替え JavaScript 画面の上の動き ボタンを押すと 一瞬で絞り込む・並べ替える 裏側(Mac の中) Python 裏方:フォルダを読んで一覧を作る・ファイルの名前を変える・消す・動画を画面へ届ける

※ CSS(Cascading Style Sheets)は、色・文字の大きさ・配置といった見た目だけを受け持つ書き方です。HTML とセットで使われるので、「HTML・CSS」とまとめて呼ばれることもあります。

ファイルに手が届くのは、Mac の中の係だけ

ブラウザは、開いたページが勝手に Mac のファイルを書き換えないよう、鍵のかかった部屋のように作られています。どこかのサイトを開いただけで写真が消されたら困るからです。そのため、HTML と JavaScript だけでは、ファイルの名前を変えたり消したりできません。

そこで、Mac の中で動く Python に頼みます。画面の「編集」ボタンを押すと、その頼み(「この名前に変えて」)が Python に届き、Python が本物のファイルの名前を変えて、「変えました」という結果を画面に返します。このとき Python は、A4 で説明している「店(サーバー)」として動いています。

ブラウザ(鍵のかかった部屋) 画面の「編集」ボタン HTML + JavaScript ✕ ここからファイルには 直接さわれない ① 頼む「この名前に変えて」 ③ 結果を返す「変えました」 Python(Mac の中の店) ② 本物のファイルの 名前を変える Mac の中のファイル ここに手が届くのは Python だけ

筆者の体験メモ

筆者の道具も、最初は Python が作った1枚の HTML をブラウザで開くだけでした。見たり絞り込んだりはできても、名前を変えるには Finder(Mac でファイルを見るアプリ)かターミナル(文字で命令を打ち込むアプリ)へ行く必要がありました。そこで Python を店として動かしておき、画面の「✏️ 編集」から頼めば、裏で Python が実物の名前を書き換える形に作り替えました。

おかしいときは、症状から係の見当をつける

係が分かると、AI に伝える内容が具体的になります。直したコードを書くのは AI ですが、「どの係のあたりがおかしいか」を添えるだけで、見当違いの直し方が減ります。

色・並び・文字の大きさがおかしいなら、HTML と CSS(表側)を疑います。ボタンを押しても何も起きないなら、JavaScript(表側)です。押すと反応はするのに、保存されない・ファイルが変わらないなら、Python(裏側)を疑います。見当が外れていても構いません。入口を絞れることが大事です。

症状 疑う係 色・並び・文字の大きさがおかしい HTML・CSS(表側) ボタンを押しても何も起きない JavaScript(表側) 押すと反応するが、保存されない・ファイルが変わらない Python(裏側) 見当が外れていても構いません。AI は残りの係も調べます。入口を絞れることが大事です

よくあるつまずき

起きていることから探してください。

起きていること 原因 どうするか
画面を開くと、英語のエラーだけが出て何も表示されない Python が画面を組み立てる途中で、画面の型(テンプレート)の書き損じにつまずいた 出ているエラーの文をそのまま AI に貼ります
ボタンを押しても反応がない JavaScript がエラーで止まっている ブラウザの「コンソール」(ページのエラーが表示される欄)に出た赤い文字を AI に貼ります
画面では「保存しました」と出たのに、ファイルが変わっていない 表側は動いたが、裏側の Python で失敗している Python を動かしているターミナル(文字で命令を打ち込むアプリ。道具を起動した画面)に出たエラーを AI に貼ります
1か所を直してもらったら、別の機能が動かなくなった 直した部分を、ほかの機能も使っていることがある 直したコードをもらうとき、影響が出そうなほかの機能も挙げてもらい、自分で動かして確かめます
直したはずなのに、画面が前のまま Python の店が古い中身のまま、またはブラウザが前の画面の控え(キャッシュ)を出している 店を起動し直してから再読み込みします(A4)

筆者の体験メモ

表の1行目と4行目は、筆者がチャットの AI に作ってもらっていたころに実際に起きました。AI が書いた画面の型(テンプレート)に書き損じがあって画面が開かなくなったこと、タイトル検索を直してもらったら、今度は分類での絞り込みが効かなくなったことがあります。

AI への伝え方

※ この道具箱は対話型コーディング(ブラウザの画面でチャットの AI と文章をやりとりして、コードを書いてもらうやり方)の前提です。 チャットの AI はあなたの Mac を見られないので、頼むのは「コードを書いて」、困ったら出た文字を貼って伝えます。 係の名前を正しく言えなくても大丈夫です。「見た目」「画面の動き」「裏側の保存」のどれの話かを添えれば、十分に伝わります。 下の文は、そのまま写すためのものではなく、言い方の見本です。

おかしなところを伝えるとき

「『保存』ボタンを押すと『保存しました』と出るのに、ファイルの名前が変わっていない。ターミナルに出た文字はこれ(貼る)。画面の動きではなく、裏側の保存のほうを疑って、どこを直せばいいか教えて」

直したコードをもらうとき

「直したところだけでなく、この変更でほかに影響が出そうな機能も挙げて。私がそれも動かして確かめる」

※ 2つ目のように頼んでおくと、1か所を直したら別の所が壊れた、という事故に早く気づけます。

確かめ方 ―― 自分の道具で、係を指さしてみる

分担が分かったかは、自分の道具の画面を見ながら、それぞれの係を指さしてみると確かめられます。

  1. 1

    道具の画面でボタンを1つ選び、「置いているのは HTML、色は CSS、押したときの動きは JavaScript」と指さしてみます。

  2. 2

    ファイルを書き換える操作を1つして、そのとき Python を動かしているターミナルに1行出てくるかを見ます。これが、裏で Python が働いた跡です。

  3. 3

    AI にコードを貼って「この道具の、HTML・JavaScript・Python がそれぞれ何を受け持っているか、3行で説明して」と頼み、自分の指さしと合っているかをくらべます。