4 ms·
GitHub is overwhelmingly populated by projects written in dynamically typed interpreted languages. A quick look over at the 'Top Languages' tab tells us that co
by samdk 17y ago
GitHub is overwhelmingly populated by projects written in dynamically typed interpreted languages. A quick look over at the 'Top Languages' tab tells us that compiled languages don't even show up until position number 7.
- windsurfer 17y agoI wonder if those stats include private repos.
- pjhyett 17y agoThey do not.
- jrockway 17y agoThis is just because that's the language style popular with people writing their own software. If it was "CorporateCubicleTeamHub", you'd see a lot more C++ and Java. Github shows what sort of tools are actually optimized for productivity, because when you are working on something for yourself in your spare time, you don't have time to waste.
- tvon 17y agoI suspect it's also that there are a lot of features of C++/Java/.NET that you just don't need for personal projects.
- tbrownaw 17y ago> Github shows what sort of tools are actually optimized for productivity, because when you are working on something for yourself in your spare time, you don't have time to waste. It shows which tools are optimized for low bootstrap overhead. When working on something simple for yourself, expected productivity is governed by rather different aspects of your toolchain than when you're working on more complex projects that involve other programmers and even long-term maintenance.
- jrockway 17y agoAll I can say is that 99% of personal projects I've worked on are much nicer in terms of test coverage, deployability, documentation, and maintainability than anything I've worked on with a large group of paid ("professional") developers. Like I said, developers working on their own projects optimize for productivity; documentation, test coverage, maintainable design, easy deployment, and so on all save time and make the project more enjoyable to work on. Personal projects have enormous time pressure on them; instead of "can I build this by the amorphous deadline in three months", it's "can I build this feature and still get a few hours of sleep before work tomorrow". That's a whole order of magnitude (or two!) different from paid software development. That harsh evolutionary pressure has brought out the best techniques, because these good techniques increase productivity by so much. In the corporate world, there is too much negative inertia and too little incentive to improve productivity, so people just do whatever, and "whatever" is not usually the best way to be productive. (Write some tests, and your coworker just breaks them the next time he wants to make a quick fix without thinking about design. Now there are two problems, and it ends up being easier to just not write the tests; it's better for the app to break in production so your manager allocates you a chunk of time to fix it. And so the cycle continues; the software getting buggier and buggier, until you need a team of 100 people just to keep it alive.) I will point out that not all corporate paid development is like this. My $work at a large company is very much like an open source project; there are shared libraries that everyone uses, and if you change them, you need to update the docs and make the tests pass. Your own stuff that nobody else uses; do what you want. It works very well. But of course, it's not Java or C++ :)
- technomancy 17y ago> A quick look over at the 'Top Languages' tab tells us that compiled languages don't even show up until position number 7. Actually Ruby, Javascript, and Python can all be compiled.
- JeremyBanks 17y agoSure, andsomeone, somewhere has probably written a C interpreter. If a language is overwhelmingly used in a particular manner I think it's fair to consider it a compiled/interpreted/whatever language even if that's not actually the case 100% of the time.
- telemachos 17y agoI was just reading about C interpreters recently. Tcc (properly a compiler) allows you to script in C (you can put the tcc binary in a shebang followed by -run). There's also Ch, which describes itself as "an embeddable C/C++ interpreter for cross-platform scripting, shell programming, 2D/3D plotting, numerical computing, quick animation, and embedded scripting." (Nothing to do with your larger point. I just had these otherwise useless facts to hand.) http://bellard.org/tcc/ http://bellard.org/tcc/ http://www.softintegration.com/ http://www.softintegration.com/ (ch) http://stackoverflow.com/questions/584714/is-there-an-interpreter-for-c http://stackoverflow.com/questions/584714/is-there-an-interp...
- vorador 17y agoActually, tcc -run compiles the code on the fly.