4 ms·
This is the correct answer. It's quite shocking how many Django and Laravel answers there are in this thread. Performance and type safety appear to be completel
by caeril 4y ago
This is the correct answer. It's quite shocking how many Django and Laravel answers there are in this thread. Performance and type safety appear to be completely irrelevant to HN.
You should take a look at Vite (https://vitejs.dev/ https://vitejs.dev/) for a Vue development environment, if you haven't already.
- marcus_holmes 4y agothanks for the tip, I'll check it out :)
- lelanthran 4y ago> This is the correct answer. It's quite shocking how many Django and Laravel answers there are in this thread. Performance and type safety appear to be completely irrelevant to HN. I was wondering about that actually. Writing code in Python, Rails, etc is painful. A stupidly high percentage of the "unit tests" aren't testing logic at all, they're simply ensuring that incorrect types are handled properly. And then I see comments like "well, my MVP can run very cheaply, a $100/m DO droplet" and wonder what on earth they are talking about - I had a $5/m DO droplet handling around 50k-60k concurrent TCP (not HTTP) connections, all serving data without any of the connecting devices timing out. The devspeed differential between things like C#/Java/Go and Python/PHP/Ruby is large only at the very beginning of your project. When you're adding new features in every day, six months into the project, you're almost definitely going to be faster in some statically typed compiled language. Seriously, using Django is likely to shave a week or so off the time; if that week matters so much then your expected lifetime for the product is what? Two weeks? Three? I get it, in that if your MVP is timeboxed to (say) two weeks to alpha, then, yeah, those things that shave a week off make sense. But if your MVP is timeboxed to two weeks: a) Tt's unlikely to be of much value to the consumer, b) Your competitors will appear two weeks after you first launch anyway. I want to do a new product, and when judging each product idea I have, the largest issue is always finding the largest amount of value I can create/deliver in a particular timeframe (say, 3 months f/time). If the value the product is providing can be done in a week with Rails, then there's not much motivation for me to develop that product - everyone with a week of leave or a month of weekends is going to have a clone out before I can even learn marketing. If it's going to take 3 months regardless of the language, I have at least 3 months to build up a userbase, and do product refinement and fit.
- 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.
- 0xblinq 4y agoNo, it’s not, because we’re talking about an mvp and not about building an ultra high performance micro service. And btw, there is no “correct answer” despite how much you like it. There are many “correct answers” and a lot more wrong ones. Like using assembly code for building a CLI app or Go for an MVP.