Live data from Hacker News

Android: The Land That Python Forgot

speakerdeck.com

91–100 of 127 posts

Re: Android: The Land That Python Forgot

#91
post #22

I'd point out that Python was the preferred high-level language at pre-MS Nokia. There was Python for S60 for a long time, even before either iOS or Android existed. More recently Nokia made new Python bindings for Qt, PySide, to be used on Maemo.

In fairness, Python for S60 was a special kind of pain, especially the way it mixed Python threads with ActiveObjects.

Being able to REPL on a device from a terminal on another machine was fairly useful though.

Re: Android: The Land That Python Forgot

#92

Earlier quoted context omitted.

Are we really going to discuss this again? > code needs more debugging, it is harder to maintain and overall productivity is lower References?

Isn't it why Python guys are trying to use more annotations? To patch it with some sort of semi-decent static analysis? Check the Dropbox's pain presentation: https://www.dropbox.com/s/83ppa5iykqmr14z/Py2v3Hackers2013.p...

A small number of Python guys are trying to use more annotations for a sort of closer-to-staticly-typed Python. It's certainly not universal, or even a majority of developers.

Re: Android: The Land That Python Forgot

#93

Earlier quoted context omitted.

I love C#, but when moving between it and python, I find I focus too much on the types and hierarchies.

I used to be like this before I realized I used class inheritance way too much and shifted to using composition in the majority of cases.

And .NET framework tend to overuse subclassing/overriding pattern where delegation is more appropriate. That frequently leads users also overuse subclassing/overriding.

Re: Android: The Land That Python Forgot

#94
post #11

You can replace Python in Ruby or Lua for the most part and also Android with iOS. Dynamic languages aren't yet a big deal and I think it's because they don't bind well or give you a significantly better developer experience than Objective-C or Java on these platforms do. RubyMotion is probably the closest I've seen to making a language like Ruby or Python a very compelling mobile developer experience while maintaini…

If you think Python is a worse Java then there is something important you have missed.

For doing useful things on Android? I don't think it can be reasonably disputed that Python is worse than Java.

Re: Android: The Land That Python Forgot

#95
post #75
post #36

Earlier quoted context omitted.

I doubt you really mean untyped languages. Untyped languages includes many assembly languages, BCPL and some Forths. It does not include typical scripting languages like Perl, Ruby or Python - all of which are strongly typed.

Yeah, sorry, I should've used the term dynamic typing.

I think you originally intended explicit type notation. I recently discovered actual type doesn't matter that much, and the point is having an interface/protocol which enable compiler validation and tooling support. I learned this truth from Objective-C and Go. That's why I told actual typing system itself not important. Objective-C protocol is nothing about type, but defines nice interface for tooling support. Go interface defines set of promises, so actual object structure doesn't matter.

Furthermore, recent languages offer automatic type inference - Haskell, Go, C++11. They force to retain type information, but also permit to elide them where accurately inference-able/deduce-able.

This is completely different with not forcing type notion such as Python, Ruby, Lua, JS. In these languages, it is fundamentally impossible to track complete type information. But in explicitly type notated languages, it's possible to track complete type informations even they're elided.

I think those type-(notation)-less languages are making some efforts to offer type informations by adding annotations. But I don't think that's really meaningful, because that's not enforced, and community doesn't care much.

Re: Android: The Land That Python Forgot

#97
post #55
post #36

Earlier quoted context omitted.

I doubt you really mean untyped languages. Untyped languages includes many assembly languages, BCPL and some Forths. It does not include typical scripting languages like Perl, Ruby or Python - all of which are strongly typed.

I don't know about Ruby but Perl certainly isn't strongly typed. You can run 'print "5.0" + 6' and get 11 as the answer. That's weak typing and types are implicitly converted to whatever. Python is strongly typed only for the basic scalar types. With objects and classes there are just objects that may or may not have certain bound functions and attributes. Duck-typing is mostly perfectly sufficient since any errors d…

Ruby is strongly typed. I am not sure that's static or dynamic, but regardless of how it is implemented, Ruby lacks ability to offer type information to code-writing level toolsets because it doesn't force retaining of type information on field and function parameters.

So regardless of whatever actually happens, to the tools, each Ruby function is just all dealing with unknown type parameter objects.

As a conclusion, Ruby has type, but has no way to utilize it. I think any other popular scripting language - such as Python, JS, Lua… are in same situation. V8 does speculative strong dynamic typing, but the those generated informations are completely useless to code-writing level tools.

Re: Android: The Land That Python Forgot

#98

Earlier quoted context omitted.

Enforced type system is probably what he meant, i.e. annotations had a practical application at the moment.

I'm not just being purposefully obtuse here. When read in the context of his upstream comments, I don't think we can make any assumptions as to what he meant.

At least, what I mean was an ability to offer those type informations to automated tools - auto-completion system.

How actually Python type doesn't matter. Python lacks the ability by not forcing type (an)notation. This is fundamentally different with type-inferencing/deducing system such as Haskell, Go, C++11.

Re: Android: The Land That Python Forgot

#99
post #36

Earlier quoted context omitted.

I doubt you really mean untyped languages. Untyped languages includes many assembly languages, BCPL and some Forths. It does not include typical scripting languages like Perl, Ruby or Python - all of which are strongly typed.

What about javascript?

Javascript is,

1. Dynamically strongly typed, but typing is limited to primitive types. 2. So actually it's untyped for objects which is really needs type information. 3. As it lacks class/interface concept at all, type (an)notation is fundamentally impossible, type tracking is also impossible. 4. So lacks ability to offer type information to toolset.

You don't have automated tooling support on Javascript about type, and it will degrade your productivity. So big companies interested on JS platform, are all offering JS with type notation -

1. Google = Dart, 2. MS = TypeScript, 3. Mozilla = Emscripten(in very unique way!)

Re: Android: The Land That Python Forgot

#100

If Guido Van Rossum can't convince his own coworkers to support Python in their own platform who else can do it? Meanwhile, Lua is not doing bad in both Android and iOS.

This is the best logic I ever heard in this thread.

Guido is working in Google, and Google doesn't support Python on Android. Python is just secondary scripting language even in Google, can't take a strategic support. Their primary product/platform language was always languages with forced type (an)notation - Java/C++.

Same thing happen on C#. Anders Hejlsberg couldn't convince any other MS product teams to use C#, so C#/.NET literally abandoned for years. MS is advertising C++11 now, and Mr. Hejlsberg is working on another C#.

As far as I remember, the only support was XNA came from DirectX team, but it actually discouraged the addition of C# by proving inferiority of C# on game development.

Post reply on HN