I hated go, because I did not like being told what to do. And golang errors are frustrating. Please go let me run this code, even though this variable is not used and even though I am not using this library. Who cares I am only trying something right now, I'm fine for you complaining if this code is going to be run for production but I'm just throwing things at the wall right now.
Well, you know how when you've have a safe guard you grow less cautious, because you know you can take more risks. This is a good thing, lowering the risk is great, as long as you're getting the same ROI. And this happened to me with go, I used to complain all the time (I still do, honestly), about these "features". But it pushed me to think more about the code. On how I wanted to write it, and so it reduced the number of errors, making the code clearer.
So it's a win right. This is a good addition to Golang. Affirmative, I was very pessimist about that at the start, after 2 months, I realize that I was wrong. And these are good feature for a language like Go. Which is similar to C++ and Java. It's a language destined to work in pipelines, to be efficient, and to have big codebase.
I came back to my trusty python 3 now, my dearest love, my trusty servant, we're one together. So why am I making so many mistakes now? Have I simply forgotten how to write python? Or worse, have I changed and can't write python no more. Has this relationship changed me, and maybe we can't be together nomore.
Yeah... I'm making way more mistakes because I'm not forced to think ahead. I
find myself debugging more of my code, and spending more time trying to
understand what is not working. In fairness to myself, I'm doing things I am
not used to, working with networkx
, and more pandas
. Progress is painfully
slow sometimes.
Should I just implementing those checks for python. I don't think so, I think the main reason I use python over go, is that iteration are quicker in python. It's easier to throw a graph together, a bit of keras here, some image processing, some shell here through delegator. Yes sure it's a complete mess, and I don't want to support this objectively terrible code. But what matters in the end, is how much time I've spent for what result I got. I rather experiment in python, and spend more time debugging, than write good code in go that will be scrapped in the near future.
I feel a lot of engineers have the expectation that the code they are writing will stay in the world forever. For some case it may be true, but in that case there weren't many ways to write this code in the first place, so don't worry "your" code, is really the only code working there. I did think like that before. And I think it is for this reason it would be hard for me to be an SWE again, I know the futility of writing code, it's gonna end up in the bin, no matter how important it is now. To write code I need to have fun doing it, I don't really care how important the code is , I'm a hacker,I like to make things. I have stopped so many good project, because I reached the point in which I understood how to do it, and I didn't really want to do it anymore.