Hacker News new | ask | show | jobs
by tomheon 4364 days ago
Good question, we did consider using #, the main benefit of which would have been that diffscuss files were still legal diffs.

Against that benefit was the consideration that there could have been comments that weren't diffscuss threads in a diff, and that would have meant that you could have legal diffs that would have terribly confused any diffscuss parsing.

Add to that the fact that you can get a legal diff back just by piping a diffscuss file through a single grep -v, and we decided not to use # (which I think was probably the right call--overloading comment syntax for functional stuff always creeps me out a bit anyway).

3 comments

I disagree with that decision, FWIW. I think overloading comments with a special syntax such as #%- for example is better than having incompatible formats.

Besides, code reviews essentially are comments.

IDK if it's too late to discuss this, but a third possibility could have been to use the second character or more of a # comment as a marker for diffscuss.

Something like: #%%%

You get standard diffs and parsability.

I like this idea. And how I see it this isn't really mixing comments and functional stuff, since the code reviews and replies are really just comments on the diff, which is the intended purpose of the # comment
But the diffscuss modes parse the comments into functional structures--threads--to decide where to insert replies, etc., which is in fact functional--just not functional for the diff part.

Here's another way to think about it:

It sounds exciting to think that "all legal diffscuss files are also legal diff files!" In fact, very few diffscuss files will be used as diff files, and those that are can be trivially transformed.

It's not awesome on the other hand if "not all legal diff files are legal diffscuss files," which is where piggybacking on the diff comment syntax gets you, because every diffscuss file starts its life as a pure diff file and there's no way to transform an offensive (but legal) diff file into a legal diffscuss file without data loss.

You still get comments which, while unlikely (because they would have to have the second "enabling" character) will confuse a diffscuss parser.

I still think allowing for a state of "perfectly legal diff that would have to be altered to allow for diffscuss parsing" is a tough sell...

Ok, after some chat on github and IRL, sold.

We'll make the change.

Wow! Good to see the openness and glad I could make a small difference.