34 comments

[ 2.9 ms ] story [ 44.9 ms ] thread
Yeah but how feasible is it to actually distribute an app on the market with this bundled in? Can that even be done?
i haven't seen any word from anyone distributing everything together. most conversation is around an app that would need python (and probably even SL4A) installed separately and manually by the end user.
I'm skeptical towards the ASE approach; Tim Bray's post on the subject has a good overview of the challenges inherent in getting nicer languages working for Android apps: http://www.tbray.org/ongoing/When/201x/2010/07/28/Ruby-and-P...

My money is on Mirah, a new fast, lightweight JVM language that feels like Ruby but compiles to identical-to-Java bytecode: https://github.com/mirah/pindah I don't think shoehorning existing runtimes is a suitable long-term approach.

(comment deleted)
Agreed. Something like Mirah, designed to run the the Java ecosystem from the ground up, makes more sense and brings along far less baggage. You lose the Python libraries if you go this route but I suspect you're mostly just going to be gluing together bits of the Android APIs anyway so it's less of a loss.
I am currently pulling my hair out just trying to get various activities to send stuff between each other. Doing this stuff in Javascript is so much easier with JSON and it's too bad there is no JSON equivalent for Java and the static typing doesn't help matters either so I can't wait until there is another option other than Java for writing applications.
It's funny. Half the time people claim Android's static typing is an advantage vs iOS and half the time people instead really hate it.

I have to say that now that I'm slowly getting over the verbosity of Objective-C I'm finding ansi C + a dynamic messaging layer to be a pretty nice combination on iOS. It looks like I'd have to work both below Java with the NDK (painful) and above it with some kind of scripting layer to get similar speed + flexibility on Android.

I started programming in dynamic languages like Javascript and Ruby so I'm really hating it. I have no idea how people manage to get anything done in Java. I was hoping generics would help me out but when I started using them all of a sudden interfaces started to pollute everything. I really wish palm/hp had more competent management because their webOS operating system is light years ahead of android/iOS.
I've lived both worlds. Java is strong where you have a large codebase with a team working on it. Even more if you have multiple versions of your platform running in different places and need to manage the code forward. Static typing is really useful for this stuff. I think single-person teams, or very-well-gelled small teams (who can all buy into a single syntactic style) are far more effective with dynamic languages.
Good point. Context is everything for language choice.
There are JSON libraries for Java (which I use as a persistence / data transfer layer) and there's JSON libraries in Android specifically.
Weird nobody else mentioned ruboto: https://github.com/ruboto/ruboto-core

It even has an app for android (https://market.android.com/details?id=org.ruboto.irb), which works very well, even with OpenGL.

Ruboto still seems to have a few problems. According to the current faq on github[1], a "hello world" app currently takes over 3 mb compressed, and takes 10 seconds or so to start. (They're working on it.) So it works, but not really well yet.

[1] https://github.com/ruboto/ruboto-core/wiki/FAQ

Wow, title does not match the article at all. Doesn’t look you like can actually develop in Python yet, or at least without considerably more work.

The title, to me, implies Google backing & compilation for Dalvik.

Indeed. Flagging the post as it's misleading.
Fairly old news. I ported Mono to Android a few years ago and got Python and Ruby running that way.

http://www.koushikdutta.com/2009/02/monodalvik-interop.html

Hello Java. Thank you Jython and JRuby.
Now this will bring me back to native apps for Android!

Sadly, thought, this still won't make apps easier to sell on the Android Market, but that's for another discussion.

Still do not get all the Java hate--- it's plenty valid enough for Android dev-- and easy to use. Some people just like hating it because they think it's cool to do so. :)
I find both Java and the Android APIs ugly, overengineered and more importantly - boring! I'd rather write a webapp in HTML/CSS/Javascript than a native Android application any day.

What I'd like to see is applications for things like Android becoming packaged up "web pages", with platform-specific extensions to access the native APIs. Considering webkit/V8 are already bundled, it'd make a lot of sense...

I tried doing a simple application with Javascript + native hooks for the iPhone, using UIWebView + hooks to native functionality. I did it like that because the UI needed fast updates if available.

It was a horrible experience. Mobile Webkit is buggy and inconsistent and comes with restrictions; and trying to emulate the native look&feel ... it's like trying to provide a native look an feel for a Java AWT interface, running on top of IExplorer 6.

I don't see it happening, and I don't wish to see it happening. Just build the damn thing with whatever native platform the phone comes with, and leave the platform-specific extensions out of WebKit.

Thanks,

Isn't it up to the platform to give web applications the "native" look and feel, though? If an application is just standard HTML controls, it can't be difficult for (eg) iOS to make them look like iOS controls, surely?

If mobile webkit is as "buggy and inconsistent" as you describe, than I'd rather see that fixed than have developers write for a completely different language/API for each platform they want to target.

HTML/CSS/JS are open standards and supported relatively consistently across desktop operating systems and mobile devices. I just think it makes a lot more sense for each platform to expand that when they need to, rather than reinvent the wheel with, for example, their own button API every time.

Yes, because that worked so well for Swing.
I'm not an Android dev so I'm not positive, but can't you already do that with Android's WebView pointing to local apk assets and Java -> JS bindings to control the API? You don't totally escape Java, but it looks like you can really reduce it.
Java hate has nothing to do with being cool. I can honestly say that it is a horrible language because I have programmed in several dynamic languages and the amount of grief you have to put up with in Java to get simple things done is unbearable when you have seen how much easier things are in dynamic languages. How many people are developing missile guidance systems on android? Most people write small applications to automate some aspect of their lives and forcing people to use Java for that kind of stuff is just beyond me.
I agree with you. The reality is that HN suffers from groupthink due to the strong relationship to PG and his anti-Java rants, which I think are entirely misplaced. It's true that people who can code LISP are generally pretty good, whereas Java programmers can be of any kind of quality. That doesn't make every Java programmer stupid nor Java a stupid language.

The smug attitude on HN that anyone who isn't doing scripting or functional programming is some kind of idiot is extremely irritating and childish. Professionals use the right tool for the job, and Java is the right tool for a good number of jobs. I say this as someone who loves LISP and has enjoyed Python coding.

I can't believe no one has mentioned Appcelerator Titanium yet (http://appcelerator.com). Titanium allows you to create Android applications in JavaScript. Even though its not python, for all the Java haters (and there are plenty) its drastically easier than creating an app in Java. Plus, its significantly faster than using a WebView (a la PhoneGap).

With Titanium you get access to all the native controls, maps, audio/video, camera, Facebook, and a _ton_ of other stuff. You can check out their Github profile for more info: http://github.com/appcelerator/titanium_mobile. Beyond the basic UI stuff, Don Thorp and his excellent Android develops have recently added the ability to use Android.R resources, intents, activities, services, notifications, and other advanced API's that you'd be hard pressed to find in an app developed via PhoneGap. Not only is it free, but you can use the same codebase (with some changes) to create an iOS (iPad or iPhone) app.

Unlike Mono Droid/Mono Touch, Titanium is 100% free.