@@ -9,8 +9,6 @@ ship = "~wicdev-wisryt"
99image = "https://media.urbit.org/site/posts/essays/discuss-01.jpg"
1010+++
1111
12−<br>
13−
1412
1513
1614The 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:
3634- F: Real Software. Not all software matters. Any software which
3735 wouldn't exist on Mars isn't real.
3836
39−<br>
40−
4137
4238
4339### A: General Design
@@ -355,8 +351,6 @@ An example of the second is "security through obscurity is ineffective". Securit
355351
356352However, 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".
357353
358−<br>
359−
360354
361355
362356## B: Specific Design
@@ -415,8 +409,6 @@ Memory access restrictions are blunt tools. Blunt tools are nice in simple syste
415409
416410Better 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.
417411
418−<br>
419−
420412
421413
422414### C: Attitude
@@ -468,8 +460,6 @@ of your own mind.
468460This 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?
469461Consider 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.
470462
471−<br>
472−
473463
474464
475465### D: Theory
@@ -513,8 +503,6 @@ However, that explanatory power is indeed powerful, and the exploratory suggesti
513503
514504
515505
516−<br>
517−
518506### E: Text Style
519507
520508Code 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
615603
616604So 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.
617605
618−<br>
619−
620606
621607
622608### F: Real Software