4 ms·
It is amazing how small relatively isolated team can create awesome product. I am trying something similar, but its very hard. Antirez is either genius or works
by jkot 12y ago
It is amazing how small relatively isolated team can create awesome product. I am trying something similar, but its very hard. Antirez is either genius or works 20 hours a day.
- taf2 12y agoGenius - nothing good comes from working 20 hours a day
- dvirsky 12y agoAlso - persistent.
- antirez 12y agoI work 8 hours per day, but the actual time coding is much shorter as everybody in our industry knows: pauses, design moments, checking HN, ... And I'm not a genius, many of my friends are smarter than me. To get something done is basically having some vertical talent (for example ability to code), and putting a steady effort into it for a long time. A fundamental thing is to try to minimize the work to do and to maximize the effect the work has. Just a random examples, Redis has support for transactions, that are quite useful, and are implemented in like ~100 lines of code, because it does not implement rollbacks. The idea is that for the specific data model, operations, and use cases provided by Redis, rollbacks were not important, and that was the case. Getting the design decision wrong, rollbacks could easily introduce 5000 lines of code in Redis and also press other design decisions as a side effect. EDIT: cloc actually reports 196 lines of code into the file multi.c, but there are additional features including check-and-set that is ~50% of the code, so yep, pretty much 100 lines of code.
- nstott 12y agoThats an important skill not just to be able to make something work, but being able to manage the scope of the solution to keep things simple sometimes you get a better solution by doing less
- tegeek 12y agoThank you for writing this tip. Hopefully I can cut some of my hobby projects & finally complete one thing even with less features.
- chatmasta 12y agoI've read the redis source code as an example of excellent C programming. Very impressive work sir, hats off to you. I think your advice applies especially to systems programming, and less so to CRUD type apps, or even any in higher level languages. On one hand, you can hardly do anything in 100 lines of C. It's "too low level." On the other hand, once a C codebase reaches critical mass with enough supporting logic and utility code, you can accomplish more in 100 lines of C than you can in any other language. There's something deceptively powerful about programming at such a low level. The primitives you reason about are extremely simple. But when combined with the rest of the codebase, and supporting libraries in higher level languages, suddenly you can leverage the primitive logic to incomparable levels. Redis is a great example of solid, fundamental low-level programming enabling high-level performance improvements.