4 ms·
There are people who have been working in Go for years, successfully, but who don't post comments with the same frequency and dogged determination as the middle
by mratzloff 11y ago
There are people who have been working in Go for years, successfully, but who don't post comments with the same frequency and dogged determination as the middlebrow dismissers.
Both Python and Go are fine. They both have their strengths and weaknesses. I personally wouldn't write a web app in Go (at least, anything beyond the most basic admin interface). I also personally wouldn't write a very large and complex Python system given the huge unit testing burden necessary to ensure safe refactoring down the road.
The biggest reason I like Go is because it makes it really hard for engineers to create huge, complex abstractions. Engineers (and especially less experienced engineers) just love them some abstractions. In my experience, most abstractions aren't justifiable. The net effect is that it usually makes their software harder to learn, harder to debug, inflexible (ironically), and late for whatever deadline they were supposed to hit. You can't write Java enterprise software in Go, and I really appreciate that.
- rattray 11y agoDo you have any increased optimism about the refactorability of python given the recent addition of type annotations?
- mratzloff 11y agoDefinitely, but given the relative recency my comment still stands. Ultimately, all libraries in use in a given application must support this as well for it to be truly comprehensive. As a side note, sometimes you do need that performance gain, without wanting to resort to C or C++. I hope to see Python make some gains there with the addition of the type information.
- xj9 11y agoI would really like to see a type check package that you can run alongside your unit tests to verify type correctness. MyPy is nice, but I don't want to do type checks at runtime.
- anacrolix 11y ago> You can't write Java enterprise software in Go, and I really appreciate that. You can, and I've seen it, unfortunately.
- zobzu 11y ago"Anybody can fuck stuff up beyond recognition with any language" -anonymous
- crdoconnor 11y agoIt's certainly much easier in some languages than it is in others.
- peteretep 11y ago> the middlebrow dismissers The totally misplaced condescension is one of many reasons the Go community appears to be a net negative.
- thwd 11y agoCome visit, we're quite friendly! You know what really grinds our gears, though? People who don't read documentation. If you don't read documentation, you'll get a negative vibe. Because your question is literally sitting at the top of the FAQ. It's been asked 2^1024 times before. WHY WON'T YOU READ THE DOCS?
- BerislavLopac 11y ago"huge unit testing burden necessary" Why do you consider unit testing a burden? I find unit tests the best way to formalize specifications before even starting to write code.
- gnuvince 11y agoUnit testing is a burden because (a) a programmer needs to think of the cases that must be tested, (b) a programmer needs to actually write them, (c) they can only act as a safety net. When possible, it's very advantageous to encode your invariants into the type system. Yaron Minsky gives a good example in his Effective ML talk[1] about how you can take a common data structure and refactor it in such a way that the type system prevents you from ever creating an illegal state. (Note: this doesn't absolve statically typed languages from having suites of tests, it just allows them to remove large swaths of those tests if they can be enforced by the type system.) [1] https://youtu.be/DM2hEBwEWPc?t=1085 https://youtu.be/DM2hEBwEWPc?t=1085
- yokohummer7 11y agoType systems are a burden because (a) a programmer needs to think of the types he or she should design, (b) a programmer needs to actually utilize those types to write his or her program, (c) they can only act as a safety net.
- pm90 11y agoAs always, there is a tradeoff. Like the gp mentioned, type systems allow you elliminate much unit test code that would otherwise be required. Personally, I do love me a type system. Even if you have to think harder about how to architect your code, I think this kind of thinking is required for software to be good.
- ilurkedhere 11y agoYou can write Fortran in any language.