ChatGPTに「回答可能なプログラミング言語など」を質問してみた話

# はじめに
:::note warn
前提：
・ChatGPTは「OpenAIが公開した人工知能チャットボット」であり
　「2023年現在も学習・調整中」です。
　「自然に見える全く誤った回答」を生成することもあるので
　回答について過信しないでください。
　※この記事の最後にも同様の記述をしていますがご了承下さい。

・自身の知識があったうえで「試してみる」ことは良いと思いますが
　辞書や公式ドキュメントのような確実性を携えたものではないと考えているので
　積極的な利用を推奨するものではありません。

・上記を踏まえたうえで触れてみたという体験記です。
:::

この記事は単純に「話題のChatGPT」はどれくらいの種類の
プログラミング言語に対する質問に回答してくれるのだろう？
と気になって質問しただけのモノです。

「質問の粒度が高い」「ドキュメントを読んでないのか」などの
ご意見があるかもしれませんが、本人(AI)に質問してみたかったのです。

特に技術的な記述はありません。ご了承ください。

## 諸注意
ChatGPTの回答について可読性向上の為、
適宜整形(改行挿入など)しています。

回答内容については改変していませんが、
実際の回答をそのまま貼り付けていないので
差分が生じることをご承知おきください。

## 早速、質疑応答(各感想込、1～6まで)

```
# 質問1
ChatGPTが現在解読可能なプログラミング言語は何ですか？

# 回答1
ChatGPTはプログラミング言語の解読には対応しておらず、
自然言語での質問や応答を処理する自然言語処理のための大規模な言語モデルです。
ただし、プログラミングに関する一般的な知識や用語などについては一定の理解を持っています。
```

■感想など
　・正論過ぎてぐうの音も出ない…
　・アプローチを変えてみるか

```
# 質問2
プログラミング言語について質問された際に、回答可能な言語の一覧を提示してください。

# 回答2
ChatGPTはプログラミング言語を直接サポートしていないため、
特定のプログラミング言語についての深い知識を持っていません。
ただし、一般的に広く使われているプログラミング言語については一定の知識を持っています。
代表的なプログラミング言語を以下に示します。

　・C
　・C++
　・Java
　・Python
　・JavaScript
　・Ruby
　・PHP
　・Swift
　・Objective-C
　・Kotlin
　・Go
　・Rust
　・TypeScript
　・SQL

この他にも多くのプログラミング言語がありますが、上記は代表的なものの一部です。
```

■感想など
　・既に凄いな…
　・「この他にも多くの～」であれば更に追求してみたらどうなるだろう

```
# 質問3
先の回答について、回答可能な全ての言語を提示してください。

# 回答3
現在利用可能なプログラミング言語は非常に多岐にわたります。
以下に、一般的なプログラミング言語をいくつかカテゴリー分けして列挙してみましたが、
すべてではありません。

手続き型言語：
　・C
　・Pascal
　・Fortran
　・Ada
　・COBOL

オブジェクト指向言語：
　・Java
　・C++
　・Python
　・Ruby
　・Objective-C
　・Swift
　・Smalltalk

関数型言語：
　・Lisp
　・Haskell
　・ML
　・Scheme
　・F#

スクリプト言語：
　・Perl
　・PHP
　・JavaScript
　・Lua
　・Python
　・Ruby

Web開発言語：
　・HTML
　・CSS
　・JavaScript
　・PHP
　・Ruby
　・Python
　・Java

並列/並行言語：
　・Erlang
　・Clojure
　・Go
　・Rust
　・OpenMP

データベース言語：
　・SQL
　・PL/SQL
　・T-SQL

この他にも多数のプログラミング言語が存在します。
また、新しい言語も次々に登場しています。
```

■感想など
　・ここから「回答に対応しているプログラミング言語」ではなく、言語の紹介になっている気が…
　・言語の分類は色々あるけど[^1]こういう分類するんだ
　・もう何回か詰めてみるか

```
# 質問4
先の回答について、更に多く可能な限り列挙してください。

# 回答4
先程の回答に加え、以下のプログラミング言語を追加してみます。
ただし、全ての言語を網羅しているわけではないことをご了承ください。

　・Ada
　・Algol
　・Assembly言語
　・BASIC
　・C#
　・COBOL
　・D言語
　・Delphi
　・Elixir
　・Falcon
　・Forth
　・Fortran
　・Groovy
　・Haxe
　・Julia
　・Kotlin
　・Lisp
　・Lua
　・MATLAB
　・Objective-C
　・Pascal
　・Perl
　・PHP
　・Prolog
　・Python
　・R
　・Ruby
　・Rust
　・Scala
　・Scheme
　・Smalltalk
　・Swift
　・Tcl
　・TypeScript
　・Vala
　・Visual Basic
　・Zig

上記に加え、Webフロントエンド開発に使用される
JavaScriptのフレームワークやライブラリについても、
Angular、React、Vue.js、jQueryなどがあります。
また、データベースやビッグデータ解析に使用される専門的な言語もあります。
```

■感想など
　・まだ補足が気になるから質問してみるか…

```
# 質問5
先の回答で述べていた

「上記に加え、Webフロントエンド開発に使用される
JavaScriptのフレームワークやライブラリについても、
Angular、React、Vue.js、jQueryなどがあります。
また、データベースやビッグデータ解析に使用される専門的な言語もあります。」

上記について一覧を提示してください。

# 回答5
Webフロントエンド開発で使用されるJavaScriptのフレームワークやライブラリには、
以下のようなものがあります。

　・Angular
　・React
　・Vue.js
　・Ember.js
　・Backbone.js
　・Knockout.js
　・Dojo Toolkit
　・jQuery
　・Prototype
　・MooTools

データベースやビッグデータ解析に使用される専門的な言語には、以下のようなものがあります。
　・SQL
　・PL/SQL
　・T-SQL
　・Oracle RDBMS
　・MongoDB Query Language
　・Cassandra Query Language
　・Apache Hive Query Language
　・Pig Latin
　・Apache Spark
　・Apache Flink
　・Apache Hadoop
　・Apache Storm
　・Apache Beam

これらはあくまで代表的なものであり、実際にはさらに多くの専門的な言語が存在します。
```
■感想など
　・最後に「じゃあ、何について回答できるの」か訊いてみるか…

```
# 質問6
本チャット内で列挙した言語・フレームワークの中で回答可能な一覧を提示してください。

# 回答6
下記に、回答可能なプログラミング言語・フレームワーク・ライブラリの一覧を
再度まとめてみました。
なお、全てを網羅しているわけではないことをご了承ください。

◇プログラミング言語
　・C
　・C++
　・Java
　・Python
　・JavaScript
　・Ruby
　・PHP
　・Swift
　・Objective-C
　・Perl
　・SQL
　・Haskell
　・Lisp
　・MATLAB
　・R
　・Assembly言語
　・Fortran
　・Ada
　・COBOL
　・Go
　・Rust
　・TypeScript
　・Kotlin
　・Dart
　・Lua
　・Scala
　・F#
　・Tcl
　・Clojure
　・Julia
　・Groovy
　・Elixir
　・Scheme
　・Smalltalk
　・Vala
　・Visual Basic
　・Zig
　・Prolog

◇フレームワーク・ライブラリ
　・Angular
　・React
　・Vue.js
　・Ember.js
　・Backbone.js
　・Knockout.js
　・Dojo Toolkit
　・jQuery
　・Prototype
　・MooTools
　・Ruby on Rails
　・Django
　・Flask
　・Express.js
　・Meteor
　・Spring Framework
　・Hibernate
　・Struts
　・Symfony
　・Laravel
　・Yii
　・CodeIgniter
　・CakePHP
　・ASP.NET
　・.NET Core
　・Entity Framework
　・Hibernate
　・JUnit
　・NUnit
　・Selenium
　・Mockito
　・Pytest
　・Behave
　・Mocha
　・Chai
　・Jasmine
　・Enzyme
　・Jest
　・Cucumber
　・Log4j
　・Logback
　・SLF4J
　・Boost
　・Qt
　・wxWidgets
　・Apache Spark
　・Apache Flink
　・Apache Hadoop
　・Apache Storm
　・Apache Beam
　・Apache Hive
　・Pig Latin
　・Cassandra Query Language
　・MongoDB Query Language
　・Oracle RDBMS
　・MySQL
　・PostgreSQL
　・SQLite
　・Microsoft SQL Server
　・Redis
　・memcached
　・Apache Kafka
　・RabbitMQ
　・ZeroMQ
　・Socket.IO
　・gRPC
　・GraphQL
　・RESTful API
```
■総括
　・「フレームワーク・ライブラリ」にDB関連の情報が入っていたり、
　　「それっぽく」見えるけど正確ではないと感じました。
　・話題になっている事は知っていたものの機会がなく、今回初めて触ってみました。
　・「RESTful API」のような「特定の何かに属さない概念」も
　　列挙されたりしていたけれども、これだけの回答をする時点で非常に驚きました。
　・(殆ど未知ですが)これだけの言語やFWの名称がチャットで列挙される様は壮観です。
　・~~何かのカンニングに利用されないか不安です。~~

# さいごに
度々、ChatGPTの回答で出てきていましたが
「全ての言語を網羅しているわけではない」ので
 __非常に便利ですが全て鵜呑みにしないように注意しましょう。__

参考に```wikipedia```を貼っている筆者が言えたことではないかもしれませんが、
AIは機械学習によってあらゆる情報を収集しているので
学習データ(時世やデータの焦点などなど)によって回答も変わります。

なので「不明点を質問したら回答を得られたからコレが正解だ」
というような盲信はしないことが第一です。

仮にプログラミングに利用する場合、
ある程度「自身の知識」があり「不自然な点がないか」など
提示された情報を疑うことは必須かと思います。

質問・回答を丸々記述したので
長くなってしまいましたが、
少しでも目を通してくださる方がいれば幸いです。

[^1]:https://ja.wikipedia.org/wiki/%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0%E8%A8%80%E8%AA%9E