Chat Logs

  1. kcomhnallmy assumption would be a video about the addition of lambdas
  2. cheesernullability
  3. Paravideo description mentions valhalla
  4. dreamrealYeah, youtube title extraction is a PAIN
  5. dreamrealI don't even know WHY. I mean, I know WHY they make it a pain from their end, but dang
  6. ParaYoutube's API and account management in general is superbly stupid.
  7. ParaIt's like 14 steps even when you know what you want to do.
  8. dreamrealYeah, I don't think the bots want to use their API if that can be avoided: twitter's the same way
  9. dreamrealtwitter's API is the only reliable way to get tweets programmatically, and it's $0.005/request, although they have aids for *repeated* requests
  10. dreamrealI decided nevet'll get twitter support when it gets a sponsor who asks for it :D
  11. dreamrealI am still working on youtube, though
  12. dreamrealnitter still works but it does human verification; the other twitter things route to twitter itself now
  13. sbalmosthe only thing more screwy than Youtube's API and account management is AWS IAM and its API authentication
  14. ParaAWS IAM is good until policies.
  15. ParaLike...I understand and agree why they're there, but its still bad.
  16. NeXeNoh the nullability thing is huge but i mean it's survived thus far
  17. cheeseri'm sad about nullable still being the default but i don't really see a way they can fix that without breaking almost every single line of code ever written.
  18. NeXeNthere is always a way. use the force. if it doesn't work then make it work harder
  19. jreicherNeXeN: What's "the nullability thing"? The only JEPs I can find about this are still in draft.
  20. ParaNeXeN: If force doesn't work, you're not using enough.
  21. Chronos"Just don't make mistakes"
  22. dmlloydthe draft JEPs are generally a reflection of whatever the current state of experimentation is... but they don't always update the JEPs quickly especially if lots of things are being experimented with
  23. dmlloydthere are some JDK trees that you can check out and mess around with if you're brave
  24. cheeserbuilding openjdk is not exactly trivial or pleasant, though.
  25. jreicherOh I'm just interested in knowing what the current thinking is. Is there a sincere effort to add nullability to the type system? Or do people just chat about it over cocktails?
  26. NeXeNit's about whether or not something can be set to null. some ways you can get a promise or other ways to keep from ever getting a null
  27. cheeserjreicher: it's a significant effort. it's been on brian's back burner for some time.
  28. cheeserbut i think he considers it low hanging fruit compared to, say, value types.
  29. cheeserum. is that what I meant to say? i got distracted midsentence. it's low *priority* compared to ...
  30. NeXeNit can eliminate a performance concern
  31. NeXeNnull checks are expensive, if one could eliminate null then it would be simpler to design things that don't null pointer error at runtime
  32. cheeseryep. and now that he's thinking "carrier classes" to remove the disconnect between regular classes and records, i'd imagine he's feeling similarly about the gap between value types and regular classes
  33. ParaIIRC most null checks gets eliminated by JIT anyway.
  34. ParaI've never found the attractiveness of this particular topic. Maybe im dum.
  35. cheeseri don't know that that's true... dmlloyd might know better. but that seems like a dangerous check to elide
  36. dmlloydif the JIT can prove that a value coming in is always null, it'll drop the check
  37. dmlloydthat kind of thing can be invalidated by deoptimization
  38. cheeseri'd imagine that's vanishingly rare, though.
  39. NeXeNi do love value classes, and it's a good model for a personal project of mine
  40. dmlloydnot at all, every instance method call or field access has a null check on it
  41. dmlloydso you definitely want to eliminate as many as possible
  42. cheeserthe field would have to be final, no?
  43. NeXeNwell it's like a promise can return a value or not you gotta wait or decide to do something else, and null is really that situation in a nutshell
  44. dmlloydno, the field value isn't null checked, the instance is
  45. dmlloyd`foo.bar(); foo.baz()` <- foo is provably null if `foo.baz()` is reached
  46. NeXeNnull just happens in the data a lot
  47. dmlloydI mean if `foo` is itself a field then yeah it would be rechecked unless it was stable and final
  48. dmlloydbut if it's like a local var then the second one doesn't get null checked
  49. dmlloyd(if `foo` is a stable final field then its value is cached in a register so there's only one load)
  50. dmlloydeven `this.foo()` has an implicit null check that has to get eliminated by *something* that knows `this` is never `null`
  51. jreicherYeah elimination of runtime checks is one of the reasons I like type systems. I think Alexis King's "parse, don't validate" essay makes the same point. And the runtime checks include both those done by the language and those the programmer had to write.
  52. NeXeNyou get some extra decorators, like ! to be able to specify something, i forget i read the jep and docs
  53. NeXeNoh yeah it flattens the array as well, making it very performant
  54. NeXeNhttps://openjdk.org/jeps/8303099
  55. javabotNeXeN's title: "JEP draft: Null-Restricted and Nullable Types (Preview)"
  56. nevetNeXeN mentioned url: https://openjdk.org/jeps/8303099 ("JEP draft: Null-Restricted and Nullable Types (Preview)")
  57. NeXeNi am guilty of doing many sanity checks on incoming data