Creating .NET C# Applications for Linux 340
An anonymous reader wrote to mention an article on the IBM site entitled Mono brings .Net Apps to Linux. From the article: "Mono gives open source developers the programming power and flexibility to build applications for Linux while maintaining cross-platform capabilities, using a variety of .NET-compatible languages. One of the great advantages of Mono for current .NET developers is providing an easier migration path to Linux. The Mono project has a very open and active development community and provides both developer tools and the infrastructure needed to run .NET client and server applications. Perhaps the most important benefit of using the Mono architecture is that you gain language independence. Mono lets you leverage any existing code from languages supported in the .NET runtime. "
Ewww.... (Score:5, Funny)
let me get this straight ... (Score:5, Insightful)
Sam
Re:let me get this straight ... (Score:5, Insightful)
Yea, that is pretty strange. I would use Java before I'd use
Re:let me get this straight ... (Score:3, Insightful)
I think Delph did a very good job of the GUI.
Re:let me get this straight ... (Score:4, Informative)
Re:let me get this straight ... (Score:4, Insightful)
And if you really want someone to understand the power of OOP, give them the VCL chart from Delphi or C++Builder to study for a while.
Re:let me get this straight ... (Score:4, Interesting)
The reason for the ternary operator is simple - to allow C code to be easily ported.
As for properties, this is a good point but in practice does not matter - all good Java IDEs have property management built in: The will allow the automated generation and management of get/set methods and the values they change. For example, on NetBeans you simply select the 'properties entry' for the class, and off you go..
Why Mono is Currently An Unacceptable Risk (Score:4, Insightful)
1. Microsoft's C#/CLI licensing people, at high levels, are aware of us.
2. Microsoft can choose to do damaging things in the current C#/CLI licensing ambiguity.
3. Microsoft considers the free software / Linux community to be a major competitive threat
4. Microsoft does not "compete" gently
5. A + B + C + D = ?
The word pile amassed below defends points (1) and, in particular, (2). I take points (3) and (4) as given. I leave point (5) an exercise for the reader.
Stupid Disclaimer
Since I'm not a lawyer, I don't know if these disclaimers are important. But given the nature of the topic, I'll play it safe and write one. I'm not a lawyer, and this ain't legal advice, its just a dump my current thinking on an issue. It does not represent my employer's opinion. It may represent my cat's opinion, but only on the second tuesday of summer months.
Restatement of the Issue
Miguel has repeatedly stated that the patents necessary to implement the standards ECMA-334 (C#) and ECMA-335 (CLI) are available from Microsoft "RAND + Royalty Free". This seems like an effective open patent grant and encouraged me initially that we could do Mono. I really like Mono. Its terrific technically, and I'd love to be able to use it. But two problems upon further consideration the past couple months:
1. I've not seen an official statement by Microsoft that will let me trust the royalty free assertion. I think we are remiss if we do not assume Microsoft is looking for ways to, quite frankly, screw us. So unless there is a statement from Microsoft that they will have to stick to in a court, I feel (at the very least) uncomfortable.
2. "RAND + royalty free", can still seriously screw Free Software. I think this is more important than the first point. Even with RAND + royalty free you still have to execute a license agreement with Microsoft, and license agreements can stipulate things that are RAND from a corporation perspective but still screw over Free Software. Also, there is evidence that key Microsoft people are already aware of (or planned?) incompatibilities between the licensing scheme for C#/CLI and, at least, the GPL. The eye of Sauron is upon us. RAND + royalty free is very different from a patent grant.
In short, we are in an adversarial situation. Microsoft does not want us to succeed. Thus we cannot trust Microsoft, even if we'd like to, and must consider Mono based upon the question "What is the worst thing MS can reasonably do?". We can only trust Mono if we are convinced Microsoft doesn't have weasel room. The current situation appears, to me, to have lots of weasel room. The technical merits of Mono are basically irrelevant if its a trojan horse in the long term.
The Horror Story
So here's the obligatory horror story based upon what I see as our current course. Actually, I don't think this is taken to extremes at all. The GNOME actions look to me like the path we are currently on, and the Microsoft actions are not out of character, and look legally tenable based on what I know today. Microsoft can choose to not exercise these actions, but they will have the possibility (and will be more likely to the more successful the Linux desktop is).
* Act 1 - Novell hackers continue to push Mono. Novell hackers code most new independent programs/functionality in Mono and gradually start writing extensions to software like Evolution in Mono. Evolution's core continues to remain Mono free, but if you want features X, Y, and Z you have to use Mono. A few GNOME hackers write apps in Mono, some as toys, and perhaps a couple more serious. Red Hat hackers complain. Some try to weakly push Java and some stick with working in C & Python. Sun makes noise, and does their own thing, starts some wacky projects, tries to push Java with OpenOffice.org, and
Re:let me get this straight ... (Score:3, Informative)
Keep in mind that there are always extensions so that you can call methods in native assemblies on your platform. This means you can pretty much interact with anything.
Re:let me get this straight ... (Score:4, Interesting)
Java = portability; mono = novell's quality of software (bad)
I've personally talked to a mono developer at my university. He works for novell on the project and they never intend to make mono compatible with
Re:let me get this straight ... (Score:5, Informative)
And one of our goals is to be compatible with the
But our goal is not limited to *only* being compatible with Microsoft's
We created Gtk#, the toolkit we recommend for new applications that are to be cross platform; The enhanced XML stack (Commons.RelaxNG and Mono.Xml.Ext), our extended security and cryptography stack (Mono.Security), our extended Database support (Mono.Data and all of the providers for proprietary and open source databases), our IL manipulation library (Cecil) and everything that goes with these libraries.
We try to make our libraries cross-platform, because the same code will reach more users and helps grow our community, but every once in a while we have to create OS-specific libraries. For example, the Mono.Posix library is not completely portable to Windows. The Cocoa# library only works on MacOS X, as it is designed to be just an interface to Cocoa.
Miguel.
Re:let me get this straight ... (Score:3, Interesting)
Re:let me get this straight ... (Score:3, Interesting)
Miguel, I have watched for several years this Mono project. At first I thought it was a bad idea. Now I know it is a bad idea. I don't understand why you continue to fragment the community as the Mono project does. I remember the blurb about MS barring Mono from some conference recently. I don't know why you continue to add momenteum to a platform that you cannot control. That only benefits one person - the same one who controls the platform.
In
Re:let me get this straight ... (Score:4, Interesting)
Sometimes having ease and flexibility is more important than being cross platform.
Besides, most libraries linux C# applications p/invoke are source-portable so the C# application itself will be cross platform as long as you have the platform specific binaries for the native libraries you pinvoked. The binaries you distribute won't necessarily be cross platform but for desktop applications, that's not really a big issue.
Re:let me get this straight ... (Score:2)
*thud*
Ow, hey stop throwing stuff at me!
help
HELP!
Re:let me get this straight ... (Score:4, Funny)
Now if they get ahold of some open source robotic arm code, you are screwed.
Re:let me get this straight ... (Score:3, Insightful)
Re:let me get this straight ... (Score:5, Insightful)
This means nothing. These parts are still subject to patents. Sun is prepared to certify any Java implementation as 'Java' providing it passes their compatibility tests. They have even done this for clean-room implementations by rival companies like HP.
That in itself won't give you compatibility with Microsoft applications
Whereas Java gives you a definite guarantee of compatibility.
and you lose nothing by not going to Java.
Except performance, reliability, being able to use quality products from multiple vendors such as Sun, HP, IBM etc, and using the language which is now the de-facto standard for commercial server-side software development.
Re:let me get this straight ... (Score:3, Interesting)
Re:let me get this straight ... (Score:3, Insightful)
Re:let me get this straight ... (Score:2)
And if the GNU Classpath support for Swing and AWT improves, then there'll be an option availa
Re:let me get this straight ... (Score:3, Informative)
This will be news to the thousands of developers who are already using Java under Linux and Windows for application development right now! If you look at the IT job market (Java being the most required skill for commercial application development), you won't see Java uptake being held up because it is not currently a 'useful option'!
Personally, I can see the advantage of a mature open
Where are the apps? (Score:2)
Re:Where are the apps? (Score:4, Informative)
That will be news to the many developers who have produced such applications. Go to the Swing Connection on the Sun Java Website and you will see hundreds of applications that are consumer-grade. This includes games, graphics apps, and multi-media apps.
And, of course, there are the thousands of different Java games that are downloaded to mobile phones every day!
So much for Java not being 'consumer-grade'!
Re:Where are the apps? (Score:3, Informative)
Strangely, mobile devices can run java in just a few 100k. The Java 5.0 VM itself can run in just a few MB.
Write a simple Java 'hello world' program, and you will find it can run in just a few megabytes (use the -Xmx switch to set the max usage).
So the claim that your machine will swap 'each time you use a Java application' is provably nonsense.
Re:Where are the apps? - What Speed? (Score:3, Informative)
That is exactly the situation on all my workstations right now, and I have never seen a system that is faster. It changes nothing, of course.
I have stated that I do not want to wait even a few seconds for an application to load. It's obnoxious to me and, I would venture, most other users. I don't understand why you are supporting th
Re:let me get this straight ... (Score:5, Insightful)
Linux programmers will use .NET/C# but they won't use Java?? What's up with that?
I can apt-get install mono, but Sun told me to go fuck myself with a chainsaw when I wanted a .deb of Java1.5. (Yes, there is java-package, which does a great job, but really, it's a fucking mess).
Apples and Oranges (Score:4, Interesting)
You can't compare the two. Try comparing Mono and Blackdown instead.
Re:Apples and Oranges (Score:3, Informative)
http://www.mono-project.com/FAQ:_Licensing [mono-project.com]
Re:Apples and Oranges (Score:3, Interesting)
I know when writing python software when I need something outside the standard lib the first place I look is th
Re:Apples and Oranges (Score:3, Insightful)
apt-get install is overrated (Score:3, Interesting)
It's very easy to download the Sun JRE or JDK from Sun's website and to install it. Not much more effort that typing apt-get install.
I've been using Debian, Fedora and CentOS recently after years of using Slackware and Solaris, and I can tell you that all the package managers have their advantages and disadvantages, but really, downloading and installing the Java distribution from Sun really isn't that difficult.
Sun may have some strange attitudes towards the redistribution of Java, but from what I can ga
Re:apt-get install is overrated (Score:3, Interesting)
On the other hand C/C++, shell, perl, python and all other apps run fine out of the box (and you don't even know what lang it was written in before you examine i
Re:let me get this straight ... (Score:2)
Re:let me get this straight ... (Score:3, Interesting)
Sam
I'm a long time linux user, and I love java - and I meet a lot of people of like mind in the course of my work. As for mono, we're all pretty much taking a "wait and see" approach. It's a neat hack, but... can we trust that microsoft won't stir up patent trouble? I dunno, java just seems a lot less risky.
Alright, so who told you that linux programers won't use java?
YHBT, my friend!
HAND
Re:let me get this straight ... (Score:2)
Motivation is what matters (Score:3, Insightful)
Sure they'll do it.
...to pad their resume. Read the classifieds lately? There's a lotta .NET jobs out there. It's nice to learn .NET without having to boot "that other OS", y'know.
Re:let me get this straight ... (Score:3, Interesting)
Sounds just like
I've always though that Mono was a waste of time.
Re:let me get this straight ... (Score:2)
Wrong.
Java 5.0 beats
If Sun can write complete IDE (NetBeans) that is fully cross-platform and portable between different vendors JVMs, then the statement 'that most stuff written these days won't work cross-platform' is nothing more than a troll.
Re:let me get this straight ... (Score:2)
Re:let me get this straight ... (Score:3, Informative)
yes, I do.
I have been severely critical of Swing performance in the past, however it has improved dramatically.
here is a single post which gives a typical comparison:
http://www.javalobby.org/java/forums/m91832009.htm l [javalobby.org]
But in the end, the best thing to do is to download NetBeans + Java 5.0 and Eclipse (the GTK version is best) and try them out.
Re:let me get this straight ... (Score:2)
Re:let me get this straight ... (Score:3, Informative)
In real-world applications, C# matches up quite well to Java's speed.
Re:let me get this straight ... (Score:2)
Often beans != mostly beats.
Java has many companies working hard to provide high-performance VMs. C# has Microsoft and Mono.
Java zealot who bases opinions on limited and unfair tests.
I am not a Java zealot. I have held back from using Java for serious math work for years.
In real-world applications, C# matches up quite well to Java's speed.
But without its wide industry acceptance and portability.
Re:let me get this straight ... (Score:2)
No it isn't. NetBeans 4.1 and 5.0 under Java 5.0 are far faster in terms of GUI performance than, for example Eclipse - which uses native GTK components.
Re:C# is an open standard (Score:3, Informative)
Re:C# is an open standard (Score:2, Informative)
I'd rather use Java and have its full framwork available to me than use C# and a crippled, albeit quickly catching up,
Re:let me get this straight ... (Score:3, Informative)
Re:let me get this straight ... (Score:5, Insightful)
Other useful parts of C#/.NET include delegates, enums, automatic boxing of value types, properties, indexers, multidimensional arrays (as opposed to jagged ones) and foreach (for simple iteration through arrays or other indexed/enumerable objects). Hopefully the Java language designers will take notice and adapt some of these incredibly useful features to Java. Microsoft took so much from the Java language design that it should only be fair for Java to do the same to Microsoft's product.
Re:let me get this straight ... (Score:4, Informative)
Wouldn't it be funny if... (Score:5, Insightful)
Given that Java was a new language, maybe the migration from MS developers wasn't all that great... but now, with Mono, MS developers can move right over.
Re:Wouldn't it be funny if... (Score:2)
Re:Wouldn't it be funny if... (Score:2)
Making cross platform code has to be done from the ground up... just because you have some kind of binary (well, pcode) compatibility means nothing if you weren't thinking of Unix when you wrote it.
Even trivial things will break you... assuming Mono has written the ADO+ classes (no mean feat if so) most ADO+ code is written to MSDE/SQL Server and w
Re:Wouldn't it be funny if... (Score:2)
have you ever used ADO or ADO.NET? You do realize there is an ODBC driver for nearly every database in existance? ADO and ADO.NET will run perfectly fine against MySQL. Or postgres or oracle or whatever. Stop spreading FUD.
Agreed... (Score:5, Insightful)
No thanks.
Oh and MonoDevelop vs Visual Studio? Don't make me laugh. Well maybe one could run VS under WINE to get a decent IDE.
.NET Windows Forms (Score:2, Interesting)
Re:.NET Windows Forms (Score:4, Informative)
It's recommended to use the latest build of Mono System.Windows.Forms, you can find it here [mono-project.com].
And here is the the Mono WinForms class status [myrealbox.com].
I currently wouldn't rely on it. But the outlook is good.
And here are some pretty pictures [myrealbox.com] of Mono's WinForms in action.
For apps where the both compatiblity with Windows and Linux/OSX are important I'd use wx.NET [sourceforge.net].
However on Win32 WinForms works best, even if it isn't the nicest (for developers) toolkit around.
Re:.NET Windows Forms (Score:3, Insightful)
Seriously, you've just summed up the whole 'bait and switch' flaw with mono.
Not really news... (Score:3, Informative)
portability problems (Score:5, Interesting)
Keep in mind that Microsoft saw .NET as cross-platform, but only between windows platforms. Java is far better in that respect. While full compatibility is in many cases impossible, the extra effort per platform is much smaller
For portable GUI apps..... (Score:2)
wxWidgets vs. Qt vs. Windows Forms (Score:3, Interesting)
Qt was eliminated right out - my project can't be made GPL (due to a piece of the code that is subject to export restrictions), and I can't afford the license cost for a commercial license (and the educational license was too restrictive: I could only develop on campus on a school owned computer.).
Windows Forms is looking very slick. Cross compatibility isn't a requirement, its
Re:wxWidgets vs. Qt vs. Windows Forms (Score:3, Informative)
What about using FOX [fox-toolkit.org]? It's far lighter than wxWidgets or QT, while still offering a decent cross-platform GUI. And it's LGPL, with static linking exceptions.
Re:wxWidgets vs. Qt vs. Windows Forms (Score:2)
-everphilski-
Re:wxWidgets vs. Qt vs. Windows Forms (Score:3, Insightful)
Re:For portable GUI apps..... (Score:2)
And if it barely works on Mac OS X, and it isn't really suitable for serious, large-scale Windows apps, then perhaps it really isn't all that useful.
Re:portability problems (Score:2)
QT# exists or you can call QT libs directly from
Here we go again (Score:4, Insightful)
maintaining cross-platform capabilities, using a variety of
Why do people even bother with Mono? I know I am going to be modded as a troll but I have yet to see a single app besides a hello world being cross platform? I think the developers looking at C# and Mono in a greater light than Java are ignoring the patent and copyright issues just because C# looks cooler. Thats pretty short sighted.
C# would be the lowest ranked languaged behind visual basic if you want to avoid vender lock in.
What will happen when C# 2.0 comes out? My guess is Linux will be playing catchup again and meanwhile windows will look like a better alternative to businesses standardizing on C# because their geeks mentioned how great Mono is.
Re:Here we go again (Score:2)
Re:Here we go again (Score:2)
Actually, Mono already supports the features of C# 2.0. The Whidbey beta has been out for over a year, you know.
Re:Here we go again (Score:3, Insightful)
Right [gotdotnet.com].. of course not all of these are completed, but still. There are also some implementations not listed there like IronPython.
Or you can install Mono or Portable.Net on Windows and compile without resorting to Microsoft tools. The resulting application will run just fine using the MS runtime or any other runtime on any other platform. (As long as you have the libraries you need
Re: here we go again (Score:5, Insightful)
The excellent java-gnome [sourceforge.net] project is the Java equivalent of GTK#/GNOME#, but I don't see nearly as many programs being developed for it. In fact, a quick apt-cache rdepends reveals that there are precicely zero applications using libgtk-java in Debian, whereas libgtk-cil is used by projects such as tomboy, graphmonkey, gnunit, beagle and blam. There are also a load of programs that have not yet been packaged; assuming that the same proportion of GTK# and java-gnome apps have been packaged, it seems that there is a lot more developer interest--buzz--around Mono than there is around Java. Mono-based programs are certainly mentioned more often (read: at all) on the feeds I read than Java-based ones; and how many "Creating Java applications for Linux" articles have been posted to Slashdot recently?
So why is this? I recon it's simply down to how easy it is to get started using the platforms in question. Say I want to run Beagle [gnome.org]--I apt-get install beagle. Now let's say I want to run the hypothetical jeagle. I have to navigate, with a graphical browser no less, Sun's gargantuan site; agree to a huge, no-doubt soul-selling bullshit EULA; run Sun's crappy installer that shits untracked files all over my system... and I still can't apt-get install jeagle because Sun's crappy installer doesn't know about dpkg. As a Debian user who actually knows what he is doing, I can use java-package [debian.org] to convert Sun's crap installer into a
"But Mono isn't made by Microsoft! It's not a fair comparison", you might say. To this I reply, I don't care! C# and Java are both nice, modern (perhaps I should say 'fashionable' to avoid being prodded by the Lispniks) languages that make software development fun and easy--but it is easier to get into C# because a platform that lets me use it is only an apt-get away.
Now, perhaps Sun could turn this around by hiring a couple of Debian Developers to make some really high quality Debian packages of Java, and granting Debian permission to distribute them in non-free; but this only solves the problem for users of Debian and Debian-derived distributions. Sun would also have to find someone to create decent packages for Fedora, Mandriva, Suse, Slackware, whatever. But hold on a minute--Mono has people coming out of the walls to package it for their favourite distribution, so why should Sun have to put in extra effort to make this possible--and still be playing catch-up? It's because Mono has buzz! The openess, liberty and low barrier-to-entry have drawn developers to the Mono platform, while Java has languished under Sun's iron fist.
In the end it's not about Java-the-language vs. C#; it's about the openess of the platforms: Java-the-closed/inaccessible platform vs the GPL'd Mono. Development of the components of an open source Java platform has been slow because Sun have already created a 'good enough' implementation of Java on GNU/Linux--but Mono has everything to to play for; the stakes are high, there are no grumpy old gits saying "Microsoft's GNU/Linux
To summarise: Mono is exciting. Java is a pain in the ass.
Re:Here we go again (Score:5, Interesting)
* Novell's own iFolder client and servers (same code base, modulo UI which is native on each of the three platforms: Linux/Gtk, Windows/Winforms, Cocoa/OSX).
* (http:///www.medsphere.com [medsphere.com]) Medsphere's products (Mono/Gtk# based).
* Otee's Unity game engine (http://www.otee.dk/index.html [www.otee.dk]).
You can look for the "Works with Mono" logo on open source
For a larger but still incomplete list, see:
http://www.mono-project.com/Software [mono-project.com]
As for your question about what will happen when C# 2.0 comes out, we have good news, we already have implemented it (we are missing two fairly minimal features though), for details you can see our web page on the subject:
http://www.mono-project.com/CSharp_Compiler [mono-project.com]
Generics, itereators, anonymous methods, nullable types, partial classes, per-accessor modifiers, static classes, fixed buffers and co/contra-variant delegates are all implemented and available today.
And we can not wait to implement the new features in C# 3.0
Miguel.
"cross-platform" (Score:5, Funny)
You keep using that word. I don't think it means what you think it means.
Re:"cross-platform" (Score:3, Funny)
You can run Mono in almost any version of Windows.
Why bother? (Score:5, Insightful)
If the Apache Harmony projects succeeds (and it has a lot of backing) there will be a complete open source cross-platform Java implementation. There are already open-source Java versions that are good enough for many applications (gcj, Kaffe).
Mono is a waste of time.
Re:Why bother? (Score:2)
Re:Why bother? (Score:3, Informative)
With a horrible license and horrible performance.
not an incomplete port of .NET (Mono) potentially subject to Microsoft patents. Anti-mono people go on about the patent bogeyman even though MS has *never* used a patent aggressively, and there are situations where it would benefit them far more to do so (OOo, Samba). The threat of patents is just so much hot air.
If the Apache Harmony projects su
How cross-platform (Score:2, Interesting)
A C# program targeting the Mono runtime will probably be very portable to all operating systems that run Mono. But, will a Mono app/code base developed on Linux run just as smoothly on the
Re:How cross-platform (Score:2, Informative)
I took a console application that used network sockets, timers, and was completely multithreaded that I had compiled using microsoft's c# compiler, and copied it to a linux server (no recompile).
Fired up mono ... it worked flawlessly, first time. I was impressed.
Re:How cross-platform (Score:3, Informative)
Yes, that's the whole point, though it only will if it sticks to the standard APIs. There are things which are only supported in Mono, but they are split off into their own namespaces (usually Mono.*). The same is true with Java, if your thing uses sun.* it won't work on non-sun jvms.
Why so many stories about mono? (Score:5, Insightful)
Why use Mono/.NET when you have ruby, perl, php, and python? All of which are cross platform? As far as only being able to give binary code to your customers ActiveState's Perl Dev Kit allows you to do just this (even though it's not free, but still less expensive than a license for Visual Studio
But honestly can someone who has done development in Mono and and the other aforementioned languages convince me or anyone else for that matter to learn C#/Visual Basic.NET, and enjoy what it has to offer? What does it offer that the other aforementioned languages do not?
Re:Why so many stories about mono? (Score:2)
Re:Why so many stories about mono? (Score:3, Insightful)
Why use C++ when you have JavaScript? Why use Haskell when you have BASH? They're apples and oranges.
As far as only being able to give binary code to your customers ActiveState's Perl Dev Kit allows you to do just this (even though it's not free, but still less expensive than a license for Visual Studio
Java has language independence too! (Score:4, Informative)
This is by far the most hyped feature of C# but it's also present in Java. If you look at the large incompatibilities between Visual Basic and VB.NET you'll see that .NET is not really that language independent and that each language is really more of a "skined" version of C#.
As far as alternative languages go in Java there are many. Among the most popular are: JRuby [sourceforge.net]
# interpreter written in 100% pure Java
# Most builtin Ruby classes provided
# Support for interacting with and defining java classes from within ruby
# Bean Scripting Framework (BSF) support
# Distributed under a tri-license (CPL/GPL/LGPL)
Jython (Python) [jython.org]
Jython is an implementation of the high-level, dynamic, object-oriented language Python written in 100% Pure Java, and seamlessly integrated with the Java platform. It thus allows you to run Python on any Java platform.
Groovy [codehaus.org]
Groovy is an agile dynamic language for the Java 2 Platform that has many of the features that people like so much in languages like Python, Ruby and Smalltalk, making them available to Java developers using a Java-like syntax.
There's a lot more smaller projects like JavaScript and Rhino, Jelly, BeanShell, Tcl/Java, Sleep, ObjectScript, Pnuts, Judoscript. Some people event think there are too many alternative languages for the Java Virtual Machine.
Re:Java has language independence too! (Score:2)
Mm, not really. C++/CIL (nee Managed C++) is closer to the metal of
It's the tools (Score:3, Insightful)
Microsoft has some of the best development tools around, and the best of their stuff targets
GUI applications (Score:4, Interesting)
Yes, I realize I could use SWT, but that's still not necessarily good enough. It surprises me that Swing still sucks so much after all this time. I would love to use one language exclusively if I could, but until I see some decent gui apps being built using Swing, it's hard for me to want to use Java unless I have backend services to create.
Having said that, I would like to know if anyone can point me to gui applications that use swing and are actually good and fast. I'm curious if they exist at all.
Java Vs C# (Score:3, Interesting)
What I like about Java is that it is a modern language that uses modern concepts, is very well documented and its vast lib support makes it very useful.
C# also follows along the same lines of Java, making it quite similar except you have the option of getting out of the sandbox that Java uses. Some people need to get out of the sandbox for various purposes, and C# allows that, not Java.
If I were to choose, I would choose C# 1'st for this very reason and then Java. Unfortunately, I'm a hardware programmer, so I am stuck using C
...mount a Vespa motorbike engine in your Ferrari. (Score:4, Funny)
And tune in tomorrow for our feature on how to mount a Vespa motorbike engine in your Ferrari.
Not for me (Score:3, Interesting)
If people want an open-source, cross-platform environment, then there are plenty to go around. I use Gtk2-Perl, and I've written a number of Perl modules to assist database developers to connect their DB backend with their GUI. See http://entropy.homelinux.org/axis_not_evil [homelinux.org]
Gtk2-Perl isn't the only option out there. For Gtk2 ( which runs on Linux, Windows, OS-X, and an impressive number of other platforms ), there are bindings for PHP, Python and Ruby. That covers what most people are recommending for RAD these days.
Then there's QT. I haven't had much to do with it, but there are bindings for all the above languages and more.
There's Java.
I don't see the point in mimicking
And remember, as a wise man ( OK, it was Dubya, but anyway ) once said:
Re:Not for me (Score:3, Informative)
Mono happens to be a 'nix implementation of the CLI. Again, this is not "mimicking" anything... it's a native implementation of a recent standard. It also happens that the C# (also specified in the ECMA submission) imp
Re:my case (Score:2)
Now there's a word I've not heard in a while...
"of"
Re:I'm sorry (Score:2, Informative)
We do, sometimes, when we're forced to, but Java IS slow (don't bother quoting any BS benchmarks.
Why play second class citizen in some one elses world. Java was designed to be cross platform from day one and is really supported on all platforms.
Uhm,
Mono is also supported on just about every relevant platform, except maybe in the mobile and em
Re:I'm sorry (Score:2, Interesting)
but it's non-free (Score:5, Insightful)
Re:I'm sorry (Score:3, Interesting)
Re:Mono's purpose (Score:2)
No matter how hard you try to port that to Linux it's a different underlying system.. the documented behaviour might work, it might not. Anything use COM or PInvoke definately won't.
Re:Mono's purpose (Score:2)
System.Windows.* and Microsoft.* are called that for a reason. So you'll remember not to call them when writing an application intended for multiple platforms.
Re:.NET is not an "open standard" (Score:5, Insightful)
You make no sense. There is not one valid reason why Microsoft would not want this project to exist. Someone is expanding their market reach for them, for free. What they lose in any kind of sales is more than made up for in mindshare.
Sure they could pull the plug, and, sure, Mono is always going to be playing catch up; but it defies logic that Microsoft would radically mess up the framework for the sole purpose of screwing an open source project. Believe it or not, Microsoft is responsible to their developers. They do listen. To radically alter the framework for no apparent reason would just be idiocy beyond compare. If you've never participated in a beta cycle for Microsoft development tools then you would understand how well that responsibility is played out. Anyone can participate in these cycles and the responsiveness of the different teams working on the tools is impressive and commendable.
For Microsoft to harm Mono in any way would harm their own customers, and what company wants to hurt the customers that generate the need for their OS? I think there is a reason that CrossOver office exists beyond simply being compatible with the outside world for document exchange. It's because linux applications are still playing catch up to Windows applications. Gimp still trails Photoshop for professional grade imaging work. Evolution is still trying to play feature tag with Outlook. OpenOffice is still trying to equal Excel, Word, etc. That is not to say any of these efforts don't outclass the Microsoft products in some regards, because they most certainly do. I merely point this out to be an example of where Microsoft's commitment to their developers touches their economics. For the first time, we're seeing free tools for .NET development that are actually useful. I think this will continue with lower licensing costs.
As for the rest of your comments, I'm going to chalk those up to zealotry, closeted or not and simply being ignorant of what good design really is. And just because you spent a few years with ASP.NET doesn't mean you are at all competent.
And though I may sound like a Microsoft bigot, I am not. There is no fiscal or professional gain in being religious about toolsets. The more tools in that box, the more shit you can fix, and the fatter you can make the wallet. While I mostly do .NET consulting now, I still do PHP projects and, every once in a blue moon, a java project. Sure, sometimes I think about how one feature of another language might make a certain chunk of my work go faster, you also need to balance your concentration towards those things about the tool you are working with that are appreciable. I appreciate how quickly I can bang out a PHP site. I appreciate the massive library support and open source tools for Java. I appreciate C#, the .NET framework and Microsoft's dedication to their developers. If you can't do that than you are severely limiting your brain and your bank account.
Also, consider this: If Sun hadn't taken it to the extreme, there would be no .NET. Had they looked for an agreement, instead of seeking injunction, what a better picture for them that would have been than the picture we are looking at now.
Anyways, nice troll.