In a nutshell this has the same limitation has Xamarin.
The Business Logic is shared , but the UI Logic and the Technical Logic aren't shared or not completely.
The Xamarin community has been struggling with this issue for half a decade and they ended up re-writting their own rendering engine[0] (similar to Flutter) in C# on top of Xamarin to obtain truly MVVM Cross-Platform Framework.
My point here is very simple , getting Kotlin to run on iOS is great, but it's somewhat a waste of time because of how much time and effort it would talk to create a Runtime or Rendering Engine to normalize UI/UX on differents platforms.
I think the whole idea of "We need to replace Java with [Insert Language]" is much more complicated topic than just saying "X is free , Java is owned by Oracle".
Even is this is true , Java is by far one of the most performant programming language that exist on earth.
People just don't realize the hundreds of millions of dollars that went into the JVM and the JDK.
Even if they are great alternatives like Go or .NET , they either come with huge limitations in performance or their ecosystem.
Per say , finding JVM developers isn't that hard, regardless of the geography. However , finding Go developers outside of the Bay Area ? Good luck with that.
The issue with Patent on the JVM is well know and there is very little to nothing that we can do about it.
Quitting your job if you have kids a wife and a mortgage is a much more complicated topic than just saying "F* this I'm going to raise cows in the Montana"
It's complicated to move internally in a corporation , so thinking as to moving to another company to another position when you have responsibilities it's pretty much like playing the Russian roulette with your finance and your situation.
Let's say you are PHP consultant , you set up a Redis + EC2 instances.
You enable a redis enterprise module in that instance.
Well technically speaking you are breaching the license of RedisLabs. You are not allowed to do so without their consent because those modules aren't "bsd" or "mit" they are "Commons Clause".
In short , if you are doing something with the RedisLabs modules ( consulting / hosting / training / support ) you owe $$$ to RedisLabs.
IMO 100% of ventured backed Open Source project will adopt this licence.
Just to name a few :
- Elastic
- Docker
- CockRoachDB
This licence is a disguised "Oracle" intellectual property.
This what Oracle has been doing for years and bring them billions in revenue.
It ensure that one way or another you'll pay $$$ to the vendor of the tech.
Most of these companies quoted above are not profitable and are trying to find a way to be profitable.
With this licence it allows them to charge $$$ and to have full control over the IP for and become the sole allowed provider for consulting / support / training and basically anything that is related to this technology.
This is proprietary software with an "unlimited trial" edition and source code hosted on Github.
> Angular / VueJS / Ember: when you need a webapp done quick and reliable,
> in exchange allowing a big black-box instead of an architecture.
Here we have the typical "coder" mindset, It's very clear reading these line that the developer has never experienced with those frameworks as both Angular and Vue has very strong and well designed architecture which are obviously open source.
Unfortunately it's very rare these days to find developers that can argue passed beyond "Google Trends Charts" and "Github Stars" about what makes a good or bad framework and why X is better than Y or why X architecture is more efficient than Y.
> React: when you need total control over the architecture
Could the author be more specific here ? I don't remember "Ruby on Rails" to give much freedom in terms of architecture yet it empowers thousands of large traffic web apps without any problems.
It sounded as very common beginner beliefs which is "It's not possible to do this with [Angular/Vue]".
Hence the majority of the article isn't really specific to JS.
Working for large corporations I've often notice this :
Either the devs on the project don't have the required experience and will deliver poor quality code creating immediate "legacy" , or either it'll be outsourced to another company with no governance plan to review the code quality creating a "black box".
Because there is very little standard and regulation in software industry about competence, you can have two devs claiming they are "Software Developer" with one able to deliver a full project by himself the and the other not capable of creating a simple web page in HTML.
Hence , I've noticed very little company understand the importance of "tech" , "IS Governance" and investing in their staff in general, they often see "tech" as a constraint like : "We have to do a website for our customers , otherwise we'll loose market share" and not "We have to seize the opportunity to create a platform for our customers, it will drive growth massively"
This is sad , but this is pretty much the standard in corporation these days.
This is usually what people would do when using NoSQL database to reduce latency by caching elements with an in-memory database.
Basically they are mixing up Redis with RocksDB , which is what devs usually do to get even higher throughput by storing IDs in Redis to save a call to RocksDB.
Now what bother me is the look of repository , it looks completely rushed out.
No logo , unclear description of the tech...
Hence , as other mentioned it's just "an engine" , it doesn't actually contain the network layer, the clustering mechanism etc...
I guess it's probably the tech that is powering their flagship engine : "CosmosDB".
This is suppose to be funny , unfortunately this is the sad reality of what you'll find in 90% of Enterprise / Startups environment as well as THE majority of open source repositories of popular open source projects.
I've noticed this especially true for JavaScript and Go.
In JavaScript , because the language is still evolving and there is no real standard about how to architect code with this language unless you are using a entire "platform" like Angular / Vue / React witch will highly influence your coding style.
In Go because Go developers are performances obsessed , coming from C/C++ background and do believe that naming their variable with one letter will save 1GB of memory allocation , 1000 CPU Cycles and make their code "Clear and Concise"
Ultimately , because there is very little standard in this industry in terms of code governance and a large percentage of projects are outsourced to other companies , we end up with what is described in this repository.
In a nutshell this has the same limitation has Xamarin.
The Business Logic is shared , but the UI Logic and the Technical Logic aren't shared or not completely.
The Xamarin community has been struggling with this issue for half a decade and they ended up re-writting their own rendering engine[0] (similar to Flutter) in C# on top of Xamarin to obtain truly MVVM Cross-Platform Framework.
My point here is very simple , getting Kotlin to run on iOS is great, but it's somewhat a waste of time because of how much time and effort it would talk to create a Runtime or Rendering Engine to normalize UI/UX on differents platforms.
[0]https://github.com/AvaloniaUI/Avalonia