言語選定の哲学とクライアントへの価値提供

株式会社LOWWS プログラマーのルボミル・ポポヴ(Lyubomir Popov)にインタビューし、 現在携わっているプロジェクトの中で興味深い技術や最新の知見について聞いていくコーナーです。

今回はプロのエンジニアになるまでの道のり、そしてプロのエンジニアとしてのポリシーについて聞きました。

This is a segment where we interview Lyubomir Popov, a programmer at LOWWS Inc., to explore interesting technologies and the latest insights from his current projects.

This time, we discussed his journey to becoming a professional engineer and his philosophy as one.

The English article follows the Japanese article.


プログラミングとの出会い

ルボ:私はずっとコンピューターに囲まれてきました。最初はゲームから始まり、インターネットの普及とともにチャットやLinuxに触れ、そしてプログラミングを始めました。 大学に入ってから本格的にキャリアがスタートしました。仕事を探し始めて、最初に取り組んだのはウェブサイトの制作でした。 旅行雑誌のためのウェブサイトで、紙媒体の雑誌があって、それと同じ情報をオンラインでも表示できるようにしたいという要望でした。

ナオト:それが最初のプロジェクトだったんですね。

ルボ:はい、それが最初の商用プロジェクトです。最初に使ったプログラミング言語はPascal 31だったと思います。Turbo Pascalよりも前のものでした。

ナオト:Pascalって名前は聞いたことがあります。

ルボ:昔はプログラミング教育によく使われていた言語です。Delphiって聞いたことありますか?Windowsアプリケーションを作るための手段のひとつで、Pascalをベースにしていました。 私が使っていたPascal 31は、たとえばTurbo Pascalのようにわかりやすいインターフェースはありませんでした。でも、コンピューターに命令を与える仕組みを学ぶには面白かったです。

ナオト:Pascalはどういう用途が一般的だったんですか?

ルボ:Pascalは主に教育用に使われていました。英語に近い構文で書けるのが特徴でした。 たとえば、コードのブロックは中括弧ではなく、begin で始まって end で終わる形式です。

ナオト:なるほど、そんな感じなんですね。

ルボ:はい、だから教育用に向いていました。画面に表示したいときは write コマンド、入力を受け取るには read を使うといった感じで、とてもわかりやすかったです。

ナオト:人にやさしい言語って感じですね。

ルボ:今見ているスクリーンショットはおそらくTurbo Pascal 5ですね。初期のバージョンにはこのようなインターフェースがなかったので、もっと大変でした。当時のハードウェアは8086のCPUで、基本的にDOSしかなく、あとからWindows 3が登場しました。

ナオト:ということは、それがあなたの最初の言語だったんですね?

ルボ:はい。

ナオト:最近はPHPを使ってウェブアプリケーションを作っているんですよね?

ルボ:ここ数年は主にPHPを使っていて、最近ではNode.jsも使っています。

ナオト:他によく使う言語はありますか?

ルボ:頻繁ではないですが、たまにPythonやJavaを使います。タスクによって変わりますね。たとえば、ウェブのセキュリティ診断などにはPythonを使います。でも、ウェブプラットフォームやウェブサイトの開発にはPHPとNode.jsが中心です。

ナオト:つまり、主にウェブサイトやウェブアプリの開発が仕事の中心なんですね。

ルボ:そうですね。最近はセキュリティやペネトレーションテストにも取り組んでいます。

ナオト:私は今、Next.jsとTypeScriptを使って開発しているんですが、PHPと比べたときの利点や欠点ってどう思いますか?

ルボ:PHPの利点のひとつは、ホスティングが非常に簡単なことです。PHPに対応しているホスティング会社はたくさんあります。 PHPで書かれたウェブサイトをすぐに公開できますし、WordPressやJoomla、PrestaShopなどのオープンソースのプラットフォームも豊富です。 たとえば、プログラミング経験があまりなくても、オンラインで商品を売るようなビジネスを始めたい場合は、PHPで書かれたオープンソースのプラットフォームを選べば、少ない知識でも始められます。 もちろん、開発者であれば他の言語でより多くのことができますが、スタート地点としてはPHPが扱いやすいです。

ナオト:私もシステムを作っていて、PHPのほうがTypeScriptよりもデータベースとのやり取りが簡単な気がしています。

ルボ:PHPはこれまでに大きく進化しています。 昔は、PHPからプログラミングを始めた人が多くて、最初に書いたコードがうまくいかず、PHP=悪いコードと結び付けてしまう風潮がありました。 でも、それは言語の問題ではなく、誰でも最初はミスをしますし、未熟なコードを書きます。PHPに限らず、どの言語でも同じです。 初期のPHP、たとえばPHP 3や4には確かに問題もありましたが、今のPHP 8.4のようなバージョンでは、かなり良いコードが書けます。 Composerという依存管理ツールもあり、他の言語より優れている点もあります。 だから、「PHPはダメだ」という考え方には納得できません。 PHPは学習にも適していて、優れたアプリケーションを作れる実力のある言語です。 もちろん、他の言語のほうが得意な分野もあります。たとえば、Node.jsはイベント駆動型のプログラミングに強いです。 でも、結局は「適材適所」。それぞれの言語には長所と短所があります。

ナオト:どの言語にも得意・不得意があるということですね。

ルボ:はい、まさにそうです。

ナオト:お気に入りの言語はPHPですか?

ルボ:はい、PHPです。

ナオト:どうやってプロのエンジニアになったんですか?

ルボ:子どもの頃にPascal 3でプログラミングを始めました。 それから高校、大学でも学び続けてきました。基本的に一生を通じて、プログラミングとシステム管理を学び続けてきました。情熱がそのまま職業になった感じです。

ナオト:大学の専攻はIT系だったんですか?

ルボ:はい、そうです。

ナオト:では、プロのエンジニアとしてのポリシーを教えてください。

ルボ:ちょっと難しい質問ですね。でも「クライアントのために良いソフトウェアを作ること」だと思います。 ただ、それ以上に大事なのは、クライアントが「欲しい」と言っているものではなく、「本当に必要としているもの」を見つけることです。 多くの人は「こういうのが欲しい」と言ってきますが、「なぜそれが必要なのか?」「なぜそういうやり方でやろうとしているのか?」と問いかけるべきです。

たとえば、昔の話ですが、あるクライアントが為替レートの取得サービスを使いたいと言ってきました。 そのサービスは有料で、最大90日間の履歴を提供していましたが、履歴は契約した日からしか取得できませんでした。 つまり、契約初日は履歴がゼロ、2日目には1日分だけ、という仕様でした。

なぜそれが必要なのかを聞いたら、「過去1か月の為替レートを見たい」というだけだったんです。 実は、ヨーロッパ中央銀行がその情報を無料で、しかも何年も前まで提供していることがわかりました。 なので、そちらを使うことにしました。

これは「クライアントが言っていること」よりも「実際に必要なこと」に目を向けるべきだという好例です。 より安価で、より簡単な解決策があることを、クライアント自身が知らない場合もありますから。

ナオト:つまり、本当のニーズを理解することが、より良い提案につながるということですね。

ルボ:そうです。そして、クライアントが知らなかったような、もっと良いサービスや解決策を提供することもできます。


My Encounter with Programming

Lyubo: I’ve always been around computers. It started with gaming, then moved to internet chats, Linux, and eventually programming. My career began when I entered university. I started looking for a job and ended up building websites. The first one was for a travel magazine. They had a print edition and wanted a website to show the same information online and offline.

Naoto: That was your first project?

Lyubo: Yes, that was my first commercial project. The first programming language I used was Pascal 31, which came before Turbo Pascal.

Naoto: I’ve heard of Pascal.

Lyubo: It was mainly used to teach programming. Delphi, which was for building Windows applications, was also based on Pascal. Pascal 31 didn’t have a nice interface like Turbo Pascal, but it was interesting to learn how to make the computer do things.

Naoto: What was Pascal commonly used for?

Lyubo: Mostly as a teaching tool. It was very close to natural English. For example, code blocks began with begin and ended with end. To display s5omething, you’d use write, and to get input, you’d use read. It was very human-friendly.

Naoto: That sounds easy to read.

Lyubo: The screenshot we’re looking at is probably Turbo Pascal 5. Earlier versions didn’t have that kind of interface, so they were more challenging. At that time, we were on 8086 CPUs, using DOS. Later came Windows 3.

Naoto: So Pascal was your first programming language?

Lyubo: Yes.

Naoto: Recently, have you been using PHP for web applications?

Lyubo: In recent years, I’ve mostly been using PHP, and more recently, Node.js.

Naoto: Any other languages?

Lyubo: Occasionally Python, sometimes Java. It depends on the task. For example, for web security assessments, I use Python. For building websites and platforms, I use PHP and Node.js.

Naoto: So your work mainly involves building websites and web applications?

Lyubo: Mostly, yes. Recently, I’ve also been focusing on security and penetration testing.

Naoto: I’ve been using Next.js and TypeScript. What do you think are the pros and cons of PHP compared to TypeScript?

Lyubo: One big advantage of PHP is that hosting it is very easy. There are many hosting providers offering PHP support. You can easily find a host for a PHP-based website. There are also a lot of open-source platforms—like WordPress, Joomla, and PrestaShop—written in PHP. If you’re not heavily into programming and want to start an online business, you can pick a PHP platform and host it with minimal knowledge. If you’re a developer, of course, you can do more with any language, but PHP is a good place to start.

Naoto: I feel like PHP is easier to connect to databases compared to TypeScript.

Lyubo: PHP has evolved a lot. It has a bad reputation because many people started learning programming with PHP and wrote poor code, which led to the idea that PHP is a bad language. But every beginner makes mistakes, regardless of the language. The early versions of PHP had their flaws, but recent versions—like PHP 8.4—are great. You can write clean, powerful code. Composer, the dependency manager, is excellent—better than many others. So the idea that PHP is a bad language isn’t fair. It’s very capable. Of course, some languages are better at certain things. Node.js is great for event-based programming, for example. But every language has its strengths and weaknesses, and you should choose the right tool for the job.

Naoto: So every language has its strong and weak points.

Lyubo: Exactly.

Naoto: Is PHP your favorite language?

Lyubo: Yes.

Naoto: How did you become a professional engineer?

Lyubo: I started learning programming as a kid with Pascal 3, then continued through high school and university. I’ve been learning programming and system administration for most of my life. It started as a passion and became a profession.

Naoto: Was your major in information technology?

Lyubo: Yes.

Naoto: What’s your professional policy as an engineer?

Lyubo: Maybe it’s to create great software for clients. But more than that, it’s to understand what they actually need—not just what they say they want. Clients often come with a request, but it’s important to ask why they want something. By understanding the real need, you can sometimes offer a better solution.

For example, I had a client who wanted to integrate a paid service for currency exchange rates. The service only provided 90 days of historical data from the subscription start date. On day one, there was no history; on day two, just one day, and so on.

When I asked why he needed it, he just wanted to look up historical exchange rates for the past month. But the European Central Bank offers that data for free, going back several years, and for all currencies. So we used that instead. It was a better, cheaper solution. This is why it’s important to understand the real need—not just the initial request. Sometimes clients don’t know there are better alternatives.

Naoto: So understanding the client’s true need helps you make better suggestions.

Lyubo: Yes. It allows you to offer better service and solutions the client may not have known about.


この記事はインタビューをもとにAIを使用して作成されています。 This article was created using AI based on interviews.