Live data from Hacker News

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

preslav.me

61–70 of 313 posts

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

#61
Ok so for context. Most of my experience doing stuff in the world is face to face customer service and craftsmanship. So from a blue collar type point of view, Python gets it done and it is an amazing language. I went into Go but it is a different animal for a different hunter. I enjoy that we have the flexibility to choose any language we want to use to get our digital tools made. The really interesting thing is how some of these digital languages are a 501c3 nonprofit, same as a church. Which strikes me really deeply cuz now that simply means that all these styles of expressing 0s & 1s are simply a church in cyberspace preaching the salvation to all our woes. (A foundation with a public mission) Interesting isn't? Of course don't obsess with the Legalese of it all and how it is different and go into defense mode. Besides who am I? Just a dudelitonthemostsublimetruevedas lol

edit: for further clarity of my intent to comment

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

#62
The same simple vs. easy distinction arises again and again, year after year, in systems management tools.

There are a ton of "simple" tools that are indeed very simple to understand. That does not making using them at any level of scale easy or low-effort. In fact, IME, often quite the opposite.

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

#63
post #37

No matter what your opinion is about Go (as a language), but they nailed it for bigger projects. Go code always looks the same, performance is predictable and fast enough for most programs, and its really, really easy to be productive. When i picked up Go i basically got shit done without ever having written a single line of Go. Its statically typed (with generics yey!) and compiles very fast. Its easy to create smal…

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…

> a dozen different implementations of functions like "minimum" or "filter"

this is too real and my number 1 gripe with go

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

#64
post #33

Earlier quoted context omitted.

I wonder why isn't Clojure more popular.

Syntax IMO. I know it's obnoxious, but the reality is most people read C like languages, not Lisp.

t took me a week to get used to the syntax. Now that I'm not working with Clojure anymore, I find every other syntax somewhat repulsive. When I was looking into Elixir and now OCaml, I found them much harder to follow ¯\_(ツ)_/¯

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

#65

No matter what your opinion is about Go (as a language), but they nailed it for bigger projects. Go code always looks the same, performance is predictable and fast enough for most programs, and its really, really easy to be productive. When i picked up Go i basically got shit done without ever having written a single line of Go. Its statically typed (with generics yey!) and compiles very fast. Its easy to create smal…

Ok, maybe you can help me figure something out that I haven’t been able to. I’ve got a project broken down into modules. Module A uses module B. These are both checked into GitHub, so the module path is something like guthub.com/distortedsignal/my-project/src/a or whatever. I need to make a change across both of these modules. Will my compilation pick up the changes? What if I need to make a backward-incompatible cha…

>I need to make a change across both of these modules. Will my compilation pick up the changes?

Yes, add a replace directive to A's go.mod and point it to B's directory. It'll pick up changes immediately. You can also vendor + disable modules + change stuff in the vendor folder to quickly experiment, though IDEs tend to get moody about this.

Backwards incompatible in principle: release a new major version of B. Import and use that.

Backwards incompatible in practice: few projects actually do that reliably, IMO because tooling to help you do this or detect the need is somewhere between "bad" and "horrifyingly bad". Most just make the breaking change, increase the minimum version in A, and it'll work for anyone who stays up to date on A (this is often good enough for internal use). Though people updating B separately by hand might break.

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

#66

No matter what your opinion is about Go (as a language), but they nailed it for bigger projects. Go code always looks the same, performance is predictable and fast enough for most programs, and its really, really easy to be productive. When i picked up Go i basically got shit done without ever having written a single line of Go. Its statically typed (with generics yey!) and compiles very fast. Its easy to create smal…

As someone with the misfortune of inheriting a million plus loc Go project I disagree. Go is a nightmare from the duck typing to dependency management.

I assume with the duck typing you are talking about interfaces? How has that caused issues?

With huge projects that pull in packages i have seen the dependency management become a mess but most of the time its not that bad.

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

#67
post #37

No matter what your opinion is about Go (as a language), but they nailed it for bigger projects. Go code always looks the same, performance is predictable and fast enough for most programs, and its really, really easy to be productive. When i picked up Go i basically got shit done without ever having written a single line of Go. Its statically typed (with generics yey!) and compiles very fast. Its easy to create smal…

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.

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

#68
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 support for functional programming

- Deployment story remains extremely painful

- Tacked on type-system

- Slow execution of pure Python code

If this sounds like a rant... it sort of is. I find it really sad that so much programmer effort is being put into something with poor fundamentals. Many of these issues cannot be fixed with breaking changes.

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

#69

No matter what your opinion is about Go (as a language), but they nailed it for bigger projects. Go code always looks the same, performance is predictable and fast enough for most programs, and its really, really easy to be productive. When i picked up Go i basically got shit done without ever having written a single line of Go. Its statically typed (with generics yey!) and compiles very fast. Its easy to create smal…

As someone with the misfortune of inheriting a million plus loc Go project I disagree. Go is a nightmare from the duck typing to dependency management.

To be fair, most million plus LOC projects match “misfortune” and “nightmare”.

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

#70

No matter what your opinion is about Go (as a language), but they nailed it for bigger projects. Go code always looks the same, performance is predictable and fast enough for most programs, and its really, really easy to be productive. When i picked up Go i basically got shit done without ever having written a single line of Go. Its statically typed (with generics yey!) and compiles very fast. Its easy to create smal…

> 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.

Well... It kinda replaced Java for most cloud stuff except for Kafka.
Post reply on HN