WicketとPlayは、2つの非常に異なるタイプのフレームワークです。
PlayはMVCフレームワークであり、おそらくDjangoからのアクセスに慣れていると思います。Djangoと同様に、Webビット以上のものを提供し、JPAベースのORMフレームワーク、スキャフォールディングツール、およびおそらくもっと多くのものを提供します(私は実際の経験がありません)。彼らは彼らのサイトに素晴らしいチュートリアルを持っています、そしてあなたはおそらくそこにDjangoの類似点を見るでしょう。
Wicketはコンポーネント指向のフレームワーク(JSFやTapestryなど)であり、オブジェクト指向の設計に重点を置いています。それ自体もMVCですが、ページは通常、自己完結型で再利用可能なコンポーネント(ViewとController、プラグ可能なモデル)を構成することによって構築されます。これらのコンポーネントは、標準の継承と構成によって拡張でき、マークアップはコードから非常に明確に分離されており、簡単に変更できます。
Wicketはイベントのコールバックと状態を自動的に管理できるため、ページがどれほど複雑であっても、URLをまったく考える必要はありません。クリックすると消えるクリック可能なボタンの簡単な例(非常に便利):
// In a page constructor
add(new Link("link") {
public void onClick() {
setVisible(false);
}
});
サーバー側の状態を使用する必要はなく、必要に応じてWicketを「通常の」MVCフレームワークとして使用することは非常に可能であることを強調したいと思います(もちろん、かなりのURLを取得するのは簡単です)。
Wicketプロジェクトは、コアWebフレームワークのみに焦点を当てており、特別なORMサポートやスキャフォールディングなどの特別な「優れた機能」はありません。私はここでWicketプロジェクトの哲学に個人的に同意しますが、フレームワークに来る新しい開発者にとって、ソート可能でページング可能なテーブルなどの「単純な」作業を行うことは、事前に構築されたコンポーネントが少し不足しているため、少し気が遠くなる可能性があります。Wicketの学習と生産性の曲線は少し急なものになる可能性がありますが、利点は、ニーズに合ったコンポーネント(および「動作」-より長いストーリー)を作成すると、それらが非常に再利用可能になることです。
私は個人的にWicketが大好きですが、Playを使用するのがおそらく最善であるという予感があります。あなたの質問は、Javaライブラリにアクセスできる「Django」が必要であることを示しています。その場合、Play(または他のJava MVC)が安全な選択だと思います。一方、Wicketがどれほど強力であるかを知らなかったために、Djangoを使用している可能性があります。;)プロジェクトについてさらに情報を提供していただければ、より適切な回答を提供できるようになります。
サイドノードとして:Playは(少なくとも今のところ)あまり主流ではないので、強力な商業的支援とさらに多くのすぐに使えるモジュールを備えたGrailsも検討したいと思います。