3 ms·
> The devspeed differential between things like C#/Java/Go and Python/PHP/Ruby is large only at the very beginning of your project. That's a massive hard-no fo
by RangerScience 4y ago
> The devspeed differential between things like C#/Java/Go and Python/PHP/Ruby is large only at the very beginning of your project.
That's a massive hard-no for me. I generally only get faster the longer I get to work with a Ruby codebase, as I get to make it more and more into a DSL for the business situation. I never saw that happen with compiled languages; my speed tended to remain constant after the initial boot.
I know what you're talking about tho - it's the sharp knives + large team problem. The language doesn't maintain a standard of code for you, you (and your team) have to do that yourselves, and if you don't, things can very much get bad. If you're programming in a loosely typed language such that you're effectively having an explosion of types, you're suffering one of the more common downsides to typed languages and you're not using the common upsides to loose typing.
That said - when I'm working, the main difference I've seen with Ruby (and, to a lesser extent Python and JS) vs compiled is the iteration loop, particularly due to having a REPL console. Static languages have definitely made some gains there (looking at you, Scala REPL). Being able to drop into both any debug point in the program, as well as a console loaded with your code, makes certain explorative processes substantially faster.
- marcus_holmes 4y agoI do wish for a Go REPL. I use tests for this - write exploratory code in tests, and then move it to the actual package when I'm happy with it, which isn't nearly as satisfying or fast. But again, the gains of coding in Go outweigh the costs (for me, I'm aware other people don't find the same).
- lelanthran 4y agoI'm doing mostly the same; one difference is that I know structure my test code and implementation code so that I start the test in the debugger and use watch expressions as a primitive REPL. call dbl.tbl_create(....) Very slow and cumbersome, though.