俺のソースコードがスパゲッティすぎて異世界の魔法が暴走する件〜チーム開発で世界を救います〜
アルゼン枕子
第1話 異世界転移したらパイソニスタになった件
## 前書き
過労死寸前のITエンジニアが異世界転移!転移した先は魔法がプログラミング言語で動く世界でした...
---
午前3時のオフィスに響くのは、キーボードを叩く音と、空調設備の単調な唸り声だけだった。まるで地下鉄の終電みたいに、規則正しく無機質な音だ。
蛍光灯の白い光が、上村翔太の疲れ切った顔を照らしている。28歳、ITエンジニア。今月の残業時間は既に200時間を超えていた。もう数字というより、人生の墓標みたいなものだ。
『また無茶な仕様変更かよ...』
モニターに表示されたバグレポートを見ながら、翔太は深いため息をついた。緊急修正、緊急修正、緊急修正。デスマーチはもう3ヶ月も続いている。
「お疲れ様でーす」
同僚が帰っていく。翔太は軽く手を振り返すのが精一杯だった。
『みんな帰るのに、俺だけ残業...これが「チーム一丸」の現実かよ』
コーヒーは既に冷めていた。5杯目だったか、6杯目だったか。カフェインが血管を駆け巡っているのに、眠気だけがジワジワと這い上がってくる。薬が効かないゾンビ映画みたいだ。
キーボードを叩く手が重い。目がかすむ。でも、締切は明日の朝だ。
「あと少し...あと少しで...」
翔太がreturnキーを押した瞬間、世界が真っ暗になった。
***
『...ん?デバッグ終わった?』
翔太は目を開けた。見慣れない天井がそこにあった。石造りの梁と、やけに凝った装飾。
『ここ、どこだ?会社の仮眠室にこんな内装あったっけ?』
体を起こすと、完全に中世ヨーロッパ風の部屋だった。ベッドの足元には、RPGの村人が着てそうな服が置いてある。
「おお、目覚めたか」
振り向くと、白いローブを着た老人が立っていた。
「君は『シュウ・ヴァルド』。この世界に召喚された者だ」
『...は?召喚って、RPCコールのことじゃないよね?』
「魔法と科学が融合したこの世界、インデント・シティで新しい人生を始めるのだ」
翔太...いや、シュウは頭を抱えた。過労で幻覚が見えてるのか、それとも本当に異世界なのか。どっちにしても、現実逃避としては上出来すぎる。
『異世界召喚?死んだ記憶もないし...まあ、あの残業量なら過労死も納得だけど』
「ところで、そなたの前世での職業は?」
「えーっと...ITエンジニアです」
老人の目が輝いた。
「素晴らしい!君が十全に能力を発揮できる職を手配しておこう!」
***
インデント・シティの街並みは、確かに中世ヨーロッパ風だった。石畳の道、石造りの建物。でも、妙にハイテクな違和感がそこかしこに漂っている。
『なんだ、あの光ってる物体...街灯がBlueScreenしてる?』
建物の壁に取り付けられた四角い物体が、不吉な青い光を放っていた。よく見ると、見慣れた文字が表示されている。
「ERROR: Syntax Error in line 42」
『...うわあ、異世界でもエラーメッセージかよ。悪夢が現実に追いかけてきた』
「おお、シュウよ。あれはこの街の
老人が説明した。
「この世界の魔法は、君たちの世界でいうプログラミング言語で記述するのだ。あれは街灯の制御魔法にバグが発生している証拠だな」
『プログラミング言語で魔法?』
シュウの頭の中が混乱した。
街の中心部に向かう途中、いくつもの「エラーメッセージ」を目にした。「Index out of range」「Null reference exception」「Memory leak detected」...まるでバグ報告書を街角に貼り付けたみたいだ。
『なんで異世界でもバグと戦わなきゃいけないんだ...転生特典で「デバッグ不要」とかなかったのかよ』
***
ふと気づくと、<魔法インフラ保守ギルド>と書かれた看板の前に、シュウは立っていた。
『保守...メンテナンス系か』
建物の中に入ると、見慣れた光景が広がっていた。デスクには
『魔法の世界なのに、なんでこんなに既視感があるんだ...』
「君が新しく来た
振り向くと、40代くらいの男性が立っていた。疲れた表情だが、どこか親しみやすい雰囲気がある。
「俺はコミット・マージン。この支部の支部長だ」
「シュウ・ヴァルドです。よろしくお願いします」
不思議なもので、こっちの世界での俺の名前が自然と口に出た。
「前職の経験は?」
「デスマーチです」
コミットの表情が急に真剣になった。まるで戦友を見つけたみたいな目つきだ。
「...それは、大変だったな。俺も昔、ドラゴン討伐システムの炎上案件で死にかけた」
『ドラゴン討伐システム?異世界なのにシステム開発かよ。でも、この人なら話が通じそうだ』
「で、この街の
コミットが説明を始めた。
「基本的には、この街の
```pythol
import fire_magic
from mana import ManaPool
def cast_fireball(target, power=50):
mana = ManaPool.current()
if mana < power:
raise InsufficientManaError("魔力不足です")
spell = fire_magic.Fireball(power=power)
return spell.cast(target)
```
『これ...まんまPythonじゃないか!しかも魔法でファイアボール撃つってどういう発想だよ』
シュウは驚いた。構文、インデント、ライブラリのimport文、全てがPythonそのものだった。ただし、ライブラリが「fire_magic」。現実離れしすぎて、逆に親近感が湧く。
「試しに、簡単な魔法を使ってみるか?」
コミットがシュウに
「じゃあ、import fire_magicで...」
シュウが呪文を入力し始めた瞬間、突然炎が噴き出した。
「うわあああ!」
慌てて消火魔法が発動され、煙が立ち込めた。
「おい、import文だけで発動するなよ...初心者あるあるだな」
コミットが苦笑いした。
『この世界、危険すぎる...import文がリアル爆弾とか、テストサーバーって概念ないのかよ』
***
「で、給料なんですが」
面接が一段落したところで、シュウは重要な質問をした。
「基本給は月3
「
「パイコイン。この街の通貨だ。コーヒー1杯が5
『物価はそれほど悪くない...』
「それで、労働時間は?」
「基本は9時~17時。ただし...」
コミットの表情が曇った。どこの世界でも、IT業界の人間が見せる「察してください」な表情だ。
「この業界、どうしても緊急対応が多くてな。特に最近は、
『やっぱり残業ありか...』
「定時で帰れますか?」
「...努力はしている」
『異世界転移して、まさかの同じ悩み。せめて魔法で残業時間を短縮できないのかよ』
でも、シュウにはもう選択肢がなかった。異世界に来ても、
「わかりました。よろしくお願いします」
「よし、明日から頼む。君の経験があれば、きっと活躍できる」
コミットが握手を求めてきた。
『まあ、とりあえず食べていけそうだし...』
***
ギルドを出て街を歩いていると、夕暮れの街並みが美しく見えた。石造りの建物に、魔法の明かりが灯り始める。
でも、よく見ると、あちこちで「ERROR」の表示が点滅している。
『この世界の
カフェに入ってコーヒーを注文した。5
『異世界転移か...まあ、前の会社の地獄会議よりはマシかもしれない』
カフェの隅では、若い
「この関数、計算量がO(n²)になってるよ」
「え、マジで?リファクタリングしなきゃ」
『どこの世界でも、プログラマーは同じことで悩んでるんだな...アルゴリズムの計算量を気にする魔法使いって、シュールすぎるだろ』
シュウは苦笑いした。
窓の外では、街の
『やれやれ、なんで異世界でもデバッグしなきゃいけないんだ...異世界転移したら勇者になって魔王倒すとか、そういう分かりやすい話はないのかよ』
でも、不思議と嫌な気分ではなかった。久しぶりに、定時で帰れるかもしれない職場だ。前の会社の「チーム一丸で頑張ろう!」地獄よりは、はるかにマシそうだった。
『まあ、頑張ってみるか。最悪、魔法でバグを物理的に消去とかできるかもしれないし』
コーヒーを飲み干したシュウは、明日への準備を始めることにした。
異世界での新しい人生が、今始まろうとしていた。
---
## 後書き
異世界転移したのに結局プログラマー...シュウの新しい人生はいかに?次回、第2話「俺のコーディングスタイルが異世界で通用しない」をお楽しみに!
読者の皆様、★評価・感想をお待ちしております。技術ネタについてのご指摘も大歓迎です!
新規登録で充実の読書を
- マイページ
- 読書の状況から作品を自動で分類して簡単に管理できる
- 小説の未読話数がひと目でわかり前回の続きから読める
- フォローしたユーザーの活動を追える
- 通知
- 小説の更新や作者の新作の情報を受け取れる
- 閲覧履歴
- 以前読んだ小説が一覧で見つけやすい
アカウントをお持ちの方はログイン
ビューワー設定
文字サイズ
背景色
フォント
組み方向
機能をオンにすると、画面の下部をタップする度に自動的にスクロールして読み進められます。
応援すると応援コメントも書けます