C# is the past, the present and the future

Posted by Filip Ekberg on January 11 2013 22 Comments

Ever since C# first appeared back in 2000 a lot has happened every year. As we’ve been introduced to more and more language features, syntactic sugar and handful libraries it has become clearer to the world that C# is here to stay. You might find it weird to say something like that in 2013, but frankly it is not. As history might have taught us, even though something is very popular for a period of time that does not guarantee it to live forever.

In a certain dark area of internet, there’s a set of people that see one problem with C# and that’s a problem big enough for them not to touch it with a pitch-fork; Microsoft. Because Microsoft is behind C# a part of the developer community has over and over again claimed it being something that will die soon enough. However, I am sorry to tell you guys that this won’t happen for a long, long time. C# is here to stay.

It’s easy to get very analytic and philosophical about why C# has been successful both in the past, the present and will be in the future. However the reason is quite simple; live free or die hard. C# is a language that lives and does so quite well. In my point of view when a language “lives” it evolves just as anything in life due to the evolution. C# has adapted to the needs of the community over these 13 years or so very well.

When the first release of C# was out, it was a beginning of a new era. Even though we had Java, we wanted something else in the Windows environment. Over the years C# evolved and got generics, lambdas, asynchronicity and soon compilation as a service is hitting the market (+ much more). Even though the last part is not a C# (read: language) feature, it’s something that will be out there due to the languages existence.

C# isn’t the first language that lives on and evolves with the community, so does other great programming languages as well. Even C++ is adapting to this with the new isocpp.org. In the darkest alley-ways we still have the people not wanting to touch C# with a pitch-fork because it’s behind Microsoft, but it’s time to step out of the comfort zone and learn to love it.

No matter if you are a Web, iOS, Android, Linux, Unix, OSX, Windows, Micro-Processor, Tablet, Phone or Refrigerator programmer, you can develop using C# due to Mono and .NET Framework being accessible on all these different platforms.

What is stopping you from learning and using C# today?

As it’s easy to port your C# code to any device and any operating system, you can give great value to your customers systems with reusable code. You no longer have to make one app for iOS, one for Android AND one for Windows Phone. Just use MonoTouch and make one powerful all-device application and be happy with it. For Mobile development, C# is the way to go and Xamarin has posted 8 reasons why, be sure to check that out.

C# was here to stay from the beginning, we love it in the present and we will use it more and more in the future.

Vote on HN

22 Responses to C# is the past, the present and the future

  1. nonameNo Gravatar says:

    Anyone using C# because they think Mono makes it a cross platform dev platform needs to be very careful. We have an app which was written using C# and the WinForms API because we believed at the time that this would be a cross platform solution. Now however we find that the WinForms browser control (which used to work in Mono) is broken in Mono and it looks like Xamarin has no real intention of fixing it. We will have to port as much as we can to a cross platform environment but in reality this probably means rewriting most of it at huge cost.

    We generally like C# as a language but unfortunately have concluded that it cannot be used as for cross platform development.

  2. WayneDBNo Gravatar says:

    @noname: The Mono guys had made it very clear from the beginning that WinForms was not open source and that you should not use it for cross platform development. You should followed Xamarin’s actual advice which is to use an abstraction pattern and build three different GUIs, one for each platform.

    Anyone who doesn’t think Mono is cross platform needs to take a look at https://github.com/picoe/Eto

  3. nonameNo Gravatar says:

    Our project is quite old now, so it was Ximian rather than Xamarin who were developing Mono. They said that WinForms would be supported – that’s why they implemented the API.

  4. dodgy_coderNo Gravatar says:

    @noname, I was developing in C# in 2002/03 when Mono came out and remember at the time it was made explicitly clear that WinForms would not be supported … if you needed cross platform their preferred solution was to use GTK#.
    To be honest WinForms in 2013 is probably considered legacy technology. Nothing much has changed in WinForms since .NET 2.0 in 2005 … you may end up needing to port it anyway to some other technology.

  5. AZNo Gravatar says:

    @noname. I’m sorry you had a bad experience but you are relating to just one control in the WinForms library that was not even a .NET control in the .NET framework but just a wrapper over the native COM interface if Internet Explorer. That control effectively lets you embed IE’s rendering engine into your application. Claiming that Xamarin needs to somehow port Internet Explorer out of the windows ecosystem just to make your code portable is kida naive. And also naive it appears was your decision to use an embedded browser in your app hoping that somehow somebody will make that portable.
    Mono’s purpose is to port the .NET ruintime and framework and it does so at an surprisingly good coverage level. There are some areas that are not ported (native COM, Windows interop mostly for obvious reasons) but those areas make for a very small percentage of the ecosystem.

  6. SmurphNo Gravatar says:

    It’s not that Mono is not a cross-platform solution for C#, it’s that you can’t write a C# app against the .Net Framework and assume that you can build it against Mono later without issue. Significant chucks of the .Net Framework are going to be missing from Mono, UI APIs such as WinForms and WPF being the prime example. If you’re planning on using Mono, you should start building for it at the beginning.

  7. SteveNo Gravatar says:

    Cross platform doesn’t mean free lunch. If you’re supporting Win7/WinXp and WinForms apps then great carry it forward. But realize that win forms library that you use will give you a write once and it will exist for the rest of time solution. Cross platform means you have to manage dependencies just the same as Java and now Microsoft (as we move from Win32 to WinRT). #FormsAppsAreDeadLongLiveFormsApps

  8. Pingback: The Daily Six Pack: January 12, 2013 | Dirk Strauss

  9. MikeNo Gravatar says:

    “(+ much more)”

    Yeah? Like what?

  10. Filip EkbergNo Gravatar says:

    Hi Mike,

    For instance TPL, Dynamic (DLR), Anonymous types & methods, Extension methods and LINQ.

  11. Martyr2No Gravatar says:

    One thing we haven’t mentioned is that C#, along with most .NET technologies, are tightly dependent on the success of Windows as a platform. If at any time Windows loses the luster it has left I feel the popularity of C# will slowly die away with it. Sure it may exist a bit longer with mono, but I fear it may die along with Microsoft. Perhaps that is what all those people in the dark alley of the Internet means when they say that it’s behind Microsoft.

    Let’s hope that is not the case. C# is great and I love using it. :)

  12. Andrew PennebakerNo Gravatar says:

    What is stopping me from learning and using C# today? Visual Studio sucks, C# is Microsoft’s attempt at a Java clone, and Java’s not that good a language either.

  13. Pingback: C# is the past, the present and the future | My Daily Feeds

  14. John FNo Gravatar says:

    @noname,

    How did you get to the point where a re-write would be a “huge cost” without even testing the UI?

  15. Pingback: Dew Drop – January 14, 2013 (#1,479) | Alvin Ashcraft's Morning Dew

  16. Chris MarisicNo Gravatar says:

    @Andrew clearly you’re a hater. Visual Studio is the best IDE ever developed, and that fact is accepted as such by the industry as a whole.

    C# is similar to Java, but C# blows Java away in every facet. Java the language is fine, the JVM is what is terrible. The JVM the very thing that was supposed to make Java dominate and exist in everything is it’s biggest achilles heel. You can make software that can run on tons of platforms, sure, just none of the platforms exceedingly well, assuming you even have the cross platform support for the UI library you used (I don’t know if that’s relevant any more but i remember the swing vs etc chaos back when I wrote java in college before I was shown the light which is C#)

  17. fdrNo Gravatar says:

    Thats companies like google and amazob use mono instead of Java.
    Ops ,wait : they dont , because the jvm wipes the floor with mono and clr face.

  18. FizzNo Gravatar says:

    Many .Net devs including myself are very nervous since the whole Win8 JS/HTML “only” crap and the “death” of Silverlight.
    Will C# last forever? Yes look a COBOL.
    Will C# live forever? Depends upon the whim of MS execs.
    PS: Java is no longer the OS wonder kid, it is now the spawn of Satin (Oracle)

  19. onecsharpdeveloperNo Gravatar says:

    c# is dead with windows 8 start learning all the new libs and APIs that come with metro apps

  20. Filip EkbergNo Gravatar says:

    onecsharpdeveloper,

    On the contrary. C# is more alive than ever before!

    Fizz,

    “Depends upon the whim of MS execs.” I don’t think that’s entirely true since there are open-source implementations of the compiler and tooling.

    Thanks for the great comments everyone!

  21. KasemkitNo Gravatar says:

    @Filip Ekberg

    “On the contrary. C# is more alive than ever before!”

    Can you expand on this point,lease?

  22. Filip EkbergNo Gravatar says:

    @Kasemkit, C# is, as I say in the article, more alive than ever. It grows with the developers and even if there’s new APIs and new patterns to follow with Windows 8, that’s not something I would consider bad. Therefore, I’d say that C# is more alive than ever before; it’s growing, getting more users each day and now you can even use it on the majority of phones out there using Mono (Xamarin).

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>