views:

182

answers:

9

Not only Compact Framework. I know about Mono, but it will always be one step behind .NET.

+1  A: 

This question is pretty impossible to answer definitively since no one here can predict the future, but I'm going to go out on a limb and say no. Other people developing portable runtimes is today and will probably continue to be encouraged, but I wouldn't count on first party portable runtimes.

Terry Mahaffey
+3  A: 

Not unless there are some serious industry shifts. Everything MS does is to keep you tied to their platform and their products. .Net keeps people on windows which keeps them using MS Office etc.

There would have to be a big shift in the way MS does business before that changes.

EDIT: btw, this isn't a dig at MS... their business model works for them so good on them. The rest of us mightn't like it, but we're not the ones rolling in cash :)

This is in response to John's comment below:

I thought it would be obvious. Google sell ads. They aim to give everything away so that people use their products and see those ads. Yahoo are the same. Microsoft sell (primarily) products. They aim to keep people using their products. There are 3 ways they do this:

  1. Make good products (this is usually true of both consumer and developer products... minus sharepoint)
  2. Market aggressively
  3. Keep you using their products.

They're a lot less evil about how they do business nowdays, which is great. Back in the day they would do shady things like build code into Windows to make Lotus123 run slower (proven).

Like I said above, I'm not bagging the way they do business, it works for them so great. It is what it is.

Luke Schafer
"... we're not the ones rolling in cash", I guess you're talking for yourself
stefanB
Is that why they've gone out of their way to make sure that MVC and Silverlight (Moonlight) are portable? Sorry, but this argument doesn't hold much water IMO.
Marc Gravell
@stefanB - well, the majority :) I don't literally roll in my money, and I suppose others aren't Scrooge McDuckish enough either :P
Luke Schafer
-1: Please substantiate this, or else delete it.
John Saunders
@Marc - They've recognised that they can't monopolise browsers anymore, and it would be death to silverlight if they didn't support other platforms. But what platform would you likely develop silverlight on? As long as the front end is .Net, why not use .Net in the back end? Think of the bigger picture
Luke Schafer
MonoDevelop works fine for Silverlight, presumably with Chiron. Don't get me wrong; I'm mainly Windows - but it works other places too.
Marc Gravell
@John Saunders - response in the answer
Luke Schafer
Also at John - I can see you're a MS MVP - you don't need to be so defensive you know.
Luke Schafer
@Luke: you're displaying your ignorance of the MVP program and of me. I've never hesitated to call Microsoft on its BS. I'm just doing the same with you right now.
John Saunders
@Luke: you forget one of the largest ways Microsoft make money - selling or giving away software that permits developers to produce great products - which require Windows or Office to run on, either as a client or a server.
John Saunders
@John - sorry, but your first comment seemed a bit terse. In regards to your last comment, I think I addressed that. They make good products (I mentioned developer products) that keep you using other products.
Luke Schafer
@Luke: if you say that their developer products make me want to write products for their platforms, then I'll agree with you. If you say those products make me not want to write products for other platforms, I'll agree with you.
John Saunders
+1  A: 

Windows Mobile 7 is supposed to be a major upgrade, at least for the mobile phone aspect of compact framework. Let's hope that they start to get rid of this gap that they've created between .NET and .NET Compact Framework. Mobile devices are getting to the point where they could probably support the full framework, so maybe they'll be able to phase out CF in the long run.

Andy White
+4  A: 

It isn't much of a step behind. Especially now that Mono 2.6 "borrows" Silverlight's WCF implementation and provides a LINQ-to-SQL equivalent. It might not have the wide coverage of Java, but the code I write runs fine in all the places I care about.

Marc Gravell
+1  A: 

Partially portable that's for sure, you mentioned Mono. However, there are aspects of .NET which require a lot of effort to code for other operating systems (WPF for one) which will discourage 3rd party companies from fully supporting it.

Aviad P.
+1  A: 

In my opinion I don't thing so.

stefanB
+2  A: 

If you look at Microsoft's history, hell no.

http://en.wikipedia.org/wiki/Embrace,%5Fextend%5Fand%5Fextinguish

Jere
+1  A: 

For portability, it already is portable for some definition of portable. You'll have to be more specific.

As for your other claim, there are several places where mono is ahead of .net.

SIMD as an example

BioBuckyBall
+1  A: 

I am going to bet you that .NET is already portable today. I'm pretty sure that Microsoft would never have decided to build the XBox 360 on a PowerPC platform if they hadn't already had a working build of .NET for PowerPC. Also, they wouldn't have started building Silverlight if they hadn't alrady had a working build of .NET for OSX.

So, .NET is portable. It's just that Microsoft will never port it.

(It's similar to how OSX was ported to the x86 platform. Apple's engineers were asked how they managed to port the PowerPC-only OSX to x86 that fast. They said it was pretty simple, because OSX never was OSX-only. They always had an x86 build going. They just didn't tell anyone.)

However, I'm also curious about your claim that Mono will always lag behind .NET. I find that curious for two reasons:

  1. Literally on the same line you list an example were Mono is lightyears ahead of .NET: Mono has been ported to much more platforms than .NET.
  2. You make this claim just two days after Mono introduced two new features in its implementation of C# that Microsoft's implementation is sorely lacking and many developers have long asked for: string interpolation and multiple return values.

Here's a couple of other features that Mono supports and .NET doesn't:

  • SIMD
  • Continuations
  • Modularity
  • static compilation (e.g. for building iPhone apps)
  • 64 bit array indices
  • Compiler-as-a-Service (Microsoft has announced this for some future version of .NET, and are talking about it like it's the best thing since sliced bread. What they conveniently forget to mention is that Mono had this feature for ages, whereas it's going to take quite some time until it will be available in .NET; definitely not in 4.0.)
  • (related to Compiler-as-a-Service) C# compiler written in C#
  • Oh, and let's not forget: Mono is Free Software, that's also a feature, in fact a very important one, that .NET doesn't have
Jörg W Mittag