It may not have been OK, but it may also not have been the chemicals. It's pretty much a universal human phenomenon, it just reaches clinical significance only rarely.
I'm reasonably comfortable with the technology now - I know that a local company doing the laser correction does a "no touch" technique where they use the laser exclusively without the microkeratome
so no foreign objects touch the optical surface of your eye
That sounds like marketing speak. Think about it: a laser erodes the surface of your cornea ("eye"), resulting in what amounts to a massive wound, left to heal while exposed to the dust and dirt of the outside world.
apparently it provides a smoother finished surface with less chance of issues at night.
Apart from any concerns over the long-term effects, larger risk of complications with non-flap techniques is apparently why the flap techniques were introduced.
I think you've hit-upon a key point. If your eyesight is so bad that you're effectively blind without glasses (incapacitated), I would think that it's a fair chance to take.
If your eyesight is so bad that you are effectively blind without glasses, you are already at a significant risk for serious uncorrectable vision problems down the road. The last thing you want to do is add even more risk into the mix by having your eyes operated on unnecessarily. Correcting a botched surgery may leave you with reduced vision but still functioning. But if your vision ends up reduced from both a botched surgery plus other problems, you may end up being effectively blind.
I know that a local company doing the laser correction does a "no touch" technique where they use the laser exclusively without the microkeratome so no foreign objects touch the optical surface of your eye - apparently it provides a smoother finished surface with less chance of issues at night.
I'm not completely up on the history of this kind of surgery, but that may actually be an older and less desirable technique. As I recall, the problem with just doing the surface is that it destroys a layer of cells that doesn't grow back, and there have been concerns that that layer of cells might actually be needed in the long run. Since nobody has lived with this kind of surgery for decades, it's impossible to know. I believe that's one reason why laser surgery got combined with a microkeratome: by removing cells from the inside, you leave the outermost layer undisturbed (well, except for the incision).
The problem is that innovation can't be bought with money or scheduled or be driven by market forces. Innovation is a social and cultural phenomenon. It requires that an entire society values education, thinking, reflection, and analysis. Even Microsoft's cash reserves can't fix the social and cultural problems we have in the US.
It also requires that a society frees its creative members from having to worry about whether they are going to have a job in six months--someone can't afford to spend time thinking about something that may become a big thing in 10 years if they need to help their company survive this year, every year. And, despite Microsoft's cash position, they are not a company that you can count on being secure in the long run: companies like Microsoft can fumble and face hard times.
The best thing Microsoft has done for innovation has probably been to create a few thousand people that made enough money to leave the company and pursue their own interests without having to worry about money. But that number is far too small to make a big difference to innovation overall: innovation and breakthroughs are rare events, even among a population that is perhaps smarter than average.
So, why do we need a strict language that will barf at the first syntax error ?
Languages don't barf at syntax errors, browsers do. And I suspect that IE will be very, very lenient with XHTML syntax errors, just like it has been very, very lenient with HTML syntax errors. Why? Not because Microsoft wants world domination (they want that, too, of course), but because they don't want to have to deal with support calls like "this page renders in other browsers and IE is broken for not rendering it". XHTML provides an opportunity for browsers to become more strict, but chances are, they won't, and it's unclear that they should.
The real problem is that {HT,X}ML wasn't designed for usability, so people make mistakes and take any shortcut they can. The way to fix that is not for software to barf at either users or authors, the way to fix that is to fix the f*cking {HT,X}ML syntax to be more user friendly: i.e., scrap the effort and start over and create a new, entirely different markup language for the web.
Of course, hell will freeze over before that happens, so authors will have to live with lousy syntax and browsers will continue to accept the errors users make. Life is not perfect.
Well, my mail provider deployed SPF quietly and the result was a few months of occasionall dropped mails: mail forwarding from one low-volume but important domain didn't work. When I looked into how that could happen, it seemed like SPF was working the way it was supposed to, it was just that unless the whole world switched to it, this sort of thing was bound to happen.
Since my spam filters are working pretty well, I concluded it was better to live without SPF and let the spam filters deal with the extra junk than to lose mail because of SPF's limitations.
the record industry would become the new AMTRAK. 'Bloated and inefficient as always, but now a drain on taxpayers wallets and liberty as well'.
AMTRAK isn't at fault for their problems: AMTRAK is a moderately subsidized business trying to compete with a heavily subsidized business: the auto industry.
The amount of money the US government is draining from our wallets and funneling to the auto industry and the amount of pressure the government creates for us to use cars are staggering.
And if you think the AMTRAK bureaucracy is big, have you ever even thought about the size and complexity of the bureaucracy needed to build and maintain public roads, from the local level to the federal level? And have you looked at the level of service you actually get from them? Or how they make decisions (like building perfect roads for the main roads politicians travel on in DC and creating special parking spots for politicians, while letting other parts of the city fall apart)?
If using the car were a truly pay-as-you-go proposition, you'd hardly ever use it. And if AMTRAK had the same level of political support as the auto industry, you'd have service to your doorstep.
Even if it all goes perfectly, chances are you'll still need glasses for the majority of the remainder of your life anyway: somewhere in your early 40's, it's inevitable that you'll have to get reading glasses.
Overall, I find it hard to understand why anybody would take the risk. I can see very little without my glasses, but so what?
At ever y stage you have shown yourself to have little common sense, only bling adherance to C#. What kind of idiot ties themselves to just one platform like that?
You misunderstand. I actually do most of my coding in C++ still, because it is a mature and efficient platform and there are tons of libraries that I reuse as needed. Neither Java nor C# even come close at this point.
The sad thing is in a few years you'll probably realzie your folly
No, what I realize half a dozen years later is that it was folly to support Java: Sun's promises of openness were empty and Java has been going nowhere technically. I'm not going to commit that folly again, which is why my adoption of C# is more cautious.
But with C#, much more is already on the table: the language definition is already decent, the standard is open and unencumbered, and the only thing that remains is for implementations to mature a little more. We have every indication that they are doing that, and it looks like in maybe a year, everything is in place to make a big switch.
Well that's a surprise. Did you try a search on the page? Perhaps for the word "Airy"? If so you might find this under cern.jet.math:
First of all, those are real Airy function.
Second, I pointed you at the complex Airy code in Fortran to give you an example of the kind of code people write using numerical data types like complex. If you manage to find an implementation of a complex Airy function in Java, all the better: compare it side-by-side with the Fortran code and note how much harder it is to understand.
You are an idiot for writing them if someone elase has already done so.
I don't re-implement Airy function; I write new kinds of numerical software. It just happens to be the case that the issues involved in that are comparable to the issues people face when porting code using complex numbers from languages like Fortran to languages like Java.
Actually it's a new focus by Gosling.
It's been a "new focus" by Gosling for half a dozen years. Sorry, but I'm tired of waiting. The biggest problems with the Java language have been fixed and the result is called C#, and it's here now.
Isn't this the opposite of the argument that Linux users have always made. That because it is so hard to get a PC (as opposed to parts) without Windows, that the number of linux installs running was higher than the shipments?
Yes. And, as usual, Gartner's report is flawed.
Large numbers of PCs are sold without OS. Large numbers of PCs run Windows for a few years and then have Linux installed on them to give them a second lease on life. And all of that doesn't even count the PCs that ship with Windows and have Linux installed on them right away.
Linux is widely used on the desktop. Not on the home desktop, but on the desktop: in educational settings, research, public areas, etc.
As with most things, people don't change their minds about their ideas, it's the people that die and are replaced by new people with new ideas.
Windows became popular in the 1980's/1990's, for various reasons. Now, it's just a big brand name owned by a big corporation, and it's ripe for being replaced by something else with the next generation.
Gartner's estimates may be fabricated (most of their data doesn't look all that reliable to me), but Google is not an unbiased sample even of desktop users, let alone an indication of what people are actually using. For example, Linux is widely used in research settings, universities, and other applications that would qualify as "desktop usage" or "interactive usage", but that are less likely to access Google.
I really wouldn't count on it passing the Mac any year soon.
On Google, no. On the desktop, it may already have.
But it has improved efficencies in things like short-lived objects, so it's not as far off as you think. By your own admission it's only off by a factor of two for storage even for the poor implementation you wrote.
No, you still don't understand.
The factor of two storage overhead is intrinsic given Java's semantics--it's not a question of compiler optimization.
The overhead in terms of running time is far larger than a factor of two, even with the best current compilers, and it is due to several factors: lack of locality, extra overhead on accesses, lack of vectorizability, lack of aliasing information, calls to the heap allocator that simply can't be eliminated, and garbage collection overhead, to name just a few.
There simply is no way to get anywhere near the efficiency of value classes without actually having value classes.
No, it's just a slightly different way of thinking about the problem. Your code shows that you are way too stuck on operator overloading, and will probably only produce trvial implementations in any language.
You bet I am stuck on operator overloading and that I only produce trivial implementations in any language anymore--numerical code is way too hard to write, debug, and understand otherwise, and numerical methods (the kind I myself come up with) have become far too complicated.
20 years ago, I used to write code in the style you suggest because that was the only way to get it to run fast. These days, we have languages that support abstractions efficiently. Languages like C# and C++. Java is just stuck in the past.
But if you'd like to find text supporting your poisiton, then by all means do so. I've already pasted legal text that supports my position, you go find anything that supports yours.
No, the text you pasted contradicts your position. Read it carefully:
Sun hereby grants you [... specific rights...] under Sun's intellectual property rights that are essential to practice the Specification [...]
So, Sun explicitly talks about their intellectual property rights that are "essential to practice the specification"; they only give you a license for that intellectual property subject to specific conditions. And they have the intellectual property that puts meat into that legal language: they have numerous patents related to Java, as well as the copyrights on the specs themselves.
What are the conditions?
(i) includes a complete implementation of the current version of the Specification, without subsetting or supersetting; (ii) implements all of the interfaces and functionality of the specification, as defined by Sun, without subsetting or supersetting; (iii) includes a complete implementation of any optional components
Those conditions are hard to meet. Furthermore, it is unclear whether there is any way you can independently prove that you have, in fact, met them. Even if you have met them, Sun can kill your work by changing the specification when they want to--they own the specification.
It's true to say you cannot officially lable a project with the "Java" trademark. But that is it - as for writing something exactly the same as Java, anyone can do it.
No, that is not the situation. The situation is that Sun owns the copyright on the specification and they own patents on key Java technologies. In order to practice the specification, you need a license for both. They only give you that license under specific, restrictive conditions, conditions that nobody has been able to meet for a full Java implementation so far.
I wonder what RMS thinks about MONO? I'm pretty sure he would dislike the patent laden spec it's built on quite a bit more.
Quite to the contrary. The FSF and RMS support both Mono and Portable.NET, two separate implementations of C#.
The great thing about Java (I think I've mentioned this before) is I don't have to port that code - it's already been done, and by people smarter than me and certainly a lot smarter than you!
I write that kind of code. That's where those kinds of libraries come from. Someone has to write them. And Java just sucks for writing them.
CERN Java Libraries
As far as I can tell, the CERN Java libraries don't contain complex Airy functions.
And look at the date: those pages have been updated for the last time in 2002. It's another indication that people have largely given up on Java for scientific computing because Sun has failed to make the necessary changes. I tried. Other people tried. We gave Sun years to get their act together. They just haven't.
Great, now try porting a complex Airy function to Java using those kinds of definitions. Welcome to writing numerical code in what amounts to assembly language.
Well, I guess it's just to be expected you code as poorly as you argue. Your creating a new class for every addition... well, lets just say it's breathtaking.
No, it's called "data abstraction". C++ supports this kind of data abstraction efficiently. C supports it efficiently. Pascal and Modula do. That kind of efficient data abstraction also was a key goal of Fortran 9x, and Fortran 9x supports it efficiently as well. C# supports it efficiently. The JavaGrande group recommended it for Java, but Java still doesn't support it efficiently half a dozen years later.
public void add(Complex cvalue)
{
real = real + cvalue.real;
img = img + cvalue.img;
}
If I wanted to write code like that, then I might as well use Fortran 77: it has even better compilers than Java, after all. But that style falls apart when writing more complicated expressions.
C#, like dozens of languages before it, supports the abstractions I like to use for writing code. Java doesn't. That just makes C# a better tool for me, as well as many other people interested in writing numerical, graphics, scientific, and engineering software.
Yes Sun owns the COPYRIGHT for the spec. But that doesn't matter because you are granted a license to use the spec as you will for the creation of an implmentation.
Sun owns the copyright for the spec, in addition to patents on the technology. You can implement the specification only under license, otherwise you violate both Sun's patents and Sun's copyright. Some of the conditions that you have to agree to in order to implement the specification are listed in the section you quote. And those conditions place significant restrictions on implementors, so it is false to say that you can implement the spec "as you will".
Did you read the text you linked? No, it talks nowhere about patents. In fact it even talks about GCJ, the Free implmentation of Java.
The text I linked to states that FSF has concluded that the Java specification is not implementable without restrictions and that this causes problems for OSS development, and that is also my point.
Well, now it looks like Sveasoft (one of the third party developers) has decided to restrict access to their modified source code to subscribers - that also will need to pay $49 for a CD rather than being able to download it
That is not necessarily a GPL violation--the GPL doesn't require you to make modified sources available via FTP. You can charge for the distribution of both source and binary with the GPL.
What you can't do is restrict redistribution of the sources. And, if you give/sell someone a binary somehow, you must make the corresponding sources available to them "at cost".
So, they can charge $49 for a CD containing sources, but you can put the GPL'ed sources that are on it on-line if you like.
The $49 CD might constitute a violation of the GPL if Sveasoft is distributing binaries via some other channel. But even then, $49 might still be considered on the edge of "at cost" distribution. And, as I said, if it bothers you, someone can pay that amount once and put up its GPL'ed content for FTP himself, killing any further business. With the GPL, market mechanisms make the "at cost" distribution provision pretty self-enforcing.
... Complex data[] = new Complex[1000*1000]; for(int i=0;i<data.length;i++) data[i] = new Complex(rand(),rand()); Complex total = new Complex(0.0F,0.0F); for(int i=0;i<data.length;i++)
total = total.plus(data[i]);
So, how much does the array of 1000000 Complex numbers take? In Java, it's 20 Mbytes (4 for each pointer, 8 for each header, 8 for the data). In C#, it's 8 Mbytes (8 for each data item).
How many heap allocations does the summation take? In Java, it allocates 8 Mbytes of garbage with 1 M calls to the storage allocator. In C#, it allocates no garbage and makes no calls to the storage allocator.
Look moron, I told you that ANY PART OF THE JAVA SPEC HAS FREE AND UNENCUMBERED USE OF ALL PATENTS INVOLVED. That means ANYONE can make use of the technologies, and Sun or other patent holders have explicitly given up all rights to those patents.
No, the "moron" is you, because that simply isn't true. Sun likes to pretend that that's the situation, but if you actually read the licenses, you'll see that it is not true.
That's the problem: not only is Java highly proprietary, Sun is lying about it. And I'm not alone in my views, the FSF has come to similar conclusions.
No, the community owns the results - for instance if I contribute to a JCR the results could also end up in GCJ, or in Jikes, or wherever. That's what it means to have a truly open process instead of a puppet standards body.
That, too, is wrong. Take a look at the legal verbiage that comes, with, say, the Java API XML Parsing Specification, final release: it is owned by Sun and you can only use it if you agree to detailed and specific compatibility requirements.
Sun may tolerate the implementation of open source versions for now, but they can change their mind at any time.
How do you think GCJ can be written?
Gcj is not a Java implementation: neither is it compatible, nor is it certified. Furthermore, even in its incompatible and incomplete state, gcj probably violates Sun's intellectual property. And letting software developers fall into the trap of starting to rely on patented ideas and then assert the patents and other rights a few years later has become a common strategy. Developers need to be smart about it, and the smart thing to do with Java is not to touch it.
That's about it for me, you are a waste of time since you obviosuly can't learn anything.
Not from you. But you could learn something from me.
and have ignored every point I have made about ACTUAL performance in Java being superior vs theoretical performance boons you will never see.
For the applications that interest me, C# is already faster than Java simply because Java lacks the necessary primitives. And I'm sure Mono will catch up performance-wise with Sun's Java implementation quite quickly. And while Mono's Microsoft heritage is not something I particularly like, Mono's and C#'s legal situation is still far better than Java's.
Depends on what kind of text the designer uses : It is perfectly possible to have text selections within Flash documents. [...] Again, this would be a design choice of the webdesigner.
So, why do designers keep making user-hostile choices?
Ohwait, now we -aren't- looking for uniformity in browsers anymore ? What did I miss ?
You never were supposed to "look for uniformity" in browsers. Uniformity in browsers are a bad idea: people need different colors, text sizes, and user interfaces, depending on what their backgrounds are and what they are trying to do.
Then why haven't you started using some sort of Flashblock extension yet ?
The question is not whether I block Flash (I do), the question is why designers keep producing sites-that-suck with Flash, and why some information now is only available in that format. And, yes, you can bet that if a company produces a site-that-sucks, usually in Flash, weigh whether it is worth the hassle putting up with it or just buying somewhere else.
What's so wrong with a class with public members, if you are really wanting a value class?
What's wrong with it is that it takes more than twice as much memory as the value class, plus extra pointer dereferences for member access, plus heap memory allocation for many operations. What is wrong with it is, in short, that it is horrendously inefficient.
So you're telling me that given the choice between a an existing production quality system, and spending the time and effort to write it from scratch in an almost identical if more immature language, you would take the latter option?
C# is a mature language; after all, C# is basically just Java with a few problems fixed. C# implementations are less mature than Java implementations, but not by much, and they are catching up fast.
You are just like the guy that argued C# was way superior because it suppotred operator overloading - having obviously never worked on a project of any size that used said feature lived to see the monster it became.
You are obviously not even a little bit of a manager if you let the presence of operator overloading become a problem in your projects. If you don't want it, don't need it, or can't handle it, just forbid it in your coding conventions.
Java is more open, I can contribute to the JCP.
Yes, you can contribute unlimited amounts of your time and money to Sun for free, who then end up owning your work. Great kind of "openness".
Can you contribute to ECMA?
Under ECMA rules, yes. But, more importantly, ECMA is just a standard: I can implement it or change the language it defines in whatever way I like. I can't do that with Java because Java is proprietary and can be implemented only under license from Sun.
Indeed, you'd have to be without a brain altogether to use a language where free implementation have patent issues,
Yes, languages like Java, where Sun holds numerous patents on key implementation features and where free implementations have serious patent issues. Fortunately, C# doesn't.
The problem isn't the coding error. Such errors will inevitably happen. They also happened when we designed mechanical printing presses, which might break down unexpectedly because of built-in design errors. The problem here is poor management.
In the past, creating single points of failure was hard: you had lots of men working on lots of printing presses. You couldn't do something as stupid as replacing them all in a single night--it just wasn't physically possible. Computers have just given greedy management the freedom to make more serious mistakes in a shorter amount of time. In this case, the mistake was upgrading a whole infrastructure at once and believing, naively, that that would necessarily go smoothly.
The PHP license seems to be working pretty well for PHP right now, so there may not be a need to change it. And, of course, if you write the software, you get to pick the license. But other people still have a right to debate and criticize you as well.
OTOH, RMS's concerns aren't (just) philosophical or "religious". RMS's views are based on decades of experience with bad things that can happen to software under different licenses; his concerns are real and informed.
If you want to be sure that software remains open source and that it will continue to survive and thrive, the GPL and LGPL are time-tested licenses whose consequences (both good and bad) people understand better. That doesn't mean other licenses aren't as good or maybe even better from an OSS perspective, it's just harder to know.
Java was such a spectacular success in the mid-90's because there was really not much else that was widespread for the non-Microsoft crowd back then, either in terms of languages or in terms of toolkits. Java got a lot of attention and had a lot of promise.
In 2004, we have lots of choices besides Java: C#, PHP, Ruby, and Python, to name just a few. And C++ has matured to the point where there are lots of good C++ libraries and toolkits (there weren't in the mid-90's).
I have mostly moved back from Java to C++ and Python, although I'm starting to use C# more and more as well.
Hmm... I wonder how much of Dell's revenue is made through U.S. government contracts in one way or another...
Yes, that is a weird kind of restriction. In the long run, the WTO may kill those US regulations.
Many governments all over the world are buying US equipment. If even only foreign governments decided to "buy domestic" for their IT needs, the US IT industry would collapse.
It may not have been OK, but it may also not have been the chemicals. It's pretty much a universal human phenomenon, it just reaches clinical significance only rarely.
I'm reasonably comfortable with the technology now - I know that a local company doing the laser correction does a "no touch" technique where they use the laser exclusively without the microkeratome
I found a couple of references:
A comparison between PRK, LASIK, and LASEK.
A discussion of Bowman's layer
so no foreign objects touch the optical surface of your eye
That sounds like marketing speak. Think about it: a laser erodes the surface of your cornea ("eye"), resulting in what amounts to a massive wound, left to heal while exposed to the dust and dirt of the outside world.
apparently it provides a smoother finished surface with less chance of issues at night.
Apart from any concerns over the long-term effects, larger risk of complications with non-flap techniques is apparently why the flap techniques were introduced.
I think you've hit-upon a key point. If your eyesight is so bad that you're effectively blind without glasses (incapacitated), I would think that it's a fair chance to take.
If your eyesight is so bad that you are effectively blind without glasses, you are already at a significant risk for serious uncorrectable vision problems down the road. The last thing you want to do is add even more risk into the mix by having your eyes operated on unnecessarily. Correcting a botched surgery may leave you with reduced vision but still functioning. But if your vision ends up reduced from both a botched surgery plus other problems, you may end up being effectively blind.
I know that a local company doing the laser correction does a "no touch" technique where they use the laser exclusively without the microkeratome so no foreign objects touch the optical surface of your eye - apparently it provides a smoother finished surface with less chance of issues at night.
I'm not completely up on the history of this kind of surgery, but that may actually be an older and less desirable technique. As I recall, the problem with just doing the surface is that it destroys a layer of cells that doesn't grow back, and there have been concerns that that layer of cells might actually be needed in the long run. Since nobody has lived with this kind of surgery for decades, it's impossible to know. I believe that's one reason why laser surgery got combined with a microkeratome: by removing cells from the inside, you leave the outermost layer undisturbed (well, except for the incision).
The problem is that innovation can't be bought with money or scheduled or be driven by market forces. Innovation is a social and cultural phenomenon. It requires that an entire society values education, thinking, reflection, and analysis. Even Microsoft's cash reserves can't fix the social and cultural problems we have in the US.
It also requires that a society frees its creative members from having to worry about whether they are going to have a job in six months--someone can't afford to spend time thinking about something that may become a big thing in 10 years if they need to help their company survive this year, every year. And, despite Microsoft's cash position, they are not a company that you can count on being secure in the long run: companies like Microsoft can fumble and face hard times.
The best thing Microsoft has done for innovation has probably been to create a few thousand people that made enough money to leave the company and pursue their own interests without having to worry about money. But that number is far too small to make a big difference to innovation overall: innovation and breakthroughs are rare events, even among a population that is perhaps smarter than average.
So, why do we need a strict language that will barf at the first syntax error ?
Languages don't barf at syntax errors, browsers do. And I suspect that IE will be very, very lenient with XHTML syntax errors, just like it has been very, very lenient with HTML syntax errors. Why? Not because Microsoft wants world domination (they want that, too, of course), but because they don't want to have to deal with support calls like "this page renders in other browsers and IE is broken for not rendering it". XHTML provides an opportunity for browsers to become more strict, but chances are, they won't, and it's unclear that they should.
The real problem is that {HT,X}ML wasn't designed for usability, so people make mistakes and take any shortcut they can. The way to fix that is not for software to barf at either users or authors, the way to fix that is to fix the f*cking {HT,X}ML syntax to be more user friendly: i.e., scrap the effort and start over and create a new, entirely different markup language for the web.
Of course, hell will freeze over before that happens, so authors will have to live with lousy syntax and browsers will continue to accept the errors users make. Life is not perfect.
Well, my mail provider deployed SPF quietly and the result was a few months of occasionall dropped mails: mail forwarding from one low-volume but important domain didn't work. When I looked into how that could happen, it seemed like SPF was working the way it was supposed to, it was just that unless the whole world switched to it, this sort of thing was bound to happen.
Since my spam filters are working pretty well, I concluded it was better to live without SPF and let the spam filters deal with the extra junk than to lose mail because of SPF's limitations.
the record industry would become the new AMTRAK. 'Bloated and inefficient as always, but now a drain on taxpayers wallets and liberty as well'.
AMTRAK isn't at fault for their problems: AMTRAK is a moderately subsidized business trying to compete with a heavily subsidized business: the auto industry.
The amount of money the US government is draining from our wallets and funneling to the auto industry and the amount of pressure the government creates for us to use cars are staggering.
And if you think the AMTRAK bureaucracy is big, have you ever even thought about the size and complexity of the bureaucracy needed to build and maintain public roads, from the local level to the federal level? And have you looked at the level of service you actually get from them? Or how they make decisions (like building perfect roads for the main roads politicians travel on in DC and creating special parking spots for politicians, while letting other parts of the city fall apart)?
If using the car were a truly pay-as-you-go proposition, you'd hardly ever use it. And if AMTRAK had the same level of political support as the auto industry, you'd have service to your doorstep.
Even if it all goes perfectly, chances are you'll still need glasses for the majority of the remainder of your life anyway: somewhere in your early 40's, it's inevitable that you'll have to get reading glasses.
Overall, I find it hard to understand why anybody would take the risk. I can see very little without my glasses, but so what?
At ever y stage you have shown yourself to have little common sense, only bling adherance to C#. What kind of idiot ties themselves to just one platform like that?
You misunderstand. I actually do most of my coding in C++ still, because it is a mature and efficient platform and there are tons of libraries that I reuse as needed. Neither Java nor C# even come close at this point.
The sad thing is in a few years you'll probably realzie your folly
No, what I realize half a dozen years later is that it was folly to support Java: Sun's promises of openness were empty and Java has been going nowhere technically. I'm not going to commit that folly again, which is why my adoption of C# is more cautious.
But with C#, much more is already on the table: the language definition is already decent, the standard is open and unencumbered, and the only thing that remains is for implementations to mature a little more. We have every indication that they are doing that, and it looks like in maybe a year, everything is in place to make a big switch.
Well that's a surprise. Did you try a search on the page? Perhaps for the word "Airy"? If so you might find this under cern.jet.math:
First of all, those are real Airy function.
Second, I pointed you at the complex Airy code in Fortran to give you an example of the kind of code people write using numerical data types like complex. If you manage to find an implementation of a complex Airy function in Java, all the better: compare it side-by-side with the Fortran code and note how much harder it is to understand.
You are an idiot for writing them if someone elase has already done so.
I don't re-implement Airy function; I write new kinds of numerical software. It just happens to be the case that the issues involved in that are comparable to the issues people face when porting code using complex numbers from languages like Fortran to languages like Java.
Actually it's a new focus by Gosling.
It's been a "new focus" by Gosling for half a dozen years. Sorry, but I'm tired of waiting. The biggest problems with the Java language have been fixed and the result is called C#, and it's here now.
Isn't this the opposite of the argument that Linux users have always made. That because it is so hard to get a PC (as opposed to parts) without Windows, that the number of linux installs running was higher than the shipments?
Yes. And, as usual, Gartner's report is flawed.
Large numbers of PCs are sold without OS. Large numbers of PCs run Windows for a few years and then have Linux installed on them to give them a second lease on life. And all of that doesn't even count the PCs that ship with Windows and have Linux installed on them right away.
Linux is widely used on the desktop. Not on the home desktop, but on the desktop: in educational settings, research, public areas, etc.
As with most things, people don't change their minds about their ideas, it's the people that die and are replaced by new people with new ideas.
Windows became popular in the 1980's/1990's, for various reasons. Now, it's just a big brand name owned by a big corporation, and it's ripe for being replaced by something else with the next generation.
Gartner's estimates may be fabricated (most of their data doesn't look all that reliable to me), but Google is not an unbiased sample even of desktop users, let alone an indication of what people are actually using. For example, Linux is widely used in research settings, universities, and other applications that would qualify as "desktop usage" or "interactive usage", but that are less likely to access Google.
I really wouldn't count on it passing the Mac any year soon.
On Google, no. On the desktop, it may already have.
No, you still don't understand.
The factor of two storage overhead is intrinsic given Java's semantics--it's not a question of compiler optimization.
The overhead in terms of running time is far larger than a factor of two, even with the best current compilers, and it is due to several factors: lack of locality, extra overhead on accesses, lack of vectorizability, lack of aliasing information, calls to the heap allocator that simply can't be eliminated, and garbage collection overhead, to name just a few.
There simply is no way to get anywhere near the efficiency of value classes without actually having value classes.
No, it's just a slightly different way of thinking about the problem. Your code shows that you are way too stuck on operator overloading, and will probably only produce trvial implementations in any language.
You bet I am stuck on operator overloading and that I only produce trivial implementations in any language anymore--numerical code is way too hard to write, debug, and understand otherwise, and numerical methods (the kind I myself come up with) have become far too complicated.
20 years ago, I used to write code in the style you suggest because that was the only way to get it to run fast. These days, we have languages that support abstractions efficiently. Languages like C# and C++. Java is just stuck in the past.
But if you'd like to find text supporting your poisiton, then by all means do so. I've already pasted legal text that supports my position, you go find anything that supports yours.
No, the text you pasted contradicts your position. Read it carefully:
So, Sun explicitly talks about their intellectual property rights that are "essential to practice the specification"; they only give you a license for that intellectual property subject to specific conditions. And they have the intellectual property that puts meat into that legal language: they have numerous patents related to Java, as well as the copyrights on the specs themselves.
What are the conditions?
Those conditions are hard to meet. Furthermore, it is unclear whether there is any way you can independently prove that you have, in fact, met them. Even if you have met them, Sun can kill your work by changing the specification when they want to--they own the specification.
It's true to say you cannot officially lable a project with the "Java" trademark. But that is it - as for writing something exactly the same as Java, anyone can do it.
No, that is not the situation. The situation is that Sun owns the copyright on the specification and they own patents on key Java technologies. In order to practice the specification, you need a license for both. They only give you that license under specific, restrictive conditions, conditions that nobody has been able to meet for a full Java implementation so far.
I wonder what RMS thinks about MONO? I'm pretty sure he would dislike the patent laden spec it's built on quite a bit more.
Quite to the contrary. The FSF and RMS support both Mono and Portable.NET, two separate implementations of C#.
In contrast, RMS cautions people and asks them to stay away from Java.
The great thing about Java (I think I've mentioned this before) is I don't have to port that code - it's already been done, and by people smarter than me and certainly a lot smarter than you!
I write that kind of code. That's where those kinds of libraries come from. Someone has to write them. And Java just sucks for writing them.
CERN Java Libraries
As far as I can tell, the CERN Java libraries don't contain complex Airy functions.
And look at the date: those pages have been updated for the last time in 2002. It's another indication that people have largely given up on Java for scientific computing because Sun has failed to make the necessary changes. I tried. Other people tried. We gave Sun years to get their act together. They just haven't.
Great, now try porting a complex Airy function to Java using those kinds of definitions. Welcome to writing numerical code in what amounts to assembly language.
No, it's called "data abstraction". C++ supports this kind of data abstraction efficiently. C supports it efficiently. Pascal and Modula do. That kind of efficient data abstraction also was a key goal of Fortran 9x, and Fortran 9x supports it efficiently as well. C# supports it efficiently. The JavaGrande group recommended it for Java, but Java still doesn't support it efficiently half a dozen years later.If I wanted to write code like that, then I might as well use Fortran 77: it has even better compilers than Java, after all. But that style falls apart when writing more complicated expressions.
C#, like dozens of languages before it, supports the abstractions I like to use for writing code. Java doesn't. That just makes C# a better tool for me, as well as many other people interested in writing numerical, graphics, scientific, and engineering software.
Yes Sun owns the COPYRIGHT for the spec. But that doesn't matter because you are granted a license to use the spec as you will for the creation of an implmentation.
Sun owns the copyright for the spec, in addition to patents on the technology. You can implement the specification only under license, otherwise you violate both Sun's patents and Sun's copyright. Some of the conditions that you have to agree to in order to implement the specification are listed in the section you quote. And those conditions place significant restrictions on implementors, so it is false to say that you can implement the spec "as you will".
Did you read the text you linked? No, it talks nowhere about patents. In fact it even talks about GCJ, the Free implmentation of Java.
The text I linked to states that FSF has concluded that the Java specification is not implementable without restrictions and that this causes problems for OSS development, and that is also my point.
Well, now it looks like Sveasoft (one of the third party developers) has decided to restrict access to their modified source code to subscribers - that also will need to pay $49 for a CD rather than being able to download it
That is not necessarily a GPL violation--the GPL doesn't require you to make modified sources available via FTP. You can charge for the distribution of both source and binary with the GPL.
What you can't do is restrict redistribution of the sources. And, if you give/sell someone a binary somehow, you must make the corresponding sources available to them "at cost".
So, they can charge $49 for a CD containing sources, but you can put the GPL'ed sources that are on it on-line if you like.
The $49 CD might constitute a violation of the GPL if Sveasoft is distributing binaries via some other channel. But even then, $49 might still be considered on the edge of "at cost" distribution. And, as I said, if it bothers you, someone can pay that amount once and put up its GPL'ed content for FTP himself, killing any further business. With the GPL, market mechanisms make the "at cost" distribution provision pretty self-enforcing.
Consider:So, how much does the array of 1000000 Complex numbers take? In Java, it's 20 Mbytes (4 for each pointer, 8 for each header, 8 for the data). In C#, it's 8 Mbytes (8 for each data item).
How many heap allocations does the summation take? In Java, it allocates 8 Mbytes of garbage with 1 M calls to the storage allocator. In C#, it allocates no garbage and makes no calls to the storage allocator.
Look moron, I told you that ANY PART OF THE JAVA SPEC HAS FREE AND UNENCUMBERED USE OF ALL PATENTS INVOLVED. That means ANYONE can make use of the technologies, and Sun or other patent holders have explicitly given up all rights to those patents.
No, the "moron" is you, because that simply isn't true. Sun likes to pretend that that's the situation, but if you actually read the licenses, you'll see that it is not true.
That's the problem: not only is Java highly proprietary, Sun is lying about it. And I'm not alone in my views, the FSF has come to similar conclusions.
No, the community owns the results - for instance if I contribute to a JCR the results could also end up in GCJ, or in Jikes, or wherever. That's what it means to have a truly open process instead of a puppet standards body.
That, too, is wrong. Take a look at the legal verbiage that comes, with, say, the Java API XML Parsing Specification, final release: it is owned by Sun and you can only use it if you agree to detailed and specific compatibility requirements.
Sun may tolerate the implementation of open source versions for now, but they can change their mind at any time.
How do you think GCJ can be written?
Gcj is not a Java implementation: neither is it compatible, nor is it certified. Furthermore, even in its incompatible and incomplete state, gcj probably violates Sun's intellectual property. And letting software developers fall into the trap of starting to rely on patented ideas and then assert the patents and other rights a few years later has become a common strategy. Developers need to be smart about it, and the smart thing to do with Java is not to touch it.
That's about it for me, you are a waste of time since you obviosuly can't learn anything.
Not from you. But you could learn something from me.
and have ignored every point I have made about ACTUAL performance in Java being superior vs theoretical performance boons you will never see.
For the applications that interest me, C# is already faster than Java simply because Java lacks the necessary primitives. And I'm sure Mono will catch up performance-wise with Sun's Java implementation quite quickly. And while Mono's Microsoft heritage is not something I particularly like, Mono's and C#'s legal situation is still far better than Java's.
Depends on what kind of text the designer uses : It is perfectly possible to have text selections within Flash documents. [...] Again, this would be a design choice of the webdesigner.
So, why do designers keep making user-hostile choices?
Ohwait, now we -aren't- looking for uniformity in browsers anymore ? What did I miss ?
You never were supposed to "look for uniformity" in browsers. Uniformity in browsers are a bad idea: people need different colors, text sizes, and user interfaces, depending on what their backgrounds are and what they are trying to do.
Then why haven't you started using some sort of Flashblock extension yet ?
The question is not whether I block Flash (I do), the question is why designers keep producing sites-that-suck with Flash, and why some information now is only available in that format. And, yes, you can bet that if a company produces a site-that-sucks, usually in Flash, weigh whether it is worth the hassle putting up with it or just buying somewhere else.
What's so wrong with a class with public members, if you are really wanting a value class?
What's wrong with it is that it takes more than twice as much memory as the value class, plus extra pointer dereferences for member access, plus heap memory allocation for many operations. What is wrong with it is, in short, that it is horrendously inefficient.
So you're telling me that given the choice between a an existing production quality system, and spending the time and effort to write it from scratch in an almost identical if more immature language, you would take the latter option?
C# is a mature language; after all, C# is basically just Java with a few problems fixed. C# implementations are less mature than Java implementations, but not by much, and they are catching up fast.
You are just like the guy that argued C# was way superior because it suppotred operator overloading - having obviously never worked on a project of any size that used said feature lived to see the monster it became.
You are obviously not even a little bit of a manager if you let the presence of operator overloading become a problem in your projects. If you don't want it, don't need it, or can't handle it, just forbid it in your coding conventions.
Java is more open, I can contribute to the JCP.
Yes, you can contribute unlimited amounts of your time and money to Sun for free, who then end up owning your work. Great kind of "openness".
Can you contribute to ECMA?
Under ECMA rules, yes. But, more importantly, ECMA is just a standard: I can implement it or change the language it defines in whatever way I like. I can't do that with Java because Java is proprietary and can be implemented only under license from Sun.
Indeed, you'd have to be without a brain altogether to use a language where free implementation have patent issues,
Yes, languages like Java, where Sun holds numerous patents on key implementation features and where free implementations have serious patent issues. Fortunately, C# doesn't.
The problem isn't the coding error. Such errors will inevitably happen. They also happened when we designed mechanical printing presses, which might break down unexpectedly because of built-in design errors. The problem here is poor management.
In the past, creating single points of failure was hard: you had lots of men working on lots of printing presses. You couldn't do something as stupid as replacing them all in a single night--it just wasn't physically possible. Computers have just given greedy management the freedom to make more serious mistakes in a shorter amount of time. In this case, the mistake was upgrading a whole infrastructure at once and believing, naively, that that would necessarily go smoothly.
The PHP license seems to be working pretty well for PHP right now, so there may not be a need to change it. And, of course, if you write the software, you get to pick the license. But other people still have a right to debate and criticize you as well.
OTOH, RMS's concerns aren't (just) philosophical or "religious". RMS's views are based on decades of experience with bad things that can happen to software under different licenses; his concerns are real and informed.
If you want to be sure that software remains open source and that it will continue to survive and thrive, the GPL and LGPL are time-tested licenses whose consequences (both good and bad) people understand better. That doesn't mean other licenses aren't as good or maybe even better from an OSS perspective, it's just harder to know.
Is it? Hm. To which languages? C#?
Java was such a spectacular success in the mid-90's because there was really not much else that was widespread for the non-Microsoft crowd back then, either in terms of languages or in terms of toolkits. Java got a lot of attention and had a lot of promise.
In 2004, we have lots of choices besides Java: C#, PHP, Ruby, and Python, to name just a few. And C++ has matured to the point where there are lots of good C++ libraries and toolkits (there weren't in the mid-90's).
I have mostly moved back from Java to C++ and Python, although I'm starting to use C# more and more as well.
Hmm... I wonder how much of Dell's revenue is made through U.S. government contracts in one way or another...
Yes, that is a weird kind of restriction. In the long run, the WTO may kill those US regulations.
Many governments all over the world are buying US equipment. If even only foreign governments decided to "buy domestic" for their IT needs, the US IT industry would collapse.