|
DELETE CASCADE posted:420 blazor it
|
![]() |
|
![]()
|
# ? Feb 18, 2025 15:21 |
|
Nomnom Cookie posted:i am imagining the lovechild of spring and lombok, freakish and terrifying but also impressive it actually rules. you can define config values that are parsed either during compile or run time. it’s way more than Lombok, and it also handles the graalvm compilation via docker, if you want. it makes your app start up suuuuper fast and reduces so much runtime. anything can be done ahead of time since it uses bytecode recording. have a giant graphql handler that is generated from a bunch of beans? have it get generated during the build phase (it’s still regular java code) and then let the native compiler turn it into optimized code. it’s really cool.
|
![]() |
|
Shaggar posted:they shouldn't be that slow, but you can also cache your reflection results. If you know what attributes will be where at compile time then don't use attributes, otherwise reflection is the only way to understand what attributes are in use at runtime. we've got 1000+ instances of https://docs.microsoft.com/en-us/dotnet/api/system.xml.serialization.xmlenumattribute?view=netframework-4.8 littered around and i have to maintain backwards compat with any existing serialized xml but this is all knowable at compile time
|
![]() |
|
CRIP EATIN BREAD posted:it actually rules. you can define config values that are parsed either during compile or run time. it’s way more than Lombok, and it also handles the graalvm compilation via docker, if you want. CRIP EATIN BREAD posted:it actually rules. you can define config values that are parsed either during compile or run time. it’s way more than Lombok, and it also handles the graalvm compilation via docker, if you want. freakish, terrifying, impressive. it ticks all the boxes
|
![]() |
|
Bloody posted:we've got 1000+ instances of https://docs.microsoft.com/en-us/dotnet/api/system.xml.serialization.xmlenumattribute?view=netframework-4.8 littered around and i have to maintain backwards compat with any existing serialized xml but this is all knowable at compile time Are you reading the attributes yourself or is just sending it to xmlserailzier or whatever? cause .net's xml tools definitely didn't know about your code when they were compiled
|
![]() |
|
reading them myself for some reason
|
![]() |
|
oh a billion new posts over the weekend, which argument did we re-hash this time? 1. spaces/tabs 2. vim/emacs/sublime/vscode/notepad++ 3. p-lang x is dumb/not dumb 4. all of the above cjs: "Why has the site been in maintenance mode for almost 4 hours?" The Russians wrote a class that is essentially a singleton that divvies out database IDs and oh whatdoyouknow it's not remotely threadsafe, and we end up with a bunch of ID collisions under load. I'll put locks on it. I get to choose between performance and thread safety, I guess.
|
![]() |
Finster Dexter posted:oh a billion new posts over the weekend, which argument did we re-hash this time? guids, arrays, and where to not find any of them or all
|
|
![]() |
|
lmbo the Russians' database ID class is part of a half-assed event-sourced db implementation. Half-assed because there is tons of code that updates the base record, rather than adding events to the events table. So, now I need to go through the code and figure out which fields I should just read from the base record and which I should read from the base + events. I am really hating these guys right now.
|
![]() |
|
Bloody posted:reading them myself for some reason well you shouldn't do that! did you write your own xml serializer?
|
![]() |
|
old grumpy coworker who hasn't earned a raise or learned a new thing since twice as long as I've worked at this place: "say what you will about WebForms, but it was pretty cool. i had no experience at all in web development and i still knocked out that old site in a few days, and it just worked." everybody else speaking together like huey, dewey and louie: "it worked fine as long as it had exactly one user at a time. when people started seeing weird unexplained query results, you dismissed it as 'can't reproduce' until we discovered that the entire session state lived in a single global and the users were seeing each other's pages"
|
![]() |
|
Finster Dexter posted:oh a billion new posts over the weekend, which argument did we re-hash this time? it was a globally unique idiotic discussion.
|
![]() |
|
Shaggar posted:well you shouldn't do that! did you write your own xml serializer? i didnt! but yeah basically. looks like we built an xml ser/de out of system.xml.linq. it is very slow and very obtuse
|
![]() |
|
pseudorandom posted:it was a globally unique idiotic discussion. lol
|
![]() |
|
pseudorandom posted:a globally unique idiotic discussion. thread title pls
|
![]() |
|
pseudorandom posted:it was a globally unique idiotic discussion.
|
![]() |
|
pseudorandom posted:it was a globally unique idiotic discussion. ![]()
|
![]() |
|
Bloody posted:i didnt! but yeah basically. looks like we built an xml ser/de out of system.xml.linq. it is very slow and very obtuse system.xml.linq is how you do compile time serialization without attributes. sounds like u guys managed to mix linq and xmlserializer to get the worst of both worlds. altho if ur model is marked up with xml attributes then just try using xmlserializer and see if it performs better than ur custom thing.
|
![]() |
|
pseudorandom posted:it was a globally unique idiotic discussion. ![]()
|
![]() |
|
CRIP EATIN BREAD posted:it actually rules. you can define config values that are parsed either during compile or run time. it’s way more than Lombok, and it also handles the graalvm compilation via docker, if you want. i thought graalvm had super-high memory usage because of how its JIT works? idk i read that somewhere graalvm is super cool in general honestly, i feel like i don't hear about it much for how neat it is
|
![]() |
|
prisoner of waffles posted:what kind of comment did you throw on it? No std::function here, just nice lambdas C++ code:
|
![]() |
|
animist posted:i thought graalvm had super-high memory usage because of how its JIT works? idk i read that somewhere graalvm has two big problems: 1. they inexplicably based it on java 8 just as the rest of the world finally managed to move on to java 11. they then confused everyone by trying to imply that java 11 includes graal when really it doesn’t. 2. in a typical oracle dick move, it’s pay-for-performance. the free version is deliberately crippled, but you can buy an enterprise license that has all the jit features enabled! end result: it’s an interesting curiosity but i don’t personally know of anyone actually using it yet. maybe in a year or two if they catch up with the rest of java and pull their heads out of their asses on licensing but it’s oracle so lol to both
|
![]() |
|
Soricidus posted:graalvm has two big problems: oh i didn't know oracle had their claws that deep in it. RIP
|
![]() |
|
i imagine that client-side js state management is about as painful as state management in like a winforms desktop app
|
![]() |
|
Soricidus posted:2. in a typical oracle dick move, it’s pay-for-performance. the free version is deliberately crippled, but you can buy an enterprise license that has all the jit features enabled! This is true, but I foresee the native compilation to be the big draw instead of the polyglot JIT support.
|
![]() |
|
pseudorandom posted:it was a globally unique idiotic discussion. ![]()
|
![]() |
|
RIPTerm Torn
|
![]() |
|
pseudorandom posted:it was a globally unique idiotic discussion.
|
![]() |
|
pseudorandom posted:it was an universally unique idiotic discussion. ![]()
|
![]() |
|
not sure it was that unique tbh
|
![]() |
|
how do you know there are no colliding IDs generated on mars??!?!
|
![]() |
|
Krankenstyle posted:not sure it was that unique tbh
|
![]() |
|
CRIP EATIN BREAD posted:This is true, but I foresee the native compilation to be the big draw instead of the polyglot JIT support. polyglot is actually quite interesting. being able to call out from java to, say, some nodejs monstrosity with that call having essentially zero overhead (it's 'just a method call' that happens to go to bytecode that was compiled from javascript) is pretty cool and potentially very useful
|
![]() |
|
mystes posted:Oh poo poo maybe we called the default constructor? lmao
|
![]() |
|
mystes posted:Oh poo poo maybe we called the default constructor?
|
![]() |
|
Sagacity posted:I'm not sure. Sure, your app starts faster but since it can't do any hotspot optimizations it'll actually run worse than a JIT. maybe useful for cloud functions or command-line tools but idk Yeah but have they ported nodejs libraries? I suspect most nodejs code won't work there, esp. native stuff
|
![]() |
|
Native compilation is the response to the complaints about Java microservices and functions - memory usage, start up time and executable size (if you include the size of the JRE). The funny thing about this is that the most common Java web framework - Spring Boot - cannot support native compilation without heavy rewrites due to over usage of reflection magic. GraalVM would have to store a great amount of Java specific metadata to make it work, which would punish other users who expected a lightweight VM. Spring Fu is an experimental project that cuts down on reflection magic and offers a more fluent API for registrering beans without reflection. Some people noticed the struggles with Spring Boot, and now advertise libraries that look like trimmed down versions of Spring Boot. They use regular Java annotation processors to generate code that resolves bean dependencies at compile-time. They use Java EE DI/JAX-RS annotations instead of the Spring specific alternative, but the most telling influence is that they all support adding extensions without code changes and they all read config from "application.properties" by default. These frameworks includes Quarkus, Micronaut and Helidon.
|
![]() |
|
Sagacity posted:I'm not sure. Sure, your app starts faster but since it can't do any hotspot optimizations it'll actually run worse than a JIT. maybe useful for cloud functions or command-line tools but idk dunno, graal gets a closed world to optimize in, which hotspot can never have. and the cpu cost of optimization passes is paid at build time so can do fancy things too expensive for jit. dunno how much there really is of that though
|
![]() |
|
while true that JIT can have higher peak performance than graal native, from my experience it hasn't been very drastic. meanwhile, memory usage is wayyyy lower in native compiled stuff.
|
![]() |
|
![]()
|
# ? Feb 18, 2025 15:21 |
|
cinci zoo sniper posted:guids, arrays, and where to not find any of them or all pseudorandom posted:it was a globally unique idiotic discussion. ![]() Xarn posted:No std::function here, just nice lambdas not terrible, but high syntactic pucker factor for me. I assume in the real code you are capturing other stuff in the scope?
|
![]() |