Live data from Hacker News

Python Is Easy. Go Is Simple. Simple != Easy

preslav.me

151–160 of 313 posts

Re: Python Is Easy. Go Is Simple. Simple != Easy

#151
post #20

Earlier quoted context omitted.

> No matter what your opinion is about Go (as a language), but they nailed it for bigger projects. I don’t understand this template? 1. No matter your opinion on X: 2. Opinion Y is true about X! If all you have are compliments about X: just go directly to (2). You’re not making a begrudging concession, after all.

I think the way it's meant to be read and understood is as follows: "There may (or may not) be many problems with Go, but building bigger projects is not one of those".

This is actually kind of funny because one of the classical arguments made by gophers eight or so years ago when I first started learning it was that golang's limited abstraction power makes the pain of large codebases obvious enough that teams are incentivized to keep projects small.

Re: Python Is Easy. Go Is Simple. Simple != Easy

#152
post #33

And Clojure has "Simple made easy" [1] [1] https://www.youtube.com/watch?v=SxdOUGdseq4 -> on of Rich Hickey's best talks

I wonder why isn't Clojure more popular.

2 decade ago, I used to love Scheme-like languages, they seemed so elegant.

But after struggling hard trying to introduce them into companies, I gave up. In contrast, I introduced Go into 3 companies and numerous teams so far and it was so easy for it to gain adoption.

Re: Python Is Easy. Go Is Simple. Simple != Easy

#155
post #149

Python is valuable due to the ecosystem of libraries it offers. The language itself is extremely poor. I think this is not something most Python users are aware of since if you are doing ML, data-science or simple scripting there is little reason to step outside of the ecosystem. - Weird scoping rules - Very limited list-comprehensions - Ability to monkey patch things is a liability - Mutability by default - Lack of…

Python always felt well designed to me. Slow yes but it felt the the author really thought about how the language would go together. This is mainly a comparison to the other scripting languages available. Pick your poison shell #expand all the strings, but those pipes are nice, why can't more languages have pipes. awk #not a bad language, but very very small, and an AWKward(see what I did there) implied data loop per…

Yes it's certainly better, but it definitely slithered out from under the same rock. There are even better languages, designed by folks whose minds where presumably never corrupted by anything on that list.

Re: Python Is Easy. Go Is Simple. Simple != Easy

#156

I'm diving back into python after being mostly away for the better part of a decade having built high scale, highly available systems in Go during that time (including migrating several projects from python and perl to go). Being suddenly back in python is jarring. So much inheritance - abstract base classes and multiple inheritance via mixins, strange coupling in tests via over use of mocking and patching, and a rel…

Python code typically doesn't and shouldn't rely heavily on inheritance. It sounds like you're working on non-idiomatic Python code. Bad luck.

True. Thanks for your comment.

Re: Python Is Easy. Go Is Simple. Simple != Easy

#157

Earlier quoted context omitted.

This roughly lines up with my feelings. Go is a solid improvement over many languages that we inherited from the 70s, 80s and 90s. But it also retains a certain "we don't need a robust type system; weak-ish static typing is good enough" ethos that made sense in back then, when compilers were hard enough to write that it was easier to justify making the programmer handle more things manually for the sake of simplifyin…

I think the key question is how robust a type system can be while keeping compilation extremely fast. Slow compilation absolutely destroys developer productivity.

Conversely I could go longer between compiles if the type system caught more.

Re: Python Is Easy. Go Is Simple. Simple != Easy

#158
post #95

Earlier quoted context omitted.

Ok that's totally fair. What's the Go name for it? In my mind Go interfaces are duck typed.

What were they actually doing? Passing interface{} all the time and casting it?

Haha you're spot on. In the codebase I inherited that was everywhere.

Re: Python Is Easy. Go Is Simple. Simple != Easy

#159

I'm diving back into python after being mostly away for the better part of a decade having built high scale, highly available systems in Go during that time (including migrating several projects from python and perl to go). Being suddenly back in python is jarring. So much inheritance - abstract base classes and multiple inheritance via mixins, strange coupling in tests via over use of mocking and patching, and a rel…

I was thrust into a go project after a decade of python.

The most jarring thing besides the 3rd party panics, was the idiom that nils are typed. This was different than python, java, JavaScript, c, c++, etc.

Variable loop scoping is also weird.

Writing unit tests is 10 times harder than python.

Go statically links everything, and just that seems like going back 30 years in software development. Any security in a dependency means a total recompile and redeployment. In C land you would just update the affected library.

Re: Python Is Easy. Go Is Simple. Simple != Easy

#160
post #67
post #37

Earlier quoted context omitted.

I used Go for many years. My issue is that it's _almost_ a great language, but in its current version it's just a collection of foot guns that makes it difficult to get shit done. Go doesn't have some of the most library functions, so large codebases shared between teams end up with a dozen different implementations of functions like "minimum" or "filter". Good luck debugging a bug in one of the implementations. The…

I tried Go for about a day, and the exception handling and null-pointer issues were exactly the things that made me lose interest.

Sorry to disagree, but you can not judge a whole programming language in one day (no matter what your skills and experience in other languages are). Most likely what made you lose interest in Go are simply things you did not grasp yet in one day.
Post reply on HN