<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body>
<div dir="auto"><span style="color: rgb(0, 0, 0); font-family: Calibri, Helvetica, sans-serif; font-size: 12pt;">Dear developers,</span><br>
</div>
<div id="mail-editor-reference-message-container" dir="auto">
<div class="elementToProof ContentPasted0 ContentPasted1" style="font-size:12pt; color:rgb(0,0,0)">
<font face="Calibri, Helvetica, sans-serif"><br>
</font></div>
<div class="elementToProof ContentPasted0 ContentPasted1" style="font-size:12pt; color:rgb(0,0,0)">
<font face="Calibri, Helvetica, sans-serif">I'm a graduate student doing software engineering research.</font></div>
<div class="elementToProof ContentPasted0 ContentPasted1" style="font-size:12pt; color:rgb(0,0,0)">
<span style="font-family:Calibri,Helvetica,sans-serif">Recently, I came across some interesting facts about Java
</span><code style="font-size:inherit; font-style:inherit; font-variant-ligatures:inherit; font-variant-caps:inherit; font-weight:inherit">assert</code><span style="font-family:Calibri,Helvetica,sans-serif"></span></div>
<div class="elementToProof ContentPasted0 ContentPasted1" style="font-size:12pt; color:rgb(0,0,0)">
<span style="font-family:Calibri,Helvetica,sans-serif">statements </span><span style="font-family:Calibri,Helvetica,sans-serif">and have a few questions to ask.</span></div>
<div class="elementToProof ContentPasted0 ContentPasted1" style="font-size:12pt; color:rgb(0,0,0)">
<div class="ContentPasted1" style="font-family:Calibri,Arial,Helvetica,sans-serif">
<span style="font-family:Calibri,Helvetica,sans-serif"><br>
</span></div>
<div class="ContentPasted1" style="font-family:Calibri,Arial,Helvetica,sans-serif">
<span style="font-family:Calibri,Helvetica,sans-serif">Although the <code>assert</code> keyword has been around for a long time and</span></div>
<div class="ContentPasted1" style="font-family:Calibri,Arial,Helvetica,sans-serif">
<span style="font-family:Calibri,Helvetica,sans-serif">is handy </span><span style="font-family:Calibri,Helvetica,sans-serif">for invariant checks, it does not seem to be widely used.</span></div>
<div class="ContentPasted1" style="font-family:Calibri,Arial,Helvetica,sans-serif">
<span style="font-family:Calibri,Helvetica,sans-serif">For example, in the famous
<code>j.u.c</code> packages, nearly all <code>assert</code></span></div>
<div class="ContentPasted1" style="font-family:Calibri,Arial,Helvetica,sans-serif">
<span style="font-family:Calibri,Helvetica,sans-serif">statements are commented out [1].</span><br>
</div>
<div class="ContentPasted1" style="font-family:Calibri,Arial,Helvetica,sans-serif">
<br>
</div>
<div class="ContentPasted1" style="font-family:Calibri,Arial,Helvetica,sans-serif">
<span style="font-family:Calibri,Helvetica,sans-serif">My questions are, should <code>
assert</code> be heavily used in Java programs,</span></div>
<div class="ContentPasted1" style="font-family:Calibri,Arial,Helvetica,sans-serif">
<span style="font-family:Calibri,Helvetica,sans-serif">especially in production code? And should we enable them in the</span></div>
<div class="ContentPasted1" style="font-family:Calibri,Arial,Helvetica,sans-serif">
<span style="font-family:Calibri,Helvetica,sans-serif">production code?</span></div>
<div class="ContentPasted1" style="font-family:Calibri,Arial,Helvetica,sans-serif">
<span style="font-family:Calibri,Helvetica,sans-serif"><br>
</span></div>
<div class="ContentPasted1" style="font-family:Calibri,Arial,Helvetica,sans-serif">
<span style="font-family:Calibri,Helvetica,sans-serif">By the way, I have read a useful article about using assertions in</span></div>
<div class="ContentPasted1" style="font-family:Calibri,Arial,Helvetica,sans-serif">
<span style="font-family:Calibri,Helvetica,sans-serif">Java [2], but it does not provide clear answers to my questions above.</span><br>
</div>
<div class="ContentPasted1" style="font-family:Calibri,Arial,Helvetica,sans-serif">
<span style="font-family:Calibri,Helvetica,sans-serif"><br>
</span></div>
<div class="ContentPasted1" style="font-family:Calibri,Arial,Helvetica,sans-serif">
<span style="font-family:Calibri,Helvetica,sans-serif">Thank you in advance!</span></div>
<div class="ContentPasted1" style="font-family:Calibri,Arial,Helvetica,sans-serif">
<br>
</div>
<div class="ContentPasted1 ContentPasted2" style="font-family:Calibri,Arial,Helvetica,sans-serif">
[1] https://github.com/search?q=repo%3Aopenjdk%2Fjdk+assert+path%3A%2F%5Esrc%5C%2Fjava.base%5C%2Fshare%5C%2Fclasses%5C%2Fjava%5C%2Futil%5C%2Fconcurrent%5C%2F%2F&type=code</div>
<div class="ContentPasted1" style="font-family:Calibri,Arial,Helvetica,sans-serif">
<span style="font-family:Calibri,Helvetica,sans-serif">[2] https://docs.oracle.com/javase/8/docs/technotes/guides/language/assert.html</span></div>
<div class="ContentPasted1" style="font-family:Calibri,Arial,Helvetica,sans-serif">
<span style="font-family:Calibri,Helvetica,sans-serif"><br>
</span></div>
<div class="ContentPasted1" style="font-family:Calibri,Arial,Helvetica,sans-serif">
<span style="font-family:Calibri,Helvetica,sans-serif">Regards,</span></div>
<span style="font-family:Calibri,Helvetica,sans-serif">Daohan Qu</span><br>
</div>
<br>
</div>
</body>
</html>