epesh
I'm Joseph Ottinger, editor of TheServerSide.com.

Calendar

««Nov 2009»»
SMTWTFS
1234567
891011121314
15161718192021
22232425262728
2930

My Bookmarks

My Top Tags

                                       

Mailing List

My RSS Feeds








Search Box

 

I figured out what framework authors are doing wrong.

posted Thursday, 9 March 2006
I finally figured it out. I've been struggling to work out how to explain to various framework authors and supporters why I think what they are telling people is not right, or why the frameworks are flawed, with very limited success.

Today, though, it all crystallized.

See, I've been trying to use my psychology studies. I told Ed Burns - of JSF - that JSF simply presented too many concepts for the average human brain to understand. He said that plenty of people do understand it, and he's right, of course (even *I* understand it!), but I still stand behind the statement that the framework itself is not presented in such a way that ordinary humans can avoid having to "sink or swim" in JSF concepts.

When people "sink or swim," they end up having to endure this moment of transformation, where all of a sudden, everything comes into clear focus and understanding is granted from on high. It works, I guess, but it's also frustrating for people who can't commit the time and energy to working with a given framework.

So my answer to JSF is to either change the number of concepts one has to master in order to use it (which can't really be done), or manage to present the information as if you're talking to idiots who've been hitting the bottle or bong quite heavily.

However, the pattern with JSF has presented itself with other frameworks, too. EJB3. Wicket. RIFE. JPA. Web services. JAAS. JMF. JavaMail, for crying out loud. The pattern never ends.

The problem isn't that the frameworks or APIs are flawed. They really aren't, by and large. (There are a few that are, and I won't point them out, because that erodes the Struts that our world is built upon. We have to get Webwork done, after all, to be part of Web 2.0.)

The problem is that the people who write and document these frameworks don't realise that people are, after all, really not that bright.

I have a friend who works on a fairly impressive system, that has a huge sales cycle. What his company does is work with the customer for a long, long time, basically doing stuff for the customer until everyone's happy. I won't mention his or his company's name, but let's just say that I really think that some day you will know who he is. (He owes me a MacBook Pro, incidentally.)

This guy's company has the right idea. Incredibly capable, complex product. Let the customers benefit from it, but don't let the customers get their greedy little hands on the product - they'd get lost and screw it up.

Like I said, I won't say who he is or what this product does, but it'll revolutionize its product space. This is the right way to infiltrate and conquer.

Now, frameworks can't do this... end developers have to work with them. So now what?

I say the answer is to write every piece of documentation as if the people who are reading it really don't understand it until the last few paragraphs or so. This will annoy writers to no end, it'll be nearly impossible for coders to do, but this is going to be the tipping point. I dare say that the framework that caters to idiots will win, no matter how technically inferior (or demanding) that framework is.

If you can't say it simply, either don't do it or don't say it until you can! And when you can, you'll have the better mousetrap, and people WILL beat down your door.

tags:                      




1. Eugene Ciurana left...
Thursday, 9 March 2006 12:28 pm :: http://teslatestament.com

Joe,

Frameworks are to Java developers what navels are to normal people: everyone has one (or everyone wants to build one). Perhaps people see fortune and glory in it, perhaps there is an honest desire to invent a better mousetrap, perhaps it's just ego. In the end, though, all of them show signs of overengineering and jargonitis.

It almost seems like, if you're in Java space, you have to invent new jargon and frameworks to go with your job. People should get over it.

RIFE is a perfect example of this as well. For 18 months I tried (and I'm still trying) to get people to look at it closely at work. Struts is pushed to its limit and RIFE would be a good enhancement/replacement. The problem is that few people can be arsed to figure out what it does and what the terminology is (time constraints, etc.). I asked the RIFE guys to produce an executive summary or a simple way of presenting this so that a wider audience could scan it, see how cool it is, etc. and then gain enough traction for people to feel like they wish to invest the time. It looks like I may finally get such thing soon.

Framework developers should see that inventing new terminology and overengineering things, as cool as it would seem at first, is just hurting their ability to break into an already overcrowded market. The simplicity of something like RoR, for example, makes people want to adopt it quickly precisely because things aren't overengineered and it doesn't take a big time investment to kick the tires on the technology.

Anyway... have a great day.

Eugene


2. Doug left...
Thursday, 9 March 2006 2:59 pm :: http://creativekarma.com/

I think that you were right the first time. It's not that developers are "really not that bright," it's about time availability.

Those of us who USE products just want to use them. My job description doesn't say "learn frameworks." My job is to get something done. Time spent learning a new framework is pure overhead - something that makes me look LESS productive in the eyes of management.

Unfortunately, there's something about frameworks that apparently keeps them from being the slightest bit intuitive. You just can't figure them out without the manual, and as you were just grousing, you can't seem to figure them out WITH the manual.


3. randomfletch left...
Thursday, 9 March 2006 5:07 pm

I think you're wrong in this case. The problem with JSF is that it was throwing up too many ref flags from the start:

* It came from the same stable as Struts

* The community didn't embrace it

* Loads more XML files

* Author's admission that you really need a tool to use it well

* Expression language incompatible with existing expression language

* Odd new tags for presentation tier which mean that it's harder to get the UI guys to make your templates for you (where Wicket and Tapestry are doing it right)... yeah yeah, it's swappable but nobody has swapped it for a friendly version yet.

* Painful templating integration (i.e. Tiles or Sitemesh, although this is getting solved by the sounds of things)

* Painful Post and Get semantics (depends who you speak to, though)

* Unfriendly URL's

* Slow to market and lots of necessary improvements only slated for the next version.

* And finally, Big, Ugly and Complicated, which is probably the point you were trying to make.


4. Shawn left...
Wednesday, 15 March 2006 9:48 am

I too have analyzed what's wrong with frameworks. I think you may have touched on another fact as well, that there are too many distractins in most frameworks that draw the developer away from what they want to do.

Here is how my analysis of the situation goes. Frameworks solve 80% of a standard industry business issues, such as "web content management and support", or "data collection and standard program flow". However if your problem domain is the framework authors problem domain then they can solve your problem, however if your problem is not their problem, then it's not their problem.

As a side comment, I'm a java programmer, and I love java. So why does every framework want me to write anything and everything BUT java. I think frameworks are a needed evil, as some really do bring on meaningful changes. I have also found conceptual frameworks are much better than rigid frameworks, and get closer to solving 100% of the problems. I typically work in the other 20% that frameworks never address.

IMHO -Shawn


5. Dan Novik left...
Wednesday, 15 March 2006 6:54 pm :: http://www.servletsuite.com

The main goal for any framework (Java or not) is to make a work faster and simpler. JSF simply does not. And unfortunately JSF does not help to create a market for components in Java. At all.


6. rick left...
Wednesday, 15 March 2006 7:56 pm

The goal of the bad frameworks is this: to replace Java.

Unfortunately, the only thing that can replace a programming language is another programming language. So although all the XML, EL and Taglibs look like a good idea at the time, once you get through shoehorning all the complexity of a full on programming language into something which was never meant to do what they need it to do, you end up with something very complex and ugly.

Java is small, powerful and sweet. The 'replacements' are not.


7. Tim Fennell left...
Friday, 17 March 2006 11:51 am :: http://stripes.mc4j.org/

Joseph,

I know you are aware of Stripes, have you taken a look at the documentation? I completely agree that most frameworks seem to make complexity a badge of honour, or a feauture. Stripes was specifically designed with this in mind. Not that there isn't complexity - of course there is. But you're not presented with it thick end first. To get started you need to master two things. How to write a regular java class and how to write a JSP, things most developers can do already ;)

As you need more power, you can discover more and layer in more features. But you're not forced to know anything about things you don't need.

I don't agree that documentation has to be written as if everyone reading it is an idiot. The way I see it is that documentation should be user-focused. The structure and the pages themselves should be focused on how to accomplish a set task, NOT how a portion of the framework is designed.

-t


8. Sergio Oliveira left...
Monday, 4 February 2008 11:59 am :: http://www.mentaframework.org/

If you want a SUPER EASY, SUPER EFFICIENT, SUPER FLEXIBLE, FULL-STACK ACTION FRAMEWORK, then you must take a look on Mentawai.

http://www.mentaframework.org/


9. Super crazy left...
Thursday, 27 March 2008 1:57 pm

Oh yes, mentawai, a super crappy framework full of misconcepts written by a bunch of arrogants. No goddamn framework is absolutely SUPER EASY, SUPER EFFICIENT, SUPER FLEXIBLE. The real world is complex, so get you fucked ass out of your utopic, imaginary world and come back to reality. Mentashit is so freaking forgotten that it's not even mentioned in the big cloud of framework names at http://wicket.apache.org/introduction.html


10. Sergio Oliveira left...
Thursday, 31 July 2008 4:07 pm

Super crazy. Don't be jelous. Work hard and study hard and someday you may be able to do something worth mentioning.