Announcement

Collapse
No announcement yet.

MonoDevelop vs. Xamarin Studio IDEs

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

  • #91
    Originally posted by ciplogic View Post
    What Qt offers and Mono doesn't?
    - if we talk about the runtime part, I can say that Mono offers more:
    + GC: simply means that you write simpler algorithms and you don't look for reference counted cycles
    + dynamic runtime with inline caching ( http://stackoverflow.com/a/7478557 ),
    + very easy to embed plugins (compare with the QtPlugin, or with dlopen/LoadLibrary mess),
    + a very easy way to do network remoting, Xml processing, class & fied annotations that can work with reflection to automate configuration in complex systems
    I think we could argue whether the GC of Java and C# is a positive or not to kingdom come. Let us just let it rest by saying that it is a split decision.
    Dynamic runtime with inline caching? Yeah, seen this argument before, and it probably helps performance of Java and C#. As you said though, if you really want performance, Qt and C++ is king, so I don't see it as a relevant argument in the big picture. Plugins go both ways. With Qt you easily hook into the KDE frameworks with things like kparts and dbus (assuming that you are OK with GPL of course, which I have a feeling you are not). I am a bit puzzled on the networking part, I have had no issues there. Use of sockets is very common and works fine in Qt, ref. http://www.qtforum.org/article/9/qt-...-tutorial.html Of course, you can always do the networking directly in C++ too, even on windows I believe C++ is even better supported by OS internals than C#. QtXml has worked out well for me, I have no idea what issues you have with it. Again, you can always do things directly in C++ if you need more flexibility than the Qt classes provide, but in my experience that is rarely an issue.
    What Qt offers easily:
    + C++ integration with foreign codebases (that are old ones)
    + Two paradigms for controls: QWidget and Qml that are both working cross platform
    + arguably a bit better performance
    PyQt offers most of Mono (excluding the toolkit part) with a performance hit if you don't use PyPy and no static checking (meanining performance hit and bugs in typing).
    You are forgetting the wast value chain. Whenever I need something in Qt, somebody has already implemented it in KDE. The developer tools are top notch and work flawlessly on any platform. Generally speaking, if your coders are able, C++ is a safe bet. It can do anything competitively.
    So Mono can be a Python like experience with a close(r) to C++ performance and with the choice to pick either dynamic (for weird runtime stuff) or fast static typing.
    Something like that, but keep in mind that the Mono value chain is getting seriously crippled these days. You are loosing platform support for developers tools, and the most important platforms are getting proprietary with hefty licensing terms. This is OK for a company with large budgets, but it will chase away the small guys. It is the route of short term maximizing income. A trajectory that often has a less favorable outcome. Who is the main sponsors of Xamarin these days?
    - Xamarin's policies: they support first the platforms that are paying money. In the same time though, they support Linux out of the box, and contributions in a generational GC are working both for phones (which are sensible on long GC pauses) and for desktops. As I'm an ex-Qt developer, I know that QtScript (which later was included as WebKit's JSC inside Qml) was a commercial product. (I talk for years 2005-2009). There were other integrations that Trollteck provide (like Visual Studio integration or QtJambi) that they were JUST for paid versions. How is one different for the other?
    I have no problem with VS plugins costing money, I see that as a good way to get funding. VS is a proprietary product anyway, why shouldn't the plugin be proprietary? Complaining over this makes no sense to me. While linux certainly also drive commercial customers for Qt, do not underestimate the value of a vibrant community. An error I believe Xamarin is doing these days. Trolltech, Nokia and Digia are making mistakes, but as already mentioned, Qt is a very open project today and has been moving in the right direction. This thread is about Xamarin changing direction for the worse, into directions Qt never went. Xamarin's current policy does not align with Trolltech, Nokia nor Digia on Qt. If you are a Mono developer, you should be very concerned. If I were you, I would do what I could to make Xamarin change course. Just as licensing controversies over Qt has helped Qt staying on the right course. I see this as a very critical time for Xamarin. There has been controversies over Mono sure, but generally speaking I believe the open community welcomes projects like Wine and Mono, I certainly have, and I gladly spend my time helping Wine improve.

    Comment


    • #92
      Originally posted by Del_ View Post
      I think we could argue whether the GC of Java and C# is a positive or not to kingdom come. Let us just let it rest by saying that it is a split decision.
      Dynamic runtime with inline caching? Yeah, seen this argument before, and it probably helps performance of Java and C#. As you said though, if you really want performance, Qt and C++ is king, so I don't see it as a relevant argument in the big picture. Plugins go both ways. With Qt you easily hook into the KDE frameworks with things like kparts and dbus (assuming that you are OK with GPL of course, which I have a feeling you are not). I am a bit puzzled on the networking part, I have had no issues there. Use of sockets is very common and works fine in Qt, ref. http://www.qtforum.org/article/9/qt-...-tutorial.html Of course, you can always do the networking directly in C++ too, even on windows I believe C++ is even better supported by OS internals than C#. QtXml has worked out well for me, I have no idea what issues you have with it. Again, you can always do things directly in C++ if you need more flexibility than the Qt classes provide, but in my experience that is rarely an issue. (...)
      .Net Remoting/WCF is the service I'm talking: the equivalents in Qt exist but are not as easy as .Net or Python world (to import for example a WSDL and proxies are generated automatically). In a similar note, the code to "dump" a class in Xml, is trivial, and takes a half of page of code because C# supports reflection, XElement and Linq (for example look into this link: http://blogs.microsoft.co.il/blogs/m...ting-data.aspx ).

      I have no issues with Qt per-se, but the development cycle in C# is most of the times faster than the QMake cycle in Qt. If you can afford Resharper (or CodeRush) you will get static code analysis that warrants higher quality code.

      About Qt and issues I faced:
      - MSSQL uses a sub-par database driver (http://doc.qt.digia.com/stable/sql-driver.html)\
      - also Qt is slower in calling signals than C# code and sometimes it has issues with thread safety: http://stackoverflow.com/questions/1...nd-performance
      - if you use a Metacity Window Manager (at least in Qt 4.4 cycle) there were bugs in creating Windows. Qt was stested against KWM mostly (I had issues at my work regarding those issues)

      About GC and if is to be desired: by default GC is a runtime service. It is similar with reflection. Are these features to be desired? If you don't use them, are not necessarily useful. If you are using them in an advanced way, you know that these features make your code maybe a bit slower (I say mostly about reflection, not about GC) but reduces the code of many algorithms. In fact GC can remove leaks in your code by running your program in stages (like the first step will process something in an intermediate representation, the second step takes this representation and does not reference the first). This can work with C++ "magic" like pools or such, but if you compare the code in C++ and C#, you will see that C# is certainly a better contender.

      At the end, can you give a relevant case "when C++ saved you" because of its top-notch performance and C#/Mono would not bring this performance to you?

      Comment


      • #93
        Originally posted by brosis View Post
        directhex
        ciplogic
        jayrulez*

        are pro-MS trojan infection in this forum.
        Dear freedom lovers, don't argue with people who have no brains, its similar to arguing with a black hole.
        Instead do what you usually do - ignore them, their platform, their products and their owners.

        * new on the list.

        Del_, Pawlerson, you are great guys.
        I do more for Free Software in a lazy afternoon than you have in your life you ignorant little shit.

        There are no prizes for sitting in your mom's basement and proclaiming yourself the purestest user evar.

        The only thing of any even vague use to humanity is helping to propagate superior Free Software as a replacement for inferior proprietary software. In cases where the Free option is inferior, then make it better. In cases, where it's better, spread it honestly.

        Comment


        • #94
          Originally posted by ciplogic View Post
          I have no issues with Qt per-se, but the development cycle in C# is most of the times faster than the QMake cycle in Qt.
          This is positively false. I have had students in for summer job, students that have never touched Qt before, and they are able to write a complete gui application from scratch over a summer with only me following them up part of the time. To put it differently, there is nothing to save going to another gui-stack, there are other issues that take the main developer time. With Qt designer anybody with minimum training can mock up a gui in no time. If you have your functions ready with the correct name, moc simply auto connect signals and slots. Qmake is nice (and very easy to use), but I prefer cmake for flexibility. Regarding bugs, Qt is a very good code base in that respect. Sure you can find annoying bugs in cerrtain releases, but generally speaking bugginess is low, it is a plus not a minus. Add to that the professional look and feel when you port Qt4 to different environments. Thread safety and signal slot performance is not a big issue today AFAIK. MSSQL I couldn't care less about, but I do understand that it can be important for many.
          At the end, can you give a relevant case "when C++ saved you" because of its top-notch performance and C#/Mono would not bring this performance to you?
          I am primarily involved in HPC, C++ is an industry standard there. Still some Fortran codes around, but mostly quick and dirty prototyping is done with Matlab while the real deal is done in C++, needless to say I prefer Octave as Matlab replacement (and try to make sure everything I am involved in works with Octave). Only know of one project where Microsoft were able to get their .net in, and I have no positive words to say about that. Nobody uses C# for HPC, just take any C++ based HPC framework on the planet and you have your example.

          Comment


          • #95
            Originally posted by Del_ View Post
            I am primarily involved in HPC, C++ is an industry standard there. Still some Fortran codes around, but mostly quick and dirty prototyping is done with Matlab while the real deal is done in C++
            You're far understating the degree of Fortran usage compared to C or C++.

            Comment


            • #96
              Originally posted by directhex View Post
              I do more for Free Software in a lazy afternoon than you have in your life you ignorant little shit.

              There are no prizes for sitting in your mom's basement and proclaiming yourself the purestest user evar.

              The only thing of any even vague use to humanity is helping to propagate superior Free Software as a replacement for inferior proprietary software. In cases where the Free option is inferior, then make it better. In cases, where it's better, spread it honestly.
              One more personal attack and you see another "please ban" topic published.
              Also, from people like you, I don't want *any* software.
              I don't care what you say, I pay attention to what you do, and you advertize microsoft technologies, and microsoft is the largest entity to do the damage to freedom software and Linux in particular.
              I don't use microsoft not because its microsoft, but because from day zero they have been stealing, manipulating and destroying gems of IT, and hindering the progress.
              If you join microsoft, don't expect mercy from me.

              Comment


              • #97
                Originally posted by directhex View Post
                You're far understating the degree of Fortran usage compared to C or C++.
                I don't think so. Research grade code don't count in my book, it is not maintainable and does not scale. Sure there are a lot of do-not-touch Fortran solvers in proprietary codes. Most codes I work on are open.

                brosis, I am not sure directhex is trying to advertise directx with his nick.

                Comment


                • #98
                  Originally posted by brosis View Post
                  One more personal attack and you see another "please ban" topic published.
                  Go RIGHT ahead. Given how largely unmoderated these forums are, I'm sure it'll have a huge effect.

                  Also, from people like you, I don't want *any* software.
                  Well, go work a loom then. Get off the keyboard.

                  I don't care what you say, I pay attention to what you do, and you advertize microsoft technologies, and microsoft is the largest entity to do the damage to freedom software and Linux in particular.
                  You have no fucking clue what are "microsoft technologies" because if you did, you'd take a sledgehammer to your computer.

                  I don't use microsoft not because its microsoft, but because from day zero they have been stealing, manipulating and destroying gems of IT, and hindering the progress.
                  You use Microsoft technology every single day, but you're too much of a hypocrite to acknowledge it.

                  If you join microsoft, don't expect mercy from me.
                  "join Microsoft"?

                  I've never worked for, applied to work for, or been paid by Microsoft. In the interest of full disclosure, I got a free mouse at an HPC conference, a couple of cocktails at a different HPC conference, and a small book in first year of University.

                  Comment


                  • #99
                    C++ and C# serve to different purpose.
                    .Net/C# was designed to compete with Java platform/language and not with C++/native code and different C++ frameworks like Qt.

                    Comment


                    • Originally posted by onicsis View Post
                      C++ and C# serve to different purpose.
                      .Net/C# was designed to compete with Java platform/language and not with C++/native code and different C++ frameworks like Qt.
                      I am not sure this perspective is very helpful. Mono certainly competes with Qt and C++ for application development on the desktop. Moreover, Qt Jambi gives and alternative to Swing on java. I don't know the state of Jambi today, so others will have to comment on it's maturity. I have tested Qt on Android though, and that seems to work fine (only tested with C++). I believe Qt and C++ covers just about any usage of C# (as long as you have programmers that can handle C++ well). It is however true that C# has yet to prove itself in HPC, and with Microsoft pulling the plug from it's HPC effort, that time may never come. So I guess you could say that Qt and C++ is designed to go everywhere, while .net/C# is more limited.

                      Comment


                      • .net and C# was developed for bussiness Logic in CRM or something like that.
                        From what I know many layers of Oracle software stack(like Salesforce) are developed on Java platform.

                        Comment


                        • Originally posted by onicsis View Post
                          .net and C# was developed for bussiness Logic in CRM or something like that.
                          From what I know many layers of Oracle software stack(like Salesforce) are developed on Java platform.
                          .NET and C# originated as an attempt to provide a similar framework to Java, without the prospect of being sued by Sun for attempting to make changes (as happened with Microsoft Java). So .NET was a proper public-spec standard from day 1, the way Java never was. It's evolved somewhat over the last dozen years, though.

                          Comment


                          • Originally posted by Del_ View Post
                            I am not sure this perspective is very helpful. Mono certainly competes with Qt and C++ for application development on the desktop. Moreover, Qt Jambi gives and alternative to Swing on java. I don't know the state of Jambi today, so others will have to comment on it's maturity. I have tested Qt on Android though, and that seems to work fine (only tested with C++). I believe Qt and C++ covers just about any usage of C# (as long as you have programmers that can handle C++ well). It is however true that C# has yet to prove itself in HPC, and with Microsoft pulling the plug from it's HPC effort, that time may never come. So I guess you could say that Qt and C++ is designed to go everywhere, while .net/C# is more limited.
                            There's no point in arguing over this. C++ has its strong and weak areas, same with C# and any other languages you might find out there. Use the best tool for the job. There's no need for religious wars over programming languages or any other piece of technology.

                            Comment


                            • Originally posted by directhex View Post
                              Go RIGHT ahead. Given how largely unmoderated these forums are, I'm sure it'll have a huge effect.
                              So am I.

                              Originally posted by directhex View Post
                              Well, go work a loom then. Get off the keyboard.
                              If all coders would be like you, I'd sure would. Happily, its not the case.
                              Back then it was VB, later J#, now C#, not everyone is stupid enough to descent into this microsoft-only crap.

                              Originally posted by directhex View Post
                              You have no fucking clue what are "microsoft technologies" because if you did, you'd take a sledgehammer to your computer.
                              Originally posted by directhex View Post
                              You use Microsoft technology every single day, but you're too much of a hypocrite to acknowledge it.
                              Name me any single one.
                              I rely on Intel, GNU and BSD, nothing else.

                              Originally posted by directhex View Post
                              "join Microsoft"?
                              Originally posted by directhex View Post
                              I've never worked for, applied to work for, or been paid by Microsoft. In the interest of full disclosure, I got a free mouse at an HPC conference, a couple of cocktails at a different HPC conference, and a small book in first year of University.
                              Not in this sense, they hire mostly in India and China. But when it comes to marketing, you might get an offer, you market it really "well" in phoronix.

                              Originally posted by onicsis View Post
                              .net and C# was developed for bussiness Logic in CRM or something like that.
                              From what I know many layers of Oracle software stack(like Salesforce) are developed on Java platform.
                              Thats because when microsoft failed to embrace-extend-extinguish Java by pushing own VM and J#, it got sued by Sun and rewrote own version of Java, named ".net", which it aggressively tries to push into every non-MS ecosystem right now. But of course, incomplete version, so it breaks and they offer you either windows, or paid version; and frame your platform as faulty. And they will also push hard to implement it into core components so they can charge license fees. Linux, Apple, Android, you name it. The best solution is to completely stop supporting microsoft. Completely.
                              Last edited by brosis; 02-24-2013, 03:26 PM.

                              Comment


                              • Originally posted by directhex View Post
                                .NET and C# originated as an attempt to provide a similar framework to Java, without the prospect of being sued by Sun for attempting to make changes (as happened with Microsoft Java). So .NET was a proper public-spec standard from day 1, the way Java never was. It's evolved somewhat over the last dozen years, though.
                                On top of which Java is a language designed by megalomaniacal control freaks which has resulted in it being an absolutely shitty language to have to write in while C# is actually nice to it's programmers because it lacks the stupid control freak atttitude which means you get nice things, like operator overloading.

                                Originally posted by brosis View Post
                                Thats because when microsoft failed to embrace-extend-extinguish Java by pushing own VM and J#, it got sued by Sun and rewrote own version of Java, named ".net", which it aggressively tries to push into every non-MS ecosystem right now. But of course, incomplete version, so it breaks and they offer you either windows, or paid version; and frame your platform as faulty. And they will also push hard to implement it into core components so they can charge license fees. Linux, Apple, Android, you name it. The best solution is to completely stop supporting microsoft. Completely.
                                Oh because Sun Microsystems bribing the major universities so that Java developers would flood the market with it's utterly shitty language driving it's usage was so much better. Honestly Microsoft has done a hell of a lot better job at what Java is supposed to be trying to be than Java is. Also Microsoft isn't aggressively pursuing other non-MS platforms with .NET (they haven't even ported their own .NET framework to a non-MS platform, all they did was the initial agreements which resulted in Novell creating mono) even Xamarin isn't honestly doing so (where's the BBX and other OS ports?), Digia is the only one aggressively pursuing supporting everything. Also Microsoft is making mono more complete by opening up parts of it's own .NET framework under the Apache license which mono is then integrating.
                                Last edited by Luke_Wolf; 02-24-2013, 03:59 PM.

                                Comment

                                Working...
                                X