Yogesh Gnanapraksam wrote:... I do not completely understand why that should create problems in the future.With proper testing we should be able to avoid any surprises.
What I was doing was observing that different systems have different ratios of design time/code time/debug time/test time. However, the total time remains about the same, no matter which system you employ. Interpreted, loosely-typed systems shorten the front-end times at the expense of requiring more backend time.
I'm a big fan of test suites, but I know that tests are "unimportant" when crunch time comes, so it's common that the tests will get written "someday" as soon as this other big project gets done and that keeping tests up to date is just slightly more diligently done than keeping comments up to date. Tests can rot when you "know" that everything's OK, but don't have time to update the test, so you just switch off the failing parts "until there's time to fix them".
My own personal preference is that I'd rather be yelled at by my computer than by my boss or users, so I like systems where the compiler can catch as many screw-ups as possible instead of having them blow up in front of an audience. Some prefer the instant gratification route, instead. And some - dare I say it? - simply want to take the money and run. They won't be there when it all hits the fan, they'll be off doing yet another instant system.
Regular visitors to this forum know that I don't recommend building JSF custom controls at the binary level right now. Fortunately, it's pretty easy to build custom controls using facelets XHTML components.