3 ms·
Crazy project. Personally I find that it's an interesting indicator of the capability of the programming languages. Moving from language A to B can be extremel
by valenterry 2y ago
Crazy project.
Personally I find that it's an interesting indicator of the capability of the programming languages. Moving from language A to B can be extremely easy if B is as powerful or more powerful in terms of expressiveness than A. It can be an absolute horror if it is less powerful.
Being not null-safe in fact brings additional expressiveness. I guess most would argue that it's not a good type expressiveness. Nonetheless it is a type of expressiveness that can cause trouble during such a transition.
In general it feels like Java is making faster progress than Kotlin nowadays. I wonder where Kotlin would be if it weren't for Android. I hope those folks don't have to migrate back before they even finished.
- 0cf8612b2e1e 2y agoWithout Android, Kotlin would just be Cool Alternative Language #4721. Java has been a safe, non-controversial pick for decades. Who is going to endorse writing their hot new project in it just because some IDE uses it? When Google says they support a technology going forward, that gives the project some cache it otherwise never would have received.
- wiseowise 2y agoNot even support, now they’ve completely migrated all Android libraries to be Kotlin-first/Java-never.
- botanical76 2y agoIt's not like you can't decorate all variable access with !! to retain this expressiveness. This is not done in practice because it would be a waste of verifiable type safety. You can always `lateinit val` in cases where the initialization and lifetime of a particular value is trivial, but in cases where you can't do this, you probably benefit from the null safety guarantees.
- valenterry 2y ago> This is not done in practice because it would be a waste of verifiable type safety. Why not? The current application is working, so I'd start with that and then gradually move away from it. But it seems they chose to go the opposite way.