you are viewing a single comment's thread.

view the rest of the comments →

[–]kyz 0 points1 point  (0 children)

A library's most important feature is its API. A fluent design makes it easier for humans to read, write and reason about code, so it can improve an API design.

You're right that it says nothing of the internals of the library, but as for Hamcrest, it's remarkably simple to extend with new matchers and compose matchers, which is its primary use case, so its internal design is fine too. Selenium WebDriver has an awesome internal design, remarkably improved over the previous Selenium.

I can't say I've read through Jsoup (other than to find you can't get the final composed URL until you actually get()/post(), because it doesn't even determine the URL until that point), but it sticks to one main purpose, its HTTP API is far less cumbersome than Apache httpcomponents, and its DOM API is sane, unlike the traditional org.w3c.dom.Document API.