Would it be useful/welcome to port some of the Java concept exercises to Kotlin?
This wouldn’t be enough to help students learn all of Kotlin, but it would contribute a helpful resource for students early in their programming journey.
Would it be useful/welcome to port some of the Java concept exercises to Kotlin?
This wouldn’t be enough to help students learn all of Kotlin, but it would contribute a helpful resource for students early in their programming journey.
I’ll preface this by saying I’m not a Kotlin or Java maintainer (yet).
Sounds like you’re asking about making a Kotlin syllabus, for which we do have docs here but it’s worth noting that the recipe isn’t universal for every track, as not every language has the same concepts and features.
Kotlin and Java are pretty compatible, and Java does have a syllabus currently, so i’d say it’s a good place to start but there will also be concepts that are specific to Kotlin and you’d have to work out exercises for those. The main thing is deciding if you have the time and commitment for this, as it may end up being more extensive than you’d expect.
I applaud anyone who wants to contribute to a new learning syllabus. Exercism needs more of these (as I keep repeating, to the point of boring everybody rigid). Also, Kotlin seems to be a pretty important language these days, with excellent tooling (JetBrains) and Google pushing it for Android development.
It’s a lot of work, but porting the first few exercises/concepts from a related track should be manageable - these are (deliberately) pretty standard across tracks.
My instinct is to offer to help, by writing some concept docs. A couple of problems with that:
Also, I’ve seen the pace at which @keiraville works. Few 68 year-olds could keep up with that, and certainly not me!
OTOH, writing a syllabus is a really effective way to learn a language!
To encourage this, I drafted a few concept docs, roughly in about.md format, but named as {concept-slug}.md so I can put them all in the same directory. I’ll add more as I get the chance: if only for my own use (I was serious about this being a good way to learn a language).
There is also a (very!) rough initial draft of a learning syllabus.
Do whatever you like with these. If there’s a demand, I can clean them up, add more links and PR them. Alternatively, anyone is welcome to use them as a starting point, to be hacked around to fit a different syllabus plan.
I don’t mind writing docs, but I’m less keen to write all the exercises: too much distraction from my main priority of Julia. Fortunately, most Exercism maintainers probably have the opposite preference, so this could work.
Also, this needs a more experienced Kotlin user to be in charge of the overall design. I am literally a novice in this language!
It’s been nearly 3 months since my previous post, and I note that it sank without a ripple. Fair enough: @SleeplessByte appears to be the sole maintainer of the Kotlin track, and he has a lot of other responsibilities. Meanwhile, @keiraville (who started this thread) has done wonders with the new Futhark track, for which much gratitude (it’s a nice language).
I’ve continued drafting a few concept docs since then, as I predicted. None are PR-ready, but I have an expanded Basics doc, plus something for Conditionals, Ranges, When, Nullability, Strings, Chars, Numbers, Lists and Bits (so far).
Is there a path forward for this? That would mean finding someone who can review, criticize and improve submissions, which takes time and effort! I can’t imagine that @SleeplessByte is going to be able to do this, even if willing in principle (though I’d be very happy to be wrong).
A pity! However, the real work doesn’t need a maintainer: it could be someone who knows and cares about Kotlin, and can help me get PRs to a point where they are quick and easy for the maintainer to approve.
I’ll probably keep creating preliminary drafts, but I won’t attempt cleanup and submission unless there is some demand.
Though less of a novice now than I was 3 months ago…
Yah can you ping me on the individual prs? I’ll make some time!
Let’s do it!!
Wow!!
Thank you for that. I’ll start trickling them in slowly.
With your agreement, I’ll also create an issue on GH, with some ideas about exercises that could be ported from other tracks (just supposing anyone was interested in helping with this…).
There’s a Mermaid diagram which I use to try and keep on track. Though I don’t believe a final syllabus released to students will look much like this! From past experience, the prereqs are driven more by the exercise than by the concept.
Yah go for it.
And please ask whatever questions you want to know. It’s easiest for me if I see “okay this vs that” or “should this be here or later in the track” instead of “your thoughts?”
Oh instant point of feedback: I like the proposed track thusfar. I also would love it if we could include let / it / etc. because it doesn’t exist as a language construct in most languages.
I do think “bracket less” (“one” liners, different syntax) functions are important to include, as well as data classes and extension functions.
Totally agree! I just hadn’t got that far yet…
Kotlin is a big language, because of the way it tries to be OO, functional and imperative all at once. I’m still trying to get the balance right in how we present all this.
I guess I just have gotten so much aversion for Java over the years that I love Kotlin so much XD…
(The JS track also has quite a few concept exercises that may be interesting to port)
I’m not traditionally a JVM fan (like many scientists…), but the more I learn about Kotlin the more I like it.
I can’t find the video, but I seem to remember Erik commenting that the designers showed “very good taste”. Good summary.
Hah yes. Totally.
What I like a lot is that the designers / creators, just like Ruby’s Matz have strong opinions on how they feel the language should work and be used. We don’t need to agree, but you can clearly see and feel the decisions!

This is why you absolutely want to zealously tag / mention me, otherwise there is a good chance I’ll miss it
. And yeah, this is not just Exercism.
Just a small PR to fix basics/about.md (the merged version was a very incomplete draft).
Yes, this is why I’ve been trying to get more eyeballs on these submissions!
I’m in awe of your ability to do 100 things at once, but I don’t want to be the 101st challenge that tips you over the edge.
Bringing this thread back to the original title (sorry, I let it drift a bit):
I made a table (incomplete draft, of course!) with plausible exercises to port, and which tracks implement them.
I had this one nearly PR-ready. Future concepts may be slower…
@colinleach Would you like help with building out the syllabus?
I happen to be starting to learn Kotlin and would be happy to help with building the writing the concepts or porting the exercises. Would need decide where to start (maybe nullability?)
That would be fantastic!
I don’t know what you are particularly keen to do. I’ve only made a start on the concepts, with various working drafts that I need to get PR-ready over the next week or two. That includes nullability.
I try to keep track of where I’m going on a flowchart. Conditionals was merged yesterday, and all the ones with red borders have wip drafts.
If you really wanted to work on concepts, the group underneath Lists is probably next to start on: Sets, Maps, Arrays, Pairs & Triples, Randomness.
I’ve done nothing about creating exercises yet, and it would be really valuable if someone wanted to tackle those. Though it’s still very rough and preliminary, I started listing some possible exercises to port from other tracks. I still need to mark on this which concepts are wip, but all exercises are just vague ideas at this stage (except the 2 very old ones at the top of the table).
This thread started as a suggestion to port from Java, which still makes sense. @SleeplessByte is also keen on learning from JS exercises (he wrote them!). The JS syllabus also gives clues to his style and preferences.
It would be great to get some momentum going on this syllabus. Far too many attempts fizzle out after a couple of PRs, and I’m keen to push through that risk. Even if things are slightly rough at the first attempt, it’s a lot easier to fix problems once there is the spine of a syllabus in place. With 10 or more merged exercises, we can start to see things in a proper context. Good for all the inevitable arguments about prereqs and sequencing…