// Not a valid code anymore.
Person p = new Person();
// New dependency injection syntax.
Person p = new.Resolve<Person>();
Anders Hejlsberg and James Gosling said that they are very happy about this, as it is the first time Java and C# language teams collaborate on a huge decision like this. Interesting to know that Jon Skeet helped a lot for this collaboration as he is pro in both. Answering about this on StackOverflow, he has already gained 200K even before the spec is finalized.
As this decision is made on April, 1st, the plan to deliver this feature is going to be as fast as possible:
- C#: As the Visual Studio 2019 is going to ship at April, 2nd, Mads Torgersen himself added this feature to the compiler and it will be shipped with Visual Studio 2019. So you can start using it tomorrow.
- Java: As the compiler source code is in C++ it would take longer to implement this feature. According to the plans, this feature will be released as a part of Java 15 which is planned to release somewhere in 2025.
For more detail on this huge change, you can read a lot here:
Complete story and specification of removing the 'new' keyword from Java and C#