5 ms·
Are we doing Tier-Lists on HackerNews now? S Haskell, Rust A Python, C, Go, Julia B Prolog, Assembly C C#, Java, C++, Scala, ML D Ruby, Gro
by c3534l 7y ago
Are we doing Tier-Lists on HackerNews now?
S Haskell, Rust
A Python, C, Go, Julia
B Prolog, Assembly
C C#, Java, C++, Scala, ML
D Ruby, Groovy, R
F LISP, XML, Bash, VB
- forrestthewoods 7y agoI like your list. Where do you put JavaScript? For me it’s an F. Python I think needs a distinction. It’s an A for small projects that can be owned by a single person. But a C for projects large enough to warrant multiple developers. Dynamic languages don’t scale without a huge amount of extra tooling. The Python ecosystem gets a B. But the environment gets a D. https://xkcd.com/1987/ https://xkcd.com/1987/
- m45t3r 7y agoPython can easily get a B for large projects if you use something like mypy. However sure, where the language really shines is as a substitute for scripts, so smallish pieces of code. And environment... It is complicated. It is not that it is that bad, however it sure lacks some polish. The solution is not easy either since even if you solved the problem today (like using poetry), there is still the whole backwards compatibility problem. There is various hacks to make things easier, however in the end the problem is still more complicated than it should.
- zmmmmm 7y ago> Python can easily get a B for large projects if you use something like mypy I'm curious if that's actually true - my actual experience is that it actually suffers horribly in large projects because as the size and complexity goes up it's just harder and harder for its heuristics to not produce false positive typing errors. It worked great on a small library where it could see the whole source and everything was well annotated ... but that's sort of the context where it is least needed in the first place ...
- m45t3r 7y agoWell, Instagram [1] and Dropbox [2] are probably the biggest Python projects in the whole world, and they both are using mypy and seem to be successful. And my particular experience with it is very positive, even if my project that is using it is still small (it is getting bigger though, and mypy is really helping me to refactor it when I needed). Most of the "false positives" that mypy reports to me end up being code that is overly cleverly, and rewriting it to make mypy happy also improves the code quality. [1]: https://developers.facebook.com/videos/f8-2018/type-checked-python-at-instagram/ https://developers.facebook.com/videos/f8-2018/type-checked-... [2]: https://blogs.dropbox.com/tech/2019/09/our-journey-to-type-checking-4-million-lines-of-python/ https://blogs.dropbox.com/tech/2019/09/our-journey-to-type-c...
- c3534l 7y agoI tried to only put stuff in there that I've actually programmed with, and I just haven't done anything with JavaScript. My impression is bad, but I had a bad impression of C# and it's just okay, neither good nor bad. Deploying a Python application can be a headache, but it's a good replacement for Bash and in DevOpsy scenarios where you're packaging Python along with an entire containerized OS and interacting with the web, Python works well. I find it pretty easy to prototype a webservice with Python, or to build tools for networking engineers. The fact that it's relatively easy to learn, yet readable, also makes it a good language to connect to people with. I can't always sell people on a strongly type functional programming paradigm, but it seems every reasonably young person knows Python these days. But you're right, Python is a bit annoying at times, even though I like it's terseness and intuitiveness.
- deleted 7y ago[deleted]
- d2161 7y agoWhy so low for ruby? Anything aside from the limited use case (to web devt)?
- c3534l 7y agoCoding in Ruby is annoying because it makes me go "why didn't you use Python for this? You guys just had to be different, didn't you? For no other reason to feel special." I have similar feelings for the other D-tier and F-tier. There's better options available. Whereas when I see someone doing something in Prolog or Assembly, it's probably because they actually needed to do it in Prolog or Assembly and they have a damned good reason. They're good for what they do. Ruby is... it just exists for no particular reason, and it's existence is annoying to me.
- t0mbstone 7y agoI spent 3 years programming in Ruby, and then 3 years in Python. I could write a huge post about the differences between the two languages and pros and cons, but you could easily find those lists by googling. My biggest thing that I love about Ruby is how predictable and just... beautiful it is. I love how everything chains in a predictable manner. If you say `2.days.ago`, you literally get a DateTime object back. Oh, and guess what? You can just keep on chaining! Things make sense! Python is so caught up on being explicit and having rules that it often misses the whole point of being pleasant.
- zmmmmm 7y agoYeah it's funny how people really entrenched in the Python world can't see how inconsistent and frustrating it is. Half object oriented (x.split()) half functional (map(.....)) half full of inbetween list comprehensions, it's a beautiful looking incomprehensible mess. I like Groovy for the same reasons you like Ruby (but am too entrenched in the JVM ecosystem to switch to anything else).