Showing posts with label Java. Show all posts
Showing posts with label Java. Show all posts

Friday, September 2, 2011

Mono Touch and Mono for Android

I am supposed to write something on Linguistics now, but my plans fail every time when I come to a topic which love somehow. Mono is a one of the topics I always love to explore and talk about. It is the only thing which links me to programming on Linux because I can use my limited C# programming skills in MonoDevelop using Mono. It is a great application, and despite criticism from certain open source 'lovers', the merger of original company to Novell and now separation as Xamarin, this project kept on going. I am in love of this project and C#.

Once upon a time Mono was considered a rival of Java and other Virtual Machine based programming languages in the open source world. It was debated, re-debated and criticized. I remember the time when Ubuntu was even criticized on including mono packages in default installation CD. But those were simpler times. There were no 'intruders' in Adam's Heaven, there were no Tablets and so called touch devices. There was no Android. There was no hype to buy iPads, ThinkPads, TouchPads and like. So, all that people talked about was how much C# has been implemented by Mono, how much is there chance of Microsoft suing Novell over its patents regarding C#, how MoonLight is gonna fail, what kind of new applications are built on Mono lately, and whether Linux distros should adopt F-Spot, Banshee etc etc. The life was simpler at that time.

And now, when market is flooded by touch devices and people are mad to have one. There are new platforms and new software development kits. iOS is providing and promoting Objective C on its own SDK, Android is promoting its own SDK. Although Windows Phone is out there, but its only on 1% devices still in US (as I was reading somewhere today). Its true as far as Windows Phone is alive C# is alive (somehow). The libraries may change, names may vary whether it is Windows Presentation Foundation or SilverLight but the underlying language syntax would remain same. But this is about Windows world. What about Mono and Linux? As far as I know, Mono could never be a main stream application development framework in Linux world. It was appreciated by many, it was used by many, it produced very good and popular applications e.g. Banshee (I really liked this elegant media player), but the fact is that (for desktop users at least) applications written in Python or other such languages keep on appearing more often as compared to Mono and C# based applications. So it was natural to move towards touch devices for Mono to create its existence in a wider space.

There were other reasons as well. Mono always tried to target those developers who had C# skills and now wanted to create enterprise or other applications on other platforms e.g. Mac, Linux. Mono promised to provide support for porting existing .Net applications, to develop new ones, and to provide commercial support for Suse Linux Enterprise. The same theme was carried forward when Mono moved to Mono Touch. The idea is fairly simple, as the website also states that "use existing skills to create native iOS applications". They had good experience in joining C code of GTK with C# code of Mono to create GTK#, and joining other Gnome APIs to C# Mono framework. They've used the expertise to link Objective-C to existing Mono framework. You write in C# but the code generation would be in Objective-C. That's very cool idea, you do not have to re-learn Objective-C and a hell lot of APIs specific to iOS platform. Simply use Monodevelop to create an App and deploy it on the App Store.

Same is the case with Mono for Android. A few years back there were efforts to convert Java code to C#, and vice versa using IKVM and this was used on Mono also. Developers might be still using this technology to call Java APIs through Mono on a C# application. But the point here to mention was that Mono is trying to do something similar regarding Mono for Android. Most of the code for Android is in Java, so the Apps require Java and Google's platform specific APIs for Android. Mono for Android provides same thing here as well, as it does for iOS. It translates the code written in C# to one that is acceptable by Android.

This way, Mono is being alive and going forward. I have my best wishes that this platform should keep going on this way on new platforms. Thus the original i.e. Mono for PCs can be guaranteed, because no one will develop Mono if there is no money. So best of luck Mono. I love you ;-)

Friday, April 23, 2010

The Rise of Android against iPhone: Google, Apple and Adobe

Apple Mac is too much conservative regarding iPhone. There are pretty much sufficient restrictions on the development process of iPhone applications. And recently Apple has announced to restrict the developmental platform should base on Objective-C, C++, C and Java Script. This step blocked the development of other third party tools which several companies were offering to develop applications for iPhone in different languages and frameworks.
One of the third party frameworks was Adobe's development tools for iPhone, which were used to develop flash applications for iPhone. But after this move Adobe stops the development of these tools although the previous version would be shipped with Adobe CS5. A similar framework is Mono which provides a compact framework for iPhone named Mono Touch. It is very interesting to see that Mono Touch applications wont affect very much as this link says. I was expecting the same for Mono Touch also, but it looks that Mono is more integrated into the native APIs of Mac and iPhone that's why they will take the advantage of being on the platform.
This was the move from Apple, what from Adobe? This is the move from Adobe. Adobe and Google partner to bring Flash and AIR technology to Android. Android as you know is the famous and creating its market quickly, new smart phone OS which is based on Linux and Java. While iPhone OS is proving itself too much conservative, Android is proving its flexibility. The other advantage is that it is installed on multiple phones, devices while iPhone OS is used on iPhone only. Adobe and Google's partnership is not ignorable in the present scenario when Apple just has banned somehow the entrance of flash on iPhone. Although they have (at last) provided a framework for flash on Mac OS X.
The scenario is going to be very interesting in the coming days. Flash is something which was always a powerful RIA framework and multimedia format. Microsoft Silver Light is lacking behind somehow now and Java Flex is still in coma. We do not hear what is going on under the cover in Flex. So lets wait and watch, what's gonna happen.

Friday, April 16, 2010

Oracle: Death Eater or Lover for Open Source?

Sun Microsystems 'was' one of the biggest competitors of Microsoft in open source world. It is true they ruled the world with Java and its bi-products but when Microsoft challenged the rule of Java on internet by introducing .Net framework and a new Java like language C#, Sun became more open. Whether it was a business decision or it was really the love of open source world that Sun opened up regarding Java. Sun opened up Java round about 3 years ago. Sun was the biggest contributor to OpenOffice.org, the one and only open source office suit which can some how face MS Office. Sun was going well and every thing was going happily. But........ real world is not like the stories of princes and princesses who live happily always, so Sun had to face the challenge. A big fish Oracle proposed Sub to be eaten, and Sun agreed. And now Sun is gradually being eaten by Oracle.
That is the fate of small companies that they are eaten up or in more 'technical terms' acquired by bigger ones. First MySql was acquired by Sun and then Oracle acquired Sun. And the result was that the only open source and low cost competitor of Oracle Enterprise Database is no longer harmful for Oracle. Because they are now (step) brothers. Though Oracle is promising to run MySQL as it was run previously but they are in better ever position to keep MySQL 'on track' now.
Java is something for which Sun is known in the open source world, specially after the opensourcing of Java. Java introduced new competing technologies under the banner of Sun as JavaFX. But it is moving slowly since a year or so, obviously it is due to the replanning which is taking place in Sun after the acquisition by Oracle.
Open Solaris is a Unix like operating system and again it was open source. But the community governing the matters of Open Solaris is now being frustrated by the silence of Oracle regarding the future of the operating system. Would it be of worth for Oracle in the case that they already have a fork of Redhat Enterprise Linux names Oracle Unbreakable Linux. Well, people at Open Solaris community are even willing to fork the project and continue it independently. Whether it would be good or bad, or whether Open Solaris would continue its existence or die slowly, the time will tell about it.
Sun was a big contributor to open source OOo, Java, Open Solaris and MySQL are now looking at Oracle for the future. Out of all, I think OOo is somehow independent and is going well. MySQL is now more business oriented and no more free bits as yummy as they were some time in near past. Java is still in a state of coma, and Open Solaris: there looks something hot under the surface of calmness. Let us see what happens.