Slashdot Mirror


The Case For Supporting and Using Mono

snydeq writes "Fatal Exception's Neil McAllister argues in favor of Mono, asking those among the open source community who have 'variously described Mono as a trap, a kludge, or simply a waste of effort' to look past Miguel de Icaza and Mono's associations with Microsoft and give the open source implementation of .Net a second chance, as he himself has, having predicted Mono's demise at the hands of open source Java in 2006. Far from being just a clone of .Net for Linux, McAllister argues, Mono has been 'expanding its presence into exciting and unexpected new niches.' And for those who argue that 'developing open-source software based on Microsoft technologies is like walking into a lion's den,' McAllister suggests taking a look at the direction Mono is heading. The more Mono evolves, the less likely Microsoft is to use patent claims or some other dirty trick to bring down the platform."

570 comments

  1. Objective Review by AKAImBatman · · Score: 3, Insightful

    "Fatal Exception's Neil McAllister argues in favor of Mono, asking those among the open source community who have 'variously described Mono as a trap, a kludge, or simply a waste of effort' to look past Miguel de Icaza and Mono's associations with Microsoft and give the open source implementation of .Net a second chance

    Ok, sure. I can do that. In fact, I wrote just such a journal entry in mid-07:

    It is quite obvious to anyone using the platform that the Mono team is not in bed with Microsoft. In fact, it would seem that the Mono team is explicitly trying to warn you away from .NET technology. Otherwise, why would they make it SO GODDAMN HARD TO DEVELOP FOR?

    Read More: A Day Without Mono is like a Day Without a Bullet in my Head

    Ooooh. That wasn't positive at all, was it? Huh.

    1. Re:Objective Review by AKAImBatman · · Score: 4, Interesting

      Ohhh, yeaaah. I remember this guy. This is the same nitwit who used logic from 1996 to try and convince us all to burn our webapps. I see he's back with even more faulty reasoning.

      I guess there's only one thing to say. Slashdot, meet the new John C. Dvorak.

    2. Re:Objective Review by Anonymous Coward · · Score: 2, Informative

      To be fair, I have similar gripes about Java. Not so much the javadoc as making sense of the "enterprisey" marketoid bullshit smeared throughout Suns web presence. The entire thing feels bloated, an entire programming ecosystem to keep middle managers in jobs. Naturally Microsoft's Java knockoff expands upon this with their typical NIH aplomb.

      I tried Mono and PNet years back, even then it seemed to me like a solution in search of a problem. If an app isn't performance critical and you can get away with running on the CLR, then for most real world stuff you probably can do it as a webapp. If it can't be done in a browser, an embedded scripting engine (lua, js) and C/C++ (or Vala/genie) would make more sense.

    3. Re:Objective Review by Anonymous Coward · · Score: 5, Insightful

      Actually, I'm inclined to agree that WebApps generally suck when compared to a Windows App performing the same task. Obviously, WebApps have their advantages (easy distribution, usage monitoring, centralized access, no risk of rogue versions); but when the situation doesn't make it necessary to create a product as a WebApp, I think it's generally stupid to do so.

      As for Mono, the product is a valiant effort, but I can't understand why you would run software on something other than its native platform. After the App is deployed, if it encounters any problems, you'll always have to wonder, is it the App, or is it Mono?

    4. Re:Objective Review by Anonymous Coward · · Score: 2, Interesting

      I find it interesting how much anti-webapp rhetoric has shown up as of late. It means that sophisticated webapps are on the verge of becoming the next de facto technology. "First they ignore you. Then they fight you." I'll leave you to figure out what happens next.

      Thanks man! Keep up the good work!

    5. Re:Objective Review by morgan_greywolf · · Score: 3, Funny

      "First they ignore you. Then they fight you."

      Then Google kick's Microsoft's ass, eats their lunch and takes their milk money? Ya, I was thinking the same thing.

    6. Re:Objective Review by clockwise_music · · Score: 4, Informative

      Couldn't agree more. I've tried to develop code using mono and notepad (or vi, whatever) instead of Visual Studio. It's practically impossible.

      The microsoft documentation is only useful if you're using Visual Studio. Period. Find me a .NET developer who doesn't use Visual Studio and I'll show you a magician. Visual Studio (which I admin, I think is awesome) is such a great IDE and it generates a lot of useful code and config files (etc etc etc) and crap that makes it a complete nightmare to do without.

      Now it is technically possible to write .net code using mono and some other IDE, it's technically possible, and you could do it, but it'd be like pulling a shopping cart along with a toddler attached instead of removing the child and then pushing it. Stupid and too much effort.

      Just fork out the $$ for VS and you've instantly saved yourself weeks of development. But Mono.... just give up now. Unless things have changed over the past 2 or 3 years. But I doubt it. I don't even really understand why they bother.

    7. Re:Objective Review by morgan_greywolf · · Score: 1

      In response to your JE, I have to say that:

      1. You're not being fair to GNU autoconf here. The problem isn't the tool, the problem is the developers that don't know how to use it. I've seen very good configure.ac (input) / configure (output) scripts and very poor configure.ac/configure scripts. Many C and C++ programmers aren't so good at doing shell scripts. *shrug*
      2. ANT's main selling point is that it's Java, so it's cross-platform.
      3. ANT's downfall is that it's Java. This tends to make people think that it's a tool more for Java/J2EE developers than anything else. (Eclipse used to suffer from this until recently). It also tends to preclude use by people who either don't know or don't like Java.
      4. Speaking as someone who regularly writes GTK+ 2.x apps, a configure script not finding GTK+ when it's installed is likely a result of either not having the GTK+ headers installed and/or not having gtk-config installed. Since they're not needed for runtime use, they're not included in many GTK+ distributions. Usually, there'll be a separate 'dev' package. And finally...
      5. Methinks you are a bit biased against GNU autoconf.
    8. Re:Objective Review by Anonymous Coward · · Score: 3, Funny

      Webapps aren't real software - they are just crappy excuses for web developers to keep their jobs. Real programmers write real software.

    9. Re:Objective Review by Anonymous Coward · · Score: 5, Informative

      I contracted a while at Microsoft, and every blue badge (full-time developer) I ever met ignored VS.NET and used vim or emacs all day (for C#, C++, XML, everything except the occasional dialog edit) with the MSDN docs open on the other monitor. No lead with a clue lets the opaque plumbing inside an IDE determine whether their project gets built corectly (we used build.exe, a make clone from the DDK), WinDbg is far more powerful than the builtin debugger (download and try it), and an editor with too much "assistance" to even keep up with your typing (on desktops fast enough to run internal debug builds of Vista!) was just unforgivably lame.

    10. Re:Objective Review by DiegoBravo · · Score: 2, Interesting

      > Many C and C++ programmers aren't so good at doing shell scripts. *shrug*

      But I can assure you that most shell "scripters" aren't good for C, and even less for any non trivial programming project.

      That's one of the top reasons IDEs are popular: they hide the build process from the developer.

      I just don't understand why people defends autoconf as "the right tool(tm)". Maybe it's right for your case or knowledge, but most users (and developers) find it really annoying, yet is the sanctified open-source-build-tool standard... just because lack of decent alternatives.

    11. Re:Objective Review by Anonymous Coward · · Score: 1, Interesting

      I just don't understand why people defends autoconf as "the right tool(tm)". Maybe it's right for your case or knowledge, but most users (and developers) find it really annoying, yet is the sanctified open-source-build-tool standard... just because lack of decent alternatives.

      Not true, most developers I know (and I know plenty on linux!) loathe autotools, in fact someone liking autotools is enough reason to mock him and treat him like a loonie. New projects usually go with CMake. Many old projects are switching to it, like KDE.

    12. Re:Objective Review by vuffi_raa · · Score: 1, Interesting

      as unpopular as it is to say so, I have to agree, I personally haven't found a single useful webapp for what I normally do, I see the usefulness of intranet server based apps, but webapps are generally useless, slow, buggy and problematic

    13. Re:Objective Review by nikanth · · Score: 1

      things surely have improved for mono... you can try monodevelop
      When I tried for the first time, it didnt have even winforms support only gtk#, but it was long back, now almost everything works

    14. Re:Objective Review by YttriumOxide · · Score: 3, Informative

      I write .NET code and support other developers doing the same as my day job, and we fully support mono. In fact, one product that's due for release soon by a third party that I support is running mono on a headless linux box (it's intended as a sort of "black box" from the customers point of view - the choice was made for Linux and Mono purely because of price - this thing is to be MASS distributed, so Windows licenses would bump up the price too much). This product will be very widely used by our customers, so to me at least, it's clear that mono is mature enough now to be used in the 'real world'.

      As far as developing it without Visual Studio - I use VS at work (although still on VS2005 - haven't found a compelling reason to upgrade yet), but at home, where I also do a lot of work when I can't be bothered heading in to the office, I use MonoDevelop. And, for Mac Specific projects, I generally write my back-end in MonoDevelop, compile as DLL(s) and then write the GUI with XCode (Cocoa#). I think I COULD do it with a plain ol' text-editor and get by okay, but I prefer to use a real IDE. With MonoDevelop existing though, Visual Studio is definitely NOT a requirement.

      --
      My book about LSD and Self-Discovery
      Also on facebook as: DroppingAcidDaleBewan
    15. Re:Objective Review by ozphx · · Score: 3, Informative

      SharpDevelop is BSD licensed, and quite excellent. There is very little preventing you from using this as your primary development environment. SharpDevelop on Mono is also possible.

      The sole reason I still buy the VS licenses, is because I also keep juniors using Resharper (a VS refactoring/quality addin) and Diamond Binding (a database access addin/library, again VS only), which pretty much add 20% on the productivity of a bunch of noobs.

      Sometimes (rarely) the place I go into uses MS Project Server "properly", and the TFS changeset/issue tracking makes VS worthwhile over SVN as well.

      The reasons against using Mono (if you are going for minimising cost of development, and putting ideology aside), is being able to use things like WPF/WCF/WF. This is above and beyond what you need to develop most applications though.

      --
      3laws: No freebies, no backsies, GTFO.
    16. Re:Objective Review by Hal_Porter · · Score: 1

      Not true, most developers I know (and I know plenty on linux!) loathe autotools, in fact someone liking autotools is enough reason to mock him and treat him like a loonie.

      That's not enough though, he must be beaten with bamboo poles until he recants.

      --
      echo -e 'global _start\n _start:\n mov eax, 2\n int 80h\n jmp _start' > a.asm; nasm a.asm -f elf; ld a.o -o a;
    17. Re:Objective Review by kripkenstein · · Score: 3, Informative

      Just fork out the $$ for VS and you've instantly saved yourself weeks of development. But Mono.... just give up now. Unless things have changed over the past 2 or 3 years. But I doubt it.

      So basically, you're ranting against something you haven't tested for close to 3 years. But you 'doubt' it has changed, so you are sure your opinion is still valid.

      And you've been modded Informative!

    18. Re:Objective Review by YttriumOxide · · Score: 2, Interesting

      Just sort of have to throw my two cents on to this as well and agree whole-heartedly. I FAR prefer native GUI front ends on whatever platform to a web app. For most big web apps, they tend to be a basic form or two with "complex" stuff being called behind the scenes, in which case all of the real programming work went in to that "behind the scenes" stuff and that's not what I'd call a web app either.

      I'm actually even considering going to the trouble of coding my own front ends for some internal web apps at work just because it's SO much faster to have a native client making calls to the back end DB than it is to wait for a buggy IE only webapp to do its thing and spawn a thousand or so annoying windows (especially ones that open with some text along the lines of "please wait", after which it opens another window, and closes the first, at which point IE pops up a requester warning me that the page is trying to close the window and do I want to allow it or not).

      --
      My book about LSD and Self-Discovery
      Also on facebook as: DroppingAcidDaleBewan
    19. Re:Objective Review by Jekler · · Score: 4, Insightful

      I regret that he apparently wasn't more successful in convincing us to burn our web apps. I'd hazard a guess that 80% of my computer-related headaches is a result of web apps, which I have now almost completely swore off if there's any way I can avoid them.

      Crap like Google Maps I find insulting. We had map software 15 years ago. The only thing we needed was periodic udpates, but web apps go to a completely opposite extreme, every single data request is serviced live, nobody finds it acceptable to risk that data might be hours or days old. If I'm actually using my connection to retrieve data (files, audio, video, etc.) all those web-apps slow to a crawl.

      With web apps, even with the fastest modern computers we're working at speeds closer to what we had back in 1995. We don't need all data to be streamed from the source, I would much prefer most of the applications reside on a local computer and function at native speeds instead of everything being bottle-necked by my ISP. I don't even mind using a thin-client running applications through terminal services, but having all basic desktop applications running from a web server is just ridiculous.

    20. Re:Objective Review by Anonymous Coward · · Score: 0

      You haven't tried Mono (and I would suppose MonoDevelop) for the "past 2 or 3 years" and you're still commenting..

    21. Re:Objective Review by jopsen · · Score: 1

      I've found monodevelop to be, not stable, but rather easy to do .Net development with...

    22. Re:Objective Review by spitzak · · Score: 1

      Who said people like autotools? You don't seem to be too aware of Linux programming if you think people are in favor of them...

      I have NEVER seen autotools used for development. Only if somebody wants to make source that Unix users can download and compile does that stuff ever get written, and it is considered a final and very annoying step.

    23. Re:Objective Review by savuporo · · Score: 1

      All my C# code has been mostly written in notepad. I have VS but i find it "too smart" for my tastes and i never use the RAD features ( i.e. the features that generate useful code, i never found any of it useful )
      I use VS for writing C++ though, mostly because of code browsing features.

      --
      http://validator.w3.org/check?uri=http%3A%2F%2Fwww.slashdot.org Errors found while checking this document as HTML5!
    24. Re:Objective Review by dkf · · Score: 2, Interesting

      as unpopular as it is to say so, I have to agree, I personally haven't found a single useful webapp for what I normally do, I see the usefulness of intranet server based apps, but webapps are generally useless, slow, buggy and problematic

      Either what you do normally is pretty intensive of resources (not webapps strong point to date) or you're not doing a lot of work across multiple organizations. Trying to deploy something in a highly distributed and heterogenous setting is an utter nightmare, and using a webapp instead turns it into just plain sucky.

      --
      "Little does he know, but there is no 'I' in 'Idiot'!"
    25. Re:Objective Review by chthon · · Score: 2, Interesting

      We are in such a case.

      We are a multi-national, and in one research site tooling was developed for building, first all Win32 C++, later .NET C#.

      Recently came the day that we got in bed with people who only work on Linux, so all our tools must now run on Linux. There is NO gui dependency here. In this case, Mono was really our rescue.

    26. Re:Objective Review by Big+Hairy+Ian · · Score: 2, Interesting

      Actually although some applications are well suited to Webapps others which often seem to get made into them are far too processor/hd intensive. As soon as a couple of people are running processes everybody grinds to a halt.

      --

      Build a Man a Fire, and He'll Be Warm for a Day. Set a Man on Fire, and He'll Be Warm for the Rest of His Life.

    27. Re:Objective Review by naasking · · Score: 1

      MonoDevelop and SharpDevelop are very reasonable replacements for VS.NET (and the free VS Express Editions are also pretty reasonable). You can even get VS to compile using Mono.

      The only nice parts of VS IMO are the code completion, inline API documentation, documentation stubs, debugger, and even the limited refactoring support. I don't really use anything else, but really, what more do you need?

    28. Re:Objective Review by lwriemen · · Score: 2, Informative

      Actually, I'm inclined to agree that WebApps generally suck when compared to a Windows App performing the same task.

      Faulty logic, because I could say that Windows Apps generally suck when compared to an OS/2 App performing the same task. This is true in my experience, but has absolutely no bearing on the current state of computer applications.

      You qualify this with

      when the situation doesn't make it necessary to create a product as a WebApp, I think it's generally stupid to do so.

      and later state

      I can't understand why you would run software on something other than its native platform.

      Both of these statements ignore the constantly changing face of the personal computer marketplace (which is rapidly including more and more portable platforms). Companies who use multi-platform technologies are better configured for the long term. OTOH, the newer multi-platform technologies can hurt in the short term due to the performance issues you've described.

    29. Re:Objective Review by Anonymous Coward · · Score: 1, Insightful

      Do you really want to use a platform that's so obtuse and cumbersome that you HAVE to use an IDE to make it manageable? Microsoft have always made a business out of making simple things complicated and then selling you the tools to make it easy again.

      I'm a programmer not a Visual Studio operator!

    30. Re:Objective Review by rhsanborn · · Score: 2, Informative

      They have a niche. The idea that all applications should be web apps is stupid. The idea that all applications should be locally installed is stupid. Once people can accept that and define the things that web apps are and are not good at, maybe we can get some really well built apps that leverage the abilities of the platform.

      I'll throw out my anecdote, because, as always, my anecdote is better than your anecdote.

      I've since moved on, but I worked for a company in the financial sector that needed to input customer information for lease applications. Previously this was handled by a (admittedly kludgy) thick client application. It was replaced by a web app, which, while probably a little slower gave several advantages. 1) It was consistent between several groups. Sales people could access it in-house and remotely and have the same interface, and it was generally pretty fast in both cases. 2) Third-party partners could now put their own information in because it was available remotely. 3) It was consistent internally and remotely, so that if partners had trouble or needed help all the staff was familiar with the same interface and could walk them through things.

      It wasn't as fast as a locally installed terminal session for data input, but it was good enough, and the other benefits far outweighed this deficiency.

    31. Re:Objective Review by morgan_greywolf · · Score: 1

      And hence the reason there are so many poorly-written configure.ac files. ;)

      I'm not saying that I think autoconf is the greatest thing since sliced bread because it's not. It's okay for what it does and does the job it's designed for. I just think that people knock it because of the attitude you display. In addition, I think it's a very powerful and flexible tool, and as such can be a bit of pain to work with unless you really know what you're doing.

    32. Re:Objective Review by salimma · · Score: 1

      either not having the GTK+ headers installed and/or not having gtk-config installed

      pkg-config, you mean?

      --
      Michel
      Fedora Project Contribut
    33. Re:Objective Review by MrNaz · · Score: 2, Insightful

      Am I the only one here who thinks that there's more to the web app vs desktop app dichotomy than Google vs Microsoft and that people who boil it down to that are morons of the highest (or is it lowest?) degree?

      To all you Google loving idiots out there: Google is no less evil than Microsoft. The profit motive doesn't apply any less to them, and having "Don't Be Evil" as a corporate slogan doesn't make it company policy.

      --
      I hate printers.
    34. Re:Objective Review by vuffi_raa · · Score: 2, Interesting

      I think that niche is the main thing, the main thing about webapps is the fact that the "web" portion of it is usually the crap portion, in my experience with using webapps (usually it has been with form based time tracking for billing or project statistics and planning) it is always slow as hell and prone to crashes since rather than accessing a local data source or network based data source for the db making the weak link the data transmission between the client and the server- hence the applications would often fail to update and crash or take so long updating that they were extremely painful to use. It seems that any enterprise solution of a webapp would be better served by running the application on a LAN and having the server dynamically update behind the scenes, as well for things to be done out of office you could locally cache the forms and have the entire form update or load the form once it is completed and completely bypass the slowness and buggyness- but it wouldn't be a webapp anymore yet again just a local app that is transmitting data over the tubes.

    35. Re:Objective Review by jonadab · · Score: 2, Insightful

      > Visual Studio (which I admin, I think is awesome) is such a great IDE

      I couldn't disagree more. Visual Studio has some of the most actively terrible usability that I've ever seen. It's gratuitously complex where simplicity would be more effective and yet simultaneously lacks basic features that competing software (including text editors that make no pretext of being IDEs) has had for decades. I have yet to find a single thing about it that I like, period. Even when you're writing something as inherently simple as a basic single-SELECT-statement database query (tSQL), almost any other tool -- including even the extremely basic Query Analyzer that comes with MS SQL Server -- is orders of magnitude better, and makes the job take less than half as long as it would if you tried to suffer through doing it in VS.

      I think I'd rather bite the bullet and make myself finally learn to use vi (which I have steadfastly avoided doing ever since I was first introduced to it a dozen or so years ago) than try to develop actual application software using Visual Studio.

      --
      Cut that out, or I will ship you to Norilsk in a box.
    36. Re:Objective Review by j-pimp · · Score: 2, Interesting

      Crap like Google Maps I find insulting. We had map software 15 years ago. The only thing we needed was periodic udpates, but web apps go to a completely opposite extreme, every single data request is serviced live, nobody finds it acceptable to risk that data might be hours or days old. If I'm actually using my connection to retrieve data (files, audio, video, etc.) all those web-apps slow to a crawl.

      Well them, buy your map software or even a dedicated GPS device. Personally I'm happy with google maps. It also makes a nice backup to my gps that I have it installed on my blackberry. If I had enough of a need I'd buy mapping software.

      Youtube is an example of a great webapp. For most video needs it works great. There are times I want better than a small flv file, and I will watch a dvd or mpeg 4 in those cases.

      --
      --- Justin Dearing http://www.justaprogrammer.net/ We're just programmers.
    37. Re:Objective Review by e2d2 · · Score: 1

      This is my main concern. I love the idea of the project and fully support it, using it on my nix boxes at home. But how can I tell my boss that we went with mono if we ever experience an issue with it? I would be deemed incompetent for not using windows/.net and simply rolling the cost in up front with the license. It's a tough sell. I wish them luck but if MS got behind it boy would the sell be easier.

    38. Re:Objective Review by David+Greene · · Score: 1

      You're not being fair to GNU autoconf here. The problem isn't the tool

      No, the problem is the tool. Here are several reasons autoconf is to be avoided:

      • autoconf doesn't allow any sort of dependence specification among checks. This leads to...
      • autoconf generates files. This is generally bad. You run into problems like, "should we check generated files into the repository?" all the time. People edit the generated files by mistake and lose their work. It's annoying.
      • autoconf runs serially. It takes forever. I've seen projects where configure takes longer than the actual build. Most of the checks could be run in parallel. Except you can't with autotools.
      • Various versions of autotools are incompatible. I've seen projects that insist on a particular version of autotools for ever and ever to avoid these problems.
      • autoconf relies on an archaic subset of Bourne shell so as to be compatible with broken systems like Solaris. If you're going to require a special tool to compile packages anyway, why not provide a portable environment to program it in?

      CMake might be interesting but it shares the generated file problem with autoconf. The thing is, we have a very nice way to execute commands and specify dependencies among them. It's called GNU make. Granted, the syntax could be cleaned up a bit but it's a very powerful tool that too many people ignore. I've written configure systems in GNU make and it's kind of nice to have the configure and build process specified in the same system with all of the proper dependencies between them.

      --

    39. Re:Objective Review by cbhacking · · Score: 1

      But Mono.... just give up now. Unless things have changed over the past 2 or 3 years. But I doubt it. I don't even really understand why they bother.

      Well... since one of the very best things about F/OSS is how fast it moves and evolves, I'd say anything after a line such as "Unless things have changed..." can quite safely be ignored. Things have changed IMMENSELY in the last 2 years. Three years ago, Mono couldn't do WinForms, couldn't really do VB, and had major compatibility issues. Two years ago, it had full .NET 1.1 compatibility including WinForms and VB.NET, and a good chunk of 2.0. Today, it has effectively all of 2.0 and some 3.x, supports an incredible number of languages and many platforms, is widely used on Linux desktops (know it or not), and is quite easy to target as a development platform, even from .NET; just avoid using any native DLLs, and there's a good chance you can take your Visual Studio-compiled EXE and DLL files, copy them to Linux, run Mono on the main EXE, and it will Just Work. Heck, FreeBSD has a optional application loader module which will automatically run Mono on a CLR binary, so all you need to do is type MyMonoApp (assuming it's somewhere in your PATH and marked executable) and it runs.

      --
      There's no place I could be, since I've found Serenity...
    40. Re:Objective Review by rvJJax · · Score: 0
      --
      S.S.D.D
    41. Re:Objective Review by morgan_greywolf · · Score: 2, Insightful

      1. I never said I that I liked Google or thought they were less evil or thought that webapps vs. desktop is Google vs. Microsoft.

      2. The post was obviously a joke and you missed it. So whooosh.

      3. At the end of the day, the company that stands to lose the most in Web apps is Microsoft. Google is basically kicking Microsoft's ass, eating their lunch and taking their milk money in that department, unless you haven't noticed. Not that I'm pro-Google or really anti-Microsoft. (Okay, I love to make fun of Microsoft now and then, but they're an easy target. What can I say? ;) At the end of the day, if Google succeeds in making the underlying OS platform basically irrelevant (which they are obviously trying to do albeit very slowly and stealthily), then Microsoft loses. And most importantly of all Microsoft knows this.

      And when I say that Google is trying to make the underlying OS platform irrelevant, what I mean by that is that Google wants all (of course) to submit to their will and put all our data on their servers so they can troll it for advertising data. I'm not sure they'll be as successful in that regard as they think, but I do think they have some very good ideas about software as a service, service-oriented architecture and application service providing that are catching on and becoming mainstream. This scares the shit out of Microsoft, and I, for one, am sitting back laughing my ass off as Microsoft squirms.

    42. Re:Objective Review by DocHoncho · · Score: 1

      Notepad? Seriously? I fully understand not liking stuff like VS, but notepad just seems a wee bit masochistic...
      Even VI would be an improvement over notepad! (I kid, I kid)

      --
      Celebrity worship is a poor substitute for Deity worship and costs more to boot.
  2. Exciting new niches by SuperKendall · · Score: 2, Funny

    Mono has been 'expanding its presence into exciting and unexpected new niches.'

    Yes, just recently there have been several more!

    Here at the Mono bar, we play every kind of music - country *and* western!

    --
    "There is more worth loving than we have strength to love." - Brian Jay Stanley
  3. For bit rates less than 24 Kbps by mbone · · Score: 5, Funny

    For bit rates less than 24 Kbps I prefer mono.

    (What, RTFA ? Who has time for that ?)

    1. Re:For bit rates less than 24 Kbps by Anonymous Coward · · Score: 2, Funny

      Geeks are never in a position to contract mono.

    2. Re:For bit rates less than 24 Kbps by Sir_Lewk · · Score: 1

      I got mono one time in highschool. Oh wait, no I didn't... :(

      --
      "linux is just DOS with a UNIX like syntax" -- Galactic Dominator (944134)
    3. Re:For bit rates less than 24 Kbps by Spatial · · Score: 1

      Plenty of us, if the current poll is any indication...

    4. Re:For bit rates less than 24 Kbps by PitaBred · · Score: 1

      mp3 won't go below 32kbps, and nor will Ogg Vorbis... what encoding are you using?

  4. But the political reasons... by Anonymous Coward · · Score: 4, Insightful

    A third party implementation of a standard defined by the first-party implementor is always going to lag behind the original. Even if .Net is technical nirvana, if your platform's only implementation comes from a third party, your platform is a second-class citizen.

    The case against Mono has nothing to do with the technical niceties he presents, nor do the fears of Microsoft "pulling out the rug" matter... What matters is that when developers and end users pick a technology, they pick the leader, not the follower. Accepting Mono is giving up and giving in to Microsoft vendor lock-in.

    1. Re:But the political reasons... by SerpentMage · · Score: 1, Interesting

      I don't agree here at all. If you look back at my comments you see that I am a Mono critique. But frankly I have changed my perspective.

      Mono is actually all right...

      What Mono did and it surprises me is that a Mono developer = Microsoft .NET developer, but a Microsoft .NET developer != Mono developer.

      What I am saying is that if you learned Mono you can use your skills on Microsoft .NET, but not the other way around. This is because of the libraries that they use. Frankly this is good since it means they are independent and will adopt what they need to adopt no more no less.

      --

      "You can't make a race horse of a pig"
      "No," said Samuel, "but you can make very fast pig"
    2. Re:But the political reasons... by FishWithAHammer · · Score: 5, Informative

      I guess all that stuff in the Mono.* namespace that Microsoft's release of their framework doesn't support is just following right along. Like Mono.SIMD. Or Mono.CSharp, which (unlike Microsoft's libraries) contains a fully featured compiler service and runtime evaluator. Or the other Mono stuff that Microsoft's releases can't do, like full static compilation for the iPhone and Microsoft's own XBox 360.

      I'm guessing you don't know much about what you're talking about, but hey, it's Slashdot, that's par for the course.

      --
      "You can either have software quality or you can have pointer arithmetic, but you cannot have both at the same time."
    3. Re:But the political reasons... by nschubach · · Score: 4, Insightful

      But then we get into the topic of if Mono is .NET or an imitator. If it gets too powerful, or too feature full, who's to say if MS doesn't retract their promise and claim that Mono is infringing on their patents, suing whatever company might have worked on said products?

      What I dislike about Mono/.NET isn't the technology. It's a cool way to do things (up to a point when it becomes brainless cut and paste as I've seen a lot recently.) I like the general coding and namespacing standards, but there's always the looming Microsoft update around the next corner and you feel like you are always playing catch up. With C/C++, you have additional libraries that come into play from year to year, but the language itself is defined. You continue to use your libraries, they get better... it's a slowly changing target. Yes, there's a new revision coming to extend it even more, but once that's there you won't have Microsoft adding LINQ to the core in 3 months causing a new revision and a new learning dependence. A dependence on MS and marketing of feature sets. I feel as though the language is going to get so bloated with "new"/"handy"/"neato"/"swell" features that it will become cumbersome to learn for someone just coming into it. Yeah, it's great for those in on the ground floor that know and learn as it grows... but there's another side to that growing wall.

      Not only the learning curve, but the libraries alone. You mentioned libraries on top of the core structure of the language that are added in requiring bigger downloads for the RTE and more initial overhead. Now you have to look toward embedded devices or mobile platforms. Are they going to be filled with libraries that aren't needed or do you create a slimmed version of the .NET framework to run on them? If you cut out the cruft, now you have virtually two different environments. You might have been able to do LINQ on your desktop, but now since you cut out all those libraries to be able to fit it on a flash ROM... you have to code entirely different.

      Disclaimer: I was picking on LINQ... but you could replace it with any method you use.

      --
      Every time I start to have faith in humanity, I ruin it by driving to work between 7 and 8 am.
    4. Re:But the political reasons... by the_humeister · · Score: 2, Interesting

      Not necessarily. Intel seems to do pretty well with x86-64, better than AMD even. Apple has finally brought Unix(tm) to the masses. Fujitsu's processors are better than Sun's.

    5. Re:But the political reasons... by FishWithAHammer · · Score: 1, Insightful

      For your former point--what exactly does this do that Java doesn't? The Java runtimes update, too. Microsoft's update faster, but what of it? They're free to download and freely documented. You have to spend some time learning more, but only if you actually want to use it. LINQ (which I don't really use, I'm not a fan of it) is there, but it does nothing that cannot be done just as easily the "old way". The .NET guys don't deprecate stuff in favor of the new hotness in these sorts of cases; the old ways still stay fine. You can even use the .NET 1.0 non-generic types if you really want to. And unlike Java, you don't have ArrayList and ArrayList, with no under-the-hood difference (seriously, the type checking in Java is complete balls when it comes to generics).

      As for mobile platforms--depends on the platform. The iPhone (and the XBox 360, which is obviously not a mobile platform but has similar rules) doesn't let software run other software, so Mono recently rolled out static compilation. The Mono static compilation system either currently does or is in the process of (I'm out of the loop, I worked for them for GSoC and haven't kept in touch much since) importing code from Linker to strip out the excess library cruft in those images.

      On other mobile platforms such as WinMobile, Microsoft has the .NET Compact Framework. It's slimmed down mostly by removing Windows-specific libraries like WinForms, which takes up the largest amount of space. The "core" libraries like System.* (not the subtrees, but the language itself), System.Core (which includes LINQ), System.Web, System.Net, etc. are all really quite small. (You won't fit it on a 4MB Flash ROM, but if you're trying to do that you already screwed up when picking your tool set. Nobody's saying Mono's the solution for everything!) You're not going to have the upper-level libraries like WinForms on your toaster, but having them would be silly. Similarly, XNA (.NET on the 360) doesn't have WinForms, but does have libraries specific to the interfacing with the XBox 360 when running there and DirectX when running on Windows; you can use standard .NET libraries that are not included in the XNA redist when developing on Windows, but in years of working with the framework I've never found myself accidentially doing that or wishing I could get away with it. It just doesn't come up.

      You make good points, but they're pretty much not problems, as far as I (and most other .NET/Mono devs, it seems) can see.

      --
      "You can either have software quality or you can have pointer arithmetic, but you cannot have both at the same time."
    6. Re:But the political reasons... by dbIII · · Score: 2, Interesting

      A third party implementation of a standard defined by the first-party implementor is always going to lag behind the original

      While that is true it actually rarely matters in this case. How many stable dotnet applications actually require dotnet 3.5? The commercial application I'm using on both MS Windows and linux is using version 1 (and development is continuing with that version), and there's a whole lot of stuff using version 2 - it seems every time you install a dotnet program on MS Windows you need to download all the libraries from Microsoft again. So long as mono doesn't lag by two versions it will still support a lot of this dotnet stuff.

      While I haven't seen anything really in the way of fast or even stable dotnet applications on any platform and think even the name is incredibly wanky (can't use it in a readable sentence) and most code of no better than shareware quality - I do think it is a good thing to support this new VB environment with pretensions of C and java on multiple platforms.

      Accepting Mono is NOT giving up and giving in to Microsoft vendor lock-in - you can run software developed in this enviroment on other platforms so avoid Microsoft vendor lock-in.

    7. Re:But the political reasons... by joggle · · Score: 3, Insightful

      So long as the features are backwards compatible I wouldn't worry too much about it. For example, when they introduced the Windows Presentation Foundation in .NET 3.0 you could simply ignore it if you chose to.

      I think of it similarly to the Qt framework. Sure, it's grown tremendously over the years but generally if you knew how to use Qt 3 it isn't much work to transition to Qt 4 (at least not conceptually, converting old code could be bothersome depending on how the code was written). There may be tons of new classes you're unfamiliar with but if you don't want to use them nobody is forcing you to learn about them.

      I think Microsoft has learned from the days of Visual C++ (6 and earlier) and will not return to the mess that was MFC.

    8. Re:But the political reasons... by segedunum · · Score: 2, Insightful

      What Mono did and it surprises me is that a Mono developer = Microsoft .NET developer, but a Microsoft .NET developer != Mono developer.

      Hmmmm. That might be OK is Mono was leading and not following, and it might be OK if people were not developing all their code on the .Net platform first before trying Mono. Alas, neither is the case.

    9. Re:But the political reasons... by nschubach · · Score: 1

      You almost touched on another problem... .NET 1 and 2 are different environments. So much so that you have to have two runtimes (CLRs... whatever) to be able to use them. With Java, you can run all your old programs in the new JVM. With .NET, your .NET 1.1 app will likely not run in .NET 2. .NET 3 is supposedly backwards compatible with 2.x, but who's to say if 4 or 5 will be?

      --
      Every time I start to have faith in humanity, I ruin it by driving to work between 7 and 8 am.
    10. Re:But the political reasons... by thePowerOfGrayskull · · Score: 1

      I guess all that stuff in the Mono.* namespace that Microsoft's release of their framework doesn't support is just following right along. Like Mono.SIMD. Or Mono.CSharp, which (unlike Microsoft's libraries) contains a fully featured compiler service and runtime evaluat

      Doesn't this defeat the 'cross platform' concept? Now if I want to run (or distribute) my apps on Windows, I can't rely on the ubiquitous .Net runtime that the majority of users already have...

    11. Re:But the political reasons... by cnettel · · Score: 1

      .NET 1.1 tends to run very well in .NET 2. However, the default is a supported way of having both installed. Microsoft got DLL hell-avoidance crazy and thought the right thing was to keep explicitly separated libraries for each point release.

    12. Re:But the political reasons... by FishWithAHammer · · Score: 2, Informative

      Untrue. You can run 1.1 applications in 2.0. The default is to install both side-by-side.

      And .NET 3/3.5 both run on the 2.0 CLR.

      --
      "You can either have software quality or you can have pointer arithmetic, but you cannot have both at the same time."
    13. Re:But the political reasons... by FishWithAHammer · · Score: 2, Informative

      Honestly? I don't use .NET/Mono specifically for cross-platform programming, although it's a nice plus when you can get it "for free," or nearly so. I use it because it's a single language and coherent system for a lot of different stuff.

      Rich web content? Silverlight. C# (or any other CLR language), most of what I'm familiar with, without having to worry about relearning my tools or language.

      Websites? ASP.NET. C#, most of what I'm familiar with, without having to worry about relearning my tools or language. (Bad example, though, because I personally use PHP and mod_mono isn't really good yet. ASP.NET MVC makes it a lot nicer to use though.)

      Desktop apps on Windows/Linux? Bog-standard .NET/Mono. C#, most of what I'm familiar with, without having to worry about...you get the idea.

      I used Java for much the same reasons when I used Java. Same language, same framework, different application for it.

      (Plus, when it comes to Mono.CSharp and Mono.SIMD, I'm pretty sure you can package those specifically with your program to run them on the Windows .NET CLR. For Mono.SIMD in particular, it actually falls back to managed code on platforms without SIMD code support, which is a really nice feature.)

      --
      "You can either have software quality or you can have pointer arithmetic, but you cannot have both at the same time."
    14. Re:But the political reasons... by thePowerOfGrayskull · · Score: 1

      Fair enough; it just seems like the focus of mono has a bit of a split personality issue. On the one hand I see "finally, write once, run anywhere!'... and on the other hand I see comments about how Mono is .net, but also /more/ than .net. The two seem to be complete opposites to me - and since my focus is more on cross platform systems, it's a bit offputting.

    15. Re:But the political reasons... by FishWithAHammer · · Score: 4, Informative

      I am not a Mono dev, just an occasional contributor via Google Summer of Code, but I don't really see a reason you can't do both. I think it's kind of obvious, really--Java's the same way. If you stay "within the lines" (which are usually very clear), your code will be cross-platform. If you do more out-there stuff, it's going to require more and more work to make it work in a cross-platform manner.

      (.NET/Mono is already pretty awesome even for projects that require native libraries, though. Package libfoo.dll and libfoo.so in with your executable and assemblies, and it will intelligently grab the right one on Linux/Windows. Not so easy on BSD, Solaris, or OS X, but those really aren't primary platforms for that particular effort.)

      --
      "You can either have software quality or you can have pointer arithmetic, but you cannot have both at the same time."
    16. Re:But the political reasons... by Anonymous Coward · · Score: 2, Informative

      Politically, Mono/.Net is a win. For the reason for NOT jumping onboard the Mono bandwagon, look no further than Microsoft's attempt to hijack Java.

      Java and .Net are actually a lot alike. They're both language systems based on virtual machines that come from sponsors who also happen to market operating systems.

      The crucial difference is that Sun had made repeated and determined efforts NOT to link Java to any one OS - even going so far as resisting for years the idea of giving Java apps access to OS environment variables on OS's that support such a thing (which is most of them).

      Microsoft, on the other hand can't seem to field any product without hooking it intimately into Windows. I've yet to see what making IE "an integral part of Windows" does for it that the more loosely-connected Firefox doesn't. Except, of course, for facilitating the spread of malware.

      Java has enough OS-neutral infrastructure behind it that Sun probably couldn't wrench it into a Solaris-only architecture if they tried. I'm less sanguine about .Net.

    17. Re:But the political reasons... by shutdown+-p+now · · Score: 1

      A third party implementation of a standard defined by the first-party implementor is always going to lag behind the original. Even if .Net is technical nirvana, if your platform's only implementation comes from a third party, your platform is a second-class citizen.

      If you consider Mono merely ".NET for Unix", then what you say is entirely true. But you could also look at it as a self-sufficient Java alternative - use Gtk# for UI, and so on. On its own, it fares much better.

    18. Re:But the political reasons... by lgw · · Score: 1

      With C/C++, you have additional libraries that come into play from year to year, but the language itself is defined

      You do know the new C++ standard is almost here, right? And it has garbage collection! OK, OK, so it's opt-in garbage collection, so you can ignore it, but the Boost stuff that's going into the language will change what good C++ looks like.

      Personally, can't wait for (a) shared pointers as part of the language, (b) "concepts", and (c) variable-arity templates - finally the end of that vargs crap.

      Concepts will really change the way I program, as they add no-overhead "static polymorphism" - i.e., my function can accept any class with a ToString() member, without having to create some damn base class to clutter things up, if all I care about the class is that I can convert it to a string.

      --
      Socialism: a lie told by totalitarians and believed by fools.
    19. Re:But the political reasons... by Anonymous Coward · · Score: 1, Insightful

      With C/C++, you have additional libraries that come into play from year to year, but the language itself is defined.

      So well defined that the compiler that implements it to specification doesn't yet exist. You also make the mistake of assuming that C++ isn't still evolving. The C++ standard is refreshed about every 5 years. It was reworked in 1998 and again in 2003, and the new standard proposal is currently in the works. The standard establishes semantic guidelines and language enhancements. Try using initializer lists, type inference or iterators in an older C++ compiler and see where that gets you.

    20. Re:But the political reasons... by nschubach · · Score: 1

      5 years is a very different time line than 1-2 years.

      --
      Every time I start to have faith in humanity, I ruin it by driving to work between 7 and 8 am.
    21. Re:But the political reasons... by GoldMace · · Score: 1

      But what about the whole iostream.h getting deprecated thing? Or this previously unnecessary using namespace std; statement?

      Honestly, I haven't used C++ in quite a while, and barely even recognize it anymore it's changed so much...really, LINQ is an addition you can use or not, they flat out changed the C++ language for whatever reason I don't know, what I do know is if I have to code in C++ ever again, there's a far more substantial learning curve than simply learning LINQ was for .NET...

    22. Re:But the political reasons... by XDirtypunkX · · Score: 1

      There is actually a version of the .NET framework slimmed down even further than the .NET Compact framework (compact framework does have some forms support btw). This is called the .NET Micro framework and it will fit into 64k quite well.

    23. Re:But the political reasons... by FishWithAHammer · · Score: 2, Interesting

      .NET CF has forms support, but it's not WinForms as we know them. AFAIK the libraries are managed by different teams and while they present some of the same interfaces they're entirely different under the hood. Much smaller, too.

      I didn't know about .NET Micro, but looking at the Wikipedia page makes me start involuntarily drooling, if this is true...

      --
      "You can either have software quality or you can have pointer arithmetic, but you cannot have both at the same time."
    24. Re:But the political reasons... by YttriumOxide · · Score: 2, Interesting

      (.NET/Mono is already pretty awesome even for projects that require native libraries, though. Package libfoo.dll and libfoo.so in with your executable and assemblies, and it will intelligently grab the right one on Linux/Windows. Not so easy on BSD, Solaris, or OS X, but those really aren't primary platforms for that particular effort.)

      Actually, it is just as easy on MacOS X. My company's SDK is .NET based, and we provide a "Mono version" for both OS X and Linux. Of course, the .NET assemblies themselves are the same, but there's just a couple of parts that are platform specific, which here we'll just call "libfoo". I can package in "libfoo.dll", "libfoo.so" and "libfoo.dylib", and it happily works on Windows, Linux and OS X. Not sure about the BSD and Solaris worlds though. Worst case scenario, it should be trivial enough to check for the native library and then manually call the right one, as long as DLLImport can handle it. I haven't stepped off the Windows/Linux/MacOS line yet when it comes to .NET, so I haven't really looked in to what's possible and what isn't.

      --
      My book about LSD and Self-Discovery
      Also on facebook as: DroppingAcidDaleBewan
    25. Re:But the political reasons... by YttriumOxide · · Score: 3, Informative

      A third party implementation of a standard defined by the first-party implementor is always going to lag behind the original. Even if .Net is technical nirvana, if your platform's only implementation comes from a third party, your platform is a second-class citizen.

      Only if you care about or need the "latest whizz-bang features". For most serious development I've never needed anything over .NET 2.0 so far, which Mono implements very admirably (plus a bit more).

      Yes, it does mean I need to be a little more careful if I want things to run cross-platform - mono isn't in itself a final solution for cross platform stuff, and it's VERY possible to write Windows only code, Linux only code or even MacOS only code when using the .NET Framework and/or mono, but if you're targetting being cross-platform it really isn't too hard to do, and you definitely don't feel "second class" with the current mono versions (definitely did before there was much .NET 2.0 support, but because everything above that is "fluff" to someone developing core back-end stuff, there's been plenty of time for catch-up on the stuff that matters).

      --
      My book about LSD and Self-Discovery
      Also on facebook as: DroppingAcidDaleBewan
    26. Re:But the political reasons... by TrekkieGod · · Score: 4, Insightful

      If it gets too powerful, or too feature full, who's to say if MS doesn't retract their promise and claim that Mono is infringing on their patents, suing whatever company might have worked on said products?

      The law. That would be called estoppel. If they sue you, and you can show that Microsoft has said something to give you an expectation that they would not sue, you win.

      I'm not a lawyer, but that seems to be one of those laws that is pretty easy to interpret.

      --

      Warning: Opinions known to be heavily biased.

    27. Re:But the political reasons... by Sentry21 · · Score: 1

      Part of the issue I've always had with Mono is that, by its nature, it's playing catch-up.

      Let's say Microsoft spends a year paying programmers full-time to develop and implement .Net 4.0. After they release it, the Mono developers then have to spend time figuring out what's new in 4.0 and how to implement it, then spend time implementing it, then test it against Microsoft's implementation.

      They're always going to be at least (development time of new features) behind Microsoft, and that doesn't really appeal to me. It's interesting as a new platform, but they can only innovate too much without accomplishing the same cross-platform incompatibilities we criticize Microsoft for all the time.

    28. Re:But the political reasons... by spitzak · · Score: 1

      I would guess that the problem with BSD/Solaris (and Irix, the one we had trouble with) is that the extensions for the shared library is .so as well and thus you can't put it in the same directory.

      To allow multiple-platform plugins to work we initially named the .so with different extensions for each platform. This did not go over too well, as anybody knowledgeable enough to want to develop plugins was immediately stuck because it was not obvious what they were or how you write them. Renaming them back to .so/.dll/.dylib when we dropped Irix support, and suddenly we started getting support questions for how to write them, so it seems apparent that the extension was a real stumbling block.

    29. Re:But the political reasons... by FishWithAHammer · · Score: 1

      I wasn't sure what OS X named its shared libraries, hence why I wasn't sure whether it'd work. As the other poster says, BSD/Solaris use the .so extension as well as Linux so I don't think it'd work right out of the box.

      --
      "You can either have software quality or you can have pointer arithmetic, but you cannot have both at the same time."
    30. Re:But the political reasons... by Yvanhoe · · Score: 1

      For instance, MonoDevelop is nowhere near Visual Studio .Net I think most of the added value comes from Microsoft's IDE. The promises to do the same under linux are simply not true. The amount of portage already made is impressive but nowhere near 100%

      --
      The Wise adapts himself to the world. The Fool adapts the world to himself. Therefore, all progress depends on the Fool.
    31. Re:But the political reasons... by naasking · · Score: 1

      Solution is simple: if you care about portability, develop on Mono from the get-go. If you don't care, then should we really care what you're developing with?

    32. Re:But the political reasons... by Anonymous Coward · · Score: 0

      No, it's not backward compatible. If you coded to .NET 1.0, you must use the .NET 1.0 VM, if you coded to 1.1, 1.1 VM, and such.

      I'm a .NET developer, and all new version broke the libraries.

    33. Re:But the political reasons... by Anonymous Coward · · Score: 0

      +1

    34. Re:But the political reasons... by speedtux · · Score: 1

      But then we get into the topic of if Mono is .NET or an imitator.

      Mono is not .NET or an imitator. Mono is a platform that consists of a compiler, a core library, a set of Linux libraries, and a set of Microsoft-compatibility libraries. The respective C equivalents are gcc, libc, Gtk+, and WINE. Not using Mono because you're afraid of Microsoft suing over .NET is like not using C because you're afraid of Microsoft suing over WINE.

      If it gets too powerful, or too feature full, who's to say if MS doesn't retract their promise and claim that Mono is infringing on their patents, suing whatever company might have worked on said products?

      Microsoft can just as well claim that GNU C++, or Qt, or Java, or anything else infringes on their patents. In fact, they have claimed that Linux infringes on their patents.

      The situation with Mono is actually better because people have looked in much more detail at the patent situation than for other software; there are no relevant patents on the compiler, the core libraries, or the Linux libraries, which is what all the main C# applications for Linux are written in.

      Just don't use the Windows emulation libraries; I think they aren't even installed by default on Ubuntu and they aren't all that useful.

    35. Re:But the political reasons... by gbjbaanb · · Score: 1

      only MS has said they will not sue Novell, or people who downloaded from their 'partner'. So you, with your copy of it on say, debian, is fully open to being sued as MS was always clear that debian developers do not enjoy the same patent-partnership agreement they have with Novell.

      I'm not a lawyer either, but regardless of what the law is - a MS lawsuit would tie you up in knots for so long the final result wouldn't really matter.

    36. Re:But the political reasons... by gbjbaanb · · Score: 1

      I do think it is a good thing to support this new VB environment with pretensions of C and java on multiple platforms.

      I think you got that right - although its heritage is definitely Java, after using it, its pretty much VB++. I wonder how popular it would be with the non-MS users if they released just VB and Pascal language bindings?

    37. Re:But the political reasons... by Anonymous Coward · · Score: 0

      I am a lawyer, although I'm not currently practicing litigation. Sorry, while the principle of estoppel is easily understood, it certainly isn't easily interpreted or applied. Take a look at the wikipedia page you linked to - considering all the different categories of estoppel, your one sentence summary of estoppel finishing with "you win" is at best naive, and at worst just incorrect.

      While the estoppel argument may be available, there certainly is no guarantee that it would succeed in court. The patent threat is a real one that will always be hanging over Mono's head.

    38. Re:But the political reasons... by Anonymous Coward · · Score: 0

      No it's not following right along. It's just irrelevant. No serious commercial development is going to use that stuff, because Microsoft's implementation doesn't support it. Just like no serious commercial development used third-party JVMs except for stuff written by the companies that wrote said JVMs.

      But it's easier to sling insults than to try and look at an issue from a different perspective, simply because that perspective isn't friendly to something you're fond of.

    39. Re:But the political reasons... by Kz · · Score: 1

      totally right. .NET is a rehash of win32, even if it's more sane and modern, its really un-POSIX, so Mono is always a second-tier. running a .NET app on Mono is always the second option.

      and worse, writing basic desktop components in Mono is like saying win32 is better than POSIX. remember beagle? the popularity of that slow and bloated thing made desktop search on Linux lag years behind mac and windows.

      it's so depressing to read Miguel's blog posts, he's always so excited to be redoing new things from MicroSoft, visiting there to find what's new... he might be a great programmer, but it's so obvious he's following and not leading.

      --
      -Kz-
    40. Re:But the political reasons... by ak3ldama · · Score: 1

      You mean like how this is supposed to be a !@$%ing open standard?!

      --
      "but money is the God of Algiers & Mahomet their prophet." - Rich. O'Bryen June 8th 1786
    41. Re:But the political reasons... by Tetsujin · · Score: 1

      Microsoft, on the other hand can't seem to field any product without hooking it intimately into Windows. I've yet to see what making IE "an integral part of Windows" does for it that the more loosely-connected Firefox doesn't. Except, of course, for facilitating the spread of malware.

      It's not what the integration does for IE, it's what the integration does for Windows.

      Basically, they've implemented this web browser, right? All fine and good. But the use of that browser isn't limited to "icon on the desktop"-type launches. They can offer the browser's HTML engine as a library so people's programs can include HTML-based documentation, they can offer the browser itself as a COM object that other programs or script can control for automation. As a component, having a web browser that's a standard part of the OS is a valuable asset... And even if it's not the best web browser, the one people would choose all things being equal, developers at least know what to expect of it. (Developers can read up on IE's various flaws and work around them. But, on the other hand, if they don't know what HTML engine is rendering their stuff, they don't know what flaws they might be dealing with.)

      When you have the browser in there as a component, having it additionally in there as an application is nearly trivial. Viewed strictly in terms of cost versus benefit it's senseless not to do that.

      --
      Bow-ties are cool.
    42. Re:But the political reasons... by joggle · · Score: 1

      I didn't mean binary compatible but code compatible (or at least make it trivially easy to update the code to a newer version like Trolltec did by making a tool to convert Qt 3 code to Qt 4 code that did most if not all of the work).

    43. Re:But the political reasons... by FishWithAHammer · · Score: 1

      I like that comparison. It also doesn't hurt that the Qyoto QT bindings for .NET have gotten quite nice, to the point where I'm seriously looking at dumping WinForms for Qyoto. That'd make app porting even easier.

      --
      "You can either have software quality or you can have pointer arithmetic, but you cannot have both at the same time."
    44. Re:But the political reasons... by shreedhar · · Score: 1

      Accepting Mono is giving up

      Giving up on what? Make yourself clear. You seem to be spreading FUD.

      ...giving in to Microsoft vendor lock-in.

      The fact that you can now develop and run your .Net programs on Linux distributions using Mono, is getting freedom from vendor lock-in! I am a .Net developer who prefers Linux over Windows. So great! I need not buy Windows just to develop on my favorite platform. Windows is a MS product. .Net is a technology. .Net is nice and thanks to MS and Mono it is cross-platform.

    45. Re:But the political reasons... by CAIMLAS · · Score: 1

      And what if you're trying to migrate away from Windows on the desktop, and you've got existing apps written in Mono?

      It's not ideal, but it'd provide a means to migrate. It's an option, whereas previously there was none - unless you consider Wine a viable option.

      --
      ~/ssh slashdot.org ssh: connect to host slashdot.org port 22: too many beers
    46. Re:But the political reasons... by bonefry · · Score: 1

      I thought Qyoto was dead

  5. What? by Tr3vin · · Score: 0, Troll

    "The more Mono evolves, the less likely Microsoft is to use patent claims or some other dirty trick to bring down the platform."

    Isn't that the opposite of what Microsoft does?

    1. Re:What? by dotancohen · · Score: 0, Troll

      Isn't that the opposite of what Microsoft does?

      Exactly. That's why I've written this page explaining the differences between Silverlight and Moonlight:
      http://dotancohen.com/eng/silverlight_moonlight.html

      --
      It is dangerous to be right when the government is wrong.
  6. Who Is This Clown? by Anonymous Coward · · Score: 0

    Last week we had to listen to him blather on about how web apps suck...is there some really good reason I should give 2 shits (or even 1) what this guy thinks about anything?

    1. Re:Who Is This Clown? by poetmatt · · Score: 1

      Only on the same level as us making programs for mono. Considering that slashdot crowd is smart enough to STAY FAR FAR AAWAY from mono, I think that speaks for itself.

    2. Re:Who Is This Clown? by Anonymous Coward · · Score: 0

      Um... web apps do suck.

      Though, so does Mono...

  7. healthy distrust by wizardforce · · Score: 4, Informative

    Microsoft has a history of using patents to protect its desktop market share. They attempted to scare people out of using open source software because it supposedly violated 235 of their patents. Therefore, I believe it is prudent that the open source community remain sceptical of Microsoft as well as implimentations of any of its technology including the .net platform.

    --
    Sigs are too short to say anything truly profound so read the above post instead.
    1. Re:healthy distrust by Nefarious+Wheel · · Score: 1

      Microsoft has a history of using patents to protect its desktop market share. They attempted to scare people out of using open source software because it supposedly violated 235 of their patents

      Not to mention being suspected of having encouraged (if not underwritten) the SCO vs. Linux epic IP lawsuit.

      No, that is my tinfoil. You can't have it.

      --
      Do not mock my vision of impractical footwear
    2. Re:healthy distrust by Anonymous Coward · · Score: 0

      Odd. How exactly has Microsoft used their patents exactly?

      How have they harmed or stopped Ubuntu in any way?

    3. Re:healthy distrust by FishWithAHammer · · Score: 5, Insightful

      Miguel has smacked around this stupid argument before. Mono is a relatively small effort. There are people certainly violating Microsoft's IP in areas like Samba and the myriad Exchange clients, which are a far bigger threat to Microsoft's revenue streams. Mono, if anything, improves their revenue streams, because it makes .NET more feasible for some developers who otherwise wouldn't consider it.

      But they're going to go after Mono, right? Let's just ignore that Samba 4 is (supposedly) going to eat Microsoft's lunch on the AD side of things. They're gonna go right after Mono! Rar! BE SCARED! Because that makes so much sense for them to do, right? It's not cutting off their noses to spite their face at all.

      I'm really starting to think that the main reason Slashdot gets pissy over Mono is because Microsoft doesn't "lose" because of it. It's a case where everybody wins. And Microsoft can't be allowed to benefit, oh teh nos. :(

      --
      "You can either have software quality or you can have pointer arithmetic, but you cannot have both at the same time."
    4. Re:healthy distrust by _Sprocket_ · · Score: 5, Insightful

      Miguel has smacked around this stupid argument before. Mono is a relatively small effort. There are people certainly violating Microsoft's IP in areas like Samba and the myriad Exchange clients, which are a far bigger threat to Microsoft's revenue streams. Mono, if anything, improves their revenue streams, because it makes .NET more feasible for some developers who otherwise wouldn't consider it.

      In the past, Microsoft has "cut off the air supply" of competitors. That's difficult to do with Linux as it is less a single-sourced product line than amorphous multi-vendor entity. Microsoft's strategy then has been to try and pigeon-hole Linux. But how to do that? You need to become a gate-keeper.

      That's the fear over Mono. Gain developers. Gain support. Develop a dependency. Pull out the patents and seize the keys to that dependency. You are now the gatekeeper.

      So what about SAMBA 4 and Exchange compatible clients? Don't they also support Microsoft products? That's win-win too, right? Surely they wouldn't go after those. Or would they? Who knows. Ballmer's threats lack detail.

      And there's the key. You want to make your "everybody wins" technology widely accepted? Stifle the threats from a CEO who's continues to generate distrust in your company. No tin foil hat required.

    5. Re:healthy distrust by jmorris42 · · Score: 1, Flamebait

      > But they're going to go after Mono, right?

      Your argument fails. Samba allows interoperability only. If Microsoft attacks it it hurts Microsoft. No same person would be installing Samba on a Linux/Unix or Mac network. Samba only exists because Microsoft's own products were too locked to support any cross platform standards. If Mono is kept to just allowing .net content to display in a browser plugin Microsoft won't attack; since that would again hurt them in that web delevopers would opt for Flash or Java to have cross platform support.

      But let Miguel rewrite GNOME as a Mono project and they have a wonderful opportunity to cause mischief. First off they have an opportunity to collect a per install royalty to license their patents, a wet dream they have nursed for years. SCO v everybody else was a trial balloon to see if such a scheme was likely to fly in the courts. Second, as the gatekeepers of .net and C# they can ensure mono plays a never ending game of follow the leader.. into fresh patent tarpits.

      --
      Democrat delenda est
    6. Re:healthy distrust by Panaflex · · Score: 5, Insightful

      The difference between Mono & Samba is that C# is dev language.

      If, for instance, Samba is sued into oblivion by Microsoft then we loose a single application. Yes, it's sad and everybody cries... but there's technical ways to solve that problem that are relatively doable - such as developing a new NAS network transport protocol that doesn't break any patents.

      Alternatively, if Microsoft sues Mono into oblivion - and we've all been happily developing C# code for hundreds of applications - then it's going to be a total meltdown.

      To be honest though - there's not much of a chance that either of those things are going to happen.

      I like C# - it's a smart, clean language. I don't utilize much beyond the stock language (2.0 & generics) and don't see much need too.

      --
      I said no... but I missed and it came out yes.
    7. Re:healthy distrust by FishWithAHammer · · Score: 1

      But let Miguel rewrite GNOME as a Mono project

      Miguel doesn't want to do this. Back under your bridge, sir. If you can't bother to keep your facts straight, why bother talking to you?

      --
      "You can either have software quality or you can have pointer arithmetic, but you cannot have both at the same time."
    8. Re:healthy distrust by FishWithAHammer · · Score: 1

      Alternatively, if Microsoft sues Mono into oblivion - and we've all been happily developing C# code for hundreds of applications - then it's going to be a total meltdown.

      Well, sure, and it's something to keep in mind, but--

      To be honest though - there's not much of a chance that either of those things are going to happen.

      --exactly, we both know it's a bullshit worry (and unlikely that people will develop enough C# apps for that to matter). This is all just a bunch of hair-shirting over nothing at all, I feel.

      I like C# - it's a smart, clean language. I don't utilize much beyond the stock language (2.0 & generics) and don't see much need too.

      I agree. My compiler targets ISO-3 because extension methods have come in handy and I like lambdas, but I target the .NET/Mono 2.0 libraries.

      --
      "You can either have software quality or you can have pointer arithmetic, but you cannot have both at the same time."
    9. Re:healthy distrust by nschubach · · Score: 3, Insightful

      Yes, fear. Make all companies fear using/donating to/working on open source because they might be sued.

      When Ballmer stands in front of a crowd and states that Linux has violated patents... people (albeit stupid) will listen. It would be like an alien race telling everyone that they are going to destroy Earth, then waiting for everyone to leave.

      --
      Every time I start to have faith in humanity, I ruin it by driving to work between 7 and 8 am.
    10. Re:healthy distrust by thethibs · · Score: 1

      Second, as the gatekeepers of .net and C#

      Gee. I was quite certain that ECMA was the gatekeeper: ISO/IEC 23270 (C#), ISO/IEC 23271 (CLI) and ISO/IEC 23272 (CLI TR).

      Then again, I lost my tinfoil hat on the bus coming home today.

      --
      I'm a Programmer. That's one level above Software Engineer and one level below Engineer.
    11. Re:healthy distrust by jmorris42 · · Score: 2, Insightful

      > Gee. I was quite certain that ECMA was the gatekeeper..

      Right.... ECMA is where crooks and liars go to get an official looking stamp put their turd sandwiches. And even the ISO proved to be corruptable by the huge sacks of cash Microsoft can toss around.

      --
      Democrat delenda est
    12. Re:healthy distrust by samkass · · Score: 1

      How can creating an "open" ecosystem that is absolutely and completely dependent on Microsoft's goodwill in not asserting their right to sue a good thing? Microsoft benefits, because on Windows you encourage people to move to .NET by using the argument "and you can always port it to Linux using Mono!" but then who would be stupid enough to actually do it? Why wouldn't Microsoft's next CEO start trying to extract licensing fees from everyone, especially after .NET is established? Pure goodwill?

      --
      E pluribus unum
    13. Re:healthy distrust by segedunum · · Score: 2, Interesting

      But they're going to go after Mono, right? Let's just ignore that Samba 4 is (supposedly) going to eat Microsoft's lunch on the AD side of things. They're gonna go right after Mono! Rar! BE SCARED! Because that makes so much sense for them to do, right? It's not cutting off their noses to spite their face at all.

      There's one vital difference. Samba is not adhering to a standard that has been ratified by the ECMA that they can use to say "Ahhhhh, you're infringing!" and where the ECMA has not ruled that it will be RAND licensed forever whatever happens. Mono adheres to something quantifiable that can be pinned on them. Samba doesn't. It is something reverse engineered and where much of the implementation is partially completed and even incompatible with what Microsoft does. You could say that Samba just happens to be Windows Networking compatible in some ways. If you look at any of the patent applications that Microsoft has filed you will generally see something like "This adheres to code running in a CLR........" with a definition of what the CLR is somewhere in the text and a referral to the ECMA. You can't nail Samba down like that.

      .Net is what Microsoft is telling people to use to develop applications for Windows, applications are what keep Windows where it is and Windows is where Microsoft's bread and butter is. Don't underestimate their willingness to protect that.

    14. Re:healthy distrust by msimm · · Score: 1

      If Samba, or Mono, or any other project starts to hurt or threaten them they'll do whatever they feel is in their own best interest. Just because their comfortable letting Mono act as a marketing tool doesn't mean they value the ideas or principles behind the free software movement.

      --
      Quack, quack.
    15. Re:healthy distrust by Anonymous Coward · · Score: 1, Informative

      I don't think MS has ever used its patents to protect its IP from the open source community. It's made some noises but it has never actually gone to court.

    16. Re:healthy distrust by Anonymous Coward · · Score: 0

      Link me one time when Microsoft has used a patent to force out a competitor. If they do it so consistently as you claim, this should be an easy task.

    17. Re:healthy distrust by The+End+Of+Days · · Score: 1

      oh no, stupid people won't join your side? what ever shall you do?

    18. Re:healthy distrust by wizardforce · · Score: 1

      you do make some valid points. However, keep a few things in mind: 1) those patent threats were leveraged against an OS family making up approximately one percent [give or take] of desktop market share. Mac OS O.T.O.H. makes up roughly 10% and yet MS chose to throw FUD at Linux. 2) .net is not the only patent trap that could exist which is why I didn't limit the discussion merely to .net. 3) the development of technologies like the .net implementation depend on Microsoft having no reason to sue over patents that cover these technologies and frankly the idea of trusting Microsoft not to in the future sue over its IP is "naive."

      --
      Sigs are too short to say anything truly profound so read the above post instead.
    19. Re:healthy distrust by kiddygrinder · · Score: 1

      Those standards cover C# and the CLI (which i'm sure you're aware of) which makes up about 1% of the mass of the actual .net framework.

      --
      This is a joke. I am joking. Joke joke joke.
    20. Re:healthy distrust by Anonymous Coward · · Score: 0

      This stupid argument? Mono directly recreates MS.NET features like winforms and ASP.NET. MS wants it to be deeply imbeded in Linus distros so they can use their patents to destroy their competition. And spare us your histrionics, you shitstain, there's nothing naive about disliking microsoft.

    21. Re:healthy distrust by pembo13 · · Score: 1

      It's a case where everybody wins

      Has that every intentionally happened before when Microsoft is concerned? I'm talking about in actual history.

      --
      "Thanks for all the money you paid to us. We've used it to buy off ISO among other things" -Microsoft
    22. Re:healthy distrust by Anonymous Coward · · Score: 0

      This stupid argument? Mono directly recreates MS.NET features like winforms and ASP.NET. MS wants it to be deeply imbeded in Linus distros so they can use their patents to destroy their competition. And spare us your histrionics, you shitstain, there's nothing naive about disliking microsoft.
      Very healthy distrust

    23. Re:healthy distrust by div_2n · · Score: 1

      There are people certainly violating Microsoft's IP in areas like Samba

      Wrong. Microsoft has worked with the Samba team to get their protocols implemented as required by the European Union stipulation. To try to attack the Samba team over this would essentially spell an end to Microsoft doing business in the EU.

      http://blogs.zdnet.com/microsoft/?p=1064

    24. Re:healthy distrust by man_of_mr_e · · Score: 1, Insightful

      Microsoft has a history of using patents to protect its desktop market share.

      They do? Can you name a single software patent lawsuit Microsoft has initiated? No? Why not?

      The fact of the matter is, open source software probably violates a hell of a lot more than 235 patents out there. That's not a scare. That's simple fact. It's almost impossible to write ANY software that doesn't violate someones patent these days. Patents are bad, yes. And sure, Microsoft isn't above waving patents around, but they have *NO* intention of filing any lawsuits against anyone, otherwise they would have done so already at least once in the last 10+ years they've been talking about them.

      Microsoft is not going to sue anyone over software patents. I don't have to be a mindreader or have any insider information to know that. I only have to look at their *ACTUAL* behavior. Microsoft has actively avoided software patent litigation, and I don't see them changing that stance anytime soon.

      Sure, they want people who infringe their patents to pay up, but they wren't going to sue anyone to do it. Just like the guy who wants everyone who cuts across his land to get to the cool pond to go swimming to pay him, but unless someone is stupid enough to actually say "sure, here you go", they're just going to say "ok.. never mind"

    25. Re:healthy distrust by rdnetto · · Score: 2, Informative

      Alternatively, if Microsoft sues Mono into oblivion - and we've all been happily developing C# code for hundreds of applications - then it's going to be a total meltdown.

      First of all, C# is an open language, so there is zero chance of it being the direct subject of a lawsuit.

      [It is] approved as a standard by ECMA (ECMA-334) and ISO (ISO/IEC 23270).
          http://en.wikipedia.org/wiki/C_Sharp_(programming_language)

      Secondly, should Mono die (which is extremely unlikely), we can always run those program under Wine.

      Either way, no meltdown (except for the purists who wouldn't let Microsoft's .NET Framework onto their systems, and I doubt they'd use Mono anyway).

      Disclaimer: C# is my primary language, and my favourite by far.

      --
      Most human behaviour can be explained in terms of identity.
    26. Re:healthy distrust by Anonymous Coward · · Score: 0

      There are people certainly violating Microsoft's IP in areas like Samba and the myriad Exchange clients, which are a far bigger threat to Microsoft's revenue streams

      and

      Mono, if anything, improves their revenue streams, because it makes .NET more feasible for some developers who otherwise wouldn't consider it.

      Are exactly the reasons why I do not support Microsoft products. The Samba team has had to reverse-engineer the entire communications protocol because Microsoft has not documented it. If it isn't documented, it can't be protected by patents because patents demand publication.

      So, indeed, I choose not to feed the troll that has flung empty threats at its competition. It's not about Mono. It's about Microsoft.

    27. Re:healthy distrust by spitzak · · Score: 2, Interesting

      Ballmer has said Linux violates 235 patents. That is using their patents.

      No, they are never going to identify any patents or do a real court case, unless there is a significant change in the environment (like they are actually threatened by a competitor using Linux). The threat is much more effective.

      They refuse to ever identify any patent directly. The reason they do this is that the patent may be shot down for prior art, or that it will be shown that Linux does not violate it, or that it will take about 1 day to patch Linux to work around the patent. If this happens for even one of those 235 patents it will greatly dimish the threat perceived by pointy-haired bosses.

    28. Re:healthy distrust by msormune · · Score: 1

      Microsoft has a history of using patents to protect its desktop market share

      Yeah right. Where did you pull that one out? Never mind, I already guessed.

    29. Re:healthy distrust by Vahokif · · Score: 1

      Well they don't hold any patents on any language you'd code in for .NET and actually, CLI _is_ most of .NET, and I don't see why they'd want to sue people who use their miscellaneous technologies like ADO.NET.

    30. Re:healthy distrust by Anonymous Coward · · Score: 0

      Very well said. Microsoft has contributed zilch in terms of positive things to the computing community, with the exception of making computers ubiquitous. Their only motivation is money, period. I consider Mono something of a "submarine patent" although it is not directly tied to Microsoft, it is derived from technology they created, or bought, who knows. I am too distrustful of them to be wooed by any sort of fancy, shiny technology regardless of its supposed merits.

    31. Re:healthy distrust by CAIMLAS · · Score: 1

      MS isn't going to sue Samba into oblivion for two simple reasons: antitrust and compatibility.

      There are hundreds of thousands, if not millions, of installations which require and use Samba, whether it's as a primary file server(s) or as a backup, or even in a small NAS device. It's packaged with every Linux distribution and MacOS X for compatibility purposes with Windows networks - and even as the primary file storage sharing method on many Windows-free networks. Suing Samba into oblivion would not only require suing every Linux distro out there, but it would piss -everyone- off.

      Second, even if they won, they'd run into massive anti-competitive antitrust claims. Samba has been around for some 15-odd years. If they had a complaint, they'd have had to levy it years ago.

      For that matter, they'd have to levy it against various LDAP implementations, as well, as the Samba team's efforts on v4 can already largely be implemented with Samba v3 and various other tools. Not completely, mind you, but to a large degree. So suing samba would, essentially, be saying that it's only a concern if it's a single-package solution.

      --
      ~/ssh slashdot.org ssh: connect to host slashdot.org port 22: too many beers
    32. Re:healthy distrust by kiddygrinder · · Score: 1

      It's not so much sue in this case, it's just adding functionality to make sure microsoft .net is *the* .net. You'd have to admit most of the work that's been going on in the framework is on stuff external to the actual core.

      --
      This is a joke. I am joking. Joke joke joke.
  8. clone or unique, but not both by Speare · · Score: 5, Insightful

    [A]sking those among the open source community who have 'variously described Mono as a trap, a kludge, or simply a waste of effort' to look past Miguel de Icaza and Mono's associations with Microsoft... The more Mono evolves, the less likely Microsoft is to use patent claims or some other dirty trick to bring down the platform.

    Mono is in a precarious, teetering position. Somewhere between tepid and antagonistic reaction amongst professional and casual developers, a designer community that is seen as a puppet or apprentice to the hegemony, and not even a clear path forward for compatibility. Be distinct, or be identical, but there's no way to be both.

    --
    [ .sig file not found ]
    1. Re:clone or unique, but not both by Grishnakh · · Score: 5, Insightful

      I still honestly don't see what the supposed benefit of Mono is supposed to be. If you want to write nice graphical applications, there's plenty of toolkits available for C, C++, Python, etc. Many of them are even cross-platform, so making a version for a different OS only requires a recompile. If you want truly compile-once, run-anywhere code, there's already Java. What's the point of Mono?

    2. Re:clone or unique, but not both by keeboo · · Score: 1

      Agreed. I'm also expecting an answer for that.

    3. Re:clone or unique, but not both by digitig · · Score: 1

      I still honestly don't see what the supposed benefit of Mono is supposed to be. If you want to write nice graphical applications, there's plenty of toolkits available for C, C++, Python, etc. Many of them are even cross-platform, so making a version for a different OS only requires a recompile.

      I've yet to find one as comprehensive and easy to use as .NET, though. Does Tk/Tcl help with i8n, for example? Cross-platform isn't an issue for everybody. I've used .NET to integrate with a third-party Windows only vertical application -- easy porting to a platform where the software I was integrating with doesn't exist was hardly a high design priority.

      If you want truly compile-once, run-anywhere code, there's already Java. What's the point of Mono?

      Not everybody wants to program in Java -- I certainly don't.

      --
      Quidnam Latine loqui modo coepi?
    4. Re:clone or unique, but not both by s73v3r · · Score: 2, Interesting

      AFAIC tell, the point of Mono really is so you can write C# code on a platform other than Windows.

    5. Re:clone or unique, but not both by binarylarry · · Score: 1

      But let me guess, you'll program in Java's clone-with-a-beard C# right?

      Is it the letter C that makes all the difference here?

      Seriously, with Java being open source, there's no real need for Mono anymore. However, I think it's good that Mono exists, if just to give Java competitive pressure.

      --
      Mod me down, my New Earth Global Warmingist friends!
    6. Re:clone or unique, but not both by Un+pobre+guey · · Score: 1

      Try Qt, which is about to go fully open source. It is much easier than C#, Mono, or Java.

    7. Re:clone or unique, but not both by digitig · · Score: 1

      But let me guess, you'll program in Java's clone-with-a-beard C# right?

      I greatly prefer C# to Java, and see very little similarity between them. I also use Ada, Python and Eiffel with .NET.

      Is it the letter C that makes all the difference here?

      No, I hate C with a vengance. It doesn't mean I think C is no good, any more than I think Java is no good -- I just find they don't suit my style.

      Seriously, with Java being open source, there's no real need for Mono anymore.

      Anybody who thinks one language is good for all jobs has very narrow programming experience. Every language involves compromises, and the compromises that are great for one project can be terrible on another.

      --
      Quidnam Latine loqui modo coepi?
    8. Re:clone or unique, but not both by digitig · · Score: 1

      I have tried Qt. It would be my preferred choice if .NET were not available (I still prefer .NET), except it is completely useless to me because I don't use C++ or Java.

      As I said, a big advantage of .NET is that it doesn't tie you to a language.

      --
      Quidnam Latine loqui modo coepi?
    9. Re:clone or unique, but not both by binarylarry · · Score: 1

      I greatly prefer C# to Java, and see very little similarity between them.

      LOL... that's all I can really say about that.

      No, I hate C with a vengance. It doesn't mean I think C is no good, any more than I think Java is no good -- I just find they don't suit my style.

      I don't know how anyone can hate C, its the language you can count on when everything else fails/doesn't work. But given your track record thus far, I'm not surprised.

      Anybody who thinks one language is good for all jobs has very narrow programming experience. Every language involves compromises, and the compromises that are great for one project can be terrible on another.

      Well, I was speaking more about the platforms in this case, hence the mentioning of Java-Mono.

      --
      Mod me down, my New Earth Global Warmingist friends!
    10. Re:clone or unique, but not both by digitig · · Score: 1

      I greatly prefer C# to Java, and see very little similarity between them.

      LOL... that's all I can really say about that.

      Have you actually tried using C#, or are you basing your judgement on reading about its features?

      No, I hate C with a vengance. It doesn't mean I think C is no good, any more than I think Java is no good -- I just find they don't suit my style.

      I don't know how anyone can hate C, its the language you can count on when everything else fails/doesn't work. But given your track record thus far, I'm not surprised.

      Even if it were the language I could count on when all else failed, it wouldn't make me like it. If I liked it, I wouldn't wait until it was a last resort, would I?

      Anybody who thinks one language is good for all jobs has very narrow programming experience. Every language involves compromises, and the compromises that are great for one project can be terrible on another.

      Well, I was speaking more about the platforms in this case, hence the mentioning of Java-Mono.

      If you were speaking about the platform, why didn't you just write "Mono"? Java does seem to suggest a particular language.

      Heck, I'd be happy to give Mono a try. How does it run under Windows XP and does it support the same range of languages as .NET?

      --
      Quidnam Latine loqui modo coepi?
    11. Re:clone or unique, but not both by binarylarry · · Score: 0, Troll

      Have you actually tried using C#, or are you basing your judgement on reading about its features?

      Yes, I have which is exactly why your comment is hilarious.

      Even if it were the language I could count on when all else failed, it wouldn't make me like it. If I liked it, I wouldn't wait until it was a last resort, would I?

      Sorry, you don't strike me as a competent programmer.

      If you were speaking about the platform, why didn't you just write "Mono"? Java does seem to suggest a particular language.

      I infact DID write Mono and Java is a language and a platform. Hence you should know when I compare Mono and Java, I'm speaking of Java the platform vs Mono the plaform. Java the language vs Mono the plaform doesn't make any sense.

      --
      Mod me down, my New Earth Global Warmingist friends!
    12. Re:clone or unique, but not both by pherthyl · · Score: 1

      >> I have tried Qt. It would be my preferred choice if .NET were not available (I still prefer .NET), except it is completely useless to me because I don't use C++ or Java.

      I think it's time to be a little less set in your ways about what language you use.. Really there isn't that much difference in these languages anyway, mostly syntax. You might not care about cross-platform support right now, but maybe you will in the future, and with Qt you'll have it. With .NET you might with mono, but it's certainly not guaranteed and for sure won't be as mature or performant (especially if you use new things like WPF).

    13. Re:clone or unique, but not both by XDirtypunkX · · Score: 2, Informative

      Clone with a beard... Let's see...

      Things C# does that Java has no concept of:
      Delegates, multi-cast language support for events, closures/lambdas, generic constraints, scoped resource usage (using), partial methods/classes, LINQ queries, extension methods, expression trees, operator overloading, custom compilation attributes attached to fields, classes and methods, first class value types/structs, out/ref support and many more.

      Java is to C# as the Special Olympics are to the real thing.

    14. Re:clone or unique, but not both by scotch · · Score: 1

      Even if it were the language I could count on when all else failed, it wouldn't make me like it. If I liked it, I wouldn't wait until it was a last resort, would I?

      Sorry, you don't strike me as a competent programmer.

      How do you get that out of what he has written? People that don't like C can't be competent programmers?

      --
      XML causes global warming.
    15. Re:clone or unique, but not both by stony3k · · Score: 1

      As I said, a big advantage of .NET is that it doesn't tie you to a language.

      You can run more than just Java on the JVM - Scala, Ruby and Python to mention a few. And I'm sure more could be added if there was a need - that's the beauty of open source. So what's the reason you need the .Net framework again?

      --
      Freedom is not worth having if it does not include the freedom to make mistakes. - Mahatma Gandhi
    16. Re:clone or unique, but not both by Anonymous Coward · · Score: 0

      cos Mono isn't just Java. It's so much more.

    17. Re:clone or unique, but not both by digitig · · Score: 1

      Have you actually tried using C#, or are you basing your judgement on reading about its features?

      Yes, I have which is exactly why your comment is hilarious.

      Then I am genuinely puzzled. Here are a couple of lines from a textbook example (I can't work out how to format the whole example so that /. will accept it):
      var nums = new int[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
      var result = from n in nums group n by n % 2;
      The first of those lines is not so unlike Java, but the second? How do you write a query on an array in Java? How do you pass lambdas to such queries? Maybe Java has come on since I last used it, but I didn't think Java had those features, and they very much give modern C# its flavour.

      Even if it were the language I could count on when all else failed, it wouldn't make me like it. If I liked it, I wouldn't wait until it was a last resort, would I?

      Sorry, you don't strike me as a competent programmer.

      Then help bring me up to your exalted standard.

      If you were speaking about the platform, why didn't you just write "Mono"? Java does seem to suggest a particular language.

      I infact DID write Mono and Java is a language and a platform. Hence you should know when I compare Mono and Java, I'm speaking of Java the platform vs Mono the plaform. Java the language vs Mono the plaform doesn't make any sense.

      I agree that Java the language vs. Mono the platform doesn't make any sense, but I'm not sure what you mean by Java the Platform. If you're referring to the Java bytecode then it still doesn't make sense to compare it with .NET (with which I am more familiar than mono): the comparison would be to the CLR, not to the whole .NET framework. Is that not the case with mono?

      --
      Quidnam Latine loqui modo coepi?
    18. Re:clone or unique, but not both by digitig · · Score: 1

      I think it's time to be a little less set in your ways about what language you use.. Really there isn't that much difference in these languages anyway, mostly syntax.

      I tell you that I use C#, Ada, Eiffel and Python, and you think I'm too set in my ways about what language I use? In my time I've also used PDP8 Assembler, Focal, Coral, Pascal, Forth, C, C++ and Java. At the moment I'm learning OCAML. I'm well aware of which differences are syntactic and which are more fundamental.

      You might not care about cross-platform support right now, but maybe you will in the future, and with Qt you'll have it.

      When I need cross-platform, the availability of appropriate cross-platform libraries is of course a factor. At the moment the cross-platform stuff I do uses Python with wxPython. The superiority of Qt over wxWindows/wxPython is not enough to shift me from Python to C++/Java, although a need for speed or scaleability might. One factor is how many languages I can keep "active" at a time, and my limit seems to be about four (not counting things like SQL. HTML and laTeX as languages) because of course if I don't use them I forget them. If I had to use FORTRAN now I'd pretty much have to learn it from scratch because I've forgotten it all in the 27 years since I wrote anything significant in it (I forgot it as quickly as I could, actually, and once refused a promotion because it would have meant working in FORTRAN. But that's another thread).

      --
      Quidnam Latine loqui modo coepi?
    19. Re:clone or unique, but not both by Anonymous Coward · · Score: 0

      there's genuinely some pretty cool stuff in the .net libraries

    20. Re:clone or unique, but not both by Anonymous Coward · · Score: 1, Insightful

      I still honestly don't see what the supposed benefit of Mono is supposed to be. If you want to write nice graphical applications, there's plenty of toolkits available for C, C++, Python, etc. Many of them are even cross-platform, so making a version for a different OS only requires a recompile. If you want truly compile-once, run-anywhere code, there's already Java. What's the point of Mono?

      You might as well ask what the point of having many programming languages is. They're all Turing-complete, right? So let's all standardise on one.

      C# is a wonderful language to write in. Expressive, type-checked, with support for lambda expressions and an extensive standard library and conveniences like true generics, initializer expressions and LINQ that C, C++, and Java just don't have. The question shouldn't be "What's the point of Mono?"; it should be "Why not implement Mono?". More choice in the software ecosystem, and particularly in the developer ecosystem, can be a great thing.

    21. Re:clone or unique, but not both by Dragonslicer · · Score: 1

      I greatly prefer C# to Java, and see very little similarity between them.

      LOL... that's all I can really say about that.

      Have you actually tried using C#, or are you basing your judgement on reading about its features?

      Granted, I haven't written anything in C# in a couple years, but last time I did, yes, it was very similar to Java. Personally, I think it's better than Java (Generics and Delegates being the two things that stuck out at the time), but I don't really think you can deny the basic similarities in the paradigms of the two.

    22. Re:clone or unique, but not both by digitig · · Score: 1

      Granted, I haven't written anything in C# in a couple years, but last time I did, yes, it was very similar to Java. Personally, I think it's better than Java (Generics and Delegates being the two things that stuck out at the time), but I don't really think you can deny the basic similarities in the paradigms of the two.

      I think you can now that Linq has added a functional programming paradigm to C# -- it really has changed the flavour of the language.

      --
      Quidnam Latine loqui modo coepi?
    23. Re:clone or unique, but not both by RightSaidFred99 · · Score: 1

      Yes, I have which is exactly why your comment is hilarious.

      C# is obviously Microsoft's "answer" to Java. So what? As it turns out, C# and the .NET platform are vastly more advanced than Java in almost every way. It's not even close in terms of language features or the richness of the _native_ platform feature set.

      Now, Java of course is vastly superior for cross-platform applications and also has a much more rich "ecosystem" of open source and third party class libraries.

    24. Re:clone or unique, but not both by Anonymous Coward · · Score: 0

      "Just" a recompile can be a crap-ton of work... :)

      Personally: I use mono so that I don't have to use VirtualBox as often. I'm targeting windows =)

    25. Re:clone or unique, but not both by pherthyl · · Score: 1

      PyQt then if you use python. Works well for me, but I actually don't see a whole lot of advantages of using Python over C++ with Qt. http://www.riverbankcomputing.co.uk/software/pyqt/download

      Not saying that you should switch to Qt, just pointing out the options.

    26. Re:clone or unique, but not both by digitig · · Score: 1

      My main problem with C++ is that I have to keep looking over my shoulder for gotchas (actually, I have to keep the CD version of Scott Meyers' books open on my desktop and checking almost everything I do against them). Python gives me far fewer nasty surprises. My choice of favourite languages is pretty much the list of languages that give me fewest nasty surprises.

      --
      Quidnam Latine loqui modo coepi?
    27. Re:clone or unique, but not both by Tetsujin · · Score: 1

      there's genuinely some pretty cool stuff in the .net libraries

      Accepted. But could you please elaborate?

      --
      Bow-ties are cool.
    28. Re:clone or unique, but not both by shutdown+-p+now · · Score: 1

      Delegates, multi-cast language support for events, closures/lambdas, generic constraints, scoped resource usage (using), partial methods/classes, LINQ queries, extension methods, expression trees, operator overloading, custom compilation attributes attached to fields, classes and methods, first class value types/structs, out/ref support and many more.

      The following from your list are not correct, as Java 5+ supports them: generic constraints, attributes.

      Delegates and lambdas are somewhere in between. Java has anonymous inner classes, and they can capture locals declared as final. This is more limited, and more verbose, but it does work when you really, really need it.

      The rest is correct.

    29. Re:clone or unique, but not both by e2d2 · · Score: 1

      Yeah agreed. I hate Perl with a passion because I think it's too obtuse and has been stretched further than it was originally intended, but I can write it no problem and have programmed long enough in general to laugh at dick waving contests that concern my "competency" (example: REAL MEN use X and everything else is for pussies!). This is the biggest joke within the development community.

      IMO programmers should look across the spectrum of languages in their spare time so they can experience how others do it. After all, how else are you gonna steal all the great ideas that have been done before?

      When I go "code hunting" for a new C# project that gets dumped in my lap you better believe I walk all over Java-land and see what's been done. Then go to the Ruby-house and take a peek. Then walk down the road to C++ and peek in that house. And then I run past the ANSI C house because those guys will kill me for asking such stupid questions*!

      *I kid. I've never found a more "enjoyable" set of characters to dwell with than embedded C programmers. They know it's legitimately hard and try to help, instead of pretending it's hard and being a bunch of self-righteous assholes crying RTFM.

    30. Re:clone or unique, but not both by cbhacking · · Score: 1

      Mono allows the use of many languages in one project. This means that developers are less limited in their language choice, and makes it easier to port things from (for example) Python, which has a .NET/Mono implementation.

      C# is also, frankly, a superior language to Java. Java may have popularized the "compile once run anywhere" theme, but that doesn't inherently make it a great language to develop in - its core is badly outdated, but preserved for legacy reasons, and the modernizations piled on top feel like something of a kludge.

      --
      There's no place I could be, since I've found Serenity...
  9. The thing is... by Darkness404 · · Score: 2, Insightful

    The thing is, everyone associates Java with slow psudo-3-D games that take forever to load on a cell phone or browser. People associate other (sometimes slower) languages such as Python and .NET/Mono to be much, much, faster. Now, this isn't really correct, but if I was going to learn a new language, it probably would be .NET or Mono and not Java.

    --
    Taxation is legalized theft, no more, no less.
    1. Re:The thing is... by Snowblindeye · · Score: 1

      Maybe it's just my perception, but it seems to be that .net fell far short of its original ambitions.

      It was touted as a game changer and the future of coding on Windows. At which point it made sense to have an open alternative to it on Linux.

      However these days it feels more like it has become the new VisualBasic, and that's about it. Sure, some business apps and some other applications get written in it, but it's not like without it Linux is doomed. Microsoft themselves did an about face and pulled a lot of the .net stuff out of Vista (when it was called Longhorn) and replaced it with native code.

    2. Re:The thing is... by DragonWriter · · Score: 3, Informative

      Now, this isn't really correct, but if I was going to learn a new language, it probably would be .NET or Mono and not Java.

      .NET and Mono aren't languages.

    3. Re:The thing is... by 0xABADC0DA · · Score: 4, Insightful

      Learn x86, C, Java, JavaScript. EOL.

      Anything more is bonus.
      Anything less is lacking.

    4. Re:The thing is... by rocket22 · · Score: 4, Interesting

      Unfortunately (or maybe not) the truth is 20 years later, to write multi-platform products, the best option is still C/C++...

    5. Re:The thing is... by AKAImBatman · · Score: 1

      Mod parent up to +11. And I'd like to emphasize learn Javascript. Don't assume you already know it. Because chances are you probably don't.

    6. Re:The thing is... by Tatsh · · Score: 1, Troll

      Learn and master C, as above is saying! Seriously, I try hard as possible to stay away from .NET/Mono/Java/bytecode apps as much as possible. Why? Speed, obviously!

      The worse argument I have seen is that when we have computers that are faster in the future, the speed will not be a problem.

      I will always prefer to program in C (or C++) and have the program be native. I am very supportive of the GCJ project, which turns Java source into native. Soon Swing will be implemented, making the case for using bytecode INCREDIBLY impossible to justify. Mono should do this with C# and the like. I do not even see why Microsoft did not do this anyway. All it involves is making new libraries. What is the difference in making C# native as making MFC API native back in 96? Instead we get more bloat. How does this make any sense?

      I have much better things to do than wait for Java AND your app to initialise. Furthermore, I have better things to do than wait for Java AND your app to de-initialise at exit. Same goes for .NET and Mono.

    7. Re:The thing is... by Tatsh · · Score: 2, Interesting

      Yeah, because you can compile standard C and standard C++ on just about EVERY platform. Unfortunately the phone OS makers do not want us to make native code and instead want us to program Java apps. With that we will never be able to trash the idea that phone apps are slow and pseudo-3D.

    8. Re:The thing is... by htnmmo · · Score: 1

      According to this, http://www.odinjobs.com/US_skill_statistics.html

      Java developers are still in more demand.

      I had other links but don't have time to find them now.

      Java webapps haven't been slow for some time. A few years ago, after being a java developer since the mid 90's, I played around with PHP and have developed some sites with it. I did some informal benchmarking, using my custom java framework against a very simple PHP application that actually did less work. The java web app performed much better.

      I haven't really looked at .net but I haven't had the need for it.

    9. Re:The thing is... by AKAImBatman · · Score: 5, Insightful

      Seriously, I try hard as possible to stay away from .NET/Mono/Java/bytecode apps as much as possible. Why? Speed, obviously!

      Then you are a fool.

      Axioms of software design:

      1. Algorithmic improvements will always trump optimizing execution speed.

      2. Unless there is a hard requirement, development time is more important than raw performance.

      3. Hardware is cheaper than developers.

      4. A rich and flexible library is more useful and stable than custom coding for performance.

    10. Re:The thing is... by ciggieposeur · · Score: 5, Interesting

      I used to code Java in the JDK 1.1 - 1.4 days. It sucked ass. It was slow, had weird dependencies on X11, required a lot of boilerplate code (such that up to half of the LOC could be logging inside exception blocks), had various JRE incompatibilities all over the place (such that some applications just couldn't be run bug-free on ALL of AIX/Solaris/Windows/Linux/Mac), and the reference JDK/JRE was Sun's proprietary property. I left Java and went on to C, Perl, C++, and Lisp. Naturally I used Emacs and SLIME.

      Then I found Clojure. And I got a $350 laptop from Walmart last week that had 3 gigs of RAM and a single-core 1.8GHz AMD processor. And I thought, "I wonder if Eclipse will run decent on this thing?" And it does, and it's not all that slow, and it is by far the best IDE I've ever used.

      I'm now re-climbing the learning curve on modern Java, and it's looking pretty good now. AspectJ does a good job eliminating a lot of repetitive code, eclipse-metrics warns me when I'm not being decent at OOP design, and the available libraries are top-notch. Java the language isn't so bad anymore, and now with Clojure on top I have plenty of linguistic room to prototype and get to choose the best among many paradigms for each situation.

      Give Java a fresh look, it's come a long way.

    11. Re:The thing is... by bfizzle · · Score: 1

      I haven't really looked at .net but I haven't had the need for it.

      .NET is typically faster than Java because code is compiled into native machine code after the first run and doesn't have a VM in the way.

      There are compilers for PHP to help boost performance above what you saw in your testing.

    12. Re:The thing is... by Anonymous Coward · · Score: 0

      Mono/IKVM are some of the fastest JVM's on ARM.

      Odd that, since it's not a JVM.

    13. Re:The thing is... by htnmmo · · Score: 1

      You've obviously never heard of java's just in time compiler.

    14. Re:The thing is... by Zan+Lynx · · Score: 3, Insightful

      More axioms:

      1. Once the application is developed, you will be told that there is a hard requirement that no one knew of, until faced with waiting 5 seconds per record commit.

      2. Once the application is developed, rewriting it in C++ is almost as difficult as writing it that way from the first.

    15. Re:The thing is... by ChadAmberg · · Score: 1

      Just remember the biggest downside to being a Java developer: Java is the language of "Your job is being outsourced to India. Please train your 14 replacements within the next 4 weeks."

    16. Re:The thing is... by miserere+nobis · · Score: 4, Insightful

      Consider the following sentence:

      "If I was going to buy a new car, it would probably be Ford or Chevy and not GMC."

      "Ford and Chevy aren't cars," would be one possible response, but an unnecessary attempt at correcting something that could have been interpreted in a way that made sense to begin with.

      It makes sense to speak of a language being .NET, which the earlier poster did, even if it doesn't exactly make sense to speak of .NET being a language, which you decided the earlier poster must have meant to do.

    17. Re:The thing is... by thePowerOfGrayskull · · Score: 1

      I have much better things to do than wait for Java AND your app to initialise. Furthermore, I have better things to do than wait for Java AND your app to de-initialise at exit. Same goes for .NET and Mono.

      Spoken like somebody who hasn't actually attempt to RUN a java or .net application in the last 5 years.

      Mono should do this with C# and the like.

      Spoken like somebody who hasn't looked at Mono in the last couple of years ;)

    18. Re:The thing is... by binarylarry · · Score: 2, Informative

      Yeah, that's because most ARM platforms can execute Java bytecode natively.

      The processor IS the JVM.

      --
      Mod me down, my New Earth Global Warmingist friends!
    19. Re:The thing is... by cnettel · · Score: 1

      And you haven't heard of ngen, or you don't understand it. (But, honestly, it doesn't seem like the grandparent does, either.)

    20. Re:The thing is... by binarylarry · · Score: 1

      That's pretty much completely wrong.

      You fail it.

      --
      Mod me down, my New Earth Global Warmingist friends!
    21. Re:The thing is... by clampolo · · Score: 2, Insightful

      1. Algorithmic improvements will always trump optimizing execution speed.

      And what are these magical algorithms that only work in Java and C# but don't work in C/C++?

      2. Unless there is a hard requirement, development time is more important than raw performance.

      I fail to see how Java and C# reduce development time.

      3. Hardware is cheaper than developers.

      You have clearly never done any embedded work. You think a customer is going to want to pay the extra money for a device that runs Java instead of one that does the same thing and runs on a $1 micro running C/C++? Furthermore if you seel 100,000 pieces, every $1 of hardware is $100,000.

      4. A rich and flexible library is more useful and stable than custom coding for performance.

      Depends on the application. Write a CAD tool in Java and see if customers don't mind it when their compilations take an extra hour to finish

    22. Re:The thing is... by Culture20 · · Score: 1

      Furthermore if you seel 100,000 pieces, every $1 of hardware is $100,000.

      Ah, but Java developers can be hired at $16/hour, whereas someone who knows C / C++ (well) commands quite a bit more. Throw $100,000 of hardware at the end product and you might still be saving money. Plus, the end consumer can always be charged the difference.

    23. Re:The thing is... by John+Jamieson · · Score: 2, Insightful

      I think we have to be careful not to dismiss interpreted languages, and not to think they should be used everywhere either. Each language has a place.

      I have to disagree with statement #2 though. In my research, it seems that it is usually quicker to prototype and THEN write in C++.

      To prototype in something like python usually saves a lot of time.

    24. Re:The thing is... by Anonymous Coward · · Score: 0

      Seriously, I try hard as possible to stay away from .NET/Mono/Java/bytecode apps as much as possible. Why? Speed, obviously!

      Then you are a fool.

      I disagree, although I admit this point of view seems to very popular at the moment.

      Axioms of software design:

      1. Algorithmic improvements will always trump optimizing execution speed.

      And if the optimal algorithm is dependant on the hardware?

      2. Unless there is a hard requirement, development time is more important than raw performance.

      A platform is no good if it only works in certain cases, even if they are the most common cases. there are plenty of options that reduce development time without needlessly raising the bottom line.

      3. Hardware is cheaper than developers.

      Which hardware and whose developers?

      4. A rich and flexible library is more useful and stable than custom coding for performance.

      The two are not mutually exclusive.

      Maybe this has already been mentioned but LLVM is the way to go in my opinion.

    25. Re:The thing is... by shutdown+-p+now · · Score: 2, Insightful

      More axioms:

      1. Once the application is developed, you will be told that there is a hard requirement that no one knew of, until faced with waiting 5 seconds per record commit.

      2. Once the application is developed, rewriting it in C++ is almost as difficult as writing it that way from the first.

      There's one you forgot:

      3. After rewriting your application in C++, you find that it still runs as slow as it did before. This is because all it does is calling a bunch of library calls, which is going to be the same performance-wise in C++ and C# (and Java, and for the most part even Python...).

    26. Re:The thing is... by htnmmo · · Score: 1

      ngen has it's drawbacks. A lot of optimizations are better dun at run time. With JIT optimizations, the compiler can be more aggressive and then still have the ability to back out of optimizations if necessary.

      ngen can help with load time but for constantly running instances, such as web applications, load time is irrelevant.

    27. Re:The thing is... by shutdown+-p+now · · Score: 2, Insightful

      Java the language isn't so bad anymore ... Give Java a fresh look, it's come a long way.

      The problem is that other languages came a long way too. Today, not having support for closures for a language is a shame (consider that VB has it already for more than a year now, and even C++ is adding it) - yet we are not going to see that in Java 7, that's still more than a year in the future, and God knows when Java 8 will be released, if it ever happens. Some other stuff in Java is rather messed up - generics are a prime example of that. It really is becoming a language that is too burdened by backwards compatibility.

      It's also somewhat ironic that quite a few of the present C# team were prominent people in Java language design in the past. Mads Torgersen, currently C# program manager at MS, is the guy who originally designed generic wildcards for Java, and provided the reference implementation for them - both ending up in Java 5. Neal Gafter, a more recent Microsoft acquisition, and also now on the .NET languages team, worked on Java 1.4 and 5 compilers, but is probably most famous for his detailed proposal to add closures to Java - something that many people originally expected to see in Java 7, but that will most likely not happen anymore (Neal did his job - the reference implementation is available - but Sun apparently doesn't care enough to actually use it).

      Java truly is becoming the COBOL of today: a stagnant, no longer actively developed language in which tons of existing code are written and needs to be maintained. This isn't meant to be disparaging, and there's certainly a place for such languages; but if you want reasonably modern language design, Java isn't going to offer that to you, while C# still can.

    28. Re:The thing is... by curunir · · Score: 1

      And I'd like to emphasize learn Javascript. Don't assume you already know it. Because chances are you probably don't.

      I know I don't know it and I see no reason to change that. I'm sure I know more than many people who do say that they know it, but I know enough to know they're wrong. Javascript is a horrible mess of implementation-specific gotchas that take years to figure out. Someone I worked with was one of those people who knew it as well as anyone. He knows every way to get IE to say "Feature not implemented" and every way that it is possible to leak memory in each browser (and there are many.) Just listening to him talk on the subject made me realize that there was no way that I could get to a point where I was proficient in the language without devoting years of my life to it as he had done.

      But thankfully Java is one of the languages that I know well and there are multiple frameworks that let you write Java code to run in all the places where you're normally limited to Javascript. Since migrating our UI code to GWT, our development times are faster, we have less bugs and our application actually performs better than it did when the code was in Javascript. GWT is full of truly bizarre design decisions that you have to work around, but when you get to the actual programming of a dynamic UI, the experience blissful by comparison.

      As I see it, there's simply no reason why anyone should consider writing a dynamic web UI in Javascript these days. Javascript is the web equivalent of assembly...we've reached the point where a compiler for a higher-level language can use it as an intermediary language to compile to. And that compiler can produce code that performs better than the code that written by 99% of humans. And for those rare instances where you need to hand tune a small bit of code, the frameworks give you the ability to write your own Javascript, though we've yet to need that ability.

      So I'd offer the exact opposite advice. Don't learn Javascript. Learn one of the Javascript frameworks that allows you to write code in a language that's less prone to bizarre errors and has better tooling support. I can speak from experience when I say that life becomes a lot easier when you go this route.

      --
      "Don't blame me, I voted for Kodos!"
    29. Re:The thing is... by Tatsh · · Score: 1

      I used Mono pretty recently and was completely disappointed by lack of features in comparison to .NET. I thought it was supposed to be the open source equivalent, yet it is versions behind and lacking so many features.

      At the same time, Wine needs .NET too. Mono has no plans of having Wine or SOMETHING run native apps (Windows exes) that a C#-based front-end to a CLI app might use. This is my other problem with .NET. It is seriously locked to Windows because Windows gets all the features, and gets to run the native apps too.

      Okay, so you can code less with C# and possibly Java. So what! Your code is still going to run slower than C code. I know about Paint.NET; seems to be just an example application supporting the usage of .NET, nothing more.

    30. Re:The thing is... by Tatsh · · Score: 1

      So it is a money issue. That is the saddest part. We are going to have lesser performing applications all because software companies want to pay less to developers.

      I would rather pay $100 more for a sleek native program vs a Java one.

    31. Re:The thing is... by Tatsh · · Score: 1

      1. Algorithmic improvements will always trump optimizing execution speed.

      And what are these magical algorithms that only work in Java and C# but don't work in C/C++?

      2. Unless there is a hard requirement, development time is more important than raw performance.

      I fail to see how Java and C# reduce development time.

      3. Hardware is cheaper than developers.

      You have clearly never done any embedded work. You think a customer is going to want to pay the extra money for a device that runs Java instead of one that does the same thing and runs on a $1 micro running C/C++? Furthermore if you seel 100,000 pieces, every $1 of hardware is $100,000.

      4. A rich and flexible library is more useful and stable than custom coding for performance.

      Depends on the application. Write a CAD tool in Java and see if customers don't mind it when their compilations take an extra hour to finish

      My point exactly. And another thing, as expressed in your last point, time is expensive! What is more important? Getting software out the door faster that sucks? Or getting your designs ready (on time, on schedule) with a native app that will not rely upon the (buggy) Java VM or .NET.

    32. Re:The thing is... by htnmmo · · Score: 1

      The whole application is not likely to be the problem but there may be certain bottlenecks that you just can't get around.

      After profiling the app and attempting to make changes in Java, you can always write a native library and call it if performance is better.

      No need to rewrite the whole application.

    33. Re:The thing is... by The+End+Of+Days · · Score: 1

      You have clearly never done any embedded work.

      Are you trying to imply that since a given technology works best for embedded software, it should be used for everything? That's the whole "I have one tool in my toolbox" mentality that makes me stay away from "C IS MY GOD" people.

    34. Re:The thing is... by bfizzle · · Score: 1

      Gee thank you for the informative post. I'm sure Java has ways to compile to native machine code and other tricks to optimize run times...

      But the nice part about .NET is optimization is built into the system. No need to be a guru, your hello world application will be compiled to native code. Not to say your crappy code is optimized... but that is a completely different story.

    35. Re:The thing is... by AKAImBatman · · Score: 1

      I know I don't know it and I see no reason to change that. I'm sure I know more than many people who do say that they know it, but I know enough to know they're wrong.

      No, you don't. You are arguing from a position of ignorance. If you had taken the time to learn JS and then made the statement to stay away from it, then you would have the necessary credentials to provide a convincing argument. Or at least relayed the same sentiment from someone who has those credentials. Instead, you managed to type a page-long post about how Javascript looks scary, ergo it is.

      Since migrating our UI code to GWT, our development times are faster, we have less bugs and our application actually performs better than it did when the code was in Javascript.

      Our development times dropped like a rock. GWT presented as much of a barrier to developing web apps as it did a benefit. So I've made a point to start training my staff to understand and use the Javascript language correctly. This makes them far more productive than the stop-gap solution that GWT provides.

      And I hate to break it to you, but you're going to have to deal with the JS eventually. GWT breaks down in a lot of complex situations. Unless you know how to thunk down to the JS level in those situations and write good code, you're going to have a lot of trouble meeting your goals in the future. I'm sure that the Javascript experts on your team are currently covering that gap for you. But how long will they continue to do so? Will they always be available? Will you be as valuable to your employer as JS code becomes more common and you still don't know how to properly work with it?

    36. Re:The thing is... by CoughDropAddict · · Score: 1

      Maybe in your field, but these are by no means universal.

      There's a point where your software is running on enough machines at the same time that the developer cost of optimizing it is cheaper than the hardware cost of buying more machines.

      Just because you've never worked in a situation where this was the case doesn't mean it doesn't exist.

    37. Re:The thing is... by pherthyl · · Score: 1

      >> Then you are a fool.

      And you are too quick to jump to conclusions.

      >> 1. Algorithmic improvements will always trump optimizing execution speed.

      True. But when the algorithm is correct in both cases, the execution speed starts to matter.

      >> 2. Unless there is a hard requirement, development time is more important than raw performance.

      Also true. But you are assuming that developing in C# will be faster than developing in something equivalent like C++/Qt. To my knowledge, there is no evidence for this statement, which makes your axiom meaningless for supporting a higher level language like C#/Java/etc.

      >> 3. Hardware is cheaper than developers.

      Not always, but in general yes. This rests on the same assumption as the previous one.

      >> 4. A rich and flexible library is more useful and stable than custom coding for performance.

      Also true. And also based on the assumption that the libraries available in something like C++ (Qt again since that's what I have experience with) is any less rich or flexible than the .NET/Java class libraries. That just isn't true in my experience (I'm talking about desktop apps here, not web programming).

    38. Re:The thing is... by binarylarry · · Score: 1

      That's actually whats cooler about Java.

      It's even easier.

      It's optimizations happen while its running, allowing it to make more optimizations than is possible with AOT.

      So there's no middle man, no step before you run it. The JIT can optimize better than the AOT compiler can and you don't have to do anything but run it to reap the benefits.

      --
      Mod me down, my New Earth Global Warmingist friends!
    39. Re:The thing is... by chthonicdaemon · · Score: 1
      Actually, my experience has always been that starting with a known working implementation in some dynamic language (in my case used to be Matlab, now Python), makes it a heck of a lot easier to rewrite in a more fussy (but faster) compiled language (Fortran for numerics C++ for some other stuff like file handling).

      Assuming that:

      Language expressiveness differs, and dynamic/interpreted languages tend to get more stuff done in less lines than static/compiled ones.

      There is good evidence that suggests the number of lines you produce per hour is insensitive of language

      Data suggests you can do about twice the number of lines on a known problem than an unknown one

      The bottlenecks in large programs are not as easy to predict as one may think -- profiling is often necessary to avoid premature optimization.

      we conclude that it makes sense to take the knock on execution speed while developing a new algorithm or routine while the data size is small so that we can get more done in less time. We should then come out positive if we can just optimize the parts that are really slowing the program down, because even though we need more lines to do the same thing, we're in the more lines per hour area because we've solved the problem already.

      --
      Languages aren't inherently fast -- implementations are efficient
    40. Re:The thing is... by Eli+Gottlieb · · Score: 1

      Unfortunately (or maybe not) the truth is 20 years later, to write multi-platform products, the best option is still C/C++...

      Well yeah, because nobody has even attempted to create a more advanced language that can still compile to C and C++'s target: bare metal with no software beneath it. It's this absolute lack of requirements other than a Turing-complete processor and a memory address-space that have made C/C++ so absolutely portable, and it's this absolute portability to different platforms that has made them successful.

    41. Re:The thing is... by Adam+Jorgensen · · Score: 1

      Indeed. Java as a language is mostly bollocks. It has a huge support library, but not much else. Java as a platform is a powerhouse. At this point the JVM can host implementations of a number of major languages (Jython, JRuby, Scala, Clojure, Jaskell, JavaScript via Rhino, PHP and more) and these implementations can interconnect. To me, that is real power. The flexibility to use the best languages for the job without worrying to much about how you're going to tie them all together...

    42. Re:The thing is... by Anonymous Coward · · Score: 0

      I have to disagree with statement #2 though. In my research, it seems that it is usually quicker to prototype and THEN write in C++.

      To prototype in something like python usually saves a lot of time.

      Seconded. If I'm writing something with a GUI, I'll almost always start in PyGTK or PyQt before making my way to compiled code. And then the conversion is NOT hard at all. The hard part was designing the layout and the algorithms; the actual syntax of the implementation is maybe 25% of the effort in the worst case.

    43. Re:The thing is... by savuporo · · Score: 1

      Telling anyone to learn C these days is a serious disservice. C++ with the plethora of cross-platform abstraction layers available is suitable for development of pretty much anything anywhere, and its a way more productive language, if taught right.

      And for x86 .. erm .. i assume you meant assembly there but i'd say learn ARMv4 instead. You have way more options as a developer in future.

      --
      http://validator.w3.org/check?uri=http%3A%2F%2Fwww.slashdot.org Errors found while checking this document as HTML5!
    44. Re:The thing is... by curunir · · Score: 1

      No, you don't. You are arguing from a position of ignorance.

      Wow, you're presumptuous. You don't even know me and yet you've concluded from my reasonable opinion that Javascript is an unworkable mess that I don't have the experience to see what a blissful experience you seem to think it is. You could not be any more wrong. I know the language and have written a ton of code in it. I even wrote a custom linker/compressor that we used to take our well-organized, commented and readable Javascript and turn it into code that was optimized and could be delivered to the client in one HTTP request. That code required me to heavily modify the available ECMAScript ANTLR grammar to accept all the Javascript our app used. I learned more about Javascript variable scoping and language requirements than I ever wanted to. I know the language.

      The part I readily admit I don't know is all the browser quirks, so that's why I say that I don't know Javascript. That's the part that takes a lot of experience to learn and that's the part that you absolutely need to know if you're going to write complex UIs in the language. And I'd bet my last dollar that you don't know all the quirks either. It takes years of experience using it to learn everything. Most of those quirks are not covered in any blog, article or tutorial. They're things you have to figure out by running into the problem only to figure out that it's some idiotic browser limitation that you have to code around. If you've ever tried to get something working in IE 6, you'd know this. It's hell.

      Add to that that there isn't a workable unit testing framework for Javascript...and sorry, jsunit is a horrible kludge that, among other things, makes testing anything that involves setTimeout or setInterval require a lot more effort than it should. Hell, even the developers of many of the major Javascript frameworks write tests that use Rhino instead of running inside an actual browser. As of about 6 months ago, when we switched to GWT, there was just no good way to automatically test for regressions in UI code.

      And I hate to break it to you, but you're going to have to deal with the JS eventually. GWT breaks down in a lot of complex situations.

      Now who's talking from a position of ignorance. Just because you couldn't make GWT work doesn't mean that others can't. Sure, we had to write a lot of supporting code to work around GWT's shortcomings, but at no time have we had to write jsni. You statement that GWT breaks down eventually is utter bullshit. If you learn to use it and learn ways around its limitations, you can do anything with it. Our app is proprietary, so unfortunately I can't show it to you, but it's well beyond the kinds of stuff that you see in other GWT apps like Lombardi's BluePrint. I highly doubt you're tackling anything that's even close to our level of complexity. At the rate we're going, we'll have over 10,000 unit tests for our UI alone once we've finished the GWT version (using our own testing harness, since GWT's idea of a unit test isn't really a unit test). All of them run through JUnit and all of them run in all of the versions of the big 3 browsers that we support (IE 6/7, Safari and FF 2/3).

      In short, we've replaced a custom Javscript solution (since none of the Javascript frameworks could handle the complexity of our application...and we tested them all) with GWT and the number of regressions that make it to QA has dropped dramatically. And the amount of time we spend making our app performant in the browser has also decreased substantially. It required 3 months of 10 engineers working full time building out all that infrastructure we felt was missing from GWT, but once everything was in place, the actual coding of the application became much easier.

      Also, on a side note, Javascript gets used as a UI language and yet has no support for threading...how insane is that? It's been accepted practice in the non-webapp realm for quite some time that

      --
      "Don't blame me, I voted for Kodos!"
    45. Re:The thing is... by Anonymous Coward · · Score: 1, Informative

      One word: cython.

    46. Re:The thing is... by Anonymous Coward · · Score: 0

      Give Java a fresh look, it's come a long way.

      Pah, next thing you'll be claiming that Apple Macs have got colour graphics and a command line now, and can do proper multitasking...

    47. Re:The thing is... by fejjie · · Score: 1

      Like what features is it lacking? Have you submitted feature requests for the features you think it was lacking? Did you offer to contribute? Did you even email the mailing-lists?

      Mono has all of the C# 3.0 features in current releases (2.0, 2.2 and 2.4 (which is about to be released)) and the development branch, 2.5, already has some 4.0 features and Microsoft hasn't even released 4.0 yet and won't until late 2009 or 2010 (by which point Mono 2.6 will have been out for half a year or more).

    48. Re:The thing is... by lwriemen · · Score: 1

      A better axiom is to raise the level of abstraction. Use a technology like Executable UML to model your application and choose a model compiler that suits your needs for performance and platform independence.

    49. Re:The thing is... by Tatsh · · Score: 1

      Maybe the .NET or Mono framework should never be used for front-ends to CLI programs on any platform, but there are many on Windows. At the moment, any Windows user might assume that a .NET app will 'just work' on Mono not knowing that it is just front-end to a Windows app.

      The Mono team has no plans to support launching any type of binaries other than Mono and .NET ones. They will not work with the Wine team, which is clearly shown by how crappy .NET AND Mono run on Wine.

      I am on the side that finds Mono a waste of effort based upon the way it has gone.

    50. Re:The thing is... by evol262 · · Score: 1

      Seriously? OCaml, Haskell, D, Lisp, Forth, FORTRAN, COBOL, Delphi/Pascal, Ada? These languages don't exist? Depending on the use case, they're faster than C (OCaml/Forth in particular), also.

      --
      "The more corrupt a society, the more numerous are its laws." -Tacticus
    51. Re:The thing is... by gbjbaanb · · Score: 1

      The Mono team has no plans to support launching any type of binaries other than Mono and .NET ones. They will not work with the Wine team, which is clearly shown by how crappy .NET AND Mono run on Wine.

      I am on the side that finds Mono a waste of effort based upon the way it has gone.

      you've got to question that decision, Mono supports "pure" .NET apps only, not intended to make porting your windows apps to Linux, but to encourage uptake of .NET only. what happens when your app does some interop calls? Mono fails to support it completely.

      The Mono team should be working hand-in-hand with the Wine team if they truly want to make cross platform apps a reality, anything less is just a half-hearted attempt to benefit Microsoft's technology.

      I wish Mono team had spent their efforts on making the framework into a native library for all Linux applications - so your python code could use the same calls as your C++ code as your php code. Wouldn't that be good instead of all this bitching and restricted use.

    52. Re:The thing is... by gbjbaanb · · Score: 1

      ngen simply does a pre-jit instead of leaving it until runtime. It does not create "native code".

      For that, you need Mono and its static compilation feature - something not available in .NET.

    53. Re:The thing is... by arevos · · Score: 1

      Unfortunately (or maybe not) the truth is 20 years later, to write multi-platform products, the best option is still C/C++...

      Python seems to do pretty well. It's less performant than C/C++, but it's suitable for the large proportion of desktop applications.

    54. Re:The thing is... by ciggieposeur · · Score: 1

      Java truly is becoming the COBOL of today: a stagnant, no longer actively developed language in which tons of existing code are written and needs to be maintained. This isn't meant to be disparaging, and there's certainly a place for such languages;

      The same could have been said of Fortran, C, and C++ at different times, but all of those have had revivals and new language features added. Even COBOL had several major updates over its lifetime.

      Right now Java-the-language is near a pretty decent place for "enterprise" type development. It's easy to put a dozen people on one project and watch milestones get completed. The common language extensions are pretty good: annotations, AspectJ, and JUnit go a long way in quality control, and generics achieve the 80% benefit of C++ templates without the headaches of Turing-completeness. I think pushing the language much further would be more painful than just breaking out of the OOP paradigm and going with a dynamic language on the JVM like Clojure. Then you end up with a consistent platform in the JVM, Java as its assembly language, and all the syntactical/grammatical goodness you need for fuzzy problems. But the last thing Java needs is to become C++ without pointers.

      but if you want reasonably modern language design, Java isn't going to offer that to you, while C# still can.

      I'm not familiar enough with C# to make any conclusions about it. If you are, my question would be, "What can C# deliver that Java + Clojure can't?" Bear in mind also that OS independence is a must for me: some of my code does occasionally run on supercomputers.

    55. Re:The thing is... by TheTurtlesMoves · · Score: 1

      You forgot LISP/Scheme, Haskel, Prolog, ARM asm, Matlab, R, C++, Ada, Ocaml, ML, Lua, python, php .......

      If you learn a few properly learning others is pretty easy. I have used all the above more than once, and I bet the list is pretty long for a lot of people here. But perhaps less functional languages.

      Personally I think C# gets a lot right that java got wrong. But i'm not switching anytime soon.

      And to say something about the VMs are slow below. I just ported some C last weekend to java. Its 4x times faster. Good java on a top end VM like the IBM/Sun VM are as fast as native code and often faster. There are exceptions, but they are the exceptions. And C with asm blocks is *not* C.

      Vista is slow as a dog. Thats not the same as C/C++ is slow. There are a lot of badly designed java out there that is slow, that is not the same as java is slow.

      --
      The Grey Goo disaster happened 3 billion years ago. This rock is covered in self replicating machines!
    56. Re:The thing is... by TheTurtlesMoves · · Score: 1

      What a pile of bunk.

      Pay shit, get shit. In any language. Good java is fast. Crap C/C++ is slow. Has anyone here used VISTA? Is so frekin slow, and its not written in JAVA. Perhaps M$ was cutting pay and got developer's that reflected there pay grade.

      --
      The Grey Goo disaster happened 3 billion years ago. This rock is covered in self replicating machines!
    57. Re:The thing is... by TheTurtlesMoves · · Score: 3, Insightful

      I would rather pay $100 more for a sleek native program vs a Java one.

      Like M$ word, or perhaps the highly responsive XL. Or the ultra sleek and responsive vista OS with 1/2 the memory footprint and 2x the performance....

      Bloat, sleekness, performance is much much less a function of language than *how* that language was used.

      --
      The Grey Goo disaster happened 3 billion years ago. This rock is covered in self replicating machines!
    58. Re:The thing is... by TheTurtlesMoves · · Score: 1

      True story. After rewriting the whole app (c to c++ in this case) and it still was slow. We were called in as external contractors at this point. It only took a week to find the problem. It was bad SQL in a store procedure, giving a n^2 type performance when it should have been n (n>100k). Further inspection revealed that that was a few cases of this in the C++ and the sql. One section of code was a insertion sort when n was generally bigger than 10k!

      There is no language that can fix this.

      --
      The Grey Goo disaster happened 3 billion years ago. This rock is covered in self replicating machines!
    59. Re:The thing is... by TheTurtlesMoves · · Score: 1

      Programing languages are tools. Use the best tool for the job. Java is not the right tool for every job any more than C is the best for any job.

      Good coders i find do a good job in any language. I will go one further, good coders produce good code in languages that haven't used before. In fact i don't hire coders that don't have a few languages under there belt.

      --
      The Grey Goo disaster happened 3 billion years ago. This rock is covered in self replicating machines!
    60. Re:The thing is... by TheTurtlesMoves · · Score: 1

      Yeah, because you can compile standard C and standard C++ on just about EVERY platform.

      But the library's that talk to the hardware on different OS's are not the same. And thats the problem. However its a lot easier these days...

      --
      The Grey Goo disaster happened 3 billion years ago. This rock is covered in self replicating machines!
    61. Re:The thing is... by ivan256 · · Score: 1

      Well, 1 and 4 are right, but 2 is just plain moronic, and 3 is only right some of the time.

      Some of the best, and most profitable software is written by a small team with user experience in mind. Some of the most profitable software costs more to run than it did to write. If your project doesn't have a hard requirement for performance, your spec is faulty.

      You're right, though, that performance is a bad reason to stay away from bytecode apps. Most slow Java apps are slow because the complexity is higher than necessary (I'd argue that this is because Java makes it easy to hide algorithmic complexity, but C++ suffers from this too), not because they're non-native.

    62. Re:The thing is... by Just+Some+Guy · · Score: 1

      I think we have to be careful not to dismiss interpreted languages

      Outside of shell scripting, I'm not really aware of any commonly used interpreted languages these days.

      --
      Dewey, what part of this looks like authorities should be involved?
    63. Re:The thing is... by Tatsh · · Score: 1

      The Mono team should be working hand-in-hand with the Wine team if they truly want to make cross platform apps a reality, anything less is just a half-hearted attempt to benefit Microsoft's technology.

      Agreed. And you have to remember that WinForms (the Windows-look-alike GUI part of .NET) is still not fully supported. To me it looks like there is little effort being spent on this. Why? Because there is Gtk# because [sarcasm]THAT will solve all our problems[/sarcasm].

    64. Re:The thing is... by powerlord · · Score: 1

      I think we have to be careful not to dismiss interpreted languages

      Outside of shell scripting, I'm not really aware of any commonly used interpreted languages these days.

      I think all the Python and Perl users would (not so) politely disagree with that statement. :)

      --
      This space for rent. All reasonable inquiries will be entertained at proprietors discretion.
    65. Re:The thing is... by Tatsh · · Score: 1

      Very true. Both C and C++ standards are not perfect on all platforms. Mostly we can expect them to work exactly the way we want on x86 and PPC and that's about it. ARM, MIPS, etc; on those we just hope it works.

    66. Re:The thing is... by Just+Some+Guy · · Score: 1

      I think all the Python and Perl users would (not so) politely disagree with that statement. :)

      Only the ones who mistakenly thought that Python and Perl are interpreted. :-)

      --
      Dewey, what part of this looks like authorities should be involved?
    67. Re:The thing is... by Anonymous Coward · · Score: 0

      And for x86 .. erm .. i assume you meant assembly there but i'd say learn ARMv4 instead. You have way more options as a developer in future.

      If you know x86 even decently you can write assembly for ARM or POWER given an hour and a reference sheet.

      Telling anyone to learn C these days is a serious disservice. C++ with the plethora of cross-platform abstraction layers available is suitable for development of pretty much anything anywhere, and its a way more productive language, if taught right.

      The point in learning C is to learn a systems programming language. First of all, nobody in the world fully understands C++. Second, most C++ code cannot be mapped to assembly by a human. Between objects and templates and conversions you simply have no idea what the assembly code looks like.

      You want to learn languages that give you a good understanding at machine, system, application, and scripting levels. A language that does multiple is not going to work well.

    68. Re:The thing is... by shutdown+-p+now · · Score: 1

      generics achieve the 80% benefit of C++ templates without the headaches of Turing-completeness.

      I wasn't even trying to compare Java generics with C++ templates (God forbid!). I was comparing them with C# generics. The problem with Java stuff is that I can't write some obvious stuff like:

      if (obj instanceof List<Integer>) .. // runtime checks don't work because of type erasure
       
        class Foo implements Comparable<Number>, Comparable<String> ... // fail - same interface at runtime because of type erasure

      That sort of thing. I find it rather weird when some very common OO idioms suddenly break down for generics.

      I think pushing the language much further would be more painful than just breaking out of the OOP paradigm and going with a dynamic language on the JVM like Clojure.

      Dynamic languages buy you little for large-scale projects (IMO). Stuff like first-class function values / closures, and FP borrowings in general, is where productivity is. For example, I find that I use LINQ much more often to query in-memory collections than I do to work with databases; and, as I often use raw method call + lambda syntax rather than sugar, the resulting code looks suspiciously like what one'd write in ML or Haskell (or Ruby, for that matter).

      If you are, my question would be, "What can C# deliver that Java + Clojure can't?"

      If you put it that way, then nothing, of course - just as there's nothing that Java can deliver that C++, or Eiffel, or Ada can't. The point is, which one allows you to be more productive while doing so. You can do structured programming in assembler, but it is extremely painful. You can do FP-style in Java, too, but it is also extremely painful. Modern C# allows to mix a healthy dose of FP into OO design, where it really helps make things both shorter and clearer (and therefore more supportable). In many ways, C# with lambdas has become quite similar to Ruby - also an imperative language with heavy reliance on FP tricks thanks to good first-class function support (in case of C#, type inference for lambdas was also key).

      Bear in mind also that OS independence is a must for me: some of my code does occasionally run on supercomputers.

      When we start talking about OS independence, we aren't talking about languages anymore, but implementations. Granted, C# is lagging behind there - MS implementation is obviously Windows-only (setting Silverlight for OS X aside). Mono is there, but performance-wise it's somewhat crappy compared to either .NET VM or Sun JVM. Of course, there's still nothing in C#-the-language that makes it inherently tied to Windows or any other platform, so in theory other implementations may come (and will, I think - or Mono will get good enough eventually).

      But for now, if you truly need platform independence, nothing really beats C++ with a good framework (e.g. Qt).

    69. Re:The thing is... by FishWithAHammer · · Score: 1

      And what are these magical algorithms that only work in Java and C# but don't work in C/C++?

      Anything that's based on reflection is trivial in Java or C# and impossible, frustrating, and in some cases not practically possible in C/C++.

      You have clearly never done any embedded work. You think a customer is going to want to pay the extra money for a device that runs Java instead of one that does the same thing and runs on a $1 micro running C/C++? Furthermore if you seel 100,000 pieces, every $1 of hardware is $100,000.

      Seeing as how a ton of embedded is moving toward Java and Mono, yes, I do think they are. Yes, C has its niche writing code for elevator controllers. It's having its lunch eaten beyond that preposterously-bare-metal case.

      Depends on the application. Write a CAD tool in Java and see if customers don't mind it when their compilations take an extra hour to finish

      Use JNI or P/Invoke to marshal native code where speed and optimizations are important. That's not your GUI level. GUI = managed, math-grinding logic = native--although these days, an optimizing JVM like HotSpot or the new Linear IL engine in Mono are both competitive with C/C++ in terms of performance for many operations; it's really quite amazing how efficient Java and Mono are becoming.

      --
      "You can either have software quality or you can have pointer arithmetic, but you cannot have both at the same time."
    70. Re:The thing is... by shutdown+-p+now · · Score: 1

      I fail to see how Java and C# reduce development time.

      By not having to deal with a mess of complicated language rules described in an arcane tome with over 1000 pages. Do you remember the overloading resolution rules when the candidate set includes both template and non-template functions well? Unsigned arithmetic? Friend templates? When you need and when you don't need to use "template" and "typename" to qualify dependent members? It's stuff like that that kills productivity, bit by bit.

    71. Re:The thing is... by thePowerOfGrayskull · · Score: 1

      Now we're getting splitting into different subjects... I was speaking more of starting an application in .net by microsoft - there's no perceptable delay as it initializes. The same with java. If you had run a JVM or the CLR (Microsoft's) recently, you'd see the same.

      Your code may or may not run slower - both platforms do JIT compilation so that it is actually running as native code; in some cases this means it will actually run faster. And in nearly all cases, you're not going to perceive the difference in an end-user application - this is especially true on the server side but is also increasingly correct on the client as well.

      I also specifically addressed your statement about how mono should compile to native code - it does if you want it to.

      Anyway... I used to agree with your position; but in recent years some research has shown me that native is not always guaranteed to be better. This doesn't even touch on how a well designed system that is purely interpreted (which java/.net are not) can run faster than a shoddily designed system in a native platform.

      The point of this rambling: the differences you can get between running native and running in a VM are relatively minor and in some cases will favor the VM. Of all the reasons you could decide not to use these platforms (and there are many others), this should be the last of them.

    72. Re:The thing is... by Tetsujin · · Score: 1

      One word: Cylon.

      There, fixed that for you.

      --
      Bow-ties are cool.
    73. Re:The thing is... by poached · · Score: 1

      I don't buy it. All languages have rules. C++ have its rules. You don't just put down on your resume that you are a C++ expert if you don't know anything about templates or meta programming.

      It's more of a language vs library argument again. Java/C# has a lot more standard library functions that you can use, where as C++ has a lot more language rules. It's equally unproductive for a C# person to have to think about.. oh yeah, what was that function's name again? search...

      it just really depends...

    74. Re:The thing is... by shutdown+-p+now · · Score: 1

      I don't buy it. All languages have rules. C++ have its rules.

      Of course all languages have rules. But some languages have more rules than the others, and some languages have particularly pointless and/or dangerous rules.

    75. Re:The thing is... by Anonymous Coward · · Score: 0

      Learn and master C, as above is saying! Seriously, I try hard as possible to stay away from .NET/Mono/Java/bytecode apps as much as possible. Why? Speed, obviously!

      I presume you have taken a full-fledged project written identically in C and Java and measured the performance of both versions to determine that the C version is, in fact, faster?

      Oh wait, you probably just go, "it's interpreted, so it's SLOW!"

      Because you can probably manage your memory manually in a 1MLOC project without leaking better than an incredibly fine-tuned garbage collector and memory allocator that is at the forefront of research.

      Because you're trusting that gcc can better guess which variables are unused and where the hot spots are than a JIT compiler that dynamically measures the execution of code and can determine whether some variable allocations should go on the stack or the heap and ignore code that hasn't ever been run and will never be run.

      Java 1.0 may have been incredibly slow, but the modern JVM can actually beat native code in certain statistics. The factor that matters more is how good your algorithms are.

    76. Re:The thing is... by Anonymous Coward · · Score: 0

      Sun thanks you for the advertising.

    77. Re:The thing is... by Anonymous Coward · · Score: 0

      So it is a money issue. That is the saddest part. We are going to have lesser performing applications all because software companies want to pay less to developers.

      It's capitalism; love it or leave it, sucker.

    78. Re:The thing is... by cbhacking · · Score: 1

      JavaScript? JS can be used outside of web applications, and it can be very useful indeed within web applications, but even there you certainly don't need *every* developer to know it! There are plenty of web app frameworks out there (including ASP.NET, which can be run through Mono, incidentally) which will generate JS automatically for most things. As somebody who used to code the back-end portion of web apps, I would argue that SQL is far more important than JS.

      Also, seriously, why Java? It's a popular language, but then, so is Visual Basic. I hardly see Java as being a "must-know" languge any more than almost any other modern managed-code language (of which there are plenty, many providing language features which Java could really stand to have but doesn't).

      --
      There's no place I could be, since I've found Serenity...
    79. Re:The thing is... by cbhacking · · Score: 1

      Sorry to burst your bubble, but in some cases .NET code is actually faster than native C++. The reason is that it actually *does* get compiled to native code just before execution - the bytecode is only to provide a machine-independent intermediate language, which nearly all compilers have even if the developer never sees the output at this step - and that JIT compiler optimizes for the specific hardware it is running on. Typically, developers compile for general i386 or possibly i586, but don't come close to taking advantage of the specific advantages of modern processors - that would make the code run slowly or completely fail to run on older (or just *other*) CPUs.

      This JIT compilation does have a cost, of course - a brief startup delay on the first execution (the native code is cached thereafter) and an increased runtime size to include the JIT - but execution speed of .NET code is actually quite good. Mono also includes such a JIT compiler on the most common platforms, including the x86 derivatives.

      --
      There's no place I could be, since I've found Serenity...
    80. Re:The thing is... by Haeleth · · Score: 1

      1. Algorithmic improvements will always trump optimizing execution speed.

      Not true. This claim can be trivially proven to be false with a simple thought experiment: consider a language artificially constructed such that every single statement takes at least ten years to execute. Implement an O(1) algorithm in that language, and an equivalent O(N^2) algorithm in C. For any realistic data set, the C program will be vastly faster, even though it is using a much worse algorithm.

      2. Unless there is a hard requirement, development time is more important than raw performance.

      Only when you are paying the developer. As a consumer, I do not give a damn about development time -- unless the prices are massively different, I will always choose the program that feels more responsive, not the one that took less effort to write.

      3. Hardware is cheaper than developers.

      Oh, right. Okay, I'll skimp on development costs and then tell my customers to stop whining and buy faster hardware, shall I? Because that worked so well with Vista, and totally didn't land Microsoft facing a massive class action lawsuit or anything!

      4. A rich and flexible library is more useful and stable than custom coding for performance.

      Well done, you have found a true axiom.

    81. Re:The thing is... by Anonymous Coward · · Score: 0

      The algorithm argument is stupid.

      If you only know a bad algorithm, coding it in Python will not make it a good algorithm. It will still be a bad algorithm, just with an extra big constant factor.

      If you know a good algorithm, it will go many times faster in C++.

    82. Re:The thing is... by Anonymous Coward · · Score: 0

      Also, seriously, why Java? ... I hardly see Java as being a "must-know" languge any more than almost any other modern managed-code language

      Why not C# as an application level language? Because it's full of muck having to do with systems programming (structs, value types, function pointers, unsafe, etc). It's also has parts of scripting, like generics. Java otoh, only has application programming concepts.

      Same with C vs C++. First of all, nobody in the world fully knows C++. Second, in addition to systems programming it has concepts from application and scripting. Third, as a programmer you have zero idea how code gets mapped to assembly. That makes it a bad language for learning systems programming concepts. With C otoh, you can 'feel' the assembly flowing below your code.

      And finally, why JavaScript? You don't learn JavaScript just to program web pages... that's a bonus that makes it useful to know. You learn it because as a prototype-based language it is the more generic and pure form of python, ruby, and all of the scripting languages. And it's syntax and structure is similar to the other must-know languages C and Java.

      All these choices are popular and useful and specific to only one particular conceptual level of programming language.

    83. Re:The thing is... by powerlord · · Score: 1

      Ah, there would be that (smacks forehead).

      --
      This space for rent. All reasonable inquiries will be entertained at proprietors discretion.
    84. Re:The thing is... by Eli+Gottlieb · · Score: 1

      I'll give you Delphi-Pascal, Ada, and Forth. The rest require garbage collectors, which are too much infrastructure for use in the performance-critical, bare-metal environments like games* or operating systems in which C/C++ thrives. Requiring garbage collection (or even a small RTL like Delphi-Pascal does)also requires that someone actually write one for each platform to which they plan to port the language -- a small but functioning Delphi-Pascal operating-systems programming community has always slogged through the extra work and actually find it well worth their/our while, but most programmers are too lazy.

      That's the thing about C (not so much C++, but definitely C): it imposes a runtime burden only marginally higher than that of assembly. It can run without a C library, OS interface, or even a dynamic memory allocator. It gives the programmer true control over their machine. Other languages don't do that, and for good reason: C lets you shoot yourself in the foot.

      And for some reason, the programming-languages research and development community seems content to keep building modern, advanced languages on top of C with little real thought given to replacing C. Some people in the research community talk about how to make C safe, how to layer high-level features (almost always including garbage collection) on top of C, or how to compile a higher-level language down to C code that won't require infrastructure, but few seem to think about how to actually replace C with a language that will allow the programmer that same level of control over their system while still adding modern language features and minimizing the ultra-common bugs that almost always infest C code.

      * -- When I was tuning a game-that-I-shall-leave-unnamed-to-protect-the-guilty's graphics settings I found that turning them down again after turning them too high would not give me back the performance I had lost from tuning the settings too high until I reset the game. Why? Because unless I reset the game the extra data loaded and computed by the higher settings would never be garbage-collected for performance reasons -- the GC was written to run collections only at opportune moments (good). Apparently the programmers put in the effort to write an opportunistic GC, but they couldn't be bothered to just explicitly free their resources.

    85. Re:The thing is... by savuporo · · Score: 1

      The point in learning C is to learn a systems programming language. First of all, nobody in the world fully understands C++. Second, most C++ code cannot be mapped to assembly by a human. Between objects and templates and conversions you simply have no idea what the assembly code looks like.

      You want to learn languages that give you a good understanding at machine, system, application, and scripting levels. A language that does multiple is not going to work well.

      Yes, i agree that nobody in the world fully understands C++. But no onereally needs to, to be productive. C++ is about being productive. Most of the really arcane aspects you can leave to white tower wizards, standard library designers, implementors of various abstraction layers and so on, and just be a happy coder using their products.

      As for C++ directly mapping to assembly, it does not have to. If you understand C++ well enough, if you know your compiler well enough, and know assembly sufficiently, going to C is not going to help with anything.

      ( full disclosure: i work as an embedded developer across a wide range of architectures, including MCUs with a few kilobytes of ROM space, ARM, MIPS, PPC and even some exotic CPUs and "operating systems". While i need C now and then due to legacy tools or established code being in C, most of the work i do is C++ or assembler )

      --
      http://validator.w3.org/check?uri=http%3A%2F%2Fwww.slashdot.org Errors found while checking this document as HTML5!
    86. Re:The thing is... by evol262 · · Score: 1

      I hear this argument a lot, but I've not seen it borne out in reality.

      While the game you were tuning clearly had problems with the generational garbage collector (more to do with sloppy object allocation and destructors than the GC implementation itself, probably), I can't see how that is a point-blank indictment of garbage collection. If your argument is portability, then yes, C wins. However, it's the proverbial chicken and the egg. A C compiler exists for pretty much every architecture known to man. On the other hand, so does a BASIC compiler.

      Somebody is porting those compilers, just as they port them for other languages. The extra effort involved in moving, say, the CL garbage collector as opposed to the CL compiler is trivial. It is not an effective argument against it.

      What C offers over Erlang, ML, Ada, and other languages is a massive developer base and familiar paradigms. If you want to program embedded systems (Erlang is still a good use case here) or operating systems, by all means, use C. For a game, though? You're going to have libc, be dealing with the OS's memory allocator, etc. In these instances, Haskell, ML, D, and other languages are competitive in speed and memory usage.

      People have given though to replacing C (D, C++), and some of those developments are quite old (Lisp). It's hard to convince some developers that with increased hardware capabilities and higher-level development, plus well established utility libraries, "bare metal" access isn't needed anymore. In truth, re-inventing the wheel in every new project to handle strings easily (as one example) without being kneecapped wastes an astronomical amount of development time.

      There's nothing wrong with C, and the newer standards offer a lot, but the notion that it's the superlative language for every task has got to go.

      --
      "The more corrupt a society, the more numerous are its laws." -Tacticus
    87. Re:The thing is... by Eli+Gottlieb · · Score: 1

      There's nothing wrong with C, and the newer standards offer a lot, but the notion that it's the superlative language for every task has got to go.

      I never said it was the superlative language for every task. I said that, in its own domain (embedded systems, operating systems, and some core game code), nothing has ever truly replaced it.

      While the game you were tuning clearly had problems with the generational garbage collector (more to do with sloppy object allocation and destructors than the GC implementation itself, probably), I can't see how that is a point-blank indictment of garbage collection.

      It's an indictment of the style of programming that garbage collection enables: "create it, use it, forget it". You can say that the object allocation or destructors were sloppy, but from my perspective it seemed as though the game should know what resources it needs to free when going from graphics level 4 to 3 and free them using whatever the game's language had instead of a C++ delete operator. Any small bits that leaked out would be caught by the GC eventually, but the majority of the resources (the part that actually affected program performance) would be immediately freed and performance would immediately improve.

      People have given though to replacing C (D, C++), and some of those developments are quite old (Lisp).

      Thing is, C++, D, and Lisp work by putting a layer of runtime between themselves and the hardware. They can't replace C because they define and build themselves in such a way as to push them out of C's problem domain.

    88. Re:The thing is... by evol262 · · Score: 1

      I never said it was the superlative language for every task. I said that, in its own domain (embedded systems, operating systems, and some core game code), nothing has ever truly replaced it.

      I wasn't actually putting those words in your mouth specifically, just a general statement. The fact that nothing has truly replaced it doesn't mean it's the best possible language for the task. Operating systems? Embedded systems? CUDA? M'kay. It's well-tested, suitably low level, , etc. Core game code, though? I can't tell you the last time I saw a game which was CPU bound, or played to C's other strengths (other than graphics frameworks, but OpenGL/DirectX bindings are available for a lot of languages these days).

      It's an indictment of the style of programming that garbage collection enables: "create it, use it, forget it". You can say that the object allocation or destructors were sloppy, but from my perspective it seemed as though the game should know what resources it needs to free when going from graphics level 4 to 3 and free them using whatever the game's language had instead of a C++ delete operator. Any small bits that leaked out would be caught by the GC eventually, but the majority of the resources (the part that actually affected program performance) would be immediately freed and performance would immediately improve.

      That's not the style of programming GC enables. The operator you're looking for is generally dispose() to call the destructor. The "style of programming" you refer to would lead to explicit memory leaks in C++/C (which are obviously not any better), and any profiler should make it very easy to find. Sloppy coding != language flaw, and I'd wager that bug would have presented itself regardless of the language. Shouldn't have happened in the first place, and I really can't see how you conflate a logic problem in the code (frankly, whoever didn't dispose of the object in a managed languge wouldn't have in C++ either) with a problem with garbage collection.

      The GC hate was deserved 20 years ago when you could see the system pause on a GC pass. However, the algorithms backing said garbage collectors have improved significantly, we have more granular marking of objects, and clock rates have gone up. The cost/benefit ratio just isn't worth it most of the time (see: rise of Java/.NET).

      Thing is, C++, D, and Lisp work by putting a layer of runtime between themselves and the hardware. They can't replace C because they define and build themselves in such a way as to push them out of C's problem domain.

      Funny, I wasn't aware that compiled D or Lisp ran against a VM. Objects or not, the bytecode pushed out from a ML compiler and a C compiler is very similar. D lags behind a little bit due to the relative youth of the language. C's problem domain is systems engineering, but that also goes for Prolog, Forth, D, C++, and a number of other languages.

      --
      "The more corrupt a society, the more numerous are its laws." -Tacticus
  10. Mono is like Java from 1995 by neurovish · · Score: 1

    Every mono aplication I've run across is slow and breaks strangely. Because of this, I've always considered mono as truth in advertising. Are there any good examples that might change my opinion?

    1. Re:Mono is like Java from 1995 by rocket22 · · Score: 1
    2. Re:Mono is like Java from 1995 by nschubach · · Score: 1

      Unity3d... using Mono ONLY for a scripting engine? Yeah, you heard me. There's no Linux environment for it even though they basically used Mono, written for Linux, as a sort of "Actionscript alternative". I will not have any respect for the Unity team until they recontribute to Linux. As it is now, they have no interest in giving back...only taking. Miguel was making a player in his spare time, but it appears as though he's only human and has run into a problem that he can't seek assistance with because it's closed source. Yeah... no thanks.

      --
      Every time I start to have faith in humanity, I ruin it by driving to work between 7 and 8 am.
  11. Qt by scorp1us · · Score: 4, Interesting

    With Qt 4.5 going LGPL in March, one would have to wonder why you would use Mono over Qt or Java.

    There are legitimate reasons - the CLR for instance or the multi-language support. But Qt has a Java API if you're addicted to virtual machines, and the C++ toolkit compiles anywhere with a modern C++ compiler. It supports Javascript (QtScript) and Python bindings. But unlike Mono, which is Microsoft derived, there will be no patent worries. Nokia really does want Qt everywhere.

    The picture is getting more and more complicated when it comes to software development, and I think that's wrong. I liked .Net as an idea. We could all code to one platform, but the business/IP aspects prevented that technical utopia. I am hoping that LGPL Qt will, while a little more limited be that multi-platform toolkit that everyone can use to solve new problems, instead of continually recoding the old ones.

    --
    Slashdot's rate-of-post filter: Preventing you from posting too many great ideas at once.
    1. Re:Qt by pla · · Score: 4, Informative

      With Qt 4.5 going LGPL in March, one would have to wonder why you would use Mono over Qt or Java.

      Because you need to consider your target audiences - Windows users vs Linux users.

      Not to make this a flamefest about intelligence, but I think we can all agree that, almost by definition, Linux users tend to have a far higher comfort level with trying new things on their machines.

      Simply put, Linux users, if they want to use a given package, will install Wine/Mono/Dependency-X to get the package to work. Windows users will not install QT unless it comes as part of the whole one-click .msi for the package.

    2. Re:Qt by GenP · · Score: 1

      What? I could have sworn that you could just package the QT dlls alongside your app and it would Just Work(TM) on Win32, much like wxWidgets.

    3. Re:Qt by KTheorem · · Score: 2, Insightful

      And why couldn't you bundle it with the .msi? From what I remember of using Windows, that's how GTK+ is shipped for Pidgin and GIMP, why not do the same with Qt?

    4. Re:Qt by Khopesh · · Score: 1

      You're missing the point. Qt on Windows doesn't need an install like Java or .NET because it doesn't use a virtual machine to interpret its bytecode. You likely already have it installed (do you use Google Earth, Skype, or Opera?).

      Qt is BETTER geared in that regard. The big win Sun pulled in the 90s was the amazing marketing job of putting Java out there as something you need, want, and are constantly reminded of (for updates, etc). They built up the Java brand brilliantly, and that's going to be hard to dismantle.

      .NET and Qt don't advertise like that, and they don't build up their brands. This puts them at a disadvantage. I think the big determinant will be the embedded industry, which will make or break Qt and Android as they compete with iPhone, WinCE, and Java (though Qt runs on WinCE (and Java) as well). Qt has a massive advantage here in that code for one platform needs only a recompile to work on another, even if one of them is a phone. Nobody else does that. Not even Java, though they're somewhat close.

      --
      Use my userscript to add story images to Slashdot. There's no going back.
    5. Re:Qt by stoolpigeon · · Score: 1

      I'm running KDE 4.2 and a slew of kde apps on my xp machine and it was all done with a single installer.

      I also run a couple GTK+ apps that installed GTK without me going out and doing a separate install.

      --
      It's hard to believe that's how Micronians are made. Why don't we see it right now by having you both kiss one another?
    6. Re:Qt by phantomcircuit · · Score: 1

      Linux users tend to have a far higher comfort level with trying new things on their machines.

      Riiiiggggggggghhhhhhhhhhht.

      The legions of bot infested PCs out there disagree with you. Windows users will install ANYTHING, ooh cut kitty screen saver? count me in!

    7. Re:Qt by b4dc0d3r · · Score: 1

      Web apps and desktop apps can share the same code. If you write ASP.NET and have some nifty classes/libraries/code snippets you can take them unchanged to the desktop. Qt will not run as a web app. I mean everything you can do in a CLR application on the desktop you can do in a web app. I have done some very strange things using ASP.NET, accessing all kinds of system information that would have been very difficult* to get with classic ASP.

      You can use Java server side, but I don't know if you can take all JSP code and use it in a desktop app.

      By 'same code' I mean if you do it right (not using HTTPContext or other server-only stuff) you can use a .NET dll with your desktop application.

      Of course, every .NET application I run frustrates me with its slowness compared to normal applications, and every Java app I have used has been done so poorly I wonder if any good Java programmers exist. They certainly don't work for the big companies that's for sure. I was just searching today on why SQL Server Management Studio (.NET) is retardedly slow compared to Enterprise Manager (GUI over COM objects). Not much to explain there, turns out.

      * I see someone getting ready to say What's so difficult about CreateObject()? Nothing, as long as an object exists that does what you want, and is installed.

    8. Re:Qt by at_slashdot · · Score: 1

      QT runs very well on Windows. Opera for example uses QT, its installer is very basic. Don't know where you got this idea that QT is only for Linux.

      --
      "It is our choices, Harry, that show what we truly are, far more than our abilities." -- Prof. Dumbledore
    9. Re:Qt by Tatsh · · Score: 1

      GTK+ is in a NSIS package and runs with /S switch (silent mode) with the Pidgin and GIMP setups (which are also NSIS packages capable of running silently).

    10. Re:Qt by Dunkirk · · Score: 2, Insightful

      Just compile statically, and you won't have to bundle anything. OK, you'll probably need to include the mingw10.dll. And libmysql.dll if your app accesses a MySQL database, like mine does.

      I've read some things that make me think that you can build the mingw library into your app, but I've also read things that make me run away from that idea screaming.

      Also, it's probably possible to build MySQL statically, and then wrap it into the executable as well, but it's not something I want to try.

      --
      Acts 17:28, "For in Him we live, and move, and have our being."
    11. Re:Qt by Tatsh · · Score: 2, Informative

      Lucky for Windows users, Windows will always search the current directory first for DLLs that an app needs. So just include them. QtCore4.dll and a few others. Many apps ship their own version of Microsoft's DLLs just to make sure the app will call the correct version without worrying about a newer version being in system32 or the wrong version being called from WinSxS.

      No, there is no case for using Java or Qt now. Qt looks sleek on every OS and is SO incredibly easy to program. It is native and is very fast.

    12. Re:Qt by pherthyl · · Score: 1

      Ridiculous. I develop commercial applications using Qt and none of my customers are even aware of it.

      Ever heard of Google earth? Do you recall having to install Qt to make it work? Of course not, the libs are in the installer on windows just like everything else.

    13. Re:Qt by Tatsh · · Score: 1

      s/using Java or Qt/using Java over Qt/g

    14. Re:Qt by AKAImBatman · · Score: 5, Interesting

      The big win Sun pulled in the 90s was the amazing marketing job of putting Java out there as something you need, want, and are constantly reminded of (for updates, etc). They built up the Java brand brilliantly, and that's going to be hard to dismantle.

      That's a rather rosy way of looking at it. In truth, Sun sort of messed up the marketing on a variety of different levels. The only reason why it caught on was that developers had a chance to try it out through Java Applets. (Originally supported through a partnership with Netscape.) Developers who tried the Java platform were so impressed by it (compared to the standard C library of the day) that they lobbied for its use everywhere. In fact, there was an entire news site devoted to Java promotion called JavaLobby. In its day, it handily competed with sites like Slashdot for readers.

      Sun (thankfully) wasn't stupid. They took a look at where developers were trying to use Java and started supporting them. Some of the ideas took flight (e.g. servlets) while others floundered (e.g. Java3D). But at the end of the day, Sun managed to produce a superior platform that the vast majority of the market wanted to use.

      The only reason why it gets so much criticism today is because other languages and platforms have invested considerable effort in catching up to where Java is today. And even then, it's hard to argue the rich availability of libraries for the Java platform. If you use Java, you are guaranteed to always be able to use the latest and the most obscure technologies. Nothing escapes its roving field of vision.

      When Java gets replaced (and I'm sure it will happen eventually), it will not be because of marketing. It will be because the replacement platform yet again turns the entire industry on its head. Love it or hate it, the new technology will make us all step back and think.

    15. Re:Qt by argent · · Score: 1

      Windows users will not install QT unless it comes as part of the whole one-click .msi for the package.

      Hmmm, let's see...

      QtCore4.dll 1,544 KB
      QtGui4.dll 6,284 KB
      QtXml4.dll 384 KB

      A little fat, maybe. But you can stick them in your application directory.

    16. Re:Qt by MobyDisk · · Score: 1

      I'm on the fence on this one. I coded Java many years ago, and I got sick of it. C# is a better language than Java, and the .NET Framework is better than the Java libraries. Both are standards, both have 3rd-party implementations, both have partial source released.

      I develop Windows apps by day, and cross-platform apps by night. So I write .NET apps and compile with Mono for *nix systems. I think if I wanted to use Qt, I'd use Qt with C++ rather than Java. I'd consider Adobe Air as well.

    17. Re:Qt by Thaelon · · Score: 5, Insightful

      Windows users will not install QT unless it comes as part of the whole one-click .msi for the package.

      Speaking as a long time windows user and being fairly new at using Linux as a dedicated work-OS, I must say that that whole one-click .msi stuff is pretty damn awesome.

      To elaborate the whole perception that users are dumb is pretty misguided. I'm not a dumb user, but even I like things to be easy. It's because (usually) I don't give much of a shit how the thing works, just that it does.

      Before you declare that you're any different, think of how you put gas in your vehicle.. Do you care how the fuel pump works? If you're like me you only throw a fit when the clip that holds the fuel lever open is broken, but otherwise don't pay much attention.

      See it's about motivation not intelligence. I do like using OSS because I think it's a GoodThing(tm) therefore I'm motivated to try it. It's a lot of the reason it took so long for Java to get a toe hold. "I just want to run PrettyWidgetBox, wtf is this JVM thing I have to have?" It's seen as ancillary or superfluous to the average user, and they don't often care enough to figure it out.

      It kinda spoils one of my favorite quotes for me though regarding trash cans, bears, and tourists. Yellowstone added some trash cans with tricky openings to keep the bears out, but it turned out most of the tourists couldn't figure it out. The quote goes, "It turns out there is considerable overlap between the smartest bears and the dumbest tourists." Which is unfortunately hogwash. The bears are motivated by survival to get in the trash can. The tourists are demotivated by apathy to take the time to figure out a trashcan. They just want to be able to put shit in the trash hole and be done with it. If they're frustrated for more than a few seconds they just throw it on the ground.

      --

      Question everything

    18. Re:Qt by harlows_monkeys · · Score: 1

      With Qt 4.5 going LGPL in March, one would have to wonder why you would use Mono over Qt or Java

      The same reason one would use The GIMP over MySQL or Eclipse.

    19. Re:Qt by Ed+Avis · · Score: 1

      Qt is a great platform. That doesn't however cover the thousands of applications currently being developed for .NET or the thousands of programmers (some skilled, some certainly idiots, but certainly a big pool of talent) who are familiar with the platform. If Mono did nothing else but provide an easy way for Windows applications to be ported to Linux, as a kind of cousin to Wine, it would still be worth having.

      BTW - there are C# bindings to Qt, and they're likely to become more popular at least among Windows developers.

      --
      -- Ed Avis ed@membled.com
    20. Re:Qt by Anonymous Coward · · Score: 0

      Because I like C# a hell of a lot better than I like C++ or Java.

    21. Re:Qt by miserere+nobis · · Score: 1

      They built up the Java brand brilliantly, and that's going to be hard to dismantle.

      They might have built it up brilliantly to start with, but they haven't been so brilliant about letting it collapse as an end-user technology. Java applets were, and still are, one of the best things ever to hit the web. Finally someone had solved the problem of how to make an actual application, with a normal, recognizable user interface that doesn't have to reload itself from scratch every time you click a button, and put it in the hands of users. Nobody else had anything like it. The closest thing MS had was ActiveX controls, which had to be individually installed like executables and specially given permission.

      And then, inexplicably, everyone promptly forgot about it, and went on to develop the so-called "web 2.0", which solves the same problems in a worse way. (Where "worse" means: lacking a consistent user interface from app to app, breaking every time you change browser versions, relying on a house of cards of javascript, and being nearly impossible to debug well in development. And still not completely eliminating the page refreshes, and certainly not the problems of state persistence.) Adobe develops Flash, Microsoft comes out with Silverlight, and suddenly there's even an acronym for the whole phenomenon (RIA). Yet read most of the articles about RIA technologies, and Java applets clearly never even cross the mind of most the authors. It apparently is yesterday's technology in the public mind.

      Yes, Sun did something with Java, but it stopped being brilliant anywhere except the server side about 10 years ago. Which is a shame, because it means I'm stuck using applications developed with inferior tools (and having to use those tools myself), meaning we all have inferior applications.

    22. Re:Qt by binarylarry · · Score: 2, Funny

      cut kitty screen saver? count me in!

      Okay, I'm a pretty pro-Linux guy. But even I'd never portray the Windows masses as kitten murdering mascochists.

      Think before you post, you sick fuck!

      --
      Mod me down, my New Earth Global Warmingist friends!
    23. Re:Qt by thePowerOfGrayskull · · Score: 1

      Isn't that what Java does, without the odd precompiler psuedo-language structures of Qt? (Unless Qt has improved in hte last couple of years since I looked at it...)

    24. Re:Qt by Anonymous Coward · · Score: 0

      Windows users will not install QT unless it comes as part of the whole one-click .msi for the package.

      Windows users don't have to install QT because it is distributed invisibly as a piece of your application, like God intended.

      I don't know what kind of brain damage it takes to cause the delusion that language runtimes and GUI toolkits should be distributed separately from their applications, but it seems to be widespread.

    25. Re:Qt by Anonymous Coward · · Score: 0

      Not to make this a flamefest about intelligence, but I think we can all agree that, almost by definition, Linux users tend to have a far higher comfort level with trying new things on their machines.

      This isn't an intelligence factor. It's a "the package manager isn't going to shit all over itself" factor. Other known aliases are "DLL hell" and "security patch breaks other working programs". This isn't acceptable. This isn't even negotiable. Why do we allow ourselves to accept this?

    26. Re:Qt by blackpaw · · Score: 1

      Mono has bindings for QT4 as well, active and well maintained (Qyoto). There are also KDE bindings (Kimono).

    27. Re:Qt by Anonymous Coward · · Score: 0

      The problem is that Java is usually taught by college professors who just want it for homework grading and lecture demos.

    28. Re:Qt by Anonymous Coward · · Score: 0

      Installed Psi on Windows, OS X, or Linux lately? Give it a shot and get back to me about if you should stick Qt apps in the same class with Java or .NET/Mono.

    29. Re:Qt by shutdown+-p+now · · Score: 1

      Simply put, Linux users, if they want to use a given package, will install Wine/Mono/Dependency-X to get the package to work. Windows users will not install QT unless it comes as part of the whole one-click .msi for the package.

      Windows apps will simply be prepackaged with a local set of Qt libraries, as is usual in the Windows world. Opera and Psi have been doing that for ages.

    30. Re:Qt by pherthyl · · Score: 1

      >> Just compile statically, and you won't have to bundle anything. OK, you'll probably need to include the mingw10.dll

      You can even remove that dependency if you modify your makespec (search the qtcentre.org forums).

      >> And libmysql.dll if your app accesses a MySQL database, like mine does.

      That can also be loaded statically. The docs have info about how to statically load plugins like the MySQL libs or image codecs.

      It's perfectly possible to make Qt apps that are standalone exes. It's not that hard. No reason to run screaming.

    31. Re:Qt by pherthyl · · Score: 1

      >> A little fat, maybe. But you can stick them in your application directory.

      And you can cut that down if you really need to. My program installers with Qt are about 3.5MBs. With static linking, some stripping down, and UPX compression I can get a standalone Qt binary using the core, gui, xml, and network modules to be 1.7mb

    32. Re:Qt by im_thatoneguy · · Score: 1

      And I will often give up if it requires too many libraries to install.

      I tried to install a collaborative note pad application recently.

      First it needed the latest version of some runtime. Fine... downloaded that installed it. Then it wanted some obscure library. Which took me 15 minutes to find an installer for. Then it wanted to me to procure another DLL from some other organization, which apparently was out of date now but still required that version... long story short. It still wanted one more package and I really didn't feel like hunting down GTK and gave up.

      This is a lesson in BAD installation experiences. I know it's great to build on other people's work so that your users can upgrades for free without any work on your part, but you better come to realize that a lot of people will just give up if they don't have the correct arcane assemblage of libraries and packages already installed.

    33. Re:Qt by Compholio · · Score: 1

      Speaking as a long time windows user and being fairly new at using Linux as a dedicated work-OS, I must say that that whole one-click .msi stuff is pretty damn awesome.

      So, exactly what's wrong with .deb or .rpm files (whatever your poison happens to be)?

    34. Re:Qt by phantomcircuit · · Score: 1

      lol *cute

    35. Re:Qt by spitzak · · Score: 1

      What happened to the "oh it is so EASY to install applications on Windows" statements? Seems you forget that as soon as it does not help your argument, huh?

      In fact Qt could be statically linked, or included as part of the installer.

    36. Re:Qt by dkf · · Score: 1

      The picture is getting more and more complicated when it comes to software development, and I think that's wrong. I liked .Net as an idea. We could all code to one platform, but the business/IP aspects prevented that technical utopia. I am hoping that LGPL Qt will, while a little more limited be that multi-platform toolkit that everyone can use to solve new problems, instead of continually recoding the old ones.

      The problem with Qt at least for desktop apps is that apps written with it look and feel like Qt apps. If you're on a Qt-based desktop (hi there, KDE!) that's not an issue at all, but on Win or OSX they just don't feel right (despite functioning absolutely correctly). Or at least not without large amounts of effort to put in platform-specific tuning, which makes something of a mockery of the whole "multi-platform"-ness. Now, I'm a bit of a cynic so I think the problem is expecting magic to make GUI code transmogrify between the very different platforms; that just doesn't seem to work, at least with current abstractions.

      OTOH, it's possible to do a very acceptable cross-platform non-GUI toolkit. Sure you won't have access to the full OS API, but you will have a substantial and useful subset. The problem with GUIs is that they really are different on different platforms.

      --
      "Little does he know, but there is no 'I' in 'Idiot'!"
    37. Re:Qt by Anonymous Coward · · Score: 0

      > Mono has bindings for QT4 as well, active and well maintained (Qyoto).

      Wtf? I have searched for that thing, and all that could be found were lots of no longer registered domains, like qyoto.org, qyoto-project.com and a dead sourceforge mailing list:
      http://sourceforge.net/mailarchive/forum.php?forum=qtcsharp-list
      I'd consider anyone using this a fool, because even if it still lives somewhere it does not have enough support for even google to find its new place.

    38. Re:Qt by Dunkirk · · Score: 1

      You can even remove that dependency if you modify your makespec (search the qtcentre.org forums).

      Citation needed.

      I've searched high and low for a direct answer on this, and I can't find one. I've read lots and lots of comments that hint that it can be done, but I don't see where I can download a static version of the library to link against, or instructions on how to download the sources and compile my own. If anyone can actually point to a link, I'd be thankful.

      --
      Acts 17:28, "For in Him we live, and move, and have our being."
    39. Re:Qt by argent · · Score: 1

      Yah, I should horrified by a couple of megabytes for an application, but when a Windows 7 install is several GIGAbytes... there's no way you can compete with that.

    40. Re:Qt by gbjbaanb · · Score: 1

      QtCore4.dll 1,544 KB
      QtGui4.dll 6,284 KB
      QtXml4.dll 384 KB

      A little fat, maybe. But you can stick them in your application directory.

      Hmm....

      • .NET Framework 1.0 Redist: 19.7MB
      • .NET Framework 1.1 Redist: 23.1MB
      • .NET Framework 2.0 Redist: 22.4MB
      • .NET Framework 3.0 Redist: 50.3MB ( x86 )
      • .NET Framework 3.0 Redist: 90.1MB ( x64 )
      • .NET Framework 3.5 Redist: 197.0MB

      QT is a size 0 supermodel in comparison :)

    41. Re:Qt by Thaelon · · Score: 1

      Not a thing, they're freaking awesome.

      I had meant to give props on that point, but forgot in my ranting.

      I guess if I had to say something bad about them, it's that there are both .rpms and .debs. That is, there are two types. I remember happening across something saying that you could use a .rpm on a debian based system or something, but I haven't looked into it. I hit the apathy barrier. And since software creators/maintainers only provide one or the other and you're SOL if you need the one they don't have. Or you have to figure out how to build it yourself. And that's means you're approaching the apathy barrier at dangerous velocities.

      --

      Question everything

    42. Re:Qt by argent · · Score: 1

      Well, damn, I suppose that's good news for me, since I'm currently working in Storage. :)

    43. Re:Qt by pherthyl · · Score: 1

      Having trouble finding where I got that info right now.. But basically remove -mthreads from the makespec for your compiler (win32-mingw or something like that). I don't remember if you have to recompile Qt with that or just your own programs.. I think if Qt is already compiled as static you just have to recompile your program. Worked for me. I think there is some limitations, like no exceptions, or no exceptions in threads. Anyway it wasn't a problem for my apps.

    44. Re:Qt by Jorophose · · Score: 1

      (do you use Google Earth, Skype, or Opera?).

      Minor correction: It seems Opera only uses Qt on Linux.

      Very strange, because it looks like it would be Qt, but that's the official word.

      (for the curious, it comes in Qt4 versions too, you've just got to look for it.)

    45. Re:Qt by Tetsujin · · Score: 1

      Installed Psi on Windows, OS X, or Linux lately? Give it a shot and get back to me about if you should stick Qt apps in the same class with Java or .NET/Mono.

      I have. I'm not sure what your point is, honestly.

      --
      Bow-ties are cool.
    46. Re:Qt by Euler · · Score: 1

      I'm from New York. What is this magical automatic fuel lever holder clip thingy?

      But anyway, your point about human apathy and convenience is really where the problem is. This is why I like Python 10x better than Java or .NET. Python's runtime is relatively small and simple, and doesn't require tens of megabytes of dlls in system folders. I can write a Python app, package it up with py2exe and distribute it without harassing the end user with installing any runtime stuff. Only the required dlls and lib code is wrapped up into a folder that can run without any system file installs or registry entries. The end user doesn't even need to install Python because py2exe wraps this up for me.

      This has always been the downfall of interpreted/managed languages.

      VB: does everyone remember the error messages 'missing vbrun50.dll' It took a long while before these applications and Windows co-ordinate this activity to make these issues seamless.

      .NET: the few times I've tried to run a .NET app, I've been sadly disappointed. I apparently didn't have the right version of .NET, or no .NET at all. I don't enjoy downloading hundreds of megabytes of runtime code to run a simple app.

      Java: Same issue. Plus Java updater takes over my system and occasionally breaks apps that used to work. Do I have java 2.0, SE/EE, JRE/JDK xyz... who cares, don't want to know, just want it to work.

  12. Mono is .NET by edivad · · Score: 1

    Why using an MS technology, on Linux? Technology that will probably be made obsolete by MS in a couple of years, by a new shiny replacement .XYZ+++ in order to SCAM more MS fan boys (all wearing their Tinfoil Hat).

    1. Re:Mono is .NET by evil_aar0n · · Score: 1

      If they were wearing their tin-foil hats, wouldn't that protect them from the influence of MS? Mine's nice and snug, and I still hate MS.

      --
      Truth, Justice. Or the American Way.
    2. Re:Mono is .NET by guruevi · · Score: 2, Interesting

      Yep that's right. I remember back in the day, I worked at a Microsoft "Very Valued" Partner which basically meant they could screw you over whenever they wanted just because and if you didn't comply, no more partner for you (*yank MSDN library and cheap licensing*). I almost brought the company to the brink of losing their partnership just by recommending Linux machines (which we did sell but apparently not advertised) to users that needed a xAMP stack.

      Either way, the company had to build their own ERP (simply because they wanted to - this was the .com era) and Microsoft somehow got involved which trumpeted Visual Basic everywhere, the early releases of .NET were not stable yet and according to them .NET was not yet ready for business. Of course, if you ever did VB you would know that once you're done, the code looks like crap, the thing is as slow as hell and crashed every so often. 2 months later, the same people told us that it would be better to do it in .NET (which was then just out as 1.0) and it would all be very well. If you ever worked with VB.NET back then you would know that it was just as buggy as classic VB although 'neater' to code for and the functionality was all well so the company folded to the MS pressure and rebuilt it. All fine and dandy until MS came out with C#. All of a sudden early .NET (preview and 1.0) became largely deprecated (what, this was supposed to be a stable and EXTENDIBLE language!) and with it also VB was heavily modified to fit the 1.1 framework and so there was another rebuild of some code. Of course some parts were still in classic VB and old .NET code and in the mean time new programmers had come and external things had started to happen so just rebuilding pieces of the application started breaking. Also major security holes were found, were patched and broke stuff and thus the application had to be rewritten from the ground up (again) in C# for .NET to fit the thing.

      I left the company later after that. In the mean time 2.0 and 3.0 came out. I wonder if they have been rewriting stuff for almost a decade now. Maybe if they just stuck to PHP and C++. I read a good (older) book recently on C++ and it said a good extensible program (algorithm) in an OO language is written twice: once to know what classes you are going to need to build, second time to apply what you got to know in well documented code, classes and libraries. I believe writing something more than 3 times just because the libraries you got to rely on changed is just bad practice.

      --
      Custom electronics and digital signage for your business: www.evcircuits.com
    3. Re:Mono is .NET by dem0n1 · · Score: 1

      You have to be careful when constructing your tin-foil hat. You want it to act as a Faraday cage and not as an antenna.

      --
      Why save your soul when you can sell it for a profit?
  13. Why not develop on the JVM instead? by codemachine · · Score: 5, Insightful

    Now that Java is open source, wouldn't it make more sense to use the JVM as the standard runtime, instead of something that "might" not get sued for copying the .NET runtime?

    Java has already been made to run on .NET. I wonder if it'd really be that hard to get standardized C# running on the JVM?

    1. Re:Why not develop on the JVM instead? by rocket22 · · Score: 1

      That would be great!! But, is anyone doing that?

    2. Re:Why not develop on the JVM instead? by drinkypoo · · Score: 1

      There are those who would argue that the CLR is superior to the JVM. But then there are those who would argue that Squeak's VM is better than either one. I wouldn't know because on the occasion that I can even find a paper which explains the technical differences it make my head asplode.

      --
      "You're right," Fisheye says. "I should have set it on 'whip' or 'chop.'"
    3. Re:Why not develop on the JVM instead? by MobyDisk · · Score: 1

      It sounds like you afraid of C#, but not the CLR? Why? I thought the CLR and the .NET Framework were what people were afraid of patents on.

    4. Re:Why not develop on the JVM instead? by uassholes · · Score: 1
      So, let me get this straight. It's an FOSS imitation of Microsoft's proprietary imitation of Java, except it runs on only one OS? And it's named after a disease?

      It's a funny world!

    5. Re:Why not develop on the JVM instead? by Ed+Avis · · Score: 1

      A large number of patents that cover the .NET runtime will also apply to the Java runtime, so if Mono carries a risk of being sued for patent infringement, the JVM carries pretty much the same risk. (Heck, even the Linux kernel itself necessarily infringes hundreds of software patents, and I'm not just talking about those held by Microsoft. Welcome to the US patent system.)

      --
      -- Ed Avis ed@membled.com
    6. Re:Why not develop on the JVM instead? by Anonymous Coward · · Score: 0

      A large number of patents that cover the .NET runtime will also apply to the Java runtime

      I call bullshit. Name the .NET patents that will apply to Java.

    7. Re:Why not develop on the JVM instead? by binarylarry · · Score: 1

      Fortunately, Java predates .NET by far, so there would be prior art from Sun on anything in Java.

      And Sun has pledged to not use its patents against anyone using the open source Java code.

      --
      Mod me down, my New Earth Global Warmingist friends!
    8. Re:Why not develop on the JVM instead? by shutdown+-p+now · · Score: 1

      Java has already been made to run on .NET. I wonder if it'd really be that hard to get standardized C# running on the JVM?

      Yes. The features of C# VM are a superset of those of Java VM. This is why you can easily host Java on top of CLR, but not C# on top of JVM. Some C# features that make it pretty hard are true generics (no type erasure), value types, unsafe data pointers with pointer arithmetic, and stackalloc. I'd guess that delegates and multidimensional arrays would be somewhat tricky to implement, too.

      Of course you can always abstract things away, in the same way you would when implementing C on top of Java. But the result would be quite unusable.

    9. Re:Why not develop on the JVM instead? by cbhacking · · Score: 1

      C# supports a lot of stuff that the JVM doesn't (currently), like actual pointers, function delegates, anonymous functions (unless Java got these while I wasn't watching), stack-allocated non-primitive structs (which are objects like any other), and other handy language tricks. Also, Java's one-public-class-per-file thing, combined with things like significant filesystem hierarchy for packages, just makes handling Java more of a pain. JARs hide the worst of it from the end user, but it's still uglier to run a Java app, even on Linux, than a .NET/Mono one.

      --
      There's no place I could be, since I've found Serenity...
  14. Mono just miss one thing by rocket22 · · Score: 4, Informative

    With Mono you can run C# code (even WinForms) not only on Linux, but also MacOS and it seems also on Solaris (http://codicesoftware.blogspot.com/2008/12/plastic-on-solaris-10.html, http://codicesoftware.blogspot.com/2008/12/opensolaris-and-mwf.html). The only thing they miss is a decent debugger on all platforms (currently only on Linux). It's unfortunately not easy to develop on Mono right now, but IMHO only due to the debugger. If they had one, more and more people would be jumping into it. Performance is very, very good, close to C/C++, but coding in C# is easier.

    1. Re:Mono just miss one thing by alexborges · · Score: 1

      Look, it works fine.

      But the fact of the matter is that available apis to .NET, even the full fledged thing from microsoft, is AGES away from giving you the flexibility of the open source platform as embeded by most linux distributors.

      Throw j2ee on top of that and .NET seems ages, ages, ages away from anything similar in flexibility and cross-compatibility and much mroe now that we have a trully open certified jdk.

      I hate java as much as any good c developer, but the thing is old, rich and its now GPL.

      --
      NO SIG
    2. Re:Mono just miss one thing by Xtravar · · Score: 3, Interesting

      It's unfortunately not easy to develop on Mono right now, but IMHO only due to the debugger.

      I disagree. MonoDevelop is the bane of my existence. It's not even that it's missing features - it's that the damn thing crashes randomly and the basic features (like code completion) are broken. It's been this way for me for years... so long that I almost wanted to start contributing to the project. But then I just installed Visual Studio 2008 on a Windows VM and it solved everything.

      I swear, I haven't really hobby coded too much since I started using Linux years ago. Part of it is because I have everything I need and don't need to change much. The other part of it is that I haven't used a single goddamn IDE in Linux that doesn't make me want to shoot myself in the face. Fanatics can gab on about how a real developer doesn't need a a decent IDE, and that's true - but what's also true is that once you've had access to elegant debugging, code completion, and compilation, you don't ever want to go back.

      --
      Buckle your ROFL belt, we're in for some LOLs.
    3. Re:Mono just miss one thing by rocket22 · · Score: 1, Interesting
      Mono is one thing, MonoDevelop something different.

      I mean, I can't understand why this guys are loosing their time building another sad IDE instead of getting mono integrated with Eclipse. I'd drop all MonoDevelop efforts tomorrow morning and put the team to work on the debugger, and then get it integrated with Eclipse or SlickEdit.

      You can actually build everything from SlickEdit but you can't debug.

      Mono, as a platform, is great but:

      They must forget MonoDevelop

      They must have a proper debugger *everywhere*

      They must go *truly* multi-platform: I mean, official releases for all the linux distros plus MacOS X, and the BSDs, Solaris, HP-UX, AIX and so on. While they *stick* to Linux... they're dead.

      Everything else will come...

    4. Re:Mono just miss one thing by Anonymous Coward · · Score: 0

      With Mono you can run C# code (even WinForms) not only on Linux, but also MacOS and it seems also on Solaris (http://codicesoftware.blogspot.com/2008/12/plastic-on-solaris-10.html, http://codicesoftware.blogspot.com/2008/12/opensolaris-and-mwf.html).

      The only thing they miss is a decent debugger on all platforms (currently only on Linux).

      It's unfortunately not easy to develop on Mono right now, but IMHO only due to the debugger. If they had one, more and more people would be jumping into it. Performance is very, very good, close to C/C++, but coding in C# is easier.

      The only thing missing? Oh come on now...

      -opengl pipeline
      -3d
      -Robust/mature opensource application servers
      -debugging
      -Clustering
      -ESBs

      Those are some huge shortcomings for rich client and enterprise developers.

    5. Re:Mono just miss one thing by shutdown+-p+now · · Score: 1

      The other part of it is that I haven't used a single goddamn IDE in Linux that doesn't make me want to shoot myself in the face. Fanatics can gab on about how a real developer doesn't need a a decent IDE, and that's true - but what's also true is that once you've had access to elegant debugging, code completion, and compilation, you don't ever want to go back.

      That IDE exists, and is called "Eclipse". Another one you might want to try is "NetBeans". Though VS is still awesome for C++ stuff (STL collection visualizers alone are worth a lot!), and I know of no good alternative to that; Eclipse CDT doesn't cut it, and neither does SlickEdit or KDevelop.

      I'm also looking forward to that new Trolltech Qt-centric C++ IDE which is currently in beta. It looks pretty nice already.

    6. Re:Mono just miss one thing by Anonymous Coward · · Score: 0

      Is it supposed to be a plus that Mono 'sorta' works on Solaris and MacOS? Java works great on Solaris and MacOS, is faster, is more robust and tested, has more code available, is more popular, etc. That mono isn't top-notch on Solaris and MacOS are reasons against using Mono.

      Performance is very, very good, close to C/C++, but coding in C# is easier.

      On the language shootout:

      Java: 30% slower than C
      Mono: 80% slower then C (equal to Pascal and LISP)

      These benchmarks represent a best-case scenario for Mono, since these simple functions dealing mostly with structs and math can be optimized well even by a weak optimizer. These represent a worst-case for Java, which gets a lot of its speed by its ability to inline many levels deep and generate optimized code based on actual types at runtime. Many of these benchmarks don't even have function calls at all.

      Mono will always be significantly slower than Java, because of defects in the CLR design. For instance, inlining methods is just not going to happen in CLR. Microsoft CLR inlines only one call deep and only methods <32 bytecodes and without branches -- and there's technological reasons why they can't do better than this (vs Java that inlines 5+ methods deep when needed).

    7. Re:Mono just miss one thing by Anonymous Coward · · Score: 0

      http://www.qtsoftware.com/developer/qt-creator

  15. Silverlight & netflix by tayhimself · · Score: 1

    Can I watch netflix streaming through mononucleosis? If not I don't care...

    1. Re:Silverlight & netflix by JSBiff · · Score: 1

      I've been kind of wondering the same thing. I tried configuring Firefox to report itself as IE7 on Vista, to see if Netflix would work, but then I got an error page that ActiveX support must be enabled. Haven't had time to chase that any further. It occurs to me that Wine might be able to be used as the basis for for a Firefox ActiveX plugin under Unix/Linux/*BSD, but I don't know if anyone has actually tried to create such a beast.

    2. Re:Silverlight & netflix by moosesocks · · Score: 1

      I believe Mono is still missing the actual codec to play back the video.

      AFAIK, Netflix streaming uses VC-1, which is the same codec used by Blu-Ray.

      --
      -- If you try to fail and succeed, which have you done? - Uli's moose
  16. WPF Support by UdoKeir · · Score: 4, Interesting

    Until Mono gets WPF support there isn't going to be much cross-compatibility. Any Windows .NET developer with any sense is writing in WPF already. WinForms is dead.

    But Mono seems quite content to ignore WPF for now. One can't help but think it was part of that Novell/Microsoft deal.

    The subset of WPF in Moonlight is useless for non-web development. It's great way for MS to pretend their Flash-killer format is multi-platform though.

    1. Re:WPF Support by Anonymous Coward · · Score: 0

      WinForms is most definitely NOT dead, it's not even dying. If it were dying, it would be a very slown drawn out death taking at least another 10 years.

    2. Re:WPF Support by toshok · · Score: 5, Informative

      Until Mono gets WPF support there isn't going to be much cross-compatibility. Any Windows .NET developer with any sense is writing in WPF already. WinForms is dead.

      This is pretty lame reasoning - new applications are only part of the reasoning behind deciding which apis to support. Supporting the huge number of *existing* applications is also important, and the vast majority of the desktop .net applications out there now use winforms.

      But Mono seems quite content to ignore WPF for now. One can't help but think it was part of that Novell/Microsoft deal.

      More faulty reasoning - have you seen the WPF api? It's enormous. As one of the people with the most commits in WPF-land, I can assure you, it's not prioritized based on any deal. It's strictly a resource issue. Moonlight is just more bang for the buck. Much smaller api to implement, much quicker adoption than WPF. Makes good business sense. That said, WPF remains a spare time project for me (and others).

      The subset of WPF in Moonlight is useless for non-web development. It's great way for MS to pretend their Flash-killer format is multi-platform though.

      Again, not really true. Silverlight 2.0's api is more than capable of building apps for both webpages and desktop, and will become more so as WPF and Silverlight converge. It will take some extending on the mono side for desktop integration, but again, when the choice is using an existing technology and extending it slightly (as in Moonlight) or starting fresh on a GIANT api (as in WPF), which would you choose?

    3. Re:WPF Support by Anonymous Coward · · Score: 0

      It's dying in the sense that less people are using it each month. It may take 10 years but I believe "dying" still applies.

    4. Re:WPF Support by Anonymous Coward · · Score: 0
      Fewer, not less.

      USAGE In standard English, less should be used only with uncountable things ( : less money;: less time). With countable things, it is incorrect to use less: thus, : less people and : less words should be corrected to : fewer people and : fewer words. See also usage at few .

    5. Re:WPF Support by MobyDisk · · Score: 4, Insightful

      Only Microsoft consultants will tell you that WinForms is dead. I've know developers at 2 organizations that moved from WinForms to WPF, and they hated it. (Caveat: I was at one of them). The app went from using 10MB of RAM to 200MB. It went from a minute to compile to 15 minutes. It went from taking 2 hours to make a change, to taking 2 days.

      WPF is powerful, robust, pretty, inefficient, hard to use, and in beta. (Yes, Microsoft says it is not beta, but WPF is still not ready for anything more than experimental use.)

      As for Silverlight, since it offers no benefit over Flash, and since even Microsoft Gold Partners have told me that they use Flash unless forced to use Silverlight, I think it will be a non-competitor unless Microsoft starts shipping it with the OS (maybe they do in Vista - if so, then Flash is dead no matter how good it is)

    6. Re:WPF Support by Anonymous Coward · · Score: 0

      No one who is interested in what he is saying gives a shit. So just SHUT THE FUCK UP. Please.

    7. Re:WPF Support by thePowerOfGrayskull · · Score: 1

      WinForms is most definitely NOT dead, it's not even dying. If it were dying, it would be a very slown drawn out death taking at least another 10 years.

      Translation: I'm still using it.

    8. Re:WPF Support by clockwise_music · · Score: 1

      We have just finished a 6 month project writing a WPF application that is used by hundreds of users, all day. We chose WPF because this program is probably going to be used by the business for the next 10 years, so moving to the newest technology (WPF) instead of Winforms made sense. To say that WPF is "not ready for anything more than experimental use" is rubbish. Tell that to the 30 users upstairs who have been using this program all day every day for the past 3 months.

      I'll be the first to admit that it's not perfect, and there were quite a few things that were a pain (databinding, memory leaks, memory usage)... but in total it's been quite good. It's stable.

    9. Re:WPF Support by MobyDisk · · Score: 1

      You are welcome to disagree: I'm glad you have a successful project. But what is with calling my argument "rubbish" when I cited two personal examples? Does using that term suddenly negate what I said? Only on the internet are people this way, sheesh.

      I won't go into links, but there's lots of reasons WPF is very beta-ish. Off the top of my head:

      • Lots of known memory leaks
      • 10-fold increase in resource usage
      • 10-fold increase in compile times
        (To the point where, in my last app, typing a single keystroke in a XAML document took about 5 seconds for the character to appear on screen)
      • Tools that crash multiple times per day (VS 2008, Expression Blend)
      • Buggy/incomplete tools: Waaaaaaaaaayyy too many things to list here - No real visual editing tool; The only tools available don't support even the common controls built-in.
      • XML editing in Visual Studio is great. But XAML editing is totally different. There are times we had to rename something to .XML just to get the IDE to load the file.

      WPF at this point is kinda like how ASP.NET was in .NET 1.0. ASP.NET was missing lots of stuff, the designer was nearly useless. Sometimes people just edited the HTML in an outside tool just to avoid Visual Studio messing it up. Judging from history, that means we have about 2 versions to go before WPF is as stable as ASP.NET is now.

      My biggest fear is not that WPF is buggy now, but that the foundation is so absurdly inefficient that there's no going back. For example, every single property being a dependency property. I can't imagine what would happen if you made an application the size of Microsoft Office using WPF. As things are now, it would probably require gigs of RAM. Something major has to change either in hardware (I guess that is inevitable) or in the basis of WPF, for it to become useful in apps that are any serious size.

      Anybody know if MS is going to use it for anything other than things like the control panel, wordpad, and little apps like that? That would increase my confidence in the ability to use it in something bigger.

    10. Re:WPF Support by Anonymous Coward · · Score: 0

      Have you tried to program in WPF, it's a dog. I don't believe WPF will ever achieve popularity because it is so difficult to use. I think MS lost it when they stopped developing WinForms. What I would like to see is Mono continue to develop WinForms so that MS becomes incompatible with Mono.

      The elephant in the room however is LGPL QT, that could change everything.

    11. Re:WPF Support by clockwise_music · · Score: 1

      Sorry for being rude, maybe I treat people badly on the internet but I can still apologise. I was just quite annoyed because we've had a lot of success with WPF. Sounds like you didn't.

      So how big was your project? What machine were you building on? Ours has 38 windows and 25 user controls, but a lot of the meaty code is being run on a server and is separate to the app (over wcf). We have 3 projects as part of the application, and on my core 2 duo 3ghz it takes about 15 seconds for a full compile. (However on a previous machine 2ghz I think it was starting to take a lot longer).

      I did actually have a lot of issues with VS2008 running out of memory and the occasional crash, but that was only before we found and fixed a lot of the memory leaks, and removed all of the calls to "initialisecomponent()" in the constructor. And removed all of the on_load code so that it wasn't being called in the designer! Now everything is much much faster. We didn't use expression blend at all and tried our best to cut back on most of the eye candy. People are running our app on pentium III's and it's ok.

      Well apparently VS2010 is going to use WPF - I can't begin to imagine how system-intensive but I'll have to wait and see.

      And I completely agree - I'd love to see if control panel or wordpad were to be re-written by MS in WPF and to see how it goes.

    12. Re:WPF Support by Anonymous Coward · · Score: 0

      Any Windows .NET developer with any sense is writing in WPF already.

      Most Windows developers will be writing what their boss want's them to. And some of those bosses are smart enough to realise that it's not worth throwing away their n-year investment in WinForms just because Microsoft has a shiny new toy to dazzle eveyone at PDC with.

    13. Re:WPF Support by Anonymous Coward · · Score: 0

      Last I checked, shipping Silverlight with Vista doesn't magically convert all of that flash-related stuff on the internet to Silverlight...

      So long as sites like Youtube are flash-based, it's not going to go away anytime soon.

    14. Re:WPF Support by PitaBred · · Score: 1

      As for Silverlight, since it offers no benefit over Flash, and since even Microsoft Gold Partners have told me that they use Flash unless forced to use Silverlight, I think it will be a non-competitor unless Microsoft starts shipping it with the OS (maybe they do in Vista - if so, then Flash is dead no matter how good it is)

      I would love to see the antitrust lawsuits fly if they did that. Microsoft is already on the wrong foot in the EU, and lost the case in the US (even if nothing changed). There is NO way they can argue that Silverlight is core to the OS, and anything other than an add-on, so there's no way they could argue that it's not product-tying, which is a big no-no when you're a monopoly.

    15. Re:WPF Support by MobyDisk · · Score: 1

      Our app was pretty small, but I don't know exactly how many windows or controls.... probably on par with your app. But there was TONS of eye candy. We had a 3rd-party design UI elements in expression blend, and export them to us. We had one button in particular that was thousands of lines long, although we only used it once.

      We had lots of resource dictionaries with lots of fonts, colors, gradients, etc. Those files were slow to load and slow to edit. The main XAML code for the screens was the worst though - those were the ones where I could count to 5 between keystrokes. They were much faster if you edited them as XML though. I think there was so much inter-dependency between things that basically, in order to render a particular component, it had to parse through the whole dang app. That's my theory at least.

      Most of the screens did not work in the XAML previewer. For one thing, isn't supported, which was used in every screen. That was annoying. But even without that, it would layout the screens wrong so you had to edit blindly and rebuild. Maybe blend would have been better but none of the developers really used it. We had a few custom controls, and the IDE would barf on them. You would get dozens of errors in the errors output in the IDE, but the app would run just fine. That was frustrating.

      --

      A friend of mine worked for a company, and one of the teams there made a simple database viewer app that was basically a great big grid. Since the grid was WPF, every box in it was a control, and so if you loaded a thousand rows with 10 columns, that was 10,000 controls loaded into memory. Performance was unacceptable. And that was including some kind of optimization in the control, where it only instantiated the controls once they came onto the screen. I imagine writing the same control in WinForms, you would not do something so silly. You would paint gridlines and draw text onto a window. But the WPF mindset wouldn't really jive with that - how would you put an image, or a web page, or a dancing 3D bear into a cell in the data grid if you didn't build it upon WPF controls?

      VS2010 = WPF? Interesting...

      As for control panel, and wordpad -- I thought those were WPF, just looking at the look and feel. I was thinking, what if they try to write Office in it? THAT would be interesting. Writing Visual Studio in it will satisfy me though. I wonder how much RAM it will take. We already got out of memory errors in our app, on machines with 4GB. I'd hate to try to load that app into VS 2010, unless they do major optimizations.

    16. Re:WPF Support by Anonymous Coward · · Score: 0

      Just as an aside: Visual Studio 2010 will be based on WPF. I can't wait to see the slowness that will come from that. VS2008 is already a pig compared to 2005, which is a pig compared to 2003...

      Great that they are trimming fat from their operating system, but they add it back with their apps.

  17. To a Louse by Anonymous Coward · · Score: 0, Insightful

    O wad some Pow'r the giftie gie us
    To see oursels as others see us
    It wad frae monie a blunder free us
    An' foolish notion

    What you need is Mirrorbuntu, copy-and-paste-monkey.

  18. Sorry, I will never trust Microsoft by jmorris42 · · Score: 5, Insightful

    Sorry, I will never trust Microsoft enough to put them in a position to control a key technology. So that means there is no discussing the issue as far as I'm concerned. There is NO rational basis to argue. I don't trust em.

    And I don't trust the judgement of anyone who isn't themselves suspicious of Microsoft and Miguel's motives.

    Mono is a trap if it is allowed to be deployed beyond a browser plugin to support .net content in the browser. Come the day my current distro of choice loses any finctionality when removing the mono packges I'll be running something different as soon as bittorrent can supply me a new install image. Again, that position is 100% non-negotiable. I have used binary drivers in the past, bought closed source apps and committed many 'sins' against the Church of GNU but this is one case where compromise simply isn't possible. They want us dead, you can't compromise with that.

    --
    Democrat delenda est
    1. Re:Sorry, I will never trust Microsoft by hyades1 · · Score: 4, Insightful

      I haven't sent a "100% agree with everything you just said" post to anybody since I started dropping by here a couple of years ago. Time to change that.

      You're right.

      Regardless of its virtues, expecting Microsoft to use Mono as anything but a club to beat Open Source to death is plain stupid. Their track record in this respect is far beyond arguable, and their part in the ISO situation proves they have no intention of changing. You'd do better expecting discipline from a starving weasel in a hen house.

      --
      I've calculated my velocity with such exquisite precision that I have no idea where I am.
    2. Re:Sorry, I will never trust Microsoft by AKAImBatman · · Score: 5, Funny

      Captain's log, stardate 9522.6: I've never trusted Microsoft, and I never will. I could never forgive them for the death of Netscape and countless other companies. It seems to me our mission to support .NET on Linux is problematic at best. McAllister says this could be an historic occasion, and I'd like to believe him, but how on earth can history get past people like me?

      They're animals. Don't believe them. Don't trust them.

      (They're dying)

      Let them die!

      Sorry, I couldn't resist. I got a kick out of the way you started your post.

      Joking aside, mod parent up. :-)

    3. Re:Sorry, I will never trust Microsoft by Dr.Dubious+DDQ · · Score: 1

      The "well, when everybody is using it there'll be too many of them for Microsoft to bother to sue, so go ahead and use mono/.net everywhere!" argument also sounds a lot like the "too big to fail" business method (i.e. "if we make ourselves big and pervasive enough, we'll be too big to be allowed to suffer consequences no matter what happens in the real world" schtick we're seeing here in the US a lot these last few months...)

      Just doesn't seem like a sound argument in either context.

      Or perhaps I'm just insane[1].

      [1] - okay, I know, not necessarily an "or" situation...

    4. Re:Sorry, I will never trust Microsoft by _Sprocket_ · · Score: 1

      Small clarification: they're keen on OSS that's licensed in a way that it can be a gift to them.

    5. Re:Sorry, I will never trust Microsoft by harlows_monkeys · · Score: 1

      Sorry, I will never trust Microsoft enough to put them in a position to control a key technology. So that means there is no discussing the issue as far as I'm concerned. There is NO rational basis to argue. I don't trust em.

      Microsoft controls Mono in the same sense that AT&T controls C and C++.

    6. Re:Sorry, I will never trust Microsoft by mR.bRiGhTsId3 · · Score: 1

      And here I would have given you an insightful mod for that. Some people can't get past the blind seething hatred of MS to give any of their technologies a chance. Its an ISO standard for crying out loud. There is no club for them to swing with .NET.

    7. Re:Sorry, I will never trust Microsoft by Anonymous Coward · · Score: 0

      I just don't get folks.

      You don't negotiate with a hungry, pissed off predator while you're backed into a corner with no escape. Especially when it's wounded and slightly delirious.

      We have made concessions over and over and over...we have 'bent' our time and effort in their direction...we have tried being nice and amicable.

      That time has come and passed.

      Time to pull the fucking .50 cal hunting rifle out and put it out of its misery.

      And to think that people accuse Linux fanboi of group-think...what the hell? Windows 7 a.k.a. Vista-Improved as Microsoft's future? We're looking at another 2-mile-long dog turd laid to rest in a large rose garden. One entirely visible from space. I've been running the beta in a VM and it makes Roseanne Bar look like Calista Flockhart.

      I will not accept "but they've done so much for the common man" as an argument (and it's slimy twin, "joe sixpack can't run something else") because they have inflicted so much pain and suffering on everyone else. They haven't just mastered lower expectations, they've gone out of their way to *crater* themselves. Vista and Windows 7 as the way forward? Jesus on a pogo stick, we're talking the nuke-it-from-orbit option at this point.

      When are we just going to grow a fucking pair of balls and stop wasting our efforts on this shit? Stop sniffing superglue and salvage your remaining braincells. They have ass-raped everyone within grabbing distance, and their arms just keep gettin g longer...

    8. Re:Sorry, I will never trust Microsoft by AKAImBatman · · Score: 1

      Funny, I was quite happy with the "Let them die!" The ISO standard is smoke and mirrors, nothing more. Microsoft did not standardize the most important parts, and you can be sure that the platform will continue to evolve in a non-standard direction.

      Microsoft doesn't do standards. They monopolize the market, then call it a standard. Ever read the marketing on ActiveX? "An industry standard..." Yeah.

      Embrace. Extend. Extinguish. That's the Microsoft credo. "Standards" are the first step. Take a look at Internet Explorer sometime and you can see how it works in practice.

    9. Re:Sorry, I will never trust Microsoft by Anonymous Coward · · Score: 0

      There is NO rational basis to argue.

      Of course there isn't. You seem to have plugged your ears quite well.

    10. Re:Sorry, I will never trust Microsoft by Anonymous Coward · · Score: 0

      Wrong. ASP.NET, ADO.NET, and WinForms are not part of the ISO standard. Without those, Mono is useless. Those are proprietary, patented Microsoft extensions. How, after all these years, could you have gone on without knowing that? And you're not alone, a lot of Mono fans either don't know or deliberately ignore it (despite the fact that the Mono team actually does mention the possibility of that threat in their FAQ). Do you see now why Mono is held in such low esteem in the Linux community?

    11. Re:Sorry, I will never trust Microsoft by mR.bRiGhTsId3 · · Score: 1

      Ah, because Gtk# is clearly useless. Oh wait, I must be imagining this awesome music player named banshee, the awesome notepad called tomboy, and the awesome photo manager commonly referred to as f-spot. Yeah, the WinForms stuff is patented, but the core spec is still a standard, and as such, Microsoft isn't allowed to assert claims against it.

    12. Re:Sorry, I will never trust Microsoft by Anonymous Coward · · Score: 0

      LOL. Your definition of "awesome" is amusing. Those apps are horrible. And I notice you left out Beagle. Hmm, I wonder why. Could it be because it is a horrendously bloated mess of a Mono app?

      Anyway, it looks like you are finally admitting that Microsoft can assert claims against Mono's use of Winforms, ASP.NET and ADO.NET. Good. You're making progress.

    13. Re:Sorry, I will never trust Microsoft by Anonymous Coward · · Score: 0

      > Ah, because Gtk# is clearly useless. Oh wait, I must be imagining this awesome music player named banshee

      Which still does not run on Windows (at least not using .Net), and its Windows ports use WinForms. In comparison, amarok seems to be further ahead when it comes to running on Windows.
      So for my personal uses, yes Gtk# indeed is clearly useless.

    14. Re:Sorry, I will never trust Microsoft by Anonymous Coward · · Score: 0

      They want us dead, you can't compromise with that.

      So, the only thing that stops you from running a fantastic app like Beagle (for example) is your own paranoia? And anyone who doesn't automatically distrust Miguel de Icaza, a visionary who has almost certainly done more for open source development than you have, must have faulty judgment?

      You need to get out more.

    15. Re:Sorry, I will never trust Microsoft by Anonymous Coward · · Score: 0

      Just out of curiosity .. what distro do you use? If it's ubuntu you'll need to nuke at least F-Spot and Tomboy that I know of; I'm sure there are more, too.

  19. Mono just misses a debugger by rocket22 · · Score: 1, Redundant

    Mono is great to develop multi-platform code. Easier than C/C++ and almost as fast. You can even run WinForms code in MacOSX, Linux and even Solaris (http://codicesoftware.blogspot.com/2008/12/opensolaris-and-mwf.html). The only thing they miss is a debugger on all platforms. Their problem seems to be the lack of focus. Please folks: - A debugger now on all platforms!! - Eclipse integration (whatever, slick edit is enough but...) - Qt *real* support And then lots of people would jump to Mono/C# from C/C++

    1. Re:Mono just misses a debugger by Anonymous Coward · · Score: 0

      Redundant because poster made an almost identical post earlier in the thread.

  20. There isn't one. by toby · · Score: 2, Funny

    Next question?

    de Icaza can go to Hell along with his bosses at Microsoft.

    --
    you had me at #!
    1. Re:There isn't one. by AndrewNeo · · Score: 1

      I think you mean Novell.

    2. Re:There isn't one. by Just+Some+Guy · · Score: 0, Troll

      de Icaza can go to Hell along with his bosses at Microsoft.

      I said this before but I still mean it:

      Miguel talks about his job interview with Microsoft. How interesting that we all trust that he didn't get it.

      --
      Dewey, what part of this looks like authorities should be involved?
    3. Re:There isn't one. by Tweenk · · Score: 1

      Same thing.

      --
      Those who would give up liberty to obtain working drivers, deserve neither liberty nor working drivers.
    4. Re:There isn't one. by Anonymous Coward · · Score: 0

      Wow. How the worm does turn, eh?

  21. What's the point with Qt now fully free? by Khopesh · · Score: 4, Insightful

    Most people think of Qt as a GUI toolkit. They're not wrong, but that's like calling a Swiss Army Knife a "pocket knife." That's only one thing it does, and the characterization completely misses the point. Qt is an application framework. It fixes every gripe developers have with C++.

    Qt promotes clean and well-developed code that is easily ported to Windows, X11 (Linux et al), Mac, and Embedded (Linux sans-X11). That's something even Java doesn't do well (have you ever tried porting between J2SE and J2ME? nothing works!), even disregarding the whole performance loss from the JVM emulation-like interpreting that goes on.

    The LGPL relicensing of Qt coming this spring will change the entire programing language landscape. Nokia is moving in to crush Java. C#/.NET and it's mediocre OSS implementation in Mono aren't even on the radar.

    I cite the LGPL announcement because that's the kiss of death, placing Qt firmly above GTK (GTK being an incidental casualty on the way to said crushing of Java). With Mono relying so heavily upon GTK#, that puts it behind the game already (the Qt# project is cited on the Mono page as completely dead).

    Recall that Nokia is a phone company. They need not make money from the software. Freeing and promoting Qt (and getting it to supplant J2ME) merely feeds this primary function. And while they're at it, they're sweeping in a wonderful set of perks for software engineers in and out of the Free Software community, on both embedded platforms and desktops.

    --
    Use my userscript to add story images to Slashdot. There's no going back.
    1. Re:What's the point with Qt now fully free? by Who+Is+The+Drizzle · · Score: 5, Insightful

      Qt is an application framework. It fixes every gripe developers have with C++.

      Except for the fact that you are still programming in C++ which is bloated, monstrosity of a language.

      Qt promotes clean and well-developed code that is easily ported to Windows, X11 (Linux et al), Mac, and Embedded (Linux sans-X11).

      It doesn't seem to promote to well considering the amount of crappy C++ code written with Qt there is floating around.

      Nokia is moving in to crush Java.

      Considering Java's biggest adopted base is in server-side programming, I really doubt Qt is going to do all of jack and shit to change that. I seriously doubt many of those people writing server-side apps in Java would even have a use for Qt in their work. Sure it might pull away some of the desktop app developers, but they have been pretty much the minority when it came to the adoption of Java anyway.

    2. Re:What's the point with Qt now fully free? by Anonymous Coward · · Score: 0

      Qt is still a separate language from C++ and needs to be pre-processed to become C++, right? I wouldn't call that "clean".

    3. Re:What's the point with Qt now fully free? by Anonymous Coward · · Score: 0

      The LGPL relicensing of Qt coming this spring will change the entire programing language landscape. Nokia is moving in to crush Java. C#/.NET and it's mediocre OSS implementation in Mono aren't even on the radar.

      Most Java programmers are doing their work on backend servers which have no needs for a GUI toolkit. How exactly is Nokia going to be crushing Java when most of it's programmers don't even do GUI programming anyway?

    4. Re:What's the point with Qt now fully free? by Tatsh · · Score: 1

      Agreed. The Qt API is RIDICULOUSLY easy to use, especially in comparison to Win32 API and even GTK+ and wxWidgets.

      Death to Mono!

    5. Re:What's the point with Qt now fully free? by ianare · · Score: 3, Interesting

      Exactly. At this point, there's no more reason for that tangled mess that is GTK, and with Gnome's reliance on Mono apps, I see the downfall of Gnome/Mono and the rise of KDE/Qt as the programming environment of choice for Linux (well as soon as KDE 4 is out of beta ...).
      Amazing what difference a license change makes, eh ?

    6. Re:What's the point with Qt now fully free? by jjohnson · · Score: 3, Informative

      No, QT is a library. It provides (very good) APIs to C++ programmers to do most of the really onerous crap that C++ developers are tired of doing, and are doing in a hundred different ways already.

      --
      Anyone who loves or hates any language, platform, or manufacturer, doesn't know what they're talking about.
    7. Re:What's the point with Qt now fully free? by Anonymous Coward · · Score: 0

      Qt is an application framework. It fixes every gripe developers have with C++.

      Not a day goes by that I don't think "You know what'd be cool? If I had to run everything through a preprocessor that completely breaks templates and virtual inheritance, so I can pretend I'm using an ugly Java clone." They should have provided a C API and left C++ bindings for someone who seriously uses the language.

    8. Re:What's the point with Qt now fully free? by Anonymous Coward · · Score: 0

      C++ is bloated? Please name a non-interpretted/bytecode language that supports OOP and is less bloated.

    9. Re:What's the point with Qt now fully free? by SkipRosebaugh · · Score: 2, Informative

      Objective-C

    10. Re:What's the point with Qt now fully free? by Who+Is+The+Drizzle · · Score: 1

      C++ is bloated?

      Yes, it is. Have you ever used the language?

      Please name a non-interpretted/bytecode language that supports OOP and is less bloated.

      That other languages may be bloated as well, doesn't mean that C++ is any less bloated.

    11. Re:What's the point with Qt now fully free? by shutdown+-p+now · · Score: 1

      Except for the fact that you are still programming in C++ which is bloated, monstrosity of a language.

      Except for the fact that you don't have to use C++ in order to use Qt.

    12. Re:What's the point with Qt now fully free? by ion.simon.c · · Score: 1

      C++ is bloated?

      Yes, it is. Have you ever used the language?

      I have, and do. Care to point out specific instances of bloat?

    13. Re:What's the point with Qt now fully free? by ion.simon.c · · Score: 1

      QT can be used for more than just GUIs, hoss.

    14. Re:What's the point with Qt now fully free? by L'homme+de+Fromage · · Score: 1

      I think the LGPL'ing of Qt 4.5 is going to kill Mono first, then GTK+, but not Java. As others have mentioned, Java is very popular on the server side of web development, and that won't be going away anythime soon. For desktop application development in Linux, Qt will become king. I have no problem with that.

    15. Re:What's the point with Qt now fully free? by pherthyl · · Score: 1

      >> Except for the fact that you are still programming in C++ which is bloated, monstrosity of a language.

      Right.. People who don't know what they're talking about love the word "bloated", whether they're talking about UI, programs, or languages. I've yet to see any real examples of this "bloat".

      >> It doesn't seem to promote to well considering the amount of crappy C++ code written with Qt there is floating around.

      Such as? Any reason to think that there is a larger percentage of crappy code in C++ than any other language?

      >> I really doubt Qt is going to do all of jack and shit to change that.

      There I agree with you. Qt is not for webapps.

    16. Re:What's the point with Qt now fully free? by Xtifr · · Score: 1

      I can guarantee that Gnome is not "dependent" on Mono, as I have a completely Mono-free Gnome desktop. And GTK is used by a whole lot more than just Gnome. Personally, I'd rather keep my systems free of both Mono and Qt as they are right now.

    17. Re:What's the point with Qt now fully free? by JohnFluxx · · Score: 1

      How does it break templates and virtual inheritance? Qt itself uses both considerably.

    18. Re:What's the point with Qt now fully free? by Anonymous Coward · · Score: 0

      The 4.4 moc documentation grudgingly admits these are totally broken, then tries to claim losing half of the language isn't a disaster.

      QObjects cannot be template instantiations, so Alexandrescu's policy-based design is out. Actually I think almost all of his brilliant contributions to C/C++ Users Journal are out, which presumably nobody at Trolltech ever read.

      A QObject cannot inherit from any other QObject, so mixins are out. If I recall correctly, this is because they make unportable assumptions about how your compiler might choose to lay out a subclass of QObject in memory. Vtables are an easy but generally not the best way to implement virtual methods, but now we're stuck with them because of stupid crap like this and COM.

      There are various other omissions (moc can't figure out the qualified name of a type? what kind of excuse for a C++ parser are they using?) that have ugly workarounds but just generally indicate a nearly MySQL grade of sloppiness and apathy.

    19. Re:What's the point with Qt now fully free? by bcrowell · · Score: 1

      Except for the fact that you don't have to use C++ in order to use Qt.

      The PerlQt interface hasn't been updated since 2003, so I think it's dead. The python bindings aren't free on Windows, which would dull my enthusiasm, since I thought a lot of the allure of Qt was supposed to be that it's cross-platform. There are no Ruby bindings on the list you linked to. Of the remaining languages on the list, Pascal isn't widely used these days, PHP isn't a language I'd have thought of using for a GUI, and Ada isn't anything I'd use unless I was writing software for the US military.

    20. Re:What's the point with Qt now fully free? by shutdown+-p+now · · Score: 1

      You missed one big point on the list - Java - Qt Jambi. It's also the only one officially supported by Trolltech. And, of course, it's a pretty obvious candidate to counter C#/WinForms or C#/Gtk#.

    21. Re:What's the point with Qt now fully free? by Anonymous Coward · · Score: 0

      ...what reliance exactly are you talking about? Could you point me to the Mono app that Gnome depends on?

    22. Re:What's the point with Qt now fully free? by Anonymous Coward · · Score: 0

      Thanks for the info. Yikes! I had no idea that so many of the Gnome apps already rely on Mono.

      IMO, Mono will hurt FOSS in the long run. I don't mind C# as a language, but IMO Mono will hurt FOSS in the long run.

      It doesn't make sense to be beholden to a company's class libraries and APIs when the company's stated goal is to crush FOSS. Am I missing something? Why can't people see that?

    23. Re:What's the point with Qt now fully free? by shutdown+-p+now · · Score: 1

      If you mean speed of produced code, then C++ is superior to ObjC.

      Otherwise, I think that D is still a better example. ObjC is way too low-level in some ways (fully manual memory management with no smart pointers - WTF?).

  22. It sucks as it cuts! by TheRealMindChild · · Score: 0, Offtopic

    I thought I had mono once for an entire year. Turned out I was just really bored.

    --

    "When life gives you lemons, don't make lemonade. Make life take the lemons back!" -- Cave Johnson
  23. Why? by m509272 · · Score: 2, Informative

    There's simply no overwhelming reason to use this when alternatives exist.

    1. Re:Why? by shutdown+-p+now · · Score: 1

      I think the stronger argument is that the alternatives are often better. Comparing the full Microsoft .NET implementation with Java is one thing, but Mono lags behind both in terms of features, and particularly in terms of performance (they're still several times slower than either Microsoft or Sun JIT, and the GC is lacking, too).

  24. the 'case' for Mono appears to be by Anonymous Coward · · Score: 0

    that it has caught up to what other platforms are doing in some areas, and is vaguely sponsored by Microsoft.

  25. WTF Support by Anonymous Coward · · Score: 0

    Until Mono gets WTF support, we'll never know what's going on. Any Windows .TEN developer with any cents probably has a dollar already. LoseForms is dead.

    But Mono seems quite content to ignore WTF for now. ...

    WTF?

    Or, maybe you could tell us that "WPF" means Windows Presentation Foundation and remind us that it's the biggest hurdle to Mono's ability to take Windows-based C# projects and make them work with a simple hack or two. This is something that Java and Qt have been able to do for over 15+ years.

  26. to the casual observer by Ancient_Hacker · · Score: 2, Insightful

    to the casual observer, a copy of a not very successful proprietary virtual machine and framework that has been partially abandoned by its own masters-- it does not sound like a super idea.

    You might recall Microsoft spent like three years rewriting parts of Windows in .NET and then gave up on it, for all the obvious reasons. Maybe we can learn from their very expensive learning experience?

    1. Re:to the casual observer by dbIII · · Score: 1
      There are already applications in dotnet. The mono project is worthwhile merely to allow them to run on multiple platforms.

      An example is a very expensive peice of geophysical software. You can either run it on a windows workstation and have people take turns in the hotseat, you could give everyone MS Windows to run this one application and give people exceed or whatever to run everything else on remote *nix machines, or you could run it with mono on an 8 CPU machine with a pile of memory and display it on whatever workstation people want to use. Mono could save me from having to buy a dozen 8 CPU MS Windows 64bit workstations with 16GB of memory for something that only gets occasional use.

      It may not be the best thing for ongoing and new development (and the guy that writes inhouse apps in dotnet which all require Admin to run is driving me up the wall), but it's here and if nothing else mono can future proof things that people have spent a lot of time on. I already have far too many examples of stuff written by experts in various non-programming fields in VB which require specific versions of VB libraries so effectively cannot run on anything other than Win95 - mono can save us from such bullshit with the new VB and associated bits.

    2. Re:to the casual observer by The+Bungi · · Score: 3, Insightful

      not very successful proprietary virtual machine and framework

      So .NET is not successful? Can you please explain why, exactly, a technology that counts millions of active developers and thousands of products is not "successful"? What exactly constitutes success, in your book?

      has been partially abandoned by its own masters

      Uh, abandoned how, exactly? Please be specific, you were modded up for your comment so I assume you have more than just a Slashdot-style FOSS advocacy blurb here to back it up.

      You might recall Microsoft spent like three years rewriting parts of Windows in .NET

      You might recall that they did indeed rewrite parts of Windows in .NET, like the management console subsystem and several tools like PowerShell. Were you expecting them to rewrite the whole thing in C#, and is that why you claim .NET is not successful? And please, I'd like to see some evidence that they didn't do something they claimed they were going to do in Vista with .NET, because as far as I remember they did exactly what they said they would - nothing more and nothing less.

      Maybe we can learn from their very expensive learning experience?

      Maybe you can cut down on the impressive-sounding hyperbole a bit. I feel liked I just walked into the Slashdot Spin Zone(TM) here.

    3. Re:to the casual observer by Shados · · Score: 3, Informative

      a copy of a not very successful proprietary virtual machine and framework that has been partially abandoned by its own masters

      Wow....what? .NET is pretty much everywhere now...and parts of Windows -ARE- in it...not the kernel, no (thats like saying C/C++ are failures because you still need assembly for performance critical parts...), but a significant chunk of the user land tools, and a very very big portion of the various tools Microsoft provide are in .NET... from PowerShell, to Sharepoint, going by parts of Visual Studio, SQL Server, Biztalk, the UI of most of their new tools and components, etc.

      The huge chunks of legacy code (Office...) can't easily be ported for obvious reason, but abandoned platform? Thats amusing as hell.

    4. Re:to the casual observer by Ancient_Hacker · · Score: 1

      No hyperbole.

      Microsoft when asked why Vista was late the reason given was that they wrote several thousand person-years of code in .NET and once they saw how slow it was, they junked almost all of it. I'd call that abandonment.

      No hyperbole.

       

    5. Re:to the casual observer by Anonymous Coward · · Score: 0

      No source.

      Source?

      No source.

    6. Re:to the casual observer by Anonymous Coward · · Score: 0

      So .NET is not successful? Can you please explain why, exactly, a technology that counts millions of active developers and thousands of products is not "successful"? What exactly constitutes success, in your book?

      Any platform that requires millions of developers to produce and support a mere thousands of products isn't a very productive tool set.

    7. Re:to the casual observer by Just+Some+Guy · · Score: 2, Insightful

      but a significant chunk of the user land tools, and a very very big portion of the various tools Microsoft provide are in .NET... from PowerShell, to Sharepoint, going by parts of Visual Studio, SQL Server, Biztalk, the UI of most of their new tools and components, etc.

      What you've done right there is called "damning with faint praise".

      --
      Dewey, what part of this looks like authorities should be involved?
    8. Re:to the casual observer by RzUpAnmsCwrds · · Score: 1

      And please, I'd like to see some evidence that they didn't do something they claimed they were going to do in Vista with .NET, because as far as I remember they did exactly what they said they would - nothing more and nothing less.

      Major portions of Longhorn were rewritten using managed code. Unfortunately, Microsoft didn't realize the compatibility and stability nightmare that replacing decade-old, well-debugged C++ routines with .NET would create.

      This, combined with the fact that Longhorn devs were pulled off the project to work on XP SP2 caused the project to get hopelessly off course.

      Things got so bad that Microsoft decided to effectively scrap the entire Longhorn userspace in 2005 and restart development using the Windows Server 2003 codebase.

      Some might argue that it was because the managed portions of Longhorn were "too slow" or "buggy". This is true, but it's not really an indictment of .NET. Longhorn failed because it was too ambitious; developers tried to change too much, too quickly. Restarting from the mature Windows codebase that had been developed over the last 10 years allowed the project to get back on track. .NET is alive and well. Anyone who thinks that Microsoft is abandoning .NET needs to look at the products that Microsoft is working on right now. PowerShell uses managed code. The Zune uses managed code. Media center uses managed code. VS is written in managed code. Silverlight runs managed code. Even the product I worked on, ILM, was written with managed code.

      No, you're not going to see Windows written in .NET. There are no major desktop environments written in managed code, although mobile environments (like the Hiptop or Android) are surprisingly close. But for everything else, that's where the world is heading.

    9. Re:to the casual observer by what+about · · Score: 1

      The root is not mono but C#, born to destroy Java.
      Of course then you need some sort of library to go with C# and then .Net was born.
      Finally, Microsoft could not avoid PUSHING the "crapware" (Yes I also use .Net) into Web (where, as usual, you can do 80% of your project easly and then be dammed with it...)
      So, .Net is "widespread" not because of tecnical merits, just because it is PUSHED (anybody think windows update) into your throat.
      Cheers

    10. Re:to the casual observer by The+Bungi · · Score: 1

      Did they also push an evil midget through teh intertubes that forced you to code in C# at gunpoint? I must have missed that the last time I ran Windows Update.

    11. Re:to the casual observer by Ancient_Hacker · · Score: 1

      Sources:

      with direct quotes from MSFT's Allchin, actual survey of .NET files in Vista versus Longhorn, and more.

      http://tinyurl.com/cj8f4q

      http://tinyurl.com/b4hw8c

      http://tinyurl.com/nj5ds

      Sources!

    12. Re:to the casual observer by ozphx · · Score: 1

      Were you expecting them to rewrite the whole thing in C#, and is that why you claim .NET is not successful?

      As more of an academic exercise they did have a play in that area: http://en.wikipedia.org/wiki/Singularity_(operating_system)

      --
      3laws: No freebies, no backsies, GTFO.
    13. Re:to the casual observer by cbhacking · · Score: 1

      Actually, while it's not Windows, Microsoft Research does have a working OS kernel written almost entirely (for obvious reasons, some assembly required) in a managed language descended from C#. It's called Singularity, and is an open-source project - not much can be done with it, but it's fun to play with. Midori, a internal project aiming to take what was learned from Singularity but do better and potentially accomplish much more, is under development within MS.

      Additionally, I believe Media Center, at least in Vista, is almost entirely .NET code - a rather impressive example of it, too. Future versions of Microsoft's development tools, Visual Studio and the Expression Suite, also use WPF (a .NET component) for their UIs, at least.

      In other words, while the NT kernel is most definitely still all C (with small bits of assembly - it is actually intended to be highly portable), it's not impossible for managed code to find its way even in there - and .NET is far from dead.

      --
      There's no place I could be, since I've found Serenity...
    14. Re:to the casual observer by Shados · · Score: 1

      Yeah, I just meant that some things are so performance intensive that even C isn't good enough for 100% of it, so obviously .NET won't either :)

      And yeah, the place where .NET finds itself the most is for the .NET 3.0 stuff. WPF is literally everywhere in the newer stuff, WCF is defacto standard for new communication related stuff, and Windows Workflow is in most of their enterprise tools.

  27. for quick, cross-platform development c/c++ sucks by Trepidity · · Score: 1

    The main problems aren't so much the language as the lack of a useful standard library. No cross-platform networking, no cross-platform threads, no thanks.

    This is slowly being addressed, so it may be less of a problem in the future. OpenMP is slowly becoming a threading standard, and it looks like boost now has a sockets library. But it's a huge hassle of #ifdefs for now.

  28. precisely the problem by Rob+Y. · · Score: 3, Insightful

    Mono developer = Microsoft .NET developer, but a Microsoft .NET developer != Mono developer.

    And that's a good thing? If Mono were merely a separate 'take what you like and leave the rest' clone of .NET it wouldn't be so bad, I guess. It might be yet another potentially portable platform (albeit one that carries vague patent threats).

    But Miguel has actively promoted it as a way to get all that great .NET code being developed out there onto Linux. And that it is not. Probably never will be. Microsoft certainly doesn't want it (or won't once they displace Flash), and Miguel can't do it in any practical way.

    He'll come close. Achingly close. But Mono code will be limited practically to Linux. Or it might work on Windows in whatever limited way GTK stuff works there today. Certainly not likely to work on Mac's or various phone platforms.

    And there are technologies that already work on all those platforms. If Microsoft wanted it (and if anybody would - or could - ever trust them), .NET could work on all those platforms. But they don't, and it won't.

    So keep working on Mono. It may someday be a nice technology in its own right. But *please* stop trying to justify it by saying that someday it'll make all Windows code 'just work' on Linux. Does anybody really believe that?

    --
    Posted from my Android phone. Oh, I can change this? There, that's better...
    1. Re:precisely the problem by Anonymous Coward · · Score: 1, Interesting

      I've yet to have a problem running a mono app on FreeBSD (ok, it's not Linux, but typically compatibility is worse on FreeBSD).

      Install x11-toolkits/libgdi+ (or whatever it was), and mono, and I've had graphics, networking, threading, pretty much whatever I've thrown at it, available in FreeBSD.

    2. Re:precisely the problem by YttriumOxide · · Score: 2, Insightful

      Certainly not likely to work on Mac's or various phone platforms.

      I use it on a Mac... professionally... My only complaint with it on MacOS is that I can't reasonably expect an end user to have mono, and so I tend to include the whole thing in to the one package, which makes for amazingly large looking programs when the basic functionality is so small (especially when I've just migrated a Windows app that was only a "few hundred KB" (as far as "migrating" goes - my Windows .NET apps do "just run" on mono, as that's actually one of my strict requirements at my workplace, but I prefer to write a native GUI in Cocoa# since WinForms or GTK look ghastly on a Mac)

      --
      My book about LSD and Self-Discovery
      Also on facebook as: DroppingAcidDaleBewan
    3. Re:precisely the problem by Anonymous Coward · · Score: 0

      It works fine on OS X. I suggest you check out the alpha of Banshee. Gtk# isn't even that bad (doesn't require X11, uses the global menu bar, etc), but there's also Cocoa#.

      I don't think anyone really thinks all this Windows code will suddenly just work. But when you aren't faced with a complete rewrite (eg. the vast majority of your business objects don't require any porting) you're a lot closer to considering a Linux/Mono version, using the Gtk# and whatever else tools for the platform specific bits of code, than you are if you're faced with a complete rewrite. And some code will just work, which is a nice bonus.

    4. Re:precisely the problem by bonefry · · Score: 2, Insightful

      > But Mono code will be limited practically to Linux. Or it might work on Windows in whatever limited way GTK stuff works there today. Certainly not likely to work on Mac's or various phone platforms.

      I really don't get why some people are thinking inside the box like this.

      Who said Mono is interesting only for WinForms/Gtk applications? Who said Gtk can be the only cross-platform GUI toolkit for Mono?

      There actually is a wx.NET effort (wxWidgets) which is not really popular, but instead of bitching about it why don't you contribute? (you don't even have to start from scratch). Not to mention that you can design your interface in C++/Qt and access the resulting .dll from Mono.

      Mono is most interesting to me for server-side applications because it has decent performance. Just last week I ported a NLP parser from Perl to Mono, and it was like 15 times faster. And I could've done it in C++ or Java, but working with expressive languages everyday it really hurts when working with those, but that's just me.

    5. Re:precisely the problem by salimma · · Score: 1

      Certainly not likely to work on Mac's or various phone platforms.

      The Banshee developers beg to differ.

      --
      Michel
      Fedora Project Contribut
    6. Re:precisely the problem by Anonymous Coward · · Score: 0

      But Miguel has actively promoted it as a way to get all that great .NET code being developed out there onto Linux. And that it is not. Probably never will be. Microsoft certainly doesn't want it (or won't once they displace Flash), and Miguel can't do it in any practical way.

      Actually, Mono is a way to get all that great .Net code being developed out there onto Linux. I've taken reasonably complex .Net code (including Windows.Forms and Asp.Net code) to Linux and had it "just work".

      But *please* stop trying to justify it by saying that someday it'll make all Windows code 'just work' on Linux. Does anybody really believe that?

      Maybe you should try it before you knock it? It's clear to me that you haven't had any experience porting .Net code between Windows and Linux. Try it, then speak from experience.

    7. Re:precisely the problem by Rob+Y. · · Score: 1

      But how is that better than, say, QT, which is a lot closer to write once, recompile and release everywhere. Or was it QT's GPL restriction (about to go away) that prevented it's being a logical choice?

      If you need to rewrite your GUI for each platform, then you obviously need to rebuild for each platform. So what's Mono bringing to the table that QT doesn't. Certainly not smaller binaries, if, as a previous poster points out, you need to include Mono itself with your executables.

      And then there's Eclipse. Is Mono so much better?

      --
      Posted from my Android phone. Oh, I can change this? There, that's better...
    8. Re:precisely the problem by Rob+Y. · · Score: 1

      I'm not saying that. I'm just saying that Mono was largely 'sold' by Miguel as a way to let people code for Windows and magically get Linux support as well. Since to most people, 'code for Windows' means WinForms, that wasn't quite true.

      Now when you compare speed to a script language like Perl and compare 'expressiveness' against C++, well yeah, I guess. But how about comparing speed to C++ and expressiveness to Java.

      You seem to imply that Java's in a different class 'expressiveness-wise' with Mono. I always thought that the underlying languages were essentially the same. Are the Mono libraries or some other factor that much better than what Java has? If so, please explain. I was never a big fan of Java, but I used it recently for a project, and was very pleasantly surprised.

      --
      Posted from my Android phone. Oh, I can change this? There, that's better...
    9. Re:precisely the problem by FishWithAHammer · · Score: 2, Informative

      This is not true.

      The majority of .NET code is bizlogic stuff. It stays within its "box", using only framework APIs and such. Stuff that's well-documented and, important for this discussion, already implemented in Mono. You get a lot of "woah!"'s when you copy their bizlogic app onto a flash drive, plug it into a Linux machine, and run it without even a recompile. Of course, there's no perfectly write-once, run-anywhere architecture, and sometimes you will encounter oddities from OS to OS in applications (though, like Java, bizlogic stuff tends to work right out of the box without trouble--it's when you get into more complex stuff that there can sometimes be issues). But these quirks exist everywhere, and rarely are they so significant that the applications don't run straight off the top. Now, the problem with cross-platform capabilities with Mono (at least before the Foundation frameworks like WPF and WCF, which very few people actually use because they're overengineered crap) is native code libraries. People find something they want to snarf up into a managed code app, so they do it. But if you've got builds of that library on multiple platforms they can be ported and packed with the executable to intelligently pick the native code library based on which OS it's being run on (picking libfoo.dll on Windows, libfoo.so on Linux, libfoo.dylib on OS X).

      Regarding "might work on Windows"--Mono has a build for Windows. It works fine. Some small theming issues, but it works. System.Windows.Forms is supported on Windows, OS X, and Linux, although I personally am looking into the Qyoto QT libraries for easier use (because WinForms, though easy, has problems).

      Mono already works on "Mac's various phone platforms". (It runs very well on OS X; right now I'm testing an app for use on OS X 10.5.) It runs on the iPhone, too, thanks to their newish static compilation stuff.

      So...sorry, but no. It works and it works fine. Nice work on the Insightful mods though. I suggest actually reading what you're talking about if you want to actually be insightful, though. :-)

      --
      "You can either have software quality or you can have pointer arithmetic, but you cannot have both at the same time."
    10. Re:precisely the problem by Akzo · · Score: 1

      But *please* stop trying to justify it by saying that someday it'll make all Windows code 'just work' on Linux.

      No one thinks Mono is designed to make Windows code work, the Windows API is the Wine project. Mono will someday make all .NET code work however, possibly in conjunction with Wine.

      --
      Sig is for Signature, so you don't have to manually sign every post.
  29. Won't be on my machine anytime soon. by bersl2 · · Score: 1

    While the likelihood of Mono being a trap has come down over time, I'm still not very keen on installing or using it. So unless something important enough to me comes along that requires it, I will avoid anything which requires it.

  30. What are the mysterious patents by MobyDisk · · Score: 1

    I want to know what the mysterious magical patents are that makes Mono somehow more dangerous than Java, or Flash, or any other framework.

    What patents does Microsoft have on .NET? What could they do that magically would make already written and deployed .NET apps on Linux require licensing?

    Frankly, I think Microsoft has the best possible situation. They can take the high-road by claiming it is an open standard, but drop little hints like "you know... we could patent it..." so that people won't use it. Win-win for them. Oh, and the resulting in-fighting, and waste of developer time putting effort into a project that nobody uses. So make that Win-Win-Win.

    C# and .NET are the absolute best set of development tools I've ever seen. I hate to see fearmongering cause us to not use it, and Microsoft gaining the advantage.

    1. Re:What are the mysterious patents by jjohnson · · Score: 4, Insightful

      There was a famous story about Sun and IBM that got aired a lot during the MS antitrust trial. It goes like this:

      One day, a bunch of IBM patent lawyers show up at Sun's headquarters, saying that Sun is infringing on patents A, B, C, etc. They demand a hefty license fee. Sun engineers (remember, it started as a company of engineers) sit down in a boardroom with the lawyers, look at the patents, and are surprised--they're for various obvious things like mathematically adding a variable stroke to a line, and such. The engineers walk the lawyers through their own patents, explaining how they're all obvious and wouldn't stand up in a court of law. The lawyers remain silent until they're done. Then the chief lawyer says "Perhaps you're right. But after one big court case dragging on for years, we'd just come back with another set of patents and repeat the whole process. Eventually we'd find something that you'd infringed on, and then you'd have to pay damages rather than a licensing fee."

      Sun signs a cross-licensing agreement with IBM the next day.

      That's the worry. It's not that Microsoft has patents that can allow it to launch SCO 2.0 with a better hope of success. It's the worry that, if they decide to snuff out Mono, they can launch a legal crusade to so encumber Mono in litigation and FUD that it dies an ignominious death. Then all that effort is wasted, OSS and Linux get a bad name in the process, and a lot of developers and customers are soured on Mono, Linux, and anything that doesn't come from a Fortune 500 company. This is why Novell signing a patent cross-licensing agreement caused such bad blood--it implies that MS does have patents that are or could be infringed. On the fateful day that MS decides to crush Mono, Novell's agreement strengthens MS's case, if only in PR terms.

      --
      Anyone who loves or hates any language, platform, or manufacturer, doesn't know what they're talking about.
    2. Re:What are the mysterious patents by MobyDisk · · Score: 2, Insightful

      I know the story, but I don't see how it is relevant here. Microsoft could do the same thing to Java, or anything else for that matter. If the only argument is that "Microsoft might strong-arm you out of the market" then nobody else on the planet should write software.

      I agree with you about Novell - my hatred for them is the strongest reason I avoid Mono.

    3. Re:What are the mysterious patents by jjohnson · · Score: 1

      It's not just that MS might come after you. It's that Mono, being an OSS implementation of .NET, would appear to be uniquely vulnerable to being crushed by MS if the beast deems it to be too great a threat, in a way that Java isn't as an independent technology. One obvious argument MS could make is that there's .NET technology inside of Mono. Large companies avoid risks like this by very carefully vetting their engineers to be pure--to have had no contact with the competitor's technology. Mono isn't nearly organized enough for that as an OSS project.

      And it's not that MS would have be right, but there's just one strategy they could use to torpedo the whole OSS .NET stack with legal fees.

      I don't think it's that great a risk, personally, but given MS's predatory behaviour in the past, it's not an unreasonable fear.

      --
      Anyone who loves or hates any language, platform, or manufacturer, doesn't know what they're talking about.
    4. Re:What are the mysterious patents by Shados · · Score: 1

      Well, first, there's always the thing that big corps like IBM and Microsoft have so many patents, that technically its probably impossible to code ANYTHING without hitting some. Now, if they'll enforce them, or more so: if those patents are valid at all, is another debate...but basically everything is patented =P

      That being said, only part of .NET is part of the ECMA (and other) standards, and MS does have patents on bits and pieces of the "integration" stuff... that is, if you implement a .NET framework and C#, and do something clean from there, you're pretty much 100% A-OK. If you start copying the Windows stuff, like WinForm, ASP.NET, WPF, the GDI+ wrappers, etc, it gets a bit dodgier.

      Supposingly the mono guys are VERY careful and think this through before going after a new part, and make very sure everything is implemented clean room (since .NET is so easy to decompile, and that recently the source was published for reference purpose, one has to be careful).

      So for all practical purpose, Mono is clean (well, as clean as software based on another can be). But there's always the "what if..." in the back of the mind of people.

    5. Re:What are the mysterious patents by Mr2001 · · Score: 2, Insightful

      It's not just that MS might come after you. It's that Mono, being an OSS implementation of .NET, would appear to be uniquely vulnerable to being crushed by MS if the beast deems it to be too great a threat, in a way that Java isn't as an independent technology.

      C# and the CLR are ECMA standards, and as part of the standardization process, MS gave up the ability to make any patent claims. The idea that Microsoft might somehow be able to torpedo Mono is pure fantasy.

      Hell, there's not even much reason to think Microsoft would want to torpedo Mono. They wouldn't have submitted their standard to ECMA if they didn't want it to be implemented.

      Of course, all the logic and explicit legal agreements in the world won't change the minds of the folks here who are dead-set on this conspiracy theory.

      --
      Visual IRC: Fast. Powerful. Free.
    6. Re:What are the mysterious patents by Stephen+Ma · · Score: 1
      C# and the CLR are ECMA standards, and as part of the standardization process, MS gave up the ability to make any patent claims.

      Microsoft dominates ECMA and practically owns it, as show in the unbelievably corrupt ISO OOXML case. So what proof do you have that ECMA has forced MS to give up its patent claims with respect to C# ?

      They wouldn't have submitted their standard to ECMA if they didn't want it to be implemented.

      I can think of plenty of motives for Microsoft to simultaneously standardize C# and threaten anybody who tries to implement it.

      For example, many huge organizations prefer standards. Governments are especially fond of them and constitute too large a market for MS to ignore. Hence the bad-faith standardization of C#.

    7. Re:What are the mysterious patents by Mr2001 · · Score: 1

      Microsoft dominates ECMA and practically owns it, as show in the unbelievably corrupt ISO OOXML case. So what proof do you have that ECMA has forced MS to give up its patent claims with respect to C# ?

      Here you go. But somehow I doubt that this or any other evidence will change your belief in the conspiracy theory.

      --
      Visual IRC: Fast. Powerful. Free.
    8. Re:What are the mysterious patents by The+Bungi · · Score: 1

      Java isn't as an independent technology.

      Independent of whom? Sun Microsystems? And have you established that absolutely none of the Java source infringes on anyone's patents?

    9. Re:What are the mysterious patents by Stephen+Ma · · Score: 4, Insightful
      From the the document you linked to:

      The ECMA process requires that all patents held by member companies that are essential for implementing its standards are available under "reasonable and non-discriminatory (RAND) terms" for the purpose of implementing those Standards.
      (emphasis mine)

      Nope. ECMA has not forced Microsoft to give up its patent claims. The only requirement with respect to patents is that they be available under "reasonable and nondiscriminitory" terms -- which basically means that Microsoft can charge whatever it wants for patent licences, as long as it's the same fee for everyone. So MS can still threaten to sue for patent violations. And any fee of significant size is of course fatal for free software. So you are wrong.

    10. Re:What are the mysterious patents by KwKSilver · · Score: 1

      Hell, there's not even much reason to think Microsoft would want to torpedo Mono. They wouldn't have submitted their standard to ECMA if they didn't want it to be implemented.

      Are you 100% certain? People have suggested (and it makes sense to me) that the current MS Office XML scheme (double entendre intended) was submitted to ECMA to fast track it to ISO so that once it was approved, MS could claim that their formats were open. That's a far cry from wanting anyone (other than themselves) to actually implement or even be to able to implement it correctly.

      Suppose you are right and MS does want mono to be implemented and succeed in Linux, BSD, etc. Why? Out of the goodness of their hearts?!! Or is it a poison pill? Are you really 100% sure? I'm not. apt-get remove --purge mono libmono ....

      --
      If you want your life to be different, live it differently.
    11. Re:What are the mysterious patents by Mr2001 · · Score: 1

      The only requirement with respect to patents is that they be available under "reasonable and nondiscriminitory" terms -- which basically means that Microsoft can charge whatever it wants for patent licences, as long as it's the same fee for everyone. So MS can still threaten to sue for patent violations. And any fee of significant size is of course fatal for free software. So you are wrong.

      No, I'm afraid you're the one who's wrong. And it's a shame, because you could've been right if you had just read a little further. Here's the very next paragraph after the one you quoted:

      But Microsoft (and our co-sponsors, Intel and Hewlett-Packard) went
      further and have agreed that our patents essential to implementing C#
      and CLI will be available on a "royalty-free and otherwise RAND" basis
      for this purpose.

      --
      Visual IRC: Fast. Powerful. Free.
    12. Re:What are the mysterious patents by Stephen+Ma · · Score: 1

      When dealing with Microsoft, as with the devil, one has to read the fine print. Very carefully. "Royalty-free" merely means no ongoing payments for a patent license; it says nothing about an initial one-time fee. Such a fee, if large, would be fatal for free software. So you are still wrong.

    13. Re:What are the mysterious patents by Mr2001 · · Score: 1

      Suppose you are right and MS does want mono to be implemented and succeed in Linux, BSD, etc. Why? Out of the goodness of their hearts?!!

      To encourage the development of .NET applications. More .NET developers means more sales of Visual Studio products, for one thing, and some of those developers might go on to develop for MS SQL or ASP.NET, or use other .NET-related APIs that actually are restricted to Windows. More .NET applications also means Windows stays relevant; that is, if a Linux developer writes his next app in C# instead of C, that gives Windows users one less reason to switch to Linux.

      Or is it a poison pill? Are you really 100% sure? I'm not.

      Yes, this sort of baseless paranoia is depressingly common on Slashdot. "There's no logical reason to object... but ZOMG, it's Microsoft! This is no time for logic, we have to panic!"

      --
      Visual IRC: Fast. Powerful. Free.
    14. Re:What are the mysterious patents by jjohnson · · Score: 1

      1. You misread my admittedly complex grammar. I said that Java isn't a threat, as [it's] an independent technology.

      2. Sun's process of open sourcing Java was exactly for the purpose of vetting all the code and ensuring that they had the licensing rights to open source it. The biggest holdup was the audio drivers, which had been licensed from a third party that didn't want to release them or sell them, so Sun had to do a clean implementation.

      --
      Anyone who loves or hates any language, platform, or manufacturer, doesn't know what they're talking about.
    15. Re:What are the mysterious patents by Mr2001 · · Score: 1

      When dealing with Microsoft, as with the devil, one has to read the fine print. Very carefully. "Royalty-free" merely means no ongoing payments for a patent license; it says nothing about an initial one-time fee. Such a fee, if large, would be fatal for free software.

      I suppose this will put your fears to rest, then? Here's the relevant part:

      "But," says Herman, "while RAND sometimes means there could be a financial obligation, [Microsoft] will be offering a conventional non-royalty non-fee RAND license. We've always made that clear to anyone who has asked."

      So you are still wrong.

      Only in the minds of paranoid individuals who'd rather make up conspiracy theories than look at the evidence in front of them.

      --
      Visual IRC: Fast. Powerful. Free.
    16. Re:What are the mysterious patents by shutdown+-p+now · · Score: 1

      C# and the CLR are ECMA standards

      Actually, it's even better than that - C# and the CLR are both ISO standards, too.

      That said, it only applies to C# 2.0 and the corresponding version of CLR. All the more recent stuff - such as C# 3.0 (including LINQ) - is not standardized by either ECMA or ISO (yet?).

    17. Re:What are the mysterious patents by shutdown+-p+now · · Score: 1

      Suppose you are right and MS does want mono to be implemented and succeed in Linux, BSD, etc. Why? Out of the goodness of their hearts?!!

      No, simply to promote the platform. For this same reason, Microsoft provides free and open source (yes, true Open Source) implementations of Python, Ruby and PHP for .NET that run on Mono; and F# supports Mono as well.

    18. Re:What are the mysterious patents by RocketRabbit · · Score: 1

      How was your last 20 years in a cave on Mars, with your eyes shut and your fingers in your ears?

      Microsoft has made it quite clear that they will do what it thinks it must to kill any open source competitors. They have shown, over and over and OVER again the willingness to use the dirtiest tricks it can muster to attack actual or even perceived competition.

      If somebody punched me in the face every day for a year, and then suddenly wants to be my friend, should I invite them in with open arms, or treat them with the suspicion that their past behavior has warranted?

      Baseless paranoia indeed. Suspicion of Microsoft is neither baseless nor could it be considered even slightly paranoid. Healthy skepticism is a better term.

    19. Re:What are the mysterious patents by Stephen+Ma · · Score: 1
      "But," says Herman, "while RAND sometimes means there could be a financial obligation, [Microsoft] will be offering a conventional non-royalty non-fee RAND license. We've always made that clear to anyone who has asked."

      Michele Herman no longer works at Microsoft, and hasn't since 2004. Who knows if the "no fee, no royalty" policy is still in effect. Until I see a legal commitment, I will assume the worst. (Which is always good policy when dealing with Microsoft or the devil.) So you are still probably wrong.

    20. Re:What are the mysterious patents by L'homme+de+Fromage · · Score: 2, Informative

      Here's one that covers ADO.NET and parts of ASP.NET:
      http://patft.uspto.gov/netacgi/nph-Parser?Sect1=PTO1&Sect2=HITOFF&d=PALL&p=1&u=%2Fnetahtml%2FPTO%2Fsrchnum.htm&r=1&f=G&l=50&s1=6920461.PN.&OS=PN/6920461%3Cbr%20/%3E&RS=PN/6920461

      Is that good enough for you? Because there are more. Lots more. Search the US Patent Office site for them.

      Basically, Microsoft could enforce its patents to make Mono drop support for ADO.NET, ASP.NET and WinForms. Sure, they aren't part of the CLR, but Mono would be useless without them (especially in the eyes of Windows developers who the Mono team thought would flock to Linux if it had .NET support). It would basically kill Mono (although it seems pretty much dead now anyhow).

    21. Re:What are the mysterious patents by Mr2001 · · Score: 1

      If somebody punched me in the face every day for a year, and then suddenly wants to be my friend, should I invite them in with open arms, or treat them with the suspicion that their past behavior has warranted?

      The flaw in that analogy is that Microsoft isn't being treated here with "the suspicion that their past behavior has warranted". They're being treated with an irrational level of suspicion that defies all logic.

      It's as if the guy who punched you in the face every day for a year suddenly left his old couch on the sidewalk for anyone to take. Sure, you're suspicious of him, so go ahead and look under the cushions to make sure it's not full of rusty nails. But if you've looked behind every scrap of fabric, you've run the couch through an X-ray machine and a metal detector, you've tested it for bacteria and viruses, and you still haven't found any plausible threat, it's foolish to warn everyone "Don't touch that couch! It belonged to someone who was an evil bastard, and I just know it's booby-trapped! So what if I can't find the trap, that only proves how sneaky he is!"

      Suspicion of Microsoft is neither baseless nor could it be considered even slightly paranoid. Healthy skepticism is a better term.

      I agree, healthy skepticism would be better. But what the anti-Mono folks here are displaying goes far beyond healthy skepticism; it's firmly within the realm of paranoia.

      --
      Visual IRC: Fast. Powerful. Free.
    22. Re:What are the mysterious patents by Mr2001 · · Score: 1

      Until I see a legal commitment, I will assume the worst. [...] So you are still probably wrong.

      In other words, I was right all along: you don't care about evidence. Nothing will convince you. Your paranoia is irrational, and there's no point in trying to reason someone out of a position they didn't reason themselves into.

      Good job concluding that I'm "probably wrong" based on nothing but your own paranoid assumptions, though. That's classic.

      --
      Visual IRC: Fast. Powerful. Free.
    23. Re:What are the mysterious patents by RocketRabbit · · Score: 1

      I work in a shop that does some .NET development, although that's not my job. I'm more of a system administrator. But while there isn't absolutely undeniable evidence that Mono isn't a poison pill, there isn't evidence that it isn't either.

      Until such evidence surfaces, I will remain skeptical.

    24. Re:What are the mysterious patents by Anonymous Coward · · Score: 0

      There's much more to MS.NET than C# and the CLR, and they're extensively covered by MS patents. And who needs conspiracy theories? Being devious and scheming is just business as usual for microsoft.

    25. Re:What are the mysterious patents by Anonymous Coward · · Score: 0

      To find such evidence, you would have had to read the thread. The entire point the parent was making with his silly rusty nails analogy, is that there is proof. The legal commitments to ECMA. The public policy statements by Microsoft. The fact that nobody can even link to a patent they have on .NET.

    26. Re:What are the mysterious patents by MobyDisk · · Score: 1

      THANK YOU! I just read 50 posts and finally, someone actually replied with a link to a patent.

      NOW I understand -- now that I've read the patent. THEY PATENTED AN API?!?!? *smacks forehead* The patent office has gone to hell. An API definition doesn't even begin to pretend to be patentable.

      I figured they patented some algorithm inside of the ADO.NET implementation, or something like that. No - they just patented the structure. Holy hell. If I ever become really really rich, I'm going to hire a ninja to go kick the crap out of some people over in the patent office.

      Humorously, my name is almost on one such patent. I worked for a company where we made an XML format, and they tried to patent it. After a few rejections they gave up. While I wanted to have my name on a patent, after reading what they were patenting, I am so glad they didn't get it.

      Anyway, thanks again.

    27. Re:What are the mysterious patents by KwKSilver · · Score: 1

      Suppose you are right and MS does want mono to be implemented and succeed in Linux, BSD, etc. Why? Out of the goodness of their hearts?!!

      To encourage the development of .NET applications. More .NET developers means more sales of Visual Studio products, ...

      Since .NET and Visual Studio are Windows-only, how are those reasons for MS to want mono to succeed on Linux, BSD and other libre systems?

      this sort of baseless paranoia

      Baseless paranoia? STAC, Netscape, the rape of JAVA are baseless? Besides, it is hardly paranoia when they are out to get you, and MS has made it abundantly and crystal clear that that is their goal. Some MS evaluations of Linux etc.: "cancer" ... "communistic"... And, then there are the infamous Halloween Documents. Ultimately mono/.net developers can code anything they want with mono/.net. That's their choice. The beauty of Linux and BSD is that they can't force it on a free (= libre) system. They and MS can cram mono/.net down Windows users throats and up Windows users' asses, but they can't force me to install it on my machine. That's my choice. I will use nothing but the cli first. I will pull the fucking plug out of the wall and drive my pickup over the motherboard first. Clear enough?

      --
      If you want your life to be different, live it differently.
    28. Re:What are the mysterious patents by Stephen+Ma · · Score: 1
      Good job concluding that I'm "probably wrong" based on nothing but your own paranoid assumptions, though. That's classic.

      Considering that Microsoft actually has threatened to sue Linux, my attitude is prudent, not paranoid.

    29. Re:What are the mysterious patents by Mr2001 · · Score: 1

      Since .NET and Visual Studio are Windows-only, how are those reasons for MS to want mono to succeed on Linux, BSD and other libre systems?

      Because someone who's never used C# is less likely to buy a copy of VS than someone who has. More people using C# means more opportunity for Microsoft to sell them C#-related products (and otherwise capitalize on the popularity of C#).

      Just look at this thread; there are examples of people installing Windows to do .NET development after having used Mono. A more likely scenario is that someone tinkers with Mono as a hobbyist and then eventually gets hired as a .NET developer using MS tools.

      Baseless paranoia? STAC, Netscape, the rape of JAVA are baseless?

      Yes, actually, in this context they are.

      What, do you think Microsoft is going to use those as evidence in a lawsuit against Mono's developers or users? "Your Honor, if you look at Exhibit A, you'll see that we're quite an evil corporation and we've done some very nasty things in the past. Therefore, you must resolve this case in our favor."

      That's essentially what you're claiming: that Microsoft will somehow win a patent infringement lawsuit just because they're evil, even though there is no infringement. You might as well claim that Hitler could travel faster than light.

      --
      Visual IRC: Fast. Powerful. Free.
    30. Re:What are the mysterious patents by Mr2001 · · Score: 1

      There's much more to MS.NET than C# and the CLR, and they're extensively covered by MS patents.

      Then don't use the other parts. Skip WinForms and use Gtk#, for example.

      --
      Visual IRC: Fast. Powerful. Free.
    31. Re:What are the mysterious patents by RocketRabbit · · Score: 1

      Are you suggesting that MS asserts no intellectual property rights over .NET, and that they won't in the future?

      I remain wary.

    32. Re:What are the mysterious patents by ion.simon.c · · Score: 1

      In other words, I was right all along: you don't care about evidence.

      *sigh* You obviously haven't been paying attention to MSFT for the past fifteen, twenty years or so, have you?
      Unless it's legally binding, they'll back out of any promise or plan they have at a moment's notice. Unless you have fat stacks of cash to fork over, you cannot depend on their word.

  31. As far as I know by Sycraft-fu · · Score: 3, Insightful

    There's no reason it can't. I recently bought some new virtual instruments. Those are large sets of samples of real instruments, combined with playback software for making music on the computer. They came with a new sampler I'd never used before, developed by the company that sells them (EastWest Play, if you are wondering). I was mildly surprised that as it was installing I saw Qt4Core.dll, Qt4Gui.dll and QtNetwork4.dll were copied to my system directory. Turns out they decided that QT would be good to use for drawing the GUI. Probably in part because it's Mac and PC.

    At any rate, there was no additional install of QT required. The necessary libraries were included in the installer, and installed to the system with the software. So if you wish to use QT for your program, go for it. Windows programs very frequently include third party libraries (FMOD would be a popular one with games). You just have the installer handle it.

    However comparing QT to .NET is kinda off base, they aren't the same. The reason to use .NET is because it is a managed framework, just just because it can do GUI easily. Visual C++ provides easy GUI tools and will compile to native code.

    Also using .NET doesn't preclude using QT, there are bindings for QT to C#.

    1. Re:As far as I know by shutdown+-p+now · · Score: 1

      Visual C++ provides easy GUI tools and will compile to native code.

      If you mean WinForms, then you can't compile a project using that to proper native code. If you mean MFC, then I don't understand the meaning of "easy" in your sentence; especially when applied to MFC dialog designer!

  32. You've got mono? by Anonymous Coward · · Score: 0

    While there's no cure for the Epstein-Barr virus, it is rarely (if ever) fatal. You just have to wait it out and it should clear up just fine.

  33. Short answer? Yes. by obijuanvaldez · · Score: 2, Informative

    Java has already been made to run on .NET. I wonder if it'd really be that hard to get standardized C# running on the JVM?

    The longer answer is that for anything written targeting the .NET Framework (Mono or otherwise) version 2.0 and beyond, it would extremely difficult if not flat out impossible. The first thing that comes to mind is the runtime erasure of the type parameter(s) for Java's generics. This does not exist in .NET and that has some significant implications. There would simply be no straightforward way to get the following C# class to work in the Java Runtime:

    class MyClass where T : new()
    {
    public T GetNew() { return new T(); }
    }

  34. Mono in science by pcarvalho750924 · · Score: 1

    I currently research methods to improve cancer treatment using proteomics. Bioinformatics plays a key role. Thanks to Mono, we were able to port existing software to Linux and run in our cluster. Indeed, it must be recognized that Mono is contributing to this field and many others.

  35. True or False? by Anonymous Coward · · Score: 0

    You can get mono by using Mono?
    -- Hmmm, false... I mean true!

    One thing is clear -- it's the best mono-thingie there ever was!

  36. Re:Short answer? Yes. by obijuanvaldez · · Score: 1

    That should be:
    class MyClass<T> where T : new()
    {
            public T GetNew() { return new T(); }
    }
    I didn't think of the HTML formatting not liking the <T> bit

  37. uuuh I had that is 9th grade.... by belligerent0001 · · Score: 0, Redundant

    I got mono from Rachel Jellin in 9th grade....f-that man...Thanks but no thanks!!

    --
    "...a civilian some of the time, a soldier part of the time and a patriot all of the time." -Brig. Gen. James Drain
  38. I wouldn't say WinForms is dead.. by tjstork · · Score: 5, Insightful

    WinForms isn't dead. In some circles, I'd say WPF is stillborn, and if there's anything good that came out of it, it was in fact Silverlight.

    In fact, I would say that while WPF has its plus sides, its got a few drawbacks as well. Its -really- slow compared to WinForms, the nested control architecture isn't as good, the layouts and sizing aren't as flexible, and worst of all, there's no datagrid.

    I understand the inspiration. Microsoft tried to make a modern client gui toolkit that gives you some of what html does, but I frankly think they missed the mark. If anything, WPF will inspire the idea that developer's have choices in control and widget sets and that will lead developers to look at things like Qt and Java or even Webkit, as I have done.

    --
    This is my sig.
    1. Re:I wouldn't say WinForms is dead.. by Anonymous Coward · · Score: 0

      WPF is not going anywhere, except amongst those knee-jerk enteprise coders that like to wrap each successive code turd around subsequent MS technologies, as if it will magically make them better programmers.

      I imagine there's someone working on building a WPF form that pulls XML from a web service that talks to a VB6 dll that talks to Excel through VBA and pulls some date from the spreadsheet contained in an OLE Word document that is populated using DDE from an Access database configured to run as a service as we speak.

    2. Re:I wouldn't say WinForms is dead.. by shutdown+-p+now · · Score: 1

      WinForms isn't dead. In some circles, I'd say WPF is stillborn

      I can assure you that this is going to change soon. Consider that Visual Studio 2010 UI is rewritten in WPF (have you seen the CTP?). Now imagine how much polish WPF is being given for .NET 4.0 to make it all actually work for the release ;)

    3. Re:I wouldn't say WinForms is dead.. by tjstork · · Score: 1

      I can assure you that this is going to change soon. Consider that Visual Studio 2010 UI is rewritten in WPF (have you seen the CTP?). Now imagine how much polish WPF is being given for .NET 4.0 to make it all actually work for the release ;)

      Well, the thing is with MS is that when they create a big platform shift, they stick with it. Like, WPF may not be so great now, but they will keep plugging away at it. But what's cool about MS is that they have the WPF track on one hand, but on the other hand, they are actually doing some stuff for native code and honestly I've thought that was dead. The ultimate thing that this thread is really about is GUI toolkits and I've actually been looking through a bunch for a personal project, and, of all terrible things, I've come around to the latest incarnation of MFC, and only for these reasons. a) MFC's Office 2007 option for look and feel is really rather beautiful. b) it does have doc / view support, and some (but not good) support for editing stuff in the gui. and c) these days, MFC is kinda slimmed down a bit. It's not that Microsoft has made it smaller. It's just, they haven't done too much with it over the last few years while the kitchen sink is being tossed into the likes of Qt, GTK, WXWidgets and even WTL are all getting larger. And certainly, Java Swing, WinForms, JavaFX and WPF are quite the porkers.

      --
      This is my sig.
    4. Re:I wouldn't say WinForms is dead.. by gladish · · Score: 1

      Can your shell do this? ls |where {$_.Length -gt 2000}|format-table Name, Length

      find ./ -type f -and -size +6831433c -printf "%-50f %k\n"

    5. Re:I wouldn't say WinForms is dead.. by clockwise_music · · Score: 1

      There's no datagrid. Amen. The bane of my existance. Why the hell didn't microsoft provide a grid?

      We ended up using xceed's grid (which at the time was the only one around) and I freaking hate the thing. Over-engineered to the extreme. Ridiculous. Getting the databinding to work on the thing was a bloody nightmare. I posted about 10 questions on the forums about memory leaks, stuff that didn't exist and just general problems. They all got resolved but it was a royal pain in the butt.

      If I was do to it again I would write my own grid using a listview. Don't go near the xceed thing. BTW, I was using version 2. (We couldn't go to version 3 at the time because it wasn't backwards compatible). The xceed guys will probably find this post and defend themselves but make up your own mind.

    6. Re:I wouldn't say WinForms is dead.. by Anonymous Coward · · Score: 0

      (have you seen the CTP?)

      Holy crap! There are really people who do CTP reports? I thought it was just some joke in a movie...

    7. Re:I wouldn't say WinForms is dead.. by phopon · · Score: 1

      Microsoft released a beta of the datagrid awhile back and they officially released the datagrid for wpf at last years PDC out of their ship cycle due to so many complaints. It is downloadable at http://www.codeplex.com/wpf

    8. Re:I wouldn't say WinForms is dead.. by clockwise_music · · Score: 1

      It came out Oct 27 - we started in Feb :)

      Thanks for the info though!

    9. Re:I wouldn't say WinForms is dead.. by Anonymous Coward · · Score: 0

      while WPF has its plus sides, its got a few drawbacks as well. Its -really- slow compared to WinForms

      Holy crap, it's even *slower* than WinForms? I'm glad, where I work, we ditched .Net completely for all future work, though there is an old WinForms app I occasionally have to maintain.

  39. Re:Short answer? Yes. by ray_mccrae · · Score: 2, Insightful

    Compiling C# for JVM would indeed be a huge undertaking. However in the particular example you give you've fallen for a common fallacy. Hypothetical  C# on JVM compiler would not need to generate a line for line equivalent in Java. Taking your example a possible translation maybe :-

    class MyClass<T> {
        private Class t;

        public MyClass(Class t) { this.t = t }

        public T getNew() { return (T) t.newInstance(); }
    }

    The compiler would then have to supply the class type when instantiating MyClass. By no means would this look nicer than the original but then it's auto-generated right and not for humans.

    There are a couple of languages that have been written for JVM. One of the more interesting ones is Groovy which has many features that are not in the Java language like closures. So the point is just because the Java language does not implement a feature does not necessary bar a language  that does have it from being written for the JVM.

  40. Cross platform? Wait, what? by thePowerOfGrayskull · · Score: 1
    FTA...

    Because the Unity platform uses Mono technology under the hood, developers can code their game once and then target Windows and Mac OS X simultaneously.

    Yet the tools themselves only run on Mac...

    For starters, unlike Microsoft .Net, Mono is cross-platform. It runs not only on Linux but on other Unix-like operating systems as well -- including Mac OS X. It even runs on Windows.

    Shouldn't mono be completely irrelevant if done correctly? That is to say - if I can't compile a .net app of any complexity on Windows with Microsoft's tools, then run it on Linux under Mono; or vice-versa , then it's failed at being cross-platform.

    1. Re:Cross platform? Wait, what? by Shados · · Score: 1

      No, the thing is Mono basically pulled an "embrace and extend" on .NET, in some ways. They share a lot in common, but the idea is that instead of worrying about cross platform issues between 2 implementations of roughly the same thing, you can simply use Mono everywhere. Mono -itself- works on Windows.

      Its a similar concept as how being cross platform with C++ isn't -so- tough if you use the same compiler on all platforms(I know my example is a bit of a stretch, bear with me), but if you start using different -compilers-, even on the same platform it will get dodgy.

      Mono cannot implement the entire .NET framework and be 100% compatible with it. .NET is Windows specific, and has stuff that ties into Active Directory (not just LDAP, but the actual Active Directory), the Windows registry, GDI+, interop with older Microsoft platforms, DirectX, etc. You could get close, sortoff, but 100%? No. So what Mono is doing, is implementing everything part of the ECMA standard, then adding stuff around it. For example, they have a version of Reflection (I forget the name of it) thats better and more powerful than the .NET version, by a lot. They have their own GUI frameworks, libs, etc, that are not available on the normal .NET (though most will work under the Microsoft CLR).

      So targeting -just- Mono will give you pretty good cross platform. Forget about the Microsoft .NET here: while they're fairly compatible, they're still 2 distinct platforms, and there's nothing forcing you to target both.

    2. Re:Cross platform? Wait, what? by thePowerOfGrayskull · · Score: 1

      Thanks for the info. Between your comments and FishWithAHammer, I may just have to give it another look.

  41. less likely? that's what we should believe in? by Locutus · · Score: 1

    that is the stupidest thing I've heard all day. Play with Mono because of you play with it alot, Microsoft is going to be _less likely to fire a slug in your head_. Wow, sure makes me want to play.

    don't the Comes docs show that Microsoft is still the same old Microsoft? didn't the ISO issues show that Microsoft is the same old Microsoft? Hasn't the bazaar patterns OEMs have been in with regards to Linux on netbooks( or really XP on netbooks ) enough to show that Microsoft is the same old Microsoft? Seems they are still paying off people to write stories for them or else the author is just plain thick.

    LoB

    --
    "Anyone who stands out in the middle of a road looks like roadkill to me." --Linus
  42. Stereo is Better... by 7Prime · · Score: 2, Funny

    Come on, this debate's been over since the mid-1960s. Stereo won, Mono lost... end of story.

    --
    Multiplayer Gaming (defined): Sitting around, discussing single-player games with my friends, at the bar.
    1. Re:Stereo is Better... by ebuck · · Score: 1

      I've heard that the core of Mono is Mono nucleus, and contracting it is called Mononucleosis. That's reason enough to avoid it like the plague!

  43. Remain vigilant of Mono and Web-browser plugins by Anonymous Coward · · Score: 0

    QT and GTK need to compile for each of the different targets(Windows, Linux/X11, MAC and Embedded). Virus writers have to think harder to attack all of these for a massive disruption of service.

    Mono and JAVA are similar in the fact that the builders of these made it easier for virus writers to attack all of the operating systems in one fell stroke.

    Installing MONO will increase the probability of your computer to be compromised because the default install will probably connect itself somehow with a plug-in to the web-browser. Single point of entry of any virus-attack. All virus attacks on windows boxes have come from running the web browser with an ACTIVEX/COM/.NET Plugin.

    I don't run Java is off in my web-browser.
    Unfortunately, the Javascript plugin and the FLASH plugin still remain as security issues.

    As a general rule of thumb, I like html pages, I download flash videos and then play them with totem/mplayer outside of the web browser. There are too many things happening in the web browser while I watch a flash video. Some of them could be compromising the machine. The sooner most users realize this the better.

    Remain vigilant of Mono. Don't install it on your machine if you don't want your machine to be compromised.

  44. Microsoft got no respect by Jettra · · Score: 1

    "The more Mono evolves, the less likely Microsoft is to use patent claims or some other dirty trick to bring down the platform"

    The words 'less likely' do not inspire confidence. I cannot think of a time where Microsoft has not used every tool available to further its market position in every area it can... when it is in a position to do so and it furthers its profit margins or market size.

    I have never used .net, so I cannot speak of its power or weakness as a platform tho.

    Good luck to the Mono team in pealing yourself away from MS and being accepted by open source developers

  45. Re:Short answer? Yes. by obijuanvaldez · · Score: 1

    I agree that nothing bars C# form running on a JVM, but I am not falling for a common fallacy either. I never said that the generics implementation would make it impossible. Just far from straightforward. Combined with all of the other differences e.g. framework, lambda expressions, unsafe code and so forth would make it at the very least extremely difficult.

  46. Less likely vs utterly impossible by skyphyr · · Score: 1

    What the author misses entirely is while he feels it is less likely to happen less likely is still more likely than utterly impossible. There are other technologies available, such as Qt, where microsoft has no potential for a valid claim over the language. Why, as a developer, would I choose to put my code in a position where this concerns exist instead of taking a path that avoids it entirely?

    1. Re:Less likely vs utterly impossible by jvkjvk · · Score: 1

      Not so.

      Microsoft can still sue anyone using Qt as well as Nokia for providing it. It is merely less likely than them suing the Mono team.

      Microsoft could sue you for violating one of their patents with your post. That's a lot more improbable than suing Qt, but there is nothing preventing them legally from doing so.

      Unfortunately(?), there are few "utterly impossible" things when it comes to lawsuits.

      Even if Qt does not violate any patents Microsoft has (which is quite unlikely) it does not require being right to be able to sue it only requires the money necessary to pay the lawyers. I believe Microsoft still has a bit of that left.

    2. Re:Less likely vs utterly impossible by skyphyr · · Score: 1

      This is why I said valid claim, not claim :D

  47. No install base for browsers by Anonymous Coward · · Score: 0

    Silverlight/Mono is excellent technology, in my opinion. However, it is not installed in the browser and Microsoft cannot use Windows Update to get it there without legal ramifications (and for some odd reason they actually seem to care this time). Therefore, it has little chance of being important until the deployment issue is resolved and it's not looking good. MS/NBC tried to force everyone to Silverlight to watch Olympics videos but that flopped. Nobody is quoting SL penetration rates but it can't be very high.

    So, if you want graphics in the browser, use flash. If you want cross platform graphics outside the browser, use Java or a number of other mature technologies.

    Silverlight/Mono might makes sense for .NET developers that want to move their .NET intranet applications to the browser, and even that is not very straightforward. Beyond that, SL/Mono it isn't going anywhere.

  48. Great cross platform viruses... by Narcocide · · Score: 1

    ... instabilities and other security hazards. Install Mono? I think not.

  49. Certainly? by Pinky's+Brain · · Score: 1

    That is for a Texas jury to decide, not you.

  50. Ahem ... by KwKSilver · · Score: 1
    You did know that early on in the SCO-Sues-the-World saga, Darl was claiming that SCO owned C++, too.

    And C++ programming languages, we own those, have licensed them out multiple times, obviously. We have a lot of royalties coming to us from C++.

    Link

    --
    If you want your life to be different, live it differently.
  51. Stupid slashdot masses... by Anonymous Coward · · Score: 0

    a) The CLI is 110% open, anyone may implement it without restriction as they please.
    b) Mono's .NET classpath is a mere fraction of the work inside of the Mono project, and of that classpath - maybe 50-60% of that is a copy of Microsoft's .NET classpath, a lot of which is so generic I find it unlikely they could hold up IP rights against an 'Array' in court.
    c) Don't even get me started on the compiler infrastructure, and other associated tools in the mono project.

    I agree, Microsoft could reveal it's horns and force mono to take out WinForms, ASP.NET, and other MS-specific technology support from it - but will they? Mono having such support allows purely .NET based windows applications (say, hmmm - future MS Office versions?) to run across MANY platforms.

    It'd be stupid of Microsoft to cut out the MS-interop technologies it could make so much money out of with a truly cross platform market share.

  52. Do we need Mono? by Alvare · · Score: 1

    The question is, "Do we really need C#?"
    I think that with Python, Java, Python, QT, and Python we don't need that Mono thing at all, especially when with Python we can de everything we would ever want or need.
    Some people may say that Python is slow, but it's like that because it's too easy to code, and programers often forget about performance, but Python can ve very f*ck*n fast!

    --
    4 - A robot may not masturbate, except where such action would conflict with the Second Law.
    1. Re:Do we need Mono? by binarylarry · · Score: 1

      Python is okay for small apps.

      Maintaining big Python apps is a nightmare.

      Python is fast if you only use one processor. But since Python has laughable concurrency support, you can't really take advantage of the beastly new multicore cpu's coming out these days.

      --
      Mod me down, my New Earth Global Warmingist friends!
    2. Re:Do we need Mono? by Alvare · · Score: 1

      That is very true indeed, concurrency is not Python's strong, but I find mantaining big apps in Python easier than in any other language because of it's amazing object system.
      Also, I really hate intermediates, if someone wants to use all the power of current CPU's they should look at Kollibri and code in assembly, but if we are talking of Mono vs Python there is no need at all for that kind of sh...ame.

      --
      4 - A robot may not masturbate, except where such action would conflict with the Second Law.
  53. Meanwhile, on Planet Earth... by sparkz · · Score: 1

    Is memory loss common in this community?

    --
    Author, Shell Scripting : Expert Re
  54. Samba ? by sjf · · Score: 1

    I think what you outline is a possibility, but it is not mandatory. I don't believe that Samba, for instance, makes Linux a second class citizen. Far from it...
    Most folks that I know would much rather run Unix based Samba servers than Windows, and I do believe that Samba has reached such a degree of penetration that breaking it would not be in Microsoft's interest: think of the number of media servers designed to share with windows systems that are actually running an embedded Linux.
    I'm certain there are other cases where the open source implementation is better than the proprietary one.

  55. Took me a minute to see what you did there by drinkypoo · · Score: 1

    And I say unto you, well played, sir.

    --
    "You're right," Fisheye says. "I should have set it on 'whip' or 'chop.'"
  56. Yeah, I'm with you on that one too. by Giant+Electronic+Bra · · Score: 1

    I just don't see some kind of great advantage of the CLR over a JVM. There really is very little difference between the technologies and 100% of the existing Java APIs are already available on every platform.

    I suppose in some version of the future that may come to pass where .Net becomes as well supported and Java somehow fades into the twilight then maybe I'd switch to .Net based technology. I seriously doubt I'd really notice the difference.

    As it stands now I'm just annoyed at MS's selfish desire to control their VM to the exclusion of everyone else. What purpose did that serve? Its here and it isn't going away, but it was a fairly pointless move from the rest of the world's perspective and now we're stuck with a fragmented VM technology landscape.

    It is kind of sad really, but Java continues to do what we need it to do and there is no convincing reason to WANT to switch.

    --
    "Malo periculosam, libertatem quam quietam servitutem." -- Jefferson
    1. Re:Yeah, I'm with you on that one too. by obijuanvaldez · · Score: 2, Informative

      There are some pretty significant differences between the two technologies actually. While there are analogous tool types available for both, the implementations of each are quite different. Certainly enough for a difference to be noticed. Just in terms of windowing toolkits, WPF and WinForms are quite different from Swing and SWT. Microsoft's control of the CLR has upsides and downsides. It does allow them to very quickly add new features to the framework. However, this tight control leads to complications with alternative compatible runtimes. Java has the JCP, which is also has it's benefits and drawbacks. While open and transparent, changes are made quite slowly. However, this openness, coupled with now being open source, allows for viable alternative runtimes with no concern over patent infringement. I'm not quite sure what there is to fail to understand or be annoyed by. Computing is a finite thing. Therefore, there is simply no "best" solution to all problems. Compromises must always be made and they are going to serve one end to the detriment of another.

    2. Re:Yeah, I'm with you on that one too. by Giant+Electronic+Bra · · Score: 2, Insightful

      Well, lets take WPF as an example. There are, and have been for years, equivalent Java frameworks. SWT and Swing really aren't the same thing at all, they're widget toolkits, not presentation frameworks.

      What would have stopped WPF from being implemented on Java? Nothing. Nothing except the narrowly self interested strategy of one company, who could have provided a technology that EVERYONE could use on a mature platform, but instead we have no such thing. Instead man lifetimes worth of engineering talent had to be wasted on reproducing basically a clone of Java so that MS could 'control the technology'.

      I don't really criticize MS for that, it is a result of the way business operates and it makes perfectly good sense from their standpoint to do it that way, but MS's standpoint has no relevance to me or other developers. It is just that simple, and IMHO it would be nice if the marketplace were to just slap down that sort of self interested ploy. I'm really not trying to take sides either, I'd have the same opinion if Sun's and MS's positions had been reversed.

      --
      "Malo periculosam, libertatem quam quietam servitutem." -- Jefferson
    3. Re:Yeah, I'm with you on that one too. by shutdown+-p+now · · Score: 1

      What would have stopped WPF from being implemented on Java? Nothing.

      In fact, there is a third-party WPF implementation for Java.

    4. Re:Yeah, I'm with you on that one too. by Giant+Electronic+Bra · · Score: 1

      Could be interesting. Still wish we could have one, lol. Now we have JSP/JSF/Facelets, WPF, and now apparently this eFace. (not to mention of course XUL/XBL...). Not all exactly equivalent, but close, and so it grows! I think 2 of any technology is really enough myself.

      --
      "Malo periculosam, libertatem quam quietam servitutem." -- Jefferson
  57. Mono is good for Linux and Java by Anonymous Coward · · Score: 0
    First off, I'm an advocate of developing higher level apps in higher level platforms. I've been working in network security for about 10 years now and it never stops amazing me at the bugs found in C code that is so heavily trusted and relied upon. Root exploit type bugs. The sad truth is you have to be far more proficient than the vast majority of developers are to safely program in C, it's too easy to have a memory management error and it's too easy for those errors to result in exploits. Java, Ruby, Python, and Mono based tools (as well as others) are a much safer way to go in this networked world. Not just that, I think you can probably develop those apps more quickly in these types of environments too, sure there are trade-offs, it's not for everything but for applications I think it makes a ton of sense.

    Java is nice, it's fast, it does a lot, and now that it's opensourced, if feels much better. The hardware on typical desktop and the JVM have reached a state where it's easily an option. The problem is that Sun is not healthy and the java community has not materialized a strong leader with a unifying agenda. It's just not a really healthy looking opensource project yet, you take Sun out of the equation and who knows how long Java lasts. There are also vocal factions tugging at it and pulling it in a multitude of different directions. Mono provides an alternative.

    If you've used Java on any non-main street platform you'll also know that support varies, maybe the community will get with it, maybe it won't. Sun kind of supported Java on Linux Itanium, kind of didn't. BSD? And then there was the OS X and Java 6 storm. Mono? It runs a lot of places, it just feels more like an opensource project in that regard. Maybe Java will solve this, I sort of doubt it though, part of the difference is the Mono community are kind of lowerlevel guys, the bigger part of the java community are higher level guys and it seems easier to grow in one direction than it is to grow in the other.

    When you compare the two side by side, Mono is a pretty compelling VM, it's small, light weight and it has decent performance. If they got some eclipse like tooling, it seems like it could be really killer. Lot's of room to improve though. Also if you're doing any sort of desktop app kind of development for Linux, I don't know why you wouldn't give it a look, compared to like Java webstart? The Web development aspect of it is downright primitive compared to what you can do and with J2EE. Part of this is just community though, Mono is outgrowing the MS cloning effort and needs to grow in to its own direction, a Mono based app server might be very compelling. It would also be a major step if MS actually embraced and blessed Mono.

    Really, I think Mono's existence makes it easier to live with Java. If Sun dies this year and Java falls in to disarray, there is an option. On the other hand, Mono is growing its acceptance. Give it a good look, bang out a couple GTK apps in it. It's not that bad. Really try to understand it and then look at what you think MS has patents on... That's just FUD.

  58. He's Still Dead, Jim! by broward · · Score: 1

    I originally redicted Mono's demise in Dec, 2005 (reconfirmed in Jan, 2006), well before Neil McAllister and received quite a bit of jeering and obnoxious commentary -

    http://www.realmeme.com/roller/page/realmeme?entry=mono_meme_update_mono_still

    However, as we all know now, it has indeed been dead for the past 2 1/2 years and it will stay dead. Check out the relative trend strength for Mono versus Silverlight or Ruby.

    http://www.indeed.com/jobtrends?q=linux+mono,+silverlight,+ruby&l=

    He's still dead, Jim.

    1. Re:He's Still Dead, Jim! by YttriumOxide · · Score: 1

      Many job ads don't specifically mention mono... we were advertising not so long ago (unfortunately, my new boss decided we'd be better pulling resources from elsewhere inside the company instead of hiring someone new, which still annoys me a little), and I don't think our job ad mentioned Mono at all... it just asked for ".NET development" and skills in "Windows, Linux and MacOS X", which pretty much implies mono development will be done of course, but wouldn't show up on a trends graph.

      --
      My book about LSD and Self-Discovery
      Also on facebook as: DroppingAcidDaleBewan
    2. Re:He's Still Dead, Jim! by Gwala · · Score: 1
      --
      #!/bin/csh cat $0
    3. Re:He's Still Dead, Jim! by skolima · · Score: 2, Informative

      Really?

      http://www.indeed.com/jobtrends?q=linux+.NET%2C+silverlight%2C+ruby&l=

      This search is moot, the querry ignores the '.', you just searched for Linux network-related jobs.

  59. Why is it less likely that MS attacks Mono by Anonymous Coward · · Score: 0

    The likelihood of Mono being sued by MS is very low, and gets lower every year. We could argue several reasons for that: existence of prior art, MS not willing to risk bad press, MS slowly moving .net to open-source, MS giving support to Moonlight, protection provided by the Open Invention Network, the bad consequences that it might have for its own customers, etc.

    But between all those debatable arguments there some simple facts:

    1. No matter what MS does to Mono, Linux and the open source movement will carry on. No matter how Mono is deeply integrated in Linux, stopping Mono won't stop Linux, because MS may be able to stop a technology, but not an ideology, and there will always be alternative technologies.

    2. Interest for development for platforms other than Windows keeps growing every year. Linux is growing, mobile devices are growing, game consoles are growing. The need for cross platform-solutions is growing.

    And given those facts, MS faces two possible scenarios:

    1. Mono exists, and .NET is a widespread technology which allows building applications for Windows, Linux, Mac OSX, Solaris, game consoles, phones, and other platforms. Developers are comfortable with .NET because they can leverage their knowledge for building applications for so many platforms. .NET competes with Java, and both keep improving thanks to this competence. MS does not need to depend on a 'foreign' Java technology to provide cross-platform solutions.

    2. Mono does not exist and .NET can only be used in Windows and Windows based devices. MS is forced to support Java (or other similar technologies) in order to provide cross-platform solutions.

    I think it is obvious that scenario 1 is for Microsoft much more convenient than scenario 2.

    CT.

  60. Re:for quick, cross-platform development c/c++ suc by Tatsh · · Score: 1

    I'll agree with you that C++ sucks. OpenMP is looking good though. Right now I use pthreads-w32 for Windows and POSIX threads elsewhere (Linux, BSD, OS X).

    It is true that programming for platforms is sort of an issue with a bunch of #idefs but I find #ifdefs to be a lot better than starting from scratch.

    With something like Qt (speaking of the GUI toolkit and ONLY that), you will have very few #ifdefs in my opinion because MOST of the code is completely cross-platform.

  61. All this time and by BronsCon · · Score: 2, Funny

    it just dawned on me...

    Microsoft is giving Linux Mono!

    I guarantee, if you grep the source, you'll find epstein-barr.

    --
    APK quotes people (including myself) without context and should not be trusted. Just thought you should know.
  62. Then why not bundle hardware with your software? by tepples · · Score: 1

    2. Unless there is a hard requirement, development time is more important than raw performance.

    But there are plenty of hard requirements in common scenarios. For one thing, the signal processing inherent in live TV production or video games must finish in 16 milliseconds or end up dropping frames. And applications running on handheld devices need to be efficient at keeping the CPU asleep as long as possible; otherwise, the battery won't last through an 8-hour shift.

    3. Hardware is cheaper than developers.

    If so, then why don't more mass-market computer software publishers bundle hardware with their software?

  63. Don't knock it in this economy. by tjstork · · Score: 1

    In all seriousness, the fusion of .NET and Office, using Visual Studio Tools for Office, makes for some interesting possibilities indeed. I mean, the Web may be all the rage, but, if you tell some people that they can use Excel as a front end into anything, they are going to jump on it, and if they are paying, I'll be happy to help them out, in a heartbeat, if I thought I could get a deal done, especially in this economy.

    Sure, let someone walk in with a sucky table and javascript based grid on a web page and babble on about Web 2.0 and Linux, because I'll be there with the whole damn front end in Excel, and showing them how they can cut and paste and get data from everywhere, and have it all in Excel. And on top of that, I would probably even stoop so low as to talk about leveraging the COM Interop of .NET to talk to legacy VB6 objects and to kick out form letters in Word, and I'd could even see myself throwing in a blurb about how I could use WPF to implement a Clippy like guy that doesn't suck, so...

    that when the dust all settles, my client would be able to pull all their enterprise data into Excel, click on a cell, and get a clippy like guy to help them prepare a form letter for mailing to a prospective client, using of course an Active X control to capture the signature in just a perfect way. The whole thing would probably way in at 100MB for about 2000 lines of code, but, you see, the secret of Office integration is not that you have all of this bloated stuff, its that, you are just adding on to what they already know so that it makes it easier for them to learn, and easier for me to get the sale, and, then, for the next step, then I can babble on about web 2.0 and Linux, or Windows, or whatever they prefer me to babble about!

    --
    This is my sig.
  64. Moody counters your argument & bitchslaps you by Anonymous Coward · · Score: 0

    http://www.computerworlduk.com/community/blogs/index.cfm?blogid=14&entryid=1380

    Why waste time to write a rebutal for a poorly layed out position like yours when I can just paste Glyn Moody's article? (or the half dozen ones that have already explained this before.)

    >There are people certainly violating
    >Microsoft's IP in areas like Samba

    Certainly?
      Care to enumerate some of them Mr Ballmer?
    of course not. Hit and run comments with nothing substantial, a few quips and a couple of italics and caps and voila.

    You have nothing and that piffle you wrote is far from insightful, its piffle lite.

    Lyle Howard Seave

  65. Markup errors by colinrichardday · · Score: 1

    Konqueror reports that the site has bugs. Hmm... Should I trust this guy?

  66. mono = stupid by rvJJax · · Score: 0

    in my neighborhood, mono is a slang for stupidity.

    so, if i use Mono then that's mean i am... no wait.

    --
    S.S.D.D
  67. Re:Then why not bundle hardware with your software by Anonymous Coward · · Score: 0

    For one thing, the signal processing inherent in live TV production or video games must finish in 16 milliseconds or end up dropping frames

    16 milliseconds is a yawn-fest for nearly any language. I have Javascript that can process a frame faster than that. Modern Java has direct access to underlying OpenGL graphics libraries. 200+ FPS is quite easy to achieve with the appropriate graphics card. Nanosecond timing is built in.

    Hell, I was doing this stuff back in 2002. Now it's just boring. These days I spend more time trying to get webapps to push a similar number of pixels. They're coming along quite nicely. ;-)

    If so, then why don't more mass-market computer software publishers bundle hardware with their software?

    Because it's easier and cheaper to write "Minimum Requirements" on the side of the box, where "Minimum Requirements" hits at least 80% of the hardware on the market?

    These responses I'm getting are absolutely awful. Did you guys pull your information from the stone-age of computers or something? You'd think we were still all running our software on Honeywells or something. Don't forget to keep your punch cards in order!

    Seriously, how about a little less bluster and a bit more brains? Preferably of the "educated in computer science" variety?

  68. Re:Then why not bundle hardware with your software by AKAImBatman · · Score: 1

    Damn. I apparently checked "Post Anonymously" by accident. Please pretend the above post says, "AKAImBatman" on it.

  69. I think Mono is a good name for this project by Technomancer · · Score: 1

    read more about it http://en.wikipedia.org/wiki/Infectious_mononucleosis

  70. Re:Then why not bundle hardware with your software by tepples · · Score: 1

    16 milliseconds is a yawn-fest for nearly any language.

    Not on a handheld device. PDAs, phones, and PSPs tend to have 0.2 GHz single core CPUs, or even slower in the case of Nintendo DS.

    Because it's easier and cheaper to write "Minimum Requirements" on the side of the box, where "Minimum Requirements" hits at least 80% of the hardware on the market?

    For one thing, I seem to recall that 80 percent of PC users did not have hardware capable of running something like EA's Crysis at a solid 60 fps on medium settings on launch day. Nor do 80 percent of users own an HDTV or other PC-compatible monitor larger than 19 inches. Families with children, which make up a large part of the target market for E-rated PC games, tend to have other expenses that force them to make do with obsolete PC hardware.

  71. Why? by jimpop · · Score: 1

    Why? Where is the need? .Net/Mono is yesterday's solution.

  72. Scala by guardia · · Score: 3, Interesting

    Time to look at Scala on the JVM: classes written in the Scala-language runs almost as fast as ones written in the Java language. Also Scala looks a lot like the Java language. http://www.scala-lang.org/

    1. Re:Scala by shutdown+-p+now · · Score: 1

      Oh yes, Scala is great, and I think that's where all Java-style languages such as C# are going to converge eventually. Now if we can get some of the big guys in Java land (Sun, IBM, Google) pick it up and do it good by bundling it with an IDE such as NetBeans with the same level of support (refactoring, designers generating code etc) as Java...

  73. Comment removed by account_deleted · · Score: 1

    Comment removed based on user account deletion

  74. Obligatory Paraphrasing of a Frank Zappa Quote by bXTr · · Score: 2, Funny

    Mono is not dead—it just smells funny

    --
    It's a very dark ride.
  75. The patent issue is a red herring by ClosedSource · · Score: 4, Insightful

    "If it gets too powerful, or too feature full, who's to say if MS doesn't retract their promise and claim that Mono is infringing on their patents, suing whatever company might have worked on said products?"

    MS patents are going to be general (as all patents with "business goodness" are). In other words, MS isn't going to limit any patent description in such a way that only .NET implementations would be in violation. If mono violates a MS patent it's very likely that Java and many other projects will violate it too. The mere fact that Mono is an attempt to implement a sub-set of .NET doesn't mean it has any greater risk than other projects.

    In any case, I seriously doubt that MS has any desire to start a patent war anyway. Between the DOJ and IBM, it wouldn't be a winning strategy.

  76. Always a market by Anonymous Coward · · Score: 0

    Unless this "open source Java" can run my .NET Applications on Linux then it'll always have use here. Sorry, but as much as I dislike Microsoft and their business stategy I have greater choices with langauges with .NET then I do Java and still have it cross-platform.

  77. People seem to use Mono to go native MS if needed by Qbertino · · Score: 3, Insightful

    AFAICT people use mono to go MS 'native' - meaning .Net - when needed. The only non-trivial application in Mono I can think of right now is Unity, and that's a closed-source RT3D toolkit for x-plattform developement on Mac OS X. And apparently a very good one at that. They are being bugged left, right and center to deliver on Windows. And are preparing that now.

    I have to admit that Mono has gotten me curious, because Monodevelop is a very neat looking IDE, C# doesn't seem so much of a PITA than C++ or Java and it appears to be more suitable for stronger ties to multimedia hardware than Java. I still haven't seen a convincing multimedia app in Java in 10 years, allthough the current 3D stuff with native OpenGL does look and run well.
    On top of that it appears to me that Mono apps are easyer to deploy that Java apps. I'd expect Java developement to get up to speed fast in any revent Version of Netbeans. However, I catch myself still trusting Mono for good performance more than Java.

    Bottom line:
    Going Mono to me basically means nothing other than spending time learning C# and watching out that no MS dependancies sneak into my work. A risk I'd be willing to take, given that it has evolved into a feasable tool recently. However, the don't-trust-MS arguments delivered here are valid, and you ought to know what you're doing and calculate your risks well when dicking with MS-controlled tech.

    --
    We suffer more in our imagination than in reality. - Seneca
  78. I don't use Mono, but here's why other people do by kripkenstein · · Score: 1

    What's the point of Mono?

    Reasonable question.

    Even without answering it, it's obvious that there is a good answer, because Mono is seeing uptake by serious projects. For example, the Unity game engine and the popular virtual world Second Life.

    As for a concrete answer: For starters, if you want something like Java - a virtual machine, with a nice language that manages memory for you, and can also run multiple scripting languages as well - then Java vs. Mono is somewhat like GTK vs. Qt. Yeah, for a long time Qt was arguably better, but Qt was GPL while GTK was LGPL, so just because of that GTK saw a lot of use (there were other reasons as well, but this was a major one). Ditto here, Java is GPLed while Mono is LGPL (with class libs as MIT and a few other details), which makes corporate adoption much simpler. Yeah, technically Java has better performance - say by a factor of 2 - but licensing is also a serious consideration.

    Other reasons: Some people prefer C# to Java (I'm not arguing either way, just pointing out that some people think that way - and some think the opposite), some people want to leverage existing C# code that they have, some people want an implementation of Python with native threads (IronPython on Mono does that; Jython on Java was inferior for a while, but might finally be catching up just recently), etc.

  79. Re:Then why not bundle hardware with your software by savuporo · · Score: 1

    Ive got several devices around in my room right now, ive programmed for each and every one of them.
    HTC Tytn II ( Kaiser ) - 400 mhz arm9, running winMobile 6
    PSP - dual MIPS cores @ 300 mhz, running uITRON
    NintendoDS - 66mhz ARM9
    A wireless router - 300mhz BroadCom MIPS, running uCLinux
    A couple of bare AVR devices @ 8 - 16mhz - running straight metal code

    What were you trying to say, again ?

    --
    http://validator.w3.org/check?uri=http%3A%2F%2Fwww.slashdot.org Errors found while checking this document as HTML5!
  80. Patents only apply in the USA (currently) by A+Pressbutton · · Score: 1

    If MS starts threatening Mono with patents, simply move development and implementation out of the US.

    If Mono is not very good, the US benefits.

    If Mono is a good tool, the ROTW benefits.

    This is is how Patents are an aid to innovation and job creation!

  81. ECMAScript/Javascript = Mono/.NET by ircharlie · · Score: 1

    When Javascript was submitted to ECMA and became an open standard I didn't hear of loads of people saying "Don't use it, its a trap, Sun will pull the plug any day now and sue you for using their (now standardised) language". But loads of people say that about the ECMA standardised .NET. What's the difference? I'm sure you're about to tell me.

    1. Re:ECMAScript/Javascript = Mono/.NET by ray_mccrae · · Score: 1

      Well first of all Javascript was created by Netscape not Sun.

      There is a thread in this discussion called "What are the mysterious patents" that will answer your question.

    2. Re:ECMAScript/Javascript = Mono/.NET by Alioth · · Score: 1

      The CEO of Sun hasn't made vague threats about patent infringement on the OS that most Mono developers are targeting. That's the difference.

      Also, in the .NET world, Linux is very much a second class citizen. Mono will always be behind .NET, and will never be feature complete compared to .NET. Linux, on the other hand, is a first class citizen in the Java world.

  82. on Java and Mono by Anonymous Coward · · Score: 0

    It's not about evil or whatever, it's about performance.
    Java and Mono are the fuel hardware companies use to boost faster processors sales, any programmer devoted to write efficient software should pray for their mutual destruction.

    Please avoid lies like telling Java and Mono are comparable to C and C++ performance. They're not even close to that, unless one uses them as stubs to call functions in C or C++ native libraries that do the hard work, which would be the stupidest possible way to pollute a program by adding something that requires a virtual machine just to call something else.

    The whole reason of using Java and Mono is hiring less skilled programmers who will ask for less money and reducing development time. The reduced efficiency will be compensated by the users being forced to buy faster machines. It's a win-win solution for software companies, not for users.

    1. Re:on Java and Mono by ray_mccrae · · Score: 1

      Individual programs should be judged on their own merit not based on their language of implementation. I've seen some pretty fast Java programs and I've seen some poorly performing C++ programs.

      Back in the 90's many people used to look down their nose at programs written in VB, especially in the shareware communities. Where having MSVBVMxx.DLL in your installables was looked upon as a mark of shame. When instead people should have been looking at the programs for their own merit.

  83. Comment removed by account_deleted · · Score: 2, Informative

    Comment removed based on user account deletion

  84. Yup, can do by Anonymous Coward · · Score: 0

    It was on slashdot. Can't be bothered to search but the tale was someone who was writing an application that used something MS claimed patent to. MS said that if he didn't stop, they'd sue him. So rather than go to court, he gave up.

    By saying that Linux infringes 237 patents (or whatever it was), Ballmer has stifled adoption of Linux to those whom the risk of this being true was higher than the net remaining benefit of changing.

    1. Re:Yup, can do by man_of_mr_e · · Score: 1

      There wasn't even a cease and desist in that case, it was just one microsoft project manager who unofficially contacted the guy. Hardly a smoking gun.

  85. then you shouldn't be using Linux either by speedtux · · Score: 2, Interesting

    A third party implementation of a standard defined by the first-party implementor is always going to lag behind the original.

    Linux, GNU, GNU C++, libc, and many other tools that we take for granted all started out as clones of proprietary software from a litigious, monopolistic company. So did many other open source projects. If people had followed your reasoning, free software and open source software wouldn't exist. .. What matters is that when developers and end users pick a technology, they pick the leader, not the follower. Accepting Mono is giving up and giving in to Microsoft vendor lock-in.

    Lucky for us, then, that Mono is not a follower. There are dozens of Mono-based desktop applications, and they are not based on .NET, but instead on Gtk# and other Linux technologies.

    The situation with C# is really not much different from C++. There is an open language standard, there is a large set of Linux-native libraries, and there is a large set of Microsoft APIs. For C++ on Linux, you get GNU C++, Gtk+ and other FOSS libraries, plus WINE if you want it. For C# on Linux, you get the Mono C# compiler, Gtk# and lots of other FOSS C# libraries and bindings, plus a separate set of .NET libraries if you want them. Mono's .NET libraries seem to be used about as much as WINE, which is to say, not a whole lot. The FOSS C# libraries are just a lot better.

  86. It has nothing to do with patents or lock in by Koraq · · Score: 0

    The main reason why Mono is a bad idea is summarized by "Don't imitate, innovate!".

    The reason Mono is a bad idea is that it takes a technology designed as propriety and designed by people who have a terrible record of performance and security, and then making that platform stronger.

    It's a bad idea for it basically gives Microsoft a wider platform to leverage their business praxis. It's a bad idea for it is a "me too" technology.

    Then it's *also* known to be a bad idea to enter the lion's den.

  87. timothy by fulldecent · · Score: 1

    I wish timothy would only publish articles like this so I could ban him and increase my slashdot SNR. However, I can't ban him from my RSS and thus I will be stuck with his MS-spun articles for years to come...

    --

    -- I was raised on the command line, bitch

  88. And not only that by Anonymous Coward · · Score: 0

    -) If it wasn't for Mono, .NET wouldn't be run-everywhere. It would be run-windows only. So Mono was outsourcing the run-elsewhere features of .NET

    -) Mono is a poor-cousin-from-bosnia implementation. Supposed to be a cousing but actually when you use it it's more lame than the real thing.

    -) Novel has been pushing for .NET even before Mono by including the PDotNet program and registering IL executables in the kernel. You know where Novel gets its money from...

    Generally, programming languages become powerful if many people use them because they depend on it. If it wasn't for de Icaza, there would be far less people developing in .NET (although they are already few), Obama's site wouldn't be in Silverlight, etc.

    In fact, after the Mono Fraud i've lost faith in the FSF and RMS as well because supposedly Icaza is the leader of the GNU desktop (GNOME).

  89. Ackbar Knows by Muad'Dave · · Score: 1

    Admiral Ackbar knows the truth...IT'S A TRAP!

    --
    Tiller's Rule: Never use a word in written form that you've only heard and never read. You will end up looking foolish.
  90. Are mono libs and executable virus compatible? by Anonymous Coward · · Score: 0

    I have openbve compiled in deb lenny the binary is
    openbve.exe . It is virus compatible?

  91. um, no by Anonymous Coward · · Score: 0

    until they open source the IDE and .NET why the hell would anyone want to use it instead of java? blah blah blah blah blah. mono is a disease...

  92. Linux never lags behind Windows on anything. EVER! by Anonymous Coward · · Score: 0

    As for Mono lagging behind, we need consider the unthinkable heresy that Linux in general sometimes lags behind Windows. Deal with it. In terms of specifics in Mono, everything I need is implemented.

    Sure Microsoft just copied java, but they did it really well. I mean seriously well. Mono, in turn copied .NET, and again did it REALLY well.

    For a few people who have actually taken the time to learn .NET, the patent question is valid. But based on my experience, the majority detractors simply use the patent specter as an excuse to avoid learning something new. To protect there little tech-niche.

  93. Re:for quick, cross-platform development c/c++ suc by FunkyELF · · Score: 1

    Right, all of the #ifdefs are in the library itself. I'm not saying that is good or bad.

  94. No. Just... No. by jonadab · · Score: 1

    No reasons he can give would be good enough. The English language does not really contain sufficiently scathing terminology to articulate my disdain for Mono, but I'll make a brief attempt anyway...

    The whole .NET thing was a solution in desperate need of a problem in the first place, *even* if you're only concerned, ever, about supporting the Microsoft Windows platform.

    Cloning it for *nix systems was and remains an inherently brain-damaged idea, a worse-than-useless thoroughly misguided disaster, *both* in terms of open-source ideology *and* practicality. Not only will it *never* have any hope of accomplishing the original stated goal of widespread cross-platform compatibility, but it also fails badly as a development platform generally.

    In terms of open-source ideology, Mono is an abdication of platform design to a proprietary monopolistic corporation. Even though the implementation is not proprietary, it still has to follow the design put forward by the proprietary corporation, and that makes it totally unacceptable to anyone who is serious about software freedom.

    In terms of practical issues, which are more important to me, Mono is an abdication of platform design, not just initially but also going forward, to an organization with a long history of some of the worst platform design in the industry, not only from a security perspective but also in terms of the impact the platform has on how software developers do their work. *Even* if the design of the current version of .NET looks pretty good (a premise I am not entirely willing to grant), there is no reason to believe that will be the case five years from now. If the Mono team wanted to develop a *useful* development platform, they would decouple themselves from compatibility with .NET and instead build something that can go in whatever direction the open-source community needs it to go in the future. As it stands, Mono is shackled to Microsoft, the king of bad design decisions. Why on earth would I want to develop software for a platform that has no future?

    Mono servers no useful purpose whatsoever and instead actively detracts from the open-source community.

    --
    Cut that out, or I will ship you to Norilsk in a box.
  95. F-spot Photo Manager anyone by Anonymous Coward · · Score: 0

    It's a mono based photograph manager which is the default on Ubuntu. Look through the configuration files and the source... the word Microsoft is lurking there for the unwary. Took me by surprise.

    Don't trust that Miguel character. He's in it for the fame and the money.

  96. forced cross platform has failed by speedtux · · Score: 1

    But Mono code will be limited practically to Linux. Or it might work on Windows in whatever limited way GTK stuff works there today. Certainly not likely to work on Mac's or various phone platforms.

    The situation with Mono is no different than with C or C++: a lot of code is cross platform simply because it gets by with the common core library. GUI code in Mono is not cross-platform by default, but if you really want them, there are cross-platform GUI libraries available for Mono.

    As C and C++ have shown, that's the right choice, while Java has conclusively demonstrated that the alternative, forcing everybody to use cross-platform libraries all the time, does not work.

    Mono's mix of a common core library, platform specific libraries, and cross-platform libraries is a big advantage of Mono over Java.

  97. What would it take for me to feel OK abt. Mono? by Tetsujin · · Score: 1

    What's the point of Mono?

    Reasonable question.

    I didn't feel the article did a good job of answering that, either.

    "Mono isn't trying to replace Java -- or .Net, for that matter. It's trying to do a lot more, and that makes it a project well worth watching."

    It's trying to do a lot more than just be another Java or a compatibility layer for .Net. Like what, specifically?

    I am not so biased that I can't see some value to it - there's real value to a language which is more expressive than C or C++, but also more efficient than Python or Ruby. There's real value to having solid mechanisms in place for component wrapping, object brokerage, or whatever you choose to call non-trivial IPC with a consistent interface. But I also can't escape Microsoft-related FUD about Mono's future (it is a real danger, as far as I'm concerned) - and as long as developers believe in that danger, Linux as a system won't fully exploit Mono.

    Having to run things under the CLR was one of my big problems with Mono, though - I'm glad to see they got native compilation in there. It just seems ridiculously stupid, once your program's working nicely, not to provide the efficiency of a good native compilation.

    Even without answering it, it's obvious that there is a good answer, because Mono is seeing uptake by serious projects. For example, the Unity game engine and the popular virtual world Second Life.

    I remain unconvinced. So people are using it. Does that mean I want to use it?

    Let's put this another way - it's not all about this doom & gloom scenario, that Microsoft may someday decide to cause trouble for Mono - whether that means using its existence as an excuse to try to charge licensing fees to Linux developers or whatever else... Though that does concern me, honestly. (It's kind of an unavoidable part of this whole equation, I think...)

    There's this issue of adoption. I don't really want to stand behind a technology that I don't have faith in. The question isn't why don't I have faith that Mono is the right direction, it's more, why should I? Again, the CLR was a big stopping point for me, and the tie to Microsoft (and specifically the potential that they could use that to cause trouble) still is. There's value to what it offers and value in the fact that, being related to Microsoft's efforts with .NET, it will continue to move forward in the foreseeable future... But I don't want the baggage of CLR (thankfully not a problem now) and I don't want an environment that is too alien to the Unix approach of doing things. (I don't know the extent to which that is an issue...)

    --
    Bow-ties are cool.
    1. Re:What would it take for me to feel OK abt. Mono? by kripkenstein · · Score: 1

      I'm glad to see they got native compilation in there. It just seems ridiculously stupid, once your program's working nicely, not to provide the efficiency of a good native compilation.

      Well, actually there are plenty of disadvantage to native compilation. For one, it becomes tied to a particular arch (and possibly OS). Also, it removes the possibility for various JIT optimizations (like enabling certain CPU features if present at runtime - that's possible with static compilation, but almost never done). It also makes some security and debugging features less useful. But, yeah, it has obvious advantages as well, and having it as an option is great.

      The question isn't why don't I have faith that Mono is the right direction, it's more, why should I?

      You make a lot of valid points. Clearly Mono isn't for everyone, and if its advantages don't speak to you, then that's fine - don't use it.

    2. Re:What would it take for me to feel OK abt. Mono? by Anonymous Coward · · Score: 0

      The question isn't why don't I have faith that Mono is the right direction, it's more, why should I?

      You make a lot of valid points. Clearly Mono isn't for everyone, and if its advantages don't speak to you, then that's fine - don't use it.

      Seems like kind of a cop-out answer... Please try to understand the importance of advocacy - beyond simply "correcting people who are wrong on the internet" or asserting one's own opinion - advocacy is an important part of changing what software people will actually use - it is, therefore, as important a part of progress for the platform as the task of writing the software in the first place...

      Let me clarify my position, then. I strongly believe that Linux (and Unix in general) ought to have a framework in place, as a "standard service", providing various things that Mono could provide today - things like object brokerage, a rich, stable API and ABI, etc. Even the virtual machine, though I think any system without support for native compilation is woefully incomplete. Now, in a sense it'd be a waste of effort to re-invent all that when Mono's here and pretty much ready to go. But what I don't know is if it's the right kit for the job. It's a question of confidence - confidence, for instance that Mono is a technology that can fit in well to my environment of choice, or that it'll continue to provide real integration of features into the environment in which it runs, as opposed to simple access. (Integration implies that that being integrated is, to an extent, fitted to the environment around it rather than the other way around... Take Cygwin for instance: it more or less gave up on integration in favor of features like mounts and symlinks, causing Windows paths to not work in Cygwin and vice versa...)

      Of course it's hard to predict the future. Hell, I don't know. I just figure maybe if someone really believes in Mono they could make a good argument for it... I may or may not agree but getting a better picture of what's so good about it as a Linux technology (as opposed to a Windows technology on Linux) would help me. The article was supposed to provide that, but it didn't.

  98. Heyyyy KIDS! by Tetsujin · · Score: 1

    Before you declare that you're any different, think of how you put gas in your vehicle.. Do you care how the fuel pump works? If you're like me you only throw a fit when the clip that holds the fuel lever open is broken, but otherwise don't pay much attention.

    Guess what time it is?

    It's time for a CAR ANALOGY!

    --
    Bow-ties are cool.
  99. In my experience by GWBasic · · Score: 1

    The current work that I did in C# is moving to Java. C#, as a language, is better then Java. However, we're part of a distributed application that uses SOAP. Java's SOAP support is much better then Mono's support; and in my opinion, much better then Microsoft's SOAP frameworks. We chose to move to Java because of our strong preference for SOAP.

    C# really isn't a "write once, run everywhere" language like Java; it's really more of an improvement over C and C++. C# on Mono has a different set of APIs then C# on .Net. This really means that C# is a better choice if you don't need truly portable code, or if you can deal with having separate Mono and .Net portions of a program.

  100. Moltar disagrees... by Tetsujin · · Score: 1

    "Toonami is presented in full, rich mono. Stereo is vastly overrated."

    --
    Bow-ties are cool.
  101. Here's my deal... by Tetsujin · · Score: 2, Interesting

    I've given Mono a fair bit of consideration. I should give it more, because I feel like it's important to evaluate carefully these technologies that might be useful to me...

    For interoperability I think Mono is a good thing, end of story.

    But I don't think it's a technology that I want as an integral part of my Linux system. There is the whole "Microsoft may decide to be bitches" thing, which kind of puts me in the position of liking what Mono can offer but not wanting to rely on it too much... But there's also the fact that it's kind of a little bit alien. I want a Unix system based around Unix concepts... Mono has at least a few Windows-isms to it (.exe extensions, for instance) but I don't know if it goes deeper than that. That's OK for a package I'm installing to gain the ability to run .NET software, but it's not something I want in a package that I'm going to use to build new applications and such for Linux. I wouldn't want to treat Mono as a core part of a Linux system if it has too much Windows flavor to it. It's just not the kind of system that I want. I like the technology (especially now that Mono supports native compilation) but I feel like it's also important for the technology to fit the system where it's to be used.

    I do feel there's a need for some of the things Mono has to offer: I love what .NET does in terms of promoting cooperation between different programming languages (the various .NET versions of scripting languages and other programming languages, built to take advantage of the CLR, and so on) - it should be easy to pass objects from one programming language to another, and it should be easy to bind existing libraries to different programming languages - and .NET does that. Scripting languages benefit from having a good, efficient intermediate bytecode form - that is also provided by .NET. This is why, despite being a bit uneasy with Mono (partly, I'll freely admit, due to long-standing prejudice and grudge regarding Microsoft) it's still appealing to me.

    --
    Bow-ties are cool.
  102. Re:People seem to use Mono to go native MS if need by cbhacking · · Score: 1

    There are a few other Mono apps out there, though I certainly don't have anything like a comprehensive list. The source control software I used at a summer internship some 2.5 years ago had a nice graphical interface that was easy to use and looked good (I use Subversion these days and am contemplating moving to Git, but at the time I'd never used version control before and found this one quite easy to get the hang of). It ran on .NET 1.1, but the company officially supported the product on Mono as well. At the time, Linux was still not widely known, never mind used - I see it even on non-CS students' laptop now, but certainly didn't then - but this company was willing to put resources into ensuring that their software ran on Linux, simply because Mono was so easy to target.

    --
    There's no place I could be, since I've found Serenity...
  103. Samba is not a key technology by zarlino · · Score: 1

    You're missing the point. The day Microsoft sues Samba and wins in court, distros just stop distributing it as it is not vital to the majority of Linux users. If we base our apps and frameworks on Mono, the Microsoft sues and wins, we're totally screwed. Got it?

    --
    Check out my cross-platform apps
  104. Your ill will is misdirected by arete · · Score: 1

    Your problem isn't with 'webapps' - which can do EXACTLY what you've just described, and we do it all the time in Flex and Flash. Your problem is with 'terrible webapps'

    Oh, and as long as you bother to twiddle with the paths so it knows where to look, those apps DO run locally if you want them to - OR on the web. But voila, no platform issues, and the local disk access is optional.

    Any "IE-only" web app is not a good web app, in my opinion.

    --
    Looking for freelance Actionscript (Flash/Flex) or ColdFusion work and/or freelance developers. Email me, put Slashdot