There has been talk of Android shifting to C#, mainly due the Google-Oracle lawsuits over the use of Java. While there rumors haven't been confirmed, there is mono-based C# for Android at http://xamarin.com/monoforandroid but what interests me more is what's on this link: http://hexus.net/mobile/news/android/38789-google-android-ported-java-c-blazing/
At the bottom, of the link, they point to an ICS build of Android based on C#. Though the build isn't yet complete, the second link I've posted contains a comparison from which it can been that C# trumps java... Badly!
The C# build can be found at https://github.com/xamarin/XobotOS
It is called the XobotOS. Has anyone tried this? This is supposed to be a working build.
Here is a snippet of their description:
XobotOS project
===============
XobotOS is a Xamarin research project that explored porting Android
4.0 from Java/Dalvik to C# to explore the performance and memory
footprint benefits of C#.
XobotOS is a semi-automated port of the Android 4.0 source code from
Java to C#. The automated parts were ported using an improved version
of Sharpen that can compile more advanced Java constructs and supports
generics. Most of the manual bits of code fall in two categories (a)
code to integrate with the host operating system and (b) replace the
Java JNI code used to call into C, with the ECMA CLI P/Invoke
functionality.
Click to expand...
Click to collapse
switch
thatd take a lot of developing to switch after so much work has been done in java!
I wonder if is a good idea to move from an open to a closed and corporate environment. How about compatilibity and scalability?.
C#, though made by Microsoft, is supposed to be an open specification. And the mono framework provides an open source platform for C#.
Check this out from Slashgear:
The key difference between Java and the C# and .NET runtime is that the latter two are covered by ISO standards. That means there are legally binding commitments by Microsoft that prevent the software giant from suing implementers for patent infringement.
Click to expand...
Click to collapse
This looks very good: http://xamarin.com/monoforandroid
It's mono for Android. It runs on the current Android versions but it is based on C#. Though this is slightly different from a C# Android, this can provide a unified code base for Android, iPhone and WP7. However, this project isn't free except for evaluation.
I'm wondering if any dev's could try out this port on one of their devices.
yea, I remember mono a how it failed on linux... anyway looks interesting but Im sure is not promising
cpl.Bower said:
yea, I remember mono a how it failed on linux... anyway looks interesting but Im sure is not promising
Click to expand...
Click to collapse
I am no programmer, but I'm glad it failed. I can't imagine Google officially going to port the whole Android to C# and .NET. If they were going to do that, might as well transfer all their Android IP to Microsoft for free to avoid another case like SCO (funded by Microsoft) v Novell.
Anyway, on the recent Oracle v Google case the latter won overall except for a few minor offenses.
I wouldn't personally mind a switch from Java (read: Oracle), but that would be a huge switch for whole community, it might even split it in a way if Google went with this. What about Google Go? I've never used it nor I even know the state of it. Who knows, maybe Google has plans to use in for android in the long run already?
A switch from Oracle's Java to C# which I think is tied to Microsoft wouldn't be a wise thing to do IMO.
The switch to a C# based android would mean better performance and battery life if what they say is true. However doing so is largely impractical and would be a decent alternative only if Google was forced to switch from Java.
As far as the Mono platform goes, it is a godsend for XNA developers. It enables you to retain 80-90% of your codebase between all 3 platforms (android, iOS and WP7) and will greatly reduce porting time if you're writing in C#.
Sent from my Droid Incredible using the XDA app.
Sounds cool, for me anyway since i use unity 3d and program in C# though i though the lawsuit was over between them?
i doubt that google would change android to C# way to much has been done in java think of all the apps that would no longer work.
although the flip side is that it would mean a clean slate for the app store witch means no more bad apps because google could change the restrictions for publishing.
Every app would need to be rebuilt...but hey, you could code for iOS and Android at once!
AceRoom said:
C#, though made by Microsoft, is supposed to be an open specification. And the mono framework provides an open source platform for C#.
Check this out from Slashgear:The key difference between Java and the C# and .NET runtime is that the latter two are covered by ISO standards. That means there are legally binding commitments by Microsoft that prevent the software giant from suing implementers for patent infringement.
Click to expand...
Click to collapse
The ECMA standard is incomplete, and the only actual protection is a "Microsoft Community Promise" which only prevents Microsoft from suing you, not one of the patent trolls which it can, and has already in the past, equipped.
As this article points out:
If Microsoft genuinely wants to reassure free software users that it does not intend to sue them for using Mono, it should grant the public an irrevocable patent license for all of its patents that Mono actually exercises.
Click to expand...
Click to collapse
In short, there are still serious reasons for worrying about C#, despite what they'd like you to believe.
Hmmm.... Basically Microsoft can still come back and screw us over... And they would have reason to since they offer products directly competing with ALL of Google's products. The only reason they probably aren't doing so to Apple is that Microsoft makes products for Apple systems...
And then Apple would come out from nowhere and sue android again for this, claiming they patented it.
♬★------ιƒ ι αgяєє∂ ωιтн уσυ; ωє'∂ вσтн вє ωяσηg シ------ ★♬
java always used to be more advanced than .net, especially back when android was released. but in the past few years .net has really caught up and now greatly surpasses java in both development tools and runtime performance. you can already run android apps written in .net with mono which already outperforms the same application written in java.
also i think csharp is a very easy language to learn and visual studio really makes it easy for new developers. however i dont see google pulling a complete switch like this. especially when the entire android project is based on rapid development (which seems to be working well for them).
I think that if legally everything can work out between Goo and MS about patents etc., would be nice to see some C# Android. .NET and C# are good base to have some improvements. Then again the security issue would escalate sky high and we will be all under the good grace of MS.....
Related
A week ago Brian Swetland (of the Android team) posted to the g1-hackers mailing list this juicy little nugget:
It is possible to bundle native shared libs in apks, and specific details
about how to do this in a least-likely-to-break-later way will be documented
in the forthcoming Native Development Kit (NDK).
Work is on-going to improve the platform APIs and provide more and better
access to the OS and hardware (bluetooth, improved audio, etc, etc). Future
updates will increase the surface area of the APIs.
Click to expand...
Click to collapse
Trying to get some confirmation and additional details, I checked in with android-framework and received this reply from Dave Sparks:
Yes, we're planning a native SDK. There is no official release date
yet. The initial release will probably be very limited in scope, just
enough to add some JNI helpers. As we lock down native API's, more
functionality will be added.
Click to expand...
Click to collapse
"JNI helpers" sounds a bit underwhelming, like .so libraries for optimizing inner-loops. However, this looks like a good first step toward getting applications with performance-bound modules to shine on Android. Personally I'm crossing my fingers for this to be what the Mozilla Fennec team to invest the time in porting for Android.
I'd rather see C#/.NET bindings for Android. Java blows. When I have time, I'm going to look into cross compiling mono for ARM (it's been done for ARM PCs, but not for Android yet).
Koush said:
I'd rather see C#/.NET bindings for Android. Java blows. When I have time, I'm going to look into cross compiling mono for ARM (it's been done for ARM PCs, but not for Android yet).
Click to expand...
Click to collapse
At first I thought you meant to cross-compile C# to Java bytecode to run in Dalvik. Didn't seem to make much sense since you wouldn't benefit from the .NET framework itself at all.
As for getting Mono natively on ARM, would that work for a non-root G1? If not it would be of little help for developing applications for the general non-rooted public.
Hello XDA-dev community
For the past couple of months i've been thinking about getting a Pocket PC for a new phone instead of a Symbian Nokia [ah my old 6630, may she rest in pieces...]. Anywho, I think i've decided on the HTC Touch Pro / Raphael. At ~AU$600 it's the highest I was trying not to pay (i'm not rich), however it seems to be a pretty powerful and full featured device.
I do have a few questions I hope some of the kind experts/veterans here might be able to answer for me though
1) I written a few things in Java and PHP and other even-more-basic languages, but am interested in learning a new language with hopes to create software for both Windows PC and Windows Mobile. What choices do we as end-users have here? .NET is an obvious one [I own a copy of Visual Studio 2008 Pro], but are there any other languages of note?
2) From the Raphael specs on the Wiki here, it lists it as an ARMv6 architecture-based processor. This comes from the ARM11 family, which is the successor (I think) to the XScale family (ARMv5TE). Are these ARMv6 processors backwards compatible with 'XScale accelerated' binary builds of software? I.E., a PPC application has two versions for download/purchase - a 'Generic ARM Release' and an 'XScale optimized release' - would the Raphael ARMv6-based device be compatible with these XScale-optimized binaries? Or do ARM do things differently and ARMv6 is not backwards compatible?
3) Has anybody ever heard any rumors or made any talks about porting Android to the Raphael? Just curious. I'd prefer a Windows Mobile device (not a Linux user) but I can see all this OpenSource stuff does have a future... EDIT: Nevermind, I found the page at http://wiki.xda-developers.com/index.php?pagename=RaphaelLinux
4) How does the device perform with 3D-heavy applications? Does it make use of any sort of acceleration (I assume no, not like the iPhone for example).
OK thats all... thanks a lot for your replies, if there's anything else you think is worth mentioning to a soon-to-be-first-time owner of a Windows Mobile device, please do say so Cheers.
In reply to 2) VS 2005 Pro onwards targets code at ARMv4I, basically generic ARM processors also capable of running the Thumb (16 bit) instruction set. Thumb represents a limited set of ARM 32 bit instructions coded as 16 bit instructions. It allows much smaller code sections, but with megabytes of memory available these days who cares? If you code in .NET none of this matters anyway, as the code is created as IL byte code, the .NET runtime sorts it out.
If you code in Embedded Visual C++ 3 or 4 the target chipset is ARMv4. When you use the IDE to create the code on a WinMo 5/6 machine it complains that the target machine cannot run the code. It's lying, what it really means is it does not recognize the processor class. As it is ARM 32bit code only it will work.
It is not worth targetting the code for a specific, (read non generic), ARM chipset. You are just making a rod for your own back when it won't work on something else.
Thanks for the reply stephj. There will indeed be a bit of research for me to do as to which language and/or IDE I decide to choose to train myself in then it seems. Specifically though...
stephj said:
It is not worth targetting the code for a specific, (read non generic), ARM chipset. You are just making a rod for your own back when it won't work on something else.
Click to expand...
Click to collapse
...what I was referring to is - I've seen some freeware PPC software, mainly emulators, that have two versions - a 'generic ARM' one and an 'XScale Compatible' alternative version. On the ARMv6 based phones, assuming the software was released back when XScale was the newest ARM family, would both work on the Raphael? If so, which would be faster?
Obviously though, for a developer, creating the most compatible/generic code to work on the widest range of devices is the main focus - later possibly implementing optimiziations or hacks that are specific to a certain platform - but I'm just wondering if these already built, older 'specifically optimized' builds are compatible with the succeeded chipsets.
P.S. Do you know where I could find some resources on choosing between Visual C++ or .NET? I.e. pros and cons of each?
Thanks a lot!
jonusc said:
Hello XDA-dev community
...
1) I written a few things in Java and PHP and other even-more-basic languages, but am interested in learning a new language with hopes to create software for both Windows PC and Windows Mobile. What choices do we as end-users have here? .NET is an obvious one [I own a copy of Visual Studio 2008 Pro], but are there any other languages of note?
...
Click to expand...
Click to collapse
Since you have VS2008Pro, C++/win32 if you want fast and lightweight applications
"P.S. Do you know where I could find some resources on choosing between Visual C++ or .NET? I.e. pros and cons of each?"
.net pros
easy to get something running fast even if one is a n00b
got a lot of components meaning less time to develop
can be programmed with c# and c++ and even eeeeewww basic
.net con
slow as in sloooooowww
require one to install the framework if the app
require a newer version then what ones phone came with and the framework is pretty big
and people don't seem to have success with installing it on sd cards
compact framework is also limited in features vs. .net on pc so apps don't just port always
limited in features unless one do unmanaged code
c++ pro
fast
require no extre stuff
small in size and again fast
have access to every feature in the phone
c++ con
one have to do everything and that mean msg loop
and a lot of leg work just to get a dialog with a button
steaper learning curve
more risks of mem leaking
harder to debug as stacktrace is not just there
like on .net
Very nice, thanks for the replies guys
So from what I can gather, a basic .NET application would be ideal for RAD (quick and dirty), particularly GUI-centric applications, but tend to be bulky; whereas C(++) is a more native / low-level language and is thus faster, but very hardcore as most functions need to be done from scratch.
I should have assumed it's pretty much the same as a Windows PC
What about C++ versus C#? And does VS2008 have a decent API/IDE set for mobile development i.e. does it have many libraries for C(++/#) already included or are more easily available?
Thanks again for the answers guys... it's obvious i'm keen to learn about it, but i'm a little worried that someone like me going from stuff like PHP and VB to C might be biting off more than I could chew....? Ah well if .NET is gonna cause problems down the line, then I guess I have no choice
Don't bother with the C++ version of .NET, the casts that you have to make, to get it to work makes the code very hard to read, and besides it only compiles to the IL level anyway, it's just not worth the effort.
So, under .NET use C#, or VB if you prefer, there is not much difference between them, but in my opinion, C# is a bit more elegant.
Under C++ you have the choices of WIN32, ATL (Active Template Library), or MFC (Microsoft Foundation Classes), programming models.
WIN32 is the simplist but the hardest to code, the other two add progressively more objects to make things easier, but you need to distribute the run time libraries with them. A simple WIN32 app can be distributed as a single .EXE if the DLLs it already uses are part of the CE/PPC operating system.
PS When it comes to running code compiled for a specific ARM class on your device, just give it a go. If the CPU hits an instruction it can't run, it will throw an exception and stop anyway.
stephj said:
Don't bother with the C++ version of .NET, the casts that you have to make, to get it to work makes the code very hard to read, and besides it only compiles to the IL level anyway, it's just not worth the effort.
Click to expand...
Click to collapse
Fair enough. So C++ in VS2008 is a bad idea
stephj said:
So, under .NET use C#, or VB if you prefer, there is not much difference between them, but in my opinion, C# is a bit more elegant.
Click to expand...
Click to collapse
I thought VB was dead? Wasn't VB6 the last one they made? Or is VB just what they call generic/common .NET Framework apps? Anyway, yeah i've read good things about C#, especially compared to .NET in general. EDIT: Oh, .NET is not the program language but VB is *facepalm* I get it, nevermind
stephj said:
Under C++ you have the choices of WIN32, ATL (Active Template Library), or MFC (Microsoft Foundation Classes), programming models.
WIN32 is the simplist but the hardest to code, the other two add progressively more objects to make things easier, but you need to distribute the run time libraries with them. A simple WIN32 app can be distributed as a single .EXE if the DLLs it already uses are part of the CE/PPC operating system.
Click to expand...
Click to collapse
Ah, same as a Windows PC. That makes sense.
Thanks for the answers I think I might take a look at C sharp.
C++ in VS2008 is fine, use the smart device WIN32 ,ATL, or MFC models take your pick.
Sorry my mistake, the C++ .NET version is not available for smart devices. Its the three models above only.
After additional research, I don't really want to be tied down with the proprietary C# system. So is VS2008 a decent IDE for WIN32 C++ development on Windows Mobile? Or are there better alternatives?
VS 2005/2008 Pro takes some beating. After you have installed about 3 CD's worth of MSDN libraries all the help is on tap. The IDE also looks at MSDN online if you have an internet connection to see if there are any forums on the same topic you are inquiring about.
The code is generated as ARMv4I and can be tested/debugged on the images provided by the WinMo 5 or 6 SDK. The emulators are that good you only put it on your phone when you have tested it to death on the emulator.
EVC 3 and 4 use a previous method where the emulators run a x86 version of the code. I still use EVC 4 for code that has to run on anything, Windows Mobile 2003 for example.
It's all pretty proprietory, when it comes down to it, but I guess we're stuck with it.
Are there any developers using Mono for development? Looking for some feedback on it...
Galaxy Red - DJ05 - Voodoo5 using XDA app
Mono with JIT enabled won't work on the Fascinate (or any Galaxy S device) until 2.2 is rolled out. Of particular note, this causes many problems with games authored in Unity3D. Cite: h t t p :// forum.unity3d.com/threads/62410-Galuxy-S-support#post409742
If I was drinking something I would have spit it out when I read the title of this post.
Sent from my SCH-I500 using XDA App
I wonder if some of the new Kernels that are being created are having the same issue ... but Unity isn't using Mono from my quick skim of the site. And from my reading, mono has its own JIT runtime. It would be interesting to know if anyone has used it yet.
http://monodroid.net
Uhhh...no
Lol...the CORRECT answer is why the f*ck would you want to? C# is M$ lame attempt to make a proprietary language. Why did the world need C# when Java is a perfectly good language? It didn't. .Net is garbage unless you want to write windows software, but that's lame....just sayin .
jfelectron said:
.Net is garbage unless you want to write windows software
Click to expand...
Click to collapse
Wait, you mean it's only useful for the exact thing it's ****ing intended for? Shocking.
jfelectron said:
Lol...the CORRECT answer is why the f*ck would you want to? C# is M$ lame attempt to make a proprietary language. Why did the world need C# when Java is a perfectly good language? It didn't. .Net is garbage unless you want to write windows software, but that's lame....just sayin .
Click to expand...
Click to collapse
There is just so much that can be gleaned from this post...
1) Obviously you've never actually tried developing in C#, because it's a complete pleasure to work with. Once you've used Visual Studio, it literally pains you to use anything else, because no other IDE comes close. I've used them all.
2) The entire point of this post is that .NET is not useless; The specification for .NET is completely open. And .NET is apparently good enough that people devoted their free time to develop Mono, thus enabling .NET development for Linux platforms. There's also Silverlight and ASP.NET which enable development of Web applications.
3) M$? Seriously? I remember back when the internet was invented and people thought that was funny. Now it's just kind of ignorant.
4) Refusing to open yourself up to multiple development technologies is a great way to find yourself irrelevant in a short amount of time.
5) Obvious troll is obvious. Sorry for feeding him.
bmxdad said:
I wonder if some of the new Kernels that are being created are having the same issue ... but Unity isn't using Mono from my quick skim of the site. And from my reading, mono has its own JIT runtime. It would be interesting to know if anyone has used it yet.
Click to expand...
Click to collapse
As a Unity3D dev, I can assure you that Unity3D is indeed powered by Mono. (With all the C# code I write every day it better be! )
That said: the 2.1-based kernels that are rolling out for the Fascinate do indeed suffer from this effect. In fact, Kaoscinate is unable to use Android's built in JIT interpreter due to this very effect. I was trying briefly to help him trace down the problem, but didn't have enough time to contribute. Maybe after our next game ships.
konistehrad , thanks for the reply.
I'm one of those stupid C# / Asp.Net developers, so its nice to know I'm not alone.
To jfelectron ... I wonder what the new windows phone is using .. O yea ... .Net and C# .... Go figure ...
bmxdad said:
I wonder if some of the new Kernels that are being created are having the same issue ... but Unity isn't using Mono from my quick skim of the site. And from my reading, mono has its own JIT runtime. It would be interesting to know if anyone has used it yet.
http://monodroid.net
Click to expand...
Click to collapse
In addition to Monodroid(which will require you pay a fairly hefty license fee for an independent developer) there is also Koush working on his own free open source port. This can be found here: http://www.koushikdutta.com/search/label/Mono
I'm not sure what all works in either implementation but I don't think either of them is ready for prime time yet.
I'll be in heaven when it is as I currently develop in VB.Net and swapping to eclipse is a nightmare, not having the .net framework is horrible as well because now I have to reinvent the wheel for dozens of objects.
Haha, I see the C# harpies have descended to inform us how wonderful their language is. It's not a question of how nice it is or isn't to use, it's a question of why fragment the development landscape with ANOTHER systems programming language that is a pretty blatant copy of Java. I don't think C# is fundamentally better than Java, so it just fragments minds away from common development goals and creates two independent efforts. This hurts everyone. It's fine to take an existing Mono/C# codebase and want to run it on Android. I just don't see why you would want to use something like MonoDroid to develop from scratch. The best apps will ALWAYS use the native APIs, there is just no reasonable way a secondary set of APIs that wrap native APIs will provide the same experience. The Evernote people were just talking about this, they have development teams for each platform, they don't look for write once run everywhere solutions because at the end of the day these deliver subpar experiences. If you don't know Java and Android APIs then learn them. Same for iOS. I'd do the same for WP7...that is if I wanted to work for a I decide the UI for you overlord.
I'm pretty sure that everyone participating constructively in this thread has mentioned that they're currently a .NET developer who has code written in VB/C#. It surprises me how much flak this thread is attracting when we're discussing tools and libraries that allow us to effectively and comfortably develop more software for the Android platform.
I develop mostly in Java, but language wise C# is way better. Java 7 still isn't getting lambdas, an when it does it's going to be really kludgy. Java language development has kind of died. Scala is pretty cool though. And Visual Studio is significantly better than eclipse, although IDEA is quite good too. I do like eclipse but it's just not as nice to work with and slower.
Yes ... C# is a redo of Java, kinda, but they moved it beyond what the Java was ... ***** about about MS all you want, they do have some good stuff. As for the API's, they're doors for us to use ... it all gets crunched down to 1's and 0's, so who cares how it gets there. Simplistic I know, but I'm sure you get what I'm saying.
They're already porting .net to the iPhone, so I was just wondering if anyone was interested ... didn't know I would touch a few nerves
jfelectron said:
Haha, I see the C# harpies have descended to inform us how wonderful their language is. It's not a question of how nice it is or isn't to use, it's a question of why fragment the development landscape with ANOTHER systems programming language that is a pretty blatant copy of Java. I don't think C# is fundamentally better than Java, so it just fragments minds away from common development goals and creates two independent efforts. This hurts everyone. It's fine to take an existing Mono/C# codebase and want to run it on Android. I just don't see why you would want to use something like MonoDroid to develop from scratch. The best apps will ALWAYS use the native APIs, there is just no reasonable way a secondary set of APIs that wrap native APIs will provide the same experience. The Evernote people were just talking about this, they have development teams for each platform, they don't look for write once run everywhere solutions because at the end of the day these deliver subpar experiences. If you don't know Java and Android APIs then learn them. Same for iOS. I'd do the same for WP7...that is if I wanted to work for a I decide the UI for you overlord.
Click to expand...
Click to collapse
By your logic why did anyone ever move away from programming in machine code? It was the purest and fastest executing code ever!
jfelectron said:
Haha, I see the C# harpies have descended to inform us how wonderful their language is. It's not a question of how nice it is or isn't to use, it's a question of why fragment the development landscape with ANOTHER systems programming language that is a pretty blatant copy of Java. I don't think C# is fundamentally better than Java, so it just fragments minds
Click to expand...
Click to collapse
Well, I didn't like J++. I felt the same way about C# until I did a test project with SharpDevelop. It really is a pleasure to use, most especially when coming from Java. Both languages also read very similarly and are easy to bounce between. In terms of fragmentation, it tends to come with the territory and might as well be accepted.
Learning something new isn't necessarily evil.
MS does decent development tools. CLR is open and in many aspects better than JVM. C# as language progressing way faster than java and puts it to shame way to often.
Read here from Koush. I guess that name rings a bell?
So, why not? Competition is great!
Unity and Mono
As a long time .Net developer I was drawn to Unity with significant suspicion of the Mono framework, I had always assumed that mono was going to be a slower, poor cousin of the official framework, but for my needs it has proved problem free on a range of Android devices. I chose Unity and Mono as a framework for game dev on android because I had a significant amount of code in c# from Windows Mobile 6 dev back in the day, and Unity had the 3d rendering capabilities I needed.
I'm using Unity game engine that uses Mono. C# is a great language that addresses many shortcomings in C++ and Java. However it is not possible to do everything in the mono-runtime on Android. C# to Java bridge is pain in the ass to implement.
Lets be realistic...
First came C and then that evolved to C++. Today the vast majority of operating systems are written in either C or C++. I have NO idea what Object C is (iOS) but I am sure it is evolved from one of these as well.
Java was an attempt to produce a machine generic programming language where the code runs on any machine. This language was based on C (C++?) and as such is very similar to C(c++) in many areas. However to reach this generic level all compiled code is compiled to a machine independent code and run on an interpreter. This code then is slightly slower than if the same program was written in C or C++. But can be run on MANY machines without porting which is not the case with C or C++.
C# was intended to be an extension of C++. After MS's failed attempt at J they put their energy behind C#. C# has now become a very viable C++ replacement on MS machines to a point it doesn't make much sense to write in anything else unless you are writing system level code for which C++ or C makes sense. Somewhere along the failure with MS's attempt at a Java clone they decided to make .NET a "standard" library which allowed Mono to become reality. C# has evolved over time to incorporate many of the great ideas that Java has included but have come up with many new ideas of their own. Realistically it comes down to which do you feel more comfortable programming in. Java or C#. C# with it's .Net libraries can be much easier to write for than Java simply because of the Libraries available.
On another note, I saw a product recently that looks very promising. dot42 is a product that appears to be looking to make a compiled C# program for Android. This by passes the need for the code interpreter and could potentially be as fast as C++ or C code for running on Android.
Qt apps work on WinCE. If WP7 is built on top of WinCE, why would Qt apps not be allowed on Win7?
I'm just trying to make sense of it here. Is it an artificial Microsoft restriction for their platform?
Because third-party apps are managed in .NET compact framework. Qt is a C++ framework and thus unmanaged. This is a smart move by MS as it increases system stability and enhances user experience.
leonard2010 said:
Because third-party apps are managed in .NET compact framework. Qt is a C++ framework and thus unmanaged. This is a smart move by MS as it increases system stability and enhances user experience.
Click to expand...
Click to collapse
If that's the lame reason they give for it not being doable then I will just need to hack Qt onto it. Dumbest move in Nokia's history!
discourse said:
If that's the lame reason they give for it not being doable then I will just need to hack Qt onto it. Dumbest move in Nokia's history!
Click to expand...
Click to collapse
givin that one of the main reasons that windows mobile 6 and for that matter windows desktop can be unstable is poor quality 3rd party programs i think the move was a very good one, forcing programers to stick to strict controls means they have to develop good software, also givin MS got most of the flak for these crap programs i think it was a good move on their part
at the cost of lower performance and code easily being stolen. MS don't care about developers. Hacking a silverlight app onto CE and calling it a new OS was a terrible shortcut and will cost them in the long run.
It's a matter of time until Microsoft releases a Native Development Kit. In a recent interview Brad Watson from Windows Phone 7 Development team said:
Brad Watson said:
8) What about native SDK? Android got theirs later, should we expect Microsoft to provide a native SDK also, or just forget about it ?
BLW – if by native SDK, you are asking will we allow anyone to run C or C++ unmanaged code on the device, the answer is “not now.” Our primary concern is ensuring that there is a fantastic customer experience on the phone. We recently announced that we have satisfaction rates for the phone at 93%. That’s amazing. We attribute at least some of that to the fact that customers can buy apps that they don’t have to worry will trash their phones, and they don’t have to worry because of the managed platform.
Over time we will certainly relax certain restrictions on the phone, but we cannot compromise the integrity of the phone experience or the marketplace experience.
Click to expand...
Click to collapse
Microsoft has to release a NDK because the competition has a NDK. Hopefully the competition will have more and more NDK applications (Firefox, Skype) which would make them more appealing to the user.
When such a NDK will be present, Qt (at least lighthouse) will be ported to Windows Phone 7
indiekiduk said:
at the cost of lower performance and code easily being stolen. MS don't care about developers. Hacking a silverlight app onto CE and calling it a new OS was a terrible shortcut and will cost them in the long run.
Click to expand...
Click to collapse
While I agree it's far from the entirely new OS we were promised I very much doubt it will cost them in the long run. They have provided a OS experience that is second to none, this is all because of the limitations they have put in place.
I would expect the platform to open up somewhat for the next wave of [higher-end] devices giving existing users an iOS-like experience where you can certainly upgrade to utilize multitasking and all that jazz but it will cost you some of the current smoothness of the UX.
The fact that .Net assemblies are easily decompiled into fully working Visual Studio projects hasn't been a huge problem on the desktop and as obfuscating tools become better and better I see no reason why it should lead to a problem on the mobile platform either. Looking thru some of the recent marketplace apps they are all but decipherable for the average developer. Also, as more and more processing moves to the cloud it becomes less and less of a problem - most startups are neither willing not capable of mirroring your closed-source/protected backend services.
The missing NDK is not the sole reason. The OS IS different. As others have pointed out, quite some GDI stuff is just not there, or doesn't do anything. So, Qt would probably just not start. And as there will never be (as MS said) (official) OpenGL drivers on WP7 you can't switch the backend.
And there has to be already some kind of NDK, as e.g. Navigon Select is a semi-native application and it is not created by OEMs.
Hades32 said:
The missing NDK is not the sole reason. The OS IS different. As others have pointed out, quite some GDI stuff is just not there, or doesn't do anything. So, Qt would probably just not start. And as there will never be (as MS said) (official) OpenGL drivers on WP7 you can't switch the backend.
And there has to be already some kind of NDK, as e.g. Navigon Select is a semi-native application and it is not created by OEMs.
Click to expand...
Click to collapse
They say IE9 will have accelerated graphics support, which I presume is based on Direct3D. For WinPhone7 Qt needs a Direct3D backend, which should work on all WinPhone7 devices.
Qt should have the same capabilities of IE9, which AFAIK is not written in managed code.
Qt could also use Google's angleproject which should help in translating "OpenGL ES 2.0 API calls to DirectX 9 API calls".
Since this is a discussion thread, this is going in WP7 General.
~~Tito~~
It will simply not happen. It's that easy. (Not w/o homebrew that is)
By not allowing Qt on WP7, Microsoft and Nokia have just shot themselves in the foot. Instead of offering a smooth migration path for the millions of Nokia users and devs, they've basically alienated the entire community. WP7 is also losing out on thousands of high quality applications like Angry Birds for Symbian^3 and MeeGo that was developed using Nokia's Qt SDK. http://www.youtube.com/watch?v=mS1dwYmKMjs
discourse said:
If that's the lame reason they give for it not being doable then I will just need to hack Qt onto it. Dumbest move in Nokia's history!
Click to expand...
Click to collapse
Good luck hacking Qt into it.
Using .NET also increases Security.
WP7 doens't need Qt, and Microsoft should do whatever it can to stop Nokia from putting Qt in WP7.
Those reasons aren't lame, unless you're missing the portion of you brain that controls logic.
discourse said:
By not allowing Qt on WP7, Microsoft and Nokia have just shot themselves in the foot. Instead of offering a smooth migration path for the millions of Nokia users and devs, they've basically alienated the entire community. WP7 is also losing out on thousands of high quality applications like Angry Birds for Symbian^3 and MeeGo that was developed using Nokia's Qt SDK. http://www.youtube.com/watch?v=mS1dwYmKMjs
Click to expand...
Click to collapse
It's much easier to develop for WP7 than it is for Symbian/Qt. I don't think the developers will have much of an issue with it. They didn't shoot themselves in the foot, you people just AREN'T developers, and don't understand it.
You know you're talking to clueless people when Angry Birds is the epitome o fa high quality application to them.
Cause you cannot develop Angry Birds in XNA, and you seriously believe porting Angry Birds to WP7 will involve nothing other than a few code line changes and a recompilation?
Give me a break.
I wish Microsoft had partnered with SE or something. Nokia's fanbase are more bat**** crazy over these pet projects than the Android people.
Qt will continue to be the development framework for Symbian and Nokia will use Symbian for further devices; continuing to develop strategic applications in Qt for Symbian platform and encouraging application developers to do the same. With 200 million users worldwide and Nokia planning to sell around 150 million more Symbian devices, Symbian still offers unparalleled geographical scale for developers.
Extending the scope of Qt further will be our first MeeGo-related open source device, which we plan to ship later this year. Though our plans for MeeGo have been adapted in light of our planned partnership with Microsoft, that device will be compatible with applications developed within the Qt framework and so give Qt developers a further device to target.
The Mono project is about the only group of people actively talking up .NET and developing it, but in an interview Miguel de Icaza has admitted that Moonlight, the Mono version of Silverlight isn't worth the effort any more.
Microsoft may be reluctant to admit that Silverlight is dead - even though the writing on the wall is so big and clear that you can't miss it - but the Mono project doesn't have to pretend. In fact, because it has limited resources, what the Mono project works on is almost a better guide to what the future of .NET might hold.
In an interesting interview with InfoQ's Jonathan Allen, Miguel de Icaza admits that the Mono project has abandoned Moonlight. When asked why the answer was revealing:
"Silverlight has not gained much adoption on the web, so it did not become the must-have technology that I thought would have to become.
And Microsoft added artificial restrictions to Silverlight that made it useless for desktop programming.
These days we no longer believe that Silverlight is a suitable platform for write-once-run-anywhere technology, there are just too many limitations for it to be useful. These days we believe that in the C# world the best option is to split the code along the lines of the presentation layer. The user would reuse a core part of their application across all platforms, and write a new UI specifically for each platform they target: iOS with MonoTouch, Android with MonoDroid, Mac with MonoMac, Windows with WPF or Winforms or Mac, Web with ASP.NET and Windows and Linux with Gtk
It is not write-once-run-everywhere, but the result are applications that can exploit the native facilities and create native experiences on each platform."
http://www.i-programmer.info/news/89-net/4282-mono-kills-open-source-silverlight.html
Not Surprising
Not too surprised and probably a smart move by the mono team since Microsoft is essentially abandoning silverlight. Why would mono continue to work on an open silverlight implementation if silverlight itself is going to be dropped?