News for hackers. Stuff that matters.
Re:Kotlin becomes second most popular language on the JVM by dcolkitt on Thursday February 06, 2020 @01:56AM (#22254020)
Let me ask a question as someone with pretty minimal Java experience. If someone was starting a greenfield JVM project today, is there really any compelling reason not to choose Kotlin over Java?

Because the impression I get is that Kotlin is a strict improvement along every dimension. But as an outsider, I'm not sure if I"m just being blinded by hype.

Re:Kotlin becomes second most popular language on the JVM by cryptos on Thursday February 06, 2020 @11:13AM (#22257168)
Java gets better with every release and is a pretty decent language today. But Kotlin feels just more consistent with less corner cases. Let me name a few things:

    * No checked exceptions destroying lambda expressions and leading to architecture problems (since exceptions are oft not used like the inventors of checked exceptions assumed).
    * Functions are real first class citizens and don't need artificial interfaces.
    * Named parameters with default arguments are very practical.
    * `name: Type` is a better fit for type inference than `Type name`.
    * Null-safety helps to avoid lots of bugs.
    * The type system with `Any` as a unified root and `Unit` instead of the special case `void` makes programming with generics much easier.
    * Constructors are always lean, not only for data classes (record in Java 14).
    * Most things are expressions, so you can write `val a = if(cond) 1 else 99`.
    * Extension functions and operator functions can be used to write simple to use and elegant APIs.
So at least for me Kotlin is definitive the better Java and I wouldn't start a new project with Java, if I could use Kotlin instead.
Re:Kotlin becomes second most popular language on the JVM by Stratoscope on Thursday February 06, 2020 @11:28AM (#22257364)
Mobile-readable version of your list:

* No checked exceptions destroying lambda expressions and leading to architecture problems (since exceptions are oft not used like the inventors of checked exceptions assumed).

* Functions are real first class citizens and don't need artificial interfaces.

* Named parameters with default arguments are very practical.

* `name: Type` is a better fit for type inference than `Type name`.

* Null-safety helps to avoid lots of bugs.

* The type system with `Any` as a unified root and `Unit` instead of the special case `void` makes programming with generics much easier.

* Constructors are always lean, not only for data classes (record in Java 14).

* Most things are expressions, so you can write `val a = if(cond) 1 else 99`.

* Extension functions and operator functions can be used to write simple to use and elegant APIs.

Re:Kotlin becomes second most popular language on the JVM by pier25 on Thursday February 06, 2020 @02:33PM (#22259449)
Thanks. Even on desktop I get a horizontal scrollbar!
Re:Kotlin becomes second most popular language on the JVM by gavinray on Thursday February 06, 2020 @12:26PM (#22258059)
The real hero here
Re:Kotlin becomes second most popular language on the JVM by BossingAround on Thursday February 06, 2020 @02:07AM (#22254068)
There's also the question of long-term sustainability. Groovy was very cool and popular in 2010. Ten years later, Groovy is still in the production codebase while the language is essentially dead.

I personally wouldn't go for anything but Java (on JVM, that is) for anything that isn't a pet project.

Re:Kotlin becomes second most popular language on the JVM by fgonzag on Thursday February 06, 2020 @03:28AM (#22254445)
Kotlin is officially supported by Android which is huge, and the fact that IntelliJ dog foods their own product into their most important product also gives a degree of security about its future.

Another huge advantage Kotlin has over Scala is tooling, which is basically all thanks to an IDE company creating the language. Tooling will never fall behind because they are in the business of selling tools.

Re:Kotlin becomes second most popular language on the JVM by scarface74 on Thursday February 06, 2020 @09:17AM (#22256075)
Yes because Google is known for its long term commitment to initiatives.

As far as JetBrains, I am big fan, I have a license for R# that I gladly pay for, but JetBrains is just one company whose core set of products are rapidly being encroached upon by free alternatives.

Re:Kotlin becomes second most popular language on the JVM by blattimwind on Thursday February 06, 2020 @09:20AM (#22256100)
I see lots of shiny new free editors, but IDEs, especially with deep semantic models and refactorings, are a rare breed.
Re:Kotlin becomes second most popular language on the JVM by Scarbutt on Thursday February 06, 2020 @10:34AM (#22256742)
Outside of Java, jetbrains doesn't have much or anything to offer against vscode, hence the GP's comment.

Jetbrains is even lagging behind, look at vscode remote capabilities which is way ahead jetbrains remote features.

Re:Kotlin becomes second most popular language on the JVM by gbersac on Thursday February 06, 2020 @10:46AM (#22256851)
For scala, Jetbrain IDE is far better than VsCode + langage server protocol
Re:Kotlin becomes second most popular language on the JVM by pjmlp on Friday February 07, 2020 @03:16AM (#22264099)
For the time being...
Re:Kotlin becomes second most popular language on the JVM by pjmlp on Thursday February 06, 2020 @01:12PM (#22258520)
Eclipse, Netbeans, Visual Studio, QtCreator look quite nice to me.

Best of all, I can use Java in any Java IDE.

Re:Kotlin becomes second most popular language on the JVM by dajohnson89 on Thursday February 06, 2020 @01:40PM (#22258853)
having used the first three extensively , i’d say intellij is miles beyond them.
Re:Kotlin becomes second most popular language on the JVM by pjmlp on Thursday February 06, 2020 @04:49PM (#22260744)
Indeed it wins hands down making my laptop sound like an aeroplane getting ready for takeoff with its continuous indexing, while making generous use of the existing memory.

Needs additional configuration for what the others do out of the box, like Javadoc tooltips.

Requires ten finger shortcuts.

It is also the only Java IDE unable to do mixed language debugging, Java/C/C++.

Re:Kotlin becomes second most popular language on the JVM by int_19h on Thursday February 06, 2020 @11:05PM (#22263132)
> JetBrains is just one company whose core set of products are rapidly being encroached upon by free alternatives

This has been true for almost two decades now - Eclipse first shipped in 2001, and it competes directly against IntelliJ, which was JetBrains' main product at the time.

And yet, they're still around.

Re:Kotlin becomes second most popular language on the JVM by Nullabillity on Thursday February 06, 2020 @09:16AM (#22256063)
> Another huge advantage Kotlin has over Scala is tooling, which is basically all thanks to an IDE company creating the language. Tooling will never fall behind because they are in the business of selling tools.

Not sure I'd agree with this. Kotlin's ties to JetBrains means that you're basically hosed if you don't use IntelliJ. Scala's tooling works pretty much everywhere (LSP/Metals, ENSIME, IntelliJ, Eclipse/Scala-IDE).

Re:Kotlin becomes second most popular language on the JVM by The_Colonel on Thursday February 06, 2020 @09:54AM (#22256381)
> Scala's tooling works pretty much everywhere (LSP/Metals, ENSIME, IntelliJ, Eclipse/Scala-IDE).

Scala's tooling also pretty much sucks everywhere (interestingly the least sucking IDE for Scala is guess what ... Intellij!)

Re:Kotlin becomes second most popular language on the JVM by lmm on Thursday February 06, 2020 @07:58PM (#22262186)
In my experience IntelliJ is a bad Scala IDE. While it has lots of cool advanced features, none of them make up for not being able to compile the basic language accurately: what good is an IDE where I can't 100% rely on getting a red underline for invalid code and no red underlines for valid code?

The parts where IntelliJ has always fallen down on Scala seem to be precisely the parts that are missing from Kotlin. I can't help feeling that the JetBrains team just "doesn't get" higher-kinded types at all. Which is a shame, because there is a lot of good stuff in Kotlin otherwise.

Re:Kotlin becomes second most popular language on the JVM by pjmlp on Friday February 07, 2020 @03:17AM (#22264107)
And naturally now they have a vested interest that Kotlin experience just feels better than Scala anyway.
Re:Kotlin becomes second most popular language on the JVM by mbo on Thursday February 06, 2020 @07:15PM (#22261893)
It's improved in the last year or so. It's not perfect by any stretch of the imagination but I find that it's one of the better supported languages out there, second to of course Java/Kotlin/TypeScript/C#.
Re:Kotlin becomes second most popular language on the JVM by Nullabillity on Thursday February 06, 2020 @12:25PM (#22258050)
> Scala's tooling also pretty much sucks everywhere (interestingly the least sucking IDE for Scala is guess what ... Intellij!)

In your opinion.

Personally I almost get depressed when I have to switch from Emacs+Metals to Android Studio for Kotlin stuff.

Re:Kotlin becomes second most popular language on the JVM by giggles_giggles on Thursday February 06, 2020 @09:24AM (#22256131)
ENSIME was abandoned several years ago because the maintainer felt bullied[1] and LSP/Metals has a ways to go.

[1] https://medium.com/@fommil/hide-your-real-name-in-open-sourc...

Re:Kotlin becomes second most popular language on the JVM by paulddraper on Thursday February 06, 2020 @09:10AM (#22256018)
As long as nothing bad ever happens to JetBrains.

(You could say the same thing about Sun/Oracle...risks all around.)

Re:Kotlin becomes second most popular language on the JVM by cies on Thursday February 06, 2020 @04:01AM (#22254608)
> Dead

It's being maintained. A new version (3 iirc) is about to come out. But it's not a hot bed of innovation.

I think Kotlin now already has a lot more mindshare and corporate interest behind it than Groovy ever did.

Re:Kotlin becomes second most popular language on the JVM by pjmlp on Thursday February 06, 2020 @07:04AM (#22255401)
Groovy had first class support on Spring and Sun was doing talks at JSFDays on how it would become the JEE scripting language.

Those of us that are part of the Java world since the early days, have been through this multiple times.

Re:Kotlin becomes second most popular language on the JVM by imtringued on Thursday February 06, 2020 @10:09AM (#22256488)
Grails is 13 years at this point and still the only way to take advantage of the JEE Java ecosystem while also leaving your sanity intact. Since Grails 4 it is slowly moving away from Spring to Micronaut so the JEE ecosystem may die before Grails does.
Re:Kotlin becomes second most popular language on the JVM by pjmlp on Thursday February 06, 2020 @11:44AM (#22257550)
That is irrelevant for Java as platform and programming language, just libraries that come and go, Java stays.

Just like C on UNIX, JavaScript on the browser, ....

Re:Kotlin becomes second most popular language on the JVM by zmmmmm on Friday February 07, 2020 @05:20PM (#22271732)
> Those of us that are part of the Java world since the early days, have been through this multiple times.

The hype curve is definitely in the past, but Groovy is living on quite well as a small but viable option in the plateau of productivity. In some ways that is more important because while in the hype phase it is really hard to judge the true value of a technology. The true value emerges when the hype is over.

The problem is, there isn't really a better scripting option for the JVM. While in theory lots of JVM languages (JRuby, Jython ... etc) could fill that gap, they all have ugly impedance mismatches which Groovy doesn't, so companies continue to deploy it as a scripting and DSL implementation still. I tried to substitute Kotlin for a bit and went back to Groovy because Kotlin still lacks standard scripting constructs such map and list literals etc.

Re:Kotlin becomes second most popular language on the JVM by The_Colonel on Thursday February 06, 2020 @09:59AM (#22256412)
> Those of us that are part of the Java world since the early days, have been through this multiple times.

Right, history repeats itself all the time ... until it doesn't. 10 years ago is not now, Kotlin is not Groovy ...

Re:Kotlin becomes second most popular language on the JVM by pjmlp on Thursday February 06, 2020 @11:42AM (#22257525)
Indeed, Groovy did not had an OS to sell it alongside.
Re:Kotlin becomes second most popular language on the JVM by dajohnson89 on Thursday February 06, 2020 @01:42PM (#22258881)
don’t forget gradle and jenkins
Re:Kotlin becomes second most popular language on the JVM by BossingAround on Thursday February 06, 2020 @03:50PM (#22260140)
Gradle is moving to Kotlin. I would be surprised if Jenkins wouldn't follow to move away from Groovy.
Re:Kotlin becomes second most popular language on the JVM by msclrhd on Thursday February 06, 2020 @02:49AM (#22254273)
Note that with Kotlin, JetBrains created it initially for working on their IntelliJ IDE and are porting their Java codebase to use Kotlin. So that is a good indicator of long-term sustainability.
Re:Kotlin becomes second most popular language on the JVM by pjmlp on Thursday February 06, 2020 @03:11AM (#22254369)
Nowadays there are trying to just get Kotlin anywhere and it remains to be seen how Valhalla and Panama will be usable from Kotlin.
Re:Kotlin becomes second most popular language on the JVM by thu2111 on Thursday February 06, 2020 @03:48AM (#22254531)
Panama would not seem to pose any problems as it's all code generation with MethodHandles/VarHandles. That should be directly callable from Kotlin.

As for Valhalla, it remains to be seen how it's usable from Java, let alone anything else. But Kotlin already has a form of value type (inline classes) so perhaps it'll be an extension of that.

Re:Kotlin becomes second most popular language on the JVM by pjmlp on Thursday February 06, 2020 @04:55AM (#22254816)
Kotlin inline classes are heap allocated, they are just syntax sugar for regular classes.

One cannot just change their semantics after the fact.

Re:Kotlin becomes second most popular language on the JVM by Nullabillity on Thursday February 06, 2020 @09:19AM (#22256090)
Kotlin's inline classes (and Scala's AnyVal classes) are syntax sugar for static methods. The object itself is erased completely whenever possible (just like primitive values).
Re:Kotlin becomes second most popular language on the JVM by pjmlp on Thursday February 06, 2020 @12:03PM (#22257797)
Which is not the same as the semantic meaning of doing stack allocations or being stored in registers.
Re:Kotlin becomes second most popular language on the JVM by Nullabillity on Thursday February 06, 2020 @12:51PM (#22258318)
The following:

    case class Foo(x: Int) extends AnyVal {
        def square: Int = x * x
    }
    val bar: Foo = Foo(5)
    println(bar.square) // => 25
Compiles down to (the moral equivalent of)

    object Foo {
        def square(x: Int): Int = x * x
    }
    val bar: Int = 5
    println(Foo.square(bar)) // => 25
If the inner value (x, in this case) can be stack-allocated or stored in registers then `Foo(x): Foo` will as well. `Foo(x): Bar` (where Bar is a supertype of Foo) will be autoboxed, but that also applies to primitive types (`5: Any` becomes a java.lang.Integer in memory).
Re:Kotlin becomes second most popular language on the JVM by pjmlp on Thursday February 06, 2020 @01:02PM (#22258421)
Neither of those represent the same semantics of:

    inline class { ... ]
Which is guaranteed to be always stack-allocated or stored in registers, again you cannot retrofit semantics, specially when passing those classes to binary libraries.
Re:Kotlin becomes second most popular language on the JVM by Nullabillity on Thursday February 06, 2020 @01:29PM (#22258722)
You're correct that the Scala version isn't ABI-compatible. But Scala doesn't care about ABI between minor releases anyway, so that probably wouldn't stop them from changing it to align with Java.

There is also precedence for this, Scala 2.12 changed the encoding of lambdas from anonymous classes to Java 8's invokedynamic.

Re:Kotlin becomes second most popular language on the JVM by zmmmmm on Friday February 07, 2020 @02:57PM (#22270189)
That cuts both ways though. If JetBrains goes away or something shifts their corporate interest away from that then Kotlin has zero support at all. Whereas other languages are built on grass roots foundations. It's certainly unlikely in the short term but it's hard to say long term about the future of any company.
Re:Kotlin becomes second most popular language on the JVM by moron4hire on Thursday February 06, 2020 @03:07AM (#22254352)
Yeah, it's not like it's a Google project. You can probably expect JetBrains to support Kotlin going long into the future.
Re:Kotlin becomes second most popular language on the JVM by bitL on Thursday February 06, 2020 @03:37AM (#22254492)
SUN was supposed to be here forever as well...
Re:Kotlin becomes second most popular language on the JVM by humbleMouse on Thursday February 06, 2020 @10:24AM (#22256632)
I still love groovy, it doesn’t need to evolve that much to be useful for the things it’s good at, like parsing unstructured data and making boilerplate free pojos.
Re:Kotlin becomes second most popular language on the JVM by The_rationalist on Thursday February 06, 2020 @02:49AM (#22254275)
This time this is the official android language and there is jetbrains behind it.
Re:Kotlin becomes second most popular language on the JVM by t-writescode on Thursday February 06, 2020 @02:45AM (#22254256)
I would not make Kotlin my first language. It is absolutely a language that requires you already know the patterns and mannerisms of OO languages, like Java or C#. Once you do, its syntactic sugar and features are amaaaaazing.

If you’re already familiar with OO languages and their standard coding patterns, then there’s little reason to use Java over it.

To clarify, for the Kotlin / Java users out there that might not get what I mean: the syntax for classes and constructors and default constructors and all can be very confusing when reading Kotlin compared to C#, Java or Python, since the constructor and the class declaration are halfway merged.

Re:Kotlin becomes second most popular language on the JVM by The_rationalist on Thursday February 06, 2020 @02:48AM (#22254268)
Actually you can code in kotlin exclusively with a functional style, especially with Arrow. since the constructor and the class declaration are halfway merged. this is an optional sugar (data classes)
Re:Kotlin becomes second most popular language on the JVM by lllr_finger on Thursday February 06, 2020 @10:08AM (#22256482)
As much as I like FP and Kotlin, we ended up removing Arrow and hand rolling the few things we really wanted, like a Result sum type. It's an impressive project, however adding FP to an intentionally multi-paradigm language can lead to rough ergonomics in some places.
Re:Kotlin becomes second most popular language on the JVM by The_rationalist on Thursday February 06, 2020 @04:13PM (#22260375)
Interesting, but did you check out arrow-meta? It should really improve expressiveness and ergonomics.
Re:Kotlin becomes second most popular language on the JVM by lllr_finger on Thursday February 06, 2020 @05:51PM (#22261315)
I didn't, but I will now. Thanks!
Re:Kotlin becomes second most popular language on the JVM by t-writescode on Thursday February 06, 2020 @03:17AM (#22254393)
Indeed, but if you want any OO, it’s a liiiittle weird looking at first, since it’s so much syntactic sugar. Only a little, though. It was a stumbling block when I was learning it at first.
Re:Kotlin becomes second most popular language on the JVM by gbersac on Thursday February 06, 2020 @10:48AM (#22256880)
As a scala user, I laugh when I hear Kotlin users saying they are doing functionnal programming.
Re:Kotlin becomes second most popular language on the JVM by The_rationalist on Thursday February 06, 2020 @04:15PM (#22260401)
Can you give me a list of kotlin missing FP features that Scala has? Then I might consider it.

Please, distinguish what Scala has over kotlin separately than what cats/scalaz has over arrow. You will be surprised to see how little the list is.

Re:Kotlin becomes second most popular language on the JVM by lmm on Thursday February 06, 2020 @10:01PM (#22262869)
From lower-level to higher-level:

Real immutable collections (might be available in a third-party library for Kotlin, but not used in the standard library or any of the ecosystem)

Well-behaved option/maybe type (arrow implements one, but it's not used in the standard library)

Either type used in the standard library where it makes sense (arrow implements one)

First-class (monadic) comprehensions in which the language behaves as normal (arrow makes an impressive effort, but it has rough edges from not being part of the language, and its implementation inherently relies on capturing pieces of imperative execution, so you can't rely on it for monads that do control flow e.g. a backtracking/nondeterminism monad).

Practical way to implement typeclasses for third-party types, that will be understood correctly by the whole ecosystem (IDEs/debuggers/etc.) Together with the above this means you can enable comprehensions for any standard library or third-party type for which they make sense, not just libraries that were built on top of arrow (e.g. standard collections, third-party database libraries, types from the Java or Android standard libraries). Arrow's annotation processing is a poor substitute for being able to do this in a first-class way, and even if it were built in, the typeclasses are a lot more cumbersome at the point of use.

Practical way to write tiny, composable functions that rely on HKT/typeclasses. In Kotlin if you want to write a one-liner you still have to cart the typeclass instance around, which might seem trivial but is actually a huge barrier to working in high functional style, where you'd write hundreds of tiny combinators that each do one simple but really generic thing.

Monad implementation for the standard way of representing presence/absence, the standard way of representing async, etc. Even with annotation processing, it's impossible to ever implement a monad instance for Kotlin's nullable types (because they're not well-behaved).

Iteratees or equivalent - a way to represent possibly-async transformation pipelines such that even the middle of a pipeline can be a well-behaved, reusable value that we can use a lot of general-purpose functions on.

Record types (relying on Shapeless) and a way to convert back and forth between case/data classes and a generic representation of them - fulfills a similar use case to "compile-time reflection". This really unlocks a lot of functional power when you combine it with applicative / monadic traversals of those generic representations - it lets you walk an object graph, doing something effectful at each node, in a completely safe, managed way.

Recursion-schemes style traversals - representing different kinds of recursion as composable values. This makes it a lot more practical to do things like tree transformations in a safe way, because it becomes ok to have 20 subtly different types of tree representing different intermediate stages of your operation.

Kind polymorphism (relies on kind-projector in Scala which has similar limitations to Arrow) - makes the above a lot more effective, as you can write functions that do the right things for generic and non-generic trees (for example).

The first half of this is more a matter of degree than of kind, because an ecosystem is more than a language. An imaginary Kotlin ecosystem in which everyone used immutable collections and everyone used arrow optionals instead of nullable types might approach the usability of Scala on this front. But the Kotlin ecosystem that actually exists does not operate this way - and, crucially, there's no way to interoperate between working this way and not. Scala was able to overcome this barrier by having implicit conversions and good typeclasses, so even if you have to use a third-party library that doesn't follow functional conventions, you can still enable functional operations for it. Kotlin can't do that; extension methods don't allow the types they're attached to to implement interfaces, so the only way to treat a third-party type as having some functional support is to plumb a typeclass instance for it around manually as arrow does.

And beyond that, trivial inconveniences matter. It's possible to write a well-behaved Either type in C++, but no-one uses them because it imposes so much code overhead that it's not worth it. Ultimately Greenspun's law applies - you can implement any language in any other one - but at the point where you're working in what's effectively a Scala interpreter written in Kotlin (which Arrow is halfway to being), you're gaining very little of Kotlin's benefits (in terms of tooling, ecosystem and so on).

And the things in the second half are more fundamental. Arrow is an impressive effort in working around the limitations of not having HKT, but it can only go so far; at some point you need real HKT in your language. (It's the same story in Scala one level higher - the things you can do with kind-projector are really impressive, but they're also no substitute for using a language with real kind polymorphism). And if you want to actually unlock the power of functional programming, it has to be practical to avoid using anything that breaks the rules of the language - reflection, bytecode manipulation, annotation processing, macros - and for that you need an equivalent of Shapeless (or Frunk in Rust), or ideally a proper record system.

I'd love to be optimistic about Kotlin - there's a lot that it cleans up - and certainly I hope that the language will eventually adopt HKT. But even then, the ad-hoc approaches of the language's early design will always be a millstone around its neck. I mean, fundamentally, Kotlin collections are mutable and nullable types are ill-behaved, and I can't see the ecosystem/culture ever managing to go through a wholesale conversion to using immutability and proper optionals (contrast this with Scala where mutable collections and null exist but you'll never see them in a mainstream Scala library). And that alone is always going to make it less pleasant to work with than Scala.

Re:Kotlin becomes second most popular language on the JVM by vips7L on Thursday February 06, 2020 @09:30AM (#22256181)
Modern Java is actually quite good. The main three things that Kotlin offers, in my eyes, are Data classes (in preview in JDK 14), Coroutines (should be coming soonish with loom), and nullable reference types (not big enough for me to switch).

Outside of Android I wouldn't choose Kotlin.

Re:Kotlin becomes second most popular language on the JVM by wrmsr on Thursday February 06, 2020 @12:16PM (#22257946)
I've found Optional<> to at least ~help~ with the null issue - as we still don't have value types it still does come with a runtime penalty but most of the code I write and deal with these days has a no-null policy: if it's optional it's Optional<>, everything else defaults to sane defaults or 'empty' (usually immutable) objects. There will of course always be nulls in legacy and performance sensitive code but it is at least ~something~.
Re:Kotlin becomes second most popular language on the JVM by gambler on Thursday February 06, 2020 @11:27AM (#22257362)
>Modern Java is actually quite good.

Lambdas can't handle checked exceptions, which are the most common exceptions in the system.

There is no way to extend Stream with your own methods.

Still 8 primitive types to wrestle with.

Just to name a few issues. And there are lots and lots more.

The language is simply not extensible enough to write anything elegantly.

Re:Kotlin becomes second most popular language on the JVM by vips7L on Thursday February 06, 2020 @12:05PM (#22257816)
Just handle your catched exceptions? It's not that hard.

  () -> {
     try {
       // do work
     } catch (IOException ex) {
       throw new UncheckedIOException(ex);
     }
  }

I also agree with Goetz that extension functions aren't something we need.
Re:Kotlin becomes second most popular language on the JVM by int_19h on Thursday February 06, 2020 @11:09PM (#22263150)
What's the point of even having checked exceptions, if you're going to have an unchecked counterpart for every one of them just so that you can flow them through lambdas?
Re:Kotlin becomes second most popular language on the JVM by pjmlp on Thursday February 06, 2020 @01:10PM (#22258502)
Not only isn't hard, one can write a generic utility method.

Regarding extension methods, while they are nice, with import static it just a matter where the extended type comes, big deal.

And from experience in .NET world, hunting them down isn't always fun, even if they are just Ctrl+F12 away.

Re:Kotlin becomes second most popular language on the JVM by cryptos on Friday February 07, 2020 @06:18AM (#22264940)
It is not hard but cumbersome, ugly and ruins readability when used a lot.
Re:Kotlin becomes second most popular language on the JVM by lmm on Thursday February 06, 2020 @08:10PM (#22262270)
> Lambdas can't handle checked exceptions, which are the most common exceptions in the system.

You can do exactly the same thing that Kotlin would do for you and just rethrow them as runtime exceptions. It's one extra wrapper call; not great, but not a huge overhead either.

> There is no way to extend Stream with your own methods.

That's just syntax sugar; all it's actually doing is calling a static method, which you can still do in Java.

> Still 8 primitive types to wrestle with.

You can just ignore them and use the object versions everywhere, and then it's not a problem.

There are a bunch of irritating warts in Java, but irritating warts alone are not worth switching language over.

Re:Kotlin becomes second most popular language on the JVM by watt on Thursday February 06, 2020 @11:42AM (#22257519)
Null safety is the one big win for Kotlin. https://kotlinlang.org/docs/reference/null-safety.html
Re:Kotlin becomes second most popular language on the JVM by vips7L on Thursday February 06, 2020 @12:14PM (#22257928)
I agree, but like I said it's not enough for me to switch. I use Optional<T> whenever I need to return null. The only outlier there is the JDK which most devs should know when it's returning null to you.
Re:Kotlin becomes second most popular language on the JVM by dajohnson89 on Thursday February 06, 2020 @01:38PM (#22258821)
isn’t optional just replacing the null check with if(optionalRef.isPresent)??

i kinda get how this is safer, but clients can just call optionalRef.get() without checking, and boom there goes the safety. compiler warnings be damned.

Re:Kotlin becomes second most popular language on the JVM by vips7L on Thursday February 06, 2020 @01:43PM (#22258891)
Optional is just signaling to the user that they should check.

You could also do this in Kotlin and boom there goes the safety:

  fn nonNull(): String {
    val s: String? = null
    return !!s
  }
Re:Kotlin becomes second most popular language on the JVM by lllr_finger on Thursday February 06, 2020 @10:01AM (#22256426)
I would tout sealed classes as well, although I think Java has a proposal that's getting traction.

For back-end service/API type things in an enterprise setting, Kotlin is a good value proposition. There's also probably some truth to the idea that one reason modern Java is adding these things is because of Kotlin's existence.

Re:Kotlin becomes second most popular language on the JVM by abraxas on Thursday February 06, 2020 @01:58AM (#22254037)
There are far more resources out there for learning Java, better tooling support beyond IntteliJ and many of the cool features of Kotlin are slowly making their way to Java.
Re:Kotlin becomes second most popular language on the JVM by hv42 on Thursday February 06, 2020 @02:41AM (#22254242)
While some of the features in Kotlin are slowly coming to Java, that also means that one has to update Java (while you can use all the new kotlin while still targeting Java 8).

Some features like named parameters or null checking might probably never make it to Java.

There is a nice talk about this that compares Kotlin to what will be in Java 19:

https://youtu.be/te3OU9fxC8U

Re:Kotlin becomes second most popular language on the JVM by yardstick on Thursday February 06, 2020 @03:18AM (#22254400)
If you are still targeting java8, isn’t that due to organisational constraints about software version management and wouldn’t that normally also imply issues around getting new tools like kotlin into the org too?
Re:Kotlin becomes second most popular language on the JVM by vips7L on Thursday February 06, 2020 @09:49AM (#22256346)
Agreed. I highly doubt someone that doesn't want to upgrade their Java version (outside of Android) will be willing to learn and introduce a whole new language.
Re:Kotlin becomes second most popular language on the JVM by pjmlp on Thursday February 06, 2020 @03:12AM (#22254377)
It also means that Kotlin doesn't get all Java goodies, like virtual threads, value types or GPGPU support.
Re:Kotlin becomes second most popular language on the JVM by thu2111 on Thursday February 06, 2020 @03:50AM (#22254542)
Virtual threads (Loom) are also not anything affecting bytecode generation, so Kotlin will work with them out of the box.

Really, I don't get this claim Kotlin will lack Java features. Most big Java upgrades these days are at the VM level. Kotlin gets those mostly for free, once they choose to upgrade to newer bytecode features (which they are slow at doing admittedly, but that's because they're in the middle of a compiler rewrite).

Re:Kotlin becomes second most popular language on the JVM by pjmlp on Thursday February 06, 2020 @04:54AM (#22254808)
No it won't, because Kotlin also needs to target other platforms, and exposing JVM APIs or new bytecodes needs to have to have that into consideration.

It also means that Kotlin on Android cannot just consume any random Java library, only those that are compatible with Android Java flavour of the month.

Re:Kotlin becomes second most popular language on the JVM by thu2111 on Thursday February 06, 2020 @10:00AM (#22256422)
Kotlin does expose JVM specific stuff though. Like the entire class library. You have to specifically opt in to the multiplatform subset to avoid that. It's not like they whitelist APIs. The only time they need to do anything to add new Java features is when the bytecode patterns change.
Re:Kotlin becomes second most popular language on the JVM by pjmlp on Thursday February 06, 2020 @12:59PM (#22258393)
Re:Kotlin becomes second most popular language on the JVM by vbezhenar on Thursday February 06, 2020 @03:12AM (#22254374)
If you want null-checking, you can use Nullable annotations. While they're not as good as proper type system, they mostly do the job.
Re:Kotlin becomes second most popular language on the JVM by wtetzner on Thursday February 06, 2020 @09:34AM (#22256206)
But you have to remember to use them in all the right places. Yes, they help, but it's not just about how good they are, it's about people actually using them too. If you're working on a team, you need to worry about whether or not everyone else is correctly using the annotations.
Re:Kotlin becomes second most popular language on the JVM by diehunde on Thursday February 06, 2020 @01:25PM (#22258668)
Also more experienced developers.
Re:Kotlin becomes second most popular language on the JVM by awild on Thursday February 06, 2020 @02:11AM (#22254085)
Java isn't the terrible language it used to be before Java8. Especially with Lombok it feels very lean and snappy. There are still some functional sheanigans missing but they're coming. Sometimes I wish it were less verbose, but I also think it's good to be very explicit about what you're doing.
Re:Kotlin becomes second most popular language on the JVM by lmm on Thursday February 06, 2020 @10:04PM (#22262878)
Lombok is pretty much the same amount of trouble as using a different JVM language, IME. (Though by the same token I'd always pick Scala over Kotlin: if you're going to go to the effort of using another language, you might as well pick the one that offers the most power rather than using the equivalent of CoffeeScript)
Re:Kotlin becomes second most popular language on the JVM by tracer4201 on Thursday February 06, 2020 @02:56AM (#22254300)
Lombok? My first encounter with it was years ago with some annotation called sneaky throws. shudders
Re:Kotlin becomes second most popular language on the JVM by awild on Thursday February 06, 2020 @01:30PM (#22258733)
You can very selectively disable features and behavior of Lombok. While I've never used the annotation in my current project I can see the use of it in cases where Java's forcing of exception annotation is in your way or forces unnecessary verbosity.
Re:Kotlin becomes second most popular language on the JVM by sgt on Thursday February 06, 2020 @03:30AM (#22254449)
Do you recommend using Lombok now for new Android projects written in Java?
Re:Kotlin becomes second most popular language on the JVM by hota_mazi on Thursday February 06, 2020 @01:59PM (#22259072)
Absolutely not. If you want a better Java on Android, pick Kotlin, which is supported by Google at least.
Re:Kotlin becomes second most popular language on the JVM by awild on Thursday February 06, 2020 @01:27PM (#22258691)
I have no experience with android projects. I guess it's useful with every Java as it cuts down a lot of the boilerplate.
Re:Kotlin becomes second most popular language on the JVM by fulafel on Thursday February 06, 2020 @08:36AM (#22255820)
"Do I choose Kotlin over Java" is not the choice you face though - you can choose from a bunch of JVM languages. Clojure is pretty nice, for example.
Re:Kotlin becomes second most popular language on the JVM by eloisant on Thursday February 06, 2020 @09:08AM (#22256001)
Clojure is very different from Java, so there are definitely cases you might prefer Java over Clojure.

Scala also is a different beast (the one I prefer personally). I can understand people not choosing Scala if they're not into FP and are afraid to be unable to recruit Scala developers.

But Kotlin being some sort of "improved Java", the philosophy stays the same, Java developers can seamlessly switch to Kotlin... The benefit of picking Java over Kotlin is pretty slim.

Re:Kotlin becomes second most popular language on the JVM by iLemming on Thursday February 06, 2020 @08:15PM (#22262298)
> you might prefer Java over Clojure

There are good, explainable reasons why people hate Java and Javascript. Fundamentally, one can argue that they are very nice and solid languages and all those complains aren't warranted. On the other hand if you look at them differently and treat them as low-level, sorta "assembly" languages for their respective platforms, then probably you would find out that Clojure is an amazing tool, because it can perfectly be hosted on both of them.

And given all the good design decisions that went into Clojure, one might argue that it's almost always better to choose Clojure instead of Java.

Re:Kotlin becomes second most popular language on the JVM by fulafel on Thursday February 06, 2020 @10:13AM (#22256528)
Sure. But it's the same thing as in the JS platform, it's good to be aware that you don't just have a choice between JS and eg TypeScript, but a choice between all the JS platform languages that seem attractive.
Re:Kotlin becomes second most popular language on the JVM by tommyage on Thursday February 06, 2020 @10:00AM (#22256414)
About one and a half year ago we also decided to give kotlin a shot. After a few months my opinion was similiar to yours. Extension-functions, yeah!

Anyway, nowadays you wouldn't see me making the same statements anymore.

My first issue appeared when I was maintaining an Android app written in Java. I needed an library for some functionality. The only maintained ones were kotlin-libs. But interoperability, right? I didn't hesitated to include it. There is no way to use or extend functionality with typealiases in your java code.

IntelliJ can compile Kotlin into Java and it is easily accessible. But there is no adb debugger for kotlin.

Null Safety is just overhead imho. I know when it is appropriate or neccessary to check for null, otherwise i can get rid of it. And its more easily grep-pable the Java way.

Writing Kotlin is not so fluent as one would guess, the tooling only fools you, that it is. You can easily make use of actions like typing pfi (extends to public final int) for java aswell. But when your property changes from nullsafe to nullable, you need to rewrtiging eeevverything.

Additionally, i do not like the implicit type on member property declarations used by almost anybody. The benefit of typing less boilerplate becomes annoying when reading sources outside your ide.

Boilerplate in my opinion is code i need to write by myself. When it is generated by any IDE, i do not bother about it. We are so familiar with Java that we can abstract this boilerplate when reading sources.

Spelling Kotlin to somebody via telephone is also strange for me.

I stopped promoting Kotlin as a Java killer. Code style is too different between different developers.

And why are we creating the same libraries once again?

Re:Kotlin becomes second most popular language on the JVM by choward on Thursday February 06, 2020 @11:18AM (#22257252)
> Null Safety is just overhead imho.

Not having null safety seems like overhead to me.

> I know when it is appropriate or neccessary to check for null, otherwise i can get rid of it.

How do you know? Do you have the entire code base in your head. What about when someone new works on the project?

> And its more easily grep-pable the Java way.

What does this mean?

Re:Kotlin becomes second most popular language on the JVM by tommyage on Thursday February 06, 2020 @10:02AM (#22256437)
sorry, first comment and i referenced somehow the wrong content.
Re:Kotlin becomes second most popular language on the JVM by vbezhenar on Thursday February 06, 2020 @03:09AM (#22254359)
I used to like Kotlin, but now I switched back to Java. The only thing that I miss in Java is short property syntax. And praised null-safety just gets in the way too much. Kotlin adds new layer of complexity to tooling, etc. I don't like some Kotlin idioms. Kotlin made a bet to features I don't need (Kotlin native; coroutines). Kotlin compiler is slow comparing to Java.

That said, Kotlin is awesome language with awesome tooling. I don't think that it'll go anywhere since Google declared it as a preferred Android language. So you won't make a wrong choice, it's just a matter of personal preferences. I'm more of old guy who's not afraid of writing XML and repetitive code and don't like all that modern functional one-liners.

Re:Kotlin becomes second most popular language on the JVM by rcaught on Thursday February 06, 2020 @03:50AM (#22254543)
> And praised null-safety just gets in the way too much.

If you mean getting in the way of writing reliable software.

Re:Kotlin becomes second most popular language on the JVM by badpenny on Thursday February 06, 2020 @04:00AM (#22254600)
*unreliable ;-)
Re:Kotlin becomes second most popular language on the JVM by pjmlp on Thursday February 06, 2020 @07:09AM (#22255421)
Yeah, if one ignores the existence of PMD and Sonar, yes.
Re:Kotlin becomes second most popular language on the JVM by sinstein on Thursday February 06, 2020 @02:08AM (#22254070)
One of the reason to not consider Kotlin would be lack of resources. We run Kotlin services on Production at work and whole writing and reading Kotlin is so much better than Java, finding ways to do things still means having to fall back on Java examples.

There are still resources available for Kotlin + Android development but non Android resources are very few.

The plus side is because of the First Class Support in Intellij Idea for Kotlin, I can always take Java snippets and have the IDE convert them to Kotlin.

Re:Kotlin becomes second most popular language on the JVM by gibolt on Thursday February 06, 2020 @03:11AM (#22254371)
I would mostly disagree. You get all the Java solutions plus the Kotlin ones. Few languages have that much support.

Within ~2 years, native things will hopefully become sufficient, but the state now isn't gloom and doom.

Re:Kotlin becomes second most popular language on the JVM by pjmlp on Thursday February 06, 2020 @07:08AM (#22255416)
That is exactly the biggest problem with guest languages, instead of being happy with what is already there, they duplicate the eco-system.

So now for every problem we need to consider Java + Guest Language idiomatic libraries + alternative build tools + alternative IDE, across the whole corporation.

Re:Kotlin becomes second most popular language on the JVM by damnyou on Thursday February 06, 2020 @10:04AM (#22256452)
Yeah well, it's hard to be happy with what's already there when that's fucking Java.
Re:Kotlin becomes second most popular language on the JVM by sinstein on Thursday February 06, 2020 @03:22AM (#22254416)
We use a Dropwizard Application written in Kotlin and I have had a very hard time finding examples and tutorials and have had to translate from Java most of the time.

Ofcourse I am banking on resources improving with time.

Re:Kotlin becomes second most popular language on the JVM by davnicwil on Thursday February 06, 2020 @10:44AM (#22256833)
Other than that, what's been your experience using kotlin with dropwizard? How would you compare it to Java?
Re:Kotlin becomes second most popular language on the JVM by gmiller123456 on Thursday February 06, 2020 @02:42PM (#22259541)
>is there really any compelling reason not to choose Kotlin over Java?

IMHO, any language features rank incredibly low on the list of reasons you might use a language. Things like how long has the language been popular, how long will the language be popular? How strong is the community around the language, how long will it stay strong? What else can you use the language for? What tools are available, is the tooling in a competitive market? Which of those things is most important to your application?

A lot of those questions can't be answered directly, and have to be guessed at. But in the Kotlin vs Java scenario, the choice is pretty obvious for most applications.

Re:Kotlin becomes second most popular language on the JVM by tomerbd on Thursday February 06, 2020 @09:24AM (#22256127)
Many companies started using Scala a ~5 years ago, it was better, there was no reason not to, until the developers found that better is not as good as do the basic stuff that works and holds to the future have proven past, and have many more developers and more people in community this is what rules the game.
Re:Kotlin becomes second most popular language on the JVM by CuriouslyC on Thursday February 06, 2020 @10:25AM (#22256637)
I don't think Scala is a good comparison. Due to the fact that it has a large surface area and there is a lot of magic in places, it's harder to learn than Kotlin. Also, Scala suffers from C++ syndrome, where a team of developers that all nominally know the same language can actually know somewhat incompatible subsets of it.

I think the Typescript/Javascript comparison is more apt, and at this point I'm pretty sure that Typescript will win.

Re:Kotlin becomes second most popular language on the JVM by gbersac on Thursday February 06, 2020 @10:54AM (#22256939)
As a scala fan, I think comparing Java and Scala is a bad idea. Scala is functionnal programming on the JVM and Java is OO. Kotlin and Java, on the other hand are both OO programming language and should have a smooth transition.
Re:Kotlin becomes second most popular language on the JVM by jillesvangurp on Thursday February 06, 2020 @10:57AM (#22256982)
Everything Java does (including considering recent updates), Kotlin does better. So no. I made the switch to Kotlin two years ago and I'm not looking back. It doesn't matter what frameworks you use, Kotlin is a drop in replacement for Java. Though obviously, if you are doing greenfield use something that makes the most of the language.

There's this misconception that Kotlin is an Android only thing or a JVM only thing. The reality in both Android and server side frameworks is that the big frameworks are all moving towards being Kotlin friendly/ready. Additionally, Kotlin is rapidly moving towards being a proper full stack language with a native compiler (currently in beta), a javascript transpiler, and lots of other tooling maturing. People are already doing cross IOS/Android libraries in Kotlin.

A big advantage of Kotlin over e.g. Scala and other JVM languages that are not Java is that it is designed from the ground up make the transition as seamless as possible. Scala is so far removed from Java that it's generally a completely separate ecosystem with its own libraries, tools, frameworks, idioms, etc. Yes you can use Java stuff but it's generally frowned upon by Scala people.

This is not the case with Kotlin at all. The Android ecosystem started transitioning to Kotlin long before Google recommended that and before Kotlin 1.0 because the pain of having to deal with Java 6/7 just made that development so much better. A few years ago they started endorsing and recommending it and at this point they are clearly deprecating a lot of stuff that they did for Java that can be done better with Kotlin e.g. embracing co-routines over rxjava, adding extension functions and kotlin dsls and designing new features that really only make sense if you use Kotlin. On Android, if you are doing Java, you are working on a legacy code base.

On the server side the same is happening with e.g, Spring, which is basically the dominant server side framework for the JVM. I used Kotlin with Spring Boot 1.x/Spring 4.x, and it was a nice upgrade despite the lack of Kotlin support for it.

With Spring 5 and Spring Boot 2.x they started adding a lot of Kotlin extension functions, co-routine support (which generally makes using their reactive stuff less painful), and there's an experimental project for Kotlin DSL (https://github.com/spring-projects-experimental/spring-fu) to replace the mess of annotations that is currently needed and which reduces the need for reflection, proxies, and other tricks that currently make using Spring with Graal vm hard. Basically, what that means is that if you use Spring in a new project and you are not using Kotlin, you are probably making a mistake because you are missing out on a lot of good stuff. They'll likely not deprecate Java entirely for a long time just because there are a lot of very conservative projects in e.g. banks using Java but if you read between the lines they are basically saying Kotlin is it going forward.

IMHO, the Java language is definitely improving but just not at a pace where it actually keeps up and a lot of the stuff they add is a big compromise compared to what you get in Kotlin. and of course Kotlin is improving as well and a lot of the Java changes (and related JVM changes) also benefit Kotlin.

Re:Kotlin becomes second most popular language on the JVM by lmm on Thursday February 06, 2020 @10:08PM (#22262897)
> A big advantage of Kotlin over e.g. Scala and other JVM languages that are not Java is that it is designed from the ground up make the transition as seamless as possible. Scala is so far removed from Java that it's generally a completely separate ecosystem with its own libraries, tools, frameworks, idioms, etc. Yes you can use Java stuff but it's generally frowned upon by Scala people.

> This is not the case with Kotlin at all. The Android ecosystem started transitioning to Kotlin long before Google recommended that and before Kotlin 1.0 because the pain of having to deal with Java 6/7 just made that development so much better. A few years ago they started endorsing and recommending it and at this point they are clearly deprecating a lot of stuff that they did for Java that can be done better with Kotlin e.g. embracing co-routines over rxjava, adding extension functions and kotlin dsls and designing new features that really only make sense if you use Kotlin. On Android, if you are doing Java, you are working on a legacy code base.

There's a contradiction between your paragraphs; my experience is that as Kotlin projects mature, they also reach a point where developers frown on Java idioms. I mean fundamentally either the language is different from Java or it isn't; if it is, the transition isn't going to be seamless, and if it isn't, then why use it? The Kotlin community may have been better at being supportive, but the practical experience of making the transition is exactly the same (e.g. I used Spring for my early Scala projects, and found that to be a very nice way of working).

Re:Kotlin becomes second most popular language on the JVM by thu2111 on Friday February 07, 2020 @03:25AM (#22264138)
Which Java idioms do Kotlin programmers frown on? (I am one)

The only ones I can think of are where the language provides a feature that automates some Java boilerplate, so it wouldn't make sense to write things out by hand anymore. Otherwise they're semantically identical languages so the gap isn't big.

Re:Kotlin becomes second most popular language on the JVM by lmm on Friday February 07, 2020 @07:11PM (#22272588)
Things like builders no longer make sense if you have named arguments. Transforming or filtering a collection is more idiomatic than mutating it in-place. Factories don't make sense when first-class functions do the job better. Basically everything that's frowned on in Scala is also frowned on in Kotlin, in my experience.
Re:Kotlin becomes second most popular language on the JVM by thu2111 on Saturday February 08, 2020 @09:31AM (#22275870)
Good points. It'd be great if the kotlin compiler could produce builders or "withers" automatically.
Re:Kotlin becomes second most popular language on the JVM by lmm on Saturday February 08, 2020 @07:35PM (#22279630)
Would you really want them? If you write code in that style then you're giving up a lot of the advantages of Kotlin.

IMO there's a contradiction at the heart of Kotlin's positioning. As the quote goes, a language that doesn't affect the way you think about programming, is not worth knowing. If programming Kotlin is just like programming Java, why not just keep programming Java? If you want to switch to Kotlin because it's going to unlock a better way of programming, then that's going to have to mean changing how you program. It may work as a trick to get users on board at the start, but ultimately the language will have to find its own idioms and patterns, or else go the way of CoffeeScript.

Re:Kotlin becomes second most popular language on the JVM by thu2111 on Monday February 10, 2020 @08:59AM (#22289115)
I'm talking about what it compiles down to. Kotlin routinely generates bytecode that uses Java idioms either for its own ABI or in addition to it. So yeah, if some builder classes were produced behind the scenes for an immutable data class, why not, that'd be cool. You could always disable that feature with a flag if for some reason the bytecode size was an issue.
Re:Kotlin becomes second most popular language on the JVM by pjmlp on Thursday February 06, 2020 @01:17PM (#22258571)
Still waiting for the KVM, given that Kotlin is so much better then it can have its own platform, written from scratch in Kotlin/Native, running circles around GraalVM, without dependencies on lower quality Java libraries.
Re:Kotlin becomes second most popular language on the JVM by nullifidian on Thursday February 06, 2020 @03:58AM (#22254590)
>is there really any compelling reason not to choose Kotlin over Java?

Kotlin is being developed primarily by developers based in Russia. Putin relies on geopolitical conflict for consent manufacturing within the country. One of his future antics could turn into a real crisis, where Russia ends up sanctioned and isolated as a result, after a series of tit-for-tat moves, with the corresponding disruption to normal business processes.

Being a Russian product it also carries a risk of one day receiving an update with a payload from Russian secret services, if they find your firm sufficiently interesting. But it's a general consideration with software/hardware from "adversary" countries like China or Russia. The story with Huawei is the same.

Re:Kotlin becomes second most popular language on the JVM by pyuser583 on Thursday February 06, 2020 @04:04AM (#22254631)
What!? It’s being developed by JetBrains, which is headquartered in the Czech Republic - a NATO member!
Re:Kotlin becomes second most popular language on the JVM by nullifidian on Thursday February 06, 2020 @04:10AM (#22254660)
It's registered/incorporated in the Czech Republic, but it's a Russian company. Same way Russian search giant Yandex is incorporated in Netherlands.
Re:Kotlin becomes second most popular language on the JVM by Gaelan on Thursday February 06, 2020 @11:04AM (#22257062)
In more concrete terms, of their ~1000 employees, 600 are in St. Petersburg, their largest office by far.
Re:Kotlin becomes second most popular language on the JVM by pyuser583 on Saturday February 08, 2020 @02:18AM (#22274472)
Ah. That makes things clear.
Re:Kotlin becomes second most popular language on the JVM by isbvhodnvemrwvn on Thursday February 06, 2020 @04:08PM (#22260321)
Kotlin is named after an island protecting the entry to St. Petersburg. While they have some developers in Germany and Czech Republic (plus some remote IIRC), their main development center is in St. Petersburg. I guess they were incorporated in Czech republic due to political issues, but they would still be crippled if they were somehow cut off from their St. Petersburg office.
Re:Kotlin becomes second most popular language on the JVM by thu2111 on Friday February 07, 2020 @03:28AM (#22264151)
The JVM itself has a lot of Russian developers, and IntelliJ is the most popular Java IDE with about 60%+ market share, also developed by JetBrains. Their tools are also widely used in other markets.

But you know, the most aggressive country by far at backdooring systems is the USA. For the vast majority of us who are neither American nor Russian it's all swings and roundabouts.

Re:Kotlin becomes second most popular language on the JVM by ivankolev on Thursday February 06, 2020 @11:54AM (#22257688)
I have always wondered about that myself. I guess I implicitly trust all the large orgs already using their products to do their due diligence, but if it is a targeted attack there is nothing much you could do.
Re:Kotlin becomes second most popular language on the JVM by Bendingo on Friday February 07, 2020 @12:39AM (#22263504)
Would be great to have a tech thread that didn't degenerate into low-grade political opinion.
Re:Kotlin becomes second most popular language on the JVM by iLemming on Thursday February 06, 2020 @08:27PM (#22262366)
Being born in the USSR and having to watch the collapse of the Union and later Putin's rise to power with my own eyes, I can honestly say - this comment is not without sense and everyone should think twice before introducing Kotlin in their company.
Re:Kotlin becomes second most popular language on the JVM by pts_ on Thursday February 06, 2020 @09:48AM (#22256337)
Last I checked the IDE costs money for web dev.