3 ms·
I'd love it if you could elaborate! I just randomly started learning Ruby for shits and giggles over this last week, so I'd love to hear more of why not to go
by elevaet 3y ago
I'd love it if you could elaborate!
I just randomly started learning Ruby for shits and giggles over this last week, so I'd love to hear more of why not to go down this path (not that I necessarily would hit the brakes)
I've also been dabbling in Go over the last year or so and really enjoyed playing around with it, but I do find it a bit verbose. On the other hand, its performance is really impressive.
- hbroadbent 3y agoHN has a pretty negative view of Ruby/Rails overall, but I wouldn't let that deter you. Every language/framework has its downsides; If you're enjoying Ruby/Rails then I'd say keep going! It's brilliant for side-projects and smaller teams; At 50+ devs working in the same Rails codebase, it can start to get pretty chaotic which is potentially where a lot of the HN-negativity comes from.
- salzig 3y ago50+ Devs working on a single project/codebase tend to get messy/chaotic. I don't think it's worth blaming this on Ruby/Rails. Over time I learned that Ruby and Rails are as told easy to learn, but sadly you'll need some time to master the Language/Framework. And the difference is quite big and easy to overlook once you do.
- chihuahua 3y agoPeople like to say that it's easy to learn, and "fun" and "efficient". The opposite is true. Of all the languages I've learned (Pascal/C/C++/Java/C#/Hack/Go/Scala) it's by far the most difficult. For the following reasons: - it makes a lot of unconventional/strange design decisions - the nature of the language makes it difficult for IDEs to offer good support (e.g. autocomplete, show what methods you can call on a given object) - it encourages people to write unreadable code to show how clever they are All of these things are the opposite of fun and efficient and easy-to-learn.
- neonsunset 3y agoRuby is slow. Very slow. How much you may ask? https://www.techempower.com/benchmarks/#hw=ph&test=fortune§ion=data-r22 https://www.techempower.com/benchmarks/#hw=ph&test=fortune&s... fastest Ruby entry is at 272th place. Sure, top entries tend to have questionable benchmark-golfing implementations and are highly sensitive to hardware config, but it gives you a good primer on the overhead imposed by Ruby. It is also not early 00s anymore, when you pick an interpreted language, you are not getting "better productivity and tooling". In fact, most interpreted languages lag behind other major languages significantly in the form of JS/TS, Python and Ruby suffering from different woes when it comes to package management, publishing, static analysis on big problems and overall trying to graft type system on something that wasn't designed with one in mind. I would say only TS manages to stand apart with being tolerable, and Python sometimes too by a virtue of its popularity and the amount of information out there whenever you need to troubleshoot. If you liked Go but felt it being a too verbose to your liking, give .NET a try. I am advocating for it here on HN mostly for fun but it is, in fact, highly underappreciated, considered unsexy and boring while it's anything but after a complete change of trajectory in the last 3-5 years. It is actually the* stack people secretly want but simply don't know about because it is bundled together with Java in the public perception. *productive CLI tooling, high performance, much more expressive and FP-style than Go, works well in a really wide range of workloads from low to high level, by far the best ORM across all languages and back-end framework that is easier to work with than Node.JS while consuming 0.1x resources
- chihuahua 3y agoRuby is OK (although still slow and pointless) if you just want to work on some pet project by yourself. When you have a large team working on a commercial product, you run into these problems: - it allows people to write difficult-to-read code. Everyone invents their own DSL for showing how clever they are - the lack of typing built into the language means that either people and IDEs have no idea what type anything is, and you run into runtime type errors that should have been caught at compile time, or you use Sorbet to add types, and it looks like crap and reduces readability - the tools (VSCode, RubyMine, etc) can only partially understand the code, so they can't help you much, and you're back to the 1980s in terms of tool suport while writing code.