4 ms·
> Suggesting dynamic languages are "slow, unstable, drains your battery, is constantly offline, or has major security flaws" is throwing shade with no basis in
by jjnoakes 9y ago
> Suggesting dynamic languages are "slow, unstable, drains your battery, is constantly offline, or has major security flaws" is throwing shade with no basis in reality.
What I suggested, if you go back and read my initial comment, was that static type systems give you a higher chance of improving performance, efficiency, and quality. I never said dynamic languages guarantee those issues, or that static languages guarantee the absence of those issues.
And there's plenty of basis in reality.
> It doesn't exist
It does exist.
> requires significantly less effort and is more naturally suitable to implement in a dynamic language
Maybe since dynamic languages are popular. I'm not convinced that dynamic typing made this easier, or if it just so happens that most people know dynamically-typed languages.
But that's beside the point completely.
The point was pretty simple (I thought...): Quality is visible to the end user, and all other things being equal, a static type system has a higher chance of resulting in quality software.
Now in the real world, of course, all other things aren't equal (otherwise everyone would just use statically typed languages). But choosing a dynamically typed language for those other reasons (your developers are more familiar with it, it has more libraries that you need) should be a conscious choice made knowing full well that you are opening your self up to a class of errors that you could have automatically avoided. If that trade-off is worth it to you (it is worth it to many) so be it. But the trade-off is still there, and when it does cause quality issues, users will notice.
I'm not saying using a dynamic language is a mistake and I'm not saying using a dynamic language guarantees the quality of the result will be lower (nor am I saying a static language guarantees the quality will be higher, although I believe it helps a lot), so arguing against those points is falling on deaf ears.
- mythz 9y ago> Your opinion... I've provided a number of examples, you've provided exactly none. > I never said dynamic languages guarantee those issues, or that static languages guarantee the absence of those issues. Your comments are full of snide comments against dynamic languages: > That does correlate with being unstable and offline. > plenty of those companies had plenty of scaling issues and growing pains that just throwing a cache in front of didn't solve > choosing dynamic just leaves more opportunities for inefficiency and runtine errors. > You either have to write more unit tests, or pray, or be infallible. > but in a dynamic language I have to write more unit tests or pray, and I don't like wasting my time on either. > and all other things being equal, a static type system has a higher chance of resulting in quality software. Which is categorically False. Software quality refers to how well it adheres to its fitness of purpose and how it competes with competing alternatives. Users generally prefer to use software which are easier to use and provides them the most value where by being able to iterate quickly holds the most value, which is arguably an inherent benefit in dynamic languages and why they're a popular choice amongst startups. Especially when you're competing in a new market category, velocity is of utmost importance. In fact almost all successful companies that I can think of that were competing in a new software category were developed using dynamic languages including: Facebook, YouTube, Instagram, Spotify, Dropbox, GitHub, Pintrest, Reddit, AirBnB, Uber, Slack, Khan Academy, Coursera, Twitch, Hulu, Kick Starter, Patreon, Trello, etc. Results are overwhelmingly in favor of building new products in a dynamic language. I struggle to think of any recent successful Startups that were able to out compete their competitors and achieved their dominance starting out with a static language. The major ones I can think of predominantly built with typed languages are: LinkedIn (2002), Netflix (1997), Ebay (1995), Amazon (1994). The most recent one I can think of is Stack Exchange (2009) (which I know of because I used to work there :). Of course once they've established market dominance and implemented their core feature-set many go back and focus on optimizing their system of which many identify and rewrite hotspots in more appropriate languages. Which remains a strong case for starting out with a dynamic language first. > But the trade-off is still there, and when it does cause quality issues, users will notice. There's a trade-off on whether adopting a static language is worth it, of which most successful SV Startups don't agree with - and their users are better off for it.
- jjnoakes 9y ago> Your comments are full of snide comments against dynamic languages They are not snide, nor are they "against" anything any more than saying "the sun is yellow" is "against" the color blue. Half or more of the things you quoted aren't even about dynamic languages, and the other half are true (or do you care to refute them? For example, if you don't write tests to take the place of static typing, and you aren't praying, then you are either infallible (ha!) or you are lying). > Which is categorically False Believe what you want; it's clear you aren't interested in opening your eyes. So be it! And that big list of companies has nothing to do with the discussion. Of course they use dynamic languages. Almost everyone does, because they are popular and because some tasks seem easier in them. But there are still quality issues that could have been prevented.
- mythz 9y ago> They are not snide, nor are they "against" anything any more than saying "the sun is yellow" is "against" the color blue. > Believe what you want; it's clear you aren't interested in opening your eyes. So be it! You forgot "Calling the Kettle Black". But I'm more than comfortable with my experience with multiple languages in each style enough to be able to identify their strengths and weaknesses and which scenarios each are better suited to, of which I've listed several examples which are better suited to dynamic languages. Likewise there are many that are not. > if you don't write tests to take the place of static typing Tests are essential to software quality and static typing does not absolve you from writing tests. Static Typing enforces Type correctness, it does not enforce program correctness. > And that big list of companies has nothing to do with the discussion. It has everything to do with which language yields the most benefits and whether Startups have made a mistake in adopting them, I posit they haven't and Empirical evidence suggests that they're a more suitable choice for Startups. > Of course they use dynamic languages. Of course. > Almost everyone does, Ok. > because they are popular and because some tasks seem easier in them. It's because they provide more value than not. > But there are still quality issues that could have been prevented. For which they often provide more benefits then they give up, which is entirely the point, that adopting dynamic languages is not a mistake. My proposition was that dynamic languages offer better velocity which lets you get to market quicker. Static Typing helps with type correctness and maintenance of large code-bases and it's a perfectly fine strategy to rapidly prototype with a dynamic language first then rewrite identified hotspots and problem areas in a more appropriate language. Script execution performance is often not the bottleneck, a good caching strategy can make any language fast, areas which don't benefit from caching, i.e. high writes / high concurrency would benefit from a rewrite and in a growing user-base, scalability is more important than script execution performance.