The argument about which programming language reigns supreme is about to get a lot more clear with the release of research on the best and worst la...
For further actions, you may consider blocking this person and/or reporting abuse
I'm not shocked/surprised to hear that reviewing C++ PR's is problematic. Starting with C++ 2011, the language started devolving rapidly into symbol soup. The C++ 2014 draft that became C++ 2017 is even worse. When you throw Boost into the mix, it gets exceptionally bad. When I write C++ these days, I avoid all of the modern hot garbage that was added to the language and stick to a hybrid classic C and C++ mix. C was also apparently on the high end and that is most likely because C sits barely above the assembly language level. It tends to takes a lot more code to accomplish anything significant in C, but well-designed C (and C++) will generally outperform other languages by factors of up to hundreds and even thousands of times faster. C/C++ vs. most other popular languages: The tradeoff is performance vs. the time to write and maintain the code. Unlike most languages, C/C++ is traditionally used to target embedded systems.
Symbol soup makes languages unreadable and therefore significantly less maintainable. Generally, the more symbol-heavy a language tends to be, the longer it will take to accomplish anything useful in that language and reviewing code changes will therefore take longer. C++ and, to a lesser degree, C have symbol soup issues.
I'm going to guess that the reason Java and C# are at the other end of the spectrum is because of the toolchains that those developers tend to use (IntelliJ and Visual Studio). Visual Studio has the best debugging toolset hands down. So despite being massive system resource hogs, devs may be more efficient in those IDEs when doing regular code merging. There are a ton of IDEs and editors for C/C++ so the ecosystem there is quite large and everyone writing C/C++ has their preferences, but basically two editors/debuggers for Java (IntelliJ and Eclipse) and just one for C# (Visual Studio). Debugging C/C++ anywhere other than Windows + Visual Studio is generally a nightmare in my experience (sorry, gdb, but you ain't cutting it). Even on Windows though, debugging C/C++ from crash dumps has always been a nightmare and only ever provides rudimentary hints as to what went wrong in the code. No one's ever really figured out how to solve that issue. Just trying to explain why Java and C# are likely doing so well here in this analysis.
PHP did well because PHP is a great language for prototyping ideas. There's no code to compile (unlike C/C++), it generally outperforms Python/Ruby/NodeJS/etc. by a factor of 2-3 times (but still hundreds of times slower than C/C++ which is the price that is paid for using interpreted languages), is memory efficient (unlike NodeJS), PHP has a very C-like set of functions, it runs on the command-line (most people think PHP is only for web servers), and is cross-platform and also a first-class citizen on Microsoft Windows (unlike Python, Ruby, NodeJS, etc. where Windows support is a clear afterthought). So for someone like me who writes C/C++, does most of my work on the command-line, and runs Windows as my primary desktop OS, PHP is an incredibly natural fit for day-to-day, high performance command-line scripting tasks. PHP is also constantly evolving with their newer stuff always being optional rather than being forcefully shoved down everyone's throat. So I just cherry-pick the stuff and use those things that I like (e.g. PHP classes) and then proceed to avoid the rest like the plague that it is (e.g. PHP namespaces, autoloaders, Composer, etc). I also occasionally develop new extensions for PHP in C. I'm not surprised to hear PHP was on the lower end of the spectrum as PHP itself provides some solid debugging tools (e.g.
var_dump()) but there are plenty of custom options, including XDebug that integrates with plugins for various text editors/IDEs.Javascript probably does better than Python in this analysis because web browsers have Developer Tools where code can be debugged and even make temporary changes inside the web browser itself. I've written plenty of HTML, CSS, and Javascript inside my web browser and then copy-pasted from the browser/Developer Tools into my local files for whatever project I'm working on. Again, this all seems to be leaning toward the tools that developers in a language will tend to be using. Better editing/debugging tools again seems to equate to less time spent reviewing code in PRs.
In conclusion, this all seems to be less about the language (unless the language has devolved into symbol soup like C++ has) and seems to be more about what tools are being used by developers that are writing and maintaining code in those languages. When factoring in the tools that devs are using, the results make sense.
Change is fine as long as it doesn't devolve a language into unreadable symbol soup. The adoption of STL into C++, a non-performant library, was the start of that downhill spiral.
PHP is excellent for CLI scripting.
Not ego but experience.
For more info from our data team, check out LinearB's Engineering Benchmark research and compare your team's metrics to industry standards here: linearb.io/engineering-benchmarks/
They are one of the most reputable companies in the academic writing service industry. Their mission is to assist students in achieving academic success by providing do my dissertation them with custom research papers written by qualified writers. They recognise the significance of this for students because they understand how difficult it can be to complete tasks like this on your own.
Interesting findings. I hope your data team makes this available to the public.
Really informative podcast! Thanks for sharing
Why did you say so please. As far as i am concerned PHP is an awesome language with an awesome community
great post