Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Isolating failures to small, restartable components, instead of letting them spread to the entire system, is a bug in your eyes?! Do you think rust-analyzer wouldn't ever crash if it were loaded and tightly integrated into the address space of VS Code?

Completely bug-free software is a desirable, but utopian goal. What do you think why processes with separate address spaces were invented? Would you rather go back to the Windows 3.1x days where a bug in a single program could bring down your entire system? Do you believe those programs were "easier to make robust because the errors [were] visible to developers"?

> "If you are driving on the highway and some component dies midway, you just open the cover and press a button on the broken component and it restarts itself! Isn't that much better than waiting two weeks for some repairman to repair it?"

Yes, that would be much, much better than waiting for two weeks while being stranded in the middle of nowhere.



> Isolating failures to small, restartable components, instead of letting them spread to the entire system, is a bug in your eyes?! Do you think rust-analyzer wouldn't ever crash if it were loaded and tightly integrated into the address space of VS Code?

How far would you extrapolate this? Where would you draw the line?

Would you say VS Code would be more resiliant and reliable if it had more isoldated processes for different parts of the editor?

- Process to blink the cursor

- Process to render the text

- Process to run syntax highlighting on the text

- Process to show the buttons on the left most side bar

- Process to draw the file/directory tree

I think it would be obvious that this would be insane.

Yet, why should it be? Wouldn't it be better - according to this way of thinking - because it means the editor will not crash if the cursor blinking code crashed! or if the file tree viewer crashed!


> How far would you extrapolate this? Where would you draw the line?

To where it makes sense from an engineering perspective. Yes, that's what makes good engineering: selecting a pragmatic point between two extremes.

> Yet, why should it be? Wouldn't it be better - according to this way of thinking - because it means the editor will not crash if the cursor blinking code crashed! or if the file tree viewer crashed!

Your argument is absurd. You're trying to counter my point by making up an extreme version of what I said and then refuting this imaginary point. This kind of logical fallacy is called "straw manning" [1]. This is how it works:

"According to your line of thinking, wouldn't it be better if every program shared the same address space, even in general purpose computing? Maybe even with the kernel? Then every programmer would be really* invested in avoiding bugs. I think it would be obvious that this would be insane. Therefore, you're wrong and I'm right."*

Can you see now why that kind of argument is a fallacy?

[1] https://en.wikipedia.org/wiki/Straw_man


> To where it makes sense from an engineering perspective. Yes, that's what makes good engineering: selecting a pragmatic point between two extremes.

You didn't answer the question though.

That is just assumed within my question.

The question is where do you draw the line.

Why is it ok for the autocomplete to be a separate program (and somehow that's good because the autocomplete can crash without crashing the editor)? Why is it not ok for the syntax highlighter to be a separate process? or the file viewer?

> You're trying to counter my point by making up an extreme version of what I said and then refuting this imaginary point. This kind of logical fallacy is called "straw manning"

I'm taking your basic premise and showing you that if you extrapolate it to its natural conclusion you will end up with an absurd situation.

This is not a fallacy.

Although my general feeling is, when you start accusing people of being fallacious, it's difficult to continue the discussion in good faith.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: