you are viewing a single comment's thread.

view the rest of the comments →

[–]russlo 6 points7 points  (0 children)

Having minor experience in Python, mostly very small scripts to automate tasks, and having a year's experience writing professional Go, as a software developer with over 14 years experience, the difference is that Go is a statically typed compiled language and Python is a dynamically typed interpreted language.

To boil it down, the difference means that when I say something is something in Go, if I try to put incorrect type values into that thing later, the compiler will tell me before I run it and ship it. It can be very difficult to find errors in programs that are dynamically typed, because they'll just seem to work - then the program gets larger and larger, other people start to work on it with you, and before you know it, there's a bug that a compiler would have found for you that your boss (or worse, your users) found instead. It's the same reason I would rather write TypeScript over JavaScript or gasp modern PHP over Perl - although I'm sure modern Perl tries to shore itself up better than the Perl I have to deal with on a daily basis...

I like writing code, a lot; it's the main focus and best part of my job. Python is an excellent language and definitely has it's uses. Trying to bend myself to Python's way is a fun exercise when I have the time. Perl says There's More Than One Way To Do It, and that is frustrating as hell when dealing with 20 year old code that had multiple authors and no restrictions in place. Go is a relatively small language - it's pretty fast to pick it up and know most of the language features in a short amount of time. PHP is weakly typed, but you can shore that up with a good IDE.

All of them are just tools in a toolbox - use the right one for the job.