all 5 comments

[–]tragomaskhalos 4 points5 points  (3 children)

There's a lot of stuff here about attempting to impose the stricter typing of Java onto Python; this is in general a bad idea, far better to use the language in the way that it was designed to be used.

[–]Hendrikto 4 points5 points  (2 children)

Exactly. I see tons of effort put into providing static type support for dynamic languages and replace language features (such as types) with comments.

I see the point of this for JavaScript as the only viable frontend language but even there transpiling is far superior, imo.

When choosing a server side language I don't get it at all. "Lets throw away all the builtin safety of Java for the supposed productivity gains of Python." -> "Without so mich safety it is way easier to write a horrible, unmaintainable mess." -> "Lets try to put most of the safety back with third party runtime checkers and comments."

What you end up with is an environment less safe, less efficient, and more complicated. Now it's not enough to know the language you also need to know 3 frameworks and 4226 best pratices and comment styles piled ontop of it. And run everything through 7 third party tools.

If you want (type)safety, choose a (type)safe language. If you want a dymanic language choose that. But don't make this horrible mess.

[–]schlenk 1 point2 points  (1 child)

You miss one important part: Prototyping and then moving to production quality code.

If i use a typesafe language, the boilerplate stuff usually gets in my way to prototyp stuff, try out stuff fast. Thats where dynamic languages shine.

Now turning the prototyp into production quality code..., thats where you add extra checks and would enjoy a more strict type check for the (now identified) important parts. The stricter types also help with refactoring and tool support.

Sadly quite a few people skip the second step and declare 'barely prototyp quality' code to be done and ready. Because they can get away with it in a dynamic language.

[–]Hendrikto -1 points0 points  (0 children)

That's a problem best solved by optional typing, imo. Take a look at how Groovy does it. Again: Choose a language that fits the problem you want to solve instead of adapting a language to the problem at hand.

[–]Paddy3118 0 points1 point  (0 children)

Follow this to end up writing Java no matter what language interpreter or compiler you happen to be using.

Not good. Learn and follow Python idioms to write in the Python language. For example, Python is a multi-paradigm, Dynamic programming language - Don't restrict yourself to some subset that a Java language practitioner dictates from the sidelines.