Maksud gw bukan itu... Bukan code gen bikin repetition...
Tapi design EJB2 itu butuh banyak noise n repetition, makanya butuh codegen
kayak xdocklet buat ease the pain.

Padahal disini xdocklet sebenernya gak lebih dari quick hack buat get around
the underlying problem... yaitu design API EJB2 yg ridiculously verbose,
unreadable, n repetitive.

Disini yg gw maksud "manfaat" codegen yg illusive. Emang codegen ngebantu
banget daripada mesti nulis pake tangan, tapi tetep lebih baik API designnya
yg dibenerin supaya gak noisy dan human friendly.. dimana lo gak butuh lagi
codegen. Kayak yg dah dibenerin di ejb3.

Tapi codegen juga sebenernya banyak dipake buat tujuan bener. Gw gak tau
napa banyak comment yg undermining codegen di java. Padahal NHQG (NHibernate
Query Generator) itu contoh codegen yg bener2 ngebantu banget di .net.

Contohnya, ini query Many-To-Many di nhibernate:
User usr = User.FindOne(
    Where.User.Name == "Hendry" &&
    Where.User.Roles.With().Name == "Administrator"
);

Strong type... far better daripada HQL.
Dan (di c# 2) ini cuma possible dengan code-generator buat autogenerate
class "Where" beserta setiap subclassnya buat tiap entity (e,g,
Where.User.Roles).

nb: di c# 3 ini udah deprecated direplace linq


2008/12/15 sm96 <syaiful.mukh...@gmail.com>

>   ini juga satu factor kelemahan yg terlalu dibesar-besarkan.
> padahal sebenarnya bisa-bisa saja DRY diterapkan di code generator manapun.
> hanya karena, developer pemakai code generator pengen cepetnya aja,
> sehingga gak terlalu mikirin masalah DRY.
> jika penggunaan code generator sudah optimal, duplikasi apa lagi yg
> masih harus dipermasalahkan? berarti masalah duplikasi itu yang harus
> diresolve
> di sisi code generatornya.
> ekstrimnya, apakah kita gak mau mengulang2 ngetik statement
> macam 'public class XXXX.. extends YYYY implements ZZZZ'
> ini masuk DRY apa bukan? jelas bukan dong?
> tapi code generator bisa dibikin dengan menerapkan DRY didalamnya.
> Kalau masih ada yg menganggap code generator 'jatuh' karena
> 'melanggar' prinsip DRY,
> apa itu berarti developer2 ini gak mahir pake code generator.
>
> 2008/12/11 Hendry Luk <hendrym...@gmail.com <hendrymail%40gmail.com>>:
>
> > Masalahnya bukan code generator vs tanpa code generator. Tapi code
> generator
> > vs code yg DRY dan low noise yg gak butuh generator at first place.
> >
> > Alasan xdocklet di ejb2 kan gara2 banyak butuh duplication n code noise
> > dimana2 :(
> >
> > 2008/12/9 sm96 <syaiful.mukh...@gmail.com <syaiful.mukhlis%40gmail.com>>
> >>
> >> kesalahan terbesar pada penggunaan code generator adalah,
> >> setelah code digenerate, trus dimodifikasi code hasil generate tsb.
> >> padahal jika konsisten dalam penerapan cara ini, mesti code generatornya
> >> yang disempurnakan, disertai dengan konfigurasi yang disempurnakan juga.
> >> bukan berarti code generator adalah sekali generate masalah langsung
> >> beres.
> >> kalo ada masalah, code generator yg disempurnakan sedemikian rupa,
> >> sehingga pada saat generate code yg diperlukan, tidak memakan waktu yg
> >> lama.
> >> dipikirkan juga, bahwa code yg sudah digenerate juga tidak perlu
> >> digenerate ulang.
> >>
> >> pada menyadari atau tidak, proses compiler, interpreter, codeweaver,
> >> bytecode enhancer,
> >> bytecode engineering, sebenarnya ini termasuk juga dalam kategori code
> >> generator.
> >> hanya saja untuk kasus ini, code yang dihasilkan, tidak pernah
> diubah-ubah
> >> lagi,
> >> dan tinggal dieksekusi. netbeans, sudah bertahun menerapkan cara seperti
> >> ini,
> >> form design aslinya selalu disimpan dalam file formatnya khusus, untuk
> >> kemudian
> >> digenerate menjadi code java, dimana didalam source code tsb selalu ada
> >> pesan
> >> 'Generated Code' ditambah lagi pesan "WARNING: Do NOT modify this
> >> code. The content of this method is
> >> * always regenerated by the Form Editor."
> >>
> >> 2008/12/8 Hendry Luk <hendrym...@gmail.com <hendrymail%40gmail.com>>:
> >>
> >> > xdocklet sempet jadi mainstream di EJB2.... totally agree,
> ridiculously
> >> > painful.
> >> >
> >> > 2008/12/5 Ifnu <ifnub...@gmail.com <ifnubima%40gmail.com>>
> >> >>
> >> >> Software semacam codesmith ini sepertinya tidak populer di dunia
> Java,
> >> >> kalaupun ada sepertinya juga tidak laku.
> >> >>
> >> >> Di netbeans ada Visual Web Pack, ga banyak juga yang pake, ;). Ada
> >> >> juga mobility pack, disana ada visual midlet, ga banyak juga yang
> >> >> pake. Cuma Matisse aja yang desain halaman yang banyak dipake, trus
> di
> >> >> matisse ada databinding dengan beans binding, eh banyak yang ga pake
> >> >> juga ;)
> >> >>
> >> >> Ini adalah nature dari aplikasi java yang kebanyakan aplikasi
> >> >> enterprise, dan sekaligus egoistis programmer java yang alergi dengan
> >> >> full code generation.
> >> >>
> >> >> Banyak yang bilang code generation itu cuma awalnya yang enak, ketika
> >> >> kita mau costumize, banyak juga work around yang harus dicari. Pada
> >> >> akhirnya sama saja, ;).
> >> >
> >> >
> >>
> >> --
> >> syaiful.mukhlis
> >> gtalk:syaiful.mukh...@gmail.com <syaiful.mukhlis%40gmail.com>
> >
> >
>
> --
> syaiful.mukhlis
> gtalk:syaiful.mukh...@gmail.com <syaiful.mukhlis%40gmail.com>
>  
>

Kirim email ke