In KungfuPanda there is this line that the Panda says "I love KungFuuuuuuuu", well I normally don't tell like this, but when I saw this and (starting to use this), I feel like yelling"I like Metaaaaa or is it LLAMMMAAA or is it Open source.. or is it this cool ecosystem which gives such value for free...
This sounds so true yet false. For absolutely every successful life there is a trail of failed lives left behind and restarted. And I dont mean like movie star or Nobel prize success; just plain vanilla happy and almost boring life. It is a real cliche, but it is true; never ever give up easily. That means that you may need to admit and give up things that never would have worked out, but hold on to things that may; and to know the difference is impossible; you have to trust in your principles; the right principles may extract a terrible initial cost but lead to great happiness in the end. Amen (And you can get Principles here - https://www.goodreads.com/book/show/34536488-principles )
Why choose Java of all languages. Why not something more modern and less verbose like Go or Rust. Just asking as I have worked enough in Java and then spend a lot of time in GC tunining. Granted the code was not that great and from a diverse team with different skill levels causing all the leaks.. But still
They actually used clojure; which is an interesting choice.
GC tuning on the JVM is much less of a topic these days than it used to be. The default garbage collector was changed at some point (G1). It has some configuration options but they come with sane defaults that mostly just work fine and adapt to your memory and cpus. You don't spend a lot (or any) time on tuning this typically. I know I haven't even looked at GC params in many years now. Never had to. And we run on modestly sized vms of 1 or 2 GB typically. This was different 10 or so years ago when G1 was still newish and not default. ZGC was introduced with Java 11 (I think), and aimed at very large heaps. It trades off additional overhead for guaranteeing very low latency. That tradeoff is why it is not default. For most users, G1 without any tuning whatsoever should be fine. Generally, if you are stressing your heap, you get more hardware. And if you are not, the GC should be keeping up just fine.
Anyway, like it or not, the JVM has been a work horse for big data for ages. Things like Hadoop, Kafka, Cassandra, Elasticsearch, etc. all run on it and scale fine (and typically without a lot of GC tuning). The only feasible alternative to the jvm used to be things like C++. Lately, Go and Rust are pretty credible in this space as well and both have had to do a bit of catchup in terms of maturity of tooling, libraries, and language features. Things like generics (Go), async (Rust), etc. are still fairly recent additions and both kind of relevant in a project of this type.
In any case, switching languages is hard for teams and these guys have been around for quite some time. When they started, Rust was a lot less mature than it is now and Go was still pretty new as well. Neither was an obvious choice for this stuff at the time.
If there were enough cars fitted with sensors that can learn from their driver's actions and reactions I am pretty sure an AI system can learn from this huge pool and be a good driver. A good driver also makes mistakes. And this is still nothing related to intelligence. Our networks are as of now what one calls universal approximates. Actually replying to so many different queries whether it is medicine, computer science, history , it almost seems like a better interface to the net than google
I use GRPC between micro services instead of REST and for that it is really great; All the deficiencies of REST - Non versioned, no typed goes away with GRPC and the protobuf is the official interface for all micro-services. No problems with this approach for over two years now; and also multi language support - We have Go and Java and Python and TypeScript micro-services now happily talking and getting new features and new interface methods updated. Maybe it was demise in the web space; but a jewel in micro-service space
This is more or less what stubby is/was for Google and so the original driving force in implementing it. Now, if you add a catch all service that translates the requests from the outside to Protobuffers and then forwards the translated requests to the correct service you have a GFE (Google Front-End) equivalent.
Should you do it? Probably not as it's not just a dumb translation layer and it is extremely complex (e.g. needs to support streams which is non-trivial in this situation). For Google it's worth because this way you only have to handle protobuffers beyond the GFE layer.
With GRPC, you lose the ability to introspect the data on-the-wire. You lose the ability to create optimized data formats for YOUR application (who said you have to use JSON?) Most people can’t implement REST correctly, so it has been a shitshow for the last 20 or so years, GRPC isn’t a magic bullet, it just forces you to solve problems (or helps you to solve them) that you should have been doing in the first place. You can do all of these things without GRPC, there is no power it grants you that can’t be done better or at all in your own libraries and specs.
--
If choice is due to complexity of dockers loc as was mentioned, then that should be compared against stability; as abstractions go, it is not leaky and pretty stable
--
Now-a-days it hardly takes a few minutes to use docker or podman; and few more to configure a free CI system; and you have a good base to start and grow and migrate to k8s or such when your services grow
SO has been invaluable for professional programmers like us who has to work on some many different platforms and use different frameworks that it is impossible to be master of all. But the one thing I don't like is being punished for a poor answer- the down votes, for just trying to help - a degree lesser than delete, but leaves a bad feeling still. I like more the medium way - just upvotes and then the rest naturally gravitate to the bottom
happened to my elder sister who is a teacher hosting video class due to lockdown in India. Some idiots think it is fun and the worst thing is that they put a video grab of this in their youtube channel - themed disruption or something - to drive traffic - yuck , the state of minds! and those who follow such channel. ( It is reported to local cybercell , but it left my sister who is bit older to all this technology very rattled)