MoonWolf(むーんうるふ)です。
子供の頃からプログラムの世界に慣れ、憧れ、親しんできた者です。
大学生の時、Turbo Pascalを履修科目として学習し、
昔のWindowsで、ボーランドDelphiのユーザーをやっていました。
2024年よりChatGPTの力を借りて、Delphi/Lazarus以外の
プログラム言語にもチャレンジしてきました。
Python、JavaScript、なでしこ3、Unity C#、JAVAなどです。
面白いことに、DelphiやLazarusの経験者は、
他のプログラム言語でも、包み込むようにして理解ができるのです。
なぜか?
DelphiとLazarusで使うPascalというプログラム言語が、
記述ルールに厳しいこと。
プログラムの開発環境が充実していること。
視覚的に直観的にプログラムが作成できること。
これらがあります。他の言語ではこれらない場合が多いです。
Lazarus+SQL DB(sqlite3)を使った開発画面の例:
プログラム開発環境のLazarusのすごいところは、
[2] 検索をしなくても、タブで整理されたコンポーネント一覧
[3] プロパティとイベントをコントロールできるオブジェクトインスペクター
[4] 視覚的にマウスで位置や大きさを調整できるフォームデザイナー
結局のところ、私は他の言語の新しさ、面白さ、
これらを十分に味わいながらも、
Lazarusの良さを改めて感じることになるのでした。
海外に行って初めて日本の良さが実感できるようなものです。
そこで私は、Lazarus関係にた3冊の書籍を書きたいと考え執筆中です。
今までの書籍には無い論点で執筆します。
1年前のMoonWolfと、
その後、複数のプログラム言語に接してきたMoonWolfは、
もはや別人のような視点を得ているからです。
1冊目:MoonWolfと学ぶ Pascal文法 超入門
実践的なLazarusの文法のかなめの部分を、分かりやすくお伝えしたいです。
この書籍に備え英語版でDelphiの分かりやすい書籍を読んでみて
どのような説明が、初心者に分かりやすいのか、しばらく研究していました。
Lazarusを使うためにはOOPの深い知識が必要なのでは?
※OOP:Object Oriented Programming
オブジェクト指向プログラミングです。
この質問に対して、正面からこの書籍で答えたいです。No!です。
もともとLazarusには、他のUnitと連携する技術があります。
Interface部、Inplementation部という概念があり、
複数のUnitを通して開発が進められるのです。
もともとあるこの機能がOOPの概念と被っているのです。
つまりOOPの知識なくして、
他のUnitを使いながら、十分にOOPのような動作を実現できます。
OOPでクラスを作成できる程の、OOPの知識がなくても
プログラミングができるプログラム環境。それがLazarusです。
OOPで自作クラスを作りたい人は、その基礎を学習したあと
ゆっくり学習して身につけたらよいのです。
※この見解は、ChatGPT4と意見が一致しています。
2冊目:MoonWolfと学ぶ Lazarus とSQL DB開発の事例
Lazarus+SQL DB(SQLite3)を使ったDBソフト開発の基礎
これを分かりやすく1冊にまとめたいです。
この書籍に備え、世界中から情報を集めLazarus+SQL DBを研究しています。
私は英語の書籍が読めます。英語のフォーラムを英語のまま読めます。
じつに世界で多くの人が、同じような問題に接しています。
それをスッキリ解決してみせたいです。
Lazarus+SQL DBのソフトが開発できると、
一気にビジネスアプリの開発に足を踏み入れることになります。
「ゲームの作成を通してプログラム力を上げましょう」
というスタンスの今までの私の書籍に対して、
「ビジネスアプリを開発してみましょう」
という実践的な立場に立つ書籍になります。
3冊目:2冊目の書籍の海外向け英語版書籍
(案) Lazarus + SQL DB
DataBase application development with SQLite
※英語書籍は世界中への販売になります。
他のプログラム言語を見てきて、実際にコードを書いて体験して
Delphi / Lazarusに近いものを上げるとすると、
それは、Unity C#くらいしかありませんでした。
フォームデザイナーとインスペクターがありました。
Unityで2Dのシューティングゲームをひとつ作りましたが、
Unityはもともと、2Dや3Dのゲームや動画作成の開発環境であり、
ビジネスソフトを作るものではありません。
JAVAも重厚なプログラム言語ですが、JAVAを動かすための
JREという、そもそもJAVAが動くための環境のインストールが必要です。
フォームデザイナーはあるものの、オブジェクトインスペクターが
Lazarusほど至れり尽くせりではありません。
マイクロソフトのVisual Studioも多言語をサポートして
重厚なプログラム環境ですが、フォームデザイナーはあります。
ただ、インストールに一晩かかることもあり、
インストールの結果30GBも必要な点は、どうしたものかと思います。
天下のマイクロソフト様以外に、こんなことが許さるものはないかもしれません。
立ち上げるたびに最新版にするために時間がかかります。
これは、あくまでも個人的な見解ですが、
「自分用のWindowsアプリの作成で、JAVAや、Visual Studioを使うかい?」
と、自分に聞いたら、Noです。
もっと軽い環境で簡単に、しっかりしたソフトが
Lazarusで出来てしまうからです。
MoonWolfは欧米人と長く仕事をしていたので、
Yes/Noがはっきりしています。
Python、JavaScript、なでしこ3には、
そもそも、フォームエディターもオブジェクトインスペクターもありません。
それぞれのプログラム言語の良さは認めますが、
Lazarusの開発環境と比較すると、
申しわけないことに、比較の対象になりません。
<補足>
※Pythonの良さ:世界中で研究が進んでいるのでライブラリーが充実で良き。
※なでしこ3の良さ:日本語の開発環境で初心者に親しみやすいくて良き。
私が生涯かけてやりたいことは、
日本人のプログラム力の底力を上げるサポートです。
他国では、教育用のプログラム言語として、
高校生、大学生を対象に、Lazarusが使われるケースがあります。
Pascalはもともと教育用のプログラム言語なのです。
Lazarusはオープンソースで完全に無料なので教育と相性が良いのです。
LazarusとDelphiと競合しません。
DelphiとLazarusはお互いに切磋琢磨する関係です。
また相互に移行できるように配慮がなされています。
Lazarus to Delphi, Delphi to Lazarusのように。
2024年現在、日本のプログラム教育に
海外のようにLazarusの選択肢がないのが残念です。
Lazarusの本当の価値が分かった時、国はPythonに加え、
Lazarusも教育用の言語として取り入れることになるでしょう。
私はいつブレークするかは、全然考えずに、
ただ、正直に私のアウトプットを書籍として記録しておきます。
私は書籍を執筆する際に、表紙から作成するタイプの人です。
以下の画像は、書籍の表紙の原案です。
書籍の表紙を時々眺めながら、その表紙に沿うように
内容を固めているのです。
原案の表紙:
将来のLazarusユーザーの皆様が、喜んでいただける姿を想像して
一冊一冊、丁寧に、書いていきたいと思います。
気持ちだけでも、ご期待ください
☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆
将来IT系に進みたい人、プログラム開発系の進みたい人
それでいて、データベースって何?
という人は、次の書籍を読んでスキルアップしてみてください。
個人レベルではエクセル管理で十分ですが、
一歩、プログラムの世界に足を踏み入れるとはDBのスキルは必須です。
自分で言うのも何ですが、ここまで、段階的にやさしくDBの世界を
説明できている本はあまり見かけません。
DBに関してAmazonでKindleUnlimitedで読めるものは、
ほとんど目を通しています。日本語と英語の両方の文献です。
重要な論点を130ページくらいに、スッキリまとめてあります。
完全無料ですぐに使えるSqlite3を使ったDB操作を、
私のお勧めするペースで学習してみると効果的です。
ここで得られる知識と経験は、必ずあなたを有利にしてくれます。
※書籍に出てくるSQLクエリ―はGitHubに掲載してあります。
『MoonWolfと学ぶ SQL DB 第1巻 超入門編: sqlite3使ってみたよ』