Having worked mostly on Java technologies for food and some Visual Basic/C# for fun, it was a bit of a challenge to take an exam on SharePoint. And so here are some thoughts on both of them.
Microsoft has really hit it nice on SharePoint. The ease with which one can be productive, at least with the basics, is amazing. Lets say you are starting a company with like 10-20 people and hope to grow more. What do you first need? A good Document management tool. Then you need a way of collaboration. Wiki for info, and discussion thread, a Calendar for who is doing what. Well if you can get this in a few clicks, isn’t it productive? Great!
But dive under and look at the underlying generated code by SharePoint from a developer’s perspective. It is impossible to write those .aspx files by hand. There are just too many tags and ids. What is that GUID anyway ? I never had to worry about creating a huge hexadecimal id in any of the enterprise apps I have written so far. A simple readable String id was sufficient enough most of the time.
I have wondered creating SharePoint in Java. I thought about what web framework would I really choose to achieve that. And the only answer I could come up was Wicket. Its structure would fit fantastically within SharePoint’s idea of Templates, WebParts, Pages, Sites etc in a portal (Of course, SharePoint does hell a lot more than portal). Wicket’s Panels are basically WebParts. Writing WebParts in plain Html and having a small java code (feature) supporting it would be a very clean solution. In fact, by integrating with groovy, the WebPart can be supported by a groovy script rather than a Java class.
Overall SharePoint has matured a lot from its inception. The Java-world could learn a lot from it, instead of spending energy in creating yet another web framework.