Marc Knaup
05/30/2019, 3:06 PM*
btw?
Could be something more comprehensible like this š¤
ByteString.of(vararg buffer.toByteArray())
snowe
05/30/2019, 3:14 PMvararg
is a declaration site operator, whereas *
is a use site operator.Marc Knaup
05/30/2019, 3:16 PM&
, |
and ^
operators? šsnowe
05/30/2019, 3:18 PM.
to make method calls. why not have everything be lisp. fewer operators means less confusion right?Marc Knaup
05/30/2019, 3:18 PMsnowe
05/30/2019, 3:19 PMMarc Knaup
05/30/2019, 3:20 PM*
is rare.
Using them is even rarer.snowe
05/30/2019, 3:21 PMHaving a spread operator likeis rare.*
Using them is even rarer.I don't know why you think this.
Kotlin is supposed to be easy for everyone, not just people coming from other languages.that's a good point, but I don't see how
vararg
helps that.Marc Knaup
05/30/2019, 3:23 PMsnowe
05/30/2019, 3:24 PMJonathan Mew
05/30/2019, 3:25 PMMarc Knaup
05/30/2019, 3:26 PMsnowe
05/30/2019, 3:26 PMMarc Knaup
05/30/2019, 3:29 PMbuild.gradle
files where you rarely need anything except the basics.Jonathan Mew
05/30/2019, 3:29 PMMarc Knaup
05/30/2019, 3:30 PMDico
05/30/2019, 3:31 PMsnowe
05/30/2019, 3:31 PMGradle being the only case for Groovy is not a lot and most code isI feel like you haven't used gradle in an enterprise setting. I've written several thousand lines of groovy/kotlin just to support our release pipeline for our microservices. These are plugins that are used in the build.gradle files.files where you rarely need anything except the basics.build.gradle
Dico
05/30/2019, 3:32 PMMarc Knaup
05/30/2019, 3:35 PMsnowe
05/30/2019, 3:35 PMMarc Knaup
05/30/2019, 3:36 PMsnowe
05/30/2019, 3:36 PMdon't believe that it's a significant portion of developers who come in touch with Groovy's spread operator.but combined over hundreds of languages (there are over 700 languages currently existing today), the spread operator is very common and immediately recognizable to a significant majority of those people.
ghedeon
05/30/2019, 3:41 PM*
is fine, people are used to it. Alas, Dart decided to follow JavaScript syntax `...`:
https://github.com/dart-lang/language/issues/47#issuecomment-462326152Marc Knaup
05/30/2019, 3:41 PMthe spread operator is very common and immediately recognizable to a significant majority of those people.700 languages don't really matter. Only about 25 of them have > 1% usage. What should matters is the percentage of developers actually using the spread operator.
Dico
05/30/2019, 3:42 PMMarc Knaup
05/30/2019, 3:43 PMDico
05/30/2019, 3:43 PMghedeon
05/30/2019, 3:44 PMMarc Knaup
05/30/2019, 3:44 PMDico
05/30/2019, 3:45 PMMarc Knaup
05/30/2019, 3:45 PMDico
05/30/2019, 3:45 PMMarc Knaup
05/30/2019, 3:45 PMI'm afraid that ship has sailed@ghedeon why? It's a very easy code migration (a feature which Kotlin already offers), is binary compatible and can be changed over time with deprecation.
Dico
05/30/2019, 3:46 PMsnowe
05/30/2019, 3:46 PM*
operator doesn't make it any harder than any other part of the language to use.Marc Knaup
05/30/2019, 3:47 PMsnowe
05/30/2019, 3:47 PM%
operator. why isn't is modulo
as a keyword?ghedeon
05/30/2019, 3:47 PM...
.Marc Knaup
05/30/2019, 3:48 PM1.rem(2)
snowe
05/30/2019, 3:48 PM!!
when you could instead have the keyword not
or just use if (blah == null) throw Exception
Marc Knaup
05/30/2019, 3:52 PMDico
05/30/2019, 4:16 PMMarc Knaup
05/30/2019, 4:22 PMstreetsofboston
05/30/2019, 4:56 PMMarc Knaup
05/30/2019, 5:04 PMnulldev
05/30/2019, 5:19 PMpython
, not something like python2
). I literally have to read through the source code or run the program to figure out. I've come across tons of gists that don't say the python version and this is definitely a huge problem even today. The same with Swift.
It's super painful. The effects of a breaking language change are felt for a long time past the upgrade itself.Paulius Ruminas
05/30/2019, 6:02 PMCould be something more comprehensible like thisNobody will introduce a new feature yet alone a breaking change based on opinions with no good reasoning behind it.