4 ms·
Do you have any real world experience? I'm working on a Python codebase which is almost 2 million lines of code with almost 100 developers and I haven't seen de
by aeyes 4y ago
Do you have any real world experience? I'm working on a Python codebase which is almost 2 million lines of code with almost 100 developers and I haven't seen development speed slow down over the years.
Of course you need to have a structure within this codebase or you'll bump into the typical problems of large codebases. Some languages force you to work this way, we do it by enforcing certain rules in the lower level framework code of the project.
Also you need to keep pace, we are on the latest Python version and code is heavily typed. This project was started in the 2.7 days.
- kazinator 4y ago> I haven't seen development speed slow down over the years. Well, otherwise, how would it have gotten to 2 million lines of code? Adding lines of code and refactoring are different activities and discussions.
- aeyes 4y agoI wanted to say that the per-developer output has not slowed down significantly. But I admit that there are challenges. For example startup time is ~30 seconds because that's the time it takes to import everything. This automatically means that running even a single test will take at least 30 seconds, to not bang your head against the wall we mostly write new code in a REPL so everything is already loaded.
- Gigachad 4y agoI’ve got a long experience with Ruby which I believe is quite similar, but after about 5 years, an untyped language just falls apart. Updating anything is perilous because libraries will change stuff all the time that violates the types and it won’t be mentioned in the changelogs, your 20,000 unit tests will also constantly miss stuff because you didn’t reimplement a type checker inside rspec. It’s a disaster. Typescript has saved our front end but I don’t see any hope for Rails.
- jes5199 4y agotyped Python is becoming more common, and it helps. It’s not as mature as Typescript, but it’s getting better
- cogman10 4y agoIt definitely goes a long way towards making things more workable/understandable.
- culi 4y agoHave you tried Sorbet? The typing story in Python and Ruby are both pretty bad, but they do exist...
- Gigachad 4y agoWe investigated but the general vibe is that it just isn’t there yet, and it isn’t even moving in the direction to get there. It really needs support from the Rails project, and the rails leadership had indicated it isn’t going to happen. If you have a pure ruby project and use it from day one, it probably works. But if you are starting a brand new project, just save yourself the pain and use TS.
- sodapopcan 4y agoI love this comment so much. > Of course you need to have a structure within this codebase or you'll bump into the typical problems of large codebases. > Also you need to keep pace I don't have the wherewithal to really dig into this now but to both those points I respond with a loving and resounding: "Duh!" (not directed at you) What sort of project is it?
- benhoyt 4y agoAre you allowed to say what project/product it is? I'm curious. Do you use type annotations? I've found refactoring sooo much easier in statically typed languages like Go than in Python, even for medium sized projects.
- aeyes 4y agoMost code has type annotations but we don't enforce it. A lot of code was written before typing became well supported and we never went back to add it to every old piece of code, we add them when people touch related code sections. Typing definitely makes it a lot easier to navigate the codebase. But in the end maintaining any large codebase is a question of discipline which starts with simple things like code layout, class and function names, isolation of functionality.