Previous Page | Next Page

東京都がAIを使って、業務アプリを開発・共有するらしい

 東京都、内製AIプラットフォーム「A1」本格運用開始 職員がノーコードで業務アプリ開発・共有


 今に始まったわけではないが、IT系の新しい技術が出てくると、まるで冷やし中華のように「○○始めました」という記事が出てきます。もちろん当人たちは真剣(?)にやっているかと思いますが、ただ流行りを追っかけているだけとうことであれば資源(この場合税金)の無駄遣いになります。


 ということで、いち東京都民として、税金の無駄遣いにならないか検証するために、覚書ということでメモします。一年後ぐらいに検証できればと思います。

2026-04-14 | コメント:0件

次世代のプログラミング言語とは?

AIによって、プログラマーが淘汰されようかという今になって「次世代のプログラミング言語とは何を言っているのか?」と返されそうですが、今とあるプロジェクトをやっておりまして(具体的なことは控えます)、AI時代に必要なプログラミング言語についてより意識するようになってきました。


■ 現在のAIプログラミングの構造


今までのプログラミングとは「人間からコンピューターへの指示」ということでした。ではAI時代になると何が変わるのでしょうか。


現状、AIを使ったプログラミングは次のような形になります。


人間 → [自然言語(プロンプト)] → AI → [プログラム] → コンピュータ



■ 次世代言語という発想


これについてまず考えられるのは、次のような形です。


人間 → [次世代言語] → AI → [プログラム] → コンピュータ

つまり、人間とAIの間に共通言語を持てないか、という発想です。


さらにいうと、


人間 → [次世代言語] → AI → [次世代言語] → コンピュータ

ここまで踏み込めれば、AIが生成した内容も(原理的に)人間が確認可能になります。
つまり、問題が発生したときに「何が意図されていたのか」を追跡できるようになります。




■ 想定される批判


ここで当然、次のような批判が出てきます。


人間 → [次世代言語] → AI
AI → [次世代言語] → コンピュータ

同じ言語を使うのであれば、AIは人間が入力した内容をそのまま返すだけではないか、というものです。


実際に、そういうことは起こり得るでしょう。




■ それでも何が便利なのか?


ポイントは、人間・AI・コンピュータの間で共通言語を持つこと自体にあります。


自然言語ではなく、このような言語を想定する理由は以下のとおりです。


  • 表現にムラがなく、曖昧性を排除できる
  • 最終的に機械で実現可能な形に落とし込める

一方で、従来のプログラミング言語との違いは、


  • 人間が理解可能な抽象度を保つこと

にあると考えています。




■ 実は新しくない発想


このアイデアは一見すると突飛に見えるかもしれませんが、実は全く新しいものではありません。


第5世代コンピュータで目指されていた、論理型言語の思想に近いものです。


論理型言語の代表格であるPrologは、当時日本でも注目されました。
また、このブログでたびたび触れているADPも、Prologをベースとしています。


また、Grokに言わせるとLLMとPrologをつなぐアイデアは既に研究対象となっているようです。AIに聞けば多数出てくるようです。下記面白そうなもの2点をピックアップします。


Arithmetic Reasoning with LLM: Prolog Generation & Execution
LLMが自然言語の算術問題からPrologの述語・ルールを生成し、Prologインタプリタで実行。CoT(Chain-of-Thought)より精度が大幅に向上した実験。


LLM and Prolog: the logical alternative to chain-of-thought reasoning (Medium, 2025)
金融領域での実践例。LLMが自然言語からPrologルールを抽出し、シンボリック推論エンジンで処理。非常に読みやすい解説。


そりゃPrologを知っている人なら絶対に考えるよなという話ですね。




■ 宣言的という考え方


Prologのような言語は「宣言的」と呼ばれます。


つまり、


  • 「何を作るのか?」にフォーカスする
  • 「どう作るのか?」は実行系に委ねる

という考え方です。


現在のAIによるコーディングもこれに近く、人間が「何を作るのか」をプロンプトで与え、「どう作るか」はAIが担っています。




■ 批判への一つの答え


この役割分担を前提とすると、


「AIは入力をそのまま返すだけではないか」


という批判にも、ある程度対応できます。


もう少し踏み込んだイメージとしては、


  • 人間は「満たすべき条件」(述語)を定義する
  • AIはその実装(述語の本体)を生成する

という形です。


ここでいう「述語」は論理型言語の用語で、「関数」に近い概念です。


処理手順ではなく「満たすべき条件」を中心に表現することで、結果の妥当性を人間が確認しやすくなります。




■ 現実的な課題


とはいえ、このような構想は「言うは簡単で実現は難しい」ものです。第5世代コンピュータプロジェクト自体が頓挫した経緯もあり、AIを使えば当時の問題は解決できるのか?という問いは依然として残ります。

具体的には、


・人間に読みやすいと言ってもPrologはコンピュータよりの言語である。
・宣言的といっても、それだけですべてが上手くいくわけではない。Prolog自体が流行っていない。
・現実案としては、コメントがAIに対する補足(プロンプト)になるが、そうすると自然言語が残ることになる。


というジレンマがあります。特に「宣言的プログラミング」とは当時一瞬流行ったパラダイムになりますが、純粋さを追求すると却ってコードを分かりにくくする側面があります。またAIの出力は手続き的にもなりえます。このあたりの折り合いをどうつけるのかというのが課題かと思います。

このような「純粋な理論」と「現実の泥臭さ」の板挟みを解決するために、私は一つのアプローチをとっています。例えば、ADPは、Prologをベースにマルチパラダイムを追求しています。つまり純粋な宣言的なパラダイムを捨てて、手続き的にも書けるようにしています。このあたりの落としどころが現実的ではあるかと思います。




■ 最後に


もっとも、私自身も30年ほど前にこうしたアイデアの断片を考えたことがあります。


さらにいうと、ADPの機能として次世代言語に必要な要件を備えることができれば、ADPそのものが次世代言語になり得るのではないか、とも思っています。


夢は広がりますが、まずは時間を見つけて少しずつ形にしていきたいところです。


2026-04-06 | コメント:0件

What Is a Next-Generation Programming Language?

■ The Structure of AI-Assisted Programming Today


Traditionally, programming languages have been a way for humans to instruct computers. So what changes in the AI era?


Today, AI-assisted programming typically looks like this:


Human → [Natural Language (Prompt)] → AI → [Program] → Computer



■ The Idea of a Next-Generation Language


From here, one natural idea is:


Human → [Next-Generation Language] → AI → [Program] → Computer

In other words, can we introduce a shared language between humans and AI?


Taking this a step further:


Human → [Next-Generation Language] → AI → [Next-Generation Language] → Computer

If this were possible, then—even in principle—humans could verify what the AI produces.
When problems occur, we could trace and understand the original intent behind the system.




■ Expected Criticism


At this point, a natural criticism arises:


Human → [Next-Generation Language] → AI  
AI → [Next-Generation Language] → Computer

If the same language is used on both sides, wouldn’t AI simply return what the human provided?


In fact, this can certainly happen.




■ So What’s the Benefit?


The key point is the value of having a shared language across humans, AI, and computers.


Why not just use natural language?


  • It introduces inconsistency and ambiguity
  • It is not directly executable by machines

A next-generation language would instead aim to:


  • Eliminate ambiguity
  • Be directly translatable into executable form

And compared to traditional programming languages, the key difference would be:


  • It maintains a level of abstraction that humans can understand



■ Not Actually a New Idea


This idea may sound radical, but it is not entirely new.


It is closely related to the concepts explored in logic programming languages during the Fifth Generation Computer era.


For example, Prolog—one of the most well-known logic programming languages—was once widely discussed in Japan.
The language I’ve mentioned occasionally in this blog, ADP, is also based on Prolog.




■ The Declarative Approach


Languages like Prolog are often described as declarative.


That means:


  • Focus on what should be done
  • Leave how to do it to the execution system

Interestingly, modern AI-assisted coding follows a similar pattern:
humans specify what they want, and AI handles how to implement it.




■ A Possible Answer to the Criticism


If we properly recognize this division of roles, we can respond to the earlier criticism that “AI would just return the input as-is.”


A more concrete idea would be:


  • Humans define conditions—what must be satisfied (predicates)
  • AI generates the implementation (the body of those predicates)

Here, a “predicate” is a concept from logic programming, somewhat similar to a function.


Instead of describing step-by-step procedures, we describe conditions to be satisfied.
This makes it easier for humans to verify whether the result is correct.




■ Practical Challenges


Of course, this kind of idea is much easier said than done.
The Fifth Generation Computer project itself failed, which raises the question:


Can AI solve the challenges that existed back then?


More concretely, several dilemmas remain:


  • Even if we aim for human readability, Prolog is still closer to a machine-oriented language
  • Declarative approaches alone do not solve everything—Prolog itself never became mainstream
  • In practice, comments may act as prompts for AI, which means natural language still remains in the system

This creates a fundamental tension.


Declarative programming was once a briefly popular paradigm, but pushing it too far can make systems impractical.
At the same time, AI-generated output can also be procedural.


How to balance these aspects remains an open challenge.




■ Final Thoughts


That said, I personally had fragments of this idea over 30 years ago.


And if the language I’m developing—ADP—can incorporate the necessary characteristics of such a next-generation language, it might itself become one.


It’s an ambitious thought, but for now, I’ll continue working on it little by little, whenever time allows.

2026-04-05 | コメント:0件

ADSL終了を惜しむ

 昔話をするのは年寄りの悪いところと言われますが、一説によると「老けない」とも言われているらしい。というわけで前向きに昔話を。
ちょっと時間が空きましたが、長らく移行期間があったADSLが今年の1月31日に完全終了したとのことです。
 ADSLと言えば、私は今から26年前に契約をしましたが、その前は28,800bpsのモデムを使用しており、それまではWEBページを見るにしても「画像を表示しない」というオプションをONしており、「何が表示されているかよくわからん」状態だったのですが、もっともWEBと言えば2chのような掲示板を文字で見ていました。
で、ADSLというのが出るらしいという話が出て、住んでいるところでサービス開始早々、電話で契約をしました。オペレーターの方が「ベストエフォートなんで・・・1.5Mbpsの速度は保証しません。」と言っていたのを思い出します。もっとも実測でほぼ1Mbps以上出ておりかなり快適になりました。まさにブロードバンドの幕開けを感じました。当然このころからIEの「画像を表示しない」オプションを外しました。
26年前(2000年)といえば、今は完全に忘れられた感のあるインパク(インターネット博覧会)も思い出されます。もっとも見に行きましたが何が何だか分からなかった記憶があります。
PCでいうと、IntelとAthlonがGHz競争を行っていました。WindowsXPが出る前で、 IEのバージョンは5とか5.5でした。Dual Pentium IIIのマシンにWindows 2000を入れて、K6-IIIのマシンにWindows MEを入れました。K6-IIIは前のメインマシンでこの年にDual PentiumIIIのマシンを組み立てました。マザーボードが840のものでE-ATXだったのでフルタワーのケースを担いで帰ったのが懐かしいです。当時はパソコンと言えばネットをやるというよりプログラミングが主で、K6-IIIやPentium IIIのマシンでTSPSolverのアルゴリズムの改善に取り組んでいたのを思い出しました。当時、K6-IIIとPentium IIIはクロックは違うものの、同一クロックならほぼ同じ性能で、TSPSolverの実行速度もクロックに比例していました。
各PCは、TCP/IPではなく、NetBEUIでつないでいたのを思い出します。ADSLの最初期はPCにADSLモデムを直結していました。さすがに「大丈夫か?」ということで、セキュリティを考えてこのような構成にした記憶があります。Windowsのファイル共有をインターネット側に出さない措置になります。もっとも当時はウイルスもあるにはありましたが、今から思えば牧歌的ではありました。
 その後、引っ越し時に8Mbpsのものに契約変更し、下記のブロードバンドルータ付きのモデムを購入し使っていました。2005年頃ですが、8Mbpsといっても実測で2,3Mbpsだったのを記憶しています。Wi-Fiも設置していましたが、SSIDをみると家だけだったのを思い出します。
その後、2008年に、キャンペーンをやっておったので光回線に変更しました。ので私のADSL歴は8年で幕を下ろしました。またこのADSLモデムも3年程しか使っていませんでした。
光の方は2012年に一度200Mbpsに変えてそのまま使っていたのですが、昨年(2025年)に1Gbpsに変更しました。もっとも体感ではスピードは変わりません。実測では200Mbpsの時代はほぼ200Mbpsの上限が出ており、1Gbpsに変更後は400Mbps程度です。
これは、ご近所さんが光を契約して使うようになったのでそことの共有とのことで、もちろんですが、Wi-FiのSSIDも今では自分のものを見つけるのにも一苦労です。
とまぁ、ADSLを使わなくなって18年になるのですが、それでもいつか使うかもと思ってモデムの方は予備機と合わせて2台残しておりました。ADSLサービスが終了するというニュースを聞いてオークションに出していましたが、大量に出品されており、売り時を逃してしまいました。
 ADSLの普及に合わせてサーバーの運用を開始し、Windowsは怖いからLinuxでメールサーバー、WEBサーバーを公開したり、そのノリで本を出したりと、当時を思い出すとなつかしい思いがします。今なら当たり前のように電車でネットをしていますが、当時は何も無かったところからインターネットが出現し様々な進化をリアルタイムで体感できたことはそれはそれで幸せかもしれません。


ありがとうADSL!



2026-03-31 | コメント:0件

裁判を経験して分かった“裁判官の現実”と裁判官マップの必要性

弁護士の方が裁判官マップというサービスを作成・公開されました。


「裁判官は国民の人生を大きく左右する判断を行う立場にありながら、その評価がフィードバックされる仕組みがほとんどありません。」
ということで作成されています。


私も同様のサイトを作成しようかと思い仮で運用をしていますが、口コミを入れるところが出来ていませんでした。
そういった中でこういうサイトが出来るのは喜ばしいことです。(と同時にITのプロとしては、先を越されて恥ずかしい限りです。)


普通に生きていたら裁判を行うことはほぼないため、裁判や裁判官がどういうものか想像がつかないかと思います。私の場合、裁判官と言えばエリート中のエリートという印象を持っていたのですが、いざ裁判を経験すると愕然とします。
私自身の具体的な話は別途行いたいと思いますが、おかしな判決というのは、私が指摘するまでもなくニュースでやっており、お題目ばかりで役に立たない司法(注、あくまでも個人の感想です)が『失われた数十年』に貢献しているとも言えます。


公平さを保つ為に補足しますと、私の経験上良い裁判官もいらっしゃいますし、また判決を公開しており、これはこれで裁判官へのプレッシャーとなりえます。民事裁判は全ての判決を公開する制度が始まるとのことで、自浄作用も徐々にではあるが期待できるところではあるかと思います。裁判官マップが自浄作用のプラスになればと思います。


機会と需要があれば具体的な話をしたいと思いますが、下記、私が裁判を経験して思ったことを書きます。


・裁判に慣れる。費用は掛かるが人生において一回は裁判を経験したほうがよい。裁判に最もエネルギーを注げる人間は当事者ということになる。『どうしても許せない』というときに裁判の主人公が十分に実力を発揮できるようにしておく。


・三審制とは名ばかりで、ほとんどの裁判が一審で事実上終了となります。二審の裁判に行ったときにやる気のない裁判官をみて残念な気持ちになりました。実際1回で終わって「棄却」となりました。


・判例検索を行い自身でも勝ち負けの感触をつかむ。また判例に即した「勝てる」弁護士を探す。これは私が判例を検索していたにも関わらず、弁護士との打合が十分でなく、その判例を活用することができませんでした(これは残念であります)。


・今ならAIを使うのもあり。


・負けた時のことも考える。不当判決を食らうこともあるので、負けたときに『裁判の内容を自身でも公開』できるようにした方がよい。ニュースで取り上げられるとおり「不当判決」というのはよくあることで内容が間違いなければ公開したほうが社会正義となる。私の場合は裁判の中身そのものではないが、相手団体はいろいろ問題があり日本観光通訳協会(JGA)の法令違反についてということで公開しています。


・多くの人が記者会見をするのは裁判官や被告にプレッシャーを与える(いい加減な判決を出させない)為だと思われる。


・判決より相手の主張を引き出すのが重要なことがある。裁判では相手が嘘をつくことがある。こちらが証拠を握っているときには裁判で相手の嘘が暴かれることがある。嘘をついた時点でそれを公開すれば、裁判(試合)の勝ち負けではなく、勝負ありとなる(私の場合はまだ公開しいないのだが)。


・今なら裁判官マップを見て、裁判官の考え方を事前に調査できる。


・人が善悪を判断するという原理的な限界を理解しておいた方がよい。裁判官は人格者でもなんでもなく、悪い表現を使うと「隣の家のおやじが裁判官をやっている」という理解は必要かと思う。正しいことではなく「どうすればこの裁判官を味方にできるか?」というのは意識した方がよい。


・繰り返しになるが、上記のとおり2026年現在は、裁判に人生をかけるのはリスク高いことを理解しておいた方がよい。TVなどでたまに見る美談が自分も経験できるとは限らない。


とこんな感じになります。多くの人は「最後の頼み綱」ということで裁判を行うことになりますが、私の場合、合議制だったのですが、ここに書いてある以上のことが起こりました。最後になり裁判官が全て変わり、それまでの流れをぶった切られて判決となりました。左陪席の方は研修が終わったばかりの方でいきなり判決文を書いたという状況で、当然中身はきちんと検討されたと思えず、非常に残念な思いをしました。 変わる前の裁判長はこちらの問題意識をよく汲み取ってもらえたようで、真実を暴くという面では効果がありましたが、不当判決を受けたという思いは消えません。裁判官マップによりこういう不幸な人が減ることを祈ります。

2026-03-22 | コメント:0件
Previous Page | Next Page