3 ms·
Maybe, but I have my reservations. I think the attitude that the future is the tech that extracts the best performance with the least work out of future hardwar
by andrewvc 16y ago
Maybe, but I have my reservations. I think the attitude that the future is the tech that extracts the best performance with the least work out of future hardware is mistaken.
Clojure may be a great language for a multi-core world, but I'm not sure multiple cores will be needed for the vast majority of apps in the future. I'm sure some sectors will find clojure to be amazing for their purposes, but by and large, I doubt it will be as big a language as Python, Java or Ruby.
For instance, I doubt it will become a big player in the web app world.
Clojure's great support for concurrency only applies to a single machine. If your problem is squeezing maximum performance out of a single box w/ multiple cores this is great, but for something like a web application where processing a single request across multiple cores is generally unnecessary clojure's benefits don't really apply. Each thread/process in a web app is totally isolated from the others, and IPC must happen over a network, not in memory.
IMHO the most interesting tech for concurrent web app programming is using Redis as a data structures server.
- derefr 16y ago> I'm not sure multiple cores will be needed for the vast majority of apps in the future. Thre's no alternative if we want to keep being "lazy" (i.e. yesterday's "Computers are Fast" observation—or using programming techniques that produce code that is slow now, knowing it will be faster on future hardware, like games tend to do.) CPUs will soon stop getting faster, so we will have to instead rely on there being an increasing number of them if we want to keep thinking that "Computers are Fast" (or, in its future conception, "Computers are Wide.") As an alternate argument, consider the brain. So many futurists have said something to the effect that, if we have a general-strong-AI-like architecture to work upon, procedural programming will be abstracted away, as much as digital electronics abstract away voltages. However, if we ever want to create something brain-like (assuming a general-strong-AI would best be modeled as something brain-like), we're not going to do it on one (or even a "scarce" number of) cores.
- andrewvc 16y agoThe reality is we have more CPU power on personal computers these days than most people know what to do with, that's why mobile is making so many gains. Most people run a browser, the end. If they have a mobile or an iPad they run apps that use almost no CPU power, and are fancier interfaces to web services than a browser is able to be. Since app development is moving towards mobile devices that means battery power is a concern. SMP often has overhead in terms of power consumption, it should be something you must resort to. So, my tablet's fancy drawing program might need to use Clojure to maximize its speed (and maybe not), but its twitter client doesn't need the advanced concurrency mechanisms of Clojure. Sure, there will still be plenty of desktop computers running complex simulations that might really benefit from something like Clojure. But that'll be the exception. Just my $0.02