seeing news like this really brings me down, no matter what i hate when employees take the hit and i sure hope they can find another job sooner rather than later.
Been there and done that, it is key to manage expectation with both companies AND yourself. Make sure every assignment is very well thought out and planned, try to minimize long meetings by doing more small ones asking stuff like : what was achieved yesterday, what will we achieve today, and do I need help from anyone?.
Make sure to get rest and definitely try to scale your operation and avoid moving work to weekends because it will get out of control very fast. I made the mistake of taking more than i could chew and had to let go one of my clients because I was so tired i couldn't keep the quality of my work just as I wanted to.
This holds true for Japanese companies outside Japan, my wife was working as a developer for TOTO Mexico and they had a lot of personnel rotation because of these differences, mainly the meeting culture, it would often get in the way of the work and people ended up quitting or getting fired. It was however a good experience because of the high quality and standards it kept up with the product.
After so many years microsoft finally presenting their tools in a more moden way. Never been a huge fan of .NET but i can't deny is a great tool hopefully people try it out on more platforms.
.Net is 14 years old now - if you don't know what it is by now you're probably not ever going to know. It's a cross platform runtime and a group of programming languages that run on it, just like Java.
The general idea of .NET as a platform is easy to understand. The naming of .NET Core, .NET Framework, ASP.NET, etc. and the difference between them is not.
My point is that it's just hard to understand what exactly one means when they're writing ".Net". Do they mean the entire framework, a specific library, the CLR, one language, etc. For whatever reason, the name has a very contextual meaning, and people use them interchangeably (".Net Core" is clearly specific though).
Not that they're alone. Adobe did worse with "Flex" since it could refer to the compiler, a framework, and an editor at one point until they decided to make it a bit more standardized.
Java JRE/SE/JDK... It's really not much more confusing than what others use, and as to what you need to install for something.
.Net core apps should be a portable application (portable as in the runtime is compiled in)... Yeah, it is a little confusing, and hopefully removing some of the separate terminology will help. A lot of what has changed, is that you will likely be developing .Net Core (or Xamarin apps) that will target a given platform for running in... Most of the rest should be cross-platform modules that install via nuget (platform/language package manager) and bundled with the application output.
> Java JRE/SE/JDK... It's really not much more confusing than what others use
That's not saying much; "Java" means so many different things it's enough to make your head spin. At least these days it isn't a stock ticker symbol any more.
Java is confusing too so being just like Java doesn't mean it's easy to understand. (Do I need the Java runtime environment, the SDK or the browser extensions to run this code?)
That's really only half of it; Java is also a programming language, a bytecode spec, and a binary executable that sometimes points to a JRE and sometimes refers to a JDK, depending on how you installed it. Arguably it's also now being used to refer to the API of the standard library too.
The naming is very confusing but it's better than the old name of ASP.NET 5. Source: I had to write about this for a book and it was a challenge to explain it clearly. :)
I went full circle, from a critic how they cloned Java back when my employer had the privilege to beta test .NET as a Microsoft partner, to someone that enjoys delivering solutions on the .NET stack.
For me the sweet spot will be when .NET Native becomes more mature and I can get Delphi/Modula-3 back.
C# was originally designed by Anders Hejlsberg, the C# 1.0 features that weren't taken from Java (J++) were based on Delphi, like Properties.
You also have RAD development on .NET.
Although .NET always had AOT compilation via NGEN, it always depends on the runtime being available at OS level.
With .NET Native it is like things were on PC before JVM took off, with strong typed system languages like Delphi and Modula-3 that compile directly to native code.
I know one needs a bit of imagination to make the comparison, but it is how I like to think about it.
i can't speak for the author, but my first thought was the speed. Delphi was almost as easy to develop as Visual Basic, but the result was fast. a native EXE, no big framework-dependencies.
Have you tried writing a complex wep app/api with C#? It's an absolute joy to use. Python still has it beat for math and ML libraries, but for getting up a quick web app with robust (and easy) data queries (LINQ) it's pretty unbeatable.