Announcement

Collapse
No announcement yet.

So, Microsoft just open sourced most of .NET...

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • #31
    Originally posted by gamerk2 View Post
    I'm sure the people who have been busy bashing C# and .NET and MONO are going to have their heads explode over this...
    Can Microsoft's C# compiler run on Linux? Does C# LINQ to SQL work with any database other than Microsoft?

    Even if they fixed this, wouldn't this just be playing catch up with the Java platform, which has fully supported Win/Mac/Linux in pretty much every way for many, many years?

    Regarding C# the language, wasn't C# created as bascially a fork of Microsoft's Java? Isn't C# almost the exact same language as Java, with all of the same major features and flaws?
    Last edited by DanLamb; 04-06-2014, 11:04 AM.

    Comment


    • #32
      Pretty much every major developer technology is free and open source today. Microsoft is just catching up with that.

      To consider an example outside of the .NET/JVM rivalry: look at Google Dart, Microsoft TypeScript, CoffeeScript. They are all free and open source. Google and Microsoft both want to influence the standards, and to drive that, they have to offer their IP for free with friendly licensing terms.

      When considering JavaScript vs CoffeeScript vs Dart vs TypeScript, most developers are not worried about lawsuits and the nitty gritty licensing details. They are worried about making a big commitment to a technology that is extremely single vendor centric or will be a dud in three years.

      Personally, both Microsoft TypeScript and Google Dart have very technically attractive features over JavaScript and they are both completely open, but I'd conervatively stick with JavaScript because I don't want commit to a super vendor-specific technology and there is a really good chance that Dart/TypeScript won't exist in their current form in three years, and I think the deficiencies of JavaScript can be tolerated.

      With .NET/Java, most developers aren't worried about lawsuits, even though sure Oracle sued Google, and Microsoft sued the TestDriven.NET guys. Most devs are concerned which is the better technology ecosystem and works with the tools they want to use. Foe example, A lot of devs think C#/Java are crappy old languages and want more elegant languages like Scala/Clojure/F#.

      Comment


      • #33
        Originally posted by DanLamb View Post
        Can Microsoft's C# compiler run on Linux? Does C# LINQ to SQL work with any database other than Microsoft?
        https://code.google.com/p/dblinq2007/
        and now with roslyn open sourced... what is stopping anyone to do that from grounds up?

        Originally posted by DanLamb View Post
        Even if they fixed this, wouldn't this just be playing catch up with the Java platform, which has fully supported Win/Mac/Linux in pretty much every way for many, many years?
        so did mono

        Originally posted by DanLamb View Post
        Regarding C# the language, wasn't C# created as bascially a fork of Microsoft's Java? Isn't C# almost the exact same language as Java, with all of the same major features and flaws?
        not even close. they are very much different. for example, java class has no real in code visible properties. you need to write get_/set_ methods and then remember that those are property methods. in c# you write as public int something { get; set; }. languages differ on lots of things where c# simply took nicer approach

        Comment


        • #34
          Originally posted by randomizer View Post
          Originally posted by TheBlackCat View Post
          Yes, you can continue to use .net...for now. However, it is not the approach recommended by Microsoft, and who knows how long Microsoft will continue to personally support it.
          Probably for a decade longer than they'd like to. There is an enormous investment in .NET (along with Java) for LOB software, and we know how often that is maintained. .NET 3.5 SP1 and later are tied to their respective Windows releases, so .NET 4.5 will be supported until 2023.
          I think that is too optimistic. If a product does not align with the corporate goals, Microsoft has demonstrated in the past how quickly they can get rid of it (remember Win32s?). If you are not developing for the API that is en vogue at Microsoft right now, you are living in the constant danger of Visual Studio dropping support for it between minor releases.

          Comment


          • #35
            Originally posted by chithanh View Post
            I think that is too optimistic. If a product does not align with the corporate goals, Microsoft has demonstrated in the past how quickly they can get rid of it (remember Win32s?). If you are not developing for the API that is en vogue at Microsoft right now, you are living in the constant danger of Visual Studio dropping support for it between minor releases.
            how does visual studio dropping support even come in this context?

            by opening compiler under apache any ide can use it to full extent and gain legal security to do so. you suddenly don't even depend on visual studio like you did until this. if you don't trust closed approach, then you can always use the only open part (compiler) from MS and open ide that you trust they won't drop features. it's a win-win situation unlike before

            maybe you didn't watch keynote, but as part of demonstration roslyn was used as part of xamarin studio on osx

            Comment


            • #36
              Originally posted by justmy2cents View Post
              https://code.google.com/p/dblinq2007/
              and now with roslyn open sourced... what is stopping anyone to do that from grounds up?
              Time. Porting takes time, so somebody must be willing to do it, and continue doing it for maintanance. Otherwise it won't happen. You are basically saying that cross-platform is a non-issue since any casual user can port the tool-chain over? or maybe you can explain to me exactly what you want to communicate.

              While I appreciate the link to dblinq2007, I believe you should look closer at your link before taking it to prove support of various databases. The codebase have no active developers, has not seen a release in four years, has 145 open issues that seems to have been open for as long as the code has existed. What exactly do you want to prove with that?

              Comment


              • #37
                Originally posted by Del_ View Post
                Time. Porting takes time, so somebody must be willing to do it, and continue doing it for maintanance. Otherwise it won't happen. You are basically saying that cross-platform is a non-issue since any casual user can port the tool-chain over? or maybe you can explain to me exactly what you want to communicate.

                While I appreciate the link to dblinq2007, I believe you should look closer at your link before taking it to prove support of various databases. The codebase have no active developers, has not seen a release in four years, has 145 open issues that seems to have been open for as long as the code has existed. What exactly do you want to prove with that?
                i never said nothing about porting (i even specified that some cases in .Net are really bad). i said OSS could probably do it better as far as WORA goes since WORA was never primary concern in original framework. this cross platform is more or less new thing after so many years of .Net existance. beside the fact that framework would be completely independent from all fears named here (especially since all patents on compiler are granted). this or you're saying that everything not made by MS is not worth anything and you expect MS will do all the work for you even in areas they are not touched with

                and no, i'm not saying anyone can port (i did create my own though), i am saying you can select already done (not necessary ported) parts which work equally everywhere as part of your design. like, take qyoto instead of winforms and so on.

                i seriously never liked linq. brings a lot of problems in my head, so i'll take your word instead of wasting time on tech i don't like. also, you were asking about feasibility, not perfection. i simply pointed out that was feasible for anyone ever since linq existed.

                Comment


                • #38
                  Originally posted by justmy2cents View Post
                  Originally posted by DanLamb View Post
                  Regarding C# the language, wasn't C# created as bascially a fork of Microsoft's Java? Isn't C# almost the exact same language as Java, with all of the same major features and flaws?
                  not even close. they are very much different. for example, java class has no real in code visible properties. you need to write get_/set_ methods and then remember that those are property methods. in c# you write as public int something { get; set; }. languages differ on lots of things where c# simply took nicer approach

                  You are echoing a C# debate point and are just oblivious to the counter point:

                  Java and C# are both broken in that regard. You already understand why Java is broken: code must maintain these verbose get/set methods.

                  C# has these redundant overlapping concepts of both variables and properties, which is a mess. The syntax for say, creating a read only variable vs a read only property is totally different: for variables you use the readonly keyword and that keyword will error if you try to use it with properties. Scala actually solves this issue elegantly. There is no separate notion of variable vs property. All class variables/values are properties. They can all be overridden in a subclass or changed to methods without breaking binary compatibility. In Scala, whether you have a singleton var/val, a local var/val, or a class instance var/val, they use the same syntax, and they all support type inference. C# only supports type inference for local variables, but not for class variables, static/singleton variables, or properties. Scala is simpler and more elegant in every way, and the C# fanatics are obvlivious to this and keep their heads buried in the sand.

                  Your C# example of "public int something { get; set; }" is less nice than the Scala parallel of "var something = 0"

                  Originally posted by justmy2cents View Post
                  Originally posted by DanLamb View Post
                  Can Microsoft's C# compiler run on Linux? Does C# LINQ to SQL work with any database other than Microsoft?
                  https://code.google.com/p/dblinq2007/
                  and now with roslyn open sourced... what is stopping anyone to do that from grounds up?
                  Sure, that's better than nothing. But competitors have been running on Linux and supporting Linux perfectly, which is better.

                  Comment


                  • #39
                    Originally posted by justmy2cents View Post
                    Originally posted by chithanh View Post
                    Originally posted by randomizer View Post
                    Originally posted by TheBlackCat View Post
                    Yes, you can continue to use .net...for now. However, it is not the approach recommended by Microsoft, and who knows how long Microsoft will continue to personally support it.
                    Probably for a decade longer than they'd like to. There is an enormous investment in .NET (along with Java) for LOB software, and we know how often that is maintained. .NET 3.5 SP1 and later are tied to their respective Windows releases, so .NET 4.5 will be supported until 2023.
                    I think that is too optimistic. If a product does not align with the corporate goals, Microsoft has demonstrated in the past how quickly they can get rid of it (remember Win32s?). If you are not developing for the API that is en vogue at Microsoft right now, you are living in the constant danger of Visual Studio dropping support for it between minor releases.
                    how does visual studio dropping support even come in this context?

                    by opening compiler under apache any ide can use it to full extent and gain legal security to do so. you suddenly don't even depend on visual studio like you did until this.
                    I was talking about "how long Microsoft will continue to personally support it". I included the previous quotes again for reference. Once Microsoft drops .NET from Visual Studio (which may happen next year, or in 2023, or some time in between), it will effectively be gone from the mindset of the developers in the Microsoft ecosystem.

                    Of course, existing applications will continue to run, but practically no new ones will be created. And if you invested in creating a .NET library or other complex software system, tough luck.
                    Originally posted by justmy2cents View Post
                    if you don't trust closed approach, then you can always use the only open part (compiler) from MS and open ide that you trust they won't drop features. it's a win-win situation unlike before

                    maybe you didn't watch keynote, but as part of demonstration roslyn was used as part of xamarin studio on osx
                    It is not new that you can use open source tools to write .NET applications. But (almost) nobody did, and the reason was not the lack of patent licenses. Xamarin has insignificant installed base compared to Visual Studio, and open-sourcing of Roslyn is not expected to change that.

                    Comment


                    • #40
                      Originally posted by DanLamb View Post
                      You are echoing a C# debate point and are just oblivious to the counter point:

                      Java and C# are both broken in that regard. You already understand why Java is broken: code must maintain these verbose get/set methods.

                      C# has these redundant overlapping concepts of both variables and properties, which is a mess. The syntax for say, creating a read only variable vs a read only property is totally different: for variables you use the readonly keyword and that keyword will error if you try to use it with properties. Scala actually solves this issue elegantly. There is no separate notion of variable vs property. All class variables/values are properties. They can all be overridden in a subclass or changed to methods without breaking binary compatibility. In Scala, whether you have a singleton var/val, a local var/val, or a class instance var/val, they use the same syntax, and they all support type inference. C# only supports type inference for local variables, but not for class variables, static/singleton variables, or properties. Scala is simpler and more elegant in every way, and the C# fanatics are obvlivious to this and keep their heads buried in the sand.

                      Your C# example of "public int something { get; set; }" is less nice than the Scala parallel of "var something = 0"
                      you seem to be missing parts too. there is a BIG distinction between c# class variable and class property. class variable can only contain value and initializer. while property contains automatic or custom get and set methods and initializer. another even bigger distinction is that variable won't show up in reflection while properties will. and there is shitload of reasons why would you want one or another.

                      don't know if it is just me, but i grew hatred for scala in manner of minutes when i looked at it long ago. maybe it is the fact that i started long ago with pascal and prefer obvious&readable over features, maybe something else.

                      and i did mention visual that as only example, i never said it's not broken (in fact i mentioned few times it is). i for example can't stand naming conventions in java for the love of me.

                      Originally posted by DanLamb View Post
                      Sure, that's better than nothing. But competitors have been running on Linux and supporting Linux perfectly, which is better.
                      which competition? more or less fare equally bad
                      Last edited by justmy2cents; 04-06-2014, 03:26 PM.

                      Comment


                      • #41
                        Okay, I've seen Qyoto mentioned a few times now and perhaps because it didn't make phoronix news they're missing that Qyoto is dead and QtSharp is it's successor. Back when Xamarin first announced the release of Cppsharp I asked a question: "Would this benefit Qyoto?", well as it turned out ddobrev the main developer of Qyoto decided shortly afterwards to abandon Qyoto and create QtSharp based upon CppSharp and has been working on improving CppSharp and QtSharp since then.

                        https://github.com/ddobrev/QtSharp
                        https://github.com/ddobrev/CppSharp
                        Last edited by Luke_Wolf; 04-06-2014, 03:59 PM.

                        Comment


                        • #42
                          Originally posted by curaga View Post
                          How is planned obscolescence not sinister?
                          Because the world changes and it's not that scary?
                          Software projects, platforms, frameworks and even mindsets get deprecated or are made obsolete all the time. It's been like that since there's been software, and it's completely healthy.
                          Planning it actually just makes it better.

                          Comment


                          • #43
                            Originally posted by DanLamb View Post
                            You are echoing a C# debate point and are just oblivious to the counter point:

                            Java and C# are both broken in that regard. You already understand why Java is broken: code must maintain these verbose get/set methods.

                            C# has these redundant overlapping concepts of both variables and properties, which is a mess. The syntax for say, creating a read only variable vs a read only property is totally different: for variables you use the readonly keyword and that keyword will error if you try to use it with properties. Scala actually solves this issue elegantly. There is no separate notion of variable vs property. All class variables/values are properties. They can all be overridden in a subclass or changed to methods without breaking binary compatibility. In Scala, whether you have a singleton var/val, a local var/val, or a class instance var/val, they use the same syntax, and they all support type inference. C# only supports type inference for local variables, but not for class variables, static/singleton variables, or properties. Scala is simpler and more elegant in every way, and the C# fanatics are obvlivious to this and keep their heads buried in the sand.

                            Your C# example of "public int something { get; set; }" is less nice than the Scala parallel of "var something = 0"
                            Actually variables and properties are not redundant and only overlap in the sense that a property contains a variable and by doing so can hold a value. A property is a trait of an object whereas a variable is an object.

                            Comment


                            • #44
                              Originally posted by Luke_Wolf View Post
                              Okay, I've seen Qyoto mentioned a few times now and perhaps because it didn't make phoronix news they're missing that Qyoto is dead and QtSharp is it's successor. Back when Xamarin first announced the release of Cppsharp I asked a question: "Would this benefit Qyoto?", well as it turned out ddobrev the main developer of Qyoto decided shortly afterwards to abandon Qyoto and create QtSharp based upon CppSharp and has been working on improving CppSharp and QtSharp since then.

                              https://github.com/ddobrev/QtSharp
                              https://github.com/ddobrev/CppSharp
                              that would be my bad. probably because of this http://sourceforge.net/projects/qtcsharp/files/qtsharp/ . project with same name which was abandoned for qyoto. hmmm, need to look at it then and thanks on correction

                              Comment


                              • #45
                                Originally posted by Luke_Wolf View Post
                                Actually variables and properties are not redundant and only overlap in the sense that a property contains a variable and by doing so can hold a value. A property is a trait of an object whereas a variable is an object.
                                To Expand upon this let's examine a very easy example: memberwise equality.

                                Code:
                                public static bool override operator==(obj A, obj B)
                                {
                                    if(A.prop1 == b.prop1 &&
                                       A.prop2 == b.prop2 &&
                                      ...)
                                    {
                                       return true;
                                    }
                                    return false;
                                
                                }
                                In the above code objects A and B are not properties of anything, and they don't magically become properties of each other by being compared. Instead they are two completely separate entities that may or may not hold the same values and thus as a result are variables.

                                on the other hand these objects contain traits: prop1, prop2, etc that contain objects that are being compared for equality.

                                Further there are functional requirement differences as well, with a property you want to regulate things like access and acceptable values whereas a variable does not have any such requirements placed upon it.

                                Now you can argue that you should only be able to declare properties in class definitions and variables in function definitions and parameter lists and as long as the language does appropriate code generation behind the scenes I'd agree with that.

                                Comment

                                Working...
                                X