

This ‘Philosophy’ of ‘extending’ and ‘removing warts’ from JDK is for me is Kotlin’s number 1 ‘feature’. So as programmers on the JVM we don’t ultimately end up with 2 large SDK’s to deal with and translate between (which as I see it is what other languages are trying to push - their own rather large SDK to replace JDK). So for example in my ideal world ‘Kotlin’ streams is based on JDK8 and just ‘extends/removes warts’ as necessary with a light touch … and then on JDK6 Kotlin ‘backfills’.

I'm currently not that fussed on the Javascript side so I do have that JVM bias.Īs a philosophical question (and I realise we have to be pragmatic) in my ideal world when we are on the JVM don’t have 2 large overlapping SDK’s (2 collections sdk, 2 streams sdk) but are instead ‘extending’ and ‘removing warts’ from JDK. In my naive world Kotlin SDK would be based on JDK8 and 'backporting / gap filling' to run on JDK6.
