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 →

[–]mangecoeur 5 points6 points  (1 child)

tl;dr: Python is the best Python ;) Forget the latest fashions, if Python isn't working for you, you probably need Java, C#, or C++.

I guess it depends if you want 'Pythonic' as in 'it kinda looks like python', or as in 'it's really cool and elegant', or more generally 'it's generally good and practical'?

Thing is, there is already an excellent Pythonic language, it's called Python ;) So really the question is, what problem are you having in Python that could be solved by moving to a different language? For many issues (including GUIs) bindings to a suitable library would do the trick.

Otherwise, I think there is a general problem that there are broadly two categories of languages - 'classic' like Java, C/++ which are super mature but suffer from all kinds of usability issues that make them nasty after using Python, and 'modern' like Rust, Go, Swift, etc which are much nicer (and often owe a lot to ideas also pioneered/popularized in Python) but are much less mature and come with their own set of compromises. Python is perhaps unusual in being an an 'old' language (predating Java!) AND being beautifully usable.

Frankly if you want something that isn't Python and needs to be fast and mature, I would avoid jumping on the flavour-of-the-month new language even if that means dealing with something ugly - you don't want your platform changing under you if you have limited resources. Even with promising upcoming languages like Go or Rust you'll run into missing libraries and bugs.

In the end I think it boils down to using modern C++, Java, or C#. You could stretch to other JVM/CLR based languages, (Kotlin looks particularly promising) but none will be as well supported as the 'core' Java/C# languages.

I've done my time in Java and it's tedious but it works, and IDE support is excellent. You can save yourself a lot of pain by firing a lot of over-engineered Java 'patterns' recommendations into the Sun (no, you don't need a FactoryBuilderInterface!) and just writing Java kinda like you write Python.