About
Introduction
はじめまして。Mukai Systemsの向井 信太郎です。
大学では物理を専攻していましたが、学部4年からプログラミングの楽しさに惹かれ、ソフトウェア会社に就職しました。5年間在籍の後、個人事業主として独立し現在に至ります。
昨今の大規模言語モデルの登場によって、プログラミングのあり方は随分変わりました。エディターにAIが組み込まれ、自分で零からコードを書くような機会は減ってきています。「近い将来プログラマは不要になる。」という予想さえありますね。
その一方で、たとえ金銭的な見返りがなくなったとしても私はプログラムを書き続けるでしょう。なぜなら、それ自体大変面白い作業だからです。仕事以外ではプログラミング言語や、ゲームを作っています。プログラムのほかには、ゲーム、物理、数学、読書等に興味があります。
BLOGでは、以下のような記事を書いています。
Qualification
- AtCoder(競技プログラミング)[緑] 参考:AtCoder(競技プログラミング)の色・ランクと実力評価、問題例
- 応用情報技術者[証書]
- 情報セキュリティスペシャリスト[証書]
Elsewhere on the web
Site | Link | Topic |
---|---|---|
![]() | https://github.com | ソフトウェア開発 |
![]() | https://atcoder.jp | 競技プログラミング |
![]() | https://steamcommunity.com | ゲーム |
![]() | https://yamap.com | 登山 |
Programming Languages
プログラミングが好きなのでいろいろな言語を学ぶ機会は少なくないのですが、実務で使いこなせそうな言語は最初の数個だけです。簡単な言語はインタープリタを作りがちなのはご愛敬で。
- Paren
- 掃いて捨てるほどあるLisp方言の一つです。
僕が一番、Parenをうまくつかえるんだ。自分で作ったので使いこなせるのは当たり前ですね。 - Java
- コンソールアプリケーションからWebアプリケーションまで、実務で最も使用してきた汎用プログラミング言語です。WebアプリケーションはJSP + Java ServletやJSFを用いた開発経験が豊富です。よく聞かれるのですが、Spring Frameworkの使用経験はないです。
- JavaScript
- Webアプリケーション開発が主な仕事なので必然的に使用してきました。Node.js + Expressでサーバサイドを実装した経験もあります。ただし、フロントエンドはVue.jsを軽くさわったことしかないです。
- SQL
- ORM(Object–relational mapping)が一般的ではない時代からアプリケーション開発を行っているので、DMLは自在に書けます。
- Python
- 最もよく使う言語のうちの一つで、私的なスクリプトを作る際はほとんどPythonをつかいます。AWS LambdaもPythonを選択しがちです。実務での使用経験は多くはないですが問題ないと思います。
- VBA
- 実務をこなすうえで、ExcelやWordを扱わなければならない。という局面は避けて通れません。そしてそれらは不思議なくらい自動化する余地があったりします。体系的に学んだことはないのですが、作業の効率化のために必要に迫られて書けるようになりました。
- C#
- Unityを用いたゲーム開発で使用します。初学者向けの本を一冊読んだだけで、Javaと構文や意味論における類似点が多いためになんとなく利用できているというのが実態です。実務で使うには不安が残ります。
- C
- C言語でParenの実装を行いました。OSに近いレイヤーの知識に不安があり、実務で使いこなせる自信はありません。
- Common Lisp
- 最も好きな言語のうちの一つで、過去に個人的な雑務を片づける用途でよく使用していました。ParenやPythonを使う機会が増えてから使用する機会はほとんどなくなったので、実務では使いこなせそうにないです。
- Ruby
- Ruby on RailsのAPIモードでバックエンドを開発した経験があります。実務ではまったく使いこなせる気がしません。
- Go
- コンピュータ業界の大御所が設計したということと、観測範囲のVimmerが好んで使用しているということが後押しして勉強したことがあるのですが、あまり実を結びませんでした。実務ではまったく使いこなせる気がしません。
- Rust
- チュートリアルをやってみたのですが、使いこなせる気がしません。Rustを使いこなしている人たちが羨ましいです。
- A=B
- いわゆる難解プログラミング言語(esolang: Esoteric programming language)です。チューリング完全とのことですが実務で使える気はしません。インタープリタを作って満足しました。JavaScriptによるインタープリター実装はこちら。
- Brainfuck
- 同上。実務ではまったく使える気がしません。インタープリタを作って満足しました。Parenによるインタープリター実装はこちら。
- Basic
- 少し遊んだ程度です。実務で使える気はしません。インタープリタを作って満足しました。Parenによるインタープリタ実装はこちら。
- PL/0
- 故Niklaus Wirth先生の名著「アルゴリズム+データ構造=プログラム」の最終章でコンパイラの実装の題材として学びました。コンパイラを実装して満足。Cによるコンパイラ実装はこちら。
- Forth
- 書籍「LET OVER LAMBDA」で賞賛されていたので少し勉強してみました。これは確かに。スタックに根付いた美しい言語でした。インタープリタを実装して満足しました。Parenによるインタープリタ実装はこちら。
- Prolog
- 書籍「7つの言語 7つの世界」に触発されて少しいじってみたことがあります。Prologが特定の領域で強力であることは間違いないですが、汎用的な用途でこれを使いこなる自信はないです。
Products
Paren
Parenは汎用プログラミング言語です。
計算機プログラムの構造と解釈という本に触発されて、「自分でもプログラミング言語を作れそう。」と思い、作り始めたのがきっかけです。師や友人に技術的なサポートやフィードバック等、たくさん頂いたおかげで実を結ぶことができました。
本日では、仕事をこなす上で、欠かせない存在となっています。例えば、このウェブサイトはParenにより生成されています。
Infinite Einstein Tiles
Infinite Einstein TilesはEinstein Problemを題材にしたUnity製のパズルゲームです。
COFFEE ROAST BIG ISLAND

COFFEE ROAST BIG ISLANDは生豆から焙煎してくれるコーヒーショップです。普段利用している商店街の実店舗のオーナーと仲良くなって、偶然お仕事させていただく運びとなりました。経緯はこちらに少し書いています。
私はバックエンドの実装を行いました。おしゃれな見た目ですが、残念ながらデザインには関与していません笑
5年ほど稼働したのち、2024年9月に経営者の交代に伴い閉鎖されてしまいました。
Business
- 屋号
- 向井システムズ
- 事業形態
- 個人事業
- 適格請求書発行事業者の登録番号
- T8810288295163
- 営業時間
- 平日09:00~17:00(土・日祝日休み)
- 業務内容
- システム受託開発
- 代表者
- 向井 信太郎
- メールアドレス
- shintaro@mukai.systems