Hacker Newsnew | past | comments | ask | show | jobs | submit | petke's commentslogin

Also apple only spends about 3% of revenue on R&D. Google spends about 15% (and so does ms) if i remember correctly. I think at some point this is going to show. If apple isn't careful they might end up making the pretty but dumb phones of tomorrow.


If you consider the fact that Apple's revenue is almost four times that of Google's, the actual difference in spending is not very substantial.

Presumably there's some point of diminishing returns on R&D for one company in the billions of dollars range...


Indeed. Apple has been ramping up R&D spending by about 40% per year for many years, which is a phenomenal ramp up, it's just that its revenues have grown even more dramatically.


Garbage collection only works well for memory though. Other resources like file handles, mutexes, database connections, etc. You don't want to leave those hanging. You want them to be released at once a scope is exited.


I have never been as excited for the future of cpp as I am now. Cpp17 and cpp20 are going to be revolutionary when it comes to concurrency an parallelism.

In cpp17 we get couroutines. Its like await in c# only more general and powerful. In cpp20 we will get parallel executors. Kindof like cppamp and openmp only more general and powerful. It will bring supercomputing mainstream.

Its exciting times for cpp. There are already some experimental implementations to try out. There are also a bunch of other big features coming out. Modules, concepts, transactional memory, compile time reflection, ranges, views, etc.

People can hate on cpp all they want. I'm super excited, and think they are missing out on the future.


Both of these have been done for years in other languages.

The claim that parallel executors bring supercomputing mainstream is puzzling to me, because OpenCL has been around for a long time, is more widely supported, and is far easier to run on e.g. GPUs than the full C++ language.


Its not been done as general as this though. Check out this link if you have the time. Especially the last 15 minutes. Its by the ceo of openmp and its very interesting. http://youtu.be/0mwHJ0950tA


I find it surprising how little interest there is on hn about cpp in general. This video about the future of cpp is the best i have seen this year. My guess is the demographics of hn is just wrong for cpp. Its mostly web developers here?


Yes, HN in general is anti-C++, a quick search for previous discussions proves this. For some inane reason, the language makes a lot of people upset and pouty. People love to hate it. To be honest, it's getting old. It's the same bitter sentiments over and over.

I turn to reddit for substantive C++ discussions.

EDIT: fwiw, I've found the actual cpp community to be a delight.


> For some inane reason, the language makes a lot of people upset and pouty.

People here have cited specific problems with C++ over and over. There are legitimate criticisms of the language that aren't "inane".

Personally, my biggest issue is that it's not memory safe, which leads to people making the same memory management mistakes we've been making since the '70s. At the same time, attackers have seen ways to weaponize use after free in ways that were not thought of when C++ was designed—and C++'s vtables make it much easier to do so. RAII and smart pointers have not proven to be an effective way to mitigate this, as a trip to any Web browser's bug tracker will demonstrate.

I do not believe this specific problem can be effectively fixed in C++, even with the ISO Core C++ lifetime checker, for reasons that I've elaborated on at length before.


> There are legitimate criticisms of the language that aren't "inane".

Please don't misquote me. I did not say criticisms of C++ were inane. Obviously there are many legitimate criticisms.

What I said was the reason people get so upset about C++ must be inane. IMO there's no good reason for an adult to get upset over a programming language.


D has both of them, though I've yet to toy with either. Go was popular for one, if not both as well. Definitely C++ is playing catch up it seems? Though that isn't to say C++ never had these features, but built-in would be a nice thing to see in any language.


If the neck was so vulnerable it needed protection why doesn't animals have a chin. And why isn't there a permanent bone covering the neck at all times.


Because of how we stand. We want to be able to reach/see higher, which means stretching upwards. When you are lower/your chin angled down, there is near continuous bone coverage, but when you are up/angled up, that area stretches.

Allows your head to pivot up and down from the hinge of the top of your spinal column, but also allows for the front/variable length bit (the front of your neck) to be protected when needed.

e: Expanding on this a bit, the only other animal that comes to mind that stands like us that I can think of is the Meerkat. Why don't they have chins? Maybe it's that they only stand in situations, not for movement; or maybe it's that they aren't in situations where they can/have to fight back vs predators (not that they don't have predators, but that human vs wolf is a bit more even than meerkat vs lion, more of a chance for the human to prevail and more of a chance for a human with the optional-neck-guard to eek out a win where a chinless compatriot wouldn't).


The chin just helps people choke you better. You cant slip out of their grip as easy. Also a big chin is bad for fighting. The easiest way to knock someone out I to hit them on the chin. It makes the head turn and the brain bounce against the skull. The more the chin sticks out the easier it is to hit and the more the head turns.


"The chin just helps people choke you better." I'm no expert, but I've grappled a lot, and this hasn't been my experience. It's also inconsistent with my second link. Are you speaking from experience, can you support with citation, or are you speculating? I'm happy to be educated, if you can back this up.


I'm no expert just an mma fan. The rear naked choke for instance. Once they get under your chin its hard to slip out. The bigger the chin the more difficult. The chin is like a hook. Imagine a person without a chin. He could just pull his head out. Especially if they are sweaty.


I see what you mean. I agree, "once they get under your chin, it's hard to slip out" - I also agree that "he could just pull his head out" - but in both cases, only if the head/neck grip is the primary grip, and there's no leg/body control.

In my experience, leg and body control make or break a RNC, not head/neck grip: https://en.wikipedia.org/wiki/Rear_naked_choke#.22Body_Lock_... . It's way easier to escape a RNC that neglects leg/body control whether or not they've passed the chin: https://www.youtube.com/watch?v=JR2e0IsqhrQ , and the chin is an important part of the last-ditch defense.

...which is a long way of saying, I'd rather fight a dude with no chin, and if there were some option to temporarily remove my chin while grappling, I'd still decline, for performance reasons :)

I'd love it if a more experienced MMA player could chime in to confirm or deny our suspicions.


Chimps pout better than any selfie teen. So I don't think that's it


Can you post a picture? I did a google image search, but didn't find any pouting chimps.

They do purse their lips, but that's a different set of muscles.


All the great apes are social animals. In fact there is a massive overlap between chimp and human body language.


Yep this is what I thought instantly, if chimps don't have chins then how are they pouting?


Truly deterministic multithreading is really just single threading. Multithreading is by its nature undeterministic. To make it deterministic you really have to synchronize enough until just one thread at a time is making progress. It kindof defeats the purpose of multithreading. Synchronization is the enemy of scalability. You want to avoid it at all costs.


That's true if all operations and intermediate states must be determistic, but if instead you only need some things to be deterministic then the cost is a lot lower. For instance, if you spawn a bunch of threads and join in them in the same order they were created, the order of the results you gather from them can be always be the same even if they didn't complete in the same order. The computation phase didn't pay any synchronization cost, but the gathering phase did


This is debatable, SIMD instructions and GPUs are highly synchronized, yet they do help with scalability.


Fair enough. I was talking about synchronisation of threads though.


Just looked up Finnish quickly. I never thought of it before but its very strange to me that a basic word like jaksaa is missing from English. It seems as basic a word as want or cant. In English you have to say something cumbersome "I don't have the energy to do that" in Finnish or Swedish you say that in 3 short words.


"Meh"


It took me a while to get that. Yes thats a very useful word. Much information per character. If we could use it as a verb also it would be very useful. Ex: I meh calling her, could you do it?


It took me a while to see that the dramatic looking spikes and falls in the graphs where only due to the lower range of the y axis being cut out.


Are you talking about Robocop?


No, more like replacing judiciary/lawyers with programmers and software. Imagine that law is encoded as a program that validates the conditions and gives out a judgement. Lawyers from both sides get together to program what happened in an event and the computer processes that and gives out a judgement.


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: