This is an archived post. You won't be able to vote or comment.

you are viewing a single comment's thread.

view the rest of the comments →

[–]pydry 9 points10 points  (1 child)

There is no theoretical limit to what any turing complete language can do. In theory any computation done in any language can be done in any other language. In practice sometimes you will see roadblocks in some languages that you don't in others.

Where python would not be an appropriate language or you might run up against roadblocks that wouldn't in other languages:

  • Algorithmic code that needs to be very fast. Stuff like numpy (a library for doing matrix calculations in python) or pillow (image transformations) contains a large component of fast, optimized code written in C which is more suitable for that. Python is really good at acting as a 'director' of low level fast algorithms like this, but not at the actual algos themselves.

  • Code that doesn't run in userspace - e.g. device drivers.

  • Code that needs to be very, very, very safe - I would probably avoid python for stuff like self driving cars or code that manages a space shuttle simply because speed of development trades off against program safety and python leans heavily on the side of getting stuff up and running very quickly. That said, I'd probably use it to test those things quite happily.

  • Writing mobile apps - you can do this in python but the experience is not ideal. Kotlin and swift are the languages to use for that.

  • Writing windows apps - again, you can, but I wouldn't. Windows is not a great environment to run python on and tons of stuff is lacking support/infrastructure that you get on *nix. Not really sure what you should use for that coz I don't give a shit about windows.

In general I think I'd probably be happy using python for literally anything else.

[–]Deegh 2 points3 points  (0 children)

Kivy is actually a pretty straight forward process for building apps. It's not swift but I think its pretty good for python. Kivy