8 ms·
This comment is laughable at best. Ignorant might be a better word for it.
by bradhe 13y ago
This comment is laughable at best. Ignorant might be a better word for it.
- fleitz 13y agoCare to elaborate? Here's the 12 GB of memory... http://www.datastax.com/docs/1.0/operations/tuning http://www.datastax.com/docs/1.0/operations/tuning As far as the language is concerned... What problem of high performance & complexity apps does Java 7 solve that C++11 doesn't?
- jfoutz 13y agoIt solves the problem of using mediocre developers to get code into production. Clunky, slow and overly complicated is infinitely better than a segfault.
- sillysaurus2 13y agoAutomatic memory management...? "Just use Boost" is not a viable strategy when it adds so much complexity in and of itself. I'm not defending Java, but it's helpful to know what the limits of each tool are.
- eropple 13y agoAutomatic memory management (especially with a garbage collector) is antithetical to high performance. I like the JVM (for Scala, mostly; Java-the-language can go screw), but there is nothing there really remotely close to C++ and C, and the garbage collector is a very large part of why.. Rust might horn in on C++'s bailiwick, but until then, it's gonna be a while. I strongly disagree that Boost really adds "so much complexity"--and, by the way, shared_ptr and friends are in C++11, and by extension within the standard library. So you don't even need this, unless your goal is to target extremely old platforms. But honestly, if you seriously need shared_ptr, your code design is probably just Not Very Good.
- sillysaurus2 13y agoAutomatic memory management (especially with a garbage collector) is antithetical to high performance. The LMAX Disruptor pattern would like to have a word with you. http://lmax-exchange.github.io/disruptor/ http://lmax-exchange.github.io/disruptor/ http://martinfowler.com/articles/lmax.html http://martinfowler.com/articles/lmax.html http://stackoverflow.com/questions/6559308/how-does-lmaxs-disruptor-pattern-work http://stackoverflow.com/questions/6559308/how-does-lmaxs-di... I'm not just namechecking the Disruptor pattern. I have extensive experience with it. It's about 10% slower than what could be achieved with C -- which is to say, the benefits of not having to program in C far outweigh the 10% loss of performance. And its performance is almost always far higher than what's needed, i.e. the bottlenecks are elsewhere. I strongly disagree that Boost really adds "so much complexity" We'll have to agree to disagree, I think. Importing Boost is often a sign that something is awry with the design goals of the project. Either the choice of language is wrong, or the project is too ambitious. Though there are some aspects of Boost that are pretty good, such as its unit testing framework. if you seriously need shared_ptr, your code design is probably just Not Very Good. This I fully agree with.
- haberman 13y ago> It's about 10% slower than what could be achieved with C What does that even mean? Are you saying that you have a proof of the theoretically fastest C program that would implement the same functionality and it's 10% slower than that? Does the C you're comparing it against use the Disruptor pattern too? Or is this just a comparison against a naive, single-threaded C program? How does that number vary with the overall heap size of the program? Numbers like this get thrown around that strike me as incredibly dubious.
- pjmlp 13y agoGood luck doing manual memory management in whatever language (C, Pascal, C++, ...) with distributed teams, using developers of disparate skill levels. Hunting for memory leaks and pointers gone berserk will become someone's full time job. I like C++, but don't miss using it in enterprise projects.
- 13y ago
- artsrc 13y agoC++ is a tool for language experts. If you can effectively apply that expertise it is extremely expressive and efficient. Java does have some unfortunate complexity, but I don't think it is in the same league. Java also includes a library that is more extensive in some areas than the vanilla standard C++ one. The JVM is also more robust to some types of programmer errors than any run time for C++ that I know of.
- fleitz 13y agoI'm not talking about how many features the language has, I'm talking about the endless amount of line noise that you need to accomplish simple tasks. Most of what the code does is hidden behind ceremony. Imagine Newtown writing out instructions on how to calculate gravity instead of just writing: F = G((m1 m2)/(r^2)) I really don't understand how a language that can't succinctly express calculus from 300 years ago would be regarded as suitable for complex code.
- bdamm 13y agoLanguages like Matlab are best suited for expressing calculus. Why are you choosing a poor tool for the job? Most Java programmers don't care about expressing calculus. They care about expressing interactions between web services, sql, and applying rules as the data flows through their modules. Or between user interface elements and service requests. It's all about moving data around, working on that data when you've got it, and triggering actions.
- fleitz 13y agoThe problems of pushing bits from one server to another aren't that complicated and the pomp and circumstance of java gets in the way of actually accomplishing those things. As you point out when you have a reasonably complicated problem like applying functions java fails miserably and other languages are a much better choice.
- cgh 13y ago
- Theriac25 13y agoPortability, memory safety, speed of compilation, retaining the sanity of developers.
- pron 13y agoConcurrent data structures (hazard pointers don't perform as well as an implementation with a GC).