<p>I think we should convert all source files that we change to kotlin <em>and</em> write new source files in kotlin.</p>
<p>This may seem a bit far fetched but:</p>
<ul>
<li>I have done this on several projects already and it was always a very smooth transition</li>
<li>kotlin code is easy to read for java programmers.</li>
<li>idea can automatically convert java files to kotlin, without changing the semantics or api.</li>
<li>kotlin can be uses as just a "better java" while we transition, and we can refactor to more idiomatic kotlin if we desire</li>
<li>kotlin makes things like lombok obsolete, all kotlin objects automatically have getters and setters.</li>
<li>kotlin is from jetbrains so 1. it must be great and 2. it has great support in IDEA.</li>
<li>its basically java without boilerplate and with easier ways to write funtional code.</li>
<li>kotlin makes a lot of discussions from our style guide obsolete.</li>
</ul>
<p>for example in <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="329785694" data-permission-text="Issue title is private" data-url="https://github.com/bisq-network/style/issues/12" data-hovercard-type="issue" data-hovercard-url="/bisq-network/style/issues/12/hovercard" href="https://github.com/bisq-network/style/issues/12">bisq-network/style#12</a> instead of</p>
<pre><code>if (a) return X
else if (b) return Y
else return Z
</code></pre>
<p>you can just write<br>
<code>return if (a) X else if (b) Y else Z</code></p>
<p>or for <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="329781705" data-permission-text="Issue title is private" data-url="https://github.com/bisq-network/style/issues/11" data-hovercard-type="issue" data-hovercard-url="/bisq-network/style/issues/11/hovercard" href="https://github.com/bisq-network/style/issues/11">bisq-network/style#11</a> vals are automatically constant which makes the discussion about final or not for local variables obsolete</p>
<p>If people like this idea i would just change the gradle file to allow kotlin sources too, and then we can transition as fast or as slow as we want. My suggestion would be that anytime we do a significant change to a class we first convert it to kotlin via the convert to kotlin function. Also gui classes and classes that use lombok are primary candidates to be converted.</p>
<p>I think reading and writing kotlin is just more fun.</p>

<p style="font-size:small;-webkit-text-size-adjust:none;color:#666;">—<br />You are receiving this because you are subscribed to this thread.<br />Reply to this email directly, <a href="https://github.com/bisq-network/bisq/issues/3026?email_source=notifications&email_token=AJFFTNX6LKGZLKL6AY5EBC3QB3Q2DA5CNFSM4IHSA6FKYY3PNVWWK3TUL52HS4DFUVEXG43VMWVGG33NNVSW45C7NFSM4HCBEDTQ">view it on GitHub</a>, or <a href="https://github.com/notifications/unsubscribe-auth/AJFFTNUIGOQZW5EJ2W6EY3LQB3Q2DANCNFSM4IHSA6FA">mute the thread</a>.<img src="https://github.com/notifications/beacon/AJFFTNSBZYGRM222UMQXWBLQB3Q2DA5CNFSM4IHSA6FKYY3PNVWWK3TUL52HS4DFUVEXG43VMWVGG33NNVSW45C7NFSM4HCBEDTQ.gif" height="1" width="1" alt="" /></p>
<script type="application/ld+json">[
{
"@context": "http://schema.org",
"@type": "EmailMessage",
"potentialAction": {
"@type": "ViewAction",
"target": "https://github.com/bisq-network/bisq/issues/3026?email_source=notifications\u0026email_token=AJFFTNX6LKGZLKL6AY5EBC3QB3Q2DA5CNFSM4IHSA6FKYY3PNVWWK3TUL52HS4DFUVEXG43VMWVGG33NNVSW45C7NFSM4HCBEDTQ",
"url": "https://github.com/bisq-network/bisq/issues/3026?email_source=notifications\u0026email_token=AJFFTNX6LKGZLKL6AY5EBC3QB3Q2DA5CNFSM4IHSA6FKYY3PNVWWK3TUL52HS4DFUVEXG43VMWVGG33NNVSW45C7NFSM4HCBEDTQ",
"name": "View Issue"
},
"description": "View this Issue on GitHub",
"publisher": {
"@type": "Organization",
"name": "GitHub",
"url": "https://github.com"
}
}
]</script>