Anyone reading this page should also read TopLinkStrengths.
I've been using TopLink for about 2 years now, and although I've gotten comfortable with the product, here are some areas where TopLink, well, hurts.
- TopLink is complex. The API is complicated (one could say it's rich). It's a very powerful product, and it can do almost everything. Seriously. The downside is that it's nearly impossible to understand all that's going on. As a result, when it doesn't do what you expect, you're in for a tough ride. DebugTopLink is sometimes the quickest solution.
- TopLink is proprietary: the source is closed (although see TopLinkSourceCode), and while it complies to some standards (EJB, JDO, etc.) in many ways it is its own beast with its set of idiosyncrasies.
- TopLink has some bugs. I'm always surprised when that happens. The product is over 10 years old at this point, has been in the hands of 3 different companies, is an industry standard, yet there is still some stuff that doesn't work. I'm not talking about arcane concurrency issues or rare corner cases, just simple stuff that's documented and a regular user expects to work. Maybe I just got unlucky with advanced object models.
- The documentation is/was bad. OracleCorp has significantly improved this, so it's getting there, but for a long time it was just bad. That certainly contributed to the feeling of opacity.
- The query language is a pain and contributes significantly to the ramp-up time. It's basically in exercise in translating SQL to some peculiar Java form, and it gets frustrating at times. Especially when you can see the SQL in your head, and you just want TopLink to do the same thing.
As a result it takes a (comparatively) long time for a developer to get comfortable with TopLink. In fact, I'm sure every team develops a TopLink expert people refer to.
|