Popularity rarely correlates with quality. Fortunately, many in the business world understand or start understanding that.

Well, firstly you brought up the idea of popularity, pointing to the majority using PHP...however in business that is not the case.

Secondly, in business the rubbish gets swept out fairly quickly if there's some other, better, proven product out there. It's the "proven" part (tied to "better", obviously) that Lift and Scala have yet to fulfill.

Put it this way, people were cheering on Ruby a couple of years ago as the Next Big Thing. Didn't happen. Developers are pretty bad at picking what will be a successful product...they have a tendency to pick things that they find fun to work with, which are not always the best.

Well, firstly you brought up the idea of popularity, pointing to the majority using PHP...however in business that is not the case.

Why? PHP is widely used in small business. But don't get me wrong. I'm not advising to learn it. :D

Originally Posted by Tolls

Secondly, in business the rubbish gets swept out fairly quickly if there's some other, better, proven product out there. It's the "proven" part (tied to "better", obviously) that Lift and Scala have yet to fulfill.

I don't think that there is any web framework can be considered as proven. Most of the frameworks are either too young or too dead.

Originally Posted by Tolls

Put it this way, people were cheering on Ruby a couple of years ago as the Next Big Thing. Didn't happen.

This shows that developers were unsatisfied in what they had.
Personally I've never thought that ROR or Django is a Next Big Thing. The future is for strong statically typed languages.

Why? PHP is widely used in small business. But don't get me wrong. I'm not advising to learn it. :D

It's used by small businesses because they do not tend to manage their own servers (due to cost), and most of the cheaper hosting does not have Java or .NET on it.

Originally Posted by vkorenev

I don't think that there is any web framework can be considered as proven. Most of the frameworks are either too young or too dead.

Anything that's been around for a few years and is used by large numbers of organisations is pretty much proven. Note that "proven" is "proven to be one of the best options around". So yes, there are proven frameworks.

Originally Posted by vkorenev

This shows that developers were unsatisfied in what they had.
Personally I've never thought that ROR or Django is a Next Big Thing. The future is for strong statically typed languages.

Developers are always unsatisified. Many tend to be script kiddies at heart, or hack 'n' slash coders. It's business that drives what gets used (luckily), since it forces a product proponent to come up with a good reason to move to them. And "but I can code like this" isn't a good reason from a business perspective. The future is whatever provides businesses with value for money...and most of that will come from the architecture side, to be honest.

SoA for example may or may not do this, depending on what the end cost in terms of infrastructure to support a service system is...along with how much actual reusability happens.

Anything that's been around for a few years and is used by large numbers of organisations is pretty much proven. Note that "proven" is "proven to be one of the best options around". So yes, there are proven frameworks.

I think that a technology can be considered as proven after it was successfully used in one project and it was selected for the next project in the same organization. This takes time.

Originally Posted by Tolls

Developers are always unsatisified. Many tend to be script kiddies at heart, or hack 'n' slash coders. It's business that drives what gets used (luckily), since it forces a product proponent to come up with a good reason to move to them. And "but I can code like this" isn't a good reason from a business perspective. The future is whatever provides businesses with value for money...and most of that will come from the architecture side, to be honest.

I don't agree with you. The problem is not that developers choose what they want, but that incompetent developers choose what they want.

I think that a technology can be considered as proven after it was successfully used in one project and it was selected for the next project in the same organization. This takes time.

Which sort of contradicts your previous assertion that there are no proven frameworks...Struts and Spring and Hibernate have all been used more times than you can shake a stick at, and form the core of platforms all over the place.

Yes it takes time for a new technology to bed down...and that's the point. Developers are often a bit rubbish at identifying which ones will bed down.

Originally Posted by vkorenev

I don't agree with you. The problem is not that developers choose what they want, but that incompetent developers choose what they want.

Beg to differ. It is often the technically competent ones that choose the flashy technologies. The incompetent ones tend to stick to what they know...or in their case, think they know...or simply follow the techies.

There is a class of developer that likes to push the boundaries, if you like. They are very useful, however they do need reigning in or they have a habit of charging after the new shiny thing...sometimes the shiny thing they themselves have written.

Which sort of contradicts your previous assertion that there are no proven frameworks...Struts and Spring and Hibernate have all been used more times than you can shake a stick at, and form the core of platforms all over the place.

Spring and Hibernate are not web frameworks.
Struts, well, it is mature. But I wouldn't choose either it or JSF for a new project nowadays.

I'm totally out of my league in this subject, but I'm curious, Tolls, what would you use for a new web project, and why?

I'm usually called in to fix projects, so I haven't had to make that decision for several years now, but I would choose something that's been round the block and is likely to have a reasonable pool of people that understand the technology. For web stuff this would be either Struts or Spring (I'm really not fussed either way).

Much as I like to play with new toys (and I don't pass up the opportunity to pick up new stuff on a contract), a paying job is not the place for me to go all experimental. I take the view that it's a mix of something I know works (even if it has its moments) along with something other people will know. After all, at some point I'm not going to be there so having something that is (at least at that point) "common place" is a good thing, in my view.

I've become a Scala fan, so my first choice is Lift.
The second choice is Wicket, because it provides good type safety.
I have also heard a lot of good about Tapestry which is remarkable for its longevity.

I've become a Scala fan, so my first choice is Lift.
The second choice is Wicket, because it provides good type safety.
I have also heard a lot of good about Tapestry which is remarkable for its longevity.

The problem is if I were to ask here who could work on a project using Scala I would get pretty much zero hands...which would imply additional cost in setting up a project. For small, maybe one man, proof-of-technology type internal things you can go down that route, but bearing in mind that if the technology you're choosing does not take hold and remains niche then maintenance will be a problem.