What features should C # 4.0 have in order to encourage a transition from Java?

Java is a popular language and platform with a huge ecosystem. Are there any features that C # 4.0 and its platforms must have in order for you to fully switch to programming in C #?

+6
java c # programming-languages language-features
source share
9 answers

Run it on as many platforms as Java?

Otherwise, it is completely irrelevant to us.

.

.

.


Edit: for a discussion of Mono using the "cross-platform .NET", see https://softwareengineering.stackexchange.com/questions/20275/mono-is-frequently-used-to-say-yes-net-is-cross -platform-how-valid-is-that


Edit 2015: Microsoft decided to open the source part of .NET, which will allow the community to port this to even more platforms than Java. I consider this the final step against the oracle's approach to the evolution of Java.

+24
source share

The general perception of C# on the market has nothing to do with language features , which, as I understand it, are now superior to Java. Adopting C # requires a complete organizational strategic shift mainly:

  • You already have a gazillion Java application and many Java developers. Why switch to C #? You will need new employees, and suddenly all of your applications will be out of date by definition. This is a huge deal! Overcoming this change poses a huge risk to your company for what could be only a small advantage: why bother?

  • You are at least used to the capabilities of many major operating system and middleware vendors that support your Java ecosystem. This disappears overnight, and you expose yourself to a monopoly pricing model (i.e. you are pretty much attached to Microsoft, in every sense and purpose). In the conditions of monopoly pricing it is bad! . Most organizations prefer to have a small technological flaw to avoid monopoly pricing, because pricing will almost certainly remove any additional revenue.

+15
source share

I really don't think C # has anything less for itself than Java, with the exception of ecosystems like IDEs, frameworks, etc. As for the features, it is currently far ahead.

+6
source share

I find that .NET is great, but it doesn't use it because it lacks the required feature # 1: portability. Yes, there is Mono ...

+3
source share

Another thing that really pushes Java Eclipse (*): this is the most successful and complete free development environment to date. And, along with a huge number of (mostly free) plugins, the cost / benefit is unbeatable.

A pair of VisualStudio C # + Reshaper might come close, but it's not quite there yet ...

(*): Some even say that Eclipse is the main reason that Java is so widely used.

+2
source share

My answer is about why I think so that many use Java, but want to use C # in schools:

At my university, Java is the first language that we learn, and the language that we will learn more about later. I think this is a common thing. But even we learn some python, c, C ++ and already know a lot of java, most students use C #. This is because everyone is told that C # will give them a task :) The school knows about it, and I know one feature that would make C # a new main choice for the school: to make it work on all platforms =)

+1
source share

We were taught in college that there is nothing engineering in MS Windows. How many people can accept this?

How can we, as developers, answer the questions of stability, reliability, scalability, accessibility, transaction isolation, consistency when creating some serious software system, working on an OS that is pale with โ€œsomethingโ€, and wherever you can expect some non-standard behavior and a potential source of problems that you can solve only by calling MS and pray to God, they will not find a fix for you for a long period.

Open Source is our only salvation. Java respects standards, puts a lot of energy into the security model, supports WORA, and it's a pretty simple language.

I can think that C # has an insecure pointer, this is enough for me to give up serious business with it if there are a lot of people on it ...

0
source share

I would definitely think about using C # when Microsoft buys Novell and provides official Mono support.

Then the next version of .net should run on Windows and Linux (OSX is still behind - like today with Java, but with Java because they wanted this way -)

Until then, Mono has been behind the latest version of .NET and is still adding to it some Linux-specific features (for example, the Mono.Linux module) that obviously don't work on Windows.

The language features are great, but if I need something more "dynamic" to work, I would prefer to use Ruby or Python

But, it's just me.

0
source share

Come guys, if you really do serious software and would like to have support for multi-platform applications, NET will never be what you need or you want.

It is not even intended to support this.

0
source share

All Articles