ChatGPTのCode Interpreterのコードリーディング能力は結構優秀

Code interpreter のキラーソリューションは表データの可視化っぽいけど、入力テキストとファイルソースによってテキスト生成とファイル出力ができるという点に着目すると色々活用の幅が広がる。

中でも、今までは入出力トークンに含まれる必要があったソースコードデータを外部ファイル化できるので、「リポジトリを丸ごと食わせる」などの従来トークン制限上実現できなかったことが外部システム連携なしで簡単に可能になったのが嬉しいポイントだった。

この特性を生かして最近OSSの静的コード解析というかコードリーディングをChatGPTにやってもらっている。

以下のサンプルでは脆弱性診実習用アプリ(通称「やられサイト」)のSQLインジェクションを発見してもらうという会話をした。

chat.openai.com

以下ではaws-load-balancer-controlleropenai-pr-reviewerというOSSを使うにあたって実装を調べたかったので質問をした。これを元に実際のファイルを読んだところ理解が進んだ。

chat.openai.com

chat.openai.com

コード読めるならたぶん書けるよねということを思っていて、以下の記事では仕様書を渡してzipでコードを納品してもらうという実験をされている

note.com

出力をパッチやプルリクエスト中間形式にしたりするとさらに拡張できそう。以前の記事で書いたようにGPTを使った自動プログラミングに関心があるのでAPIが使えるようになったら更に色々実験してみたい。

laiso.hatenablog.com

SNSに飽きてる話

open.spotify.com

Twitterでの情報発信に関心がなくなってきたという部分が共感できるところで、僕の場合はあまり他のユーザーとコミュニケーション取ることもないし投稿するモチベーションもRSSフィードのかわりぐらいしかないんだけど、かと言ってインターネット俗世との唯一のつながりなので断ってしまうのも名残惜しいなぁというのを最近思っていて、年始ぐらいからログインするのをやめて予約投稿のみで使うようにしてみた。

僕のフォロワーなギークな人たちは何かその日に業界内(どこ)で話題になっていることに私見を述べるためにオンラインに滞在しているという使い方をしている人が多いと思っていて、真似してしばらく使ってはいたもののなんか情報発信するまでのリードタイム長くない??? という部分がずっと気になってはいたところだった。しかもなんか自分でコントロールできないし……

Twitterへの滞在時間を減らしたことで何か生産的な行動を取り成果がモリモリ出たということは全然なく逆に12時間ぐらいだらだら睡眠して体調が悪化していたりするんだけど、読書量は増えた気がする。

Zero Topicポッドキャストではイーロンマスク以後のクリエイターのコンテンツプラットフォーム化(MediumとかSubstackのような)に言及されていてその変化は感じているけど、マスク以前からTwitterは使いあぐねてはいて、そもそも自分はSNS全般にそんな馴染んでないよなと思った。

なのでTwitter代替プラットフォームであの頃のインターネットを—— みたいなムーブメントもあの頃をとくに求めてないしなと醒めていた。

これは老いと飽きの問題だとは思っているんだけど、自分の中で根が深いのはこの類の飽きた感を10年ぐらいずっと繰替えしてもいまいち何も変わっていないところにある。

でもなんだかんだ2008年頃からずっと使い続けている人もたくさんいるしすごい。

React.js: The Documentaryで振り返るReact普及の歴史

www.youtube.com

Meta(当時Facebook)のReact Core Teamの主要人物たちに直接インタビューしたドキュメンタリー動画

タイムライン

2012年まで

最初はFacebook社内でReactが普及するまでの道程。

当時世の中的にはクロスブラウザの解決策はjQueryに落ち着き、モバイルアプリ化の流れでAPIサーバーとViewは切り離される傾向にあり、JavaScriptのクライアントサイドで大きいアプリケーション作るためにMVCフレームワークとか取り入れないとね〜という雰囲気だった

Facebook社はマーク・ザッカーバーグHTML5に賭けていた頃*1にBolt.jsというFacebook版Backbone.jsを開発していた

広告プラットフォームのコードは当時Bolt.jsを中心に構成されていたが、Jordan Walkeが関数型プログラミングのアイデアを取り入れ改善しようとした

これがReactの元になっている

先ずReactをNewsFeedのウィジェットに部分導入した

その後Pete Huntが参加し、InstagramのWeb版に導入

移行プロジェクトをするかどうかでめっちゃ揉めたけど、広告プラットフォーム自体も既存のBolt.jsから新興のReactに全面移行

2013年

次はFacebook社外に展開する。開発チームはReactのOSS化を押し進めた。

JS Conf USでReactを大発表したら「JSXがキモ過ぎる」と話題に

www.youtube.com

開発チーム意気消沈

JSConf EUで次鋒Pete行きます

www.youtube.com

この辺りからKhan AcademyのエンジニアやClojureScript作者*2など一部関数型プログラミング愛好家の間では好評価

着実にフォロワーが増えはじめる……

2014年

この頃から日本のコミュニティでもアーリーアダプタの間で話題になっており、よく記事を見かけた

他方、Flux ArchitectureなどReactを実践する為の話題に発展していった

www.youtube.com

2015年

React Nativeリリース

www.youtube.com

NetflixAirbnbYahoo!GitHubなどがReact使ってるよと表明していたのもこの時期

React界隈で熱心にハックしていたDan Abramovという若者がReact EU ConfでReduxを発表

www.youtube.com

Hot Reloading+タイムトラベルデバッグの概念実証をして界隈がザワつく

そのまま面接してCore Teamにジョイン

2016年以降

中国や日本ではコミュニティの先行したVueの方が多く使われていた時期もあったが段々Reactの採用が増えていった

感想

以下の点に関心を持った

開発現場での問題を解決するために生まれた技術であること

組織が計画的に研究して生み出されたイノベーションではなくて問題と個人の裁量が先にあり、それぞれの人が協力して泥臭くできた結果というのが素晴しいと思った

広告プラットフォームはサルたちの狂宴 下 ――フェイスブック乱闘篇という本などからも分かるとうりFacebookにとってのキャッシュエンジンで、そこの開発を数ヶ月止めてReactに移行するするか否かを現場のエンジニアが判断して、CTOは「中長期的に良い判断をしてくれ」とだけ言って見守っているのがすごい。

また実際に起きている問題を解決するものなので、アーリーアダプタ以下の我々が持つ「ユーザーがどれぐらいいて、どのぐらい将来性のある技術なのか」という類の視点ではなくて、最初から本番環境投入するために開発されておりイノベーターの視点を知ることができた。

新しい概念を普及させてWeb開発の考え方ごと変えたこと

Reactが作るの新しい概念が受け入れられることに注力している描写が多かった

確かにReactは当時からしたらかなり受け入れづらい開発手法だった

今のような駆け出しエンジニアがReactを通じて関数型プログラミングのエッセンスを意識せずに体得する状況になるとは思っていなかった

今の地位にくるまでに、Reactチームはドキュメンテーション、エラーメッセージ、開発ツール、コミュニティ活動などをインクリメンタルに行っていたようだ

ReactはjQuery+Backboneからの置き換えの側面が強かった

  1. jQuery普及
  2. 大規模jQueryアプリケーションとしてBackbone+CoffeeScript(Marionette, Chaplin)が導入される
  3. 一方AngularJS等のデータバインディング系がjQuery Viewの代替としてが注目される
  4. jQueryが役目を終え、Angular, React, Vue三兄弟の状況になる
  5. Backboneで構成していたModel-Controller部分もViewライブラリ系と統合されるようになる

2014年末に発刊されたJavaScriptエンジニア養成読本にはAngularJSやBackboneが特集されているが、Reactはまだ出てこない。

この頃に現場で導入の進んでいたのはBackboneの方だったというのが分かる。

FacebookJavaScriptコミュニティの関係

Facebookは当時JavaScript界隈の有名人を引き抜いてきてWeb関係ないことをやらせてる——とJavaScript系のコミュニティから嫌われていたらしい

FirebugのJoe HewittがiOSアプリフレームワークのThree20作っていたような時代のことだと思われる

確かにMozilla出身の人が何人か居るようだけど…… よく覚えてない

Reactリリース時の反応

僕ははじめてReactを見た時はHipHopとかThriftのようなFacebookクラスのスケールの現場のみが必要としている変態なぞ高度技術ぐらいに受け取ってしまっていました

日本のコミュニティではバーチャルDOMで魂が震えたり*3、なぜかOOP vs FP宗教戦争でQiitaが燃えたり関係ない場外乱闘も発生していた(何だったのか)

登場人物紹介

Jordan Walke

github.com

  • 当時広告チームのエンジニア
  • Reactのオリジナル作者とされる人
  • JavaScript Jabber #146 によるとReact Nativeもvjeuxといっしょに中心になって開発していたようだ
  • 動画には出演を断わったのが出て来ない
  • Metaは2021年に退職してる

Pete Hunt

github.com

Christopher Chedeau

github.com

Tom Occhino

github.com

  • Product Infrastructure Teamのボス
  • 今はVercelのVPoEになってる
  • JS Conf 2013でのReactのOSS化、F8 2014でのFlux発表、React.js Conf 2015でReact Native発表の動画を見ると全部ホストをしている

Shane O'Sullivan

github.com

  • SOS
  • Dojo Toolkitのコミッター
  • Bolt.jsを開発していた

Paul O’Shannessy

github.com

Jing Chen

github.com

Sebastian Markbåge

github.com

  • MooToolsやってた人
  • この人も大量にReactにコミットしている
  • Vercelに転職した

Sophie Alpert

github.com

  • Khan Academyの数学問題のエディタでReactを導入した
  • その後React Core Teamにジョイン

Dan Abramov

github.com

  • Reduxの作者
  • Reactのコードを一番書き換えてる現プロジェクトの中心人物

Andrew Clark

github.com

  • Dan Abramovと共にRedux以降のReactの開発を支えた人
  • Vercelに転職した

コミュニティ

David Nolen

github.com

Netflix

参考文献

ChatGPTと英会話するためのツール

PCの場合VoiceWaveが使え、スマホの場合Bingアプリのチャット機能が対応している。

ツールの選び方

非公式なブラウザ拡張は大量にあるので選ぶ時のポイントをあげる。

ユーザー数が多く、怪しい拡張でないか

この部分の大小を比較する。

ユーザー数が多い=安全ということは決してないのだけど多いと僕のようなイチイチ中身を調べて使うおたくが紛れ込む確率が上るので怪しい動作をしていたらツッコミをうける。

中身を見る時は拡張IDから以下を探す。

find ~/Library/Application\ Support/Google/Chrome/Default/Extensions -name baahncfnjojaofhdmdfkpeadigoemkif

音声出力に対応しているか

音声で入力できますという機能だけを持つものが結構あって会話には使えないのでインストール前に確認する。

VoiceWave

VoiceWaveは音声入力の確定を自動、キーワード、手動から選べる点が便利だと思う。

入力のみ音声、出力のみ音声。という使い方もできる。

イヤホンではなく外部スピーカーとマイクで両方使うと自分の発話を自分で聞き取って返事するポンコツロボットみたいな挙動をする。

ChatGPT's voiceはいくつか試して名前が強そうだからぐらいの理由でGoogle US Englishにしたがそんなに違いは分からない。ブラウザが持ってるエンジンを呼び出してるだけだと思う。

エンジンの検知がうまくいかないとゴノレゴ音声みたいなものが合成されてそれはそれでおもしろい。

text to speechは機能として安定しなくて時々動かなくなったりするんだけど、これは実装したことあるから知ってるんだけどブラウザのAPI自体が慎重に使わないとすぐ死んでしまう品質だからであり拡張開発者は大変である。動かなくなったらブラウザ再起動して。

補助ツール

ChatGPT英語例文自動添削プロンプトで公開されているテキストを最初に挿入するとChatGPTに英語の指導者としてのロールを与えられる。

Bingアプリのチャット機能

音声での会話は一応できるんだけどWeb検索をはさむのでテンポが遅い。

他のツール

余談

インターネットがご家庭に普及しはじめた2000年頃に「コミュニケーション苦手な人でもテキストなら敷居が低いよね」という感覚があったのですが僕は「テキストでも苦手だが????」というスタンスでした(例えばMMORPGでパーティを組めない)。

これと似たように「AIとの会話なので気軽」という感覚に対して「AIのと会話すら苦手(つまりはバーバルコミュニケーション全般ということですが)」という人もこれから出てくるのではないかと思いました。人類の進化は奥深いですね。

人間が英文を読解することに言語生成AIを使いたい

英語のコンテンツを読むだけならDeepL等ですぐ目的を果せるのだけど翻訳ツールに頼っているとライティングなどの人間側の処理性能は上がらないし、下り坂を補助輪付き自転車で下っているだけの感覚がある。我々は上り坂も進みたい(このはてしなく遠い坂をよ… )。

以前Rubyコミッタの人か誰かが英文をS式で表現して正確な意味を解説しているのを見かれてなるほどね(不理解)と思ったんだけど、理解してないと変換できないなと感じた。

なのでこれをChatGPTにやってもらうことで翻訳ツール+αなUXにならないかなぁと考えている。

例えば「Training Language Models with Language Feedback」の概要テキストに対してこういう指示を付けてみる。

Bullet the grammatical structure of the following sentences in a tree.
To make it easier to understand the meaning.
—
{text}

S-PP-NP-VPのような記法は句構造文法というものらしい。SVO型ではない。調べてみると言語学の沼が深そうだったので地道に学ぶしかない。

むしろこの分野に詳しい人に何か良い方法ないかを聞いてみたい。

TwitterでフォローしていいかどうかもGPTに決めてもらう世界線

必要性が不明の生成画像: https://www.bing.com/images/create

TwitterとOpenAIのAPIを繋いで評価を自動化します。

#!/usr/bin/env python

import os
import sys

import tweepy
from langchain import LLMChain
from langchain.chat_models import ChatOpenAI
from langchain.prompts import HumanMessagePromptTemplate, SystemMessagePromptTemplate, ChatPromptTemplate

# フォローしたいアカウントのタイプを定義する
preferences = "\n".join([
    "創造的な性格。",
    "新しいものが好き。",
    "建設的な発言が多い。",
])

username = sys.argv[1]
oauth2_bearer_token = os.environ['TWITTER_BEARER_TOKEN']

auth = tweepy.OAuth2BearerHandler(oauth2_bearer_token)
api = tweepy.API(auth)

tweets = api.user_timeline(screen_name=username)

user = tweets[0].user
user_dump = str({
    'id': user.id_str,
    'name': user.name,
    'screen_name': user.screen_name,
    'location': user.location,
    'description': user.description,
    'url': user.url,
    'followers_count': user.followers_count,
    'friends_count': user.friends_count,
    'listed_count': user.listed_count,
    'created_at': user.created_at,
    'favourites_count': user.favourites_count,
    'verified': user.verified,
    'statuses_count': user.statuses_count,
    'lang': user.lang,
})

tweet_texts = "\n".join([t.text for t in tweets])

messages = [
    SystemMessagePromptTemplate.from_template(""""tweetの内容を分析してuserがどのような人物なのかを分析してください。
score: preferencesに一致するかを1~5で評価してください。
explain: scoreの理由を説明してください。

preferences:
{preferences}

結果をscore, explainの順で出力してください。 
"""),
    HumanMessagePromptTemplate.from_template("user:\n{user_dump}\ntweet:\n{tweet_texts}"),
]

chat_prompt = ChatPromptTemplate(input_variables=['preferences', 'user_dump', 'tweet_texts'], messages=messages)

llm = ChatOpenAI(model_name='gpt-3.5-turbo', temperature=1.0, streaming=True)
chain = LLMChain(prompt=chat_prompt, llm=llm)

result = chain.run({'user_dump': user_dump, 'tweet_texts': tweet_texts, 'preferences': preferences})

print(f"# https://twitter.com/{username} の評価")
print(result)

以下のように実行します。

> ./main.py elonmusk


# https://twitter.com/elonmusk の評価
score: 
創造的な性格に5
新しいものが好きに5
建設的な発言が多いに4

explain:
Elon Muskは新しい技術やコンセプトに強い関心を持ち、自身でも革新的なアイデアを次々と生み出しています。彼のtweetには創造性に溢れた発言が多く、新しいものに対して興味を持っていると思われます。
  た、彼の多様なビジネスにおいて、建設的な意見を提供していることも知られています。しかしながら、時には非建設的な発言もするため、建設的な発言が多いという点で4としました。

LangChainをわざわざ使っているのは当初OutPutParserでCSVに吐き出して一括処理を目論んでいたからです。LLMがいうこと聞いてくれないので諦めました。

PS: 自分のアカウントを与えてみたら「若干自己中心的な人物であるかもしれません」とやんわりDISられました。

Bing AIチャットをデフォルトのウェブ検索にして使ってみた

Bing AIチャットをデフォルトのウェブ検索に設定して2週間ほど使ってみたので、感想をレポートします。

https://www.bing.com/images/create

良い点

良い点としては「ウェブ検索結果の一覧を眺めて頭の中でまとめる」という作業をかわりにやってくれる網羅性があるので。専門用語と周辺知識のルックアップなどの場面では楽になりました。

不満点

反対に不満点としては、専門的な内容を検索したい時は検索結果のサマリだけでは目的の情報に辿りついてないので個別でキーワード検索してページを発見する必要があり、まわりくどさを感じました。

ブラウザからの使い方

以下のように設定しています。

  1. Bing Chat for All BrowsersGoogle Chromeからアクセスできるようにする。
    1. もしくはUser-Agent Switcher and ManagerでEdgeと同じUser-Agentになるようにwww.bing.comの設定をします
  2. ChromeのHome Pageをhttps://www.bing.com/search?q=Bing+AI&showconv=1に設定する
  3. ウェブ検索をする時に「+Shift+H」のショートカットキーを実行

検索クエリの言語

日本語と英語でどのような変化があるのか知りたかったので並行して試しました。

検索結果ページの言語情報に影響するので予想どうり英語で検索した方が情報量が多く目的の情報を得られました。

「質問文をチャット上の会話に沿うよう口語で書く必要があるか?」というのは微妙で、単にユーザーの入力をキーワードに分解されてBing検索しているように見えるので、文法などは適当でよさそうでした。

Google検索との比較

Google検索を使わなかったことで自分が多用しがちな操作が実感できました。これらは当然ですがチャット型ウェブ検索だと満せそうにないので併用する必要がありました。

言語を指定して検索(日本語のみ/英語のみ)

キーワードが英語だが検索結果は日本語ページを探したい時に「日本語のみ」に指定します。

例: https://www.google.co.jp/search?q=chatgpt&lr=lang_ja

検索結果のページに英語を優先したい時は「英語のみ」を指定します。

例: https://www.google.co.jp/search?q=chatgpt&lr=lang_en

日付を指定して検索

ソフトウェアのメジャーバージョン変更など、検索結果があらかじめ期間が限定されている場合や、前回検索した結果の追加情報を得たい場合に時間指定をしていました。

例:日本語で24時間以内にChatGPTについて書かれた記事を探したい https://www.google.co.jp/search?q=chatgpt&lr=lang_ja&tbs=lr:lang_1ja,qdr:d

site://を指定して検索

主にソフトウェアのドキュメントなど特定の専門情報を検索する時に多用しています。

  1. 公式ドキュメントを検索
  2. サイト内検索は使わずにGoogleでサイト内を検索

というパターンが多いです。

例:1週間以内に更新されたプラグイン関連のページをOpenAIのドキュメントから検索 https://www.google.co.jp/search?q=site:platform.openai.com+plugins&lr=lang_en&tbs=lr:lang_1en,qdr:w

Bing AIとLangChain、ChatGPTの各回答を比較

ここからはBing AIの外部仕様から仕組みを想像してみます。

  1. ユーザーの入力からBing検索にかけるキーワードを抽出
  2. Bingの検索結果20件のサマリから得た情報を回答になるように整形して表示

この推測どうりならBing AIとLangChainのBing Search Toolは近い結果を返すはず、と思ったの以下のように比較してみました。

「What is Bing AI, and how is it related to ChatGPT?」を各エージェントで質問してみます。

Bing AI(Precise)

Bing AI上でtemperature=0相当であろうTone=Preciseで得た回答。

Bing AI is a chatbot developed by Microsoft that runs on a version of GPT-4 customized for search. ChatGPT is a chatbot developed by OpenAI that runs on the GPT language model. Microsoft has invested billions in OpenAI, the creator of ChatGPT Bing AI and ChatGPT share a lot of similarities, but Bing AI can serve as a chat tool; write different types of content, from poems to songs to stories to reports; provide you with information and insights on the website currently open in the browser; and use its image creator to design a logo, drawing, artwork, or other image based on text.

LangChain - Bing Search Tool(gpt-4)

LangChain AgentからBing Search APIを通じて生成した回答、採用されている検索結果アイテムが微妙に違うことが分かる。回答の文字数は同じぐらい。

Bing AI and ChatGPT are both based on the GPT language model developed by OpenAI. However, they run different versions and have differences in how inputs are handled. As of April 2023, Bing uses a testing version of the GPT-4 model, while ChatGPT is on the older GPT 3.5-turbo model. Microsoft has integrated an AI language model into its Bing search engine, which is said to be more powerful than ChatGPT. Microsoft has invested more than $11 billion into OpenAI, ChatGPT's creator, since 2019.

生成のためのコードは以下を実行しました。

from langchain.agents import initialize_agent, AgentType
from langchain.chat_models import ChatOpenAI
from langchain.tools.bing_search.tool import BingSearchRun
from langchain.utilities import BingSearchAPIWrapper

llm = ChatOpenAI(model_name='gpt-4', temperature=0)
bing_search = BingSearchRun(api_wrapper=BingSearchAPIWrapper(k=20))
agent = initialize_agent([bing_search], llm, agent=AgentType.ZERO_SHOT_REACT_DESCRIPTION, verbose=True)
agent.run("What is Bing AI, and how is it related to ChatGPT?")

ChatGPT(gpt-3.5-turbo)

ChatGPTにはBingとOpenAIが統合されているという知識データを持たないので「別のものです」という答えを返します。

Bing AI is an artificial intelligence system developed by Microsoft for use in its Bing search engine. The system uses machine learning algorithms and natural language processing techniques to help improve the accuracy and relevance of search results, as well as provide more personalized recommendations and suggestions for users. ChatGPT, on the other hand, is a language model developed by OpenAI that uses deep learning algorithms to generate human-like responses to natural language inputs. ChatGPT is not directly related to Bing AI, but it is an example of the type of AI technology that could be integrated with a search engine like Bing to provide more sophisticated and helpful search results. Additionally, Bing AI and ChatGPT both utilize machine learning and natural language processing techniques, and they share some common goals, such as improving the accuracy and relevance of information retrieval.

ChatGPT(gpt-4)

gpt-3.5-turboと同じくBing AIの知識を持たないのですが、インサイダーのGPT-4の知識はあるようでChatGPTで使われていると説明します。

Bing AI refers to the artificial intelligence technologies developed and used by Microsoft's Bing search engine. Bing AI encompasses a range of technologies, including natural language understanding, machine learning, and deep learning algorithms, to provide more relevant and accurate search results, personalize the search experience, and improve the overall user experience. ChatGPT, on the other hand, is an AI language model developed by OpenAI. It is based on the GPT-4 architecture and is designed to understand and generate human-like text based on the input it receives. ChatGPT can be used for a variety of purposes, such as answering questions, generating content, summarizing text, and assisting in conversations. The relationship between Bing AI and ChatGPT is that they are both AI technologies aimed at improving human-computer interaction, but they are developed by different organizations (Microsoft for Bing AI, and OpenAI for ChatGPT). They may share some underlying principles and techniques, such as natural language processing and deep learning, but they are distinct implementations serving different purposes.

perplexity.ai

ついでにperplexity.aiも並べてみます。BingとGPT-4の関係に言及がなく、英語と他言語による差を別の記事から参照していました。

Bing AI is an AI chatbot integrated into Microsoft's Bing search engine. It is based on the same fundamental language model as ChatGPT, known as GPT-3. However, Bing Chat has the ability to pull from more recent web sources and has undergone additional training to make it more capable of following instructions and completing more nuanced tasks. While both ChatGPT and Bing Chat are based on similar language models, there are some distinct differences between them. Bing Chat offers a wider array of non-English languages, while ChatGPT is more focused on English.

考察

Bing AIとLangChainがBing APIとGPT-4で生成した文章には似た点もありますが、LangChainがデータを繋ぎあわせた原始的な生成に近いのに比べると、Bingのが若干Genralな内容をピックアップして仕上げてくる印象です。

またBingやLangChainが返す回答の文字数はChatGPTの結果と比較すると短かくなる傾向があります。

Bingの方はブラックボックスなので定かでないないがLangChainと似たアーキテクチャだとすると検索結果をコンテキストとしてpromptに注入してトークン数を消費するのでChatGPT程の長い回答を生成できないのだと思いました。

ただBingとLangChainはイコールではなく、Semantic Kernelで構築されたPrometheusモデルと呼ばれる別の実装でより複雑なシステムを構築していると思われるので、今後差が顕著になってくるかもしれません。