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."

32 of 378 comments (clear)

  1. Why doesn't mono get it (winforms)?? by Anonymous Coward · · Score: 2, Insightful
    I don't see Windows developers switching to Gtk# just coz "It works in Linux" ... They will rather go elsewhere like Wx.NET for example (it runs on native OSX) or run Winforms using Portable.net's Swing based Winforms (that sounds like a LOT of volunteer work ?). They will NOT use Gtk# or Cocoa# until they have a VS.NET designer built-in .

    I have this distinct feeling that supporting Windows.Forms out of the box would have affected Miguel's stated reasons for Mono ie Gtk# and using it for Gnome apps..... That's why probably Mono didn't implement Windows.Forms for Mono 1.0 (talk about MAJOR feature missing). But this is totally off that map ?.

    If Apple does run .NET finally , it'll probably be licensed off Microsoft to prevent Microsoft from screwing them later. I have a feeling Miguel and Ximian-Novell is just doing "Free" development for Apple if they release this under LGPL. I care more about running my winforms apps on Linux and BSD , not about how "cool" embedding a browser control in C# is.

    Nothing to see here folks ... move on
  2. Re:What exactly are you looking for? by theantix · · Score: 4, Insightful

    uh, dude.

    An interface is *so* much more than widgets and icons.

    And I'm a Gnome zealot, for crying out loud.

    dude.

    --
    501 Not Implemented
  3. Mono has come very far in a short period of time by Ars-Fartsica · · Score: 4, Insightful
    Congrats to the Mono crew - from announcement to 1.0, they have covered a lot of ground in a short period of time and if they are perceived to be encumbered by patent issues (note I say perceived), they are not encumbered by bad-source-practices that is still keeping Java locked out of some domains.

    You can use real apps right now with Gtk# - the Muine music player and the Blam RSS reader are functional and mostly stable...there are many other examples.

  4. Re:For Linux? by Amiga+Lover · · Score: 4, Insightful

    I want Mac OS's interface on Linux! I've done what I consider to be as good of a job as I can, but it's not the best knock-off in the world.

    They should be concentrating on making quick & efficient UIs like the Amiga had, or the early Macs, not bloat upon bloat upon bloat.

    Both the original mac and Amiga UI systems fit inside 512k RAM or less, leaving everything else for the App's functionality. When some of those early machines were expanded from 68000 CPUs to 68040s and 32MB of ram or more they flew faster than any 2 or 3GHz cpu in GUI feel. Nothing could outclass them

    So why do we need this bloat?

  5. Re:Mono has come very far in a short period of tim by andreyw · · Score: 2, Insightful

    C# is, but .NET isn't.

  6. Cocoa on top of Mono? by Xpilot · · Score: 1, Insightful

    I wish they'd update the Objective C bindings for Gnome instead. It'd be nice to use Obj C to create Gnome programs. It's a nice, clean OO language.

    --
    "Backups are for wimps. Real men upload their data to an FTP site and have everyone else mirror it." -- Linus Torvalds
  7. Re:Apple could really benefit... by jcr · · Score: 4, Insightful

    Objective-C has some serious flaws. ..and also some compelling advantages. Take a look at how NSUndoManager was implemented, and please tell me how to do the same thing in Java, C#, C++ or whatever your favorite language may be.

    -jcr

    --
    The only title of honor that a tyrant can grant is "Enemy of the State."
  8. Ahem, The CLI is just as much of a standard as C# by ePIsOdEOnline · · Score: 3, Insightful
  9. Re:I think the world has finally left me behind by Osty · · Score: 5, Insightful

    Why the obsession with Microsoft technology?

    .NET is pretty damned good, and people recognize that. The few who don't are the normal "Anything but Microsoft" zealots. It's not perfect, but very good and getting better.


    What's it going to give me, an embedded systems developer?

    Absolutely nothing, but you're not the target demographic.


    Why are vice presidents at work mandating its use in a hard realtime product?

    .NET is the hot new buzzword, and your VPs aren't smart enough to realize that it's not suitable for embedded realtime applications.


    Frankly it appears to me that the world has gone stark raving mad.

    From your perspective, that may be true, but then you're looking at the world from the eyes of a real-time, embedded systems developer where you work with a limited set of known hardware under strict time and resource constraints. .NET isn't for you. That doesn't mean the world has actually gone mad, just that there's more to the world than that which applies to you.


  10. great by Anonymous Coward · · Score: 1, Insightful

    I just wonder when Microsoft will try to say, "See? We are the innovators. Look at mono! They followed our .NET framework in a desperate attempt to copy it!"

    err, copying IS what they were doing.

    While it may be true that Mono was released after .NET, there is ample evidence that open source software is far more innovative than anything Microsoft has put out (with the possible exception of this useless piece of trash.

    "...it MAY be true ... after .Net"??? How could it possibly implement .Net even before microsoft could figure it out?

    Mono was a lot of hard work but please stick to the facts and don't get religious.

  11. I bid C# welcome by haxor.dk · · Score: 2, Insightful

    C# may be a Microsoft invention, but now that Mono has opened it for the Linux and Mac people, I bid it welcome. As far as I can see, it is a very powerful language, which offers a number of functions and features of ex. Objective C.

  12. Re:you have got to be joking by The+Infamous+Grimace · · Score: 4, Insightful

    Yeah, I used to use a MS Intellipoint Optical Wheelmouse with my 2 macs, still use it on one. However, for my old laptop I've gone back to the ol' one-button. Why? I've decided that the original paradigm is better; the keyboard has far more functionality than any mouse, with the exception of the scroll wheel.

    In Safari, if you want to open a link in another tab, just command-click. In another window? Alt-command-click. Want a menu? Ctrl-click.

    For dealing with files, open 2 finder windows in column view, and stack them on the screen. Want to cut-n-paste? Drag-n-drop. Want to copy? Alt drag-n-drop. Want a shortcut? Alt-command drag-n-drop.

    The more I use a one-button mouse, the more I like it. YMMV.

    (tig)

    --
    Ignorance and prejudice and fear
    Walk hand in hand
  13. Re:I think the world has finally left me behind by Anonymous Coward · · Score: 5, Insightful

    Think about it this way.

    For years, developers targetting the windows platform had two (real) choices VB or C/C++.

    With C/C++ you had two choices. Use the win32 API directly and/or use MFC. With VB, creation of GUI apps was made as simple as possible, at the expense of a cumbersome language.

    Throw COM into the mix, complex threading models and API interface du-jour and the bottom line is that Windows developers have been guinea pigs feeding on inconsistent standards for 15 years.

    -----Enter Java

    Finally, a language that brings OOP to the masses without having to learn complex semantics regarding memory allocation. It also eliminates the cumbersome and overly complex nature of STL in C++.

    The drawbacks were twofold: Early java adopters didn't have the rich GUI IDE's present in VB5/6 and VC++/DevStudio. Like it or not, it hurt producitivty, at least in the short term. Translation: corporate america didn't warm up to the idea immediately.

    Another drawback to java was the rampant verbosity of the language. There are those that do believe that enum's and value types are GOOD things.

    Then you had the immaturity of Java GUI toolkits that made 'rich client' apps look like they were written by high school script kiddies.

    ---- Enter .NET/C#

    Goodbye VB6. Goodbye VC++. Hello managed code. Goodbye MFC. Hello (working) garbage collection. Goodbye complex threading models. Hello full-featured clone of Java.* renamed as System.*.

    C# as a language is a dream. It contains most of the language features that I had been dying for. It is readable, quick to code in and is put together in a consistent manner.

    There is very little about C# that is better than java. But for windows-based shops, Java can't hold a candle to c#/.net.

    It isn't a religous war. You may not like microsoft's policies or busines practices. And they certainly didn't invent the concept of a managed environment or one-up Java.

    While the typical slashdotter is foaming at the mouth about MS, .NET and how we are all bunch of idiots, I am busy writing code for a good company that just happens to base their operations on windows.

    Imagine the ability to take an ASP.NET app that you RAD-developed using MS VS.NET tools and cross-compiling it in Mono, running the whole thing under apache using mod_mono.

    You would have the benefit of a killer IDE (VS.NET), a rock-solid back end (Apache) and an application framework that works without headache!

    That is why **I** use MS.NET and MONO. I don't particularly care for MS, but I am smart enough to know what side of the bread is buttered.

    Bottom line: Sometimes you have to get past the religious zealotry of the pro-linux/anti-ms crowd (ie. slashdot) and see something for it's good.

    This isn't a perfect world, and MS usually sucks, but .NET is cool. Linux is cool. Mono is cool.

    Lets marry them together and reap the benefits.

    Standing at the back of room pouting isn't helping advance your cause.

  14. Re:Windows.Forms in Mono by killjoe · · Score: 2, Insightful

    I call it as I see it. This is a collasal waste of time. Those hackers should be working on cloning avalon not windows.forms.

    I am especially appalled by the idea that they are going to throw away all that they have written already and starting from scratch.

    It's their time, it's their money, they have a right to do anything they want but that does not mean I have to agree.

    --
    evil is as evil does
  15. Re:Miguel, please leave this planet! by OmegaBlac · · Score: 5, Insightful

    What is it with the hatred for this man? I swear some you act like he is the anti-christ for what he is attempting to accomplish with the Mono project.

    1. No one is forcing anyone to use Mono or run .Net apps on other operating systems.

    2. Try to look at the advantages that the OSS and Linux communities can utilize here if we can convince more developers to develop apps for Linux due to the existance of Mono.

    3. Mono and Miguel are not going anywhere so all the folks in the anti-mono crowd might as well get use to it.

  16. Re:Ahem, The CLI is just as much of a standard as by killjoe · · Score: 2, Insightful

    ECMA standards are bullshit. Companies like to submit things to ECMA because it puts the patina of standard on some technology and they still get to charge licencing fees. It's the whole RAND thing.

    It's all bullshit business as usual "you must pay us to use your intellectual property" crap.

    --
    evil is as evil does
  17. Re:you have got to be joking by Anonymous Coward · · Score: 2, Insightful

    Studies done at the time indicated that people made more mistakes with multi button mice

    I might buy this, for total newbies who haven't learned which button is which.

    and mice with multi button interfaces took longer for the user to accomplish what they want to do

    Maybe true for total newbies. As a general statement, I don't buy it.

    I use all three of my mouse buttons, and the one that's actually a scroll wheel, I also use a lot as a scroll wheel. You can't persuade me that I'll be faster using one hand to bang a particular key on the keyboard while the other hand clicks is faster than just hitting a single mouse button with a finger that is resting on that button. I don't buy it.

  18. Re:Mono has come very far in a short period of tim by Skeezix · · Score: 1, Insightful

    The .NET CLI and C# are ECMA standardized.

  19. Re:I think the world has finally left me behind by groomed · · Score: 4, Insightful
    Well, as the anonymous poster above already mentioned, you need to consider what came out of Microsoft before .NET; a confused jumble of acronyms and paradigms with the combined lifespan of a Coke bottle.

    .NET really is Microsoft's first serious contribution to the computing culture (as opposed to industry) at large. It synthesises many of the ideas of the past decade in a very clean and logical way. And it's remarkably open: not in the sense that it's endorsed by some standards body, but in the sense that it actually makes an effort to integrate with other technologies -- through the pervasive use of XML, the Common Language Runtime and the numerous hooks in the class library, all the way down to the fact that the C# compiler will actually not explode when encountering a file with \n line termination rather than \r\n.

    .NET is a heavy-duty framework that will be around in some form for decades to come, and it's pretty good. It's like Java but less insular, it's like C but less tedious.

    What generates all the hubbub, of course, is that something like this is coming from Microsoft. Think of it as a celebration party. What's being celebrated is that Microsoft is finally coming of age.

  20. Re:I think the world has finally left me behind by Anonymous Coward · · Score: 1, Insightful

    Blah blah blah.. you sound like an MS salesman. You make .Net sound like it's the greatest thing since sliced toast. I think you discredit competitors too much, which is too bad. MS botches up an awful lot of its products (particularly ones that developers must put up) which are outdated, bug-ridden, and sometimes over-engineered (like Windows' Registry). That's because MS sells it's products to the higher ups (i.e. they spend an awful lot of money making their shit look pretty), not to the people who are forced to use MS's crap.

  21. Re:I think the world has finally left me behind by Jord · · Score: 2, Insightful

    Anyone who thinks it is a good idea to code a mission critical application using Mono needs to find another job. No large company out there is going to trust a mission critical application to an untest language implementation like Mono. Perhaps in a few years but not yet.

  22. Re:I think the world has finally left me behind by Osty · · Score: 5, Insightful

    I understand that this is a rather novel concept under Windows, and if I were a Windows application developer I might just go along with it. It's certainly less painful than MFC/COM+. But that doesn't explain the massive exodus away from traditional languages and frameworks by Unix developers.

    All I can offer is that C# and .NET are the current "cool" things, and thus Unix (read: Linux) developers don't want to be left out in the cold. That may change in the future. It may not. Mono may mature to the point where cross-platform .NET applications Just Work (tm) without ugly GTK# stuff (GTK# is fine for Linux, but GTK on Windows sucks, and I can't imagine GTK# would be any better -- besides, the look & feel is all off, and themes can only do so much to correct that).


    Okay, imagine I also write end user applications for Linux/Unix users. What does Mono give me that C++/Qt/KDE does not? What does it give me that non-Ximian C/GTK/GNOME does not? What does it give me that RubyQT and wxPython do not?

    Basically, ask yourself why you would use Java rather than C/C++/Qt/KDE/GTK/GNOME or a scripting language like Ruby or Python, and then realize that C# fixes many annoyances from Java (int is both Object-derived and a value type in C#, unlike int vs. Integer in Java; You can create user-defined value types in C#; C#'s generics implementation is much more robust than Java's syntactical sugar hack that translates everything to Object during compilation; etc) and adds new language features (attributes, properties, events, etc). Java and C# are garbage-collected, which makes them more secure by default than C/C++ (with respect to memory management issues, anyway -- you can certainly still write insecure code in Java or C#). They're also compiled to an intermediate language, so they're faster than scripting languages (yes, Python and Ruby have various different compilers to build C code, java bytecode, .NET IL code, etc, but in their vanilla forms they're interpreted scripting languages).


    Or to put it another way, why should I jump on the .NET bandwagon when Java is here today and Parrot is just around the corner?

    .NET fixes a number of shortcomings of Java. Also, the C# language and common runtime are truly open (ECMA standardization), unlike Java. Parrot has been "just around the corner" for years, and nothing I've seen has indicated that it will actually "come around the corner" any time soon. If you want to wait, or build your software on top of ever-changing beta code, go ahead and use Parrot.

  23. Re:For Linux? by diamondsw · · Score: 2, Insightful

    I have no experience on the Amiga, so I can't comment there.

    Ultimately, if you tighten your code that much something will suffer - either maintainability/expandability, or feature-set. Sure, I can code amazing features into a tiny space using assembly, and be obsolesced very quickly (e.g. WriteNow), or I can scale back my features extensively (e.g. Mac System 5).

    Please recall that in the days of the OS cramming into under 1MB of memory, the feature set was very different. On the Mac (using System 6 as a baseline), we had no virtual memory, no aliases, no networking other than Appletalk, no drag and drop, primitive Multifinder, no multiple user support, and by today's standards, really crappy functionality (I have a Mac Plus sitting on my desk).

    Also, in those days you'd have 1MB of memory, of which say 300K would be used by the system. That's 30% or so. Today you have 256MB at least, which the system may use 64MB of or so - similar usage. Of course, today's systems have much more advanced memory management than the ones of yesteryear.

    Not all progress is "bloat". Remember a variant on the 80/20 rule - people by and large only want 20% of the features in an app, but can never agree on what 20% (not like we ever see arguments about that here on Slashdot, no, never).

    --
    I don't know what kind of crack I was on, but I suspect it was decaf.
  24. answer by Spy+Hunter · · Score: 1, Insightful
    C# and Java provide "reflection" APIs for implementing things like this. It would be quite easy to create a class entirely analagous to NSUndoManager in either language (and without the reference counting cruft necessary because of Objective-C's lack of garbage collection...)

    I won't defend C++ here, though. It could be done with function pointers but it wouldn't be pretty.

    --
    main(c,r){for(r=32;r;) printf(++c>31?c=!r--,"\n":c<r?" ":~c&r?" `":" #");}
  25. Re:Windows.Forms in Mono by ambrosine10 · · Score: 5, Insightful

    Those people criticizing Miguel really need to shut up. Here is a man who has contributed much code to open-source projects, is a great leader in the movement, and works for what he believes in. Yet these zealots are constantly yelling at him just because he happens to see MS technology in an impartial light. Just because it's by MS doesn't automatically make it bad. In fact if it wasn't for people like Miguel who try to merge practicality with idealism, the open-source movement would be as irrevelant as ever.

  26. Re:you have got to be joking by slittle · · Score: 2, Insightful

    Multibutton rodents are as close as we're likely to get to a practical "cyber glove" anytime soon.

    You need to think in 3D. Instead of text, icons and a mouse, think of objects and the mouse as an extension of your hand. You have multiple fingers and a wrist - the buttons and wheel(s) are the multiple ways to can hold and fiddle with objects.

    Seriously.. single button mice and classic MacOS are why everyone hates Mac users. They suck - everyone knows this, and Maclots violently insist(ed) they don't. Mac people finally admitted as much even back in the OSX beta days, vowing to never go back. Soon as Apple comes out with a multibutton 'elegant' mouse, you watch them all disown their previous '1 button forevah!!!!' ways.

    --
    Opportunity knocks. Karma hunts you down.
  27. Re:Windows.Forms in Mono by Anonymous Coward · · Score: 1, Insightful
    This took me about 30 seconds to do:

    Yeah right. Like you could even type it that fast, let alone write it.

  28. Re:Patents?-A paradigm divided. by Ollierose · · Score: 2, Insightful

    I think their intention is to use GTK# as an alternative which works on Linux and Windows as well. I'd guess that this means Photoshop.net for Linux is a possibliity using that toolkit instead

  29. Re:Windows.Forms in Mono by IamTheRealMike · · Score: 4, Insightful
    First of all, there is no magic bullet to write quality desktop software and have it run anywhere. These days, if you want to write a program once and have it feel native on each platform, you need to be either using native widgets on each platform, or to have a big investment in custom code and tweaks in your toolkit for each platform.

    GTK# runs on multiple platforms. Unsurprisingly it works best on the platform most people use it on. It does not run well on Windows or MacOS X, but that's simply because few people have worked on it/been interested in it. That can be fixed, with time.

    When Miguel said "GTK# is the path to independence" he was talking about API independence not platform independence. They are different.

    wxWidgets does not give platform independence. Sorry, but it just doesn't cut it for quality software. Abstractions work best when the things they abstract are semantically very similar (or identical) - widget toolkits are not similar, they often work in very different ways and have radically different capabilities. I've yet to run a wxWidgets app which didn't feel piss poor on every platform : much like Swing apps not feeling native everywhere, wxWidgets apps never fit in. This doesn't cut it for writing good software for the free desktop.

    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.

    GTK is a proven platform used by many, many applications. XUL is really only used by the Mozilla suite of apps: it lacks such basic things as the still theoretically xulrunner. That's why it was chosen.

    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.

    So what? Wine doesn't work on BSD systems currently either, but this is the fault of BSD not Wine (and I believe the same is true of Mono). Both Wine and Mono do very complex things with threading, address space management and low level OS calls that BSD either doesn't support or nobody with the relevant expertise has shown up to write the support. The vast majority of people use Linux, so this gets the best support. This is the open source meritocracy : write the code and the support will come, yes?

  30. Re:Windows.Forms in Mono by Archibald+Buttle · · Score: 2, Insightful

    Now this raises an interesting question.

    Why do we have both Mono and DotGNU implementations of Windows.Forms?

    Why dedicate four senior Mono developers to solving something that the GNU project has already tackled? Won't the DotGNU version work with Mono? If that's the case why not just take the DotGNU version as a starting point and work from there?

    Or is this some kind of licensing issue? It would not surprise me if the DotGNU implementation was lumbered with a full GPL, rather than an LGPL, thus making it unusable for anything appart from "free" software.

  31. Proof is in the pudding by Anonymous Coward · · Score: 1, Insightful

    But can't find much pudding. A google search for mono Linux applications returns loads of hits on mono the project, but nothing I can download and take for a spin. Mono seems to be primarily about mono at the moment.

    If some great apps are created with mono, then it will take off, regardless of people's reservations about patents, the moral dimension, etc., etc. If it's demonstrably great, people will use it.

  32. Re:I think the world has finally left me behind by aztracker1 · · Score: 2, Insightful

    Componentization(sp) is supposed to be "black-box" you give it an input, and should get an appropriate output (or one of a list of possible exceptions/errors) ...

    I realize that in real life that this isn't always the case, but the fact is, where a huge amount of development is today, this is the case anyhow...

    Web application is built in language X under framework Y, communicating with datasource SQL, webservice SOAP, and file access (framework Y) ... now you have to output to browser HTML, and interact with JavaScript...

    ASP.Net does a bit of a better job (imho) than anything before it.. and you can use VB.Net, C#, or a few other languages within the framework, not all is fully available in mono, but compiled libraries should work fine under mono, because of the CLI. I've worked with a lot of different web development platforms, and prefer asp.net.. JSP, and PHP are okay, but imo asp.net is simply nicer to use.

    Extend this with GTK# and there is more to offer, though, I've been toying with using asp.net (good html/xml handling base) with server-based XUL ... seems like a good marraige.. the fact is, that it does offer a fair amount of choice, which isn't bad.. and good compatability with MS isn't a bad thing either... Give you a foothold into companies deploying on MS, and giving them options to migrate away without nearly as much hardship in the future.

    Mono gives a good point of migration.. and if you've had to even try to migrate a ton of windows based code to work on other systems, it isn't fun.. just migrating from one rdbms to another is a painfull experience.. the toolset that mono offers is a nice thing to have.

    --
    Michael J. Ryan - tracker1.info