7 ms·
I always thought low-level programmers (C, C++, assembly, etc.) cared more about minimal abstractions and minimizing dependencies. But it turns out it's the sam
by dkarapetyan 10y ago
I always thought low-level programmers (C, C++, assembly, etc.) cared more about minimal abstractions and minimizing dependencies. But it turns out it's the same story no matter what level of the stack you are on. Currently working on a project with 200+ requirements in requirements.txt and growing. Before anyone says microservices just realize that you have taken the same programmers that made this mess and shoveled the problem elsewhere. These people will find a way to introduce 100+ dependencies on other services.
- AnkhMorporkian 10y ago> Currently working on a project with 200+ requirements in requirements.txt and growing. That's incredible. I've worked on some very large python projects before, but 200? That's pure insanity. Can I ask what that project does? I just can't imagine a project where you'd need 200 libraries.
- dkarapetyan 10y agoI can't either. I'm surprised every day. The app is just another generic CRUD enterprise thing. I guess in that regard it's not bad at all. I've seen Java projects with way more requirements.
- ebola1717 10y agoEh, in Ruby, just installing Rails is like 80 dependencies. Would be surprised if Django wasn't 40+
- jokamoto 10y agoDjango itself has no requirements besides the standard library: % pip freeze Django==1.10 That's after a pip install in a fresh virtual environment.
- steveklabnik 10y agoRails itself is broken up into smaller packages, so you can only load parts of Rails if you want. Very few apps actually do. (and that's only like 8 of the 80)
- deleted 10y ago[deleted]
- asimuvPR 10y agoI work on a abnormally large Django codebase. It has 30 dependencies on the requirements.txt file. I've worked on other Django codebases and they usually have about 15. Python has a big standard library which cuts down on dependencies. Not that Django > Rails. Just different.
- true_religion 10y agoSomewhere along the lines, someone might have just done a pip freeze and pulled in all the dependencies needed, recursively. For example, my project has 66 dependencies after cleaning up pip-freezes' output to only keep secondary dependencies if they were depended on by more than one thing (e.g. chardet is a dependency of every package that works with character processing). If we're talking about only primary dependencies, we have 13 or so. If we're talking about the entire dependency network... its easily above 200.
- prashnts 10y agoThat `requirements.txt` was probably generated by `pip freeze > requirements.txt`, which would yield all the installed packages and _their_ dependencies. Though, if 200+ packages were used in the codebase explicitly, that requires some sort of wizardry!
- masklinn 10y ago> That `requirements.txt` was probably generated by `pip freeze > requirements.txt`, which would yield all the installed packages and _their_ dependencies. And also various development or test packages installed in the venv at the time e.g. third-party debuggers, profilers, etc...
- uxp100 10y agoThere is low-level code that is as you describe, and low-level programmers who write it. Probably if printf is involved, it's not that "low level". Maybe this needs printf for a test suite, and talloc doesn't call it itself? Maybe there is also a way to run talloc in some verbose mode? I'm not familiar with it.
- userbinator 10y agoI always thought low-level programmers (C, C++, assembly, etc.) cared more about minimal abstractions and minimizing dependencies. There are two types of "low-level programmers" I've encountered: there those who truly "think low-level" and enjoy it, the ones who will avoid huge amounts of abstraction and general inefficiency in favour of small, efficient and usually very simple solutions; and those who may be using a low-level language, but are actually using it from the mindset of someone who loves abstraction and libraries more than anything else. I'm in the former group.