Slashdot Mirror


Creating .NET C# Applications for Linux

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

340 comments

  1. Ewww.... by Afecks · · Score: 5, Funny

    IBM gave me mono... gross!

  2. let me get this straight ... by SamSeaborn · · Score: 4, Insightful
    Linux programmers will use .NET/C# but they won't use Java?? What's up with that?

    Sam

    1. Re:let me get this straight ... by mysqlrocks · · Score: 4, Insightful

      Linux programmers will use .NET/C# but they won't use Java?? What's up with that?

      Yea, that is pretty strange. I would use Java before I'd use .NET. It's much more cross-platform then .NET is or ever will be even with Mono. Also, they mention that an "advantage" of .NET is being able to write in more than one language. Technically speaking this is true. However, practically speaking the two choices are VB.NET and C#. VB.NET was seriously overhauled from VB6 to make it more compatible with .NET thus losing a lot of it's "roots". I'm certainly not suggesting that VB6 should have stuck around. I'm stuck building stuff in VB6 at work right now and it's not pleasant. I'd jump to VB.NET in a heart-beat. However, I'd much prefer C# which I think is really the only viable language for .NET. Anyways, I'm not a big fan of either. Like I said before, I'd use Java before I'd use .NET (if it were my choice).

    2. Re:let me get this straight ... by m4dm4n · · Score: 1

      They all secretly want to run on Windows?

      *thud*
      Ow, hey stop throwing stuff at me!

      help

      HELP!

    3. Re:let me get this straight ... by Anonymous Coward · · Score: 3, Insightful

      C# and the core parts of .NET are open standards, whereas Java is not. While true that some parts of Microsoft's implementation are not covered by the standard, the standard covers everything that's needed for anyone with the talent to create an implementation of core .NET and leverage most of the benefits. That in itself won't give you compatibility with Microsoft applications, but it you're more interested in the better technology than in compatibility with a corporations products, then Mono (at least the core parts) is the way to go, and you lose nothing by not going to Java.

    4. Re:let me get this straight ... by CyricZ · · Score: 1

      Perhaps Java will be a more useful option once GNU Classpath matures a bit more, and GCJ support under Windows is improved. Indeed, a GCJ+SWT+Java solution could be quite powerful. You get the benefits of native compilation, with the benefits of the semi-portable SWT, and the benefits of Java, for desktop application/client development. Best of all, you lose most of the crud of the JRE (or the .NET CLR equivalent).

      And if the GNU Classpath support for Swing and AWT improves, then there'll be an option available for existing programs.

      --
      Cyric Zndovzny at your service.
    5. Re:let me get this straight ... by Anonymous Coward · · Score: 0

      You can develop for the JVM in any language. You just need a comppiler that will generate java bytecode =) Java is both a platform AND a programming language. Th

    6. Re:let me get this straight ... by photon317 · · Score: 2, Interesting


      Sounds just like .NET

      I've always though that Mono was a waste of time. .NET hasn't been around for very long at all. If you've got the brains to switch to Linux now, where were those brains two years ago when you wrote your now "legacy .NET code", and how much trouble would it be, really, to just own up to the mistake and start over from scratch in a better environment instead of bringing your .NET cruft over to Linux with you? I don't see it being practical and useful and interesting until about 5-8 years down the road when almost nobody is writing new software for .NET, and the last few braindead idiots are finally getting the point, and need to move quickly to Linux and bring with them (temporarily while they do real porting) 10 years of built up .NET infrastructure. And I cannot fathom how the (talented and insightful, obviously) Mono developers can stomach putting in all this effort for future idiots who are in the process of committing the sins that will ultimately lead to Mono's usefulness right now, as they code it.

      --
      11*43+456^2
    7. Re:let me get this straight ... by Decaff · · Score: 1

      Java's slow and most of the stuff written these days won't work cross-platform.

      Wrong.

      Java 5.0 beats .Net and Mono in almost all benchmarks, and comes close to C++ speed, even for high-performance numerical work.

      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.

    8. Re:let me get this straight ... by psavo · · Score: 4, 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).

      --
      fucktard is a tenderhearted description
    9. Re:let me get this straight ... by ad0le · · Score: 1

      Because Swing and AWT suck so bad, thats why! Try GTK# and you'll soon see why people love it.

      --
      My mother never saw the irony in calling me a son-of-a-bitch.
    10. Re:let me get this straight ... by Anonymous Coward · · Score: 0

      and NetBeans is still slow

    11. Re:let me get this straight ... by MyLongNickName · · Score: 3, Funny

      Fortunately for you, the Linux crowd throws like girls. They don't get out much to do real physical activity, so they couldn't throw much harder than my two-year-old.

      Now if they get ahold of some open source robotic arm code, you are screwed.

      --
      See my journal for slashdot ID's by year. Mine created in 2005. http://slashdot.org/journal/289875/slashdot-ids-by-year
    12. Re:let me get this straight ... by Decaff · · Score: 4, Insightful

      C# and the core parts of .NET are open standards, whereas Java is not

      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.

    13. Re:let me get this straight ... by Anonymous Coward · · Score: 3, Insightful

      I used Java and at the moment I'm doing C# .NET. I have to say I had a lot of pleasure at that time programming in Java (as long as I didn't have to do any Swing or AWT). But I like C# much more. It is a little more close the Delphi (probably the only thing wrong with Delphi is the Pascal syntax, don't tell me about C++ Builder, that was one big disaster...).

      I think Delph did a very good job of the GUI. .NET is much nicer and easier than Java's Swing, but it still isn't as great as Borland made VCL for Delphi.

      I think the interoperability between VB.NET and C# is a good thing, it isn't 100%, but in most cases you're able to write one thing in one language and an other thing in other language, without really getting in trouble. (Two problems: One is overloaded functions in C# vs Default Parameters in VB.NET, the other is the static nature of structures in VB vs everything is an Object in C#.)...

    14. Re:let me get this straight ... by Decaff · · Score: 1

      and NetBeans is still slow

      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.

    15. Re:let me get this straight ... by Decaff · · Score: 2, Informative

      Perhaps Java will be a more useful option once GNU Classpath matures a bit more, and GCJ support under Windows is improved.

      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 source Java, but Java is not being held back by this.

    16. Re:let me get this straight ... by fm6 · · Score: 1

      Where does it say that? TFA specifically says that you can write Java for .NET/Mono, using third-party IL generators. Many programmers already do that on Windows. They have various reasons for having to support .NET, but don't want to abandon their Java toolset.

    17. Re:let me get this straight ... by Anonymous Coward · · Score: 0

      100% of my development time is spent with embedded devices, and I struggle with the whole Java thing constantly. It's an uphill battle writing an application that will work under the variety of Java embedded standards - J2ME, MIDP, blah, add to that all the vendor profiles (JSR's) and you have one great pile of steaming s#$&.

      So what happens you ask? You end up working for the lowest common denominator - J2SE, maybe MIDP 1.0. What a joke. Trying to develop a rich client experience? Get a life.. Java is _not_ going to come to the rescue.

      Along comes .NET CF - Java really needs to get its act together. It's time for device manufacturers to drop the CDLC/MIDP, and move to CDC. They're limiting functionality far too much, manufacturers are forced to hack JSR's left right centre to try and get _something_ acceptable for an attractive platform for developers. My advice - Sun, look at the CF.

      Besides, after spending 5 years in Java, C# is a breath of fresh air. Java is too darn wordy and messy.

    18. Re:let me get this straight ... by sloanster · · Score: 2, Interesting

      Linux programmers will use .NET/C# but they won't use Java?? What's up with that?

      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

    19. Re:let me get this straight ... by SIGALRM · · Score: 1

      Do you have any stats I could look at to support your statement? Just curious...

      --
      Sigs cause cancer.
    20. Re:let me get this straight ... by Decaff · · Score: 2, Informative

      Do you have any stats I could look at to support your statement? Just curious...

      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

      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.

    21. Re:let me get this straight ... by fairyliquidizer · · Score: 1

      I think you are falling for the "Embrace, Extend, Extinguish" magic already. C# is still an open standard, it's just one that Microsoft will doubtless Extend and Extinguish :)

    22. Re:let me get this straight ... by cortana · · Score: 2, Informative

      More people need to know about the Java-Gnome project!

    23. Re:let me get this straight ... by Rycross · · Score: 2, Informative

      Doing a quick google search it appears that C# often beats Java or shows comparable performance in most tests. That is unless you're a Java zealot who bases opinions on limited and unfair tests.

      In real-world applications, C# matches up quite well to Java's speed.

    24. Re:let me get this straight ... by cortana · · Score: 1

      One can apt-get install mono.

    25. Re:let me get this straight ... by anglete · · Score: 1

      I definatley agree, also, note that Gtk# is easily installed under windows.

      GTK# looks clean under both platforms and the programs run without recompile.
      There's also Glade#, an improvement over windows forms.

      With the code generator for Glade#, it lets you split UI design from backend work which has worked so well for webforms and the like.

    26. Re:let me get this straight ... by Rycross · · Score: 2, Interesting

      Performance and reliability? I assure you that C# has both. Got any links that indicate that C# is either slow or unreliable? And products being available in Java from vendors doesn't really mean much if you don't intend to use them in the first place, or they are trivial to interface with your code. As far as Java being the de-facto standard, while it is in higher use than C#, C# is being used by large businesses, and there is a large market for C# programmers.

    27. Re:let me get this straight ... by SIGALRM · · Score: 1

      Sorry, not trying to upset the proverbial applecart here, but your link does not refer to any actual statistics. And simply running Eclipse (which I do btw) is by no means a benchmark, any more than running SourceGear's .NET products are. Just an observation. I would however be interested in some legitimate objective comparisons if there are any.

      --
      Sigs cause cancer.
    28. Re:let me get this straight ... by xiphoris · · Score: 2, Informative

      This is actually totally false. As well as being supported by a number of more "minor" languages, .NET fully supports: C#, C++ (with solid, awesome extensions for the .NET parts), VB, JS.NET.

      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.

    29. Re:let me get this straight ... by Trepalium · · Score: 5, Insightful
      Or how about the fact you actually have UNSIGNED integer types in C#/.NET. I don't care how much James Gosling says that unsigned/signed types cause confusion, they're a reality of dealing with data on computers. The moment you have to force Java to interoperate with some "legacy" (read: non-Java) infrastructure, you're stuck with hacks and nasty ones at that.

      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.

      --
      I used up all my sick days, so I'm calling in dead.
    30. Re:let me get this straight ... by Decaff · · Score: 1

      Doing a quick google search it appears that C# often beats Java

      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.

    31. Re:let me get this straight ... by SIGALRM · · Score: 1
      would however be interested in some legitimate objective comparisons
      P.S. legitimate discludes the freeroller.net scheme completely.
      --
      Sigs cause cancer.
    32. Re:let me get this straight ... by Trepalium · · Score: 1

      Er, this apples to oranges comparison proves your point how, exactly? In other news, a 2005 Porsche can move faster than a 2005 Ford F-150, but that hardly makes for a useful comparison.

      --
      I used up all my sick days, so I'm calling in dead.
    33. Re:let me get this straight ... by LnxAddct · · Score: 3, Insightful

      Err... I don't know what industry you're in, but the standard in Pharmaceuticals, Energy & Utils, and Defense is Java. Those are just the 3 largest industries off the top of my head. Java is *fast*, extremely fast, I've written Java code that runs fast than C++. With JIT, speed is not a problem. The only reason Java has a somewhat bad name is because of Swing, but if you understand the extreme extensibility of Swing, it makes sense. If you want Java apps that feel fast, just use SWT or GTK's java bindings. Slashdot's groupthink often criticizes Java, but as of about a year ago there were 7 to 8 times as many jobs available for java developers. I feel bad for the students that might read slashdot and be turned off by Java, its only going to limit their options when they graduate. Java is a good thing, it is worth learning. Adding on to this... the GNU GCJ can compile around 90-95% of Java programs including Eclipse and OpenOffice.Org, it also handles JOGL and iirc Java3D. If you don't like the idea of a JVM, just compile it natively. I code in Java at work, at home I often prefer Python (but its always for smaller projects). Java is horrendous for throwing anything together that is less than 1000 lines or so of code. Java's syntax and naming conventions were designed with large teams on large projects in mind, and writing code where people would be coming back 7 years later never even knowning who wrote it or what it did. It does that very well. It may take a few extra keystrokes to type, and it may not be a one liner like in perl but it is designed so that just about anyone (Novice or Pro) can read through it and realize what is happening step by step. I could go on but I'm probably only going to get flamed.
      Regards,
      Steve

    34. Re:let me get this straight ... by Decaff · · Score: 1

      Sorry, not trying to upset the proverbial applecart here, but your link does not refer to any actual statistics.

      I'm afraid that you can't really give statistics about the experience of using a GUI - what do you expect?

    35. Re:let me get this straight ... by laffer1 · · Score: 3, Interesting

      .NET supports tons of languages, but mono does not! Remember everyone the goal of mono is not to be microsoft .net compliant. It is to be similar to .net but not support everything and add extensions of their own. They don't want you to run windows code on linux, they want you to run mono code on windows and linux with the MONO runtime. Its not portable in the sense that you can run ALL .net 1.0 from windows using microsoft's .net runtime on mono and vise versa. Java gives you portability, mono does not. Finally, java runs on non windows/linux/mac os x systems. I can run java on freebsd but i can not run mono (well it crashes with thread/garbage collection problems all the time).

      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 .NET. He even said i was stupid for wanting it to be compatible. Mono should not be advertised as .NET for linux because its not. Its C# for linux but on a different runtime. VB.NET support is not complete in mono either.

    36. Re:let me get this straight ... by Decaff · · Score: 1

      Er, this apples to oranges comparison proves your point how, exactly?

      The experience of users who use both NetBeans and Eclipse under Linux tends to suggest that the NetBeans GUI has a better response.

      All I can do is quote user comments - there are no metrics.

    37. Re:let me get this straight ... by TummyX · · Score: 4, Interesting

      .NET makes it simple to interface with existing libraries written in C which, IMHO, makes it a more natural fit with Linux. C# applications can easily take advantage of existing libraries (GTK etc) whilst Java requires more effort (to force you to be "pure" and cross platform).

      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.

    38. Re:let me get this straight ... by Decaff · · Score: 1

      Got any links that indicate that C# is either slow or unreliable?

      I'm sure C# is fast and reliable under Windows, but this is a discussion about Mono.

      And products being available in Java from vendors doesn't really mean much if you don't intend to use them in the first place, or they are trivial to interface with your code.

      What I mean is that you can interchange the Sun VM, the IBM VM, the HP VM or the BEA VM, and all would compete to produce the best and highest performance VM for your use.

      As far as Java being the de-facto standard, while it is in higher use than C#,

      exactly...

      C# is being used by large businesses, and there is a large market for C# programmers.

      Large is a relative term.... it is very small compared with Java (or even with legacy VB6/Visual C++)

    39. Re:let me get this straight ... by cortana · · Score: 1

      I haven't seen a link on this story yet, so I guess I will point you guys to the http://shootout.alioth.debian.org/benchmark.php?te st=all&lang=java&lang2=csharp&sort=fullcpu.

      Insofar as it is possible to come up with meaningful ways to compare the performances of "languages", where language encompasses a language, the libraries it uses, the compiler used for the benchmark in question, the libraries used and the VM the benchmark is run on (if any), and everythig else beneath it in the stack all the way down to the hardware, it seems that Java 1.4.2 w/hotspot performs most of the tasks slightly quicker than Mono.

    40. Re:let me get this straight ... by Mnemia · · Score: 1

      I agree about the signed/unsigned thing. That's the stupidest single thing about Java, period. It's caused me a hell of a lot more trouble than it has ever saved me.

      Java in fact has adopted several things that are similar to C#, though not all. New features in Java 1.5 include enums, autoboxing/unboxing, and a new for loop similar to foreach (as well as a form of generics).

    41. Re:let me get this straight ... by ciggieposeur · · Score: 1

      They have even done this for clean-room implementations by rival companies like HP.

      Does HP's "clean-room implementation" use licensed code from Sun like java.* and javax.*?

    42. Re:let me get this straight ... by Anonymous Coward · · Score: 0

      Just one professional programmer's opinion here: The so.cal job market right now has loaded with .Net work. I've never in my time seen that kind of buzz for Java programming positions, when it comes to PC/Server applicaitons. Not even during the .com boom days. I don't expect things to get any better for a Java programmer. I just can't imagine .Net fading away in 5-8 years as you predict, especially with Vista being loaded with C# apps.

    43. Re:let me get this straight ... by Anonymous Coward · · Score: 0

      But what about UI development? Developing apps in ASP.net blows the doors off of developing in java/jsp's. Ever try creating a reusable web control in java? VERY_PAINFUL.

    44. Re:let me get this straight ... by Decaff · · Score: 1

      Does HP's "clean-room implementation" use licensed code from Sun like java.* and javax.*?

      No.

    45. Re:let me get this straight ... by CastrTroy · · Score: 3, Informative

      The only reason that most people find .Net or Delphi any easier for GUI work than Java is because there are very few good drag and drop environments for creating Swing and AWT GUIs. The best one I've seen so far is the one that Comes with NetBeans. It makes GUI development a lot easier. It's still not as good as what they have for .Net or Delphi, but it's workable. If you are stuck doing your UI coding by hand, or using the terrible Eclipse extension, then you might want to take a look at NetBeans.

      --

      Anthropic principle: We see the universe the way it is because if it were different we would not be here to see it.
    46. Re:let me get this straight ... by Decaff · · Score: 1

      If you want Java apps that feel fast, just use SWT or GTK's java bindings.

      This was true until recently. Now Java's Swing (especially with Java 5.0) feels fast.

      Java is horrendous for throwing anything together that is less than 1000 lines or so of code.

      Oh come on! This is just FUD! Java is close to C++ in syntax, and certainly suitable for small applications.

    47. Re:let me get this straight ... by aled · · Score: 1

      One can apt-get install mono.

      So lazyness is the best selling argument for Mono?

      me ducks! ;-)

      --

      "I think this line is mostly filler"
    48. Re:let me get this straight ... by cortana · · Score: 1

      It doesn't sound so crazy to me... it's about barrier to entry. I'm about to post a much longer comment lower down this thread about this, I'd be interested to read anyone's responses!

    49. Re:let me get this straight ... by Anonymous Coward · · Score: 0

      No, the signed/unsigned types are one of the stupidest things about C. They really should have just had one type and added unsigned operators (like maybe 'u+') for the few cases where you really need to muck around with unsigned math.

    50. Re:let me get this straight ... by Anonymous Coward · · Score: 0

      That doesn't fit. At all. Microsoft created C#; WTF are they going to extinguish? No one is seriously going to consider Mono vs .NET on Windows.

    51. Re:let me get this straight ... by Anonymous Coward · · Score: 0

      Maybe you should look at java 5. enums, autoboxing, and a for statement that does iterate through collections...

    52. Re:let me get this straight ... by llefler · · Score: 3, Insightful

      One thing I really miss with C++ and Java is properties. What's with a language that will put all the work into a ternary operator so they don't have to type if/then/else, but insists on mutators and accessors because properties are syntactic sugar?

      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.

      --
      It is amazing what you can accomplish if you do not care who gets the credit. -- Harry Truman
    53. Re:let me get this straight ... by Anonymous Coward · · Score: 1, Interesting

      Still I think C# event and delegates are a lot easier to program again than Java's listeners. The same can be said with C# properties, Java has never done anything to support properties, they only claim them by naming them getters and setters. Well if you aks me, I could do that in C++ too...

      I used JBuilder, and Eclipse to make gui's. Eclipse is really a catastroph, but still it isn't as easy as .NET or Delphi.

      And Even when you have a good GUI builder for Java, you still can't get around that it takes a lot of effort to make a swing-gui behave the same as a windows gui that the customers is asking for...

    54. Re:let me get this straight ... by Anonymous Coward · · Score: 0

      C# and the core parts of .NET are open standards, whereas Java is not

      You might want to tell all slashdot'ers what kind of new kinky crack you are you smoking.

      C# is for programers that don't have enough brains for Java or C++

    55. Re:let me get this straight ... by slide-rule · · Score: 3, Informative

      While I'm prepared to leave delegates, properties, and multidimensioned arrays on the table, Java *does* [now, at least] have type-safe enum with a new 'enum' keyword, auto-boxing of primitives to their wrapper class, and a modified 'for' syntax that is functionally equivalent to 'foreach' (and yes it works with the new enum as well as any iterable collection). Surprised you didn't list generics/templates, which java now has implemented and backported into the full Collections API. Pretty neat stuff; have been playing with most of this it all week, now.

    56. Re:let me get this straight ... by alext · · Score: 1

      Ah yes, thanks for the reminder. How unfortunate for their credibility that the Mono proponents (on the "gomono" site) have spent the last 3 years assuring everyone that it would be compatible with Dotnet.

      I suppose now there's some traction the initial promises can be dispensed with?

    57. Re:let me get this straight ... by aled · · Score: 1

      Sun tar install works for me, though it's ugly. Come on, if you can run Debian you can't be above tars. I remember is within some auto executable decompressor shell.

      --

      "I think this line is mostly filler"
    58. Re:let me get this straight ... by Randolpho · · Score: 1

      Yeah, um... I'm gonna have to go ahead and disagree with you there.

      I have pretty much the same story to tell as the grandparent... except I won't post anonymously! ;)

      Like the grandparent post, I loved java (in my case, AWT) when I first got into GUI programming, but when I finally tried C# and .NET I got hooked, but good. I love to code C# in general, and I love to code GUIs in .NET. (Note: I haven't tried to code in .NET 2.0 or Java 1.5 yet, so no comments on generics or partial classes yet)

      And it's not that I happen to have a good drag/drop GUI editor, although that comes in very handy at times; I very often code custom controls and the like by hand, i.e. outside the Designer. No, it's that Windows.Forms frankly kicks Swing's ass, hands down. It's simply a better designed API. And that's not all -- delegates really *are* better than anonymous inner classes. They're easier to use and don't clutter your code like writing an anonymous inner class does. And it's either clutter your code with an AIC or implement ActionListener (for example) clutter your code with a switch statement to figure out which button was pushed. Off a string value, no less. Oh, wait... you can't run a switch on a String in Java can you? I almost forgot that one. I guess C# rots your brain.

      Er... got sidetracked. Where was I? Oh, yes. GUI designers and property pages might make development a lot easier, but Swing is still flawed, and .NET's delegates make for a better event model (Sun should have adopted delegates when Microsoft made 'em for Visual J++, rather than play politics).

      Anyway, that's C#/.NET vs. Java on a Windows platform. Obvously, Windows.Forms isn't available in Mono. Although it *should* be.

      --
      "Times have not become more violent. They have just become more televised."
      -Marilyn Manson
    59. Re:let me get this straight ... by Anonymous Coward · · Score: 0

      Now if they get ahold of some open source robotic arm code, you are screwed.

      No. Because hardware is not free (neither beer-free nor freedom-free).

    60. Re:let me get this straight ... by jma05 · · Score: 1

      There are lot more GUI building tools for Java (JBuilder, NetBeans, IntelliJ IDEA and a gazillion others) than Delphi (just one).

      Java API very poorly targets everyday GUI developers. When I looked at Delphi several years ago, I was thrilled. everything was intuitive. Everything felt obvious. It hardly took any time to get used to .NET from Delphi. I have been using Swing for 5 years now, granted only occationally, and it still feels awkward. I have used a dozen different GUI toolkits in various languages. Delphi and .NET feel great as do the open source ones. Only Swing contuinues to frustrate me. NetBeans helps but to compare it in terms of ease, simplicy and intuitiveness of Delphi or .NET is far fetched.

      Java Swing NEVER succeeded. Delphi had a fraction of developers compared to Java's. Yet, there are literally thousands of open source and commercial GUI widgets at torry.net alone. How many open source drag and drop, IDE friendly bean components are there for Swing?

    61. Re:let me get this straight ... by miguel · · Score: 5, Informative

      I run the Mono project, so I can speak for our goals.

      And one of our goals is to be compatible with the .NET implementation. This is part of what we do on a day-to-day basis when we write unit tests for the APIs we are implementing, when we keep track of any possible difference and we respond to bugs filed on our bug tracking system where the behavior differs by fixing the differences.

      But our goal is not limited to *only* being compatible with Microsoft's .NET. We have also grown outside of the scope of what .NET has to offer, and this is why you see a very healthy ecosystem of libraries and applications *around* Mono which are not limited to being compatible.

      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.

    62. Re:let me get this straight ... by koko775 · · Score: 1

      see here. If Java runs within .NET, and Java doesn't run .NET, which do you think would be more useful?

    63. Re:let me get this straight ... by jungd · · Score: 1

      Very simple. Java is not an open standard, it is controlled by Sun. C#/.NET etc. is an ECMA standard.

      --
      /..sig file not found - permission denied.
    64. Re:let me get this straight ... by mitchskin · · Score: 1

      One difference is that the .NET native code interface (PInvoke) is easier to use than JNI. The GNOME mono people are having a much easier time wrapping native libs than the people working on the GNOME java bindings, for example.

    65. Re:let me get this straight ... by StylezHouse · · Score: 1

      Technically speaking this is true. However, practically speaking the two choices are VB.NET and C#. VB.NET was seriously overhauled from VB6 to make it more compatible with .NET
      I'm a .NET developer, I write in VB.NET and C#. And I wanted to let you know, that this is a false statement. VB.NET was written damn near from the ground up, and its the same as C#. The differences are slight syntax differences for the most part. There are added assemblies that you can use to give vb.net backwards compatability, but thats about it. And even that is just minor stuff like Instr instead of .SubString

      I'd much prefer C# which I think is really the only viable language for .NET.
      This is also incorrect, like I said above, they're the same language. The current differences in capabilities are I believe, Overloading Operators (Only available in C# until Nov), Using Statement (Only available in C# till Nov), something else I can't remember offhand. Regardless, from a capabilities standpoint, the languages are the same.

    66. Re:let me get this straight ... by m50d · · Score: 1
      It's much more cross-platform then .NET is or ever will be even with Mono.

      Really? I take it you have a way of seeing into the future.

      Technically speaking this is true. However, practically speaking the two choices are VB.NET and C#.

      Two is still better than one, and I've already found Boo to be usable. Lots more languages are being worked on.

      However, I'd much prefer C# which I think is really the only viable language for .NET. Anyways, I'm not a big fan of either. Like I said before, I'd use Java before I'd use .NET (if it were my choice).

      If you really like java as a language, I thought it was shipping with .Net. Personally I detest the language and would use anything over Java, so I'm supporting .Net where I don't get stuck with everyone else's dumb language choice.

      --
      I am trolling
    67. Re:let me get this straight ... by killjoe · · Score: 1

      "In real-world applications, C# matches up quite well to Java's speed."

      Even if what you say is true it only applies to windows. Not that I accept your conclusion mind you just pointing out that it's a useless statistic because it only applies to one platform. If ruby was faster then python in windows but slower in every other platform could you say that "ruby is faster then python!". No that would be lying by not telling the whole truth.

      So you are lying by not telling the whole truth. The whole truth is the java is fastern then c# on all platforms except windows where it's either faster or the same speed depending on your benchmark.

      --
      evil is as evil does
    68. Re:let me get this straight ... by Decaff · · Score: 1

      Ever try creating a reusable web control in java? VERY_PAINFUL.

      Heard of JavaServer Faces?

    69. Re:let me get this straight ... by Anonymous Coward · · Score: 0

      You are a web applications man or something right? Unsigned and signed types are very important for many applications where you are talking to hardware, hence the earlier comment about interoperability with legacy systems.

    70. Re:let me get this straight ... by Anonymous Coward · · Score: 0

      Well, there is more to ?: than just shorter typing times. It is actually an expression whereas if-else is a statement. Sometimes ?: makes code easier to understand, something that cannot be said of properties.

    71. Re:let me get this straight ... by deasel · · Score: 1

      Yes, I'd also choose C# over Java, even in *IX programming. Sorry to break your illusion, but it's clearly the better language. Nothing odd about that. Java still receives hype it just doesn't deserve. It's a bloated, clumsy language and just less clean and less elegant than C#. Simple as that.

    72. Re:let me get this straight ... by Ambassador+Kosh · · Score: 1

      I have to admit I would probably make the same choice. Happily I don't have to since I get my work done with python just fine. The problem is that getting java installed on any unix is a pain in the neck and it is far harder on linux then other software is. I use debian and to install mono I can just do apt-get install mono but for various license issues with sun you can't do java the same way.

      Most other distributions make it very easy to install mono also, I think it is in the main archives of almost everyone except for redhat but java is not really in any of them because of some license thing. So if I where to develop with c# I could do it easily on just about any linux and it would be trivially easy to install, java does not have that at this point and sun could easily change that.

      Python and Perl gain a lot of advantage from them being base utilities in just about every linux distribution. I can make a program to run on linux and have it use python or perl and you would be hard pressed to find a dist that did not have those installed. However this works in a circle, since they are always there more stuff is written to use them and since more stuff uses them it becomes more likely that it will be there.

      Java has the exact opposite problem under linux. Since it is hard to install not many people write for it and so there is not much demand for it to be installed ... so not many people write for it. Sun is the only one that can fix that problem and so far they have not shown much interest in it that I can see.

      Unless microsoft uses some legal thing to kill mono it is likely that mono will win out in the end. If microsoft is just willing to wait the odds are in the end that the clr will become the defacto standard since they can enforce that on windows and sun is enforcing that on linux although that is not their intent.

      --
      Computer modeling for biotech drug manufacturing is HARD! :)
    73. Re:let me get this straight ... by iJed · · Score: 1

      I personally believe that properties add extra syntax that makes the language that much more difficult to understand. And all this extra syntax can be easily represented through methods.

    74. Re:let me get this straight ... by jellomizer · · Score: 1

      Java is an early style of the 'Modern Language' while most of the pieces are in place the implantation is just not quite right. Also sun never allowed us to use other languages and compile it in Java Byte Code. Unfortunate .NET gives us that advantage. While .NET is a language that I consider the Speed of Java combined with the platform independence of Visual Studio. Its supporting languages that it uses are better polished, and you can take many languages and compile it to .NET so if you have to Port a VB or C# or C++ Languages you can more easily move them to .NET then Java. Why Linux developers would want to use .NET is because many of the application they are porting are older legacy windows apps. And by making sure the apps work well with Windows .NET and Mono means the company has a way out if Microsoft decides to give them a real bad deal.

      --
      If something is so important that you feel the need to post it on the internet... It probably isn't that important.
    75. Re:let me get this straight ... by Decaff · · Score: 3, Interesting

      One thing I really miss with C++ and Java is properties. What's with a language that will put all the work into a ternary operator so they don't have to type if/then/else, but insists on mutators and accessors because properties are syntactic sugar?

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

    76. Re:let me get this straight ... by Anonymous Coward · · Score: 0

      Because java sucks. C# kicks ass. face it.

    77. Re:let me get this straight ... by Anonymous Coward · · Score: 0

      So they're important sometimes. They can be handled just fine with unsigned operators without adding so much complexity and confusion to the language.

    78. Re:let me get this straight ... by Decaff · · Score: 1

      Just one professional programmer's opinion here: The so.cal job market right now has loaded with .Net work. I've never in my time seen that kind of buzz for Java programming positions, when it comes to PC/Server applicaitons. Not even during the .com boom days.

      Then you need to look around. There are major new exciting things happening with Java - real-time devices, robotics, embedded device control is one aspect that interests me. Java is the single most in-demand language in IT jobs at the moment.

      I don't expect things to get any better for a Java programmer.

      I don't understand what you mean. There is a thriving open source community around Java, and the demand for Java is huge and growing.

      I just can't imagine .Net fading away in 5-8 years as you predict, especially with Vista being loaded with C# apps.

      I'm afraid that similar statements were made about Visual Basic - now VB.Net (with incompatibilities) has made it redundant.

    79. Re:let me get this straight ... by mysqlrocks · · Score: 1

      So it is a false statement that VB.NET was seriously overhauled but it is a true statement that VB.NET was written from the ground up? I don't see what your point is (and I think you missed mine). You say that VB.NET is pretty much the same as C#. Thank you for making my point. Why bother having two languages (or more) if they design goal of one (VB.NET) is just to be compatible with the other (C#)? I know, technically the design goal is to be compatible with MSIL but in reality if you look at the architecture and history of .NET you will see that C# is the only language that really matters. Somebody else made a good point that in Java all you need is the ability to compile to byte code so there's nothing preventing other languages from implementing the ability to spit out JVM compatible code.

    80. Re:let me get this straight ... by John+Nowak · · Score: 1

      class SureThing {
              public static void main(String[] args) {
                      System.out.println("I agree. This is cake!");
              }
      }

    81. Re:let me get this straight ... by gregorlowski · · Score: 1
      Yea, that is pretty strange. I would use Java before I'd use .NET. It's much more cross-platform then .NET is or ever will be even with Mono.

      It depends what your goals are. I've been playing around with open source implementations of Java (gcj/gij mostly) and C# (mono), and the development branch of mono seems to be more stable for running gtk code (via gtk#) than javagtk (I've had some library-version compile conflicts with javagtk + gcj compiling to machine code (bytecode seems to be more reliable at least for now)). Sure, you can get java from sun and run swing apps on any platform, but what if you don't want to use swing? Gtk, IMO, is a better looking toolkit, and it has a ton more community support. It can be themed to simulate the look&feel of WinXP on win32, or have the gnome clearlooks theme to blend in nicely with gnome on *nix. Over time the use of gtk will dwarf the use of swing.

      I think both the mono and the classpath communities are doing an awesome job bringing development tools to the open source community, but right now I think that mono is more robust than the open source implementations of java. And honestly, using open source tools ultimately makes cross platform work easier. Is Sun's java available for ARM or MIPS (I honestly don't know, but I'm assuming it's not)? Well, with mono or gcj/gij, when you have the source and can do anything you want with it, you can hack it to get it to compile on any platform, and if you don't have the time then other people in the community will. Over time you don't have to worry as much about support for new versions or libraries getting dropped for certain platforms when you have the source.

      So basically I think open source tools without annoying licensing restrictions are, in the long term, always more cross-platform than closed-source tools, and right now I think the mono tools are just as cross-platform (and a bit more reliable) than open source java implementations.

    82. Re:let me get this straight ... by StylezHouse · · Score: 1

      Yes, I missed your point. I took it that you were under the impression that C# was better than VB.NET and VB.NET was nothing but upgraded vb6.

    83. Re:let me get this straight ... by ciggieposeur · · Score: 1

      Are you sure about that? http://www.hp.com/products1/unix/java/faq/index.ht ml#prod7 :

      Q: Are Java development tools released by HP at the same time they are released by Sun Microsystems?

      A: We are a licensee of Java from Sun, and as such, must wait for them to provide code to us for our porting and tuning.


      I found some more references to a JVM for embedded spaces called "Chai" or "ChaiVM", and searching HPs website see this: http://devresource.hp.com/forums/thread.jspa?messa geID=4069

      Paul,

      The folks who work with the ChaiVM have informed me that it is being obsoleted and is no longer available. Sorry!

      Cindy for the OV Interconnect team


      I'm curious if there are *any* certified-Java(tm) implementations that don't rely on Sun code for java.* and javax.*. Let me be more specific: certified-Java(tm) J2SE runtime environments at 1.2+ level. There are plenty of JVMs and individual libraries, and GNU Classpath has like 80% coverage, good enough to run OOo on a free software stack, but I haven't heard of any competing implementations actually certified by Sun.

    84. Re:let me get this straight ... by mysqlrocks · · Score: 1

      No problem. My apologise for not being clear (and being a little snippy in my last comment).

    85. Re:let me get this straight ... by Decaff · · Score: 1

      I'm curious if there are *any* certified-Java(tm) implementations that don't rely on Sun code for java.* and javax.*. Let me be more specific: certified-Java(tm) J2SE runtime environments at 1.2+ level.

      Good point. BEA and IBM both have fully-clean room JVM implementations, but I don't know about all of java.* and javax.*.

      I know that at least some of the IBM code is different as they implement at least some of these using their own code and not Sun's (there are com.ibm packages not com.sun .. etc.)

      So, Sun ARE certifying competing implementations, at least to some extent.

    86. Re:let me get this straight ... by Trepalium · · Score: 1

      Ok, so you're proposing that adding unsigned operators would cause less confusion than simply adding a handful of unsigned types? What would an unsigned divide or add do to a floating point number? How about an unsigned comparison between them? Frankly, unsigned types are not as bad as some of the Java Faithful would claim. They're certainly overused, but they're not that hard to understand. The only complex part is the signed to unsigned conversion which can be easily enforced by a strongly typed language.

      --
      I used up all my sick days, so I'm calling in dead.
    87. Re:let me get this straight ... by Anonymous Coward · · Score: 0
      The only complex part is the signed to unsigned conversion which can be easily enforced by a strongly typed language.

      Unfortunately, it's not properly enforced by the most popular language, making it more error prone than unsigned operators would be.

    88. Re:let me get this straight ... by mysqlrocks · · Score: 0

      Wow, the person that runs the Mono project responded to a post in a thread I started. That's pretty cool. I hope you don't take my original comment as a dig against Mono. I think Mono is an awesome project. I think it's great that you're providing an open implementation of .NET (sorry to oversimplify).

    89. Re:let me get this straight ... by Anonymous Coward · · Score: 0

      well considering the fact that mono does not work ever and all applications are buggy and hopelessly difficult to maintain, why the f&*! is anybody bothering to support the beast M$ and their shitty, copy-everything-good-from-java but leave the platform independence garbage, bloated bs runtime? wtf is up? .NET sux as somebody who has had the misfortune of having to code in it. What is great about C# is that it is exactly like Java.

      people pls wake up and stop with the madness.

    90. Re:let me get this straight ... by Anonymous Coward · · Score: 0

      Unsigned types have one extremely useful feature: they're guaranteed to never be negative.

      If I take an unsigned value as a parameter to a function, I know that value will always be positive. Every time you pass an array index in Java, you have to make sure it isn't negative. Why? (ok, if you want to be an ass and force everyone who uses your code to debug it, you can rely on out of bounds exceptions.) Requiring a non-negative value is very common, and unsigned types give you a clear and obvious way to denote it.

      The unfortunate behavior in C of allowing signed values to convert to unsigned without a cast is not even so bad, since you usually need to check for an upper bound anyway.

      They really should have just had one type and added unsigned operators (like maybe 'u+') for the few cases where you really need to muck around with unsigned math.

      Nonsense. Utter and complete nonsense. The purpose of types is to maintain information about how a pattern of bits should be interpreted. If you add 0x40000000 u+ 0x40000000, what is the result? Is it positive or negative? Well, it depends how you interpret the resulting bit pattern. That's what types are for!

      If you do away with an unsigned type, you also have to do away with fixed-size integers. And even then unsigned types would be nice. (or better still, range limited types, including half-open ranges)

    91. Re:let me get this straight ... by Anonymous Coward · · Score: 0
      If you add 0x40000000 u+ 0x40000000, what is the result?

      If the language isn't brain-dead, the result is a runtime exception.

      If you want to do arithmetic modulo some word size, an operator should be defined to do addition modulo some size. (And isn't it just totally useful how C doesn't really let even let you easily know what word size your results are getting chopped to. So much for the usefulness of "types".)

    92. Re:let me get this straight ... by Anonymous Coward · · Score: 0

      The First Sale doctrine disagrees with you.

      You can do what you like with physical property that you own.

    93. Re:let me get this straight ... by laffer1 · · Score: 2, Interesting

      Great. Someday when you achieve the goal, I can recommend Mono. In the mean time, software written for Microsoft .NET is not guaranteed to run on Mono. GTK# and Cocoa# are great ideas, and I'm not upset that you extended .NET, but I'd rather have you finish a compatible Microsoft .NET implementation first. Also, let your developers know its a goal of the project. I think there is some confusion.

    94. Re:let me get this straight ... by lmoroney · · Score: 2, Insightful

      Linux programmers aren't Java programmers, that's why. Java programmers aren't bound to any O/S! :) Ditto for Mono programmers. But seriously, in any discussion we need to segragage the language, from the class libarary framework, from the runtime platform from the operating system. Java, C#, VB.NET etc. are languages, which are largely similar. Some developers love features of one of these over the other. .NET Framework, Mono, J2x# etc. are class library frameworks which are all extremely useful in their own rights and limited in their own ways. CLR, Mono Runtime, JVM, J2EE app server etc. are the runtime platforms Windows, Linux, Solaris etc. are the OS. So, a Linux programmer, namely one whose job it is to write Linux programs is more likely to write in a language that is suited for Linux, say 'C', or if they prefer to move up the stack, and write it to run on a linux compatible runtime like JVM or Mono, then they'll be bound to the language and frameworks for that runtime, right? Bottom line: There are choices -- plenty of choices, and that's a good thing. Finally -- there is an alternative, that allows you to unify the stack at the framework level down, giving you the most flexible choice -- and that is from Mainsoft (disclosure: I love their product so much I applied to work for them, and they accepted) -- and called Visual MainWin for J2EE with a developer edition called Grasshopper. What does it do? Allow you to virtualize all of this by unifying the .NET and Java stack through Mono. You can use VS.NET to code in .NET, compile to Java and run on Linux. It's a beautiful thing....

    95. Re:let me get this straight ... by Trepalium · · Score: 1

      I didn't mention generics/templates because I've not used them yet, so I don't fully understand the benefits gained by using them. I've been meaning to try them out, but I just haven't found an outlet yet. Delegates and properties were ripped from Visual Basic/Delphi, and their most important use is for event-driven GUIs.

      --
      I used up all my sick days, so I'm calling in dead.
    96. Re:let me get this straight ... by scorp1us · · Score: 2, Interesting

      I am sure this will be modded as flame or troll, but it is not.

      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 the mean time, I see businesses citing Mono if they decide to move to Linux. However my understanding is that if you attempt to run a MS .NET based GUI application on non-MS platforms the most likely result is a spectacular failure because MS still has lock on some critical classes.

      While I realize there is good ideas in .NET (CLI) and Mono, I don't see how this justfies the effort. Mono is adding support to .NET momentum, it is fragmenting the development efforts of the community. It is adding yet another language into the fray (C#).

      The good things are that it gives us a CLI, but we could already have done in the Java, Perl, Python, or Parrot VMs without strengthening MS.

      Now do note that my support would be different had MS released _all_ of .NET - so that the assumptions of business managers are indeed correct. What I am hoping for now is that you correct me and say that all .NET applications will run under Mono without modification and exactly as wthy do under .NET. If this is not the case, nor is it the [achievable] goal, then Mono should be disbanded. Refocus on Parrot or something.

      --
      Slashdot's rate-of-post filter: Preventing you from posting too many great ideas at once.
    97. Re:let me get this straight ... by anomalous+cohort · · Score: 1
      mono = novell's quality of software (bad)

      The last time that I tried out mono was when the version was circa 1.0. I tried it on both Redhat and Debian. The only thing that I got to work was a "hello word" style console app. A more complex console app (had some XML processing) and a "hello world" style win forms app both died at runtime. Both of these apps compiled okay. These apps also compiled and ran fine on Windows with MSFT's technology.

      The current version is 1.1.9.2 so maybe it's time to try again.

    98. Re:let me get this straight ... by slide-rule · · Score: 1

      Pardon my limited knowledge of VB stuff... seems like "delegates" are little more than function pointers, of a sort. That VB uses them for GUI event stuff seemed interesting to me when I read through that section of a quick-learn tutorial, but coming from the Java side of the fence, they don't seem to be necessary... at least, I created the usual "FooListener" interface concept and passed that to an event-generating object (all this of my own creation) and the event callback worked just fine w/o resorting to the delegate model. (Now, if anyone points out the pro/con of doing this in VB, I'll of course listen with interest. I'm not saying delegates are useless or anything, I'm curious why they chose that for GUI event stuff.)

      Properties seem to be an interesting syntactic sugar on private member vars and public getter/setters. Actually, from what little I saw in VB land, I can't see the coder is saved any real effort to go that route, except that possible there might be uses for the compiler explicitly marking the member variable as a "property".

      Just a couple random thoughts. Do take an evening to back through the newer features added to java lately. The new "annotations" was interesting after I saw an example of using the reflections API on a class to list various methods with a given annotation (say, "@test") and then run those methods... think poor-mans unit tests.

    99. Re:let me get this straight ... by Trepalium · · Score: 1
      seems like "delegates" are little more than function pointers, of a sort.
      Basically true, they are like a strongly typed function pointer. The only benefit they really have over the Java way of doing things is they require quite a bit less code to make use of them. They are less "correct" than the normal Java way of doing it, but they serve in most of the cases where the correct way is overkill. When you need to wire up dozens of events, the approved Java method for wiring each event gets cumbersome. You can read about Sun's and Microsoft's view on delegates for a great deal of information on this (this was one of the many reasons behind Sun's lawsuit against Microsoft for their Java VM incompatibilities).

      Personally, I find delegates useful, although I'm not fond of the fact they introduce a large amount of separation between the object and the event handler. It's far too easy to rename an object in VS.Net, and start having delegates that have function names that don't reflect the object they're handling (Button1_Click() anyone?).

      Properties seem to be an interesting syntactic sugar on private member vars and public getter/setters.
      Again, basically true. In fact, internally, properties are generated in nearly the same way a Java programmer would write a set of getter/setter functions. One of the biggest benefits I've found for them is the fact they keep your set/get functions in the same spot in your source code, and add a bit of structure to them (so you can see if a given property is read-only at a glance). It also keeps the namespace a little less cluttered, and for RAD GUI development, it lets you have something that operates like a field, but is handled by code in your class like a function.

      There are some critiques of these features and other C# features at this page, but author writes like he has an axe to grind against C#, and most of the dangers of the features are quite overstated. In the example of delegates, he badly misuses them to show the dangers of them (but he is correct that they are not as type-safe as they should be). In the rant against properties, indexers, etc, he overstates the performance impact of them by ignoring the fact the optimizer is capable of inlining such function calls during JIT just as Java VMs are. And the user-defined implicit type conversions rant largely consists of telling the story about how VB4's preset type conversions caused havoc, therefore it must suck in C#, too. I would have to agree with him on structs (nearly useless and endlessly confusing on what the proper use for them is) and the problems with unchecked exceptions (which makes programming initially easier until you actually need some exception handling), though.

      Do take an evening to back through the newer features added to java lately.
      I've been meaning to, just haven't had the chance. I'm glad that a 'native' look to swing is finally getting the attention it deserves by Sun in Java 6. I hate odd-ball apps on my desktop, regardless of platform.
      --
      I used up all my sick days, so I'm calling in dead.
    100. Re:let me get this straight ... by Anonymous Coward · · Score: 0

      It's just a bit more convenient. Also, in C# 2.0, delegates can function as closures.

  3. Wouldn't it be funny if... by jarich · · Score: 5, Insightful
    Wouldn't it be funny if .Net (with Mono) actually delivered on the promise of Java? That is to say, bringing software to the Linux platform from traditional MS developers?

    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.

    1. Re:Wouldn't it be funny if... by Radres · · Score: 1

      What about the Windows developers working on Java? :-P

    2. Re:Wouldn't it be funny if... by nick-less · · Score: 1


        Wouldn't it be funny if .Net (with Mono) actually delivered on the promise of Java? That is to say, bringing software to the Linux platform from traditional MS developers?


      it probably would, but as long most .net apps (or at least most of the apps I was tricked to fix) look like

                      #region User Declaration
                      clsDML objDML = new clsDML();
                      public clsCommon objCommon = new clsCommon();
                      clsGridFunctions objGridFunction = new clsGridFunctions();
                      Hashtable hstUserSel = new Hashtable();
                      int intPageSize = 2;
                      string strCateLogPage = "CATELOG", strMacVal = "Mac";
                      string strCurrDir = "", strVirImgFolder = @"/TEMP/", strPhyImgFolder = @"C:\TEMP\";
                      string strAddCart = "AddCart", strDownload = "Download", strSQL = "", strZipExt = ".zip", strAmbientenbild = "";
                      static string[] strarrTable3Fields = new string[]{"DISTINCT VALID_FOR","VALID_FOR"};
                      string[] strImgSupportTypeExt = new string[]{"jpg","jpeg","gif","bmp","png"};//Allowab le image formats
                      string[] strMovieExt = new string[]{"mpg","mpeg"};//Allowable movie file formats
                      string strMovieFileImgPath = "Images\MPG-File.jpg";//Path(relative) of image to be displayed when we have a movie file
                      clsModifyImage objThumbnail;
                      public string str72 = "_72", str300 = "_300";
                      FileStream fsGetFile;
                      string strSpace = "";

                      #endregion


      you probably won't want it running on linux...

      ps: I didn't write the mess up there, I was just hired to extend it ;-)

    3. Re:Wouldn't it be funny if... by Tony+Hoyle · · Score: 1

      Since .NET is 99.9% Windows pretty much all .NET apps will have windows dependencies eg. COM objects, file paths with backslashes, assumed case independence, etc.

      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 will just die if you run it against MySql..

    4. Re:Wouldn't it be funny if... by manual_overide · · Score: 1

      what?

      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.

      --
      If bad puns were like deli meat, this would be the wurst
    5. Re:Wouldn't it be funny if... by Ollierose · · Score: 1

      That depends if the previous code that you're trying to extend actually used OdbcClient et al, or whether it used SqlClient and the namespace full of SQL Server specific types.

      Picking on Oracle for a moment, there is also a bunch of classes for that - I'd hate to be the guy who has to try and support those three to get native support out there.

    6. Re:Wouldn't it be funny if... by Anonymous Coward · · Score: 0

      It kind of does, when you take Mainsoft into the picture. Mainsoft, a huge contributor to mono, have a cross compiler that takes .NET IL code and translates it into Java Byte Code. This compiler plugs straight into Visual Studio.NET, so an MS programmer can use VS.NET to write in C# or VB.NET, compile to Java and run on Linux. He or She can also interop cleanly with J2EE by referencing EJBs or other Java Classes from their C# code using autogenerated proxies in exactly the same manner as interfacing with Web Services. Mainsoft have provided a Java Byte Code implementation of the Mono libraries that will run on a Java server and support your code.

    7. Re:Wouldn't it be funny if... by Anonymous Coward · · Score: 0

      You know it is almost there already -- because of what a company called Mainsoft are doing. Their 'Grasshopper' application has been slashdotted before. It's a cross compiler that turns MSIL into Java bytecode. They've converted the mono namespaces to java, and can run them on java. Your C# code is then converted to run as jbc using these as dependencies. It's really quite neat.

      And you continue to use VS.NET to write your code. You can debug stuff running on a JVM in vs.net, you can consume JARs and EJBs using their contents from C# (or VB) etc. etc.

      It's really quite neat.

  4. .NET Windows Forms by Anamanaman · · Score: 2, Interesting

    I have a .NET Windows forms app that I'm looking to port to Linux using Mono. Anyone have any experience doing this? Is it something I should even bother trying to do?

    1. Re:.NET Windows Forms by tomasvilda · · Score: 0

      Maybe just wait for winforms to get ported to .net?

    2. Re:.NET Windows Forms by mindtriggerz · · Score: 1

      In theory, you should be able to run: mono MyApp.exe if it's been compiled and everything should work. IIRC, Mono implements Systems.Windows.Forms in Cairo.

    3. Re:.NET Windows Forms by MooCows · · Score: 3, Informative

      Mono implements System.Windows.Forms, but currently it's not stable.

      It's recommended to use the latest build of Mono System.Windows.Forms, you can find it here.
      And here is the the Mono WinForms class status.
      I currently wouldn't rely on it. But the outlook is good.
      And here are some pretty pictures of Mono's WinForms in action.

      For apps where the both compatiblity with Windows and Linux/OSX are important I'd use wx.NET.
      However on Win32 WinForms works best, even if it isn't the nicest (for developers) toolkit around.

      --
      The path I walk alone is endlessly long.
      30 minutes by bike, 15 by bus.
    4. Re:.NET Windows Forms by kupci · · Score: 2, Insightful
      You wanna run your .NET Windows Forms app on Linux you say? easy

      Seriously, you've just summed up the whole 'bait and switch' flaw with mono.

  5. I'm sorry by smartin · · Score: 1, Troll

    But just use Java. 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.

    --
    The difference between Canada and the USA is that in Canada healthcare is a right and gun ownership is a privilege.
    1. Re:I'm sorry by hkb · · Score: 1, Informative

      But just use Java.

      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, .NET and Mono were designed to be cross-platform from day one, too. MS didn't decide to use MSIL for the hell of it. It was designed for portability.

      Mono is also supported on just about every relevant platform, except maybe in the mobile and embedded spaces. But don't kid yourself, Java isn't exactly "good" in these spaces, either.

      And I'm not too sure Mono/Microsoft are exactly second-class citizens in Java's world. They're kind of carving their own niche.

      --
      /* Moderating all non-anonymous trolls up since 2004 */
    2. Re:I'm sorry by Alkonaut · · Score: 2, Interesting

      C#/.NET was designed to be all that java is in terms of platform independence, but MOST importantly, VM and package versioning was thought of from the beginning. Makes the whole difference.

    3. Re:I'm sorry by aled · · Score: 1

      Oh, that memo from february 2003? long time no see you. Don't you think that's OLD news?

      --

      "I think this line is mostly filler"
    4. Re:I'm sorry by smartin · · Score: 1

      In a word - bullshit.

      --
      The difference between Canada and the USA is that in Canada healthcare is a right and gun ownership is a privilege.
  6. Not really news... by Momoru · · Score: 2, Informative

    Mono has been around and kickin' for almost as long as .NET has been. It still doesn't execute .NET 100%, but definitely something to check out if your a .NET person and want to use Linux.

  7. my case by akadavex · · Score: 1

    i'm sysop of debian machines for network services, i also write or modified some apps in php, and them run on apache. but my better applications (standalone/web) are made in visual basic. once i used visual basic and cgi4vb for web developement. now i write apps in vbnet. is the more productive language for my. and i'm not scared about palladium or so for the next year, because i can be a developer fo linux applications. with vbnet, of course, and mono. is not a politic or karma choiche is only for

    1. Re:my case by Krach42 · · Score: 1

      i'm sysop of debian machines for network services

      Now there's a word I've not heard in a while...

      "of"

      --

      I am unamerican, and proud of it!
    2. Re:my case by i.of.the.storm · · Score: 0

      Call me a microsoft sympathizer, but I agree with this guy. VB is way more productive than Java. I have experience in both VB and Java and Java takes far longer to code and is often a little unintuitive where VB does things far simpler and doesn't try to force you to speak in code or think of everything as an object.

      --
      All your base are belong to Wii.
    3. Re:my case by TummyX · · Score: 1


      Java takes far longer to code and is often a little unintuitive


      Depends greatly on whether or not you've studied computer science...

  8. portability problems by vlad_petric · · Score: 4, Interesting
    The article is silent on the GUI part. Unfortunately, that's also the most unportable part with .NET. Since winforms was really tailored for the windows api, porting it is no trivial tasks. Windows.Forms/Mono is still under heavy development.

    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

    --

    The Raven

    1. Re:portability problems by MooCows · · Score: 1

      Actually, wx.NET and GTK# work just fine on both Microsoft's runtime as on Mono's runtime. Compile on Win32 with VS.Net, run on Linux with Mono (or Portable.Net). I've tried it and ran into no problems.

      QT# exists or you can call QT libs directly from .Net. I have no experience with QT so can't comment. .Net isn't so 'boxed in' and 'made for win32' as I thought it would be. And C# is a pretty nice language.

      --
      The path I walk alone is endlessly long.
      30 minutes by bike, 15 by bus.
    2. Re:portability problems by zlogic · · Score: 1

      You've provided an old link to the page. The new one is http://www.mono-project.com/Windows_Forms

    3. Re:portability problems by msolnit · · Score: 1

      In my understanding (and Miguel might correct me), one of the major goals of Mono is not just to be cross-platform w/respect to Windows, but also to simply provide a very easy way to write new GUI apps for Linux. So Gtk# makes it possible to create all kinds of cool Linux apps that might never have been developed otherwise.

  9. Here we go again by Billly+Gates · · Score: 3, Insightful

    "maintaining cross-platform capabilities, using a variety of .NET-compatible languages." .. great! You can use Microsoft VC.NET, Microsoft C#.net, and Microsoft VB.net on any version of Microsoft windows. (Well recent)

    maintaining cross-platform capabilities, using a variety of .NET-compatible languages. One of the great advantages of .NET is providing an easier migration path to Linux .. " Is the poster on crack? He might as well say " .. using a variety of MFC based languages makes targetting to Unix easy.

    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.

    1. Re:Here we go again by Anonymous Coward · · Score: 1, Interesting

      I have written a scripting engine in C# and the non-UI portion (i.e both the compiler and virtual machine) compile on Windows and execute on Linux perfectly, even the object files my compiler outputs are platform independant. The development environment I have written does not compile under Linux, which agrees with other posts about Windows.Forms not yet being ported properly.

      I personally think it rocks, and as a Windows developer by trade, allows me to get a wider audience for my programs.

      My scripting enigne will be open sourced and make available in due course (probably via gotdotnet or sourceforge).

    2. Re:Here we go again by Omega1045 · · Score: 1, Insightful
      I am sorry that you have not taken the time to really look at .NET. Your statement that you would put it behind VB really shows your ignorance of the platform.

      For Windows development, C# and .NET far exceeed anything I have experienced with Java or VB (I get around). I guess I really have a disrespect for Java as 1.0 really sucked hard. The eventing model was worthless, and AWT is just plain out stupid. Hate would be the word I would use to describe how I felt about Java's idiotic way of doing things circa 1998. I have writen stuff on 1.1 and 2.0 since then, but it just seems like it so sooooo friggen slow. We are not talking about a stereotype here. Java, in my experience, is ass slow. On Windows (if that is all you care about) .NET is soooo much better. And nicer. You have to admit that Visual Studio, while it has its own variety of suck, is nominally better than just about any Java IDE out there. And I have tried a lot of them.

      As far as running on Linux, we don't really care as we know that none of our clients give a crap about Linux on the desktop. Hell, they would have to port 20 other apps over to Linux first! And as far as server tasks go, all the server dlls I have right now run on Mono on Linux. The strugle for us has been getting the latest/greatest in Mono to compile on AIX.

      So, I would be willing to listen to your argument if you were more informed with more experience in the subject.

      --

      Great ideas often receive violent opposition from mediocre minds. - Albert Einstein

    3. Re:Here we go again by Exatron · · Score: 1

      I think there's a more important question to as first. Why bother with .Net?

      --
      "I think so, Brain, but 'instant karma' always gets so lumpy." - Pinky
      "Decepticons FOREVER!!!" - Ravage
    4. Re:Here we go again by Mr2001 · · Score: 1

      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.

      Actually, Mono already supports the features of C# 2.0. The Whidbey beta has been out for over a year, you know.

      --
      Visual IRC: Fast. Powerful. Free.
    5. Re:Here we go again by MooCows · · Score: 2, Insightful

      "great! You can use Microsoft VC.NET, Microsoft C#.net, and Microsoft VB.net on any version of Microsoft windows. (Well recent)"

      Right.. 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 on every platform.)

      IMHO: .Net isn't perfect, but isn't fundamentally broken either. Unless of course you don't want to touch anything having to do with Microsoft, ever. That's fine, understandable even. Just check facts before flaming their software. ;)
      Also, so now we have .Net as an alternative to Java. I thought more choice and competition was good?

      About vendor lock in. In practice there is no lock in, as stated above C# and .Net applications are already quite compatible with non-Win32 platforms. Patent and copyright issues? Well C# is pretty safe, MS might somehow claim to 'own' the CLR standard .. but I think that would be highly unlikely. (And even more unlikely to succeed.)

      --
      The path I walk alone is endlessly long.
      30 minutes by bike, 15 by bus.
    6. Re:Here we go again by cortana · · Score: 1
      "So, I would be willing to listen to your argument if you were more informed with more experience in the subject."
      Says he who claims to "have writen stuff on [Java] 1.1 and 2.0". :p
    7. Re:Here we go again by caseih · · Score: 1

      For me cross-platform has little to do with anything. It's about the development tools (no not Visual Studio). If a gnome app can be developed quicker with C# than C or C++, more power to you. Java just never has quite felt at home on Linux. It was always a slightly alien world that never quite integrated at all. Mono and C# seem to do a better job because it is easier to interface with existing C libraries, and the GTK (and probably QT) bindings are superb. The Mono/Gnome stack just has a better feel to it than Java. Unscientific, I know.

      Even though cross-platform isn't my number one issue, having mono available on many platforms (unix, linux, mac, windows), is a plus. I'm not totally locked down and I can move when I want to. Finding Java for my embedded arm linux PDA, HPUX, or any other esoteric platform is very difficult. At least with mono it is possible.

    8. Re:Here we go again by brunes69 · · Score: 1
      You have to admit that Visual Studio, while it has its own variety of suck, is nominally better than just about any Java IDE out there. And I have tried a lot of them.
      I don't know what kind of crack you are smoking, but I would sure like to get some!

      Java 5.0 + Eclipse 3.1 is by far the best combination of panguage power and IDE power I have ever seen. It is head and shoulders above Visual Studio .Net. There are so many things better about Eclipse that I can't even go into it.

    9. Re: here we go again by cortana · · Score: 5, Insightful
      Why do people even bother with Mono?
      I don't give a crap about whether Mono allows me to run shitty Windows-centric apps on my system. I bother with Mono because it makes it easy to rapidly develop and deploy programs for the linux desktop. Mono is a good enough product in its own right.

      The excellent java-gnome 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--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 to convert Sun's crap installer into a .deb that halfway complies with Debian poilicy, but by making me go through this procedure Sun has basically killed my enthusiasm for working with this platform--there is no longer any buzz.

      "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 .NET implementation is good enough, Mono will never beat it", this is an exciting time when men are men, women are women, small furry creatures from Alpha Centuri are real small furry creatures... etc, etc.

      To summarise: Mono is exciting. Java is a pain in the ass.
    10. Re:Here we go again by metallic · · Score: 1

      I consider Jetbrains IntelliJ IDEA to be heads and shoulders above Visual Studio. It is quite possibly the best IDE I've ever used.

      --
      Karma: Positive. Mostly effected by cowbell.
    11. Re:Here we go again by miguel · · Score: 4, Interesting

      There are a number of cross-platform commercial applications that run on Mono, for example:

      * 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's products (Mono/Gtk# based).

      * Otee's Unity game engine (http://www.otee.dk/index.html).

      You can look for the "Works with Mono" logo on open source .NET applications and various commercial applications.

      For a larger but still incomplete list, see:
      http://www.mono-project.com/Software

      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

      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.

    12. Re:Here we go again by jma05 · · Score: 1

      Java 2.0 is Java 1.2. That's Sun's terminology, not his.

    13. Re:Here we go again by cortana · · Score: 1

      Google hits for "Java 2.0": 163000
      Google hits for "Java2": 178000000

      He probably meant Java 1.2 AKA Java2. This is still years out of date. We are currently up to Java 1.5, AKA Java2 5.0.

      Now I'm not saying Sun's marketing department isn't retarded; just that it is pretty hypocritical for someone to go around making statements such as "I am sorry that you have not taken the time to really look at .NET, Your statement that you would put it behind VB really shows your ignorance of the platform" and "I would be willing to listen to your argument if you were more informed with more experience in the subject", while in the same post demonstrating ignorance of the Java platform is pretty, well, dumb.

    14. Re:Here we go again by jma05 · · Score: 1

      Why! Does everyone who does not agree with you must be out of their mind?

      Eclipse is great as a code editor and better than Visual Studio. The total development experience however is much worse for developing everyday desktop applications. It abstracts the details very well and provides a more seamless experience.

    15. Re: here we go again by Anonymous Coward · · Score: 0

      I code in both C# and Java for work. Using Mono still doesn't interest me as much as Java, even for writing an open source app. Though having to install Sun's Java on Debian is kinda a pain and I wish they'd change the licence to allow it to be apt-getable, its not so bad that it makes me want to use Mono just for the convenience of apt-get. I don't use apt-get for any Java applications because Debian doesn't have many Java apps that are current enough for me to use anyway. Eclipse and Tomcat packages are outdated. I simply download and run Java apps from my home directory the way Java apps are meant to be run. In a lot of cases I am deploying to a servlet container (especially for the apps I develop), so apt-get isn't as relevant in those cases.

      As for actually developing software, the Java world is much better at the moment IMO. You have awesome IDE's like Eclipse. What IDE's do you have for Mono? MonoDevelop is in its very early stages of development and is so buggy and featureless it's not very usable. Then all the great open source 3rd party libraries (Spring, etc) that Java has are slowly being ported to .Net/Mono, but there's a long way to go. Java still has the advantage right now, and will for a long time. Then the language itself. C# has some nice things about it (as well as a few questionable design decisions), but 2.0 is more comparable to current Java. I really hope Mono can get C# up to 2.0 compliance soon because that will be exciting.

      I think the reason you don't see people using java-gnome is that it doesn't make as much sense. If someone is developing a GTK/Gnome app, they probably want to use an open source language to develop in. If someone is writing a Java app, why would they make it depend on GTK when there is Swing or SWT? GTK under Windows is just not that nice.

      Mono is cool and interesting enough (I hope it ends up being a huge success), but nowhere near where Java is right now.

    16. Re:Here we go again by Anonymous Coward · · Score: 0

      And don't forget about System.IO.Ports for 2.0 functionality. Full Serial port support of IO.Ports is what I need. Last time I checked only Read() worked. ReadLine(), etc were not implemented.

      I was very disappointed that the origianl .net 1.x from MS did not support serial ports.

      Cross platform serial port applications are hopefully only a short time away.

  10. Check Out Imeem.Com by Anonymous Coward · · Score: 0

    They're doing a lot of Stuff with mono, they've got a windows client and supposedly have a Mono based Mac version on the way, their developers all keep blogs on the site about building applications in mono and .Net.

  11. "cross-platform" by oGMo · · Score: 4, Funny

    You keep using that word. I don't think it means what you think it means.

    --

    Don't think of it as a flame---it's more like an argument that does 3d6 fire damage

    1. Re:"cross-platform" by Billly+Gates · · Score: 2, Funny

      Whats the problem?

      You can run Mono in almost any version of Windows.

    2. Re:"cross-platform" by WWWWolf · · Score: 1
      You can run Mono in almost any version of Windows.

      Damn, don't give us false hope! For a while, I was almost thrilled, you know, "what if Mono ran on Win98SE, as Microsoft's .NET runtime sure won't?" but now that I checked the website, looks like it doesn't. Grr.

      (This in regards to getting some Modern Software to run on the machines of people who just refuse to upgrade their perfectly working 98SE systems. But who am I to shove Modern Software there anyway, all they asked for was OpenOffice.org, Firefox and RealPlayer...)

  12. How is this news? by Anonymous Coward · · Score: 0

    This is not new at all... Mono has been around, where have you guys been?

  13. Is "Mono" the new OOG? by Bingo+Foo · · Score: 1

    MONO conjugate verbs for Linux.

    --
    taken! (by Davidleeroth) Thanks Bingo Foo!
    1. Re:Is "Mono" the new OOG? by Anonymous Coward · · Score: 0

      I'd like to point out that the editors have changed the offending conjugation in the story, so the parent post now looks like a non-sequitur. It wasn't when it was posted.

  14. MONO not portable. by Anonymous Coward · · Score: 0

    MONO is not portable to other architectures due to assembly language used.

  15. For portable GUI apps..... by CyricZ · · Score: 1

    Perhaps it is still better to stick with a cross platform C++ framework like wxWidgets or QT. They offer many of the benefits of Java and .NET, without many of the nasties.

    --
    Cyric Zndovzny at your service.
    1. Re:For portable GUI apps..... by despisethesun · · Score: 1

      Mono has a cross platform GUI framework. GTK# is already fairly stable all-in-all and works well on all platforms except for Mac (which requires X to use it). I'm sure there are people who will dump all over GTK+ here but it is possible to make cross platform .NET apps as long as you don't actually use Microsoft's shit to do it.

      --
      This poo is cold.
    2. Re:For portable GUI apps..... by CyricZ · · Score: 1

      While I'm sure it's a fantastic solution under Linux or some other UNIX-like system, GTK+ is noticeably different under Windows. Users of GTK+ Windows apps (such as GAIM) often can tell that it's not a "real" Windows app.

      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.

      --
      Cyric Zndovzny at your service.
    3. Re:For portable GUI apps..... by despisethesun · · Score: 1

      As it stands, it's a better solution than WinForms for cross-platform .NET apps. Until Mono gets a decent implementation of Windows.Forms or MS open sources it, there's really not any better options right now.

      --
      This poo is cold.
    4. Re:For portable GUI apps..... by CaptnMArk · · Score: 1

      WinForms apps are not "real" Windows apps either. It's easily noticeable and apps written in it are full of little bugs (multi display support is crap, large font support is crap -- MS still can't make resizeable dialogs after 20 years of doing GUI.

      Gtk# probably wouldn't be any worse and could actually be better because doesn't carry 20 years of Windows legacy.

  16. Why bother? by Decaff · · Score: 4, Insightful

    With Java you now have a complete implementation of all language APIs on Windows, Linux, Solaris, HP and so on, not an incomplete port of .NET (Mono) potentially subject to Microsoft patents.

    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.

    1. Re:Why bother? by Decaff · · Score: 1

      How on Earth can this be rated troll when it there is not a single fact in the post which is incorrect?

    2. Re:Why bother? by planetoid · · Score: 1

      You had a dissenting opinion, that's how.

      --
      Slashdot requires you to wait longer between hitting 'reply' and submitting a comment.
    3. Re:Why bother? by TheNetAvenger · · Score: 1

      Why bother?

      Well, you are factually correct in your post, but miss one important issue...

      Some people want applications to run faster than a snail.

      With .NET you get a much higher level of performance, and most of the benefits that Java.

      For example, even part of Direct 9.0c is written in Managed .NET - and it is very important that DirectX be super fast, and if you can implement key features of it in .NET without performance loss, then it probably can do about anything.

      Java on the other hand would have a hell of a time trying to get enough performance out of the VM to do very advanced graphics for example, and with .NET it is a no sweat do able thing.

      So why bother? Speed my friend, speed. Also reliability isn't on the side of JAVA at the moment either. You still have to test your apps on all platforms, so being fully transparent to each VM on all OSes, JAVA still has a ways to go.

      Take Care,
      The Net Avenger

    4. Re:Why bother? by Dan+Farina · · Score: 1

      While the MS .NET implementation is pretty fast for primatives, I have found that when it comes to the garbage collector.....

      Yeah, Java is not all slugs and snails. And I like to be able to tune my garbage collector/heap size, thank you very much.

    5. Re:Why bother? by aled · · Score: 1

      Tell me when Microsoft ports DirectX to Linux, when Mono apps with it may be it will be an argument to use Mono. That was the topic after all.

      --

      "I think this line is mostly filler"
    6. Re:Why bother? by m50d · · Score: 2, Informative
      With Java you now have a complete implementation of all language APIs on Windows, Linux, Solaris, HP and so on,

      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 succeeds (and it has a lot of backing) there will be a complete open source cross-platform Java implementation.

      Vaporware, gimme a break. People have been saying we will have a complete open source cross-platform Java implementation for as long as Java's been around. It's never materialised.

      There are already open-source Java versions that are good enough for many applications (gcj, Kaffe).

      Look who's an incomplete port now. gcj and Kaffe are good projects and I support them but if you try and run a random app on them it's not even "hmm, this might work, we can hope", it's "let's see where this breaks".

      Mono is a waste of time.

      Right now I have a working, open source implementation of all of .Net that I need, which installs easily on every platform I've seen in use. Or, I have a horribly-licensed and horrible-to-install (especially on BSD) Java implementation, or a number of attempts at an open source Java which though initially promising seem to be going nowhere and won't run the vast majority of java programs.

      --
      I am trolling
    7. Re:Why bother? by Decaff · · Score: 1

      With .NET you get a much higher level of performance, and most of the benefits that Java.

      No, you don't get a much higher level of performance. Both .NET and Java are now fast. Java is fast enough that it is often used for numerical and graphical work.

      Java on the other hand would have a hell of a time trying to get enough performance out of the VM to do very advanced graphics for example, and with .NET it is a no sweat do able thing.

      This is simply a statement without foundation.

      Have you actually looked at Java vs .NET benchmarks? It might be an idea before you post such things.

      So why bother? Speed my friend, speed. Also reliability isn't on the side of JAVA at the moment either. You still have to test your apps on all platforms, so being fully transparent to each VM on all OSes, JAVA still has a ways to go.

      Complete nonsense! There may be issues in some aspects of mobile devices, but on main platforms (Linux, Windows, Solaris, HP/UX etc) Java is robust and totally portable. No-one I know ever bothers to test for cross-platform portability. If you use a certified JVM on each platform, there are simply no problems.

    8. Re:Why bother? by Anonymous Coward · · Score: 0

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

      Although I prefer Java over .Net/Mono (I code in both for work), mainly due to the excellent tools (Eclipse) and open source libraries available, I think citing the Apache Harmony as a reason why Mono is irrelevant is just plain wrong. It will be a long long time before Harmony puts out anything, and by that time it won't even be close to the latest version of Java. I hope for the Harmony project to succeed, but Mono is here now. Not to mention, Mono will be able to take advantage of open source Java. You can already run IKVM under Mono which is pretty impressive (you can call Java libraries from Mono apps). How cool would it be to have one VM where you can run both .Net and Java apps that can access each others code?

    9. Re:Why bother? by TheNetAvenger · · Score: 1

      Have you actually looked at Java vs .NET benchmarks? It might be an idea before you post such things.

      None currently exist my friend, since the current version of .Net technology's NDA prohibits benchmarking. If you magically have some, then I'm sure a lawyer would like to talk to you. 8P

      How about this challenge since you think what I said was nonesense, write us all a cute java application that can render full scenes in 3D in realtime at near toy story quality. Then I will say, yep I was wrong, .NET isn't the only managed development environment that can do this type of performance.

      Actually I would be happy to see a version of Solitaire in Java that the cards moving around the screen didn't drop a 3Ghz P4 to a crawl...

    10. Re:Why bother? by Decaff · · Score: 1

      None currently exist my friend, since the current version of .Net technology's NDA prohibits benchmarking. If you magically have some, then I'm sure a lawyer would like to talk to you. 8P

      Well get the lawyers out. Here are some Java vs. Net bencharks from a year ago:

      http://www.shudo.net/jit/perf/

      How about this challenge since you think what I said was nonesense, write us all a cute java application that can render full scenes in 3D in realtime at near toy story quality. Then I will say, yep I was wrong, .NET isn't the only managed development environment that can do this type of performance.

      Sorry I don't have time to write it myself, but here is one:
      http://www.bytonic.de/html/jake2.html. A version of Quake in Java.

      Actually I would be happy to see a version of Solitaire in Java that the cards moving around the screen didn't drop a 3Ghz P4 to a crawl...

      Perhaps you would like to back this up by giving the name of the specific solitaire program so we can test it and check the processor use while moving cards?

    11. Re:Why bother? by TheNetAvenger · · Score: 1

      Well get the lawyers out. Here are some Java vs. Net bencharks from a year ago:

      http://www.shudo.net/jit/perf/ [shudo.net]


      No offense, but that is not the current .NET technologies that developers like myself are using, nor the technologies they are being used in Vista, nor are these even the .NET technologies that are being used on the XBox 360.


      Sorry I don't have time to write it myself, but here is one:
      http://www.bytonic.de/html/jake2.html. A version of Quake in Java.


      I was kind of excited, until you actually fact check the program. "Jake2 uses jogl for OpenGL graphics and joal for 3D sound."

      This is a front end application using OpenGL for graphics and jaol.

      I could write a Visual Basic application using OpenGL or DirectX as well that would perform just as well, this is NOT JAVA handling graphics, this is JAVA using OpenGL for graphics.

      Do you not realize there is a 'difference'?

      Part of the DirectX foundations and 'video' access itself is writeen in Managed .NET, This is NOT .NET just calling DirectX, but .NET is a part of what .NET is build with.

      Using OpenGL or DirectX from any language does not mean the language itself is fast. I could actually harness DirectX from a very simple Visual Basic application, and do some incredible game processsing, does this mean Visual Basic is the best performaning development environment also?

      Maybe you should find an example where JAVA has replaced OpenGL for graphics output, and then you would have a comparable argument, until then. Bzzz....

    12. Re:Why bother? by Decaff · · Score: 1

      No offense, but that is not the current .NET technologies that developers like myself are using, nor the technologies they are being used in Vista, nor are these even the .NET technologies that are being used on the XBox 360.

      Well why not actually download the benchmarks and try them, and report the results?

      The benchmarks are showing both Java and .NET being fast and approaching C++ speed.

      If you are suggesting that .NET is much faster than Java, you are also, as a consequence, implying that .NET is much faster than C++. Sorry, don't believe it.

      Part of the DirectX foundations and 'video' access itself is writeen in Managed .NET, This is NOT .NET just calling DirectX, but .NET is a part of what .NET is build with.

      Details?

      Using OpenGL or DirectX from any language does not mean the language itself is fast. I could actually harness DirectX from a very simple Visual Basic application, and do some incredible game processsing, does this mean Visual Basic is the best performaning development environment also?

      No. But 3D stuff like quake involved a lot more than just OpenGL and DirectX. Those are simply the final stage of presentation. Have you seen attempts to write such games using a slow language, even with OpenGL beneath? I have.

      Part of the DirectX foundations and 'video' access itself is writeen in Managed .NET, This is NOT .NET just calling DirectX, but .NET is a part of what .NET is build with.

      I would be very interested to read some documentation about this.

      Maybe you should find an example where JAVA has replaced OpenGL for graphics output, and then you would have a comparable argument, until then. Bzzz....

      Maybe you should find an example where high-performance graphics primitives on a video card are written in .NET. Until then, Bzzz...

      So far there is not the slightest evidence that .NET is any faster than Java. It was posted that there were no comparing benchmarks. I showed them. It was posted that Java was not used for 3D games. I posted an example.

  17. .NET a marketing term by Anonymous Coward · · Score: 0

    The problem is that the Mono team, and Miguel specifically, will absolutely not relent in using the term ".NET". The thing is that Microsoft *intentionally* created a brand around .NET that blends deep within the Windows platform. VisualStudio.NET, anyone? It is so unbelievably stupid to use Microsoft's brand in that it will always, always be very tied to the Windows platform. The day VisualStudio.NET runs on Mono is the day they can start even *using* the term .NET OR .NET Runtime, or whatever, in conjunction with Mono. The technology is OK from a pure technologists standpoint, but from a basic business/marketing standpoint it shows that Mono and Miguel are pathetically stupid. Again, the mantra should be that Mono is done when it runs VisualStudio.NET. NEVER GOING TO HAPPEN.

  18. Ah Please, it's really old news by TarrySingh · · Score: 1

    My .NET colleague has been using this for quite sometime on his SuSe box(in his VMWare).

    --
    Scott McNealy to Michael: "Suck my Sun!" Michael Dell to Scott : "Lick my Dell!"
  19. How cross-platform by pmike_bauer · · Score: 2, Interesting

    A few years back, I had a serious Java epiphany. Try taking a JAR that runs on an IBM JVM (AIX) and, without a recompile or glitches, run it on a Sun JVM (Windows). It just works.

    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 .NET runtime in Windows?

    --
    I read /. for the (Score:-1, Conservative) comments.
    1. Re:How cross-platform by ad0le · · Score: 1

      With my experience, 90% of the time, yes! I've even been able to use GTK# and NgPGSQL for GUI and Database access (respectively). I compile with Mono on my gnu/linux box and run on windows just fine and vice versa. It's pretty amazing.

      --
      My mother never saw the irony in calling me a son-of-a-bitch.
    2. Re:How cross-platform by Anonymous Coward · · Score: 0

      Yes.

    3. Re:How cross-platform by kingos · · Score: 2, Informative
      I do c# development at work (largely for the windows.forms gui code, most server side is c++).

      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.

    4. Re:How cross-platform by m50d · · Score: 2, Informative
      But, will a Mono app/code base developed on Linux run just as smoothly on the .NET runtime in Windows?

      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.

      --
      I am trolling
  20. wxWidgets vs. Qt vs. Windows Forms by everphilski · · Score: 2, Interesting

    I'm looking into wxWidgets vs. Windows Forms at the moment for a project I'm working on at the moment. It's my thesis research.

    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 something I would like. I havent bought into the whole .net or "managed C++" thing, my project is pure C++. I haven't investigated wxWidgets close enough yet to see if they mandate all of my code has to be GPL yet. If not I will give it a serious look. The sample code didn't look quite as clean or object oriented as Windows Forms did, however, which I do value. One cool thing about Windows Forms is that you can keep the "old" C++ code seperate from the Windows Forms program and just call the classes without converting them to "managed C++" or .net.

    -everphilski-

    1. Re:wxWidgets vs. Qt vs. Windows Forms by CyricZ · · Score: 2, Informative

      wxWidgets is LGPL. You should be able to dynamically link to it while still licensing your software as you see fit. It may have a static linking clause, allowing you to link statically instead of only dynamically. You'll want to check on that, though.

      What about using FOX? It's far lighter than wxWidgets or QT, while still offering a decent cross-platform GUI. And it's LGPL, with static linking exceptions.

      --
      Cyric Zndovzny at your service.
    2. Re:wxWidgets vs. Qt vs. Windows Forms by everphilski · · Score: 1

      Hadn't heard about FOX, will give it a look. (website is loading r e a l l y s l o w . . . )

      -everphilski-

    3. Re:wxWidgets vs. Qt vs. Windows Forms by kupci · · Score: 1
      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.).

      What? You can afford the luxury of grad school, but not even the academic license? Or, did you spend all your money on the Windows Forms .net license?

      Not to be too harsh, but give me a break dude, every time I hear the baloney about the Qt license costing too much, that is a clue you are an amateur. Qt is simply a fantastic product. Paying a little extra for a proper tool will make all the difference. I'm not sure who said it, but "If I had 9 hours to chop down a tree, I'd spend 6 hours sharpening an axe". Or a little money and buy yourself a proper chainsaw.

    4. Re:wxWidgets vs. Qt vs. Windows Forms by sinserve · · Score: 2, Insightful

      FLTK2, thank me later.

    5. Re:wxWidgets vs. Qt vs. Windows Forms by Kristoffer+Lunden · · Score: 1
      The wxWindows Licence is essentially the L-GPL (Library General Public Licence), with an exception stating that derived works in binary form may be distributed on the user's own terms. This is a solution that satisfies those who wish to produce GPL'ed software using wxWidgets, and also those producing proprietary software.


      http://www.wxwidgets.org/newlicen.htm
    6. Re:wxWidgets vs. Qt vs. Windows Forms by everphilski · · Score: 1

      VC++ Express Edition is free and comes with .net. Free.

      Not to mention the academic license is far from free, and restricts you to development at school on school owned hardware. I have a wife and a family, I'd rather do development at home where I can spend some time with them.

      I can submit my results as a console project. I just thought I'd try and play around with an interface. It isn't worth $3000 to me to "play around with" Qt. Sorry. On the other hand, for free, I canm play around with .net or wxWidgets.

      -everphilski-

    7. Re:wxWidgets vs. Qt vs. Windows Forms by NoOneInParticular · · Score: 1
      Ok, so you want to distribute your binaries, but you can't use the GPL, because you can't distribute (a part of) your source? And this due to export restrictions? Are you sure you can distribute your binaries?

      Or are you simply doing a research project where you don't distribute the binaries/source outside of your institute? In that case, the GPL will work fine for you, as there's nothing in the GPL that says that you MUST distribute. IF you distribute, certain rules apply. If you don't, nothing prevents you from using it inside your institute.

  21. C# is an open standard by Sycraft-fu · · Score: 1, Informative

    ANSI controls it. No changes can be made without submission to ANSI, and those chances will be made public. Sure, MS could make another language based on C# but not compatible (so could anyone else) but then it won't be C#.

    1. Re:C# is an open standard by pmike_bauer · · Score: 1

      Being an open standard does not guarantee any sort of compatability accross implementations whatsoever.

      The fact that Sun religiously guards what is called 'Java' with their compatibility test kits is what makes Java so uniform accross platforms.
      Does C#/.NET have such an analog?

      --
      I read /. for the (Score:-1, Conservative) comments.
    2. Re:C# is an open standard by The+Bungi · · Score: 3, Informative

      It's ECMA, not ANSI.

    3. Re:C# is an open standard by mozingod · · Score: 2, Informative

      That's the problem. C# is open and can be completely cross platform, but .NET isn't. To me, though, the greatest part of using C# is having the .NET framework available to you. Mono is having to recreate the .NET framework on Linux, while Java's framework is already there (though not open source).

      I'd rather use Java and have its full framwork available to me than use C# and a crippled, albeit quickly catching up, .NET framework. Six of one, half dozen of another, I suppose.

    4. Re:C# is an open standard by Jussi+K.+Kojootti · · Score: 1

      Or if you want someone (arguably) more trusted: ISO (almost at the end of the page).

  22. Javascript/AJAX is an awesome combination. by hughperkins · · Score: 0, Offtopic

    Javascript/AJAX is an awesome combination. Scripting languages provide very awesome RAD, whilst using a web browser + javascript + xmlhttprequest provides a very smooth professional appearance to your application. .Net and ASP .Net are cool, but my personal experience is that development times tend to be quite long, compared to the same application in Javascript/XMLHttpRequest.

    One issue is variable declaration. Declaring a variable as an XMLElement rather than simply typing var takes a half second or so longer each time. Certain results need to be cast to be useful, for example, SelectSingleNode often needs to be cast into an XMLElement. You can't easily write a function that can handle many datatypes, and the datatypes tend to be purvasive throughout your project, difficult to change, at least without using typediffs, which has its own overhead.

    ASP .Net provides web form widgets that work along similar lines to VB forms elements. However, plain old html is much easier to work with, more dynamic and more flexible than VB-type widgets. The .Net widgets do provide the illusion that the application is client-based, but AJAX does this too, and is much easier to use. ASP .Net provides a form editor but it tends to work uneasily with custom-edited HTML.

    Javascript/XMLHttpRequest rock totally. They provide the separation of display and code that ASP.Net provides. They're lightweight, readily maintainable, easy to read, and very flexible and powerful.

    Obviously, it would be unwise to state that AJAX is the best solution for every scenario, but it's certainly a highly optimal solution for a wealth of functional, technical and user specifications. So much so that Microsoft is currently trying to move ASP.Net to use AJAX, the Atlas project!

    Hugh

    1. Re:Javascript/AJAX is an awesome combination. by Anonymous Coward · · Score: 0

      What the hell are you rambling about?

    2. Re:Javascript/AJAX is an awesome combination. by Anonymous Coward · · Score: 0

      "Javascript/AJAX"

      The J in AJAX stands for Javascript. This is what you said:
      Javascript/Asynchronous Javascript And XML ...

      You clearly are spouting buzzwords that mean nothing to you, you twit.

  23. Mono's purpose by Peaker · · Score: 1, Flamebait

    The only purpose Mono actually serves is to feed the myth that .NET is any more portable than ordinary Win32 programming.

    1. Re:Mono's purpose by shaunbaker · · Score: 1

      being the .net programming and win32 programing have nothing in common except for the fact that you can use both to make windows programs, your argument seems a little short sighted. You can program with windows forms and use those forms on linux with mono, it actaully works pretty well. Then theres always gtk#

    2. Re:Mono's purpose by Tony+Hoyle · · Score: 1

      Actually it has a lot in common - look at the function names available... a lot of them have direct Win32 equivalents. The behaviour of those functions is the same as the Win32 functions they call.

      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.

    3. Re:Mono's purpose by MooCows · · Score: 1

      So? If I write a Java application and call the Win32 API does that make Java not crossplatform anymore?
      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.

      --
      The path I walk alone is endlessly long.
      30 minutes by bike, 15 by bus.
    4. Re:Mono's purpose by shaunbaker · · Score: 1

      i'm still confused, you can do this in java too. just stay away from system.windows and microsoft.* (although, even some of those are ported) and you are GtG. The P/Invoke stuff is there so you can move away from Win32s to .NET, but its presence != it is windows specific. You could make you own Linux.* library and do all sorts of fun linux specific stuff. A language doesn't remove the programers need to write cross-platform code, in this case, it just makes it easier.

  24. Why so many stories about mono? by t35t0r · · Score: 4, Insightful

    Why does Mono show up so many times on slashdot?

    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 .NET). I'm sure someone has written a decompiler for PDK binaries but the same thing could be done for .NET applications.

    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?

    1. Re:Why so many stories about mono? by ad0le · · Score: 1

      Modern and well thought out libraries that fix mistakes or poor design in older more mature languages.

      The power is not the language itself, it's the framework as a whole.

      --
      My mother never saw the irony in calling me a son-of-a-bitch.
    2. Re:Why so many stories about mono? by M$+Mole · · Score: 1

      Why use Mono/.NET when you have ruby, perl, php, and python? All of which are cross platform? I think the point would be that by having the same framework that MS is pushing for available on Linux allows for easier migration from Windows to Linux for those who would normally never consider such a move. The PHB's in our organization just realized that Windows is expensive (shocking, I know), but we've been working on a .NET Windows app that's already about 1.5m lines of code. I've been asked what I know about Mono on Linux, which, ufortunately is not a lot, but it at least provides some semblance of a way to move away from Windows/MS without abandoning several years of work.

      --
      Karma: Non-existant. Due mostly to the fact that you smell funny and nobody likes you.
    3. Re:Why so many stories about mono? by Mr2001 · · Score: 2, Insightful

      Why use Mono/.NET when you have ruby, perl, php, and python? All of which are cross platform?

      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 .NET). I'm sure someone has written a decompiler for PDK binaries but the same thing could be done for .NET applications.

      Actually, you can pre-compile .NET/Mono apps with a tool called ngen, which translates the IL code to native machine code to reduce startup time and make it harder to decompile.

      --
      Visual IRC: Fast. Powerful. Free.
    4. Re:Why so many stories about mono? by barryfandango · · Score: 1, Insightful

      Why does Mono show up so many times on slashdot?

      • Mono is a large, free and open-source software project.
      • It's run by Miguel de Icaza, also responsible for KDE, a well-known personality in the open source world.
      • It implements an open platform that allows us to use Microsoft-created technology on Linux and there is much debate as to whether it faces legal trouble in the future.

      So, why would mono show up often on a discussion site about the world of open source software, linux, and politics? Can you see no reason we might like to discuss this?

      In addition - ruby, perl, php and python are all interpreted languages while C# is compiled to bytecode. Java would be a much better question. Personally, I develop in C# for microsoft platforms. The idea that I could install a linux distro and start coding in my favourite language might very well tempt me into doing so.

      --
      In all matters of opinion, our adversaries are insane. -Oscar Wilde
    5. Re:Why so many stories about mono? by Anonymous Coward · · Score: 1, Funny
      It's run by Miguel de Icaza, also responsible for KDE

      Asshat. De Icaza started Gnome, for two reasons that I can see:

      • KDE wasn't GPL at the time.
      • Linux desktops hadn't yet copied ALL of Redmond's mistakes

      His goals are now complete.

    6. Re:Why so many stories about mono? by Anonymous Coward · · Score: 0

      ruby, perl, php and python are all interpreted languages

      As far as I know, Python is compiled to bytecode (what do you think those .pyc files are?), Perl is compile to bytecode (but not saved to disk), PHP is "sorta" compiled, I'm not sure, and Ruby is definitely not compiled.

      The difference between, e.g., Java and Python in this respect is actually pretty small, and not important for many purposes. I guess if you're selling shrink-wrapped software you prefer the obfuscation of Java bytecode.

    7. Re:Why so many stories about mono? by houseofzeus · · Score: 1

      PHP by default isn't but companies (mainly Zend but I believe there are others) provide systems to encode/compile them.

    8. Re:Why so many stories about mono? by m50d · · Score: 1
      Why use Mono/.NET when you have ruby, perl, php, and python?

      Because the great promise of .Net is that you can mix and match all of those in the same program. But I think the main reason is that for some reason people think Java is all "enterprise" and the only choice for large corporations. I blame sun marketing, but if you look through this thread you'll find hundreds of people repeating this. .Net gives me a way to use a nice language like Python while still being "enterprise".

      --
      I am trolling
    9. Re:Why so many stories about mono? by Dan+Farina · · Score: 1

      This is not much of a promise, as bytecode is bytecode is bytecode (although not all bytecode is create equal in terms of ease of use.)

      There are scores of Java bytecode compiled languages, very few of which actually have gotten traction. Jython is one of the more well known (whose creator now works on the CLR & IronPython for .NET), I believe there is also a Java-ized Ruby. Groovy,which has no other outside implementations, is gaining some traction. If you care, there is also Scheme.

      But times are a'changing in this respect, and I suspect Java-bytecode compiled languages will gain more traction, partially due to Microsoft's pushing. Now all it comes down to is who can win mindshare and write a faster garbage collector and a better JIT compiler.

      It is true that the CLR was supposed to unite the Microsoft languages, including such evils such as Visual Basic / VBScript, and they put more of a spin on this than say, Sun, which had no other language offerings that they intended to run on the Java JVM. Ironically, this forced some of these languages to look quite similar to C#, which upset nary a programmer used to VB6, as I have heard through the winds. I tried using sharpdevelop to convert some C# code into VB, I nearly lost my sight.

    10. Re:Why so many stories about mono? by Anonymous Coward · · Score: 1, Interesting

      You mention Ruby, Perl, PHP and Python as alternatives to Mono. Now, for one second, which of these alternatives do I choose for a project? In case I want to recycle most of my code in later projects (like every programmer builds up his own library of code over time), isn't the language choice also a one-way lockin to my future choice of language?

      With Mono and .NET, there is true language independence, and say, in one year or two there is a robust PHP implementation for .NET (there is already a first prototype port), Python (IronPython, and Boo are on a good way), and maybe Perl and Ruby some day, or a functional language (eg. Nemerle). Undoubtly the choice of robust language implementations for .NET will grow. Now, given that the code follows the CLS library specifications, I can derive, use, bind, call, etc. that code freely among the languages. The language barrier is non-existent anymore.

      This is the true freedom Mono gives to me, today. My language of choice is C#, but I don't know if it will always be. Java and .NET are here to stay for quite some time, but with Java, I choose both the language and the environment at the same time.

      Another poster mentioned projects such as JRuby, Jython, Groovy, etc., which are interesting. But Jython being around for oh so many years now, proving a stable and fast environment, has it really attracted many users from the Python community?

      Java definitely has its strength and is _the_ major player in both "extremes": the server side heavy data crunching business applications, and the embedded system portable world. But in my opinion, for the common desktop applications, it has failed. How many commonly used desktop applications using Java do you know? I am no Java geek, but the only one that is really usable that comes to my mind is Eclipse and Azureus, and even thats an application only for developers or P2P users, respectively.

      Please don't consider this a flamebait or something, I just express my feelings after developing two years on the Mono platform, which has saved me a large amount of time over my previous development environment (C, C++ on Linux).

    11. Re:Why so many stories about mono? by m50d · · Score: 1
      There are scores of Java bytecode compiled languages, very few of which actually have gotten traction. Jython is one of the more well known (whose creator now works on the CLR & IronPython for .NET), I believe there is also a Java-ized Ruby.

      Both of those (IIRC of course) are just interpreters that happen to run in Java. They make the Java API available in the client language, which is useful, but not in the same league as what IronPython does.

      Groovy,which has no other outside implementations, is gaining some traction. If you care, there is also Scheme.

      There are only two non-Java languages (well, there's a third which claims to have a compiler but tells you to wait if you try and actually get it) which can be fully compiled to Java bytecode, one of them is common lisp and I can't remember the other. Both these work by translating the code into Java rather than compiling it directly. I'm not sure even then we have languages being fully interoperable with each other, doing things like subclassing a class declared in a different language. Wheras .net is designed to do that from the start.

      It is true that the CLR was supposed to unite the Microsoft languages, including such evils such as Visual Basic / VBScript, and they put more of a spin on this than say, Sun, which had no other language offerings that they intended to run on the Java JVM. Ironically, this forced some of these languages to look quite similar to C#, which upset nary a programmer used to VB6, as I have heard through the winds.

      But languages like python or IIRC Eiffel, which have nothing to do with C#, are able to be made first-class citizens, with every bit as much status as C# in the runtime. That has never been done before, and the ironpython project was in fact started with the intention of proving it to be impossible.

      --
      I am trolling
    12. Re:Why so many stories about mono? by Anonymous Coward · · Score: 0

      python, perl & ruby are very dynamic and from what i read in the press... will be hard to impossible to port over .NET-vm...
      U may be little uninformed, but look at this page :

      http://svn.perl.org/viewcvs/parrot/trunk/languages /
      http://svn.perl.org/viewcvs/parrot/trunk/languages /LANGUAGES.STATUS?rev=9407

      as u see there is alot of work gone to support many languages over parrot-vm.
      Yes I know it is not finished yet ? But when they are I will defenetly preffer them over .net-vm.

    13. Re:Why so many stories about mono? by Mr2001 · · Score: 1

      CLR bytecode has a few advantages over Java bytecode. For example, generics: C# preserves generic type information for the JITter to use, so List actually has a different layout and its methods compile to different machine code than List. In Java, they're the same class except the compiler does type checking and automatic casts for you, which has performance implications. I suppose this could be fixed by making the Java compiler treat generics like templates, duplicating the class for each instantiation.

      CLR bytecode can also work with pointers, so you can compile any C++ code in VC++.NET and produce IL bytecode (or do something similar with C#'s unsafe code blocks). Can't do that in Java.

      --
      Visual IRC: Fast. Powerful. Free.
    14. Re:Why so many stories about mono? by Anonymous Coward · · Score: 0

      ngen doesn't actually make it harder to decompile. It only stores the native code in the local machines GAC, so it isn't like you can distribute the native code.

    15. Re:Why so many stories about mono? by Mr2001 · · Score: 1

      Ah, you're right. My mistake.

      --
      Visual IRC: Fast. Powerful. Free.
    16. Re:Why so many stories about mono? by Eyal+Alaluf · · Score: 1

      You can add to the list of Languages C# & VB.Net. We at Mainsoft (see http://dev.mainsoft.com/) have a compiler that compiles the .Net bytecode to Java bytecode and supports the C# & VB.Net languages (.Net 1.1 version with Whidbey and Generics support in the working). We do have some limitations - the most notable is no support for unsafe code, but apart from that we support the whole package, unsigned types, structs, delegates, you name it.
      And we could support in the same manner any language (e.g. IronPython) that is compiled to safe managed code.
      As for the issue of interoperability with Java - subclassing, passing classes built in C# or VB.Net to Java and vice versa, the interoperability is complete. You can inherit in VB.Net from Java classes, Java classes can inherit from C# classes, you can use Java classes without any bridge or intermediate layer, etc.

    17. Re:Why so many stories about mono? by m50d · · Score: 1

      Well, that is something impressive. But having looked at both bytecodes, if that's possible wouldn't it be just as easy (easier in fact) to do it in the other direction, compiling java bytecodes to .net ones? In which case both basically support the same things.

      --
      I am trolling
    18. Re:Why so many stories about mono? by Eyal+Alaluf · · Score: 1

      The opposite direction is even easier and you should look into IKVM which is an open source implementation of compiling bytecode from Java to .Net. Grasshopper is tuned for Java where you'd like to add new applications to a J2EE application server. We wanted a non-intrusive solution that does not replace the VM of an application server that could be mission critical. Deploying Java class files (in jars that are inside wars, inside ears, etc.) is much less intrusive. When something doesn't work it is only the deployed application that throws an exception and not the whole application server crashing. We also rely upon the more mature Java VM implementations that exist in good shape in all the platforms we need. Mono is still young, and we are sure it will reach the same quality level and spread as the platforms we need, but this will take significant time. It will take even more time to convince the world that it can replace its Sun (or JRockit, or IBM) Java VM) with Mono!

  25. but it's non-free by themusicgod1 · · Score: 4, Insightful

    details. I will not use java, for anything, so long as licenses like theirs are forced upon it. With java, you are always a second class citizen.

    --
    GENERATION 26: The first time you see this, copy it into your sig on any forum and add 1 to the generation.
    1. Re:but it's non-free by Pastis · · Score: 1

      Just use the Free implementations. Classpath and co.

    2. Re:but it's non-free by smartin · · Score: 1

      And .net is free and unencumbered?
      hahahahahahahahahahahahahahah

      --
      The difference between Canada and the USA is that in Canada healthcare is a right and gun ownership is a privilege.
    3. Re:but it's non-free by Quantum+Jim · · Score: 1

      Question: IANAL, so I'm confused. That seems, to me, to be a wrong conclusion by the Debian people. I agree that the license fragments listed by them indicate that:

      Basically, this means that if you implement any part of the new 1.2 API or Jini API, even from scratch, Sun will "own" your implementation and you will have to pay them for the right to use it. (source)

      Does the following paragraph from satisfy those concerns:

      However, the license for the documentation of said interfaces states:

      NOTICE; LIMITED LICENSE GRANTS: Sun Microsystems, Inc. ("Sun") hereby grants you a fully-paid, non-exclusive, non-transferable, worldwide, limited license (without the right to sublicense), under the Sun's applicable intellectual property rights to view, download, use and reproduce the Specification only for the purpose of internal evaluation, which shall be understood to include developing applications intended to run on an implementation of the Specification provided that such applications do not themselves implement any portion(s) of the Specification.

      That seems, to me, to say that you can use the documentation to write an application that uses the specs. So Sun does not "own" any application that uses the spec to Java. Note that interfaces and classes designed to be implemented or subclassed in the Java sense of those words are being used as intended, so I think that "implements a spec" is different from implements in the Java sense. That is, implemening java.util.Iterator doesn't make your code an implementation of the spec.

      Implementations of the spec, it seems to me, is software that runs applications that use the spec. Like a JVM and its associated classes/interfaces for instance. In those cases, the following holds:

      Sun also grants you a perpetual, non-exclusive, worldwide, fully paid-up, royalty free, limited license (without the right to sublicense) under any applicable copyrights or patent rights it may have in the Specification to create and/or distribute an Independent Implementation of the Specification that:

      1. fully implements the Spec(s) including all its required interfaces and functionality;
      2. does not modify, subset, superset or otherwise extend the Licensor Name Space, or include any public or protected packages, classes, Java interfaces, fields or methods within the Licensor Name Space other than those required/authorized by the Specification or Specifications being implemented;
      3. passes the TCK (including satisfying the requirements of the applicable TCK Users Guide) for such Specification.

      (source)

      That basically states, to me, that you can't implement a core class that deviates from its spec. Since the entire specification is a set of specs of individual classes, you can choose which classes you support (as long as they fulfill the contract specified by the docs). So in that way you are not allowed to intentionally write incompatible software.

      I don't know if that is a good thing or not, but it doesn't seem as bad to me as what you and Debian are implying. However, I am probably wrong as IANAL and often get confused by this license stuff. Can anyone help me?

      --
      It is impossible to enjoy idling thoroughly unless one has plenty of work to do.
      - Jerome Klapka Jerome
    4. Re:but it's non-free by TheNarrator · · Score: 1

      A lot of Sun's licensing strategy for Java was intended to keep Microsoft from continuing with Visual J++ and stealing the whole Java standard out from under them via embrace and extend. Microsoft continued to break Java so they got sued and Sun made a whole lot of money off of the settlement. If they had BSD licensed it Microsoft would own the Java standard now just like they own the office document standard, multimedia standard, etc. Because their apps dominate and are purposefully incompatible with all others.

  26. Java has language independence too! by TheNarrator · · Score: 4, Informative
    Perhaps the most important benefit of using the Mono architecture is that you gain language independence.

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

    1. Re:Java has language independence too! by Mr2001 · · Score: 1

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

      Mm, not really. C++/CIL (nee Managed C++) is closer to the metal of .NET. VB.NET has a ton of late binding support, C++ has pointers to boxed types, both have named indexers.. none of which are in C#.

      --
      Visual IRC: Fast. Powerful. Free.
    2. Re:Java has language independence too! by Anonymous Coward · · Score: 0

      You're totally missing the point of language-indepencence. How about using both a library written in Fortran and one in C, both from your application partially written in C#, partially in C++? Can one single Java implementation do that, even with all the SF projects you mentioned?

      And don't get me started about all the language features that Java lacks. Seriously, C# 2.0 vs. Java 1.5 is not a fun game.

    3. Re:Java has language independence too! by m50d · · Score: 1

      It's not there in Java. There are lots of interpreters running in Java, which is most of what you list, and some of them let you access the Java API from those languages. What you can't do is access them from each other - there is no way to make an [incr tcl] class and then subclass it in Python, or even as far as I can tell call functions in one non-java language from another. With .net you can do that.

      --
      I am trolling
    4. Re:Java has language independence too! by Jussi+K.+Kojootti · · Score: 1
      each language is really more of a "skined" version of C#
      So Ada, Lisp, python and Logo are skinned versions of C#? That is Informative!

      Start with http://www.go-mono.com/languages.html, maybe check IronPython and Boo too.

      Looking a little bit further, there might be some very interesting times ahead, since Ximian people have said that it's now possible (a lot of work, but possible) to add Mono support into gcc, to make it generate CIL! If that really became reality it would mean that you could write C, C++, Fortran, Objective-C and Java for Mono.

    5. Re:Java has language independence too! by icepick72 · · Score: 1
      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#

      The problem is VB.NET is not very compatible with VB, which doesn't necessarily prove anything about .NET itself. Both VB.NET and C# represent object-oriented programming built on the .NET concepts. If VB.NET looks like a skinned version of C# then it's the other way around too -- both sit atop the .NET frameword to acheive that perception. Any new languages introduced to the .NET framework will also look like ".NET" but not specfically c#.

    6. Re:Java has language independence too! by Anonymous Coward · · Score: 0

      Jython was the creation of Jim Hugunin, who is now at MS creating IronPython, a C# version of Python. His demos of IronPython show that it is as fast or faster that CPython in many situations. You can now have you cake and eat it too - an interpreted language that runs at compiled speeds with security to boot. I'm not an MS fan, but this is exciting.

  27. Where are the apps? by CyricZ · · Score: 1

    While Java is often suitable for enterprise apps or web based apps, it just isn't useful for consumer-grade application development. That's why we haven't seen any serious and widely-accepted office suites or web browsers written in Java, for instance, even after ten years.

    --
    Cyric Zndovzny at your service.
    1. Re:Where are the apps? by Decaff · · Score: 3, Informative

      While Java is often suitable for enterprise apps or web based apps, it just isn't useful for consumer-grade application development

      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'!

    2. Re:Where are the apps? by Anonymous Coward · · Score: 0

      "That's why we haven't seen any serious and widely-accepted office suites or web browsers written in Java, for instance, even after ten years."

      This argument is flawed, for example let's take the top office suite and the top web browser; MS Office and Internet Explorer. Now what incentive do they have to re-write the entire project in a new language when they have millions of lines of code currently implemented? These major desktop applications are using very old code bases and people are not going to jump at the opportunity to port the entire project to a new language without serious (most often immediate) benefits. I don't see them jumping at the opportunity to recode these applications in C# either.

    3. Re:Where are the apps? by m50d · · Score: 1
      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.

      I've tried them. I want to like Java, the idea is good. But Java on the desktop really sucks just because swing is so pathetically slow. I've tried to use things like azureus, jedit, lovely applications if you have the supercomputer needed to run them at a usable level of performance. Remember the average home computer is still slower than 1ghz, something it's easy for leading edge slashdotters to forget. Java for the desktop PC simply isn't consumer-grade.

      --
      I am trolling
    4. Re:Where are the apps? by FooBarWidget · · Score: 1

      Yeah, and if you read forums on the Internet, you'll see that everybody is always complaining that those apps are slow (slow in the sense of they-hog-so-much-memory-that-my-computer-dies-from -swapping, not CPU usage).

    5. Re:Where are the apps? by ThJ · · Score: 1

      If Sun would only fix the memory problems in their JVM.

    6. Re:Where are the apps? by Decaff · · Score: 1

      Yeah, and if you read forums on the Internet, you'll see that everybody is always complaining that those apps are slow (slow in the sense of they-hog-so-much-memory-that-my-computer-dies-from -swapping, not CPU usage).

      Perhaps 5 or 6 years ago. Now I usually only see such complaints on Slashdot where there seems to be a puzzling reluctance to accept that technologies can change in half a decade!

    7. Re:Where are the apps? by Decaff · · Score: 1

      But Java on the desktop really sucks just because swing is so pathetically slow.

      Try a modern JVM - late 1.4.x or, even better, 5.0. The Swing performance has improved dramatically.

    8. Re:Where are the apps? by andersbergh · · Score: 1
      Perhaps 5 or 6 years ago. Now I usually only see such complaints on Slashdot where there seems to be a puzzling reluctance to accept that technologies can change in half a decade!
      Cut the crap. My computer has 512MB DDR RAM, and each time I use a Java application it starts swapping LOADS. The computer is nearly UNUSABLE due to all swap usage.

      I'll start Eclipse, to tell you how much RAM the JVM will use (it might be a shock for you!).

      While trying to start Eclipse, it takes 5 minutes with lots of CPU and HDD activity until it is finally loaded. I can feel how switching windows, opening menus etc is slow due to all the swap usage.
      $ free -m total used free shared buffers cached Mem: 497 491 5 0 0 43 -/+ buffers/cache: 448 49 Swap: 917 575 342
      Nice numbers, eh? It's horrible to use the computer when it's using that amount of swap. While other applications, not being written in Java, start in less than a second, feel much faster, close much faster.
      Saying Java is performing nearly as fast or even faster than C++ is BULLSHIT.
      My Java version:
      $ java -showversion java version "1.5.0_03" Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_03-b07) Java HotSpot(TM) Client VM (build 1.5.0_03-b07, mixed mode)
    9. Re:Where are the apps? by andersbergh · · Score: 1
      And I see that I used instead of
      and that Slashdot doesn't support
    10. Re:Where are the apps? by Decaff · · Score: 2, Informative

      Cut the crap. My computer has 512MB DDR RAM, and each time I use a Java application it starts swapping LOADS. The computer is nearly UNUSABLE due to all swap usage.

      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.

      I'll start Eclipse, to tell you how much RAM the JVM will use (it might be a shock for you!).

      It's an IDE for goodness sake! They are some of the largest apps.

      Mind you, the NetBeans IDE can run quite happily in moderate memory. In fact, if you look at the IDE config file for NetBeans 4.1 you will see that the IDE is by default not allowed to use more than about 90-100MB.

      In fact, I have just started it giving it a maximum memory of 64MB.

      Try it yourself! I am using Java 1.5.0_04 and NetBeans 4.1. The configuration file within the netbeans install directory is etc/netbeans.conf.

      So, on a 512MB machine, it isn't causing swapping. (It never does on my PCs, which have this memory).

      Saying Java is performing nearly as fast or even faster than C++ is BULLSHIT.

      If it is, then it is bullshit backed by considerable evidence. Last year there was a study of java speed for numerical work, using the well-known Linpack benchmark:

      http://www.shudo.net/jit/perf/

      Java 5.0 usually came within 5-10% of optimised C++.

      So, I am sorry, but you are plainly factually wrong.

      If you don't believe me, again, try it yourself. The source code for these benchmarks is available.

      You may also be interested to know that Java is now so fast it can be used for real-time device control and AI systems. Boeing use Java for robotic and autonomous experimental planes, and one of the entrants for this years robotic road race has its software entirely in Java.

    11. Re:Where are the apps? by m50d · · Score: 1
      Try a modern JVM - late 1.4.x or, even better, 5.0. The Swing performance has improved dramatically.

      I have, last one I tried was iirc 1.5.04. It still sucks to the point of being unusable on an 800mhz system. I'm using linux, maybe the windows JVM performs better.

      --
      I am trolling
    12. Re:Where are the apps? by Decaff · · Score: 1

      I have, last one I tried was iirc 1.5.04. It still sucks to the point of being unusable on an 800mhz system. I'm using linux, maybe the windows JVM performs better.

      I'm puzzled. What exactly sucks? I know people who use, for example, the NetBeans IDE on Linux and Windows on machines of that spec. There are no performance problems at all with the Java 5.0 VM either in terms of general use or the GUI.

    13. Re:Where are the apps? by m50d · · Score: 1
      I'm puzzled. What exactly sucks?

      GUI responsiveness. Click a menu button and wait literally half a second for the menu to appear. Click an OK button and the dialog hangs around with it pressed for a couple of seconds. And even while this slow it's still taking all the CPU, if I try and run (for example) an mp3 player at the same time the song starts skipping. Startup times are also pathetic (20s for a text editor) but that's excusable

      I know people who use, for example, the NetBeans IDE on Linux and Windows on machines of that spec.

      I've tried azureus (the best bittorrent client around if it wasn't so slow as to be unusable, yaggui (more for the sake of a comparison with other gift clients since it's less featureful), and jedit (nice, but again unusable for me), possibly some others I've forgotten about.

      There are no performance problems at all with the Java 5.0 VM either in terms of general use or the GUI.

      People always say this, but my experience is that it's simply not true.

      --
      I am trolling
    14. Re:Where are the apps? by Decaff · · Score: 1

      GUI responsiveness. Click a menu button and wait literally half a second for the menu to appear. Click an OK button and the dialog hangs around with it pressed for a couple of seconds. And even while this slow it's still taking all the CPU, if I try and run (for example) an mp3 player at the same time the song starts skipping. Startup times are also pathetic (20s for a text editor) but that's excusable

      Sorry, but I simply don't find this! As a test, I have tried running NetBeans in a small (these days!) amount of memory (64MB). It runs fine and the GUI response is instant - no menu delays, no dialog delays. I have tried a basic text edit - the notepad demo provided with Java, and that starts up in 2 seconds. To make sure I had the same situation as you, I have installed JEdit. Starts up in 3 seconds.

      This is a 2GHz machine, 512MB memory, Java 1.5.0_04.

      "There are no performance problems at all with the Java 5.0 VM either in terms of general use or the GUI."

      People always say this, but my experience is that it's simply not true.

      I'm not saying you aren't having performance problems; I am simply suggesting that they aren't typical, and can't be used to generally criticise Java.

      I used to be severely critical of Java (and Swing in particular) for being far too slow to use and simply not practical. However, these days, I just don't find that anymore.

    15. Re:Where are the apps? by lmoroney · · Score: 1

      I'm not sure about 'more' or 'less' suitable, but when building enterprise apps, there's lots of app infrastructure that usually needs to be built, for threading, scaling, security, management etc. J2EE implements a bunch of that for you on an app server if you build your app as EJBs (in particular) for that app server. So many companies opt to buy, and not build, that infrastructure (smart choice) and not go with .NET for large scale enterprise apps. It's not that Java is better than .NET for enterprise apps, its just that there are cheap app servers available that will save you tonnes of $$$ in dev costs.

    16. Re:Where are the apps? by anomalous+cohort · · Score: 1
      I have, last one I tried was iirc 1.5.04. It still sucks to the point of being unusable on an 800mhz system. I'm using linux, maybe the windows JVM performs better.

      I'm puzzled. What exactly sucks? I know people who use, for example, the NetBeans IDE on Linux and Windows on machines of that spec. There are no performance problems at all with the Java 5.0 VM either in terms of general use or the GUI.

      I haven't seen performance problems that would differentiate Java from any other platform in quite some time. Eclipse and VS.NET run about the same when it comes to responsiveness. jGnash runs as fast as GnuCash or even Quicken for that matter.

      I haven't run NetBeans in a long time so I cannot comment about that. Eclipse runs slower on Linux than Windows but Gantt Project, Umlet and Visual Paradigm run about the same. Curiously enough, Poseidon runs much slower on Linux than Windows.

    17. Re:Where are the apps? by anomalous+cohort · · Score: 1
      it just isn't useful for consumer-grade application development

      I believe that the popularity of this game parallels that of EverCrack. It is my understanding that the client is written in Java.

  28. It's the tools by somerandomstring · · Score: 3, Insightful

    Why Mono? The answer is extremely clear: outstanding tools.

    Microsoft has some of the best development tools around, and the best of their stuff targets .Net. That being the case, and seeing that windows developers largely use MS tools, it stands to reason they'd find targeting Linux via Mono the path of least resistance.

    1. Re:It's the tools by killjoe · · Score: 1

      VisualStudio.NET + C# = IntellijIDEA + Java = Eclipse + java = netbeans + java

      Visual studio may seem like a godsend to VB developers but java developers have been spoiled by the likes of eclipse and intelliJ for years now. VS doesn't even have refactoring yet (coming any day now in 2005 years after everybody else had it).

      --
      evil is as evil does
    2. Re:It's the tools by Anonymous Coward · · Score: 0

      I have to agree -- and as I posted earlier -- there's another path to Linux or other OS/s for platform independence which is part Mono, part VS.NET.

      It's called Grasshopper (go look for it on /. ) -- it cross compiles MSIL into Java Byte Code.

      You code, debug, deploy from VS.NET in C# or VB.NET. You run on a JVM. It's as simple as that.

      How do they do it? By using their own compiler to compile Mono into Java Byte Code! :) How cool is that?

    3. Re:It's the tools by Eyal+Alaluf · · Score: 1

      It's too difficult to compare IDE's and say this one is the best or that one is the best. The point is that Visual Studio has its community of developers that like it very much, know it very well and as you said look at it as if it was a Godsend to them. For this community opening Linux and cross platfrom from Visual Studio is a great innovation. They can now utilize their skills and knowldege and reach beyond what they could reach before. Mono does it and Grasshopper (from Mainsoft) does it as well. Grasshopper is the J2EE configuration for Mono allowing .Net developer to target Java & J2EE from Visual Studio.Net. Suddenly, your average VB.Net developer can develop a Web application using ASP.Net with Visual Studio.Net WYSIWYG and deploy on WebSphere! This opens new frontiers...

  29. Mono!==.NET by Anonymous Coward · · Score: 0

    "One of the great advantages of Mono for current .NET developers is providing an easier migration path to Linux."

    You have that backwards

    [Mono to Windows .NET]
    Addition of various Windows specific code.

    [Windows .NET to Mono]
    Removal of various Windows specific code.

    So basically a pure Mono app that becomes popular, will run easier on Windows, but the reverse will not always be true.

  30. Re:Mono is dangerous by Trigulus · · Score: 1

    Can you provide examples of the patents? Thought not.

    --
    If something exists that does not need a creator (god) then why must the cosmos need one?
  31. GUI applications by DynamiteNeon · · Score: 4, Interesting

    Don't get me wrong, I happen to like both C# and Java, but if I have to create a gui app on windows for some reason, C# and .net wins hands down.

    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.

    1. Re:GUI applications by Decaff · · Score: 1

      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.

      Have you actually tried running OpenGL/DirectX accelerated Swing apps with Java 5.0? I suspect you may be surprised at how Swing has changed over the years.

    2. Re:GUI applications by Anonymous Coward · · Score: 0

      Qt?

    3. Re:GUI applications by loossy · · Score: 1
      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.
      Ever heard of limewire or Intellij IDEA, try that IDE and see how it compares to VS.NET, i think you will be pleasantly surprised ;)
    4. Re:GUI applications by Anonymous Coward · · Score: 0

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

      OK. Here's two.

      ProjectX: http://www.doom9.org/index.html?/DigiTV/projectx-f ullguide.htm Video processing is a resource-intensive job. This program can blow the doors off.

      Poseidon: http://www.gentleware.de/ - a UML design tool with fluid graphics. Once I saw how smoothly the 2-dimensional scrolling worked, I forever gave up believing that Java couldn't be a performance language.

    5. Re:GUI applications by El+Rey · · Score: 1

      Check out the apps here:

      http://www.jgoodies.com/

      JDiskReport in particular is fast and a nice GUI. Doesn't look native on Windows, but still quite nice.

  32. Easier Path to Linux? by tjasond · · Score: 2, Interesting

    I've been working with C# since .NET 1.0 Beta 1 and with Java since 1.2. When it first came on the scene, my initial reaction was very favorable to C#. Creating and consuming Web Services was incredibly easy (this was 2001, when SOAP had just arrived), and the builtin event/delegate model of .NET made event handling much more intuitive then Java.

    Then along came Eclipse, which breathed new life into the Java development experience. Nowadays, Eclipse has become an integral part of using Java; most folks I know don't think twice about the IDE they'd choose to develop Java in. The best part of all this is that Eclipse is cross platform as well, which allows me to switch operating systems without hesitation. This could definitely be considered a path to Linux (and in fact, it has been for me).

    In the same way, Visual Studio .NET enhances productivity in .NET programming, although it is far inferior to Eclipse by way of refactoring tools, incremental compile, and plugin support. Even so, any productivity benefits reaped from using Visual Studio cannot be experienced in Linux, because Microsoft will not port Visual Studio to it.

    The easier path to Linux doesn't come down to a language or its Virtual Machine. In the development world, it comes down to your development environment, which is at the core of what a developer does everyday.

    1. Re:Easier Path to Linux? by Jamie.Barrows · · Score: 1

      I totally agree. The language is no longer as important as the IDE. I program using Visual Studio, and the hardest thing for me is not learning new languages, or writing apps in those laguages. The hardest thing is getting comfortable in a new IDE. personally I like Java as a language, but I don't do much progamming in it since I am not very comfortable with any of the Java IDEs out there. I really don't care what language(within reason, not all languages are appropriate for what I do) I'm using, but if I am not comfortable with the IDE then programming is a chore. Most of the time I just want to get it done. Doing it in an environment that I am not comfortable in slows me down. That said, I really should try to get comfortable with Eclipse. Even though Visual Studio is a great IDE, it isn't free or portable. One of these days I'll put the time into it.

      --
      For a list of all the ways technology has failed to improve the quality of life, please press three. -- Alice Kahn
    2. Re:Easier Path to Linux? by Anonymous Coward · · Score: 0

      The best part of all this is that Eclipse is cross platform as well, which allows me to switch operating systems without hesitation.
      It is not true. Java is multiplatform, but .NET is far better choice on windows. And the 95% of customers are uses windows and not linux, and IMHO it is never will change. The linux platform is very nice but not too important. And IMHO the future of the .NET on windows more certain, the new windows features probably will be supported only on .NET.

      In the same way, Visual Studio .NET enhances productivity in .NET programming, although it is far inferior to Eclipse by way of refactoring tools, incremental compile, and plugin support.
      Have you ever seen the new Visual Studio 2005 ?
      And IMHO the plugins are not too good things. Without plugins Eclipse is not too useable, but most of plugins are exnternal projects and hardly depends on the version of eclipse. And if the development of your favorite plugin discontinued you can't upgrade your eclipse.

      And yes, Eclipse is free. But if you want to pull up to VS2k5 level you must buy many commercial (and not too cheap) plugins for JSP/JSF editing, Swing Visual editor (the VE project is a joke, it is slow like a hell), etc. And you never have useable databinging, and the java language is always will be weak if you compare it to C#, the C# and the .NET platform is grow up very fast.

  33. .NET not for Macs, or Linux.. by lord_of_the_apes · · Score: 1

    .Net was created basically for creating appliacations for Windows Platform only. Yes, Mono is a great idea for non-windows users to use C#. But, .NET in my opionion its best advantage is to create software/ webservices/web applications that are linked to Windows OS. Corporations, mid-level business, small business and e-commerce that use Windows will benefit more in .NET than Java. But, in the long run .NET will be the dominate player for Windows applications, Windows Vista, Pocket PC, and I.E and Windows Webservices. Java is great for all O/S and .NET is great for Windows O/S, In reality, the Windows O/S is the dominate O/S in business, corporations, small business. The best bet is to have Java and C# in your resume. Than you have both of both worlds.

  34. Java Vs C# by Rac3r5 · · Score: 3, Interesting

    I've been programming since I was in Gr. 5. From all the languages I've ever programmed in(BASIC,dBase, Java, C/C++, C#, Assembler etc...), my favourite is Java and C#.

    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 :(

    1. Re:Java Vs C# by mottie · · Score: 1

      I've been programming since I was in Gr. 5 Wow, programming for a 2 whole years! Congrats!

    2. Re:Java Vs C# by m50d · · Score: 1
      Apologies if you have, but: try a real high-level language sometime, something like Python (personal favourite) or Ruby. You won't know how much you're missing in Java and C# until you do.

      /supporting .net because it has some nice languages as first-class citizens

      --
      I am trolling
    3. Re:Java Vs C# by Decaff · · Score: 1

      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.

      Only specialised Java code (such as applets) runs in a sandbox. Other code can do anything you like. You can interface with C code using JNI.

  35. anonymous reader = ibm employee by Anonymous Coward · · Score: 0

    Great IBM plants on slashdot to go with the IBM plants on osnews. Are you people stupid - IBM are only interested in open source to expand their consultancy business.

  36. Decent IDE by Anonymous Coward · · Score: 0

    It it too bad that Mono's chief IDE, Monodevelop (http://www.monodevelop.com/), has hardly been updated in a long time, let alone support any of the nice code completion and autodocumentation that MS VStudio supports.

    Furthermore along these lines, it is just too bad that KDevelop does not support extensive code completion for other self-documenting languages like Python.

  37. Agreed... by Burz · · Score: 4, Insightful

    Mono will always be on the fringes of acceptance like WINE... Never quite compatible and necessitating that you keep returning to Windows at least semi-frequently for that last bit of missing compatability.

    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.

    1. Re:Agreed... by syncomm · · Score: 2, Informative

      Mono will always be on the fringes of acceptance like WINE... Never quite compatible and necessitating that you keep returning to Windows at least semi-frequently for that last bit of missing compatability. How is this insightful?! These claims are flamebait and based on absolutely no evidence. The fact is .NET/C# is ANSI and public. It is not an "emulator", but rather an implimentation. There is no semi-frequently returning to Windows about it.

    2. Re:Agreed... by korgull · · Score: 1

      I can't call VS a decent IDE. I do miss a lot of features which some open source IDE's have.
      Fortunately I don't need to do any large projects with VS, so I don't have to look for an alternative for my work, but in case I would need to do large projects with it, I wouldn't be happy with VS.

    3. Re:Agreed... by Burz · · Score: 1
      ANSI will protect you from MS about 1/10th as much as W3C protected web developers/users from said-same monopolist.

      WINE also "Is Not an Emulator." It mainly implements Windows APIs under Unix-like OSes. In that sense, it is even more straight-forward than Mono's JIT + APIs. Both WINE and Mono projects must, all by themselves, cope with "interesting out-of-spec behavior" from the MS products. Is MS party to any certification effort for alternate JIT and API implementations? No. And my info may be out of date but ECMA had no such process either, last time I checked.

      According to the Mono project page, Mono is "Based on the ECMA/ISO standards". It has no certification, nor does Microsoft's own product! The monopolist does not have to certify, so they can pull the interoperability run out from under Mono in innuerable ways.

      OET: Let's talk about actual use of Mono by enterprise developers. Many of them are concerned about the lack of standards in some of these new areas. When you say Mono's 'ECMA core' is complete what do you mean? Do you have actual ECMA certification?

      de Icaza. There's no such thing as ECMA certification.

      OET. So how do we know you're ECMA core complete?

      de Icaza We've gone through the entire spec and we implemented everything in the spec, we believe. It might not be the case, but there is no certification.

      OET I see. So if a vendor has an issue that Mono may not be ECMA compliant, would they say anything?

      de Icaza Well they can report a bug...


      So you are standing in the same forest as WINE but with a near-useless figleaf of a standard that 98% of .NET devs care nothing about.

      Meanwhile alternate implementations of Java continue to pass Sun's active certification process.

      Have a nice day.
  38. Motivation is what matters by Weaselmancer · · Score: 2, 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.

    --
    Weaselmancer
    rediculous.
  39. Apples and Oranges by AtOMiCNebula · · Score: 3, Interesting

    Mono isn't produced by Microsoft, so it's unfair to compare Mono to Sun's JRE. Yes, Sun requires you to fetch the install file yourself (at least with Gentoo's Portage). But Mono is a GPL thing run by people not affiliated with Microsoft.

    You can't compare the two. Try comparing Mono and Blackdown instead.

    1. Re:Apples and Oranges by cortana · · Score: 1

      That's no good either.

      Now, a better comparision would be mono vs. jikes+sablevm, fastjar, sablevm and classpath-tools--but these tools are not capable of running most Java software.

    2. Re:Apples and Oranges by Jamie+Lokier · · Score: 0
      Now, a better comparision would be mono vs. jikes+sablevm, fastjar, sablevm and classpath-tools--but these tools are not capable of running most Java software.

      That's ok: Mono isn't capable of running most .NET software either (i.e. every .NET program with a GUI using Windows.Forms).

      -- Jamie

    3. Re:Apples and Oranges by cortana · · Score: 1

      But I don't give a shit about such applications. Mono lets me run Beagle and Tomboy. I don't see any similar applications being written with java-gnome.

    4. Re:Apples and Oranges by compass46 · · Score: 2, Informative

      Mono has multiple licenses, depending on what part of the framework you are talking about.

      http://www.mono-project.com/FAQ:_Licensing

    5. Re:Apples and Oranges by Ambassador+Kosh · · Score: 2, Interesting

      Reality does not have to be fair. It is easier to install mono then the sun jvm or any other jvm for that matter and so it will get used more and depended on more. It comes down to the path of least resistance and people will tend to use c,c++,perl,python,ruby as first choices, mono stuff as a second and java farther out mostly because of how easy it is to install that stuff and how standard it is.

      I know when writing python software when I need something outside the standard lib the first place I look is the debian package archives. If there is a package in the archive that can do what I need then it will get the first shot at me using it, if it works without problems I won't look further. The reason is simple I have a lot of work to get done and not enough time to do it all and if something works and was easier for me to get working then why look further especially if it got the job done?

      Java has that problem, it takes a lot more effort to use it then to use something else that will still get the job done.

      --
      Computer modeling for biotech drug manufacturing is HARD! :)
    6. Re:Apples and Oranges by Jamie+Lokier · · Score: 2, Insightful

      Curiously, I don't give a shit about Beagle and Tomboy. But your and my personal application interests aren't relevant. The point stands: Because Mono is (currently) a useful but incomplete implementation of .NET - because it's missing a widely used component - it's perfectly sensible to compare it with open source implementations of Java which are also useful but missing some components.

  40. ...mount a Vespa motorbike engine in your Ferrari. by instinctdesign · · Score: 3, Funny

    Linux: Creating .NET C# Applications for Linux

    And tune in tomorrow for our feature on how to mount a Vespa motorbike engine in your Ferrari.

    --
    forma3
  41. Much smoke, small fire by FishandChips · · Score: 1

    What exactly is the point of Mono? Here I am running a Linux distro. In order to get with the C#/mono/whatsit scene I have to installed about 20 megs of libraries and stuff just to get - what? A photo sorter, note-taker, a file searcher and maybe a couple of other utilities, all of them matched or bested by conventional gtk/QT apps. Is this all Mono has managed to get together? It seems rather a lot of work with not much to show for it. At least with Java I get Azureus which is a solid and extremely useful program not bested by Gtk/Qt one (as yet).

    --
    Las qué passoun
    tournoun pas maï
    1. Re:Much smoke, small fire by Anonymous Coward · · Score: 1, Informative

      How large is your GTK suite of libraries?
      How large is your QT suite of libraries?
      How large is the Java runtime?
      How large is X windows?

      20 megs for a comprehensive framework like Mono isn't large.

      (`apt-get instal emacs21` tells me that I need 42MBs of space!)

  42. Not for me by vandan · · Score: 2, Interesting
    If the goal is to make it easier for .NET developers to jump ship, then I suppose that sounds OK ... kinda. But it also makes it easier for Linux developers to write .NET stuff, and I don't feel so good about that.

    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

    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 .NET, especially when Microsoft have such a war-chest of lawyers. Why not concentrate on our technology, and if people want to move to it on it's merits, they will. It's much more likely they'll see the merits if we present them with our technology, rather than an imitation of Microsoft's.

    And remember, as a wise man ( OK, it was Dubya, but anyway ) once said:

    We can outcompete with anybody
    1. Re:Not for me by cr@ckwhore · · Score: 2, Informative

      Actually, it's not "mimicking" anyting ... .NET is Microsoft's implementation of the Common Language Infrastructure, which is an ECMA (international) standard. Microsoft co-sponsored the submission of the CLI along with other companies, but it is by no means a proprietary "Microsoft thing".

      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) implementation in Mono is basically complete.

      The problem right now doesn't sit with the c# language or Mono... the problem is that an appropriate cross-platform gui/widget set doesn't exist. GTK# shows some promise, but is slow to be adopted. Windows.Forms (Microsoft's GUI implementation for the CLI) *is* proprietary, and thus, has proved difficult to implement on platforms other than Windows. BUT, let's not confuse the implementation of Windows.Forms with the CLI/Mono because they really don't have much to do with each other.

      Additionally, Mono is NOT the only non-Microsoft implementation of the CLI. dotGNU Portable.net (www.dotgnu.org) is another -- and I'm sure there are more.

      Feel free to educate yourself on the CLI and it's background by starting here:

      http://www.dotnetexperts.com/ecma/
      http://www.ecma-international.org/publications/sta ndards/Ecma-335.htm

      --
      Skiers and Riders -- http://www.snowjournal.com
    2. Re:Not for me by vandan · · Score: 1
      The question still remains: why?

      Why put so much effort into a platform that is Microsoft's baby? Yes I realise that large parts of .NET are open standards. That doesn't detract from the fact that Microsoft could very well have more to benefit from Mono than Mono users / developers. It also doesn't preclude legal actions - particularly around future developments. What is stopping Microsoft from allowing Mono and other projects to flurish for a few years, and then coming out with .NET2 that includes proprietary stuff under a RAND license?

      It is particulary naive ( and don't take this the wrong way - I'm not calling you naive ) to suggest that Microsoft will not take every action - both legal and illegal - to protect their markets and smash their competition. Or as Ballmer so elloquently put it:

      I'm going to fucking kill [ insert competition here ]


      And what's wrong with Java? Why not take all that talent and throw it at Java? Sun are already talking about open-sourcing Java. Surely investing in Java puts the open source world - not to mention everybody else - in a less precarious position that investing in Mono?

      Remember - acting illegally won't necessarily get you into trouble. Similarly, acting legally won't necessarily keep you out of trouble. What matters is how much money you have, and how much political influence you have. On both counts, Mono has none. The flip-side to this, of course, is that Microsoft has both a nearly limitless source of funds, and similar political influence. The best plan when faced with this situation is to distance yourself from threats, not saddle up nice and close to them.
  43. I might not be the first... by Anonymous Coward · · Score: 0

    to say this, but C# isn't the only language which runs on the Common Language Infrastructure, which is to say, .NET on Windows or Mono on Linux.

    But still, you say, evil Microsoft owns the standard! Vendor lock-in, oh no!
    Actually, it's an open standard maintained by ECMA. That's right, those same evil people who maintain things like the standard for javaScript.

  44. .NET is not an "open standard" by bhav2007 · · Score: 2, Insightful

    Just because you can't change a language like c# without permission from a standards agency does not free it from the influence of Microsoft. If they changed the language, then they would have to tell you for you to write with it, wouldn't they? The language syntax is not the part of .Net which is proprietary, the framework is. Microsoft is in complete control of all of their classes, namespaces, etc. They can change the setup, or expand it, and any time. More importantly, they have never and will never implement this framework themselves. In my opinion, trying to implement .Net as a cross platform language is like trying to dig with a spoon. Microsoft has never been known for it's elegant (or even competent) designs. Compare any part of the .Net framework with a better implementation, like Java, and it is clear that once again Microsoft has made something which is needlessly over-complicated, inflexible, and just designed badly. I feel more sorry for the poor fools who are trying to copy Microsofts implementation than those who are dumb enough to choose it for cross platform development over better alternatives. In my opinion, of course, speaking as someone who has spent a few years working with ASP .Net.

    1. Re:.NET is not an "open standard" by earache · · Score: 4, Insightful
      This is such a troll.

      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.

  45. What sandbox? by dougTheRug · · Score: 1

    Java doesn't run in a sandbox; the virtual machine is a process with access to all the system for the user it's running for.

    Only stupid Java applets run in a sandbox... and they're designed to run in web browsers, where a sandbox actually makes sense. But this is a far cry from your C device drivers.

  46. Who cares about portability? by thomas.mcmahon · · Score: 2, Insightful

    Who cares about portability when mono is being used to make really sweet apps for gnome. I don't care about whether these programs run on Windows, I'm just happy they run on Gnome now. Examples of sweet mono apps for gnome Beagle, F-Spot (My personal favourite), Muine, iFolder. So what does it matter that Java is more portable than C#/Mono if mono means sweet apps for Linux now?

  47. "standards" by Holerith · · Score: 1

    I confess I haven't tried MONO but I hope that the web pages it's used to generate are valid XHTML/CSS. Those that are generated by ASP.NET tend not to be.

    --
    -- Holerith
    1. Re:"standards" by jelks · · Score: 1

      Unfortunately not. Take a look at MojoPortal. Same old abyss of tag soup horror.

      It's the "Hey, it looks good in my browser, and that's all that matters, right?" mindset. They still don't get it.

      Supposedly (after being hit over the head for so long by so many folks who do get it), the upcoming VS.NET 2005 and ASP.NET 2.0 will indeed emit valid XHTML. I haven't played with the beta, so I can't verify it, but that is what they promise. (Whether it will be *sensible* XHTML is another story altogether...)

      Eventually, the Mono/MonoDevelop folks will probably get it too. Until then, enjoy the soup. :)

  48. Doing .NET with MONIO is like a 2nd class citizen by huisinro · · Score: 0, Troll

    Since MONO will always play catch up with the real Microsoft .NET platform. MONO is only a subset of the Microsoft .NET Framework with fewer functionality and poor performance. I feel uncomfortable when I know there is a better implementation out there. Another approach would be to use the unmodified Microsoft .NET Framework directly on Linux. I did some prototype, and it should work, but the it will limit to x86 platforms.

  49. For M$ use M$, Linux has no place.... by managedcode · · Score: 1

    Someone who is writing that article is either a genius or an idiot, more likely the later. Have you written any complex win apps ? Maybe not, developing and testing will be a hell... maybe ask my director he will tell the best way to run deploy them. LOL

    1. Re:For M$ use M$, Linux has no place.... by Anonymous Coward · · Score: 0

      "Someone who is writing that article is either a genius or an idiot, more likely the later. Have you written any complex win apps ? Maybe not, developing and testing will be a hell... maybe ask my director he will tell the best way to run deploy them. LOL"

      It doesn't matter what the author thinks, or has done in the past. What matters is that the author was paid to write the article. Maybe when you grow up, you'll find the 's' key, and people will start to give a shit about what you write.

  50. hardcoding for Performance tweaks? by kupci · · Score: 1
    Sorry, I don't think a "quick search on google" suffices for real research. I knew this Java Performance Tuninglink would come in handy. Yes, unfortunately it's not just the one Java zealot you point out, but folks who really know what they are doing, and C#/CLR is nowhere near performance of today's Java, it is where Java was 5 years back.

    From the article:

    And the garbage collection tweaking? They've hardcoded lots of values based on their tests "because for anybody to tweak them manually you would really have to understand the implementation of the garbage collector and what those things do". Everyone out there with production Java systems knows that what the engineers find optimal is almost never optimal in everyone else's systems, and we are grateful to have all those garbage collection parameters exposed in the JVM. Yes, it does require us to have a deeper understanding of what the garbage collector is doing, but that is the only way round, because the VM engineers cannot possibly have a deeper understand of the thousands and thousands of different applications out there. Those engineer-determined optimal values are still there of course, but as defaults in Java, not hard coded unchangeable options.
  51. Gave it a try by rabid_sith · · Score: 0

    I decided to give Mono a go (no pun meant) one day and tried running a small daytime server I'd writtin in C# with it, and all Mono would do is spit out an error about TcpListener not having any Start() method. Thanks, but I think I'll stick with .Net and plain vanilla C++ for now.

    1. Re:Gave it a try by lupus-slash · · Score: 1

      You might need to upgrade from mono 0.0.1 (before november 2001 when that class and method was added) to the latest release, mono 1.1.9.1.

  52. Re:Mono is dangerous by Anonymous Coward · · Score: 0

    See Microsoft's patent application 20030028685, "Application program interface for network software platform" covering the whole of the .NET API:
    http://appft1.uspto.gov/netacgi/nph-Parser?Sect1=P TO1&Sect2=HITOFF&d=PG01&p=1&u=/netahtml/PTO/srchnu m.html&r=1&f=G&l=50&s1='20030028685'.PGNR.&OS=DN/2 0030028685&RS=DN/20030028685

  53. Windows - Linux? by Doc+Ruby · · Score: 1

    If I have a Windows C++ .NET app running on a W2K3 server, what's it like to port that to, say, Debian 3.1? Leaving the MS-SQLServer parts aside (maybe leaving them on the SQLServer, or a separate DB porting project), how much of the original app will "just work" under Linux/Mono? Or does that depend on which .NET API is being used?

    --

    --
    make install -not war

  54. Portage by Doc+Ruby · · Score: 0

    In another post, I asked about the practicality of porting a W2K3Server .NET/C++ app to Mono. Have you seen any good examples of enterprise class porting projects like that? Do you know any consultants who specialize in that, preferably for HA/telephony, preferably in USA/NYC? We have to port that app, but we've been thinking of going to Java/Solaris. I'd love to have an "authorative" voice support my recommendation for Mono/C++/Debian, on the basis of completion time, supported by reliability (and reportability).

    --

    --
    make install -not war

  55. Novell's strategy? by Anonymous Coward · · Score: 0

    NO C#'s ".HTML" documentation => NO C# programming.

    monodoc DOESN'T WORK IN MY linux, IT requires HEAVYFUL GNOME libraries.

    Bad thanks novell by his evil plan.

  56. apt-get install is overrated by turgid · · Score: 2, 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 gather this is due to stupidity and ignorance rather than malice. The wheels of beaurocracy turn very slowly in Sun.

    1. Re:apt-get install is overrated by Ace+Rimmer · · Score: 2, Interesting

      It is not that overrated. Imagine a system dependent on JRE for some or most applications. Now you would be forced to download a huge package from Internet to get it working. Of course then you would have to setup the classpaths, ***_HOMEs and such. And what if you needed JRE for an app to setup an Internet connection or to download what you need...

      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 it in more detail). It is a serious stopper and it could be why mostly only enterprise level apps are written in java.

      --

      :wq

    2. Re:apt-get install is overrated by turgid · · Score: 1

      I see what you mean.

      Hopefully, eventually, gcj and GNU CLASSPATH will address the Java issue and provide us with Java freedom.

  57. Why Mono is Currently An Unacceptable Risk by Anonymous Coward · · Score: 4, Insightful

    Argument In Brief

    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

  58. From Java to C# by arethuza · · Score: 1
    I started using Java in early '95 and for a long time was a big fan - including designing some shrinkwrapped products and million-line plus projects.

    However, these days I favour C# for my own work. It feels like a cleaner, better thought out Java - with much nicer XML and XSLT libraries.

    The good thing about Mono is that it gives me the opportunity to port my Windows-focused open-source project (Perspective a GPL-ed WYSWIYG Wiki that can search MS Office documents) to Linux. You may ask why I wanted to focus on Windows? So that plenty of people will use it.

    Java is good, but I prefer C# - simple as that.

  59. Just stick to Java by Ray+Alloc · · Score: 0

    It already works.

  60. Just what we need... by Hosiah · · Score: 1

    Another C dialect. To go along with C, C++, Objective-C, C-99, ANSI-C, C-for-dummies, C-with-low-carbs-and-just-one-calorie, Lemony-fresh-C, tartar-control-C, low-milage-hybrid-C, son-of-C, As-the-C-turns, Sesame-Street-C, and Freddy-vs-C. And we still have a whole alphabet to go through!

    1. Re:Just what we need... by Anonymous Coward · · Score: 0

      You've listed...err...three-and-a-half dialects of C. Namely C89, C99, C++ and Objective-C, seeing as ANSI C is either C89 or C99.

    2. Re:Just what we need... by jlandheer · · Score: 1

      How about "Vitamine C" :) Sounds more healthy!

    3. Re:Just what we need... by El+Rey · · Score: 1
  61. Mono is easy by sygin · · Score: 1

    I come from a Windows Delphi background. I have looked at Java and from my brief experiences with it I have found it very "foreign". The learning curve, for me,  is be very steep.

    Using .Net on windows and now Mono with Linux I can create applications with a very small learning curve. C# has been influenced by Object Pascal, and a lot of the design decisions or it was based off the Delphi experience.

    As a bonus, the applications I create with MonoDevelop and Mono run on Windows. I can also easily port my Mono work to Windows .Net and vice versa.

    For Windows there is a free IDE called SharpDevelop and for Linux there is MonoDevelop and Glade.

    I belive that Mono has a bright future on the Linux platform.

    --
    Don't make your problems my problems!
  62. Who cares about Java vs. C# by Pecisk · · Score: 1

    For my mind, they are somehow equal - they are both interesting languages, good for developers, allows to produce code fast and without big gliches. There are some problems with distribution of support for them - which I find quite sad. For Java - hell, Java is good, I have to admit now when I have coded in it for some five months - there is distribution problems. I know that Sun maybe have good reasons not to allow distribute it's JRE for thirty party, but I would like to see this thing sorted out. For those saying that Java is not open standard - what make 'open standard'? For me, Java is good in that level that every aspect of language is clearly thought try. I would like to check Mono - and see if it goes the same way. If it is so, good for non-MS business, because they have modern, portable, cross-platform languages to choose from.

    One biggest problem with Java that I haven't seen descent IDE with graphical GUI desginer for it. If there is someone, Sun or someone else should market a hell out of it - because it could draw novices to Java. If it is done so, they will discover that Java is one good language - and will stick with it.

    I also don't get rants against Mono and C# in Slashdot - yes, I know, legal thingies and Microsoft with all that army of layers makes geeks to shake a bit (to atmit, me too), but actually it is time not to be afraid anymore. Fight and adapt, or stay away. Or code in Python/C++/C :)

    In the end, your choice is all what matters.

    --
    user@ubuntubox:~$ stfu This server is going down for shutdown NOW!
  63. Why I worry about .NET by ghakko · · Score: 2, Interesting
    I'm a LAMP programmer, and I think it's a reasonably good platform for web applications. I'd like it to succeed because I really want free software, both as a movement and technical solution, to flourish.

    But I really worry that Microsoft has opened a large lead here with .NET, at least in the medium term. Most people have simply compared C# and the .NET framework classes against Java and base their assessment of .NET as a platform on that. But I think it misses the point somewhat.

    The Bourne shell is powerful because it allows entire programs--even ones not specifically designed to work together--to be connected together: the utility of the system as a whole increases dramatically because of this network effect. With .NET, it's the same, except with classes and objects across languages previously incommunicado.

    On Unix, every scripting language, by contrast, is pretty much an island by itself.

    If you need a binding for say, MySQL, you'd have to implement it for Python, Ruby, Perl, Tcl and whatnot. Although tools like SWIG try to automate this, in general, every new binding (N x M of them) is written from scratch. One might argue that doing it this way makes the binding conform best to the spirit of each scripting language, but in practice bindings for important libraries are often buggy and incomplete, perhaps because the cumulative effort is too great or too much language-specific expertise is needed. This is especially true for complex GUI toolkits like Gtk or Qt, which cause headaches with complicated data structures. .NET bindings, on the other hand, are only necessary if they're for unmanaged code; even then, they need only be written once.

    Re-using code from different scripting languages is very difficult. Suppose if, for example, a PHP programmer doing screen-scraping is fed up with the PHP/Curl bindings and wants to use Perl's excellent LWP::UserAgent module. Or, say, someone writing a Ruby shopping cart would like to borrow one of the payment library bindings in PHP? How is that possible? Wrapping the functionality into a stand-alone program (and hence using the shell and IPC as glue) is often so much of a hassle that people simply don't bother and end up re-implementing it from scratch. In .NET, this is almost trivial.

    Every scripting language has to implement its own interpreter/virtual machine/compiler. Making a thread-safe and efficient one is not easy; making a JIT fast enough to even come near the efficiency of native C/C++ involves a great deal of messy, architecture-specific work. The CLR, by contrast, is common to all .NET languages and any performance enhancement to it is inherited by all. It's well-tuned enough that, for example, PHP.NET actually runs faster than the native PHP interpreter, even with the Zend accellerator product.

    Packaging, deployment and building are different in each language. This can be a major problem when trying to glue scripts written in different languages together into the same project or getting the mess to install on the target system. Suppose it was an application which needs Perl 5.8 for one component, PHP 4.3.x (with mcrypt an GMP support enabled) for another and Python 2.3 (with PostgreSQL or MySQL bindings present) for others? How does one deploy this if the target system does not have one or more of these installed? Is there a simple way to put such an application in a test harness or even build it without resorting to a hodgepodge of install.py, MakeMaker and PHPAR? On the other hand, the only prerequisite for .NET applications need be the .NET runtime itself. Everything is compiled into the same common executable bytecode, so no additional interpreters are needed. Any assemblies the application depends on can be safely bundled with it even if the target system already has different versions of those assemblies installed.

    I believe, after putting seeing all of these advantages put together, that Miguel de Icaza was right and that we cannot afford to dismiss .NET as merely a Java work-alike.

  64. free as in beer vs free as in speech by asapien · · Score: 1

    For some people its about the licensing, java is owned by sun, so you can make free software, but its still dependent upon non-free libraries, while mono is open source, because MS put out the specs as an ECMA standard, while Sun wants to totally own java. So it depends, if you want to write open source software, you're only choice would be mono, because everything is free/open. Sun doesn't force you to sell your software, you can give it away, but the underlying platform is closed.

  65. Re:Where are the apps? - What Speed? by xrxca · · Score: 1

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

    Java 5.0 usually came within 5-10% of optimised C++.
    Within 5-10% is still slower....

    Just the concept that ANYONE would think that it is reasonable for a "hello world" program to need a few megabytes is disgusting. What ever happened to efficient code.

    I have yet to meet a Java program that I would use if I had another choice. For utilities, the time it takes for the java version to get started is less that the total run time for the equivalent program in a real language. As for full blown applications, even though there have been moderate improvements, there is a long way to go (not that some apps done in other languages arent as bad or worse)

    Benchmarks are NOT real world. In the real world, the time it takes for an app to become useable means something, and in a few cases it means a lot more than the raw speed of the app after launching.

    It's a sad state of affairs when it's faster to load up a saved virtual machine running a java app, than to load the actual app itself on the host.

  66. Re:Where are the apps? - What Speed? by Decaff · · Score: 1

    Java 5.0 usually came within 5-10% of optimised C++. Within 5-10% is still slower....

    That was for just this benchmark. In some others the IBM JVM is faster than C++.

    I'm afraid that I can't take a complaint about a 5-10% speed difference seriously, as the difference in performance between different C++ compilers is more than that!

    Just the concept that ANYONE would think that it is reasonable for a "hello world" program to need a few megabytes is disgusting. What ever happened to efficient code.

    Of course it doesn't need a few megabytes! It is the runtime that needs a few megabytes. Even the simplest C program will dynamically connect to the libc and other stuff. Even the simplest PERL or Python program will require the interpreter.

    Funny how people are prepared to neglect this for those languages, but not for Java.

    In fact Java can be pretty efficient in memory as it selectively loads only the required classes into memory and not the entire library file. This is why Java can run in low-memory environments such as embedded device controllers and mobile phones.

    Benchmarks are NOT real world. In the real world, the time it takes for an app to become useable means something, and in a few cases it means a lot more than the raw speed of the app after launching.

    OK, so let's time it. An non-GUI java app can start up in a fraction of a second. A Swing app can start up in a few seconds.

    I have just opened the Java 5.0 jsf example Notepad. On my 2GHz machine (512MB memory) it started in 2.5 seconds.

    So let's try another app - something more complicated: SwingSet2, the full Swing GUI demo. It starts up in 7 seconds.

    Sorry, but I can't see a problem.

    It's a sad state of affairs when it's faster to load up a saved virtual machine running a java app, than to load the actual app itself on the host.

    As I have just demonstrated, there are no speed issues with loading apps. Why don't you try the tests yourself and report back the results.

    By the way, the full SwingSet demo ran in 10MB (-Xmx10m) of memory, and the Notepad example ran in 3MB.

    No sign of slowing down the machine or causing swapping there!

  67. Re:Where are the apps? - What Speed? by linuxmop · · Score: 1

    Even 2.5 seconds is an unreasonable amount of time for a simple application such as the notepad example, especially on a modern machine like yours. I should note that Microsoft's Wordpad opens in less than a second loading from disk. Subsequent (cached I/O) loads occur effectively instantaneously. Amazingly, Microsoft Word behaves identically. This is a Pentium M 1.4GhZ laptop with 768MB RAM. I believe these applications are quite a bit more powerful than the Notepad example, and they load much faster (well, presumably -- unfortunately, I do not have any Java GUI applications on this specific machine to provide comparison test results.)

    There really is no excuse for Java's kind of bloat in a desktop application; a language with just as much abstraction, expressive power, and (source) portability as Java could be natively compiled without much trouble (see academic languages, such as Lisp, ML, etc. for examples). The result would be applications whose startup times are measured in milliseconds, not seconds. With proper design, Java can achieve decent response times *once the application is loaded*. However, load times are critical when you are running a multitasking GUI.

    Unfortunately, nobody seems interested in native code compilers for high level languages these days. VMs and JITs are all the rage. They seem well suited to long-running server processes, but until the load time issues are solved, perhaps with a JIT code cache (doesn't .NET do this?), Java has no place on the desktop.

  68. Re:Where are the apps? - What Speed? by Decaff · · Score: 1

    Even 2.5 seconds is an unreasonable amount of time for a simple application such as the notepad example, especially on a modern machine like yours.

    It is not unreasonable, and saying this is just plain silly. Applications like FireFox and Thunderbird are C++ start up in tens of seconds. Where is the huge outcry?

    There really is no excuse for Java's kind of bloat in a desktop application;

    What bloat? I keep posting the fact that Java can run in small memory environments, but this keeps being ignored.

    a language with just as much abstraction, expressive power, and (source) portability as Java could be natively compiled without much trouble (see academic languages, such as Lisp, ML, etc. for examples).

    There are extremely good reasons why Java is not natively compiled. It is portable between systems not just at start-up time, but dynamically - for example, updates to code can be distributed between clustered mixed systems while applications are running. Not being compiled also hugely improved security, as classes and what they do can be dynamically validated when the program load them and while a program is running.

    However, load times are critical when you are running a multitasking GUI.

    Utter nonsense. The idea that someone sitting at a desktop seriously can't wait two seconds for an application to start is such outrageous exaggeration that I am starting to think that this is nothing more than an anti-java rant! I try to argue back calmly, but honestly!

    Even though it is-preloaded when Windows starts, MS office can take many seconds to open a document from disk. Do we see a mass migration away from MS office based because it does not meet your 'critical load time' criteria?

    I am currently using GNOME. On my 2GHz machine opening the file manager took 7 seconds. Opening the character map took 1.5 seconds. Opening Evolution took 5 seconds.

    By your criteria we should abandon C++ and GNOME because they take too long to load!

  69. Re:Where are the apps? - What Speed? by linuxmop · · Score: 1

    Why should I have to wait 7 seconds, or 2.5 seconds, or 5 seconds, or whatever? That's absurd! Once I have made a decision to do something on my computer, I want that action to be carried out as quickly as possible. That's why we buy faster and faster computers. If you plan to open applications just once and leave them open all day, maybe slow startup times are fine, but that's not always desireable.

    Besides, I have already identified Microsoft applications that have very short load times, so we know it's possible to create efficiently loading applications. Whether or not GNOME's programs load quickly is irrelevant (note, also, that there have been articles recently on improving GNOME's startup time and general performance). If GNOME performance doesn't improve too, we should abandon it for something better. Also, the fact that Java runs on low-memory systems is a red herring; what matters is the behavior of real applications under the real desktop JRE. And in those, we see slow startup time and high memory use.

    Look, I have programmed server-side stuff in Java professionally. I am familiar with Java's strengths. However, Java's load-time performance cannot be excused just because you have a hard on for cross-platform binary compatibility. (I happen to think that Java is an awful language, too, but this is orthogonal to discussions of its runtime environment).

  70. Re:Where are the apps? - What Speed? by Decaff · · Score: 1

    Besides, I have already identified Microsoft applications that have very short load times, so we know it's possible to create efficiently loading applications.

    That simply isn't true, as Microsoft applications are basically just skins over libraries that are pre-loaded when the OS starts. In effect, the applications are already running - you are only opening windows on them.

    However, Java's load-time performance cannot be excused just because you have a hard on for cross-platform binary compatibility.

    There is no load-time performance problem. A start up time of a few seconds simply does not matter, as this is the case for almost any other application as well - as I have clearly demonstrated!

    And in those, we see slow startup time and high memory use.

    No, this is false. We start up times of a few seconds and apps that can run in what is a minor fraction of the memory of a modern machine.

    I have NetBeans running in 64MB. That means I could run 4-5 copies on a modern machine. That is NOT high memory use by any standards.

    I would be interested if you could give a single example of where having a start-up time of 2-3 seconds for an GUI application is likely to be of any significant disadvantage to anyone.

    (I happen to think that Java is an awful language, too, but this is orthogonal to discussions of its runtime environment)

    I think it would explain why you keep repeating what I believe to be completely mistaken and spurious arguments in the face of conflicting evidence.

  71. Re:Where are the apps? - What Speed? by linuxmop · · Score: 1

    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 the idea that latency is good. You may only open NetBeans once or twice a day, so it doesn't matter for you. But imagine if all your applications took a couple seconds to open. Even notepads or terminals or calculators or system monitors. It would change the way you used your computer. You would demand applications with more integrated features so that you would not have to suffer the short delays dozens of times throughout your day. Every time I have to way 3 seconds to open a calculator, I lose my train of thought. Better include a calculator in my IDE. No thanks, I like the idea of small, fast, quick loading applications.

    Small, orthogonal tools. That's the UNIX philosophy, right?

    Also, please note that the bulk of Microsoft Word's libraries are NOT preloaded with the operating system. Your statement's only grain of truth is that IE's rendering libraries are indeed preloaded (they are used within the Explorer shell). It is also, of course, true that the native Windows support libraries like GDI, etc. are "preloaded" i.e. already in memory, just like they are for almost any graphical system. However, this only saves on I/O time. The JVM startup seems to be slow for reasons other than I/O.

    My distaste for Java the language has nothing to do with my distaste for the Java VM. They are completely separate concerns. One does not have to write JVM-targeted applications in Java. One does not have to compile Java to the JVM. So we really have four options: Java -> JVM, Non-Java -> JVM, Java -> native, Non-Java -> native. Because of the JVM's failings, I dislike anything -> JVM. Because of Java's failings, I dislike Java -> anything. Does this make sense?

  72. Re:Where are the apps? - What Speed? by Decaff · · Score: 2, Informative

    But imagine if all your applications took a couple seconds to open. Even notepads or terminals or calculators or system monitors. It would change the way you used your computer.

    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 the idea that latency is good.

    I am not. I am just saying that below a certain point it is completely irrelevant and has no impact on the user. I have been in IT for 25 years and have never seen anyone ever complain or have any issues with a 2 or 3 second load time. When you say that this is obnoxious to most users, I have good evidence from decades of IT support that you are just plain wrong.

    If this really is annoying to you, you must find the majority of applications on any workstation intolerable! I use both GNOME and KDE routinely and I can't think of a single application that starts up in less that 2 seconds.

    Small, orthogonal tools. That's the UNIX philosophy, right?

    Sure. I agree. But that has never ever applied to GUI systems; they have always had some lag.

    Also, please note that the bulk of Microsoft Word's libraries are NOT preloaded with the operating system.

    Fair enough, but you mentioned Notepad. I would be very interested to see a 2 second startup for any Office application anywhere - Microsoft or otherwise!

    Your statement's only grain of truth is that IE's rendering libraries are indeed preloaded (they are used within the Explorer shell).

    Wrong. The text editing controls are preloaded (hence Notepad's speed), the menu and GUI controls are loaded, the file browsing tools are preloaded. (This is the advantage of a common GUI library in Windows).

    Because of Java's failings, I dislike Java -> anything. Does this make sense?

    No. Because as far as I can tell, what you are labelling as failings simply would not even be noticed by the majority of users, so I don't believe it is fair or sensible to call them failings.

    Yet again, I would be interested in proof that a start-up time of a GUI app of a few seconds has any ergonomic impact on anyone anywhere, other than being annoying to you.

    You are imposing a requirement on GUI software that almost no major GUI application meets. If such applications, written in supposedly high performance languages like Delphi, C and C++ can't do this, why should Java be any better?

  73. SOA's by ACORN_USER · · Score: 1
    MS developers can move right over...?

    I'd rather they stayed away.

    To be honest, as far as platform independence goes, I think that Java is really the way to go. I've heard whining over GUI's and native library integration. I think that development is moving to a point where legacy integration means something completely different. Legacy applications should be exposable on a service bus, accessible from Java Land, .NET, Perl or whereever. If you need to integrate with C libraries on your platform, you have JNI - but that's ugly. It's ugly in C# and it's ugly in Java. We should change the way we view code. Mono on Linux is a good idea, if you want to write C#, but if you're after code which is truly universal from platform to platform, you're really looking at Java - or Perl6. If you're looking at writing the best solution, in the best langauge, on the best platform for that specific task, you're should be exposing your applications over a service bus. I don't care where it runs or what it does, as long as it fulfills the contract of its service.

  74. Java replacement for OpenGL by Decaff · · Score: 1

    Maybe you should find an example where JAVA has replaced OpenGL for graphics output, and then you would have a comparable argument, until then. Bzzz....

    here is an example:

    Swerve client.

    It is a 3D engine for mobile devices. It implements a Java standard for mobile 3D (M3G). There are two versions: OpenGL accelerated, and a Java-software-only version.

    1. Re:Java replacement for OpenGL by TheNetAvenger · · Score: 1

      Maybe you should find an example where JAVA has replaced OpenGL for graphics output, and then you would have a comparable argument, until then. Bzzz....

      here is an example:

      Swerve client.

      It is a 3D engine for mobile devices. It implements a Java standard for mobile 3D (M3G). There are two versions: OpenGL accelerated, and a Java-software-only version.


      This is funny, thanks for the laugh...

      Strange they have to have an OpenGL 'accelerated' version #1, and secondly, this is for low quality games. Again, you could write this type of performance in ANY crap language.

      I want to see where JAVA is 'such' the performance leader, that they are actually using it in place of C because of its speed and managed code.

      You are NEVER going to see this, as the sandbox Java runs in is slow and bloated even in today's world.

      When you see ATI or the OpenGL people say, hey what the heck, to make this game run faster, we NEED to use JAVA. Instead of writing 5 versions of our drivers and games for the platforms.

      Instead it is too slow and these companies are still producing 'multiple' versions because JAVA (the one solution) simply cannot handle this level of performance, nor even access or address hardware efficiently on this level of communication.

      Give it up, JAVA is never going to be fast enough. If you don't believe me, go ask some of the Solaris developers that have been pissed about Sun FORCING them to put crap JAVA support in their OS and 'encouraging' them to write applets in Java. They think Java is about the biggest and slowest crap to date, and they work for Sun. (Do a google if you don't have access to the developers, they went public with this info at one point)

      As for the post above wanting me to 'violate' an NDA just to post benchmarks for them, I will just say, ya - right...

    2. Re:Java replacement for OpenGL by TheNetAvenger · · Score: 1

      PS, In contrast, part of the ATI Drivers for Windows were actually written in .NET for over a year now...