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

                      Working...
                      X