What most people don't realize is that LISP wasn't intended as a high level programming language. LISP was directly based on lambda calculus - a form of mathematics developed as part of the early developement of information theory. Lambda Calculus and Turing machines are directly based on and translatable between one another.
How a computer actually FUNCTIONS (not at assembler/machine code level - what it DOES with those) is Turing Machine style stack running, and lambda calculus is at it's heart just a way of writing down what a turing machine does (or alternatively a turing machine is a realization f the mathematical steps involved in lambda calculus). It's a lot more complex than that but that's the essence of it. LISP is directly based on lambda calculus. What makes it so incredibly powerful is that it's the language that works the closest to what REALLY happens in the CPU (more closely in fact than pure machine code - counterintuitive as that may sound at first - machine code is the instructions but the structure of how they are execute is not apparent in the instructions, it IS apparent in LISP).
Because of this LISP is incredibly powerful, particularly for things like AI - to get a computer to think more like a person, it helps if the programmer first thinks more like a computer (it helps a LOT), It's powerful for high level maths of all kinds really -because it's directly based on a way of writing high level maths down, a form of arithmetic really originally developed to try and be more secure against false positive proofs.
At the same time -that's it's biggest flaw. The vast majority of application programming is not extremely high level mathematics, even in mathematics programs 90% of the code is not mathematics, it's primarily input and user interaction that makes up the bulk of our programs. LISP is terrible at such things.
Why ? Because lisp makes you do those things by thinking of how the CPU will achieve the process, while true high-level languages let you think of it like a human, in terms of the kind of instructions you'd write in a recipe book.
Both ways can do both jobs - but they aren't equally easy. You could write a recipe book entirely in algebra, you could make it much shorter if you translated the algebra into lambda calculus - provided every ingredient in the kitchen had a number printed on it instead of a name... but nobody would like to cook dinner. On the other hand, a robot would make an awesome potroast with that.
The article does say (yes, I read it, guess I'm new here) - that people who need VPNs for business use will be able to get a license to run them.
You'll just need to make a case for why you use it. Of course, the moment licenses exist - you open the door for the people you are supposedly targeting to bribe an official to get one - which means that you won't catch them at all now - after all, their encrypted traffic was expected and approved upfront !
Basically... this is an exercise in quantum stupidity.
>That's quite ridiculous. Nobody with a clue runs their server to 95% memory capacity, and even if they did, the cache required for a single JVM is going to be on the order of 100MB, not gigs.
Oh I agree, but if the customers want a system that can handle connections from 10000 users at a time - who am I to tell them they can't do it ? My job is to make sure it doesn't fall over, and since it never does - that's why I get called an expert.
>So you say, but it doesn't mean you actually are an expert at it. Everything you've said so far leads me to believe the opposite.
That's because your experience is obviously... a bit more limited. When your customers are mostly the world's largest telcos - that's what you're dealing with. A server gets put down and is expected to stay stable even if it's pushed to 100% memory at times, and not upgraded for 3 to 5 years. That's the reality of the business. I don't like it, I would LOVE to agree with you - I don't get to say that.
At least in my new job those servers are running linux, the previous job had an overlapping customer base - but those servers were mostly running 10 year old versions of Unix, hell I actually had to maintain two original 30 year old DEC Alpha's - indeed being run to maximum capacity. These people don't overbuy, if they need 8Gb of ram for a machine, they expect it to be using 8Gb. They will not buy 10. It's not how they operate. There's good money in making things work despite that.
I'm tired of arguing with somebody whose view is so limited. You know one side of IT and don't realize how truly pervasive it is - it operates in many places and a lot of us deal with worlds where we don't get ideal setups to support us. We cope with the shortcomings and make things work anyway. I would love to put 64Gb of ram in a server if I know the average use will be 30Gb. The reality is that the only reason my customers even gives me the 2Gb buffer is because 32Gb is the LOWEST you can go over 30Gb.
Get real dude, we don't all get to design hardware around software requirements. Many of us are designing software and OS configurations around hardware limitations.
You do realize that the cache is in MEMORY right ? The SAME memory where applications and data has to live ? So you realize that the first thing the OS does when memory use gets high is to shrink the cache ? When the load on your apps from having ten-thousand concurrent connections each doing heavy-load transactions is pushing a 32Gb ram server to 95% memory use, for all matter of practice there IS no cache. This is why programmers who write the kind of software that has to perform under these kinds of loads and don't get the benefit of running on large clusters (and that is how it is in some fields) actually don't count on caching. In fact they base their performance metrics on worst-case-scenario (that would be zero cache and the highest possible seek and read times for the hardware types). Since many of these servers also need 3-5 year uptimes hardware upgrades are infrequent and that means they are not reading from SSD's.
That's the real industry world - both my previous and current employer are in business that has to design around those kinds of constraints. In both cases java is very powerful and useful in many ways but it's the biggest single performance problem because these assumptions that other programmers can make don't apply in the world of high-vollume enterprise management systems.
So now I've given you TWO use-cases where java is not the optimal performing tool. That doesn't mean it's not powerful or useful, in both cases it gets used DESPITE that because the overall software stack is better with it than it would be without it and you can design around the performance issues, but make no mistake what I DO for a living is design server and OS platforms for high-vollume, heavy load applications to operate in. I know from daily experience what resources get used first, and I've done this on multiple stacks by different teams in different companies so I know that the problem exists across many types of applications.
You can argue theory as much as you want - I am telling you in the real world, it doesn't work that way. In the real world uptime requirements beat upgrade requirements EVERY TIME. Performance bottlenecks need to be dealt with and memory is ALWAYS the first to go and even when only 5% of the stack is written in java it's always chewing 85% or more of the memory. None of this is meant to say java is bad, it's an excellent platform for many things - but to just blatantly assume that it will always outperform every other non-compiled language in every use-case is thoroughly naive. I'm not talking from education, generic benchmarks or all-things-equal studies here. I am talking about what I get paid to find sollutions to in the real world every day for the past 5 years.
Making java not kill servers practically IS the job I get paid very handsomely for because it's a bloody hard job.
And if you think file access time has anything to do with java's slower startup times you are an idiot not worth debating with. File access is handled by the OS, whether the intermediary layer is a python interpreter or a JVM will make no difference to the time it takes too access files (the only thing affected by caching) - since neither does it (indeed neither CAN do it - it's a kernel-space activity). The reasons why java slows down with library loads is completely unrelated to file caching - and has been clearly spelled out by other posters, it relates to how java loads the libraries into the JVM's memory base.
I also pointed out another problem - JVM's cannot share resources very efficiently with one another - notably two java apps that load the same library cannot gain full effect of copy-on-write. This means the library must be copied into memory TWICE, always. Both compiled and interpreted languages however do get copy-on-write and the library once loaded is already loaded for ALL programs that need access to it, only in the event that a program changes something in the library's own memory space does that chunk get copied into private memory and even then it's a memory-to-memory copy.
This is one reason why java is among the worst memory hogs around. I know it's become fashionable to treat ram as infinite and not part of performance but this is false - memory is always constrained - and java uses up more of it. Even high-level enterprise systems have a limit of memory and it's often the first resource constraint reached. Long before CPU runs out even big iron servers are pushing RAM usage limits. I speak as somebody whose job i involves working on just that problem.
On a server with maxed out ram, I can show how 9/10 times 95% of the ram is tied up by the java portions of our stack - not the mod_perl or python parts (and this while java is the smallest part of the stack - even if you include glassfish as part of the java stack).
In any environment where the task of the applications require significant amounts of memory to be allocated, Java will perform worse than any other language because it will start swapping out first.
In benchmark tests where all things are optimal and all you measure is CPU times of execution and such - yes java outperforms python or RoR. In the REAL world where even 32 gigabytes of memory gets used up by big database apps during normal operation sometimes, java is frequently slower. It's just a fact - first to swap out = last to finish.
Now I just hope I explained it in simple enough terms for somebody who thinks disk-caching has anything to do with why java has a slower start time than python apps. And even if it had you're wrong. File caching makes disk access more efficient, it sure as hell doesn't make it unimportant. At best it makes the files that are used the most accessed faster, it will never be so perfect that you can completely ignore seek times when building high-performance applications, and no programmer who does that for a living ever would.
Now take your python script and stick 100 include lines on top. The use 100 standard libraries in your Java app. No need to do anything. Just call them and compare the results. Java startup times increase exponentially the more libraries it calls. Python has no such issues. Bet its user noticeable now.
The Unix style of design is just as useful and powerfull in application development. Building a complex app out of lots of small specialized little apps makes your app much more powerful and scalable. If those little tools are executable program s then that itself is a feature. Users can plug them together in ways you could never have thought off or provided. That entire design philosophy and the myriad programs that use it is ruled out in Java. Even a 5% increase in startup times add up to an unacceptable load when normal operation will start hundreds of apps in unpredictable order. Especially if they can't share resources like Library memory or fully benefit from copy on write like.
First example that comes to mind: a command-line only program, unix style with a lot of standard libraries pulled in. Both python and ruby would be faster there since execution time is a minimal aspect of the running time of the program - java's slower startup time would be a much larger percentage of the total run-time and the java program would thus perform slower over-all.
Hell.. a BASH script would outperform java in this scenario.
I never said in all cases or for all jobs - I said SOME scenarios. This is an example of such a scenario - and such programs are a very large subset of the software in the world. The unix approach to design of building lots of small tools that can interoperate and do complex tasks by being plugged together differently is almost impossible to achieve in java development because startup times on individual programs is so much higher. It works well with native code, the difference with languages like python, ruby and even bash is so small that users never even notice.
I'll tell you this though - if you replicated the standard unix user-space in java it would be an absolute and unusable nightmare to work with, the same clearly doesn't apply to bash or python since large parts of the contemporary unix userspace stack is ALREADY written in them. This is even true of the much older perl.
In short - there are use-cases where java performs worse than even wholy interpreted scripting languages, I've shown you own, that's enough.
>. It's very rare because there usually aren't enough of them but it has happened and can happen again.
Sorry, I put that horribly, I meant there usually aren't enough money to be made that way - you have to sue them individually for amounts they may actually pay. Generally the companies demand a license fee rather than going straight to filing suit and would only go to suit if the users don't pay the license fee. That has happened many times already.
Nope parent is right. End user's can be sued, and in rare cases HAVE been sued. It's very rare because there usually aren't enough of them but it has happened and can happen again.
There have even been cases where users of a piece of software received downgrades in the mail after the vendor's only recourse to a patent troll was to remove a feature, the downgrades came with a letter informing the users that removing the feature upstream protects the vendors but if they fail to install the downgrade they themselves would be sued and the owner of the patent has threatened to do so.
Probably the most famous case of actual end-users being sued was the Compuserv patent on GIF images. In the late 90's they sued websites for having gif images on their site without a license. They couldn't possibly get them all but they sued many, many of them. Not only did they demand licenses from gif creating software - but from users for having images in the format, most easily caught if they put them on a website. That patent has since expired though but it was directly responsible for the creation of the mng format and the addition of animation support to png - png itself was created to work around several patents in the compress algorithm used in jpg for which the patent owners had threatened to sue users (though I don't think they ever actually did so).
>I love Python, don't get me wrong, but it is nowhere near Java regarding raw performance.
I did say in SOME situations, in most cases you are right. Ruby - particularly the RoR setup beats it hand's down though, and I honestly do believe that zope holds up well against glassfish in all but the most strenuous environments.
According to XKCD real men hold their hard drives in the air and wait for cosmic raise to randomly magnetize the right bits for the program they wanted to write (which chaos theory says must happen if you hold it long enough).
>To be fair here compared to other interpreted languages Java is still the king of the hill. By far.
By what measurement ? Both python and ruby can outperform it in at least some situations, both are more advanced and powerful languages with better features and faster development cycles.
Or do you mean back-office market share ? I'll grant you that one...
>. It's quite tragic that some people feel bad about masturbation, and beat themselves up over it.
I think most slashdot readers feel good about masturbation and beat themselved off over it...
Seriously thanks for the vote of confidence - but I disagree on one point - that "if there is no alternative". Masturbation is not a replacement for a healthy sex-life, it's part of one. If you're having sex with a partner regularly that doesn't mean you ought to stop masturbating, on the contrary when both partners ALSO regularly masturbate- the sex between them is better. Before you get what you want, you need to tell your partner, before you can do that you have to know what you like - and there's only one way to learn that.
Point made. Brazil remains just about the best example there is though. And for any practical discussion 10% more or less white people when the difference is between a 75% and an 85% majority is utterly insignificant. You point out that the total population is much smaller, but that's an issue of scale, it has no impact on how likely your neighbour is to have a different origin from you.
>And I do not think your knowledge has been "more accurate"; for two days you have tried to insist that, because the Bible was utterly silent on an issue (big central government, enforced tithes, etc), and in fact gives COUNTER-examples (warnings about the dangers of a single man in authority), we should therefore read an endorsement of big central government into the Bible. Im sorry, that is irrational, inaccurate, and does not display a superior knowledge of the Bible.
At no time did I say anything of the kind. Nor is the believe that a government's duty is to protect the rights of it's citizens in any way a believe that a government needs to be either big or central to do so. In fact I have stated outright that I believe in direct democracy, small government and decentralization. I said however the human rights include certain POSITIVE rights - notably a right to eat, and pointed out that the bible agrees with me on that. That's a very far cry from the argument you claim I made.
>Youve also been called by numerous posters on your wild accusations towards republicans and bible thumpers and who knows what else, when pretty much any 8th grade civics student could tell you that the republican core belief is NOT "outlawing homosexual marriage'. Apparently that does not matter, however, the fact that some people who are republicans hold some beliefs somehow sets me up to be placed in the dock and charged with defending them. How about if I ask you to defend the actions of every democrat, now and past? How about Obama's utter hypocrisy in accusing Bush of military action without congressional approval (which he had), and then mobilizing our armed forces...without congressional approval? Would it be fair to ask you to defend that, or accuse all democrats of being hypocrits based on the one man's actions?
If I intended to shortly vote for Obama - and somebody asked me that question it WOULD be fair to expect it of me. I would then have two acceptable answers: either I could give a defense, or I could state that I do NOT consider it defensible but was voting that way anyway because a number of other issues to me outweigh it. However that latter statement is ONLY valid if I spell out that position. A vote is a tacit agreement to the policies of a party. Your system giving you such limited choice in your vote is flawed there, but it makes this concept even MORE important. If you are voting for Republican's while not supporting a MAJOR campaign platform then you MUST say this out loud and often. Only in so doing can you convey to them that you don't support it, and would prefer it if this platform was changed and not made into law. If you vote for them on the grounds of what you do approve of, while not stating what you do NOT approve off - then the message you send them is that you approve it all. Then you ARE responsible when they enact it, as you enabled them to do so through your vote. That said - at no point did you distance yourself from my biggest gripes with the republican party. You never suggested that you personally are not among those who republican's who are opposed to equal rights for gay people. You never suggested that you are in favor of cutting defense spending. In no way did you distance yourself from any of the issues I raise, therefore I MUST assume that when you vote for a party that champions them and do not distance yourself from them you ARE championing them yourself. That being the case, your entire complaint is an utter waste of time. Either you believe in christian morality as legislation or you don't - you're voting for a party that champions this, since many of it's voters want that. If you are approving (and the majority does) then it really doesn't MATTER if there's a minority who don't since my criticism remains just as valid.
>Your manner of discussion has made you seem more raving and irrational and unwilling to have a levelheaded conversation than the very bible-thumpers you so decry. You have resorted to ridicule (my mistaken use of the word "para
The USA always thinks they are so special. The exact same thing is true of almost every country in the world today. You just imagine it's somehow unique to you because you're vision of the world is so limited.
You seem to base your vision of the world on a memory of Europe as it was when your colonial ancestors left it, and not realize that this has changed there in exactly the same way (and timeframe) as it changed in the USA. Immigration into Europe has happened, if anything, even faster because many European countries retained open-border policies for much longer than you did and had a reputation for accepting foreigners with open arms. More-over culturally you must consider every nation in Europe a different ethnicity and they have had open travel and immigration policies for decades, so if you don't stare at skin color then it's true to an even larger degree since EU rules allow a European to work and live anywhere in Europe and all European countries are required to let them.
It was further enhanced because most European countries offer automatic citizenship to immigrants from countries which are former colonies of theirs. Britain once ruled half the world - you have no idea how many Indian, Pakistani, Chinese and various African people are living in England under those programs do you ? Go look at the pictures of the london riots... you may notice something: the vast majority of them are NOT white.
Now think about what we know, they all live together in the same neighborhood, cut off from the rest of the local culture. Where the cultures mixed they live happily together. Where a culture was shut out and cut off, there is animosity and violence.
I live in a country far more ethnically diverse than the USA and here "minority" groups can get pretty big. In the city where I live 45% of the population are Islamic, in the city where I group up it was less than 0.05% these a different cities in the same country. On a national level our Islamic population is small, in this particular City and Province, it's close to a majority.
Canada's ethnic make-up is virtually identical to that of the USA btw. and the level of violent crime (even if you count ALL of it, not just racial) is a tiny fraction of yours.
Any way you look at it - your claims fall flat in the face of easily verifiable facts.
That's sort of the point. Lets do it practically so you understand my reasoning. Firstly, constrain ourselves to urban areas - the crime rate in rural areas is correspondingly lower but that's because of the lower population, the same experiment could work but you'd have to greatly increase the areas you look at to get a valid answer.
Take a map of a city. Now break it down into blocks each one a square kilometer in size, or make it even simpler -squares, one kilometer to a side - it's CRUCIAL to keep them small, highly segregated neighbourhoods MUST not show up as mixed. Inside each square, count up the number of ethnicities present. If each house has a different one you'd get a huge number, if there's only one other ethnicity you'd get 2, in New York almost every square would get a 1. Whenever the same house has more than one ethnicity in it, double the score for that house (this is a valid adjustment, we're testing if intermingling is a good thing, mixed houses indicated a higher level of intermingling than neighbors so should show up as a higher number). Now get a total score for the city. Divide it by the number of blocks. This gives a valid measurement. If we'd just worked out a usual average (total ethnicities in the city divided by size of city) we'd not get the same answer. Interestingly though, the closer the value you get IS to the usual average the better it is because it indicates intermingling is a trend in a much larger part of teh city not just in one or two edge cases. I'm not sure how to adjust for that, but we can safely ignore it for simplicity without majorly impacting the result. Let's call this number A.
Now look at your violent crime statistics for the city. To remove other major contributing factors, lets limit ourselves only to violent crime between people of different ethnicities. We won't limit all the way to crimes that were clearly MOTIVATED by those differences, so this is actually a conservative number - it allows for far more crimes between races than is actually relevant to the parent's claim. So let's take the average number of such crimes per year and call that B.
I postulate a strong reverse correlation between A and B. Now a correlation doesn't prove causation of course, but when your theory predicts a very strong correlation - finding that correlation is, in fact, proof. In fact all science is built on exactly that model.
San Francisco, Montreal and Sao Paulo all have very high numbers for A and very low numbers for B - exactly as expected. New York, Johannesburg and Paris all have very low numbers for A (in fact in all of them the value of A is barely over 1) , and correspondingly high numbers for B (the fact that the value of B is so much lower in Paris compared to New York and Johannesburg is attributable to other factors - what matters is that it is still higher than in Montreal and San Francisco by a huge margin). In Sao Paulo the value of A get a vast boost since by far the greatest majority of couples are mixed, same-race couples are so rare they get stared at on the street (believe me, I've seen it with my own eyes). That means a great many houses get double scores. Sao Paulo has a near-zero rate of inter-ethnic violence.
You can even do the same sum within cities, and you'll find that highly mixed neighborhoods are almost always much safer than those where the number is 2 (worst case scenario) and somewhat safer than where the number 1 (although in those cases obviously one of the parties involved in the crimes do not live in the neighborhood where the crime was comitted). Other factors may artificially suppress the results of course - for example high security in predominantly white suburbs reduce the crime rates there to below what it would otherwise be.
But I believe my logic is sound, and I' believe if you run my numbers on any city in the world using real data that it will consistently confirm the trend I am proposing.
What most people don't realize is that LISP wasn't intended as a high level programming language. LISP was directly based on lambda calculus - a form of mathematics developed as part of the early developement of information theory.
Lambda Calculus and Turing machines are directly based on and translatable between one another.
How a computer actually FUNCTIONS (not at assembler/machine code level - what it DOES with those) is Turing Machine style stack running, and lambda calculus is at it's heart just a way of writing down what a turing machine does (or alternatively a turing machine is a realization f the mathematical steps involved in lambda calculus).
It's a lot more complex than that but that's the essence of it. LISP is directly based on lambda calculus. What makes it so incredibly powerful is that it's the language that works the closest to what REALLY happens in the CPU (more closely in fact than pure machine code - counterintuitive as that may sound at first - machine code is the instructions but the structure of how they are execute is not apparent in the instructions, it IS apparent in LISP).
Because of this LISP is incredibly powerful, particularly for things like AI - to get a computer to think more like a person, it helps if the programmer first thinks more like a computer (it helps a LOT), It's powerful for high level maths of all kinds really -because it's directly based on a way of writing high level maths down, a form of arithmetic really originally developed to try and be more secure against false positive proofs.
At the same time -that's it's biggest flaw. The vast majority of application programming is not extremely high level mathematics, even in mathematics programs 90% of the code is not mathematics, it's primarily input and user interaction that makes up the bulk of our programs. LISP is terrible at such things.
Why ? Because lisp makes you do those things by thinking of how the CPU will achieve the process, while true high-level languages let you think of it like a human, in terms of the kind of instructions you'd write in a recipe book.
Both ways can do both jobs - but they aren't equally easy. You could write a recipe book entirely in algebra, you could make it much shorter if you translated the algebra into lambda calculus - provided every ingredient in the kitchen had a number printed on it instead of a name... but nobody would like to cook dinner. On the other hand, a robot would make an awesome potroast with that.
I assume you accidentally hit "submit" before you got to your point ?
Teacher: Yacko, can you conjugate ?
Yacko: Conjugate ? I've never even kissed a girl !
The article does say (yes, I read it, guess I'm new here) - that people who need VPNs for business use will be able to get a license to run them.
You'll just need to make a case for why you use it. Of course, the moment licenses exist - you open the door for the people you are supposedly targeting to bribe an official to get one - which means that you won't catch them at all now - after all, their encrypted traffic was expected and approved upfront !
Basically... this is an exercise in quantum stupidity.
>That's quite ridiculous. Nobody with a clue runs their server to 95% memory capacity, and even if they did, the cache required for a single JVM is going to be on the order of 100MB, not gigs.
Oh I agree, but if the customers want a system that can handle connections from 10000 users at a time - who am I to tell them they can't do it ? My job is to make sure it doesn't fall over, and since it never does - that's why I get called an expert.
>So you say, but it doesn't mean you actually are an expert at it. Everything you've said so far leads me to believe the opposite.
That's because your experience is obviously ... a bit more limited. When your customers are mostly the world's largest telcos - that's what you're dealing with. A server gets put down and is expected to stay stable even if it's pushed to 100% memory at times, and not upgraded for 3 to 5 years. That's the reality of the business. I don't like it, I would LOVE to agree with you - I don't get to say that.
At least in my new job those servers are running linux, the previous job had an overlapping customer base - but those servers were mostly running 10 year old versions of Unix, hell I actually had to maintain two original 30 year old DEC Alpha's - indeed being run to maximum capacity.
These people don't overbuy, if they need 8Gb of ram for a machine, they expect it to be using 8Gb. They will not buy 10. It's not how they operate. There's good money in making things work despite that.
I'm tired of arguing with somebody whose view is so limited. You know one side of IT and don't realize how truly pervasive it is - it operates in many places and a lot of us deal with worlds where we don't get ideal setups to support us. We cope with the shortcomings and make things work anyway. I would love to put 64Gb of ram in a server if I know the average use will be 30Gb. The reality is that the only reason my customers even gives me the 2Gb buffer is because 32Gb is the LOWEST you can go over 30Gb.
Get real dude, we don't all get to design hardware around software requirements. Many of us are designing software and OS configurations around hardware limitations.
You do realize that the cache is in MEMORY right ? The SAME memory where applications and data has to live ? So you realize that the first thing the OS does when memory use gets high is to shrink the cache ?
When the load on your apps from having ten-thousand concurrent connections each doing heavy-load transactions is pushing a 32Gb ram server to 95% memory use, for all matter of practice there IS no cache. This is why programmers who write the kind of software that has to perform under these kinds of loads and don't get the benefit of running on large clusters (and that is how it is in some fields) actually don't count on caching. In fact they base their performance metrics on worst-case-scenario (that would be zero cache and the highest possible seek and read times for the hardware types).
Since many of these servers also need 3-5 year uptimes hardware upgrades are infrequent and that means they are not reading from SSD's.
That's the real industry world - both my previous and current employer are in business that has to design around those kinds of constraints. In both cases java is very powerful and useful in many ways but it's the biggest single performance problem because these assumptions that other programmers can make don't apply in the world of high-vollume enterprise management systems.
So now I've given you TWO use-cases where java is not the optimal performing tool. That doesn't mean it's not powerful or useful, in both cases it gets used DESPITE that because the overall software stack is better with it than it would be without it and you can design around the performance issues, but make no mistake what I DO for a living is design server and OS platforms for high-vollume, heavy load applications to operate in. I know from daily experience what resources get used first, and I've done this on multiple stacks by different teams in different companies so I know that the problem exists across many types of applications.
You can argue theory as much as you want - I am telling you in the real world, it doesn't work that way. In the real world uptime requirements beat upgrade requirements EVERY TIME. Performance bottlenecks need to be dealt with and memory is ALWAYS the first to go and even when only 5% of the stack is written in java it's always chewing 85% or more of the memory.
None of this is meant to say java is bad, it's an excellent platform for many things - but to just blatantly assume that it will always outperform every other non-compiled language in every use-case is thoroughly naive.
I'm not talking from education, generic benchmarks or all-things-equal studies here. I am talking about what I get paid to find sollutions to in the real world every day for the past 5 years.
Making java not kill servers practically IS the job I get paid very handsomely for because it's a bloody hard job.
And if you think file access time has anything to do with java's slower startup times you are an idiot not worth debating with. File access is handled by the OS, whether the intermediary layer is a python interpreter or a JVM will make no difference to the time it takes too access files (the only thing affected by caching) - since neither does it (indeed neither CAN do it - it's a kernel-space activity).
The reasons why java slows down with library loads is completely unrelated to file caching - and has been clearly spelled out by other posters, it relates to how java loads the libraries into the JVM's memory base.
I also pointed out another problem - JVM's cannot share resources very efficiently with one another - notably two java apps that load the same library cannot gain full effect of copy-on-write. This means the library must be copied into memory TWICE, always. Both compiled and interpreted languages however do get copy-on-write and the library once loaded is already loaded for ALL programs that need access to it, only in the event that a program changes something in the library's own memory space does that chunk get copied into private memory and even then it's a memory-to-memory copy.
This is one reason why java is among the worst memory hogs around. I know it's become fashionable to treat ram as infinite and not part of performance but this is false - memory is always constrained - and java uses up more of it.
Even high-level enterprise systems have a limit of memory and it's often the first resource constraint reached. Long before CPU runs out even big iron servers are pushing RAM usage limits. I speak as somebody whose job i involves working on just that problem.
On a server with maxed out ram, I can show how 9/10 times 95% of the ram is tied up by the java portions of our stack - not the mod_perl or python parts (and this while java is the smallest part of the stack - even if you include glassfish as part of the java stack).
In any environment where the task of the applications require significant amounts of memory to be allocated, Java will perform worse than any other language because it will start swapping out first.
In benchmark tests where all things are optimal and all you measure is CPU times of execution and such - yes java outperforms python or RoR. In the REAL world where even 32 gigabytes of memory gets used up by big database apps during normal operation sometimes, java is frequently slower.
It's just a fact - first to swap out = last to finish.
Now I just hope I explained it in simple enough terms for somebody who thinks disk-caching has anything to do with why java has a slower start time than python apps. And even if it had you're wrong. File caching makes disk access more efficient, it sure as hell doesn't make it unimportant. At best it makes the files that are used the most accessed faster, it will never be so perfect that you can completely ignore seek times when building high-performance applications, and no programmer who does that for a living ever would.
I gave two examples in other posts replying to this one. Read more.
Now take your python script and stick 100 include lines on top. The use 100 standard libraries in your Java app. No need to do anything. Just call them and compare the results. Java startup times increase exponentially the more libraries it calls. Python has no such issues. Bet its user noticeable now.
The Unix style of design is just as useful and powerfull in application development. Building a complex app out of lots of small specialized little apps makes your app much more powerful and scalable. If those little tools are executable program s then that itself is a feature. Users can plug them together in ways you could never have thought off or provided. That entire design philosophy and the myriad programs that use it is ruled out in Java. Even a 5% increase in startup times add up to an unacceptable load when normal operation will start hundreds of apps in unpredictable order. Especially if they can't share resources like Library memory or fully benefit from copy on write like.
program
First example that comes to mind: a command-line only program, unix style with a lot of standard libraries pulled in. Both python and ruby would be faster there since execution time is a minimal aspect of the running time of the program - java's slower startup time would be a much larger percentage of the total run-time and the java program would thus perform slower over-all.
Hell.. a BASH script would outperform java in this scenario.
I never said in all cases or for all jobs - I said SOME scenarios. This is an example of such a scenario - and such programs are a very large subset of the software in the world.
The unix approach to design of building lots of small tools that can interoperate and do complex tasks by being plugged together differently is almost impossible to achieve in java development because startup times on individual programs is so much higher. It works well with native code, the difference with languages like python, ruby and even bash is so small that users never even notice.
I'll tell you this though - if you replicated the standard unix user-space in java it would be an absolute and unusable nightmare to work with, the same clearly doesn't apply to bash or python since large parts of the contemporary unix userspace stack is ALREADY written in them. This is even true of the much older perl.
In short - there are use-cases where java performs worse than even wholy interpreted scripting languages, I've shown you own, that's enough.
>. It's very rare because there usually aren't enough of them but it has happened and can happen again.
Sorry, I put that horribly, I meant there usually aren't enough money to be made that way - you have to sue them individually for amounts they may actually pay. Generally the companies demand a license fee rather than going straight to filing suit and would only go to suit if the users don't pay the license fee.
That has happened many times already.
Nope parent is right. End user's can be sued, and in rare cases HAVE been sued. It's very rare because there usually aren't enough of them but it has happened and can happen again.
There have even been cases where users of a piece of software received downgrades in the mail after the vendor's only recourse to a patent troll was to remove a feature, the downgrades came with a letter informing the users that removing the feature upstream protects the vendors but if they fail to install the downgrade they themselves would be sued and the owner of the patent has threatened to do so.
Probably the most famous case of actual end-users being sued was the Compuserv patent on GIF images. In the late 90's they sued websites for having gif images on their site without a license. They couldn't possibly get them all but they sued many, many of them. Not only did they demand licenses from gif creating software - but from users for having images in the format, most easily caught if they put them on a website.
That patent has since expired though but it was directly responsible for the creation of the mng format and the addition of animation support to png - png itself was created to work around several patents in the compress algorithm used in jpg for which the patent owners had threatened to sue users (though I don't think they ever actually did so).
>I love Python, don't get me wrong, but it is nowhere near Java regarding raw performance.
I did say in SOME situations, in most cases you are right. Ruby - particularly the RoR setup beats it hand's down though, and I honestly do believe that zope holds up well against glassfish in all but the most strenuous environments.
According to XKCD real men hold their hard drives in the air and wait for cosmic raise to randomly magnetize the right bits for the program they wanted to write (which chaos theory says must happen if you hold it long enough).
Also - there's an emacs command for that...
I must commend you good sir, for the most convoluted and twisted slashdot car analogy I have ever read. That is one hell of a high bar.
>Generally, it doesn't turn programmers into simpletons
Nope COBOL took care of that decades ago...
> You should learn to lurk more and talk less.
Dude, this is /. not 4chan...
>To be fair here compared to other interpreted languages Java is still the king of the hill. By far.
By what measurement ? Both python and ruby can outperform it in at least some situations, both are more advanced and powerful languages with better features and faster development cycles.
Or do you mean back-office market share ? I'll grant you that one...
> I still change DIP switches on ISA cards at my work place.
Sheez, who do you work for ? The museum of retrocomputing ?
>. It's quite tragic that some people feel bad about masturbation, and beat themselves up over it.
I think most slashdot readers feel good about masturbation and beat themselved off over it...
Seriously thanks for the vote of confidence - but I disagree on one point - that "if there is no alternative". Masturbation is not a replacement for a healthy sex-life, it's part of one. If you're having sex with a partner regularly that doesn't mean you ought to stop masturbating, on the contrary when both partners ALSO regularly masturbate- the sex between them is better. Before you get what you want, you need to tell your partner, before you can do that you have to know what you like - and there's only one way to learn that.
http://en.wikipedia.org/wiki/2005_civil_unrest_in_France
Point made.
Brazil remains just about the best example there is though. And for any practical discussion 10% more or less white people when the difference is between a 75% and an 85% majority is utterly insignificant.
You point out that the total population is much smaller, but that's an issue of scale, it has no impact on how likely your neighbour is to have a different origin from you.
Oh yay, made me click a link just to see a summary of what you said in your previous post.
Now go jump around shouting "made you look" I wouldn't want to deprive you of said fun.
*yawn*
>And I do not think your knowledge has been "more accurate"; for two days you have tried to insist that, because the Bible was utterly silent on an issue (big central government, enforced tithes, etc), and in fact gives COUNTER-examples (warnings about the dangers of a single man in authority), we should therefore read an endorsement of big central government into the Bible. Im sorry, that is irrational, inaccurate, and does not display a superior knowledge of the Bible.
At no time did I say anything of the kind. Nor is the believe that a government's duty is to protect the rights of it's citizens in any way a believe that a government needs to be either big or central to do so. In fact I have stated outright that I believe in direct democracy, small government and decentralization. I said however the human rights include certain POSITIVE rights - notably a right to eat, and pointed out that the bible agrees with me on that.
That's a very far cry from the argument you claim I made.
>Youve also been called by numerous posters on your wild accusations towards republicans and bible thumpers and who knows what else, when pretty much any 8th grade civics student could tell you that the republican core belief is NOT "outlawing homosexual marriage'. Apparently that does not matter, however, the fact that some people who are republicans hold some beliefs somehow sets me up to be placed in the dock and charged with defending them. How about if I ask you to defend the actions of every democrat, now and past? How about Obama's utter hypocrisy in accusing Bush of military action without congressional approval (which he had), and then mobilizing our armed forces...without congressional approval? Would it be fair to ask you to defend that, or accuse all democrats of being hypocrits based on the one man's actions?
If I intended to shortly vote for Obama - and somebody asked me that question it WOULD be fair to expect it of me. I would then have two acceptable answers: either I could give a defense, or I could state that I do NOT consider it defensible but was voting that way anyway because a number of other issues to me outweigh it.
However that latter statement is ONLY valid if I spell out that position. A vote is a tacit agreement to the policies of a party. Your system giving you such limited choice in your vote is flawed there, but it makes this concept even MORE important. If you are voting for Republican's while not supporting a MAJOR campaign platform then you MUST say this out loud and often. Only in so doing can you convey to them that you don't support it, and would prefer it if this platform was changed and not made into law. If you vote for them on the grounds of what you do approve of, while not stating what you do NOT approve off - then the message you send them is that you approve it all. Then you ARE responsible when they enact it, as you enabled them to do so through your vote.
That said - at no point did you distance yourself from my biggest gripes with the republican party. You never suggested that you personally are not among those who republican's who are opposed to equal rights for gay people. You never suggested that you are in favor of cutting defense spending. In no way did you distance yourself from any of the issues I raise, therefore I MUST assume that when you vote for a party that champions them and do not distance yourself from them you ARE championing them yourself.
That being the case, your entire complaint is an utter waste of time. Either you believe in christian morality as legislation or you don't - you're voting for a party that champions this, since many of it's voters want that. If you are approving (and the majority does) then it really doesn't MATTER if there's a minority who don't since my criticism remains just as valid.
>Your manner of discussion has made you seem more raving and irrational and unwilling to have a levelheaded conversation than the very bible-thumpers you so decry. You have resorted to ridicule (my mistaken use of the word "para
The USA always thinks they are so special. The exact same thing is true of almost every country in the world today. You just imagine it's somehow unique to you because you're vision of the world is so limited.
You seem to base your vision of the world on a memory of Europe as it was when your colonial ancestors left it, and not realize that this has changed there in exactly the same way (and timeframe) as it changed in the USA.
Immigration into Europe has happened, if anything, even faster because many European countries retained open-border policies for much longer than you did and had a reputation for accepting foreigners with open arms. More-over culturally you must consider every nation in Europe a different ethnicity and they have had open travel and immigration policies for decades, so if you don't stare at skin color then it's true to an even larger degree since EU rules allow a European to work and live anywhere in Europe and all European countries are required to let them.
It was further enhanced because most European countries offer automatic citizenship to immigrants from countries which are former colonies of theirs. Britain once ruled half the world - you have no idea how many Indian, Pakistani, Chinese and various African people are living in England under those programs do you ?
Go look at the pictures of the london riots... you may notice something: the vast majority of them are NOT white.
Now think about what we know, they all live together in the same neighborhood, cut off from the rest of the local culture. Where the cultures mixed they live happily together. Where a culture was shut out and cut off, there is animosity and violence.
I live in a country far more ethnically diverse than the USA and here "minority" groups can get pretty big. In the city where I live 45% of the population are Islamic, in the city where I group up it was less than 0.05% these a different cities in the same country. On a national level our Islamic population is small, in this particular City and Province, it's close to a majority.
Canada's ethnic make-up is virtually identical to that of the USA btw. and the level of violent crime (even if you count ALL of it, not just racial) is a tiny fraction of yours.
Any way you look at it - your claims fall flat in the face of easily verifiable facts.
That's sort of the point.
Lets do it practically so you understand my reasoning. Firstly, constrain ourselves to urban areas - the crime rate in rural areas is correspondingly lower but that's because of the lower population, the same experiment could work but you'd have to greatly increase the areas you look at to get a valid answer.
Take a map of a city. Now break it down into blocks each one a square kilometer in size, or make it even simpler -squares, one kilometer to a side - it's CRUCIAL to keep them small, highly segregated neighbourhoods MUST not show up as mixed. Inside each square, count up the number of ethnicities present. If each house has a different one you'd get a huge number, if there's only one other ethnicity you'd get 2, in New York almost every square would get a 1. Whenever the same house has more than one ethnicity in it, double the score for that house (this is a valid adjustment, we're testing if intermingling is a good thing, mixed houses indicated a higher level of intermingling than neighbors so should show up as a higher number).
Now get a total score for the city. Divide it by the number of blocks. This gives a valid measurement. If we'd just worked out a usual average (total ethnicities in the city divided by size of city) we'd not get the same answer. Interestingly though, the closer the value you get IS to the usual average the better it is because it indicates intermingling is a trend in a much larger part of teh city not just in one or two edge cases. I'm not sure how to adjust for that, but we can safely ignore it for simplicity without majorly impacting the result.
Let's call this number A.
Now look at your violent crime statistics for the city. To remove other major contributing factors, lets limit ourselves only to violent crime between people of different ethnicities. We won't limit all the way to crimes that were clearly MOTIVATED by those differences, so this is actually a conservative number - it allows for far more crimes between races than is actually relevant to the parent's claim.
So let's take the average number of such crimes per year and call that B.
I postulate a strong reverse correlation between A and B. Now a correlation doesn't prove causation of course, but when your theory predicts a very strong correlation - finding that correlation is, in fact, proof. In fact all science is built on exactly that model.
San Francisco, Montreal and Sao Paulo all have very high numbers for A and very low numbers for B - exactly as expected. New York, Johannesburg and Paris all have very low numbers for A (in fact in all of them the value of A is barely over 1) , and correspondingly high numbers for B (the fact that the value of B is so much lower in Paris compared to New York and Johannesburg is attributable to other factors - what matters is that it is still higher than in Montreal and San Francisco by a huge margin).
In Sao Paulo the value of A get a vast boost since by far the greatest majority of couples are mixed, same-race couples are so rare they get stared at on the street (believe me, I've seen it with my own eyes). That means a great many houses get double scores. Sao Paulo has a near-zero rate of inter-ethnic violence.
You can even do the same sum within cities, and you'll find that highly mixed neighborhoods are almost always much safer than those where the number is 2 (worst case scenario) and somewhat safer than where the number 1 (although in those cases obviously one of the parties involved in the crimes do not live in the neighborhood where the crime was comitted).
Other factors may artificially suppress the results of course - for example high security in predominantly white suburbs reduce the crime rates there to below what it would otherwise be.
But I believe my logic is sound, and I' believe if you run my numbers on any city in the world using real data that it will consistently confirm the trend I am proposing.