Vivek Haldar
blog.vivekhaldar.com · Personal blog · on HN since 2011
Vivek Haldar writes about programming, code quality, Unix, Emacs, and working as a software engineer over a long career.
What HN saysHN commenters cite his post that code size predicts code quality, argue over that metric, and also discuss his Emacs and command line pieces.
40HN people shared it
9linked it in comments
210stories submitted
2.4Kstory points
3 years agolast shared
2011people per year2026
Most-shared posts
- 1Size is the best predictor of code quality (2011)6 people · 457 points · first shared 2011 · 188 comments on HN
- 2The Levels of Emacs Proficiency6 people · 17 points · first shared 2011 · 1 comments on HN
- 3The Cognitive Style of Unix5 people · 23 points · first shared 2011 · 1 comments on HN
- 4GUI vs CLI: Operation vs Expression3 people · 134 points · first shared 2011 · 82 comments on HN
- 5How Unix Won3 people · 11 points · first shared 2020 · 1 comments on HN
- 6Tldr summary: deliberate practice for expert performance2 people · 84 points · first shared 2011 · 13 comments on HN
- 7Why you would want to program at fifty (or any other age)2 people · 46 points · first shared 2012 · 31 comments on HN
- 8T-shirts are currency2 people · 44 points · first shared 2012 · 46 comments on HN
- 9The programming assembly-line2 people · 16 points · first shared 2011 · 1 comments on HN
- 10The 0.1x developer2 people · 7 points · first shared 2011 · discussion on HN
- 11Why technologists want to secede2 people · 6 points · first shared 2014 · discussion on HN
- 12How to debate2 people · 4 points · first shared 2012 · discussion on HN
- 13The Automatic Corporation2 people · 4 points · first shared 2014 · discussion on HN
- 14New frontiers in text editing2 people · 4 points · first shared 2012 · 3 comments on HN
- 15The Shy Scientist: Why most best-selling pop-sci is written by non-tech authors2 people · 4 points · first shared 2011 · discussion on HN
What HN people wrote when they linked it
beefman · 2016-11-23
I agree. Thanks for the links.
In the case of TodoMVC I count 186 SLOC for Riot, 192 for Vue, 235 for jQuery, 346 for Polymer, and 451 for React (all of which implement routing).
GitHub SLOC is a bit flawed but it's a good first-pass estimate of code complexity.[1]
This analysis is almost a year old but I don't think any of the implementations have changed. Which is concerning, actually.
[1] http://blog.vivekhaldar.com/post/10669678292/size-is-the-best-predicto…
sytse · 2016-09-30
GitLab is 30k+ lines of Ruby code http://gitlab-org.gitlab.io/gitlab-ce/coverage-ruby/#_AllFiles
We're not missing static typing as far as I know. We still are able to ship a lot of changes every month. I'm not sure if it is our structure (idiomatic Rails), test coverage (over 85%), something else, or maybe we should miss it but don't realize it.
One disadvantage is that static typing causes more lines of code than dynamic code. And code size is the best predictor of code quality http://blog.vivekhaldar.com/post/10669678292/size-is-the-best-predicto…
npsimons · 2014-07-24
I was half expecting you to realize that you answered your own question before you asked it (why do you implore novices to try out the command-line?). But what the hey, I'll throw out some links that go better into why Emacs is still a very viable contender for your editor of choice.
Steve Yegge wrote a classic programming read "Tour De Babel"[1], which has a bit on Emacs under the Lisp section. He also wrote "Effective Emacs"[2], which just the intro tries to explain why you should use Emacs. Lastly, there's Vivek Halder's "Levels of Emacs Proficiency"[3] which will either amuse/awe you or scare you.
[1] - https://sites.google.com/site/steveyegge2/tour-de-babel
[2] - https://sites.google.com/site/steveyegge2/effective-emacs
[3] - http://blog.vivekhaldar.com/post/3996068979/the-levels-of-emacs-profic…
joeyespo · 2012-09-19
What's interesting and somewhat related are the studies done where, all things being equal, code size is the best predictor of code quality [1]. I think as far as justifications go, this research gives us a compelling reason to continue down the path of minimalization and simplicity, even when we have the capacity to store and execute very large programs.
[1]: http://blog.vivekhaldar.com/post/10669678292/size-is-the-best-predicto…
gruseom · 2013-08-17
Without going into too much detail
Please do go into detail. What is some of this "quite a lot" of knowledge that sheds light on the questions at hand? It would be great to have new references.
"code size" is an awful metric
This has come up on HN before and the evidence does not support what you're saying. The gold standard in recent work [1] found that more complicated metrics have no value beyond simple program length: "After controlling for size none of the metrics we studied were associated with fault-proneness anymore."
it's about as verifiable and confirmed as cyclomatic complexity is
Do you mean they're both awful? Actually, if what you say is literally true, it follows by Occam that cyclomatic measurements are worthless, since they are far more complicated and no more valuable than the most trivial metric there is.
The studies may be weak and often old, but at least there is a body of evidence around this, and the body of evidence points reasonably consistently to the conclusion that code size is (a) the best measurement of complexity that we have, and (b) the best predictor of error rates. (The only other one I know of that has repeatedly been verified is code inspections, and that's a process not a metric.) Contradictory evidence is welcome.
It's true that there's a debate around how best to measure code size. But that's a separate question. That also has received some pretty high-quality discussion on HN in the past--see the link below. It changed my…
gandalfgeek · 2019-08-24
Not just code bases, but it is useful to think of large planet scale systems in organic terms.
https://blog.vivekhaldar.com/post/6972614229/large-computer-systems-ar…
PuercoPop · 2014-10-31
This -> people make social rather than technical decisions
Leo Meyerovich did a study on the social factors that affect language adoption[0]. Vivek Haldar has a highlights the salient points[1]. More info at his site: [2]
[0]: http://lmeyerov.github.io/projects/socioplt/papers/oopsla2013.pdf
[1]: http://blog.vivekhaldar.com/post/56972066006/empirical-analysis-of-pro…
[2]: http://lmeyerov.github.io/
jonmc12 · 2013-07-29
“Business destroys creativity, self-knowledge, emotional well-being, your ability to be social,” - does not seem to reconcile the partition of mental activity presented in "The Role of deliberate practice in the acquisition of expert performance" (summary: http://blog.vivekhaldar.com/post/3881908748/tldr-summary-the-role-of-d… - notably, "The importance of rest" has its own section.
Productivity tools are not destructive, they are just useful in context and inefficient when mis-applied - just like any other tool.
akkartik · 2011-09-22
A week ago I would react differently to this article. But I just had my belief system overhauled by reading http://blog.vivekhaldar.com/post/10126017769/smeeds-law-for-programmin…