Mono for Android - Frameworks

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.

Related

Language Advice

First off I’d like to acknowledge the many of you for really opening up my eyes to what these awesome devices can do. It really still does amaze me how some of you folks here at XDA can really create some truly incredible applications and programs. In fact many of you have inspired me to attempt to learn a little bit about programming myself and I have a few questions from the pros in here as to how I should start.
I do have some very basic, mostly self taught skills with SQL, Visual Basic 6.0, tcl (tool command language), UNIX, and a few other types of software but I’m not very skilled at all in any of them. I’m basically a small step above a ‘user’ but I learn fast, this stuff seems to come easily to me, and I have decent instincts on what to NOT try without consultation or research.
Anyway I’d like to become less dangerous (or more depending on how you look at it) and really learn one language on my own at first then maybe take some real classes. I’d like to gear or lean my learning towards a language that I can use to create PPC programs since that’s my main interest these days but I’m getting a little bit of conflicting info\recommendations. I’m being told to start playing with C and that I can then pretty much learn anything after that. I have someone else saying to just skip the C and start with C++ which is a little easier and has more ‘libraries’ so it isn’t as tedious to do certain things. I then have a guy who knows me and my capabilities somewhat well and said I should just jump right into .Net and the rest will fall into place.
So where would you start if you were basically a beginner and wanted to jump right in? I’d like to minimize the ‘curve’ on learning a new language and focus on one that will get me up and running and having fun fairly quickly and not have to learn one to learn another then a third which will get me where I want to be. I really appreciate all of your input in advance guys and gals!!
Dave
.Net is a great platform but you have to remember it is dependant on the .net framework. For this reason some people to use other languages such as c or c++
joel2009 said:
.Net is a great platform but you have to remember it is dependant on the .net framework. For this reason some people to use other languages such as c or c++
Click to expand...
Click to collapse
Thanks joel2009!! Looks like C++ is the way I'm going to go. I appreciate your help!!
Dave
You makes your choice........
If you need to use all the fancy .NET objects then it is C# or VB only. Don't bother with the .NET version of C++, as the type castings you have to use to get it to work makes the code hideously unreadable. Dont forget that the target version of the .NET runtime has to match that of the PPC it going to run on. What version is installed on your PPC ? Run \WINDOWS\CGACUTIL.EXE and it will cough up the results.
If it is a simple application use Embedded C++ and stick to the old WIN32 programming model. It is a bit of a pain to master, but your application will run like a bat out of hell. Respond to the WM_xxxxxxx messages sent by the OS to your app, and use the primitive HDC graphics routines to draw to the screen. It's a bit old hat these days but the compiled .EXE will run on nearly any PPC. (ARM compatable)

What language would i have to learn for Android?

If i wanted to help dev for this xda scene and android in general, what language (programming) should i used first?
I know android is in C and java, but just wondering, i really wanna get started
I'm very interested in some basic knowledge as well. I've done some very basic C++ stuff years back, but know nothing of linux. I'd love to star this as a hobby and if nothing more be able to try to read the code and understand what others are making. Anyone have any good links to some starter guides?
I believe it Java
Beastclaw said:
I believe it Java
Click to expand...
Click to collapse
for linux? arent kernels and stuff based in c?
Depends on what you're doing, apps and such are done in Java and XML, but the framework for android is done in C/C++ (best I can tell, I've never made mods to a rom or anything, maybe when I have more time in a couple of weeks).
For C, I like King's book (and it seems to be a popular one):
http://knking.com/books/c/
The first edition can frequently be found for <$10 if you look enough, and needless to say that the basic concepts of the C language haven't changed enough (at all?) to warrant paying SO MUCH MORE for the 2nd edition.
For Java, well I have a couple of books but neither are great. Somebody else probably knows of a book or site. Once you pick up basic Java, look at Google's guides to programming for Android, it contains the little details you'll need to make the code do what you want in the phone.
jasoninator said:
Depends on what you're doing, apps and such are done in Java and XML, but the framework for android is done in C/C++ (best I can tell, I've never made mods to a rom or anything, maybe when I have more time in a couple of weeks).
For C, I like King's book (and it seems to be a popular one):
http://knking.com/books/c/
The first edition can frequently be found for <$10 if you look enough, and needless to say that the basic concepts of the C language haven't changed enough (at all?) to warrant paying SO MUCH MORE for the 2nd edition.
For Java, well I have a couple of books but neither are great. Somebody else probably knows of a book or site. Once you pick up basic Java, look at Google's guides to programming for Android, it contains the little details you'll need to make the code do what you want in the phone.
Click to expand...
Click to collapse
Thanks a lot for the reply! I will look into some book whenever I can, for now, its Google
Sent from my ADR6400L using XDA Premium App
I just started working on programming apps for the droid a few nights ago. I started out with:
http://www.makeuseof.com/tag/write-google-android-application/
After that I went to the Android Tutorials located at:
http://developer.android.com/resources/browser.html?tag=tutorial
Yesterday I purchased Beginning Android Application Development. This has been a good book so far, only on chapter 2 but I've learned a few things in just the HelloWorld app that I didn't learn with the Google Tutorials.
Today I ordered Java Programming 24 Hour Trainer. I am having a hard time finding a good starting Java book but this looks to be the best I could find. I haven't had any hands on with this book yet so I can't give ya my thoughts on this one yet.
Hopefully this helps ya out a little. Good luck!
If you're looking to do native applications that anyone can run, Java with the android SDK is what you need to learn. However, technically you can program in about any language on android, but it generally requires extra installing (which many would consider bloat). Easy to install languages are ones like python http://pygame.renpy.org/. http://news.ycombinator.com/item?id=2476649 and http://code.google.com/p/android-scripting/wiki/SharingScripts. Since android is linux, you can put pretty much anything you want on there as long as you can get past compiling things with the ARM toolchain. You could even stick a small web server on it if you really wanted like nginx or lighttpd.
You could do quite a bit in a web "application" as well if you have hosting somewhere. The native browser and ones like opera and firefox can render just about any sort of ajax initiated effect. The advantage to doing this would allowing what you do to be OS neutral, so it could run on any device, not just android. Obviously, the drawback would be performance.
There is another project besides the python one above for additional languages here http://code.google.com/p/android-scripting/. This supports python, perl, beanshell, bash and lua (as well as contains interpreters for testing code in all of them).
If you're looking to do development for those of us that have rooted and such, C would be the better option (assuming you're interested in kernel and android source code development).
The community (free) version of Intellij IDEA IDE has pretty good android development support (as well is general java support) and testing (junit, phpunit, etc). They're running a 40% off sale currently as well to buy the full IDE (which supports many other programming languages like php, python, ruby, javascript, etc).
Well worth the money imho; I used netbeans, eclipse (which also supports android development through a plugin) and several other IDEs before it and would never go back. They actually care and reply to bug reports you file as well. I've submitted 2 in the past few months and both have either been partially fixed or will be fixed in the next version. They also give roadmaps of what will be in upcoming versions and are very open about software issues and public relations. You'd think such things would be normal for professional apps, but you would be shocked.
http://www.jetbrains.com/idea/
If you're looking for decent books, usually the O'Reilly ones are good (the books with the animals on the front) http://oreilly.com/store/. O'reilly has at least one book that's recent on Android development. Books published by Apress tend to be pretty good as well.
the android kernel is in C, so you would need to know C++ to play aroudn with ROMs and kernels. to just write an app, you only need to know java.
i just wrote my first app last year, and even made my first kernel to go along with it. granted the kernel i only changed one file, a couple hunder lines of new code. and the app was a great starter project for anyone in this position, had a few different semi easy activities, a 4 tabbed app, to show and learn how it all works together.
great experience, just hit me up if you have specific questions.

Developers:Java vs C++?

Hey everybody
I've been thinking about taking a computer programming class this semester to help start my knowledge in developing apps for android. My question, is which language tool would be the most helpful and why? Java, or C++? Right now, the college I am thinking about taking it through only has Java as an option (I want to take it online). I'm at the point in my college career where I need to decide a major because I have all of my general ed's out of the way, and I think taking a cheap class that might benefit me in multiple ways might be a good thing to do. Thanks in advance!
I'm new to programming but I do know a little bit I guess...someone may have a better answer. As I understand it, Java is based off C++ and based off of C. So there won't be much of a difference between the two, but either you will need to know some amount of C/C++ for the Java course, or they will teach you enough C/C++ for you to understand Java. I don't know how important it is to know all of the basics though, since the common languages today have much easier ways of coding basic things.
If it were my choice, I would have to decide if I wanted to learn the basics of coding, and then learn all the shortcuts that today's SDK's provide, or just learn everything current, and have a harder time understand how some things work.
Ironically, I've been learning Objective-C, despite owning only Android since the G1 first came out. It's my first programming language ever (although I do have background in HTML/CSS and what not, but that doesn't really count). I've got a good grasp on how everything works, but I never had quite the understanding of how everything worked until I started learning more about basic C. It may be the same for Java, in fact I imagine it is to some degree.
My opinion, take C/C++, and just learn a new syntax later.
Thanks for the reply! I will plan on taking C/C++, but that brings my to my next question: C or C++? I'm assuming C++ is just advanced C, so it would make sense to take C first, correct? Or am I missing something?
I guess you kind of answered my question in your post already . Looks like basic C should be the way to go for starters!
If your ultimate goal is to use C++ and/or Java, I wouldn't recommend learning C first. Java and C++ are object oriented languages, and C is not. If the first language you learn is C then it will simply teach you an approach that you'll have to 'unlearn' when you start on one of the other languages. A long time ago, C was often taught as a stepping stone to C++, but these days it is regarded as a bad idea that makes it harder to learn an OO language later.
I also don't see any benefit in learning C++ before Java, unless you really want to learn C++ for its own sake. Java is probably easier to learn than C++ so, if your real goal is to be a Java programmer, I'd start with Java.
Please don't get the impression that I've got anything against C or C++ by the way. I've used all the languages mentioned (as well as C#) and, if anything, prefer to use C++.
so whats the advantage of becoming C++ programmer over Java Programmer and vise versa ?
how about Visual basic?
arvinghost said:
so whats the advantage of becoming C++ programmer over Java Programmer and vise versa ?
how about Visual basic?
Click to expand...
Click to collapse
The platforms that are used by each. Java is a very versatile language, and is used in almost all mobile platforms. C++ is mainly used for desktop and stand-alone applications.
Truthfully, it doesn't matter which you learn first. The concepts and theories are the same in both, the only thing you have to re-learn is the syntax and specifics.
That being said, don't learn visual basic first, it is vastly different from the other two.
arvinghost said:
so whats the advantage of becoming C++ programmer over Java Programmer and vise versa ?
how about Visual basic?
Click to expand...
Click to collapse
I'm sure that Google will provide lots of info on Java vs C++ comparisons, so I'll only mention a couple of things! C++ can be more powerful and versatile, but is easier to screw up. It also provides better performance (since it is a compiled language) but, these days, the speed of the code is often less important than the speed of data access or comms. Both languages are theoretically cross platform, but in practice Java achieves that better than C++ (usually). Java has a better set of standard libraries - in C++ the libraries for things like user interfaces are usually platform-specific. On the other hand, C++ (and C#) gives you access to Microsoft's Visual Studio IDE and the .NET libraries, which are still by far the best IMHO although, clearly, are pretty much restricted to Windows development.
In more pragmatic terms, I've found both languages to be in more or less the same demand by employers. There's a lot of old legacy C++ code out there, however, so I'd say that, as a Java programmer, you've a better chance of working on nice new projects rather than maintaining ancient software! To be honest, I don't know which way I'd go if I was starting out now - sorry
Oh, and I can't think of a single reason to learn Visual Basic - it's totally different to everything else, not as powerful, and not much easier to learn than the vastly superior C# or Java.
Yea, gcogger has better answers than I do Hope I helped at all. Thanks gcogger
Honestly I prefer straight C for a lot of things because it has the most strict code. It is so strict that code in and of itself is easier to follow. C++ being a superset of C is nice, and of course it adds OOP functionality. I just think C++ can get a bit too confusing sometimes, and I am always learning about new ways to do things that I never knew before.
Java is quite the opposite with syntax and garbage collection (which I am generally not a fan of outside of scripting languages). It is easier to use OOP in Java than C++ sometimes you forget about performance that way. You start initialising objects left and right, forgetting about their overhead and faster, more creative ways to do things.

Best Programming Language to learn for beginners?

Alright before you all have a go on him, I know this isn't the right place to post neither this website but I am active in this site so don't want to create account on another site just to ask this question. I am student and n00b in terms of Programming. I am thinking of joining extra classes in summer vacation. Of course I want to become software engineer. I want to know which will be best language for me to start. C, C++ or dot net? Visual basic looks easy to use but not sure if it has much value in future. I am confused so thought I may get help from these experienced developers. I am in the last year of High School btw.
I am n00b so don't go hard on me If I said anything stupid
friend863 said:
Alright before you all have a go on him, I know this isn't the right place to post neither this website but I am active in this site so don't want to create account on another site just to ask this question. I am student and n00b in terms of Programming. I am thinking of joining extra classes in summer vacation. Of course I want to become software engineer. I want to know which will be best language for me to start. C, C++ or dot net? Visual basic looks easy to use but not sure if it has much value in future. I am confused so thought I may get help from these experienced developers. I am in the last year of High School btw.
I am n00b so don't go hard on me If I said anything stupid
Click to expand...
Click to collapse
Studying C/C++ will be kick start in programming. For future scope, studying Java is good, because Java has its own different fields like Standalone application, web application, and Android of course.
If you're opting for .NET, be sure you're learning the latest version, as .NET versions change from time to time.
And also there are several modern languages like Python, Ruby, Perl etc. Don't know much about its scope.
But everything just emerged from C or Java. So first making a base is what it matters.
EDIT: Don't study Visual Basic as a separate Course, if its included in .NET then its fine. As VB is somewhat a dead technology, most companies are not using it. Studying Silverlight with .NET would be a good choice though.
The best language for me and easy to learn is python programming even noob can create thier own project or apps. bcoz it is embedable in all apps u can understand even if u r n0t a programmer..
Actually any programming language is good to get to know programming in general and to exercise your brain to think/work this way.. oncve you advance a little bit, you will also have the knowledge to know which language to go specific on..
because of my studies, I started with assembler and C, C++, Java, C#.
it depends on what you want to do.
you want to program Android application, use Java, Windows Phone use C#...
i neglected programming on my studies.. i was too lazy. but now i want to be a developer somehow..
so Java for Android applications?
so how about Developing a Rom/Kernel?
Python will be easiest and once you know how to program in one language all others will be much easier to learn.
Sent from my HTC Vision using XDA
Thanks guys, looking forward to it.
The first programing language I used was C.
I've started with C++. But You should try .NET at the beggining. It's so simple. Almost drag&drop method. I used it to create a lot of code generators for my game and other projects.
You should also try AutoIt. Maybe quite harder, but still useable.
I would say, start either with Java or Python.
Why? No specific reason, but they are easy to learn and have a wide area where they can be used later.
I would start with ActionScript 3.0 and/or Java. The first one is the easiest and most fun to program in
If anyone is interested in applications for Android, you should try App Inventor.
http://www.appinventor.mit.edu/
You should try python, becase as others say, it's pretty easy, and if you want to be more motivated, try udacity.com. This is university that operate entirely online. You can view lectures, do quizes, there are also final exams. They start 101 Computer Science (where you learn basics) at 16 april. And guess what, they use python! Even on harder classes.
I wouldn't encourage starting with C or C++. Java and C# are a bit higher level languages and thererfore help you get started faster and let you consentrate on the things that matter most. I would prefer C# over Java as Java has gotten a bit messy in some places, has some gaps in it's standard library, and lacks in standard user interface tools.
Another option to C# would be JavaScript, CSS, and HTML, but the compiler in C# can help you by pointing out mistakes that JavaScript tools can not. Also, if you go this route, don't try to make your code run well on many browsers as that will only cause extra headiche while you are trying to learn the basics. Actually, if you want to use JavaScript over C#, Windows 8 WinRT programming could be a good place to look at. However, it's still in development and lacks in documentation and learning materials when compared to more mature technologies.
If u want work in buisness then go Java. But its very expensive to use because it needs large resources. If u want go for new language try Scala.
JAVA and C++ are the most widely used languages ​​in the world of work today.
But if you want to do web, starts with PHP. It's fairly simple to understand and you can quickly get to Object Oriented concepts, and use simple Design Patterns.

A C# Based Android

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

Categories

Resources