| ▲ | pron 4 hours ago | ||||||||||||||||
Quite the opposite. Java is almost all about an optimising runtime with deep telemetry, and it helps with exactly the things AI needs the most help: https://youtu.be/fXBGBovpH88 | |||||||||||||||||
| ▲ | anko 3 hours ago | parent [-] | ||||||||||||||||
I now manage a team writing languages on the jvm. I have found the jvm ecosystem terrible for observability. Examples; - junit parallelisation - how are shards handled? how do you balance the tasks across forked processes? What is the bottleneck? Options are 1) pay someone for better tooling or 2) write your own - long pauses in garbage collection - how do you know which objects are causing the pauses? the options; 1) profiling 2) analysing heap dumps that you periodically capture 3) add metrics or gc logging - what is the performance bottleneck? options 1) profiling Sure AI can do this stuff, but it's painful and time consuming Contrast it to Elixir on the BEAM; - exunit parallelization - basically free and because you don't have coupling due to OOP. mocks are basically an antipattern - long pauses due to gc? They just don't happen - everything is isolated and can be cleaned up in parallel. - performance bottleneck? Open inspector and see what is doing all the reductions, and if any of the inbox queues are backlogged. You don't have to profile, you can just look in production - memory? Open inspector and sort processes by size descending. Again no profiling needed | |||||||||||||||||
| |||||||||||||||||