TE
TechEcho
Home24h TopNewestBestAskShowJobs
GitHubTwitter
Home

TechEcho

A tech news platform built with Next.js, providing global tech news and discussions.

GitHubTwitter

Home

HomeNewestBestAskShowJobs

Resources

HackerNews APIOriginal HackerNewsNext.js

© 2025 TechEcho. All rights reserved.

Ask HN: Experience using dynamic languages for big projects

3 pointsby throwaway3840511 months ago
To give you some context for my question:<p>I would consider myself an experienced developer and have built software with different languages in different domains. My life runs on Bash and for super small personal projects I love the workflow of dynamic languages like Ruby or Python. I would also consider myself to be quite adequate at TDD to drive my development, use REPLs for rapid feedback etc.. (I mention this, because I often saw people dismissing dynamic languages, which used a workflow which only works with statically typed languages.)<p>With this context, I observed that many other developers and I have a threshold of N lines of code (3000, 5000, ...?), where they start to prefer languages with static type checkers. (Of course dependent on the domain and give or take.)<p>Especially when working in teams, I experienced people doing bad things in code w&#x2F;o a static type checker, and of course when using languages like Golang, TypeScript or Java, the tooling is IMHO on a completly different level.<p>I am interested in experiences from people using dynamic languages for medium to big &gt;= 10000 LOC projects in teams of 2 or more people which also have enough experience with statically typed languages to make a informed decission. What is your general experience? What kind of projects did you do? Would you use dynamic languages again for this projects? What advice would you give for using dynamic languages successfully and sustainably? What problems did you discover?

1 comment

wavemode11 months ago
I once worked at a startup with a few hundred thousand LOCs of JavaScript (nodejs). We were in the process of evaluating TypeScript but were mostly still on plain JS.<p>The project had good test coverage. The main issue I had working in that codebase was never reliability, it was documentation. It&#x27;s simply harder to read code that doesn&#x27;t have types annotated. It takes longer to figure out what the shape of some certain data is, or is supposed to be.<p>Separately from that job, I&#x27;ve also worked with 1M+ LOC codebases in Ruby as well as Python. The Ruby codebase was statically typechecked with Sorbet and the Python with mypy. Big improvement to developer experience IMO.<p>It&#x27;s common to ask, &quot;why even use Ruby&#x2F;Python and then typecheck it anyway?&quot; But that question misses the point. The power of dynamic languages, in my opinion, isn&#x27;t really that the types are dynamic. Rather, it is that the environment is dynamic. One thing this unlocks is that types and functions are just values and can be freely inspected, and created, at runtime. Another is that you can attach a REPL to a running system and inspect and debug it, live. Both of these allowed us to develop features and solve problems at a greater velocity than if we&#x27;d been working with a more static language.
评论 #40616287 未加载