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."
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.
Haec merda tauri est. Ceterum censeo Carthaginem esse delendam.
I got a headache just reading the headline. Give us old fogies a break, we're used to seeing the hash mark at the beginning of the line...
I wanted to mention that our path to indepedence
clearly goes through Gtk#, but we realize the
importance of giving users binary compatibility
so we are actively developing Windows.Forms and
Visual Basic.NET (gasp) for Mono.
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
(our previous Wine-based approach having too many
Mono/Wine problems to solve).
Miguel.
You know there are panther and aqua themes out there that look and behave quite similarly to the mac theme. find them at Themes at freshmeat
eleventh post!! :)
From the mono FAQ:
Question 131: Could patents be used to completely disable Mono (either submarine patents filed now, or changes made by Microsoft specifically to create patent problems)?
... The controversial elements are the ASP.NET, ADO.NET and Windows.Forms subsets. Those are convenient for people who need full compatibility with the Windows platform, but are not required for the open source Mono platform, nor integration with today's Mono's rich support of Linux.
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 folksThere 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.
I've been using wxWidgets for some corperate develpment and I don't think I can be more happy with it. Integrating Cocoa into Mono is nice with GTK and all (didn't read article- sorry,) but is it going to use native UI faculties that the operating system provides? wxWidgets even has .NET interpolabilito under development called wx.NET and you can use that with Mono too.
I know this is OT, but it's an Apple thread, so here goes anyway.
/. does that, just silently wiping history away. A whole swath of comments just dragged to the trash bin. Sad that /. would come to this.
In the Johansen story posted earlier today, every single occurrence of the word 'mirror' has been completely and quietly cleaned out. Amazing how
Will Slashdot also delete this message?
..from embracing (and extending!) C# and .NET. Programmers generally like C# and .NET for application development, and Objective-C has some serious flaws.
Best Buy can have you arrested
macs interface is a piece of one mouse button designed crap! keep that shit away from linux!
I have realized that C# is a faggoty ass turd Microsoft shit out its ass. A smelly one at that. By all means, continue with your Herpes or Mono or whatever, but you want get any ball licking from me, monkey boys!
If you liked licking my balls, add me to your foes list!
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.
"Programmers generally like C# and .NET for application development, and Objective-C has some serious flaws."
Fortunately they never give any examples. Unless you consider "obsolete" a "serious flaw".
Really. You'd think Microsoft could come up with something better than the grid-based layout they have been since forever. Once you start using a constraint based layout kit like Gtk, you never want to go back to the stone age and have to manually write window resize code and manually adjust the sizes of controls individually. I'm hoping to try out Gtk# soon for projects now that we are starting to use .Net as a development platform.
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.
IIRC, you were going to redo SharpDevelop using SharpWT ?. Did that get cancelled or somethign ?. MonoDevelop is good and all that , but it's still Gtk2 crap :) .. Or is that also being redone with Cocoa# ?.
And finally wasn't doing it in Managed code the mistake dotGNU was making (the last time that came to discussion ?).... or is Mono taking back that statement ?.
MONO's definately getting to much attention. It would be good news for the Linux and open source movement if it simply rots away. We don't want yet another Microsoft on Linux.
What about those people who can't stand MONO, people who are leaving Linux for MacOSX, BeOS or QNX ? in 5-10 years they see MONO on these plattforms too due to the monoculture. It's really worrying and a scary vision. MONO might be a nice solution for some people but for the majority of us it's clearly not. Different demands for different people.
"they are not encumbered by bad-source-practices that is still keeping Java locked out of some domains."
.Net (and by extension Mono) NOT locked out of?
Uh, huh. And just what domains are "Java locked out of" that
Kudos to the Mono developers, what they have accomplished is no easy feat!
.NET framework in a desperate attempt to copy it!"
.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.
I just wonder when Microsoft will try to say, "See? We are the innovators. Look at mono! They followed our
While it may be true that Mono was released after
The point is that no matter what massive strides are made here (and they are great, and we are better off for having them), we must remain vigilant against people that would rather dominate the world than contribute to humanity.
bash: rtfm: command not found
Does Xbox Winforms Theme (seems to be written in C# ?)
"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."
I wasn't aware that a Graphical "Hello World" was so big.
I think the world has finally left me behind. I just don't get this obsession with .NET. Even the Java ecstacies back in the mid 90's weren't this enthusiastic. There are fifty stories on related topics on OSNews, and .NET evangelists are work are sprouting up everywhere like dandelions. Hell, Miguel can't take a dump these days without Slashdot reporting it.
Why the obsession with Microsoft technology? What's it going to give me, an embedded systems developer? Why are vice presidents at work mandating its use in a hard realtime product? Frankly it appears to me that the world has gone stark raving mad.
Has there EVER been any language or framework that generated so much unbridled enthusiasm before? Did they lace the spec with speed or something? I'm not doubting that these various Microsoft cloning projects have some merit, but some of you guys are going way over the top.
I guess I'm just an old fashioned fuddy duddy who should stick with old fashioned languages, frameworks and music.
Don't blame me, I didn't vote for either of them!
"So why do we need this bloat?"
Becuase some of us are doing more with our computers than just staring at them. Besided GPU accelerated GUI's are on their way. What's your rush?
We could use this to turn Star Wars Eps. I & II into something watchable?
And don't forget that, unlike Java, C# and .NET are ECMA STANDARDS!
Best Buy can have you arrested
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...
C# is, but .NET isn't.
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
Ahem, The CLI is just as much of a standard as C#
g /clr/
http://msdn.microsoft.com/net/ecma/
http://msdn.microsoft.com/netframework/programmin
Please, stop wasting everyone's time.
The only thing Mono is good for for a Cocoa programmer is a source of sad amusement.
Cocoa# is 100% native UI faculites, that's its big advantage. wxWidgets is clearly not.
The big advantage of Cocoa# is that if you business logic is separate from your UI then you can easily have a cross platform application.
... and make sure you never return.
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!"
.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.
... after .Net"??? How could it possibly implement .Net even before microsoft could figure it out?
err, copying IS what they were doing.
While it may be true that Mono was released after
"...it MAY be true
Mono was a lot of hard work but please stick to the facts and don't get religious.
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.
interesting..!!
That's exactely what I'm doing... kind of. I'm seperating all platform-specific stuff from the pure-wxWidgets specific code in case a port for Linux or Mac arises.
When I say "native" I mean using native platform code to do the UI. Cocoa does this, no questions asked, but not on a non-Mac.
"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!" "
What in the world are you talking about??? That's exactly what they're trying to do! Duh!!!
- sigs are for wimps.
Do you like gay new programming languages and development architectures ? Try .GAY and HOMO we are up to version 2.x now and DonkeySoft is regulary playing catch up with us. Our standards are also signed by GOATSE so we know that we have a clean environment implementation.
For more information please visit our project page at Go-Homo.org.
I'm pretty sure Miguel isn't on whatever planet you're on anyway.
Boffoonery - downloadable Comedy Benefit for Bletchley Park
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.
"...he controversial elements are the ASP.NET, ADO.NET and Windows.Forms subsets. Those are convenient for people who need full compatibility with the Windows platform, but are not required for the open source Mono platform, nor integration with today's Mono's rich support of Linux."
So basically those who wish to do cross-platform apps are potentially up a creek without a paddle. No Adobe Photoshop:.NET version for you Linux guys.
Now as for Linux, all Mono basically becomes is another (in a long line of "anothers") toolkit/language to play with.
Two words for you. runtime revolution
evil is as evil does
1) I'm a programmer. They don't call it programmer for nothing.
2) My software is going to be distributed in packages that cost over ten thousand dollars (USD), I'm sure "runtime revolution" is not somthing that will sounds good when the clients ask whats behind the software.
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
" 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."
I think it's only fair to point out that I see the same attitude directed at RMS.
"3. Mono and Miguel are not going anywhere so all the folks in the anti-mono crowd might as well get use to it."
Neither is RMS.
http://www.mono-project.com/downloads/
Mono 1.0.1 has been released and fixes a number of bugs.
The .NET CLI and C# are ECMA standardized.
Celebrate the finer things in life
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):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
You can use the native Cocoa interface for more languages than Java, ObjC and now Mono. Good for those who like Ruby for example: http://www.fobj.com/rubycocoa/doc/.
And for those of us who are new to Mono, it might help to have a simple 'hello world' example. I've had a quick look with Google but can't find anything. Anyone know of a simple tutorial?
I thought we were laying it down for SCO this week, didn't you get the memo?
" 1) I'm a programmer. They don't call it programmer for nothing."
Huh?
"My software is going to be distributed in packages that cost over ten thousand dollars (USD), I'm sure "runtime revolution" is not somthing that will sounds good when the clients ask whats behind the software."
Why would your client care what language it's written in? RR compiles down to native code just like C does. What the fuck is the big deal?
evil is as evil does
I'm also using the Windows driver (usbhid.sys) HID functions. Can this RR shit do that? I don't think so.
What the fuck is _your_ problem? You're trying to change my mind?
If you are looking for innovative, look at Apple: At the forefront, inventing things for others to copy.
The open source innovation is the open source license and idea itself: It's revolutionary, and it will lead to a better life for all of us. It's pervasive throughout society.
Open source software per se isn't any more or less innovative than any other software.
Statistically speaking, the factors "is open source or not" and "innovative" are independent variables. Eiter can be innovative, both rarely are.
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?" `":" #");}
Personally, I find this whole 'Linux on CLR' thing very disturbing. What would happen, and, more importantly, how much leverage would MS suddenly have over Linux, if it all actually took off in a big way? And its not like its anything particularly clever. Sure, C# is a nice enough language, but the real deal here is the platform/language neutral CLR - which has been done academically several times over. Perhaps its like the KDE/GNOME thing. Perhaps the whole Linux scene has just been waiting for someone to 'spank' them into accepting a standard? Pretty ironic if it turned out to be MS though. Dunno. Just very cynical about what the real importance of what's happening here.
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.
This is the first time in my life I would applaude if Microsoft would sue the fucking hell out of de Icaza and have MONO stop. I from now on will try everything even mailing and helping Microsoft only to get rid of this AIDS cancer called MONO.
But MONO is not Microsoft standard due to work arounds in it's implementations.
"Ximian does not seem really interested in real platform CocoaSharp."
;)
should be: "Ximian does not seem really interested in real platform independence."
Sorry, I messed with the clipboard.
Other than vi/emacs crap, nobody has any real beef with RMS's technical direction (which is pure phone company c/unix). Miguel, otoh, gets tarred with the worst sort of FUD, whether it was for Gnome or Mono.
killjoe == troll
Slippery asshole, aren't ya. He completely demolishes your first objection, so you just ignore it and come up with some other bullshit. The fact that your new bullshit is incompatible with your original post doesn't even occur to you, because you're too desperate to try to manufacture a way to not look stupid.
You appear to be reading slashdot, and yet be a productive individual. How?
You have a better alternative to accessing USB HID drivers? I'm really open to using somthing else because I'm not too fond of the current API set myself.
I'm fairly certain that Mono and
Kids today are tyrants. They contradict their parent, gobble their food, and tyrannize their teachers. - Socrates 400 BC
C# is an ISO standard too.
ISO/IEC 23270:2003
Information technology -- C# Language Specification
I'm a Java developer. Have been for 5 years or so. In all that time I've been developing on a windows desktop machine and deploying to a variety of servers - windows, linux and solaris. I've NEVER had any problems with incompatibilities between platforms. And I'm talking all kinds of apps - from desktop stuff (in the much-maligned and thoroughly underated and misunderstood Swing) to weblogic-based enterprise systems. What's going on? Am I some kind of Java god and just don't realise it? It's really not that hard to write Java code that really can run anywhere without any changes. In fact I think I'd have to try pretty hard to think of a way to create cross-platform incompatibilities (apart from obvious schoolboy errors like hard-coding paths). It saddens me to see the Slashdot crowd constantly claiming otherwise. Is this really people's experience or is everyone just repeating the mantra they've heard everyone else saying? Oh yeah, I forgot to mention, Java's too slow for real applications...
The point was that most of Dotnet isn't standardized (~10% of classes and declining), but there is a group of /. posters who continue to insert this claim into all Mono threads although they know better.
Of course, that probably has something to do with the relative value of a Dotnet compatible system (high) vs. a Dotnet-wannabee (low).
The main reasons I won't be using GTK# though, are the fact that they still say they are unstable and there's no documented way to build apps graphically (SharpDevelop is Windows only, Eclipse is too slow) If you know how to do it in VS.NET or Whidbey, please get some links done.
Innovative? I wonder if Robert Sabiston has any patents on his software: http://www.lariat.org/AtTheMovies/wakinglife.html
Astroturfers, all of them.
The "cue the foo posts in 3, 2, 1..." posts will commence with no subsequent foo posts in 3, 2, 1...
Wasn't the "gag" for MS naming the .NET language "C#" to refer to the musical note? Since C# doesn't appear to have a "#" operator, why not use musical names or some other rule for naming these other languages? Just tacking "#" after language names shows a lack of imagination and gives MS too much of a marketing leverage over the open source project's future PR. Not to mention confusing all those shell scripters out there? (-;
Those who complain about affect & effect on
he gets modded up
Sorry, has anyone seen Gimp on Windows? It looks pathetic, all the system dialogs are gone replaced with some horrible GTK dialogs.
At least SWT (like wxWindows) uses "real" native widgets on all platforms (GTK on Linux, Cocoa on Mac, MFC on Windows), instead of emulating them. That's the way to go.
My reasons for using GNU and other free software are political, not just technical.
(I don't either have the money to buy proprietary software right now, but that could be arranged, I have an employer)
I don't care as much about technical stuff as I care about politics. If I felt that the Mono project was a threat to freedom, I would be against it. That's the reasoning behind all the mono bashing.
Anyway, I don't care much about Mono because I enjoy Java & GCJ, but my point is that it's useless to refute political statements with technical reasons. There is some proprietary software that is technically better (.... matlab?, Intel compilers?) but freedom is too much to pay for better performance.
" I'm also using the Windows driver (usbhid.sys) HID functions. "
.001% of the programmers that need that. Hey wait a minute! You said you were writing a cross platform application!. So were you lying then or are you lying now?
Gee I don't know I am not in the
"What the fuck is _your_ problem? You're trying to change my mind?"
Nah. Just pointing out that you are an idiot.
evil is as evil does
Write all your business apps on Linux and make everyone use them through vnc or some other remote desktop program if they really need Windows. Else just ditch the PC altogether and give 'em a thin client..
Try swt
http://www.eclipse.org/swt/
Well I want to thank squiggleslash for articulating (in an acceptable manner) what's fundamentally wrong with F/OSS today. You're speaking of Mono, but it extends to other things as well. For example the unquestioned acceptance of binary drivers. The denigration of those who put principle over pleasure. The inability to see and understand the core paradigms that make Unix/Linux what they are. Basically we're being infected by the MS mentality, even if the code is safe from our eyes.
Intercepting message sends and messages-as-data are commonplace in Smalltalk. The syntax of HOM is kind of neat, granted.
P.S. in Smalltalk you'd say 'array select: [:each | each isFroody]'
Notice how you don't have to play tricks with method dispatching? That's because I'm using a block to inject current context into another context (that created by sending #select:), which , IMHO, is much, much nicer than forwarding messages.
see http://www.cincomsmalltalk.com/, http://www.squeak.org/, or http://www.ambrai.com/ (for a Mac specific dialect, unfortunately based on Carbon)
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.
"I believe others will follow with compilers/interpreters for (managed)C++, Obj C, Ruby, Python, Java, etc. "
How well will that work from the "leaky abstractions" perspective?
I work for a company that writes it's product in a language called Databus...it used to be hardware specific but now it is a complied yet interpreted language that runs on a LOT of platforms...that is it's strength and pretty much the reason why we don't use "more modern" languages.
I have been watching the Mono project ever since I have heard of it and I am truly amazed at all they have accomplished. I know they have a long way to go...but YOU GUYS RAWK!
I can only hope that one day Mono will allow for our apps to be as portable as they are now so we can switch to another language that has more robust OO abilities not to mention other things I hate about db/c.
So, please, keep up the good work on Mono...many folks out here are rooting for you.
B
It has nothing to do with your original post. You said you couldn't use it because of the image. But you were complaining just to complain, apparently.
If that's not good enough, then you must be appealing to the old "dynamic typing r00lz" argument
I don't think you've addressed the point.
If you send a message to an Objective-C object and it doesn't have a method that matches the message name, the object can redirect (or do whatever it wants -- log it, for example) the message from within -forwardInvocation.
- Scott
Scott Stevenson
Tree House Ideas
Funny, I don't use Java for political reasons either. IMO, they both have problems right now. Mono is under the gun until MS comes out in writing that it won't pursue patent litigation or license terms that would kill Free Software (the later will *never* happen), while Sun won't loosen up its control of Java enough for it to even be distributed with Debian, since it fails to meet the Debian Free Software Guidelines (DFSG). So, if the politics are important to you, you should be using wxWidgets, or ".GNU", or whatever.
So you don't use Java or .Net. Let me guess, you are taking loads of cum in the mouth from a certain Python. Not that I blame you. I'd suck on that snake given the chance.
But in any case, Debian has Java in the form of free JVM's. They may not be on the same level as the official JVM's, but they do exist.
If you liked licking my balls, add me to your foes list!
Whenever a high school friend of mine would pass a "YIELD" sign on the road, he would retort defiantly, "Never!"
Shop as usual. And avoid panic buying.
Or Java and GCJ, from the GNU Compiler Collection.