dreamrealI personally don't think it's an issue if it has a dependency on KOTLIN
dreamrealif it has a lot of kotlin dependencies it kinda depends
dreamrealbut the stdlib is pretty small, I'd be more worried about the entire ecosystem than kotlin itself
dreamrealif it's multiplatform dependencies I'd be, uh, more concerned
NeXeNit also increases the dependency tree and adds overhead to method resolution, albeit maybe small
dreamrealby adding to the classpath?
dreamrealI mean... have you been able to *measure* the overhead change?
dreamrealor are you talking about something else?
NeXeNno, but also java can't use kotlin inline so what may perform well purely kotlin won't perform as well in java
dreamrealwait, what?
dreamrealCan't... use kotlin... inline?
dreamrealThat's ... not how bytecode works
NeXeNyeah kotlin can inline it at compile time, but a java call to kotlin dep won't benefit from it
dreamrealbut... but... that's ... such a LOCALIZED problem that shows up at specifically early phases of JIT runtime that it's kinda not worth counting
dreamrealJIT *can* inline it, it just would do it later than the kotlin compiler MIGHT
NeXeNalso there's the consideration that the build process will be a little slower having to call k2 and javac
dreamrealThat assumes you're compiling the kotlin as part of this build, though
NeXeNso in other words, if you already use it you're already paying any tax (startup time too), then it can't hurt
dreamrealif a java project imports "kthing" as a dependency and kthing has kotlin stdlib as a dependency, compile time is not affected
NeXeNyeah using jars won't cause any build time increase
dreamrealand kthing is bytecode, so bytecode is going to act like bytecode
dreamrealnot to push back on your nonsense, but this is like sayig "that project's no good because the coder used vim"
NeXeNand if you are using lambdas in kotlin, inline as much as possible ...i read an article a while back on kotlin lambdas and the JIT having problems with inlining them
dreamrealI haven't seen a problem with kotlin lambdas in practice
dreamrealand I think it's fair to say I use a crapton of 'em, to use the technical terms
NeXeNits kind of unfair of you to say that since it scales down my argument
dreamrealYou haven't paid me to be fair, only experienced
NeXeNbut beyond that i got nothing.....i don't think it will matter much besides bloating a jar by 5 megs or more (plus whatever else it pulls in besides stdlib)
dreamrealThat's really it, in the end, which is why I say I'd have no real problem with it
jreichercheeser: what's the difference in consideration of a transitive when updating and a transitive the very first time you start using the library?
cheeseronce you've been using a library, it's already been vetted, you know what you're getting, etc. when taking up a new one, there are no expectations. people feel weird about things like a new language library showing up.
jreicherI can understand that if the original vetting was so thorough that you would be reluctant to do it again, but was it?
cheeser ¯\_(ツ)_/¯
jreicherExctly
cheeserthe general consensus on bluesky and mastodon was that only a barbarian would do such a thing
jreicherIMO it's perfectly consistent to worry about an upgrade when the introduction was done very carefully, but sometimes it's not consistent. Sometimes people fuss about upgrades not realising that the horses have already bolted because they weren't careful at the start.
jreicherThat doesn't make sense to me.
cheeseryeah. it's not an entirely consistent stance but it costs me little to rework this code back in to java and simplifies my build quite a bit.
whaleycheeser: just replied on mastodon about that. my hot take was major version upgrades wouldn't bother me so much, minor versin pugrades was "you are a barbarian" inducing
whaley*version upgrades
dreamrealas in, introducing kotlin as a new transitive in a minor upgrade?
whaleyaye
dreamrealthat... doesn't sound like a minor upgrade, although it might fit semver rules (public API unchanging, no major breaking features)
dreamrealbut it's amusing that you're using mastodon :D
ParaFrom security point of view it's also kind of a scary thing, but that goes with all large dependency changes in general vOv
whaleydreamreal: way better signal:noise ratio there for nerd stuff
dreamrealI found the fediverse WAY too noisy a protocol. I considered it for nevet, to hook it in, but wasn't willing to pay for the network traffic.
whaleybut I digress... I largely consider the inclusion of any transitive dep that may already be widely distributed elsewhere in a minor version update to be a bad, irrespective of whether said transitive dep was actually the stdlib of another language
ParaEven EU did run ActivityPub for a while for official communicae, and then let it go because it was apparently too nerdy and bureaucratic even for them.
dreamrealPara: I ran mastodon locally on a VPS, it was incredible
dreamrealIt was like using SBT again
Paradreamreal: Wow, tell me more.
whaleydid bluesky ever get federation, btw?
ParaIt's kinda there but not really.
dreamrealew, bluesky's initials are absolutely valid
dreamrealI also considered bluesky for nevet and decided HARD NO
dreamrealPara: my VPS was absolutely hammered by it
ParaLike in principle I guess one could have it federate stuff but as someone who even wrote their custom schema to Java generator last year...the promise basically dies at repository.
dreamrealLike, doing version upgrades was a massive relief on the system load
ParaAs in data stores.
dreamrealbluesky is a toxic security channel
dreamrealnever say anything on there you don't want forcibly exposed to the world
ParaYeah it's a public append only log.
dreamrealI think $work would censure me for even having an account there
ParaPlus they've kinda frozen on adding new API libraries even. Like...this was why they decided to create their own schema language yet can't even produce more than two SDKs, wtf.
ParaI'd be open to opening my atproto library stub for wider world if it wasn't so frozen and answers to technical questions nonexistent.
ParaIn its current state it would just add to the noise so who cares.
dreamrealfor bluesky?
Parayeah
dreamrealI definitely wouldn't bother
dreamrealActivityPub at least has a valid motivation: it's gross and incredibly heavy, but still. Understandable. Bluesky is a horror.
ParaIt was kind of fun as a coding exercise but beyond that...meh.
ParaAnd as said, they've convenienty left out the actual persistence part or describing how those APIs are supposed to work in a generic way to enable federation. I suppose microdosing adderall fueled Silicon Valley dreamer could spend 16 hours a day to figure it out by hammering the official website and reversing everything, but...there's no point.
ParaI do count it as a win though that Bluesky basically exists because Elon Musk made a huge and expensive miscalculation.
dreamrealyeah, twitter's been out of business for a while now
whaleybsky was going to exist regardless... it was being incubated as part of Twitter before the end times. Or rather, dorsey brought on Graber et. al. and salaried them under Twitter to work on it there
ParaOr maybe not; migration path probably would've been too hard/expensive and outright replacing a running system is way too dangerous for any business.