FreeCol / freecol

FreeCol: FreeCol is a turn-based strategy game based on the old game Colonization, and similar to Civilization. The objective of the game is to create an independent nation.
GNU General Public License v2.0
581 stars 170 forks source link

kotlin #114

Closed zeitlinger closed 2 years ago

zeitlinger commented 2 years ago

What do you think about allowing kotlin as a second language - and gradually move to write new code in Kotlin only?

mpope042 commented 2 years ago

Right now at least, any second language would take:

A high bar, I acknowledge.

Calebrw commented 2 years ago

What do you think about allowing kotlin as a second language - and gradually move to write new code in Kotlin only?

What practical benefit would adding Kotlin bring to FreeCol? Especially with no 1.0.0 release occurring.

I would say modernizing the code base with newer versions of Java could improve things.

zeitlinger commented 2 years ago

What do you think about allowing kotlin as a second language - and gradually move to write new code in Kotlin only?

What practical benefit would adding Kotlin bring to FreeCol? Especially with no 1.0.0 release occurring.

I would say modernizing the code base with newer versions of Java could improve things.

Kotlin has many advantages in daily programming - nullability and immutability are only a few (the new java releases are not keeping up, but that's subjective of course). There's no need to create a new release - Kotlin would make it more enjoyable for me to contribute - that's primarily the motivation :smile:

Calebrw commented 2 years ago

There's no need to create a new release - Kotlin would make it more enjoyable for me to contribute - that's primarily the motivation 😄

I can certainly understand that.

As Mike said, adding a different coding language has to fit into the existing project. How do propose to do so?

zeitlinger commented 2 years ago

As Mike said, adding a different coding language has to fit into the existing project. How do propose to do so?

I've seen many teams execute a gradual migration successfully, where classes that are being worked on are migrated.

All of the core maintainers have to be comfortable with this decision, because you need to spend some time to learn Kotlin (even if it's similar to Java).

I'm currently working on one of the reports, so I'd migrate that report and adapt the build process - that's what I could do.

mpope042 commented 2 years ago

so I'd migrate that report and adapt the build process - that's what I could do.

That does not meet my criteria above. The priority for FreeCol ATM is adding the missing features we need for FreeCol 1.0. Just moving small parts of FreeCol to another language is an unwanted distraction right now.

zeitlinger commented 2 years ago

OK, fair enough - will reconsider when 1.0 is done.