@@ -9,8 +9,6 @@ ship = "~wicdev-wisryt"
9image = "https://media.urbit.org/site/posts/essays/discuss-01.jpg"
9image = "https://media.urbit.org/site/posts/essays/discuss-01.jpg"
14
12
16The precepts aren’t arguments. We will discuss and justify them here. We don't expect to convince you this is exactly the right set of precepts, but we hope to convince you that this is a coherent set of precepts that might lead to something very interesting.
14The precepts aren’t arguments. We will discuss and justify them here. We don't expect to convince you this is exactly the right set of precepts, but we hope to convince you that this is a coherent set of precepts that might lead to something very interesting.
@@ -36,8 +34,6 @@ We will address these in the same categories presented above:
36- F: Real Software. Not all software matters. Any software which
34- F: Real Software. Not all software matters. Any software which
37 wouldn't exist on Mars isn't real.
35 wouldn't exist on Mars isn't real.
41
37
43### A: General Design
39### A: General Design
@@ -355,8 +351,6 @@ An example of the second is "security through obscurity is ineffective". Securit
356However, it's important for whoever's coming up with the cliches to understand the specifics of how they're untruthful. Some of these very precepts may fall under the category of "literally untrue but more useful than the truth".
352However, it's important for whoever's coming up with the cliches to understand the specifics of how they're untruthful. Some of these very precepts may fall under the category of "literally untrue but more useful than the truth".
360
354
362## B: Specific Design
356## B: Specific Design
@@ -415,8 +409,6 @@ Memory access restrictions are blunt tools. Blunt tools are nice in simple syste
416Better to define rules in a more powerful language. This allows you to follow A6 and A8. It also lets you use all the correctness tools, like type systems, that you've developed for the rest of your code.
410Better to define rules in a more powerful language. This allows you to follow A6 and A8. It also lets you use all the correctness tools, like type systems, that you've developed for the rest of your code.
420
412
422### C: Attitude
414### C: Attitude
@@ -468,8 +460,6 @@ of your own mind.
468This is also one of the best ways to build stuff correctly. Very often, you will be tempted to cut a corner, and someone will point out that it should be done correctly. You should consider why you immediately rejected it. Was it because you were afraid of the relevant piece of code? If so, you should learn more about that code to determine if it's actually a good idea. Did you reject it because you felt it would distract you from working on what you thought was more important?
460This is also one of the best ways to build stuff correctly. Very often, you will be tempted to cut a corner, and someone will point out that it should be done correctly. You should consider why you immediately rejected it. Was it because you were afraid of the relevant piece of code? If so, you should learn more about that code to determine if it's actually a good idea. Did you reject it because you felt it would distract you from working on what you thought was more important?
469Consider carefully whether this particular piece of technical debt is worth taking on. It's worth 60 seconds of thinking about how you could solve it correctly right now — often it would be quite easy to do correctly and you'd be paying interest on the incorrectness for a long time.
461Consider carefully whether this particular piece of technical debt is worth taking on. It's worth 60 seconds of thinking about how you could solve it correctly right now — often it would be quite easy to do correctly and you'd be paying interest on the incorrectness for a long time.
473
463
475### D: Theory
465### D: Theory
@@ -513,8 +503,6 @@ However, that explanatory power is indeed powerful, and the exploratory suggesti
514
504
518### E: Text Style
506### E: Text Style
520Code form matters. Code that is hard to read is hard to maintain. Code that is inconsistently formatted is hard to read, but consistency isn't the end of the story. Some formats are simply hard to read.
508Code form matters. Code that is hard to read is hard to maintain. Code that is inconsistently formatted is hard to read, but consistency isn't the end of the story. Some formats are simply hard to read.
@@ -615,8 +603,6 @@ We're really good at memorizing sets of things, like runes. We're also good at i
616So don't be afraid to use new names for new concepts. If concepts are siblings, they needn't necessarily have a direct connection in their name, but if they're hierarchical, then something should suggest that. This can be syntactic or semantic.
604So don't be afraid to use new names for new concepts. If concepts are siblings, they needn't necessarily have a direct connection in their name, but if they're hierarchical, then something should suggest that. This can be syntactic or semantic.
620
606
622### F: Real Software
608### F: Real Software