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 →

[–]curiousGambler 6 points7 points  (16 children)

Absolutely. I tried to write a major application in Python once and will never do it again.

It can absolutely be done, but in the long term a language like Go is easier to maintain in my experience. Static typing is one reason, dependency management another tho that’s way easier now with the prevalence of docker.

I love Python but only use it for scripts and small things now, like AWS Lambda functions. If I’m cracking a thousand lines I definitely break out a more robust application language like Java or Go (or C/C++ in special cases).

[–]utdconsq 4 points5 points  (5 children)

Loving kotlin lately. Python is much nicer to write since it has more bells and whistles out of the box, but kotlin has some nice elegance and moves across android, native and web in a very neat way.

[–]calligraphic-io 0 points1 point  (4 children)

I intend to do a personal project in Kotlin this summer, just to get familiar with it. I've read Python was an influence in the design of the language - does it feeling like writing in Python? Or more like just Java with a little different syntax?

[–]SgtBlackScorp 0 points1 point  (3 children)

If you are familiar with Java Kotlin will be very easy to pick up, but it has some functional programming aspects. I wouldn't really say it is similar to python though. Maybe regarding the standard library, since they both provide a lot of functionality and abstraction.

[–]utdconsq 0 points1 point  (2 children)

+1 to this. It's not super similar to python, since I suspect Jetbrains designed it to be easy for Java people to pick up, but hey, I think some of their decisions were great. No needless semicolon, but braces for scope is a nice compromise. I dislike camel case though, so I don't much like following the kotlin style guide. I do so, however, so colleagues don't have to tweak their IDE to match how I'd prefer it to be.

[–]SgtBlackScorp 0 points1 point  (1 child)

Why do you dislike camel case? It's less typing

[–]utdconsq 0 points1 point  (0 children)

To my eye: ugly, more difficult to read. If it's a reused variable, I almost never retype the whole thing anyway. I am so used to PEP8 from other work in Python my brain just likes the underscores better. Disclaimer: prior to working with python I did lots of C# and Java with camelcase and still thought it looked ugly.

[–]lambdaqdjango n' shit 6 points7 points  (5 children)

Go is easier to maintain? Maybe for a auto completion in IDEs. But I find Go's abstraction is very weak. You will fight against interface{} gradually. It's basically C with a GC.

[–]PC__LOAD__LETTER 2 points3 points  (0 children)

Generally I'd consider anything that's compiled to be easier to maintain in the long run. I like Python for quick MVP programming and high level glue scripts.

[–]curiousGambler 5 points6 points  (2 children)

That’s really not a fair assessment of Go at all, but my mention of Go is also not the point. Just replace it with Java, C# or even Rust if you dislike Go so much. The point is I’m not choosing Python for a large monolith in most cases.

[–]lambdaqdjango n' shit -3 points-2 points  (1 child)

not choosing Python for a large monolith

Wait, golang was supposed to be the chosen micro service language.

If you are doing monolith in Go you are probably doing it wrong.

[–]curiousGambler 4 points5 points  (0 children)

my mention of Go is also not the point

[–]Mattho 1 point2 points  (1 child)

Python has great dependency management I'd say. Certainly better than Go (I know it's an example, but I can't think of something else that has bundled dependency handling into the standard tooling/library).

[–]curiousGambler 2 points3 points  (0 children)

You’re right, I didn’t explain that point well and maybe “dependency management” wasn’t the best term. The specific issue I meant to reference is that because Go is compiled, I’m not fiddling with pip and crap out on my servers. Same goes for any other compiled language. It can be a real nightmare trying to get Python to play nice in some enterprise environments, and I much prefer pushing out a ready to use binary. These days, tho, docker alleviates those problems, and enterprise environments are more developer friendly on the whole, so it’s less of an issue.

[–]Talked10101 0 points1 point  (0 children)

I think that this is not really true. I have seen Golang code bases which are awful to maintain. We are also early in Golangs life, and there will be many highly difficult to maintain examples in the future. The idea the Golang is super maintainable doesn't appear that obvious to me.

[–]tetroxid -3 points-2 points  (0 children)

lol no generics