Hacker News new | ask | show | jobs
by kamaal 4496 days ago
Big old code bases, have a lot of what I call as 'tribal knowledge' associated with them. People go out, and do experiments only to burn their hands. Over years, the old maintainers generally accumulate a lot of ideas and 'tribal knowledge' to know why 'pie in the sky' ideas won't work.

Nevertheless, people still try. A lot of them fail, a few succeed.

The vim code base is around 300K lines of C code. I'm sure its nothing like Java where 90% of the code is get/set methods, high level delegating classes and exception handling code. 300K lines of code which does the actual work is simply too much code. And one should exercise great caution while dealing with it. Regression is just one thing, I'm sure there are a lot of places in the code which can silently break things you can't detect only to pop up in some strange case in the wild.

3 comments

I can't speak for vim, but the following smacks of code that needs a refactor:

300K lines of code which does the actual work is simply too much code. And one should exercise great caution while dealing with it. Regression is just one thing, I'm sure there are a lot of places in the code which can silently break things you can't detect only to pop up in some strange case in the wild.

The coding style is archaic in every way possible. Most things seem to be coded "in-line" instead of being compartmentalized. This coding style shouldn't be used past a few thousand lines of code, no wonder it is hard to improve upon it.

In a way, it's like a direct application of the style in /The C Programming Language/.

The vim code base is around 300K lines of C code.

I found this hard to believe, so I ran it through cloc:

  ----------------------------------------------------
  Language      files      blank    comment       code
  ----------------------------------------------------
  C               113      33366      61819     285817
  vim script     1186      22871      32599     145700
  C/C++ Header     63       3175       4626      19735
Slightly more than 300k, but still mightily impressive.