Hacker News new | ask | show | jobs
by morvita 1585 days ago
I actually ran up against this exact problem of IDEs being ubiquitous in the JVM ecosystem at a previous job.

The company had just released a new SDK to access a data repository. Since it was a brand new library, they only had Java/Scala versions, with plans to support other languages (JS, Python being the next two on their roadmap) in the few quarters. My team, primarily researchers who only knew Python, needed to use some of this data for a new project. I figured, what the hell, I've been looking for an excuse to learn some Scala, I'll see if I can throw together a utility for my team to use to get access to this data sooner. I fired up Sublime Text and opened up the docs for the SDK and got to work. The documentation was terrible and I really struggled to do basic tasks with this SDK. Simple things like what types were expected for function parameters was just non-existent. Since this SDK was planned to be released publicly to customers, I thought I'd do my co-workers a favour and sent them a message with some feedback about places where I particularly struggled with understanding how to use their SDK, thinking I could help improve the documentation before this went out to paying customers. Their response was that if I just used a proper IDE for my development, I wouldn't have these problems since the code completion/suggestions would let me know what the types of parameters were.

That experience completely soured me on the JVM ecosystem and I walked away from learning it. When I finally came back two years later, I discovered that I actually really like working in Scala (admittedly I do use Intellij for it now), but that many library's documentation is still quite poor compared to what I've come to expect for Python libraries.

2 comments

So full disclosure, I don't tend to write or read documentation that is external to the in-IDE documentation.

But why is documenting the types helpful? The IDE, and for Java/JVM there's a choice of multiple, will tell you. Why waste precious hours of life rewriting what is already documented in the type system?

Sure I'd document the why of something but the idea types should have any form of documentation external to an IDE that can parse the language just seems... redundant.

Whenever I hop over the fence to dynamic languages sure I have to read documentation and large amounts of it is rubbish that could just be inferred from source but that's why I don't hop over there often.

Docs are typically built from source on modern platforms. There's not reason to restrict type information to a particular set of tools when you are bothering to build documentation. Otherwise might as well save your time.
I think it just depends on how many users your library expects. When there's a huge user base, proper documentation pays off.
Rather, how many users not using Eclipse or Idea you expect. And in the context of java, the answer is "few outliers".
I mean, they have been 100% right. There is no point in writing down parameters types, because you see them in the IDE. That sort of docs is completely redundant.