3 ms·
Former Python developer here. The problem was two-fold: Python 3 broke backwards- and forward-compatibility (in a practical sense: there were workarounds, but
by wtbob 10y ago
Former Python developer here. The problem was two-fold: Python 3 broke backwards- and forward-compatibility (in a practical sense: there were workarounds, but libraries didn't necessarily use 'em, and Python is nothing if not a glue language); and for the longest time there really wasn't a good reason to switch. I think it wasn't until last year that it really started to make sense to go with Python 3 — and by then I'd already switched to Go.
- mherrmann 10y agoPython and Go aren't really mutually exclusive though. Some things will better be done in Python, others in Go.
- rgacote 10y agoTried go and fairly quickly headed back to Python. Kept running into annoyances that slowed development. Not being able to get a NULL back from a database without a third-party library was the final straw (go 1.5, might have changed since then). I understand there's obvious use cases for Go, but an amazing amount of what we do is taking data from place 'A' (web, socket, file), sending it to place 'B' (another web, socket, file), and then returning a result. Go doesn't buy you much that asyncio won't.
- wtbob 10y ago> I understand there's obvious use cases for Go, but an amazing amount of what we do is taking data from place 'A' (web, socket, file), sending it to place 'B' (another web, socket, file), and then returning a result. Go doesn't buy you much that asyncio won't. Static typing. Oh Lord is it nice. When I wrote Python, I never quite knew if there'd be a runtime error (in my code or a library). With Go, there are a lot fewer of those.
- y4mi 10y agostatic typing has become possible with python3, though i don't use it for my personal projects.
- abledon 10y agoSo do you use 'Go' as your glue language now? or still use python for that?
- wtbob 10y agoYup, professionally it's all-Go, all the time. But I've always been gluing libraries, not programs, together. I think I'd still reach for Go over Python for gluing programs together, but I've not done it enough to be completely certain.
- blub 10y agoAre you using Go exclusively? All the jobs I see are Ruby + Go or Python + Go, which makes it pointless to learn Go if you don't care about Ruby or Python.
- joobus 10y agoI'd guess a lot of the X + Go jobs are porting from X to Go.
- psynapse 10y agoThis appears to be a common story. We ported a bunch of Python 2.7 to Go. The improvements in speed and memory consumption are outstanding. But we will be upgrading a large code-base from 2.7 to 3.x. For things like web data aggregation and parsing, it is hard to beat Python; the tooling in that space is really good. Definitely looking forward to some unicode pain alleviation from the rewrite.
- wtbob 10y ago> Are you using Go exclusively? Pretty much, in my career. Sure, i know plenty of languages, but my day job is slinking Go. I honestly don't want to program in Python any more. I never thought I'd say that, but it's true.
- Nullabillity 10y agoThe utter pointlessness of the Python 3 changes pretty much killed the language for me. print-as-function helped pretty much nobody, and I'm seriously starting to think i18n is a mistake. What date does 1/2-3 mean? I've had raids cancelled when we agreed on 19:45, but showed up an hour late because he didn't realize that nobody plans raids in GMT. Är det inte störande när folk börjar prata ett främmande språk mitt i sin post? Å it ens Google Translate hjälp nä dialekt kom i bildn. And as a non-native English speaker, I'd also much rather have the original English version of whatever you're doing, than the half-baked translation that's missing tons of features that are always "coming soon". No, Unicode-as-default didn't cause this, but the switch shows a switch in culture towards making i18n easy.
- kevan 10y ago>...and I'm seriously starting to think i18n is a mistake. You don't see value in meeting customers in their own language and culture?
- Nullabillity 10y agoI don't see value in half-assing it, which still costs you resources, but also annoys those users (including me!) when you get it wrong or disable features because you haven't translated them yet. And there are enough cultures/languages that doing it properly isn't a viable strategy.