Dust off your he’s-a-Microsoft-fanboy complaints, people, because here’s yet another story praising the Redmond software giant (sorry). In case you were wondering what the Xbox Live integration on Windows Phone 7 Series (inhale, signified by a comma), meant, then Eric Rudder (what’s in a name), Microsoft’s Senior Vice President of Technical Strategy, has the answer for you – and it’s pretty impressive.
In the run-up to MIX, a lot of Windows Phone 7 Series stuff appears on the web, and this one is indeed related to that. Speaking at TechEd Middle East, Rudder showed off the same game running on a PC, Windows Phone 7 Series phone (this is getting ridiculous), and an Xbox 360. This might not sound impressive, but it actually is if you know the details.
It’s the same code running on all three platforms. That is, it’s a single project in Visual Studio, and the three platforms share 90% of the code, with each platform having input-specific code. In other words, the same game can run on an Xbox 360 and be controlled by a controller, on a Windows PC by a keyboard, and on a phone using the touch screen and accelerometer.
To add to the impressiveness factor: the game saves state between the platforms, meaning you can pick up any device and start playing – you can play the game on the bus using your phone, then power up your Xbox 360, and continue where you left off when you turned off your phone.
This is of course a major boon for developers, to be able to create a single project in Visual Studio, where 90% of the code is shared between the three platforms (in this particular case, at least), with three sub-projects covering the platform-specific bits (in this case, input). I can especially see how this would be good for small game studios: they can make a clever game, and with relatively little effort, have it run on three platforms – two of which already have a massive reach (PC and Xbox).
It’s not just games, though; Rudder mentions it can also be used in other scenarios for other types of programs. I’m not entirely sure which ones, but I assume many a developer can see the potential of this stuff. I also hope that this allows programmers to combine the devices – for instance, displaying in-game information from a game on the Xbox on your phone.
It also comes appealingly close to my vision. Scary.
This is great. It just goes to show the power of Silverlight and the .NET Framework across multiple devices.
?? Again, I don’t get the hype.
If I write a game in a common standard (C or C++ and limited OpenGL ) I get 90% easily and the game will run on Windows, Linux, OSX, Android, Iphone and Pre and .. you get the idea.
It might not have the nice IDE support, but for a more complex game the GFX and game logic code vastly outnumbers the code that you need to start a full screen OpenGL program and the few input things you need on each of these platforms.
The devil of course is in the controls, games need to be made for the input device and touch screen input often is its own thing and does not translate very well to mouse/keyboard and game controller.
Because Visual Studio is an IDE that doesn’t want to make you bore your own eyes out with rusty nails.
Microsoft are good at getting developers hooked on the “Microsoft Ecosystem”. My experience of Visual Studio developers, even with C++, in corporations is that they use IE exclusively, Microsoft servers, MSSQL and _anything_ with Microsoft’s name on it. I haven’t been in a corp environment for some time, so I hope that’s changed somewhat, but Microsoft are _very_ successful at coaxing companies into single-vendor ecosystems. It’s why their Windows/Office market persists so strongly.
VS is good, no doubt.
But it is not the reason why MS has such a strong grip on the enterprise. Most enterprise developers are Java devs and while VS was the only game in town 10 years ago now Eclipse is very popular (I’m not saying it is good or better, it isn’t. It is more flexible though)
It may not get much news coverage on OSnews, but Java is _the_ most popular programming language and there is a lot of innovation in the JVM world (Scala, Roo, etc)
MS is where they are now because MSOffice and Windows had their advantages and now migrating to something else is such a enourmous task (just look at the Limux wikipedia entry)
The good dev tools play a part, but inertia and change restistance are far more important.
PS: Personally I hate Java application. Vuze and JDownloader need memory like the structural integrity of the whole universe depend on them.
Java – Yick. I hate Java desktop apps they are bloated and slow as molasses. You will not see Java being used in the entertainment industry, especially console gaming. Every corp environment I have worked in used C++ and VB as the main languages with a smidgen of Java. It has been a a couple of years since I have been in that environment so perhaps that has changed. But I hate Java and wish it would die a quick death. No offense Java developers, you can take your skills to C/C++/ObjC/PHP/Whatever… 😉
The TIOBE index shows Java as #1 and that is really sad. I hope they come out with some performance advancements and what not. Interesting is that recently PHP has taken over the #3 spot from C++. C and Java are very close to each other on the index (less the 1% diff.) So if you take all the C derivatives like C++, C, Objective C, you still surpass Java.
Edited 2010-03-06 21:43 UTC
Sure, Java sucks for desktop applications and games.
And when I talk about corporations/enterprise I don’t mean game developers. They are special.
Hey kid, wanna draw comparisons on the speed of java? Then go download Rawr from codeplex and open it. Now plz w8 for it to finish loading. Was it fast? No.
Yet, that’s not built on Java. It’s C#. Based on .Net.
If you happen tho be running an ATI card with Catalyst Control Center, then it doesn’t count cause when you start up your computer the .Net Framework is started automatically.
Usually programs built on a managed platform (Java/.Net) are slower than programs built on native platforms (WinXX, Cocoa, ELF). And these are usually MUCH MUCH slower and use more memory than programs written in raw assembly language.
Why do people say java is bloated? Because back in 1996/97 there where a few popular Java apps, and there was still a great deal of Applets embedded on web pages. And, at the time, the ordinary PC wasn’t powerful enough to deal with the extra overhead. Granted, java today is miles ahead from what it was back then, but probably the greatest culprit of the birth of this IT myth was timing.
Let’s not use the program of one developer to cast judgement on the potential of the platform/language.
.NET has plenty of areas in which you can squeeze out performance. Use profiling (VSTS) to find exploitable areas of parallelism, and use NGen and mind your GAC to remove pretty much all startup overhead.
Be sure to keep unneeded references out of the startup path, use Reflection to latebind references you won’t need until later. Lazy load big objects, get them out of the way of the loading path, memory pool frequent object, profile profile profile.
That has nothing to do with it. When a .NET program runs, the .NET Framework and every library you reference are JITed before it even touches your code.
The Catalyst Control Center has no advantage here.
WinXX Cocoa ELF? What the hell? Cocoa is most definitely an Objective-C (Read: Method overhead) pile of garbage, and ELF is a file format..
Indeed.
I know .NET has a lot going for it, if i’m honest. It just pisses me off a bit when people say that Java is bloated and slow cause most of that is kind of ancient history, and a sad legacy of the time PCs weren’t even capable of handling a proper desktop OS like NT/OS2.
I was talking about having to load the RTE.
I know ELF is a file format, i just used it as an umbrella term. I was just lazy and didn’t felt like writing GTK/QT/Gnome/KDE/… I’m trying to start something. :p
And that’s not the point i was trying to get across. I was trying to say something like:
“If you value so much the the speed and efficiency of the applications you run, make sure that you only run apps that where coded in assembly. Anything else is a compromise.”
You have lost any points of respect with this pile of tripe crap.
It would be a shame, if anything I had said were false.
Cocoa is written in Objective-C. For other languages to interop you need a bridge.
There’s also the desktop Java apps that do their own skinning, and who knows what else, taking up hundreds of megabytes for what should use 10. jDownloader, which has already been mentioned, is a prime example.
Even if Java isn’t bloated, anymore, it certainly has a way of encouraging bloat for anything us desktop users do with it.
Edited 2010-03-07 16:49 UTC
First of all I am not a KID so don’t call me that. I probably have kids older then you are based on your message and the “plz” and “w8” short code you seem to use.
Second I based my OPINION on my personal experience using apps written in Java. I have had to deploy them in the past. And while it is true that you can’t always judge a language by its programmers, it has been a very negative experience with many apps that I have had to support. MY OPINION is still that Java shouldn’t be on the desktop unless you can guarantee a native look and feel on all the platforms and can get comparable speeds to the same type of app written in C/ObjC/C++, whatever.
What a well presented point… Slow compared to what ? Plain C ? I’ve seen plenty of crappy C programs. Are we going to judge a language by the programs *some* of its developers write? Do you even know what the performance and memory semantics of the JVM are ?
Java is also in lots of low memory devices like phones, BMW 5 serie cars and the mars rovers.
I guess that answers my first question. So first you admit you haven’t worked with it for years and admit your not up to date. Then next you wish it dead even though you just admitted you know nothing about it ?
That right, thats why they would never incorporate Java in the bluray specification so that players would need to implement it…oh..wait…they have.
If Java developers were forced to move away from Java, the next logical language / platform would be c# / .net. How can you even compare PHP with Java ? Its a totally different solution.
No. Actually, that would be the most illogical one. Why move from the real thing to a copy of it? Doesn’t make any sense at all. C# will face the same problems Java has now (e. g. going for hype and language bloat instead of pursuing simplicity in concepts and ease of use).
I guess that most Java devs wouldn’t consider something that limits them to a single platform from a single vendor (and please don’t come up with Mono here – there are good reasons why it’s not an alternative).
There are better options e. g. Scala might be a good choice if you don’t want to loose investments into Java.
Oh so your argument is that because it is in a phone and a BMW I should like it? The apps I used and help deploy were noticeably slower then “native” apps. Again, if you want to write in Java go for it, but make an app that has a native look and feel. Java apps for the desktop seldom do that, especially on OS X.
Nice try. Oh wait those games on bluray are fantastic. NOT! Are you serious? BluRay uses Java for more interaction then DVDs had to offer. How does that change my opinion for desktop Java apps? It doesnt. Are there any console games you can buy for the PS3, XBOX360, PSP, Wii, PS2, DS at the store that are made with Java? If it is so lightweight and fast why doesn’t the game industry make it a standard? Think about if they did. A game developer could write a game in Java and deploy to all the consoles that could interpret Java. Oh wait that’s right, Java is an interpreted language and not suitable for high performance apps like games for consoles. Oh I know they have made strides with the latest JVM implementations, but still not there yet…
Sure it is, but the syntax is also based on C and that was my point. Not that you would use it as a replacement, just that a Java dev could probably pick it up fairly easy.
I mean wow, you post your opinion and experiences with Java and Java apps and it’s like you killed someones cat. So sorry I offended all you Java lovers… I have been around computers since before Java was around and yeah it had a bad rep for YEARS. It was well known that it wasn’t very hot in the performance area. Ok so they are really trying to change that, great but I still don’t like DESKTOP apps created with it.
You hit the nail on the head there: “The apps I used and help deploy “. I used Cisco crappy Java GUI’s. They are quite possibly the worst piece of Java engineering on this planet. So why exactly are you complaining about the language / platform if you know the problem is with vendors who made the program ?
Same thing here: “Java apps for the desktop seldom”. You basically say it yourself; Java programmers don’t generally do that. So what is the issue with the language ? You can use SWT if you want to go native.
Perhaps for the same reason a dozen other languages are not the defacto standard in the game world (like C# or Assembler) ? What are you saying here ? Game programming is the most intesive use of computer applications in the world ? Requires the THE best language ? So the language that most games are made in must be the best language in the world ? Is that the logic ?
Besides, since when does market adoption equal quality ?
Also you conveniently forget all the Java games on mobile phones. I suppose your going to say; yeah but there just games on small devices: Makes the memory and performance constraints even harder.
Right, another expert on profiling the JVM. Could you please tell me a bit about your background before I take your word for it that for example the Sun JVM is slow ?
Besides if you don’t like it you can compile all Java programs ahead of time with GCJ or Excelsior JET. Thats right, it can be compiled to an executable just like C, C++ or whatever would. Since it isn’t interpreted when you AOT compile it, your point simply isn’t valid.
Right, thats a bit over simplistic look of things. Thats like saying water and oil are the same thing, there both wet.
Sure it did, but your presenting all your points as your own opinion, right ?
Did I say CISCO? So what are you putting words in my mouth?
Thanks for your insights Kermit. Are you one of the developers for Java because you sure sound like a total Fanboy. I mean WOW the passion for a language all because I said I don’t like the experience I have had with Java and wish it would die ON THE DESKTOP. And not even seriously either. But you know better and you instantly know the thought behind a message on a comment thread don’t ya?
It’s not about the language, it is about the experience that it has produced for an end user. Wether that be the developers fault, the tools, or the language, to an end user it does not matter. If the app is slow, buggy and looks nothing like the native GUI for the OS it is running on then you are not going to have happy users. Yes in the beginning that was the case with most Java Apps. So if it changes great for you, but the type of apps I use demand performance.
Oh no I did not conveniently forget about Java games on Mobile phones. That is not the gaming I am referring too. And the ones I have tried have not been great either, so I wouldn’t use that as a bragging point for Java games or Java in general. That is not how Java was marketed in the beginning. It was marketed as a cross platform language that could do all these cool things that it really couldn’t do great on each platform. they were easy to spot and often criticized, much as they still are today. Not saying it is right, but it is what it is.
Again you missed my point. It would be much easier for a developer that already knows Java to move to other c like structured languages then it would for someone that new VB or delphi or some other such language. That was my point, not that they are the same language.
I think I made that clear that this was MY OPINION based on the experience I have had with apps written in JAVA. It is my opinion and you don’t agree with me having an opinion, that is obvious.
Peace Out.
fixed that for ya.
Eclipse is definitely more flexible then anything out there, it is also a complete disaster when it comes to usability. I would use studio over eclipse any day. For me, when it comes to IDEs it would probably go
IDEa > Studio > Netbeans > Eclipse
in terms of preference. IDEa blows everything else out of the water.
Been a long while since I completely agreed with you, but I completely agree with you.
Not that their single vendor ecosystems are a good thing, but more companies can learn from their commitment to developers.
I don’t know about the rest of your description but Visual Studio pretty much owns the enterprise market; there is nothing at all nice about Netbeans, Eclipse or any of those other god awful Java based IDE’s that are slow, unintuitive, bloated, buggy and next to useless on anything other than *NIX. The problem is that rather than addressing real world problems by talking to real world developers who have to create quick and dirty solutions, the eclipse and netbeans programmers seem to be fixated on something other than creating a product that allows those enterprise programmers to do what they need done.
Case in point; drag and drop programming of dropping widgets on a canvas, assigning code to the widget, compiling and sending it out to end users. Why is it so difficult to accomplish such a task on Eclipse and Netbeans? how long has Visual Studio had that functionality and it still isn’t present in Eclipse or Netbeans!
Conclusion: ‘Enterprise’ developers like to drag and drop widgets to create software.
Not an eclipse or netbeans fan. I actually hate java applications and refuse to install it on desktop AND server. But really, if by a nice IDE you mean drag&drop shit, well, you are a ‘Enterprise’ developer.
I hate the word ‘Enterprise’.
Well, I was going to post stories of stupid things .Net developers often do, but then I started thinking about stupid things that Java developers often do. And well, you know what, people do stupid things with every language/ technology out there.
At the end of the day, I’d just like to use open products, as although they can be slightly harder to use, they are cheaper and more flexible. IMHO, speaking as someone who made the transition away from a MS only shop.
If your talking about drag and drop GUI development for SWT/RCP/Swing/GWT then there are plugins for Eclipse that do that. Windowbuilder comes to mind. Eclipse has plugins that do this for at least the 5-6 years I’ve worked with it. Being that Eclipse isn’t an IDE, but a application platform, theres all sorts of neat things it can do.
Can’t speak on Netbeans behalf, because Netbeans sucks.
I think VS is very good but bashing Eclipse is way off base here. Ditto for the whole “Java is slow” argument, that’s been settled for years now.
I’ve used, and continue to use, Eclipse for all types of programming from embedded (board support packages for custom processor cores) to GUI intensive Java applications (testing software for a semi-conductor company). It is superb.
WYSIWYG GUI design is lagging compared to Microsoft but only if you’re not targeting Java. Otherwise the WYSIWYG GUI development tools (available as plugins) in Eclipse are awesome.
Honestly. Have you ever tried to create a non-Windows-ecosystem product on VS? Its a horrible experience.
Its funny that you say a tool like Eclipse hinders enterprise programmers from getting the job done. I think its much more suitable for J2EE development than VS.
Edited 2010-03-08 09:33 UTC
I only bash Eclipse because it is part of a larger bigger problem; heck, I’d pull in Monodevelop for good measure if you want me to – it doesn’t negate the fact that as so far as creating quick and dirty solutions the alternatives to Visual Studio are horrible.
Now, if you’re a developer who has 1-2 years on a project and you’re going to strictly stick to the principles of ‘System Analysis and Design’ then no problems; I personally like XCode but if you want to do something quick and dirty that is a nice front end application that sits on the desktop, it’ll be a lot more hands on than what you’d do with Visual Studio.
What part of ‘Microsoft Visual Studio’ don’t you understand? it was designed to fit into Microsoft’s ecosystem; quite frankly, if you’re running something else besides that then Microsoft couldn’t give a crap because you’re not their target audience.
Considering that Visual Studio isn’t targeting J2EE – your point is, well, pointless.
I might be missing something here … but our shop uses Eclipse for what it is meant for: JSPs, Servlets, and other code to be run via Tomcat.
Not sure why anyone would use it for creating desktop apps, because Java sucks for desktop apps.
Hasn’t changed. MS devs will only keep up with stuff coming out of redmond, and will only even look at something else if you force them to. Worst thing about the community is those blinders.
im a linux guy and i use visualstudio from time to time and i enjoy it
i don’t like IIS, MSSQL etc.. but.. yet i use visualstudio. theres some vim integration too )
Are you the same kind of person who doesn’t get why the IPod was a success when MP3 players were around for ages?
Microsoft is to developers,
as Apple is to consumers.
I’ve never been a web programmer. But I’ve started doing some of it as side projects at work. Guess what environment I’m doing it in? Visual studio and the MS stack. Ditto at home, I use the express edition that even comes with its own installer that sets up the database, web server…
I *could* have done the same thing using any number of other tools (Apache, MySql, Python…). Yet I didn’t. I want to get my project done. I don’t want to fiddle with installing everything, learning the details on entire new software stack…
Like the consumer who doesn’t want to understand a file system or anything about MP3 or copying files or ID3 tags… They just want to get music on the go.
I just want to develop my app/game. Complexities and issues will always come up. But if MS can help take care of a lot of it… that’s why they keep developers on their stack.
And once you start on the MS stack, it’s hard to get off it So all the little developers who started making games/application using the MS stack and grew… they stick to the MS stack when they’re larger.
Usually in any given web project you want to have at least one guy who knows how to do the low level plumbing, so that the rest of the team can focus on business logic with Django/Spring/RoR/whatever.
For web projects it might be *especially* important to avoid Microsoft stack – you’ll avoid the whole licensing mess with virtualization etc. Sticking with unixy platform allows you to keep your options open.
most of the web stuff i work on is for internal tools.
I’ve gotten to learn most of the plumbing. But using the MS stuff sure reduces the initial learning curve.
I’m not too familiar with how the MS licensing works on web projects… but yeah, I’m always careful with their licenses. Were I to ever work on a web project that might need a farm of web servers, I’d be especially careful.
I really don’t think it is a big deal since their licensing costs scale with your business. I think a mix is often the best way to go, like 2008 web server + MySql. ASP on Linux is another option.
Download an complete virtual machine with Linux, apache, mysql, php, python and all included, most of the time the eclipse IDE is present as well and it is quite an good IDE to use.
Having it in an virtual machine image is convenient as well, as it won´t clutter your own system and you can do snapshots and easily recover it if it fails for any reason.
Hence the reason you code on your own, or in a big shop. Which is perfectly fine, so long as that work is there (which it will be, most likely, for awhile.)
Still, there are MANY small, medium, and large websites out there that use Java/Apache/Tomcat/MySQL explicitly, and would never move to the Microsoft lock-in model.
Indeed. The hype machine is at it again.
+1 Informative
Eclipse, Netbeans, even VS. Choosing .NET over Java for mobile gaming development is silly because Java supports more devices. So what if you can save your game online? Because that’s what this is, basically. If you download… let’s see…. Doom for IPhone and Doom for PC, your savegames will be interchangable with each other (provided it’s the same release, there’s a ton of different Doom releases for PC, at least).
I don’t understand why you said that. The controls aren’t an issue at all. When developing games the input is platform specific. The code related to input and controls is always isolated from the platform independent code. You just need to specify how they’re handled on different systems, that’s all.
All in all, yet more marketing from redmond. They spend millions on marketing, trying to sell the world a wheel can clamming it’s invention as their own.
I think he was refering to what control method the game is developed for. You do not have the same controls on a PC or console that you have on a phone and the best games for each platform will target the applicable controls.
Consider keyboard/mouse involved games that have been ported to a console; they suck. Using a controller’s five buttons and innacurate sticks is nothing like playing the game with it’s natural keyboard/mouse input method. It goes the other way too, a console based button-mashing fight game sucks when you port it over to a PC and use the keyboard because it just wasn’t designed for that input.
You seem to think that mobile is the only game in town. What makes this impressive is that it spans PC and mobile and game console. Not just mobile. Which makes it really easy for a game developer to achieve a very wide reach with a single application. iPhone apps don’t run on game consoles. Admit that, and we can move on.
You mean those silly little mobile games on feature phones like the RAZR? Nah, no thanks.
All Java implementations on Mobile Phones really blow, save for the Android environment.
You say that like it’s an easy thing. With .NET, you compile once and run on a plethora of environments. No ridiculous boilerplate required.
I find it interesting you’re apologizing for the additional work you’re putting already time ocnstrained developers under.
They sell a combustion engine and you try your hardest to make it look like a wheel.
Your mobile phone runs Crysis? Sweet! Did you know one of the most profitable gaming companies right now is Pop Card entertainment, makers of silly little mobile games like Peggle?
Why (from a developer POV)?
If you bothered to look at the video, you’d see they implement different classes and methods for IO handling on multiple devices. They mention it, in fact.
I can also swing some fancy marketing:
“With Java, you compile once and run on a plethora of environments,”
Technically it’s not compilation but what the hell.
Additional work in doing what exactly? Input handling?
Saving games in a remote server? Cause none of that will be done automagically with this thing either.
I’m not trying my hardest to make it look like a wheel. I’m just… well.. telling it like I see it.
I see this more as a triumph of VS as a development environment, and the the tight integration between MS software platforms, then a triumph of the platform itself.
The fact that this can already be done… IMHO… fairly easily on competing technology renders the argument for innovation void and null.
You may think this is magic. I see a game written in whatever runtime environment you can think of, that uploads it’s save states to a central server and allows them to be loaded on a different client. I might be missing something, but whatever.
I’m sure they have their target audience. It’s just hardly on the same level as any of this.
The Android SDK provides a much richer set of APIs, and Java5 support.
YOU are not writing the input code, and it does not differ across devices. Touchscreens, Sensors, etc work the same across all devices.
For example, Touch logic on Surface does not differ (much) from Touch logic on WP7S.
I can also swing some fancy marketing:
“With Java, you compile once and run on a plethora of environments,”
Technically it’s not compilation but what the hell.
Technically, it is. I’m betting they skip JIT altogether for mobile devices.
a 3D racer originally for Xbox, is already available for Zune HD, has great graphics, and it’s programmed in XNA (the .NET based game framework pertaining to this story).
Check out this demo:
http://www.youtube.com/watch?v=PoKBfCeyQ9U
Java games aren’t in the same league. Why is that even being argued?
XNA being used to make games that run on Windows, Xbox, and WinPhone7 will blow away lame (by comparison) Java games.
Edit: “Crisis” in the title should be “Crysis”.
Edited 2010-03-07 09:12 UTC
That’s probably the differential point I suspect, “limited OpenGL”. How much of DirectX code moves between platforms – I suspect quite a lot of it, but I may be wrong.
Also the single IDE and workflow of Visual Studio is a hugh carrot.
Edited 2010-03-06 22:13 UTC
Absolutely false. Don’t bullshit around. First let’s not get into the scalability issues you’re going to run into on just one of those five or six versions you claim, but you’re going to have growing pains on any one of those platforms because you’re targetting a variety of different resolutions, you’re basically forced into a least common denominator scenario for all of them.
You again fail to recognize the cohesion that Silverlight brings to the table. You’re going to spend obscene amounts of time reinventing the wheel over and over for various things.
Be it Silverlight or XNA, OpenGL is inadequate when it comes to the level of abstraction expected by developers.
With C and C++ you’re doing resource management, parallelism, networking, basically everything you’d expect from a modern platform does not exist in C/C++ or has very little abstraction.
Try getting input, Audio, networking, and scalability working across all of those devices without a hitch.
About a year later, you know, when you finish all of that redundant boilerplate code, you can tell your Boss you’re ready to actually start moving towards not wasting his time.
IDEs are more about product management, unit testing, refactoring, etc than it is anything else. Asking programmers to throw away Visual Studio is barbaric.
When I do work from my Linux Box and use MonoDevelop (No offense to those guys, it’s a great piece of work) but it just feels ages behind VS2010.
That’s just one of the devils.
Suuure, next thing you are going to tell me is that the majority of good games is written in C# and Visual Basic, right? And many levels of abstraction are so good for fast games.
It’s a trade off. Consider the following:
Which platform let’s you do scalability easier? It sure as hell isn’t an unmanaged solution. Even OpenMP while being very good, comes nowhere near something like the Task Parallel Library in .NET4 or the Rx Framework for asynchronous programming.
You can’t get data level parallelism without obscene amounts of boilerplate in an unmanaged solution.
All .NET does is implement what you’d already have to implement yourself. Resource management, content management, etc. is all a breeze with XNA.
Coming right down to the wire though, .NET has more overhead per-method for methods, but it’s hardly something which is a bottleneck when 9/10 the bottleneck in the pipeline is the programmer not exploiting degrees of parallelism like they should.
Mono does some very interesting in-compiler SIMD optimizations that’s unmatched in any compiler (even Microsoft’s .NET) which is a good thing, and does a lot to bring .NET Game programming to the level of performance of unmanaged languages.
Really, the magic number is 60FPS. It’s been easily achieved with XNA on the PC and on the 360. It’s a non issue.
What I can guarantee you is that I can write a game in XNA and have it run on let’s count them:
1. Windows
2. XBox 360
3. Surface
4. ZuneHD
5. Windows Phone 7 Series
with 90% codesharing. In a fraction of the time.
You’d still be struggling to deal with the infinite complexities of the COM API if you’re dealing with DirectX, or ripping your hair out over the ridiculousness of the OpenGL API, or trying to get resource aquisition just right, or guessing how the average number of cores on todays PCs, doing some profiling, checking for lock contention, and praying to the sky man that your code is optimal.
Scalability is king in the multicore world. .NET is king in the scalability world.
Give me F# with immutability and PFX, and I’ll give you the world.
If targeting Silverlight rather than XNA, the potential deployment targets expand further to include Macs, (and in the near future) Moblin, some Nokia, Symbian, and (IIRC) Blackberry devices, and desktop/other *n*x via Moonlight. lt should be particularly nice for non-gaming apps.
Regarding XNA, I remember a project related to MonoTouch that was started shortly after ZuneHD’s release and acted as a bridge between MonoTouch and XNA enabling you to run MonoTouch code on XNA platforms. An iPhone game was quickly ported to ZuneHD as an example. If that project is ongoing, it could provide another avenue for easing cross-platform development to some extent.
Edit: It’s called XNATouch:
http://xnatouch.codeplex.com/
Edited 2010-03-07 03:16 UTC
Correct. To add on though: Surface also supports WPF, which is a superset of Silverlight. With minimal changes (less and less each release) you get immense codesharing.
I wouldn’t bank heavily on Moblin & Symbian. Moblin is MeeGo now (after Maemo merger), and the platform strategy there is to push Qt and C++ (and Qt Quick+JavaScript) at 100%. Qt has the same role for Symbian.
I reread this since I saw it was modded down, and realized there is a danger of misunderstanding. What I mean is: don’t bank on MeeGo having reasonable silverlight support. Someone might turn up to run silverlight on it, but even Java is not officially supported (and Java is arguably the more useful of the two).
Given Microsoft was working directly with Intel to provide Silverlight for Moblin, the merger may actually strengthen Silverlight support on future devices by having a common platform.
As with Intel, Symbian support was similarly the result of a partnership between MS and Nokia for MS Office mobile apps,.NetCF, Silverlight and VS. The first device to be supported was supposed to be the S60. That may change given the merger and Nokia’s OS preference for new devices. Though it’s probably still worth supporting devices already in market.
There’s not been much subsequent info since the initial announcement, however, there may be an update at MIX since the mobile runtime is closer to completion. MS may choose to focus solely on 7Series depending on their or Nokia’s release plans though.
Edited 2010-03-07 20:15 UTC
What I can guarantee you is that I can write a game in XNA and have it run on let’s count them:
1. Windows
2. XBox 360
3. Surface
4. ZuneHD
5. Windows Phone 7 Series
Impressive. It truly is, but I haven’t one device in this house that answers to these specs. Again a solution that cuts out anything not in the Microsoft Universe.
Um, yah. That universe covers 90% of the desktop market, and HUGE portions of the console market. With Win7Mobile, that market will likely grow as well.
So. There you have it. This solution will cover the most installs.
Interesting how you’re modded down for stating the truth. I’d call 90% coverage amazing.
C# is a relatively new language and VB was never meant for games. High-end 3D engines use C++ but they aren’t expecting this to be used for games like Crysis.
Well this cross-platform support would be very useful for developers who plan on targeting XBLA since they can release a phone version without any additional work.
Anyways there is no common api among the platforms you listed. The iphone uses objective C. There is no easy way to target all those systems.
Educate yourself.
Apples gcc compiles C and C++ as well(Iphone included). Just google it or buy Apress.iPhone.Games.Projects.Jun.2009.eBook. That book has a chapter about cross platform games in C and one for C++.
You still need to use Objective C for the user interface.
Well considering native code can’t be run on (to my knowledge) a Pre you’re wrong on at least one count, and the iPhone doesn’t use standard C++, so thats another mark off.
No, you are wrong on both. EAs games on the Pre are C++.
Read my comment above, I don’t want to repeat myself.
While WinPhone7 will use Silverlight for “normal” apps, it will use XNA for games (like Zune does).
The demo in this article shows the Indiana Jones platformer that comes with XNA dev kit 3.0 and/or 3.1 running on (and being “developed” for) Windows, Xbox, and WinPhone7.
That said, both XNA and Silverlight are .NET based, so similar programming skills are used. And there will likely be Silverlight games on WinPhone7, but those will be low-end games (which I’m guessing wouldn’t run on Xbox, since Xbox (to my knowledge) doesn’t generally support Silverlight (though its dashboard and video streaming uses it, from what I’ve read); Silverlight games for WinPhone7 could be made to run on Windows and Mac, since those platforms do have Silverlight support; but all of that is just speculation on my part).
Edited 2010-03-07 09:32 UTC
From Engadget:
This blew my mind. Silverlight enables you to create a savefile format that *works across different processor architectures*.
In C++, this is impossible because of the big/little endian issue, and the fact that you have to implement it by serializing COM objects and marshalling bare assembly.
Moreover, they are actually able to upload the savegame to a *shared place*. I actually hyperventilated for 4 seconds after seeing this.
It’s not impossible in C++. You can do XML in C++ or have a simple library that reads a file.
Upload to some hosted server which any company can do…
However… MS does all the work for you and makes their ‘standard’ very attractive… which is why developers love MS
Edited 2010-03-06 21:20 UTC
Total BS.
Savegames!=Memorydump.
A savegame can be pure text and C++ is more than capable to digest that.
whoosh 😉
🙂 Good one.
You obviously have approximately zero experience in persisting games to a memory file, and reading it back with zero issues.
Serialization makes this an absolute breeze. A 1:1 mapping between .NET Objects and XML is a breeze with WCF. Hell, I can serialize it to pretty much anything, even JSONp and send it over the wire to an AJAX page.
All in substantially less amounts of time and effort than with other solutions. This is the key factor.
So?????
All I said was that save games can be stored cross platform across languages. There are multiple way of archiving that (simple text being one example). Save games are just another file format. That C++ makes reading those crossplatform impossible is BS.
Even a 1:1 physical memory copy could be converted.
Anyways EOD for me. You obviously don’t understand the words I write.
This isn’t about can platform X do operation Y. This is about how easy it is to do it.
Baloney, Mahoney. I’ve done the same thing sharing saved game files from processors as diverse as the z80, x86 and M68000. With obviously different OS’s/ compilers as well. Its not that difficult.
As a general rule, I don’t think anything that I’ve done is that impressive or difficult.
If you re-read that post, you’ll see that it was clearly a joke (that didn’t end up well-received… I should have thrown in a sarcasm tag or 2).
I’m somewhat unimpressed about how easy it is to impress people these days.
Sorry. Didn’t detect the sarcasm.
Look, dude, this is the internet. If you want the general populace to understand that you’re being sarcastic you need smilies. Lots of smilies. I mean, did you mean for people to actually think?
OK, this article is maybe impressive to people with no or very little knowledge about how programming works, but anyone knowing anything about DirectX or Win32 would find this to be quite unimpressive.
Why? Well because all 3 platforms implement a common subset of the Win32 API and always did. So the only thing they’ve added is that their mobile OS now also supports the Direct3D API.
That alone does not make it impressive since the iphone has now been out for several years supporting OpenGL – an API very similar to Direct3D. So the news here is that now you can finally use Direct3D on their phone OS – a few years later than the competition.
As for the save game thing, that is about as impressive as the fact that you can send a file between computers on the Internet. Yes, OK I’ll admit, I still sometimes get mighty impressed that a computer from the other side of the planet sends me megabytes of data over the Internet and then wireless to my phone, but the fact this is possible is like 10 years old news now.
That the file being sent happens to be the state of a game is NOT impressive.
No different to the X-Code tools that allowed companies like Pangea to spend very little time “porting” their OSX games to the iPhone. It was only the input routines they had to add. The saved game state is cool, but again nothing revolutionary – an extension of existing technologies.
And again, there is nothing really revolutionary about Windows Phone 7, just as there wasn’t a lot revolutionary about iPhone OS. They both took existing UI concepts that have been around for years – AtEase and Simplified Finder on the Mac; Ease of Access Tools, Active Desktop components and Gadgets on Windows – extended them a little and added a (multi-)touch interface to them. Apple just did a good job of tying it all together and making the stuff significantly more usable for the man in the street. And everyone else has just followed along.
Most of the concepts shown in the Courier videos aren’t even new – they’re either the same as, or extensions of many things shown in the Knowledge Navigator videos from 1987. It’s a lot easier to follow, and it’s a lot easier to produce concept videos when the technology is already in place to make the device.
There are just as many people, if not more, who’s view of the world is distorted by looking at it through multi-coloured windows, as those who have apple (or penguin for that matter) shaped pupils…
I’m a game developer and we have our same codebase that runs on Windows, OSX Linux, Wii, PSP and Iphone. There’s nothing strange about it, a lot of products already offer this such as Unity, Torque, Vicious, etc.
It all comes down to to supporting a common feature set between the platforms.
Thom, please check your facts before getting so excited with this stuff.
What you are talking about, is developing a cross-platform game. That’s nice, but that’s not (just) what this is. This is essentially the same game running on three platforms, with the ability to share data seamlessly among one another – without any user intervention, progress is saved and made available for all devices. You play the exact same game on all devices, capable of sharing each other’s data. Can you show me a game that does this?
On top of that – and this is probably a lot more important – the example was indeed a game, but this is not just about games. This works for normal applications too – that’s something your cross-platform game engine can’t do, now, can it?
You are talking about a game engine that runs on a multitude of platforms – what Microsoft is showing here is that you can develop any application – any – and have it run on three different platforms, no matter the architecture or hardware aspects.
And yes, that is impressive.
Edited 2010-03-07 00:35 UTC
You play the exact same game on all devices, capable of sharing each other’s data. Can you show me a game that does this?
Doom, Quake, Quake 2, Quake 4, Unreal Tournament, various RTS games and so on and so forth. Being able to use the same saved game on multiple platforms is NOTHING new. The only thing Microsoft does here is that they have a server where to store those saved games and an API for easy retrieval and storing of them. Of course having such an API is handy, but it’s nothing spectacular nor new either.
On top of that – and this is probably a lot more important – the example was indeed a game, but this is not just about games. This works for normal applications too – that’s something your cross-platform game engine can’t do, now, can it?
Again, why couldn’t it? It’s still just about storing and retrieving data from an off-site server and that is easy to accomplish even with cross-platform tools.
You are probably wrong.
You could be right, if the _exactly_ same .net assembly would run on each platform, but that isn’t said anywhere, is it? I really don’t think that is the case. VS probably has different build targets and can deploy to those. It did it always that way. (DX11 for PC, Xbox DX and DX mobile or whatever it is called)
A game IDE that can export/crosscompile the same project for different platforms and maybe use the same fileformat for savegames is nothing special. Putting those savegames on a internet server (the cloud) isn’t the big earth shattering news you make it out to be.
If it isn’t the same assembly across all three, then that was by choice, not necessity. If you stick within the limits of the compact framework and XNA and don’t p/invoke, then there is no reason why it exact same assembly couldn’t be used.
game, application, it’s the same as long as the framework is designed to have a common layer for different devices. Most game engines have all the support needed to write applications, though it’s not nice simply because it isn’t designed for that (as in, it won’t be as nice as developing in Qt, but it’s perfectly possible).
Unity or Vicious, you make your game in PC, and with one click you have a console, mac or iphone version without changing anything. As i said, same game code without changes running in different platforms exists since a long time ago, be it with .net (Unity) or just a custom scripting language (Vicious, Unreal or Torque). Nothing new!
The only “special” feature you seem to mention is sharing savedata between them, well this is not a technical limitation but a platform limitation.. you know, Sony or Nintendo will never allow you to do this (yes i developed for their platforms so you have my word you can’t), so basically all what this “impressive” news is about is that Microsoft allows you to share savedata between games. Amazing!
Quake Live
With those game engines you can’t just write for one platform and then set a -mobileplease compiler flag. They provide a common game engine but multiple builds still need to be created and optimized for multiple platforms.
The big difference is that those platforms aren’t built by the same company which is why MS is able to make this so smooth.
I think the game save syncing is kind of gimmicky but this is still impressive. It’s much closer to write once / run anywhere than Java ever got to.
So they actually took advantage of their own technology. That’s impressive how? Java 2D works pretty much the same in a bazillion platforms and we don’t see it frontpaged here.
As reduz said, this is pretty much standard practice for most gamedev shops.
Possibly Engadget wanted to grease some elbows with Microsoft by giving them some good press?
Somehow this was a less interesting news for engadget:
http://www.engadget.com/2010/03/06/firstviews-95-android-windows-ce…
Again, what major game console does Java 2D run on?
Not necesarily java, but .net or their own scripting technology. Unity, Torque, Unreal, Vicious, CryEngine, Unigine, etc etc etc. Pretty much ANY commercial game engine solution offers you this.
The only special “info” here is that microsoft allows you to publish games that share savedata, and of course because it’s their own platform. (any other publisher will not allow you to do that). So yeah this news item is trivial.
Edited 2010-03-07 22:03 UTC
Not quite. First, not all of those engines are present on mobile platforms. Second, you’re going to pay a steep price (eg. per unit or a large flat royalty rate) to use many of those game engines, which isn’t viable for smaller publishers. Microsoft is offering a XNA developer license for $99.
Again, wrong. You’re missing the point (intentionally, I think, because you seem to have an axe to grind here). Developers who use Microsoft’s platform essentially get 3 platforms for a single development cost. Not only that, the developer pays a very small price to post their game ($99), and they have no infrastructure costs beyond that. That’s a HUGE benefit and, I would argue, a game-changer (no pun intended).
Your answer is absolutely and completely offtopic, i don’t remember neither the news item or my reply to be related to price.
I say this is paid press to endgaget. A site with their technical level would never publish something as trivial as this otherwise.
For Microsoft it is indeed impressive. Pretty much nothing produced by Microsoft is currently built on .NET.
MS Office doesn’t even use regular Windows GUI widgets.
what’s impressive? microsoft’s marketing machine perhaps?
c’mon thom, you get too excited by too little things. that or you get a very huge paycheck from microsoft every month.
free motorola milestone bootloader!!
Like others have said, sharing 90% code is really not that impressive and has been done for years and years on different technology stacks. Good news for the microsoft community, but hardly revolutionary.
The other problem is that a game that makes sense on an XBox, PC, and phone _unaltered_ is going to be pretty rare, Sure maybe something like a small indie game (Peggle is a good example), but most games are not going to fit on all three platforms. You would have to rewrite/tone down a big part of the graphics to make it work, and then there will be considerations for screen sizes and such.
Just like the old java slogan of “write once, run anywhere”, this is much less exciting then it first sounds.
Most game development houses, or at least the larger ones, can already do something similar. They can write a game and compile it for PC, PS2, PS3, Xbox360, Wii, or PSP. (theoretically DS as well).
Sure, none of those platforms is a mobile phone, but with the Wii you’ve got accelerometers, and with the Wii and PSP versions the graphical quality will automatically downscale to match those platforms’ limited capabilities.
For some games, they write some sections in Assembler for extra speed. This is not very portable, but it is very fast.
Indie game developers might be attracted to the idea of writing a game and deploying it on Xbox360, PC and Windows Mobile; but it’s certainly not going to change anything for the development houses who’ve already written or bought the tools I just mentioned. They still need to target PS3 and Wii, which Microsoft won’t help them to do. It also remains to be seen whether you can write any serious modern (full 3D) cross-platform games using this Microsoft thingo.
Can’t you read? This isn’t just about games, but normal apps too. On top of that, can you seamlessly share states between the current crop of cross-platform games?
Didn’t think so.
So… Visual Basic can finally do what Java has been doing since I owned a G3 iMac? Except on fewer platforms?
Only because nobody has bothered to implement it, because they assume you won’t own multiple copies of the same game. You would probably find that the savegame data between the same game on different platforms is very similar; any differences could be easily converted and it would be easy to implement cloud-based sync.
Even if we’re not talking about games, Python has been ‘pickling’ objects since the 1990s for transmission across networks, and Opera Link has been syncing my bookmarks across computers and phones for a long time.
I’m not raising these objections to the article because it’s Microsoft, I’m objecting because it’s not anything new. I read OSnews so I can learn about new things that are happening, not about old things that are being promoted as being new,.
Actually, multi-player online games released for multiple platforms have been doing this like forever. They not only do cross-platform save states, but also player communication and interaction. These range from mobile variants right up desktop and console versions of the same game.
So nothing new here. This is just marketing hype from MS to promote their own products on their locked-in platforms. There are better products in the market that could do the same thing with much higher level API across many platforms from different vendors.
Java apps on the phones have been of very poor quality.
Using this analogy you could say that a commodore 64 has been around a lot longer than the PS3, so welcome to gaming!
There is a lot more than visual basic here, there is C# (which in my opinion owns java) and then you have IronPython and then you have F#, etc…
Java is just crap for a lot of things and really it’s not all that it’s been hyped up for. I mean I have to run some AT&T apps that are in Java to set up DSL and the apps ONLY work in IE and no other browser (I work for an ISP). This is exactly the crap that I am talking about.
Also, my sprint cell phone cannot run some java applications that other phones can and vice versa.
Java’s own idea to program the app once and run anywhere still doesn’t hold water in many cases out there.
Anti-microsoft phoneys do the same thing, simplify everything to make it look like it has been done before to try to put FUD out there and it’s just disgusting.
Well, if it’s not either being done right or being done at all that would qualify as new.
The fact that you can take the same program and run it on different platforms is not new. However, the ease at which it works is. As the problems show with Java run everywhere is just not realistic in a lot of places.
The fact is that you can sync up your game automatically on multiple places / platforms without doing any work is pretty amazing.
If only the technology and Java was as good as a lot of you kids were pushing and maybe if the technology was global then it might mean something. In the 21st century, java is the least impressive programming language I can think of. It’s so 90’s and it’s more hype than actual reality as shown by some of the anti-micorosft crowd.
Of course if you hate Microsoft nothing is new because it’s all been done before, even when it hasn’t we will just make stuff up.
// I mean I have to run some AT&T apps that are in Java to set up DSL and the apps ONLY work in IE and no other browser (I work for an ISP). This is exactly the crap that I am talking about. //
Umm .. that’s because whomever wrote that app is either too lazy or too stupid or too micro-managed to make it work on other browsers.
NOT Java’s fault.
What kind of ‘apps’ running on a game console would benefit this? I doubt anybody would want to run anything like an enterprise app or even note taking utilities on a console. Anything this three platforms can benefit together would be games not apps (unless something really obscure).
Meh, so much for the apps reference.
Thom, i already explained this to you. the only reason you can’t share states between cross platform games is because the licensing restrictions from the platform owners forbid it. I’m not blaming you and I understand that it may seem impressive to most non-game-programmers, but as i mentioned before the only factor involved in this is Microsoft allowing it for their own platform. (I’m completely sure that they still forbid it between say, 360 and PS3).
Imagine that, otherwise, nothing would stop developers from allowing you to transfer your saves and achievments from a console to another..
Don’t be condescending. I’m not an idiot.
I’ll repeat what I’ve said a few times already: stop fixating on the stupid game. This is about normal applications too. Like a word processor, image editor, whatever. No matter the device, arch, operating system, or input method – you’ll be running the same app with thr same data.
Everyone may keep repeating it’s all easy and nothing special – and yet, there are no applications out there that actually work like this.
All of the apps you’ve mentioned do not fit on a game console. Though many have gotten your concept, they are also pointing out that there are no usage scenarios that exists on all three platforms that would make an app viable on a game console, only games.
Qt has been available for Windows and Windows Mobile/CE (and all other supported platforms) with the framework to develop any app (not referring to games here, just apps) to share information. So nothing great here from MS. OTOH if you include a game console, there is no need for apps, because no average console user/gamer would want to run an app on a game console (a word processor, image editor, etc) as its design and usability just doesn’t fit for such usage models. Thus it is pointless to keep referring to “apps” usage models that target all three platforms.
We hope that you finally get what we are trying to help you understand.
Edited 2010-03-08 16:42 UTC
Even games are a poor example.
Look at the game they’re showing. It’s a platform game, and the phone plays a version where the view is cropped.
Even though technically you can run the same game just fine for a pointless tech demo, it cannot work well from a level design point of view.
If you design the levels to be interesting on the xbox360, they’ll be unplayable on the phone because you won’t be able to see enough in advance where you’re going.
If you design the levels to be good on the phone, they will be utterly boring on the xbox 360 as they will have to be far too linear to avoid people to get lost when playing on the small screen.
Huh. Google Docs.
And when I think about it… in a way IMAP does this for eMail since 1986…
It’s only the core c++ engine that they can recompile. There are still a lot of layers on top that they have to build for each platform.
Everyone of these supports OpenGL — except Xbox (and possible DS, but that I don’t know).
True, graphics are not everything, but they are a large part.
Game dev houses usually use middlewares to accomplish this and rarely ever write any such functionality from scratch. In fact these middlewares function just like what Nokia’s Qt does for the desktop, mobile and embedded space.
I don’t get it. The whole article is about a cross platform game that stores its save state online so it can be resumed again on any device. That’s it right? While this is nice there isn’t much new technology involved here. Cross platform has been done forever and there is nothing in the article that suggests there is anything unique about the development environment used to build the games. Resuming from a saved state on another device is a nice touch but is it really that innovative? You’ve heard of email before right? I can check it from a web browser, from a pc mail client, from a phone client, etc. The idea that I could store information like email on a server and be able to retrieve it later from a different device was revolutionary to me at one time but that time was the 1980s.
…and what it comes down to is how easy the product makes the development/sharing process.
If I can start working on project A on device A, then pick up device B and continue working on device A as if nothing had happened, no effort on my part, then it is good.
This is the thing that Apple has done once or twice that people swoon over. It’s not how amazing the code is or how modern it is (software and hardware) but how a person can mindlessly access what they want/need when they want/need it without any fuss.
My economics-teacher told us that the Amiga was unserious in those days. “Isn’t that just for games?”, and advocated the PC, then using windows as the operating system, as better. The same argument can be used today though,about windows.
Maybe it’s time to google “linuxnews”. I have lost interest in alternatives anways.
Peace be With You.
Edited 2010-03-07 08:37 UTC
I know it is off-topic but think of the fun if Amiga had succeeded and Windows was not the Market leader… I loved my Amiga’s they were great fun. Even then though, save states were not compatible across say PC, C64, Amiga, Atari ST. But much different times…
Commodore management killed the Amiga, not Microsoft.
Yep. Who said Microsoft killed the Amiga? I didn’t.
You know, it’s just “Windows Phone”. The “7 series” is the product line. As we had 6.5, etc before. It’s badly named, sure, but it’s not quite as painful as it first appears.
In fact, I’m astonished that this has any news character at all.
I would have thought that sharing code amongst product platforms totally controlled and owned by the same company is something obvious and trivial. So what’s so special? A unified saved game file format and an online storage for it? Come on!
Astonishing how OS news simply parrot marketing material without any grain of reflection ..
They invented…
Cross-platform code. That’s never ever been done before.
Nope – It’s not even cross-platform. It’s cross-device!
Cross-platform would be something like working on Windows, OSX, Linux and Solaris etc. As far as I understand it is all the same code base.
If MS would demonstrate code that would work on all platforms (e.g. different code bases) like Java, I would be more impressed. At this moment it is only working on Microsoft software. That rules out a LOT of other devices running non-Microsoft software.
So – I am not impressed at all…
WTF.
I’m sorry, so Microsoft can make something run with 90% of the same code on multiple of THEIR OSs.
THAT’S HOW IT SHOULD BE. Write with a cross-platform bunch of libs, and you should be able to compile and run on any platform that has those libs. You can have 100% common code (though often a little bit of specific code is worth it). If you don’t care about speed or memory, you can do it in JAVA and not have to recompile on the different platforms.
There is so much software and libs that can do this on truly separate platforms, i.e. OSs done by different vendors. If you are impressed by this, you are an idiot.
I can’t be bothered to read anything more on this. I’m just gob smacked to see this as news. The fact it seen as news says more than this “success”.
Yeah, this article and some comments are weak, but maybe a few people learned something about programming. So it’s all good.
The story was on /. today and the comments there are way more insightful. Probably a lot more coders/x-platform people around.
Sorry but the old slogan of “compile once, run everywhere” is a bad myth, proven wrong time after time.
Oh don’t get me wrong, I know often it’s “compile once, debug everywhere”. But once you have made it run in all the environments, the same code can run on all those environments. It’s always possible you’ll be lucky and not have to change anything because of different platforms… I have deep dislike for Java/C#, they are fat and slow, and all to often breed for ignorant programmers, but they can offer the same code running on multiple platforms without recompiling. At least in theory C# can, but of course Mono will be forever chasing tail lights and is a separate implementation. And IF Mono ever truly allowed .Net to be a run everywhere language, MS would shut them down.
I had the same idea this morning while playing at Monkey Island this morning on my iPhone: i might be great if I could continue on my computer’s big screen…
Nice job anyway.