DBFluteは10歳になりました

ものがたりのはじまりはじまり...


2006年9月26日 ファーストリリース

ちょうど10年前、0.1.01 がリリースされました。

厳密には、それよりも前に DaoGen という名前で、
企業内でそれなりに利用されていましたが、
オープンソースとして誕生したのがその日でした。

そのときのソースコードがありますね。
もうすでに ConditionBean って感じですが、
SubQueryはずいぶんともっさりしてますね(^^
LdBookTest.java | Github

このときはまだ、S2Daoの自動生成ツールという
感覚でした。ConditionBeanはありましたが、
S2Daoだけだと足りないから追加しているみたいな。

ただ、どんどん改善していくうちに、
DBFluteらしさが前面に出てきて...

Seasarカンファで登壇登壇

[2007年5月27日]
Seasar Conference 2007 SpringDBFluteの紹介」
blog: Seasar カンファレンス 2007 | jfluteの日記
slide: PDF

そして、2007年10月頃です。
Seasarカンファでの出会いをきっかけに、
WEB+DB PRESS の執筆にも関わることができ、
DBFluteを6ページに渡って紹介させて頂きました。
これ読んで使い始めたというユーザーをたくさん耳にしました。
WEB+DBプレス!初執筆 | jfluteの日記

[2007年11月11日]
Seasar Conference 2007 Autumn
「現場ソリューション DBFlute」
blog: SeasarConf & 現場ソリューション振り返り | jfluteの日記
slide: PDF

[2008年5月24日]
Seasar Conference 2008 SpringDBFluteはどうなの?」
blog: Seasarカンファ2008 - DBFlute | jfluteの日記
slide: PDF

[2008年9月6日]
Seasar Conference 2008 Autumn
「現場ソリューション2 DBFlute」
blog: DBFluteセッション来場感謝! | jfluteの日記
slide: PDF

[2009年3月14日]
Seasar Conference 2009 WhiteDBFlute ライトニングConditionBean」
blog: Seasar Conference 2009 White The End | jfluteの日記
slide: PDF

[2009年6月13日]
Seasar Conference 2009 SpringDBFlute導入ポイント & MavenDBFlutePlugin」
blog: カンファとDBFluteユーザ集い無事終了 | jfluteの日記
slide: PDF

[2009年9月12日]
Seasar Conference 2009 AutumnDBFlute ライトニング外だしSQL」
blog: ライトニングの後... | jfluteの日記
slide: PDF

[2010年6月13日]
Seasar Conference 2o1oDBFluteのバージョンって今いくつ?」
blog: Seasarカンファレンス 2010 終了 | jfluteの日記
slide: (見当たらない...手元にもない...)

カンファ後のDBFluteユーザーの集い

Seasarカンファの後、食事会としての
"DBFluteユーザーの集い@神楽坂" をやっていました。

ここから色々な伝説も生まれたんですよね。
DBFluteユーザーはみなパワフルで、
毎回毎回大盛り上がりでしたね笑。

2008年5月のDBFluteユーザの集い @神楽坂SHUN・本家
2008年9月のDBFluteユーザの集い @(店わからず...)
2009年3月のDBFluteユーザの集い @うまい魚【海】
2009年6月のDBFluteユーザの集い @アッシジ
2009年9月のDBFluteユーザの集い @アッシジ
2010年6月のDBFluteユーザの集い @アッシジ

ブログのコメントでハンドルネームで参加表明して集まるって、
なかなか今考えるとすごいですね。
ほとんど初めてお会いする方ばかりでしたからね。
よく待ち合わせできたなーって(^^。

※2008年9月からは禁煙のお店で開催させて頂きました。
みなさん、ご協力ありがとうございます。


2009年2月1日 S2Daoフォーク! 0.9.0

長らく S2Dao と共に生きてきたDBFluteですが、
S2Daoのjarファイルとお別れするときが...
allcommonをJARファイル化 | jfluteの日記

その頃、フォークって言葉は使っていなかったですが、
Apacheライセンスの S2Dao のコードを、
新しく作ったDBFluteランタイム(jar)に取り込んで、
Seasarへの依存のないDBFluteに仕上がりました。

そもそもそれまでは、DBFluteランタイムに入っている
ようなクラスたち (例えば、CBのスーパークラスとか)
もすべて自動生成されていました。
それらもVelocity管理されているので、
何かを変更しようとするとコストがかかりました。
業務DBに依存しないクラスたちなので、
本来はjarになっているべきものたち、
整理整頓してなんとかjarにまとめることができました。

OGNLも使うのをやめて、
IFコメントなどは自前でパースするようにしました。
ランタイムの依存は commons-logging だけに。

S2Daoへの依存を外すなんて想像もしてませんでしたが...
結局、そうなってしまいました。

2012年9月26日 SandBox卒業! 1.0.0

とうとう、1.0.0 をリリース!

DBFlute-1.0.0 Released | jfluteの日記



0.9.x時代が長過ぎでしょ、
って感じですがようやくでしたね。
1.0.0 という名に恥じない品質で、
1.0.0 を出したかったというjfluteの思いが
あったからでした。

リリースパーティーも盛大にやりました(^^
出会いのDBFlute (1.0リリースパーティー) | jfluteの日記

中目黒レインボーバードランデヴーから、
お祝いのケーキも頂いちゃいました。
ありがとうございます。


2015年1月1日 Java8版リリース 1.1.0

Java8ベースのバージョン 1.1.0 をリリース!

DBFlute-1.1.0 Released | jfluteの日記

奇跡的にハピネス・オン・ハイと「まったく同時に」
デプロイすることに成功しました。


List<Member> memberList = memberBhv.selectList(cb -> {
    cb.setupSelect_MemberStatus();
    cb.query().setMemberName_LikeSearch("S", op -> op.likePrefix());
    cb.query().existsPurchase(purchaseCB -> {
        purchaseCB.query().setPurchasePrice_GreaterEqual(200);
    });
    cb.query().addOrderBy_Birthdate_Desc();
});
DBFluteの大きな転換でした。
Lambda前提のインターフェース、
Optionalのがっつり採用、
互換性を崩して次の時代に合わせた飛躍をしました。

独立イベント、DBFluteフェス

Seasarカンファも途絶えてしまいましたから、
DBFluteの独立イベントをやろう!と思い立ちました。
ビズリーチのみなさんの協力あって実現できました。
本当に本当にありがとうございます。

最初は、DBFluteフェスという名前じゃなかったんですね。
DBFluteユーザの集いが独立イベントになったという感じ。

2011年9月25日 DBFluteユーザの集い2011 | jfluteの日記



2012年5月26日 DBFluteユーザの集い2012 | jfluteの日記




...

そして、名前をDBFluteフェスに。
ここから2セッション方式になりました。
あっちでもこっちでもセッション。
ロックフェスのように自由な参加スタイルで!

2013年10月19日 DBFluteフェス2013 | jfluteの日記



...

2014年11月22日 奇跡のDBFluteフェス2014終わり | jfluteの日記



Domaのnakamuraさんをゲストとして、
パネルディスカッションをしました。
新しい試みのフェスでした。

...

2015年11月21日 笑顔のDBFluteフェス2015終わり | jfluteの日記



1000円取る方式、いきなり懇談会方式、
チャレンジ過ぎる企画にも関わらず、
大勢の方に来ていただきました。

...

そして、今年も!?

LastaFluteなんてものも

DB周りだけではなく、Webフレームワークにも
手を出してしまいました。LastaFluteです。

だいぶ無茶してしまいましたが...
さすがに「ワーク"ワークのためのライフ"バランス」考える | jfluteの日記



でもでも、
喜んでくれる人がいるので、やって良かったです。

LastaFlute First Impact | Speaker Deck

そして、
まだまだ冒険ですね...

最後最後のSeasarカンファ

久しぶり復活のSeasarカンファで、
Seasar/SAStrutsをフォークした LastaFlute を公表しました。
どーん!2015年9月26日です。

LastaFlute in Seasarカンファ | jfluteの日記




...
...
そして...2016年9月24日

Seasarカンファレンス2016 Final | jfluteの日記



ある意味で、DBFluteは本当に帰るところがなくなったと言えるかも。
しっかり DBFlute で生きていかないとですね。

出張勉強会もやるように

招待されて (or 自分からお願いして)、
様々なところで講演する機会を頂きました。

仙台でのDBFluteショー | jfluteの日記
DBFlute出張講演会あっとアットウェア | jfluteの日記
ClubDB2でDBFlute語り | jfluteの日記
ウルシステム's DBFlute | jfluteの日記
u-next DBFlutist | jfluteの日記
JPOUGに登壇させていただきました。 | jfluteの日記
リクルートテクノロジーズさん's DBFlute | jfluteの日記

大阪で開催された "わんくま同盟" でも講演させて頂きました!
(ごめんなさい、ブログ書けてない...)

DBFluteではないですが、
CROSS2016にもお誘いいただきました。
RDB界のそうそうたるメンバーの中に混じって、
jfluteもパネラーとして参加させて頂きました。

最近のRDB四方山話 | CROSS2016

相談していただければ、
DBFlute語りに飛んでいーきまーすよー♪

関連プロダクトも増えたよ

DBFluteに加え...

o EMecha (Eclipse Plugin)
o DBFlute Maven Plugin
o DBFlute Intro

o DBFlute Hamcrest
o UTFlute

o Lasta Di
o LastaFlute
o MailFlute
o TomcatBoot
o JettyBoot

DBFluteを広めるために、
DBFluteと連携をするプロダクトを作らないと
いけないと思ったんですね(若干後付け)。

※協力頂いているコミッターのみなさま、
本当にありがとうございます。

...

あと、DBFlute.NET も忘れてはいけません。

C#プログラマーのユーザー、確実にいらっしゃいます。
なかなか着手できないジレンマがありますが、
使ってくれる方がいらっしゃる限り、
なんとかしたい気持ちはずっと持っています。

...

そして、まだ道半ばですが、Scala版も暫定開発しました。

DBFlute on Scala | DBFlute

まだ、Scalaという世界観で、
DBFluteらしさをどう表現したらいいのか?
迷うところがたくさんあるのですが、
勉強にもなるので薄く長くアプローチしていこうかなと
思っています。(ユーザー全くいないし)

jfluteも成長したよ

なんといっても、
これだけのオープンソース活動をやってきたことで、
ずいぶんといろいろと鍛えられました。

まだまだ足りないところだらけですが、
ぜんぜんプログラマー自信のなかったjfluteだったのですが、
なんとかやってきただけのことはできるようになってきました。

とにもかくにも、行動することですね

...

DBFluteのフォローイング、アドバイザリーなど、
DBFluteにまつわること、DBFluteがきっかけで
仕事がもらえるようになってきました。

個人オープンソースプログラマーのジレンマ、
"オープンソースではなかなか食べていけない"
(少なくとも自分で作ったオープンソースでは)

自分は、そこに対してチャレンジをしている
真っ最中と言えるでしょう。


時が経つのは速い?遅い?

遅い! 

1年前の自分やDBFlute,
3年前の自分やDBFlute,
5年前の自分やDBFlute,

全然違いすぎる。
思っていることも考えていることも、
気にしていることも気にしているものも、
ノウハウや視点も、環境も状況も...

まだ1年しか経ってないの?
まだ3年しか経ってないの?
まだ5年しか経ってないの?

って、思えるのです。

あまりに色々とありすぎて...

だから、

1年後の自分やDBFlute,
3年後の自分やDBFlute,
5年後の自分やDBFlute,

って考えると、
全然違うんだろうなぁと。
めちゃ不安だし、わくわくします。

いつまでこんなことやってるんでしょうか?

...


細かいところでたくさん色々と失敗して、
いま思い出しても「どしーん」とへこむこと、
たくさんありますが...

それでも!

この10年間 DBFlute に注ぎ込んできて、
後悔はないですね

まあまだ冒険の途中だから後悔のしようがないのかな。
また後でゆっくり考えましょうか。後悔するかしないか。

なので、とりあえず、
今まで通り反射神経で行動していきます(^^。

DBFlute, Happy Birthday!