Hacker News new | ask | show | jobs
by KingOfCoders 2003 days ago
What I don't understand on many pages (e.g. the TerarkDB Github README, or all the release pages linked from HN):

Why not explain your project to me first? Assume I know nothing about the project and followed a link from HN.

"TerarkDB is a RocksDB replacement"

doesn't help me, what is RocksDB?

This is a huge missed chance for projects to get new users. Start every release note with a sentence explaining your project. Assume people reading your release notes are non-users.

1 comments

Generally I agree, but if you don't know exactly what RocksDB is and why you'd want to fork it, this just isn't for you.

There's probably a mutually beneficial filter being applied here by not letting beginners stumble in.

But what if RocksDB or TerakDB would solve a specific problem I'm facing and I just don't know of this solution? Lots of us have problems but don't know the exact tech stack to solve our problems; this is true at nearly every tech company I've worked for. My favourite anecdote for this was a guy basically reinvented map/reduce in the form of hacky scripts from Hadoop round about the time Hadoop and map/reduce was starting to get traction.
There are two kinds of mindsets when it comes to learning: a consumer mindset and an autodidact mindset.

In an organization, it's easy to recognize consumers -- they typically say things like: "I don't understand this. Is there a training course for this that I can sign up for?" and expect to be assigned to an internal training session or to some external course.

An autodidact on the other hand goes: "I don't understand this. Let me do some research on my own and try to teach myself."

I've been both at various junctures in my life but I've learned that in order to progress to higher levels, it's better to be an autodidact instead of a consumer. When it comes to new knowledge, there's rarely someone who will feed it to me -- I have to take the initiative to learn it myself.

There's nothing wrong in asking for a clarifying blurb (good marketing aims to make things frictionless for potential customers). But RocksDB is its own universe and it's actually pretty well known. I don't work in this space, and even I know what RocksDB is because it has come up a lot in technical discussions about storage engines. When I first encountered it, I had no idea what it was, but I gathered from comments that people were excited about it, so I googled "wiki rocksdb". It took 2 seconds.

Truly curious people are autodidacts, not consumers.

p.s. the HN comment section is a great venue to "overhear" what the community is talking about and what they find exciting. It provides a good signal to dive into certain topics. Knowledge acquisition is very much a sociological exercise as much as it is an individual one.

> An autodidact on the other hand goes: "I don't understand this. Let me do some research on my own and try to teach myself."

As someone who is very autodidact, I can tell you, that just because I don't understand something doesn't mean I go and learn it. There are far too many things to do and to learn just to go and learn things when I have a reason to. Just like consumers will ask for training sessions when they have a reason to.

This is marketing 101, you have a product and you want people to use it. Even in open source, you still want people to use it, you want there to be value in the thing that you built. Build it and they will come doesn't work.

> There's nothing wrong in asking for a clarifying blurb (good marketing aims to make things frictionless for potential customers). But RocksDB is its own universe and it's actually pretty well known. I don't work in this space, and even I know what RocksDB is because it has come up a lot in technical discussions about storage engines. When I first encountered it, I had no idea what it was, but I gathered from comments that people were excited about it, so I googled "wiki rocksdb". It took 2 seconds.

I have heard of RocksDB before, but I still don't know the use-case, why? Because there are so many other database systems. And even if I was using RocksDB looking at that paper I don't know why as a company I would invest in a rewrite to switch over to this new one, since the performance benefits don't seem massively clear.

> Truly curious people are autodidacts, not consumers.

What I think you think autodidacts are, are people with no focus and spend time researching every new thing that pops up. The sort of people that "Jack of all trades, master of none" is made up to describe.

You've made that point much better than me. As someone who teached myself coding in a department store as a kid in 80 or 81 and learned 20+ languages in the last 40 years on my own, I exactly agree with your point about autodidacts.

I'm interested in a many different things, as you I have read about RocksDB before but my time is limited between my family, hobbies and work.

I'm not saying don't learn RocksDB - quite the opposite. It's a great tool to have in your toolbelt.

I'm saying that unless you've used and hit the limits of RocksDB - and it's already absurdly fast - there's zero reason to utilize this project.

Maybe it'll mature one day, have multiplatform support and a wide array of client libraries, and be to RocksDB what RocksDB was to LevelDB. But today is not that day.

For now, developers that don't immediately understand what this project is for would best be served with a simple link to RocksDB.

And how should I know this from the README? How should I decide between a project that is interesting and not explained from a project that is not intended for me?
> How should I decide between a project that is interesting and not explained from a project that is not intended for me?

You first try rocksdb/lmdb, learn it all, break things, hit limitations, and lower your standards enough to search for other things, that don't have comprehensive documentation but just a small readme/paper and checking the code.

Don't expect to build a better Postgresql on the first try.

You're shifting the goal posts.

You wrote the initial post saying they're hurting themselves by not being more clear. I don't think that's true.

Now you're saying they should be more clear to help beginners in the field. I completely agree.

I was rephrasing my point because some didn't understand it the first time. It appears you are cherry picking and missresenting my post again.

It had several points where the first point was about me as someone reading dozens of HN posts a day following links and needing to go on a googling spree to find out about a product I might or might not be interested in.

The other point was about the missed opportunity to attract users.

And even the second point used "projects" and talked about relase pages which made it clear that the it's about the generality of the problem (the linked page wasn't even a release page) Picking out the specifics you either haven't read the post or are misresenting it intentionally.

"but if you don't know exactly what RocksDB"

So things I don't know exactly about are not for me? That seriosly hinders my personal development.

As a two decade CTO I think I should be interested in things I don't know about.

You gave advice to the project on how to attract users that don't know what RocksDB is. I'm saying that they probably don't want users that don't know what RocksDB is.