Slashdot Mirror


Mono's Cocoa# Underway, GTK# Takes on Windows.Forms

Gentu writes "OSNews posted some exclusive screenshots of a new project in the Mono community: Cocoa#. Apparently there are a couple of Apple engineers helping out the project that allows developers to create graphical Cocoa applications under Mac OS X using the C#, Python or Basic language. Mono seems to be doing well in the Windows land too, allowing developers to use GTK# instead of Windows.Forms to create multi-platform apps."

10 of 378 comments (clear)

  1. Mono vs. Java (again) by fupeg · · Score: 5, Interesting

    There are some decent arguments for using Mono over Java on Linux. Those arguments don't hold up as well on OSX, though. Java support on the Mac is in many ways superior to Java on any other platform, especially for Swing apps (the counterpart to most Cocoa# apps.) Still it could be attractice to have a framework that made it as easy as Java is for developing cross-platform (Windows/Linux/OSX) apps that would have significant performance advantages over Java on 2 out of 3 of those platforms.

  2. Apple could really benefit... by callipygian-showsyst · · Score: 4, Interesting

    ..from embracing (and extending!) C# and .NET. Programmers generally like C# and .NET for application development, and Objective-C has some serious flaws.

  3. Re:Windows.Forms in Mono by prockcore · · Score: 4, Interesting

    A new from scratch implementation has started with four of the top Mono developers that are now
    locked up in Provo Utah working around the clock
    to delivery the new implementation of Windows.Forms


    What are they doing then? I thought using wine was going to solve the p/invoke issue. Are you just going to ignore the p/invoke and just implement the exposed API?

  4. Gtk# Rocks by pherthyl · · Score: 5, Interesting

    Even back in the 0.8 days, I had very few problems making a medium sized app (~4000 lines), developed entirely under linux with Mono. Everything worked on the first try when I ran it on windows with .NET.

    Now that's true cross platform ability. Even with Java I've never had it work that flawlessly. Thanks Miguel and Mike Kerster and the rest of the Mono team. You guys rock.

  5. Question about GTK# by EvanED · · Score: 4, Interesting

    I've been looking high and low for a cross platform GUI tool, and the only one I particularily like is Qt. Which, of course, you have to pay lots of money for to get the Windows version (or deal with the "freeware" bit stuck in the title bars of windows). I'm gonna look into Wx.NET; just found out about that in this discussion.

    Anyway, I'm reading over the FAQ for GTK#, and it says you need to have cygwin. So, my question is, does only the developer of the software need to have cygwin, and then it builds it using libraries provided with it and outputs a nice standalone application, or does everyone who wants to use it need to install cygwin? I can't seem to figure this out from the site...

  6. native GUIs with C# on Windows, Linux, OS X by dekeji · · Score: 4, Interesting

    There is another choice for native GUIs using C# on Windows, Linux, and OS X: wx.NET, bindings of the wxWindows library to Mono and Microsoft's .NET implementation.

    wxWindows is great because it gives you a uniform API across different platforms and toolkits, while at the same time using native widgets and giving you access to platform-specific features if you like.

  7. Re:I think the world has finally left me behind by dekeji · · Score: 4, Interesting

    The key differences between C# and Java are philosophy and licenses.

    Java's philosophy is built around WORA and enforced standardization, courtesy of Sun Microsystems.

    C# is just a language, like C or C++--it comes with a small standard library, but what you do with it beyond that is up to you. C# has a language standard, and an open one at that, but the degree to which you follow that is up to you.

    Whether that is good or bad is a matter of needs and preferences. I think the level of enthusiasm C# and Mono have generated should tell you which way the wind is blowing.

    Note that Mono is not just about cloning Microsoft. Mono is building an entire platform; part of that platform is Microsoft compatibility libraries, but most of it is actually based on open source APIs and libraries.

  8. Slow? by TheInternet · · Score: 4, Interesting
    "it's S-L-O-W"

    Is this based on anything? It's slower than raw C or assembly of course, but quite fast overall.

    Everything below this sentence is from http://www.alastairs-place.net/cocoa/faq.txt:

    * 2.7 How fast are Objective-C messages?

    The name "message" might make you think that they are slow; however, they are
    actually quite fast. Here are some figures from a 1GHz PowerPC G4 (courtesy
    of Marcel Weiher):
    Operation | Time (ns)

    Increment (memory) variable | 2
    Call through an IMP | 12
    Local function call | 18
    Cross-module function call | 37
    Objective-C message | 54
    atoi("1") | 182
    Local function call refers to a call to a function in the same executable or
    dynamic object module. Cross-module function call is a call from one
    executable or dynamic object module into another.

    On current Apple versions of GCC, an Objective-C message results in a call to
    objc_msgSend(), which is itself a cross-module function call. That means that
    the actual method dispatch only takes 17ns (on average), which is pretty
    quick.
    --
    Scott Stevenson
    Tree House Ideas
  9. GTK# is NOT ready by ralinx · · Score: 5, Interesting

    i'm developing a C# application which has a System.Windows.Forms (SWF) frontend for the Windows version, and a GTK# frontend for the Linux version. I was hoping to get rid of the SWF frontend and deploy my application on Windows and Linux using the GTK# frontend. Despite all of the hype surrounding Mono/GTK# (thanks miguel) i have not been able to get this working because GTK# simply doesn't work correctly with MS.NET. There are parts of GTK# that actually rely on an incompatibilty between Mono and MS.NET to work correctly. So when this code is executed with MS.NET, you'll get runtime exceptions. The same code will function correctly on Windows when you use Mono on Windows, but then i get memory leaks everytime i use Regex.Match which my application needs quite often. So after leaking about 395MB of RAM, the garbage collector will crash with an error ("too many heap sections"). The same code runs perfectly on Linux in Mono.

    I would really like to see Mono and GTK# completely ready to be used on Windows for _serious_ stuff (as in: not the average Hello World GTK# app) but rigth now, it just isn't up to the task yet. On Linux, it's pretty good alraedy, but on Windows it's just unusable for my application. I've had to go back to using my old SWF frontend for my windows users.

  10. Re:Windows.Forms in Mono by KAMiKAZOW · · Score: 4, Interesting
    our path to indepedence clearly goes through Gtk#


    Why GTK#? Honestly, GTK is probably one of the worst toolkit for real cross platform development.
    The Windows port of GTK sucks. This WiMP thing (Or whatever it's called - it makes GTK app to some degree look like native Windows apps) is not that great. The performance of the GTK(WIMP) apps' GUI is noticeable lower than a native GUI.

    Under Mac OS X it's even worse. GTK only works under X11. This means no Aqua look & feel. No copy and paste or drag'n'drop between native OSX apps and GTK apps. Even keyboard shortcuts are different.

    Why didn't you chose something like wxWidgets? At least wxWidgets offers native GUIs under any platforms it runs. wxWidgets or any other toolkit that offers real platform independence.
    Or: With all these XML GUIs under .NET (like XAML) Ximian could've used Mozilla's XUL toolkit and have better multi platform integration than GTK.

    Also - from what I've read on the mailing list archives - Mono only works sometimes on BSD systems.

    What kind of independence is this? You are only focused on x86-Linux running GNOME.

    Ximian does not seem really interested in real platform CocoaSharp. Stuff like Qt# (for KDE users), CocoaSharp, and other cross platform develpment is not done by any Ximian guy, but from contributors.