Want to read Slashdot from your mobile device? Point it at m.slashdot.org and keep reading!

 



Forgot your password?
typodupeerror
×
Programming IT Technology

The Case For Supporting and Using Mono 570

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."
This discussion has been archived. No new comments can be posted.

The Case For Supporting and Using Mono

Comments Filter:
  • Objective Review (Score:3, Insightful)

    by AKAImBatman ( 238306 ) * <akaimbatman@gmaYEATSil.com minus poet> on Thursday February 05, 2009 @06:30PM (#26745149) Homepage Journal

    "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 [slashdot.org]

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

  • by Anonymous Coward on Thursday February 05, 2009 @06:38PM (#26745245)

    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.

  • by Speare ( 84249 ) on Thursday February 05, 2009 @06:39PM (#26745259) Homepage Journal

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

  • The thing is... (Score:2, Insightful)

    by Darkness404 ( 1287218 ) on Thursday February 05, 2009 @06:39PM (#26745261)
    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.
  • by codemachine ( 245871 ) on Thursday February 05, 2009 @06:43PM (#26745309)

    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?

  • To a Louse (Score:0, Insightful)

    by Anonymous Coward on Thursday February 05, 2009 @06:46PM (#26745337)

    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.

  • by jmorris42 ( 1458 ) * <jmorris&beau,org> on Thursday February 05, 2009 @06:46PM (#26745339)

    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.

  • by Khopesh ( 112447 ) on Thursday February 05, 2009 @06:54PM (#26745425) Homepage Journal

    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 [qtsoftware.com] 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# [mono-project.com] 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.

  • Re:The thing is... (Score:5, Insightful)

    by 0xABADC0DA ( 867955 ) on Thursday February 05, 2009 @06:58PM (#26745471)

    Learn x86, C, Java, JavaScript. EOL.

    Anything more is bonus.
    Anything less is lacking.

  • by hyades1 ( 1149581 ) <hyades1@hotmail.com> on Thursday February 05, 2009 @06:58PM (#26745477)

    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.

  • Re:Qt (Score:2, Insightful)

    by KTheorem ( 999253 ) on Thursday February 05, 2009 @06:59PM (#26745493)
    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?
  • by Who Is The Drizzle ( 1470385 ) on Thursday February 05, 2009 @07:12PM (#26745619)

    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.

  • by Ancient_Hacker ( 751168 ) on Thursday February 05, 2009 @07:19PM (#26745703)

    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?

  • Re:Qt (Score:3, Insightful)

    by Dunkirk ( 238653 ) * <david&davidkrider,com> on Thursday February 05, 2009 @07:23PM (#26745745) Homepage

    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.

  • by FishWithAHammer ( 957772 ) on Thursday February 05, 2009 @07:27PM (#26745809)

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

  • by Rob Y. ( 110975 ) on Thursday February 05, 2009 @07:30PM (#26745863)

    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?

  • Re:WPF Support (Score:5, Insightful)

    by MobyDisk ( 75490 ) on Thursday February 05, 2009 @07:31PM (#26745871) Homepage

    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)

  • Re:The thing is... (Score:5, Insightful)

    by AKAImBatman ( 238306 ) * <akaimbatman@gmaYEATSil.com minus poet> on Thursday February 05, 2009 @07:32PM (#26745889) Homepage Journal

    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.

  • Re:Qt (Score:5, Insightful)

    by Thaelon ( 250687 ) on Thursday February 05, 2009 @07:39PM (#26745967)

    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.

  • As far as I know (Score:4, Insightful)

    by Sycraft-fu ( 314770 ) on Thursday February 05, 2009 @07:40PM (#26745983)

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

  • by _Sprocket_ ( 42527 ) on Thursday February 05, 2009 @07:42PM (#26746001)

    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.

  • by nschubach ( 922175 ) on Thursday February 05, 2009 @07:44PM (#26746025) Journal

    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.

  • by jjohnson ( 62583 ) on Thursday February 05, 2009 @07:53PM (#26746113) Homepage

    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.

  • by MobyDisk ( 75490 ) on Thursday February 05, 2009 @07:59PM (#26746187) Homepage

    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.

  • by Anonymous Coward on Thursday February 05, 2009 @08:03PM (#26746237)

    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?

  • by Grishnakh ( 216268 ) on Thursday February 05, 2009 @08:04PM (#26746247)

    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?

  • by Panaflex ( 13191 ) <<convivialdingo> <at> <yahoo.com>> on Thursday February 05, 2009 @08:11PM (#26746315)

    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.

  • by FishWithAHammer ( 957772 ) on Thursday February 05, 2009 @08:13PM (#26746325)

    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 [tirania.org]. 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 [mono-project.com] 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.

  • by nschubach ( 922175 ) on Thursday February 05, 2009 @08:17PM (#26746369) Journal

    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.

  • by joggle ( 594025 ) on Thursday February 05, 2009 @08:18PM (#26746373) Homepage Journal

    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.

  • by Mr2001 ( 90979 ) on Thursday February 05, 2009 @08:23PM (#26746429) Homepage Journal

    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.

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

  • by ray_mccrae ( 78654 ) on Thursday February 05, 2009 @08:30PM (#26746487)
    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.
  • by jmorris42 ( 1458 ) * <jmorris&beau,org> on Thursday February 05, 2009 @08:30PM (#26746499)

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

  • by segedunum ( 883035 ) on Thursday February 05, 2009 @08:31PM (#26746503)

    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.

  • Re:The thing is... (Score:3, Insightful)

    by Zan Lynx ( 87672 ) on Thursday February 05, 2009 @08:43PM (#26746625) Homepage

    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.

  • Re:The thing is... (Score:4, Insightful)

    by miserere nobis ( 1332335 ) on Thursday February 05, 2009 @08:51PM (#26746693)
    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.
  • by The Bungi ( 221687 ) <thebungi@gmail.com> on Thursday February 05, 2009 @09:17PM (#26746925) Homepage

    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.

  • Re:The thing is... (Score:3, Insightful)

    by clampolo ( 1159617 ) on Thursday February 05, 2009 @09:18PM (#26746931)

    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

  • by Stephen Ma ( 163056 ) on Thursday February 05, 2009 @09:39PM (#26747081)
    From the the document you linked to: [archive.org]

    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.

  • Re:The thing is... (Score:3, Insightful)

    by John Jamieson ( 890438 ) on Thursday February 05, 2009 @09:47PM (#26747113)

    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.

  • Re:The thing is... (Score:3, Insightful)

    by shutdown -p now ( 807394 ) on Thursday February 05, 2009 @10:01PM (#26747221) Journal

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

  • Re:The thing is... (Score:3, Insightful)

    by shutdown -p now ( 807394 ) on Thursday February 05, 2009 @10:14PM (#26747295) Journal

    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 [daimi.au.dk], 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 [gafter.com], 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 [javac.info] - 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.

  • by Anonymous Coward on Thursday February 05, 2009 @11:26PM (#26747797)

    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.

  • by ClosedSource ( 238333 ) on Friday February 06, 2009 @12:46AM (#26748331)

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

  • by Just Some Guy ( 3352 ) <kirk+slashdot@strauser.com> on Friday February 06, 2009 @12:48AM (#26748343) Homepage Journal

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

  • by man_of_mr_e ( 217855 ) on Friday February 06, 2009 @01:20AM (#26748501)

    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"

  • by Qbertino ( 265505 ) <moiraNO@SPAMmodparlor.com> on Friday February 06, 2009 @02:18AM (#26748765)

    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 [unity3d.com], 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.

  • by YttriumOxide ( 837412 ) <yttriumox@nOSpAm.gmail.com> on Friday February 06, 2009 @02:32AM (#26748831) Homepage Journal

    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)

  • by TrekkieGod ( 627867 ) on Friday February 06, 2009 @03:18AM (#26749033) Homepage Journal

    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 [wikipedia.org]. 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.

  • by Jekler ( 626699 ) on Friday February 06, 2009 @03:21AM (#26749043)

    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.

  • by bonefry ( 979930 ) on Friday February 06, 2009 @07:28AM (#26750127)

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

  • by Giant Electronic Bra ( 1229876 ) on Friday February 06, 2009 @09:02AM (#26750565)

    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.

  • by Anonymous Coward on Friday February 06, 2009 @09:21AM (#26750669)

    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!

  • by MrNaz ( 730548 ) * on Friday February 06, 2009 @10:20AM (#26751183) Homepage

    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.

  • by Anonymous Coward on Friday February 06, 2009 @10:53AM (#26751617)

    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.

  • Re:The thing is... (Score:3, Insightful)

    by TheTurtlesMoves ( 1442727 ) on Friday February 06, 2009 @10:59AM (#26751705)

    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.

  • by jonadab ( 583620 ) on Friday February 06, 2009 @12:08PM (#26753125) Homepage Journal
    > 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.
  • by morgan_greywolf ( 835522 ) on Saturday February 07, 2009 @03:30PM (#26765965) Homepage Journal

    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.

2.4 statute miles of surgical tubing at Yale U. = 1 I.V.League

Working...