7 ms·
I like Mono, and I respect the work that they've accomplished. It is incredibly difficult to build a runtime like .NET, especially as it was never designed to b
by sreque 15y ago
I like Mono, and I respect the work that they've accomplished. It is incredibly difficult to build a runtime like .NET, especially as it was never designed to be cross-platform.
That said, the Mono experience on Linux is inferior to that on Windows. MonoDevelop is nowhere near Visual Studio, so that I just develop on Windows and deploy on Linux. Unfortunately, that doesn't help the fact that both the soft and hard debuggers for Linux are nowhere near Microsoft's debuggers. It also doesn't help the fact that the runtime itself is less stable (i.e., more prone to crash) and there are APIs that only work well on Windows. I would also imagine that the Microsoft runtime exhibits much better overall performance.
My understanding is that Mono mainly excels at MonoTouch, and that is where Xamarin is making most of its money, but I am not knowledgeable in that area.
- andyjohnson0 15y agoIt is incredibly difficult to build a runtime like .NET, especially as it was never designed to be cross-platform. Just a historical note: The Shared Source Common Language Infrastructure [1] aka "Rotor" is an alternative version of the .net 2.0 platform developed by Microsoft for research/education use. It can be compiled for FreeBSD and Mac OS X 10. Its rather out of date, but maybe shows that MS did make some kind of effort to make it cross-platform. [1] http://en.wikipedia.org/wiki/Shared_Source_Common_Language_Infrastructure http://en.wikipedia.org/wiki/Shared_Source_Common_Language_I...
- chollida1 15y agoI remember working on Rotor when I was at Corel. I'm glad to see someone still uses it:)
- jamesaguilar 15y agoThe FFI is still far better than most of the other FFIs for other Linux-targeting languages. Yeah, and MonoDevelop is not equal to Visual Studio, but it's a damn sight better than almost any other OSS IDE.
- kaolinite 15y agoHow does it compare to QtCreator, do you know?
- jamesaguilar 15y agoDon't know, but QTCreator is a C++ IDE (I think?) which makes it a non-starter for me.
- nsomething 15y agoYou also can develop just in QML, which is really nice.
- landr0id 15y agoIn my opinion, I'd say Visual Studio > Qt Creator > MonoDevelop. Qt Creator isn't bad, but the debugging is not nearly as great as Visual Studio. For instance, adding a variable to a watch doesn't always work (as in, variables aren't always evaluated when you'd like them to be) and I can't just type a variable name or expression into the watch window, I can't always view the memory at an object's address, and sometimes I get incorrect values (which could be something with my configuration).
- davedx 15y agoI use MonoDevelop every day with Unity. I sometimes hear other devs complaining about it, and saying how Visual Studio is so much better. I think back to the days I used to spend struggling with multi-project solutions in Visual Studio with all its warts and crashes and weird compilation bugs, and thank heavens I'm working with a light-weight IDE. C# is my new favourite language, and MonoDevelop is a pretty decent IDE for what it is :)
- henrikschroder 15y agoThe biggest improvements that VS2008 and VS2010 made over the previous versions is that it became much more light-weight, they did a lot of work to remove cruft. If you haven't looked at VS in a long while you might be surprised.
- davedx 15y agoI think the last one I used was 2008. I'll have to have a look at 2010 sometime. Very happy to hear they've spent some time reducing the cruft :)
- kbolino 15y agoIn my experience, these are the problems with developing in MonoDevelop for Unity: - The debugger is flaky. Sometimes it will miss a breakpoint completely. Sometimes trying to inspect local variables will crash MonoDevelop. Sometimes it will refuse to continue no matter how many times you tell it to. - If your problem starts in Unity's native code, forget about trying to debug it. The messages are cryptic and the debugger is useless. This happens for some things you can diagnose (like running out of memory, either on the machine or the card)--although good luck figuring out what your memory hog was--and for other things that leave you completely stumped (shotgun debugging becomes your only recourse). - Don't even attempt to use text search over multiple files (other searches, like reference searches, work fine). MonoDevelop will get stuck in an unproductive loop that never displays any results and never completes. - Forget about profiling. Unity technically has a profiler, but it's per-frame, not cumulative. It also omits a lot of detail, especially about memory usage. - There are also a number of minor issues, too, but they aren't deal breakers so much as annoyances. That having been said, our particular project is rather good about pushing Unity to (and beyond) its limits, and you may never encounter any of these limitations. Still, it's worth knowing that they exist. Footnote: These comments may be limited to the version of MonoDevelop that ships with Unity 3.3 (there are non-technical reasons why it's not worth our time to go through the effort to upgrade).
- deleted 15y ago[deleted]
- drhowarddrfine 15y agoAnd no self-respecting developer would ever use Mono on nix anyway because the nix tools run circles around anything .NET/Mono.
- drhowarddrfine 15y agoI knew this would be downvoted by the predominantly Windows users here but, if they knew anything about *nix, they wouldn't do that.
- virtualeyes 15y agoIf I had sufficient karma, I would up vote you, but alas, made the mistake of bringing up a pro-Scala perspective in a why-did-Twitter-leave-Rails thread. At any rate MonoDevelop is actually quite awesome in some respects, particularly code completion, which is unbelievably snappy (VisualStudio is rather sluggish in comparison, but assume that is due to running in a Windows VM)
- v-yadli 15y agoI once worked on a virtual usb device project on linux with Mono, at least ioctl and pointers work well for me. Use Java for this? No... Moreover, for maximum performance, mono provides facilities for users to embed native code into the runtime, much faster than Pinvoke.
- kbolino 15y agoYou were downvoted because you made an argument without supporting it, and you were downvoted again because you complained about being downvoted and still didn't provide support for your argument. From what I gather, HN isn't so much about being part of an "in-crowd" where you "just know" the way things are. You need to be willing to explain your arguments, otherwise you're just a snob.
- jawr 15y agomono works fine on nix systems (little bit of tweaking with grsec), a friend has developed a few programs that he has deployed to nix systems without any issues. Initially I was quite anti it, but what the heck, if it works it works.