Microsoft will have to change. I think that the business of Microsoft, the company of Microsoft, is going to continue to succeed. But I think the business model of Microsoft is going to have to change.
And I don't think that Longhorn will change the dynamics all that significantly. There's some pretty wonderful technology in Longhorn. But if you look at the release cycle, you're talking 5-6 years - and now they're saying, well maybe we better accelerate and take some pieces and put Avalon into Windows XP rather than waiting for the full Longhorn. But they can't just keep up with the pace of a Web-based offering where you can roll out new products to all your users without even asking, and update products dynamically. I just think that [Web-based] software services have a better model. So I think that Microsoft will continue to dominate on the PC, but the PC is going to be a smaller and smaller part of the entire business.
--Tim O'Reilly
Read the rest in Read/Write Web: Tim O'Reilly Interview, Part 1: Web 2.0
Rigid languages make types important, so whenever you get a type "wrong" (i.e. different from the declared type signature), it's a bug, and the compiler balks loudly. No wonder a lot of these bugs are caught; the language sets the programmer up to make them. By contrast, in a dynamic language, what a type or object *does* is important, not if it matches a certain declaration. As a result, programmers can focus on the actual functionality without having to worry about ballast, and the language doesn't introduce extra opportunity for errors.
--Hans Nowak
Read the rest in zephyrfalcon.org :: Efectos Especiales
It ain't so much the things we don't know that get us in trouble. It's the things we know that ain't so.
--Artemus Ward
And speaking of disasters: if you get hit by a bus, can your significant other get into your system to answer e-mail from clients, collect the last few payments you're due, or see the household financial records? Ordinarily I would caution you not to write down passwords, but to cover these scenarios, I suggest leaving a page or two of network instructions in your safety deposit box. They'll come in handy for your executors too.
--Mike Gunderloy
Read the rest in Developer Central Blog - ADTmag.com
Creating sophisticated software requires a team effort. One person can use smoke and mirrors to make a demo that dazzles an audience. But shipping that to a million customers will expose its flaws and leave everyone looking bad. It is a cliche in our business that the first 90 percent of the work is easy, the second 90 percent wears you down, and the last 90 percent - the attention to detail - makes a good product. Making software that is simultaneously easy to learn, easy to use, friendly, useful, and powerful takes people with an incredible combination of skills, talent, and artistry working together with intensity and patience.
--Ron Avitzur
Read the rest in The Graphing Calculator Story
My general approach to the Collection classes is that if I don't like something's contract, I create exactly what I need. For example, if I need something that differs from the presupposed invariants of Collection.add(Object), then I don't implement Collection. Instead, I'll write the simplest API possible, and hide the simplest implementation possible behind it. Sometimes this turns out to be a domain-level class, but sometimes it's just a simplified utility without all the Collections baggage.
--Greg Guerin on the java-dev mailing list, Wednesday, 24 Nov 2004
People don't suffer from Asperger's. They suffer because they're depressed from being left out and beat up all the time.
--Justin Mulvaney
Read the rest in The New York Times > Health > How About Not 'Curing' Us, Some Autistics Are Pleading
Groovy seems to have this underwhelming lack of vision. Who is it trying to target, how is it going to get to the masses? If I wanted to hack and slash something in a hurry I'd use Perl or Python. I wouldn't use anything that was dependent on a large JVM overhead, that's putting the server under strain for the wrong reason. I can't see the Groovy adoption rate going skyhigh with the exception of some ubergeek Java developers. If anyone has put Groovy in a production setting I would love to know the outcome in six months time.
--Jason Bell
Read the rest in Pushin' and pullin' the Groovy (jasonbell.blog-city.com)
don't ever use jre/lib/ext for your own JARs, you'll get nothing but grief
--Jason Hunter on the jdom-interest mailing list, Monday, 29 Nov 2004
In general, Python requires you trust your programmers. People give Java grief about its restricted environment and static typing, but if you don't trust the programmer to do a good job, at least with Java they (maybe) can't mess things up as badly for everyone else working on a project. You can mess things up royally with Python. I like working with a language that respects my intelligence -- no final classes, no type restrictions, no (truly) private methods -- but that's not without its costs.
In general, Python rewards highly-skilled programmers with a considerably increased productivity, moreso than in low-level languages. We talk about how Python is also easy to learn and maintain, and that's still true, but it doesn't mean that it evens out the differences in productivity between programmers. In fact, quite the opposite, it makes those most productive programmers more productive and more valuable. That Python is easy to learn and maintain means that there's less risk in using a highly skilled, highly productive programmer. In other languages you risk being left with a program that only another highly skilled programmer can maintain, and that's less likely to occur with Python (for an appropriate definition of "highly skilled").
--Ian Bicking
Read the rest in Respecting The Programmer
This is the kind used by software startups founded by ex-Oracle salesmen where the price isn't on the website anywhere. No matter how much you search to find the price, all you get is a form to provide your name, address, phone number, and fax number, for some reason, not that they're ever going to fax you anything.
It's pretty obvious here that the plan is to have a salesman call you up and figure out how much you're worth, and then charge you that much. Perfect segmentation!
This doesn't work so good either. First of all, the low end buyers are just going to move on. They will assume that if the price isn't listed, they can't afford it. Second, the people who don't like salesmen harassing them will just move on.
Worse, as soon as you send a message that your price is negotiable, you're going to end up reverse segmenting. Here's why: the big companies you sell to, the ones who should be willing to give you the most money, are incredibly sophisticated about purchasing. They'll notice that your sales guy or gal is working on commission, and they'll know that he's got quarterly quotas, and they'll know that both the salesperson and the company are going to be incredibly desperate to make a sale at the end of the quarter (the salesperson to get his commission, and the company to avoid getting their knees shot off by their VCs or Wall Street). So the big customers will always wait until the last day in the quarter and end up getting a ridiculously good price which somehow involves weird accounting shenanigans so the company can book a lot of revenue that they're never really going to get.
--Joel Spolsky
Read the rest in Joel on Software - Camels and Rubber Duckies
Sun's mealy-mouthed, half-assed, Janus-faced approach to "opening" up Java is, frankly, insulting. Sun: if you want to continue with your dictatorial control of Java, just be honest and say so but stop all of the weasely, self-righteous BS -- or return to your bold roots and get serious about truly opening Java up to the world.
--John D. Mitchell
Read the rest in John D. Mitchell's Blog: JCK's New Bait-n-Switch Licensing
One of the bills that was under consideration in Congress before it adjourned at least took a step in the right direction. It would have required adware vendors display a notice saying: "This program will collect information about Web pages you access and will use that information to display advertising on your computer. Do you accept?' But while even that was much too blunt for the tastes of the direct marketing lobby, I fear it does not quite make what the adware folks are up to clear enough. So, just to be helpful, allow me to propose my own version of an honest adware notice:
"Warning: This program will display innumerable pop-up ads over content you might wish to see. It will watch what you do on the Internet and report that information to people of questionable motives. It might automatically download additional software from other parties that will also display ads and/or collect information about you. Installing this program will thus inevitably degrade the performance of your computer until it's a useless piece of garbage. Do you agree, bozo?"Well, maybe it needs works, but you get the idea. Let's just hope our new Congress does as well.
--Ed Foster
Read the rest in Ed Foster's Gripelog || Honest Adware Notice
For what definition of "optimal"? Which is more important: fast code, small code, or maintainable code? Usually, you get to pick two. So which two do you pick? Especially given that you don't know how the code is going to be used. For some people, a *small* ArrayList is more important than a *fast* one. For others, a larger-but-faster one is better. How do you keep both sets of people happy?
--Glen Fisher on the java-dev mailing list, Monday, 29 Nov 2004
To criticise a person for their race is a manifestly irrational and ridiculous. But to criticise their religion - that is a right. That is a freedom. And a law that attempts to say you can criticise or ridicule ideas, as long as they are not religious ideas, is a very peculiar law indeed.
--Rowan Atkinson
Read the rest in Guardian Unlimited | Special reports | Law to safeguard religion is no joke, warns Blackadder
A piece of art is not a loaf of bread. When someone steals a loaf of bread from the store, that's it. The loaf of bread is gone. When someone downloads a piece of music, it's just data until the listener puts that music back together with their own ears, their mind, their subjective experience. How they perceive your work changes your work. Treating your audience like thieves is absurd. Anyone who chooses to listen to our music becomes a collaborator. People who look at music as commerce don't understand that. They are talking about pieces of plastic they want to sell, packages of intellectual property. I'm not interested in selling pieces of plastic.
--Jeff Tweedy, Wilco
Read the rest in Wired News: 'Music Is Not a Loaf of Bread'
Truly, the relational data model is a wonderful innovation, and it would be an absolute disaster to replace it with flawed persistence technologies like XMLDBs or OODBMS. Fortunately, that simply won't happen, since there is simply no industry interest or momentum behind either.
Technologies like OODBMS sacrifice sound, application technology agnostic data management for sort-term convenience (convenience for one single application, written using one particular programming language). Relational technology essentially completely replaced network or hierarchical database technology, and there were excellent reasons why that happened. We should most certainly not be reviving either of those discredited approaches by slapping on the latest buzzwords (OO, XML, etc) as window dressing.
--Gavin King
Read the rest in JavaFree.com.br - Content
the C++ language consciously chose to emphasize "power" and "flexibility". That sounds nice initially, but unfortunately it also means that there is very little you can rely on and almost any simple program statement can have weird side effects. In C++ the statement "a = b;" must be approached with caution.
--Graham Hamilton
Read the rest in java.net Weblogs: Evolving the Java Language
Essentially, if you've been using Java for a while and are new to Python, do not trust your instincts. Your instincts are tuned to Java, not Python. Take a step back, and above all, stop writing so much code.
To do this, become more demanding of Python. Pretend that Python is a magic wand that will miraculously do whatever you want without you needing to lifting a finger. Ask, "how does Python already solve my problem?" and "What Python language feature most resembles my problem?" You will be absolutely astonished at how often it happens that thing you need is already there in some form. In fact, this phenomenon is so common, even among experienced Python programmers, that the Python community has a name for it. We call it "Guido's time machine", because sometimes it seems as though that's the only way he could've known what we needed, before we knew it ourselves.
So, if you don't feel like you're at least ten times more productive with Python than Java, chances are good that you've been forgetting to use the time machine! (And if you miss your Java IDE, consider the possibility that it's because your Python program is much more complex than it needs to be.)
--Phillip J. Eby
Read the rest in dirtSimple.org: Python Is Not Java
What we really need is a complete paradigm shift in traffic engineering and city planning to break away from the conventional ideas that have got us in this mess. There's still this notion that we should build big roads everywhere because the car represents personal freedom. Well, that's bullshit. The truth is that most people are prisoners of their cars.
--Ian Lockwood
Read the rest in Wired 12.12: Roads Gone Wild
Sprinkling Open Source pixie dust on a product doesn't suddenly make it more succesful, faster or better.
--Dare Obasanjo on the xml-dev mailing list, Friday, 15 Oct 2004
If .NET had started just as some abstract project to change the way that people program, then I'd be willing to wager that it would have gone down in flames at some point. What kept the teams focused and moving forward was the fact that, let's be honest here, Java was breathing down Microsoft's neck. Without that serious competitive pressure, odds are pretty decent that the .NET project would have eventually collapsed under its own weight because we wouldn't have had the kinds of checks and balances that competition imposed on us. But the reality of needing to compete with Java helped keep our eyes on the prize, as it were, and counterbalanced the tendency of black hole projects to spin out of control.
--Paul Vick
Read the rest in Was .NET a black hole project?
Stating that some language feature or common programming idiom (like accessors) has problems is not the same thing as saying you should never use them under any circumstances. And just because a feature or idiom is commonly used does not mean you should use it either. Uninformed programmers write many programs and simply being employed by Sun Microsystems or Microsoft does not magically improve someone's programming or design abilities. The Java packages contain a lot of great code. But there are also parts of that code I'm sure the authors are embarrassed to admit they wrote.
--Alan Holub
Read the rest in Why getter and setter methods are evil
I wonder how solid Microsoft's coding would become if strategic governments around the world removed the liability shield that software manufactures now currently enjoy. They would then have some real financial incentive to get it right the first time, instead of this Computer Science 101 coding they are continually churning out.
--Richard Starnes
Read the rest in Microsoft to fix 'download warning' flaw | CNET News.com
The interesting thing is that people always want something to be correct and complain bitterly when it isn't. Then, once it *is* correct, they complain bitterly that it's slow. ;)
--Andy Clark on the xerces-j-user mailing list, Tuesday, 23 Nov 2004
Another reason spam is so bad is that so many companies use Microsoft Outlook for reading e-mail. Again, because that program is written in C, it's quite easy to design a virus to go through your e-mail address book and broadcast spam to all the people you know. As soon as your company starts using Outlook, you can see emergent, horrible, almost biological things start to happen. So by using Outlook, you're not practicing safe e-mail. We need a "condomized" version of it.
--Bill Joy
Read the rest in Fortune.com - Technology - Joy After Sun
Don't believe anyone who claims to have a wonderful new framework that'll solve your problems if only you'd migrate everything you do to it. The web is all about separate pieces, loosely joined. The really clever businesses know how to manage uncertainty, they're not looking to eliminate it. Circling the wagons will not integrate you into the web, neither will it promote web-like innovation inside a business.
--Edd Dumbill
Read the rest in Edd Dumbill's Weblog: Behind the Times
If you look at Java, the language is regular and small enough that creating a 100% bug-free parser is an achievable goal (well, at least pre-1.5 :-).
--Mike Spille
Read the rest in Groovy Ambiguities, Optional Elements, and Syntax Shortcuts Considered Sucky
If I can't be The Man, then I at least want to be the owner of a Hummer - with American flag decals all over the back bumper, because Hummer owners are, on average, a little more patriotic than you and me.
Yes, I want to drive the mother of all gas-guzzlers that gets so little mileage you have to drive from gas station to gas station. Yes, I want to drive my Hummer and never have to think that by consuming so much oil, I am making transfer payments to the worst Arab regimes that transfer money to Islamic charities that transfer money to madrassas that teach children intolerance, antipluralism and how to hate the infidels.
And when one day one of those madrassa graduates goes off and joins the jihad in Falluja and kills my neighbor's son, who is in the U.S. Army Rangers, I want to drive to his funeral in my Hummer. Yes, I want to curse his killers in front of his mother and wail aloud, "If there was only something I could do ..." And then I want to drive home in my Hummer, stopping at two gas stations along the way.
--Thomas Friedman
Read the rest in The New York Times > Opinion > Op-Ed Columnist: In My Next Life
open sharing of knowledge ends up resulting in better development—also that cooperation sometimes needs to be enforced with licenses because there are greedy people out there that simply don’t care about poaching other people’s work. I guess you could call the belief in sharing of knowledge a ‘philosophy,’ but I just think it’s a fact. It’s what differentiates science from alchemy or witchcraft. To me, anybody who doesn’t believe in it is just wearing some serious blinders.
--Linus Torvalds
Read the rest in CRN | CRN Interview: Linus Torvalds
The hypocrisy embedded in this tale is becoming a national running gag. As in the Super Bowl brouhaha, in which the N.F.L. maintained it had no idea that MTV might produce a racy halftime show, the league has denied any prior inkling of the salaciousness on tap this time - even though the spot featured the actress playing the sluttiest character in prime time's most libidinous series and was shot with the full permission of one of the league's teams in its own locker room. Again as in the Jackson case, we are also asked to believe that pro football is what Pat Buchanan calls "the family entertainment, the family sports show" rather than what it actually is: a Boschian jamboree of bumping-and-grinding cheerleaders, erectile-dysfunction pageantry and, as Don Imus puts it, "wife-beating drug addicts slamming the hell out of each other" on the field.
--Frank Rich
Read the rest in The New York Times > Arts > Frank Rich: The Great Indecency Hoax
The essence of the bazaar is not voting -- a concept I never mentioned in "The Cathedral and the Bazaar" and don't endorse -- but the right to fork. Anyone who doesn't like Linus's decisions about Linux can fork the codebase, start his own effort, and compete for developer and user attention on a legally equal footing. *That* is the essence of the bazaar.
Sun can vapor on about voting and committees all it wants, but at the end of the day JCP is still a single point of control, the Java reference implementation and class libraries are under a proprietary license, and nobody can legally fork them. As long as that continues to be the case, Java will be firmly stuck in cathedral-land and any claim otherwise will be disingenuous crap.
--Eric S. Raymond
Read the rest in Open Letter to Sun from Eric Raymond
Java generics don't allow anything *new* to be done, it just allows existing or future Java code that employes the "generic idiom" (essentially using Object, or often some base interface to write code that operating independent of type) to carrying on doing exactly that same thing, only with greater static type safety.
If a particular piece of Java code was bad or good design before generics, it remains bad or good after. I do speculate however that many uses of the generic idiom which *are* bad design will provide difficult to parameterize for enhanced static type checking, and that this in fact could be used as a "smell" for flushing out such bad design in code.
--Wilhelm Fitzpatrick on the java Dev mailing list, Thursday, 28 Oct 2004
Traditionally, some programmer named Scott gets assigned the invoicing system for the dapper new leasing application, bangs away at it in his cube for about six months, shoves it off to testing at 2 am, steps off a curb in front of the proverbial bus, and there goes the project. Okay, perhaps that extreme example is not entirely fair to the traditional process. However, it does help illustrate the issue many Agilists have with assigning specific application areas to specific programmers: Nobody understands anybody else’s code. Because of that, defects fester in code that is never fully reviewed by a second set of eyes, shifting programmers to troubled areas of the system halfway through the project is difficult at best, and turnover can really smart.
Collective ownership repeals the implicit or explicit relationships between programmers and components. Instead, programmers are encouraged to work in areas they have not worked in before. Meanwhile, everyone on the team is allowed time to assist other members in areas that they know well. This initially can slow down the progress of the team, but its benefits can save significant time and increase productivity in the long run.
--Peter Schuh
Read the rest in 7 Simple Ways to Add a Little Agile without Going to Extremes
Unfortunately, given a choice, programmers as a class reliably choose big, ugly, powerful languages over small, elegant ones. How many Pascal programmers are there these days?
--Glen Fisher on the java-dev mailing list, Friday, 29 Oct 2004
I think the problem was over here, somewhere between the chair and the keyboard.
--Jean Luc Bouchard on the AppleScript Users mailing list, Friday, 19 Nov 2004
In software, paradoxical as it sounds, good craftsmanship means working fast. If you work slowly and meticulously, you merely end up with a very fine implementation of your initial, mistaken idea. Working slowly and meticulously is premature optimization. Better to get a prototype done fast, and see what new ideas it gives you.
--Paul Graham
Read the rest in Made in USA
As for “pre-emptive strike,” there has been a formal consensus on this since the UN Charter and the Nuremberg Tribunal. The formal consensus, the supreme law of the land in the US, bans the resort to force with narrow exceptions: when authorized by the Security Council, or in response to armed attack until the Security Council acts, in the latter case when “the necessity for action is instant, overwhelming, and leaving no choice of means, and no moment of deliberation.” These principles were established because of explicit international rejection, led by the US, of doctrine that now prevails: that resort to force is legitimate if we “know”—that is, have some reason to believe—that someone has the intention of attacking us. That doctrine would, for example, justify Japan’s attack on US military bases in Pearl Harbor and Manila. The Japanese could read the US press, with its lurid discussion of how US bombing could exterminate this inferior and vicious race by burning down Japan’s wooden cities, and they knew that flying fortresses capable of bombing Japan from Pearl Harbor and Manila were coming off the Boeing Assembly line, so they “knew” that there was a serious threat of extermination, not just terror. Therefore, according to the “Bush doctrine,” shared by Kerry and elites generally, Japan had every right to bomb Pearl Harbor and Manila.
--Noam Chomsky
Read the rest in How to Fight Terrorists (ZNet Blog)
The OO design process centers on use cases: a user performs standalone tasks that have some useful outcome. (Logging on is not a use case because it lacks a useful outcome in the problem domain. Drawing a paycheck is a use case.)
--Alan Holub
Read the rest in Why getter and setter methods are evil
Stupid illustration: let's say you live in an apartment and have two cars, but only one parking spot, so you park your second car in your neighbour's spot, without his permission. He gets more and more pissed off. Eventually, he spray paints your car windows bright orange. Should he have done that? No. Should you call the cops and have him punished? Yes. Should you park your car somewhere else in future, or would that be giving into terrorism?
Chomsky says park your car somewhere else - and preferably do it before your neighbour loses his temper. In contrast, the current administration would have you go into your neighbour's house with a shotgun and tell him to shut the fuck up with his stupid whining about his stupid fucking car park.
--Alan Green
Read the rest in Joe Grossberg: Noam Chomsky and the War on Terror
The latest National Geographic has an article about squid who change their colors. Often they have reasons for changing, but sometimes I think they just change for the heck of it. A couple of years ago I was snorkeling in the Bahamas, and got to watch a school of cuttlefish swimming along. They weren't hiding or courting or anything like that, but as they swam along they would all change color to brown, then yellow, then red, then green. It's like, "Hey guys, wouldn't it be cool if we all ran the same screensaver at the same time." Sort of a cultural identity thing, I suppose.
The interesting thing was that while I was watching, they forked. You know, like BSD. One group of cuttlefish went off one way, and the other group went off another. Maybe they had a personality conflict. Maybe they had a fight over licensing. I dunno. But the cool thing was that the moment they forked, they desynchronized their screensavers. This group wanted to stay green, while the other group wanted to go on and try out some purple. Who knows what goes on in the mind of a cuttlefish — it's possible that they split specifically over the color issue. Wouldn't be the first open source project to split over the color of the bikeshed.
--Larry Wall
Read the rest in Perl.com: The State of the Onion
If you're reading this in IE, drop what your're doing, click over to http://www.mozilla.org/products/firefox/ and click on "Free Download". Install it, and run it. It's really that much better.
--Micah Dubinko
Read the rest in Push Button Paradise
Open Source has shown us that well understood software can and will be commoditized. The operating system has been. The Web server has been. The Applications Server (to the extent folks need it) has been and more message buses are being written in open source. The entire XML processing stack is open source. So the value in "well understood" software today is in the support, not the code. The community that forms around open source software seems quite up to the job of educating itself. The real value in my opinion has moved from the software to the information and the community. Amazon connects you to books, movies, and so on. eBay connects you to goodness knows how many willing sellers of specific goods. Google connects you to information and dispensers of goods and services. In every case, the push is for better and more timely access both to information and to people. I cannot, for the life of me, see how Longhorn or Avalon or even Indigo help one little bit in this value chain.
My mother never complains that she needs a better client for Amazon. Instead, her interest is in better community tools, better book lists, easier ways to see the book lists, more trust in the reviewers, librarian discussions since she is a librarian, and so on.
--Adam Bosworth
Read the rest in Adam Bosworth's Weblog: What is the platform?
In 2004, President Bush allotted $270 million to "abstinence education," up from the $97.5 million budgeted in 2000. I'm not against abstinence, but I'm horrified by the assumption that, despite what we know of millennia of human behavior, teenagers are going to stop having sex because adults are telling them to. How many of your peers purposely abstained from sex when you were a teenager? Exactly.
--Regina Lynn
Read the rest in Wired News: E-tail Fraud Remains a Threat
You know, it often seems strange to me that there isn't a discipline of "API Usability" akin to the UI usability. We are actively looking at how to make common uses of the APIs simpler, and provide better tools support. Look for more on this in the coming months. One of our most senior developers is specifically tasked with fixing this, and API Usability is now much more a part of the API review process. I really think 'Writing Usable APIs', if well done, would be a real winner of a book title for a tech publisher. I've never seen it addressed well, if at all.
--Tim Boudreau. NetBeans
Read the rest in NetBeans - Software Reality
One thing I’m not going to do is take part in the Democrat circular firing squad, wringing my hands about what wasn’t done, or where we went wrong, why our message didn’t get across. Why not? Because I’m from Texas. Unlike most of my New York friends, I don't have to give red-staters the benefit of the doubt. I was raised devoutly in the Southern Baptist Church - in fact, First Baptist of Dallas, the south’s largest Baptist church, and the one Billy Graham belonged to. I know these people who voted for Bush. Some of them are bullies. Some are outrageous hypocrites, girls who would savage each other’s reputations and then get up in front of the choir and give the most sincere-sounding pious homilies. Many use their so-called Christian “faith” as an excuse to assume their own infallibility and never examine their own motives - just like W. When I was 15 I was taken to a week-long convocation, in a huge stadium filled with believers, called the Bill Gothard Seminar. Gothard was a charismatic guy who preached that the Christian life consisted of sound business practices, and that if you lived it, God would make you rich - in fact, you could tell who was really godly, because by the logic of the belief, they had the most money. I was thoughtful enough at 15, and familiar enough with what Christ was actually quoted as saying, to be somewhat horrified by this as it sunk in.
One of the things I’m most ashamed of in my life is something I did for the Church. The First Baptist Church of Dallas grouped us choir members in pairs and sent us out on the streets to proselytize. We were handed sheets of questions, and instructed to tell passersby that we were conducting a survey. So the nice people would stop to be helpful by answering our questions, and we would gradually lead up to trying to convert them, getting them to pray there on the street and dedicate their life to Christ. It was really embarrassing - lying to strangers as instructed to by the church. Bait ‘n’ switch is a perfectly acceptable strategy to the Southern Baptist Church - no wonder W. doesn’t understand why anyone should object to it. The absolute desirability of the end always justified any means, no matter how dishonest, which is exactly the pathology we see in the White House today.
--Kyle Gann
Read the rest in ArtsJournal: PostClassic
When I arrived home last night, I had several email messages from reporters asking me about my experience. One of them really disturbed me: "After being an election judge, have you changed your opinion at all about these DREs?" I suppose it disturbed me because it implied that somehow my opinion on DREs was based on some superficial measure that could change when I saw them in action. I think the question ignores the expertise of computer scientists, including me, with respect to computer security. It is like asking a surgeon who states that a particular medical procedure is risky whether he might change his opinion because there was a successful operation using that procedure somewhere in the world. Imagine if, universally, all of the heart surgeons in the world said that a new medication was dangerous and could lead to heart attacks but that the drug's manufacturer claimed that it was safe. Would people feel comfortable taking the medication? Would doctors be asked whether they changed their opinion on the medication because somebody took it and did not die? It is a common problem. The press likes to simplify the issue and boil it down to sound bites from each side to produce what they consider "balanced" stories.
--Avi Rubin
Read the rest in My day as an election judge - take 2
Alan Kay's Turing Award lecture was about three things: the power of a simple idea pursued relentlessly (the meme trail from Sketchpad and Simula to Smalltalk to Squeak), the as-yet-untapped potential of the computer, and our responsibility to our children to give them learning opportunities we couldn't have had.
His demos were cooler than the Microsoft ones. For a bit, that puzzled me. A searchable catalog of sky pictures and galaxies is cool: I plan to show it to my children. Being able to view most any location in the United States down to incredibly fine granularity is cool. So why is an ancient video of flickery black-and-white Sketchpad cooler? Why are Fun Manipulations of Two-Dimensional Objects in Squeak cooler? Why are not very detailed three dimensional moving objects so awesomely cool that I called my wife just to babble to her about it and say we had to teach our children Squeak?
I think it's because in the Microsoft Research world, we're observers, consumers, secondary participants in an experience someone else has constructed for us. In Alan Kay's vision, we're actors in a world that's actively out there asking us to change it.
--Brian Marick
Read the rest in Exploration Through Example
I've never programmed Java without an IDE, except as a deliberate exercise in masochism.
I started off using IBM's VisualAge for Java, which was apparently VA Smalltalk tortured until it spoke Java (I'm reminded of that bit from the Lord of the Rings movies where Saruman explains where orcs came from). Then I moved on to WSAD/Eclipse, and then on to IntelliJ IDEA. I don't think I've ever met a Java developer who, having used IDEA or Eclipse for more than a week, ever wanted to go back to using anything else.
--Charles Miller
Read the rest in Smalltalk Tidbits, Industry Rants: Why progress is so slow
AOP is kind of a complicated one for me, because AOP is one of these things where the theory sounds really good. I actually mostly like the theory. The way it turns out in practice tends to be pretty dangerous. It's fraught with all kinds of problems. You know when the AOP folks talk about AOP they list you like three or four use cases for AOP and they actually mostly make sense, although they have problems in the details. But there actually aren't very many use cases outside of that. And when you find people who are using AOP, the average ones that I've talked to have been using it for things that are just like incredibly inappropriate. It's like a really, really, really bad idea to be doing what they're doing. And so I feel very conflicted because on the one hand I basically like the concept, but I don't think that the research community has really figured out how to encapsulate those in a mechanism that really works for people. It's like giving them a chainsaw without any safety instructions.
--James Gosling
Read the rest in Sun's Gosling: New Java Flavors Brewing
What has most concerned scientists are problems that are not observable, so the fact that no major problems were observed says nothing about the system. The fact that we had a relatively smooth election yesterday does not change at all the vulnerability these systems have to fraud or bugs.
--David Jefferson, Lawrence Livermore National Laboratory
Read the rest in MSNBC - E-voting passes biggest test, mostly trouble-free
But we all are moral cowards when it comes to Iraq. Our collective inability to summon the requisite shame and rage when confronted by an estimate of 100,000 dead Iraqi civilians in the prosecution of an illegal and unjust war not only condemns us, but adds credibility to those who oppose us. The fact that a criminal such as Osama bin Laden can broadcast a videotape on the eve of the US presidential election in which his message is viewed by many around the world as a sober argument in support of his cause is the harshest indictment of the failure of the US and Britain to implement sound policy in the aftermath of 9/11. The death of 3,000 civilians on that horrible day represented a tragedy of huge proportions. Our continued indifference to a war that has slaughtered so many Iraqi civilians, and will continue to kill more, is in many ways an even greater tragedy: not only in terms of scale, but also because these deaths were inflicted by our own hand in the course of an action that has no defence.
--Scott Ritter
Read the rest in Guardian Unlimited | Special reports | The war on Iraq has made moral cowards of us all
both Java and Microsoft have both gone off in the wrong direction and to some extent are following each other in circles. But there are positives and negatives. The positive is they are learning from each other and gaining best practices. The negative is they are chasing each others' tails to get feature checklists matched up, regardless of value to developers.
--Alan Knight
Read the rest in Programming Legends Debate .Net, J2EE
Usability is the number one concern when designing software. And I don't mean "today with modern computing and the lack of new types of software usability is easier and growing in importance". I mean computers have no other purpose than to serve humans, and a better computer serves humans better. End of story. Software that doesn't conform to the way humans do things is bad software. (bad!) I don't care how cool and awesome your software is, if it's not understandable then it's useless.
--Joshua Marinacci
Read the rest in Joshua Marinacci's Blog: Please: think of the users!
Even though I'm on a pair of JSR Expert Groups (JAXB 2.0 and JAX-RPC 2.0) I've become increasingly skeptical of the whole Soviet-style "planned economy" Sun has implemented for Java. This often seems to lead to specifications that are cumbersome and difficult to understand while often failing to provide developers with the support they could really use. I think open source is a better path for the evolution of Java technologies. Seeing what's become of StAX just reinforces that - I don't see where it adds anything that's really useful to XMLPull, and it actually takes some things away. I recently had it pointed out that it doesn't even provide access to the declared namespace stack, for instance.
--Dennis Sosnoski on the xmlpull-dev mailing list, Thursday, 20 May 2004
Technology is not a solution. It is an enabler. Smart people use technology well and it amplifies their 'smarts'. Otherwise, GIGO At The Speed of Light.
--Claude L (Len) Bullard on the xml-dev mailing list, Monday, 3 May 2004
My cat has a radio frequency identification (RFID) tag embedded between her shoulder blades. So if she gets lost, she can be easily identified. If she were hurt, her medical records could be readily retrieved. Imagine the conversation I had with my child's pediatrician when I inquired about the same safety net for my toddler. "YOU WANT TO DO WHAT?" Not a good visit. Talk about feeling like I had fangs. And meanwhile, some groups are protesting its usage on boxes of detergent.
--Jonathan Schwartz
Read the rest in Things that scare Sun's Schwartz | Perspectives | CNET News.com
Given that C++ templates are Turing-complete, they are actually a convoluted and difficult method for executing code at compile time. If you want Lisp macros or Perl BEGIN blocks, you know where to find them, and they are smoothly integrated with the rest of the language. Templates are just another part of the autonavelization of C++.
--John Cowan on the xml-dev mailing list, Tuesday, 17 Aug 2004
What Java gives you are typed collections (i.e., not merely "contains Objects"). C++ templates (on whose syntax the Java generics are based) give you typed collections, *and a great deal more*. Java kept the bathwater, but threw out the baby anyway.
--Glen Fisher on the java-dev mailing list, Wednesday, 27 Oct 2004
Security is always a trade-off. If the benefits of RFID outweighed the risks, then maybe it would be worth it. Certainly, there isn't a significant benefit when people present their passport to a customs official. If that customs official is going to take the passport and bring it near a reader, why can't he go those extra few centimeters that a contact chip -- one the reader must actually touch -- would require?
The Bush administration is deliberately choosing a less secure technology without justification. If there were a good offsetting reason to choose that technology over a contact chip, then the choice might make sense.
Unfortunately, there is only one possible reason: The administration wants surreptitious access themselves. It wants to be able to identify people in crowds. It wants to surreptitiously pick out the Americans, and pick out the foreigners. It wants to do the very thing that it insists, despite d
emonstrations to the contrary, can't be done.
--Bruce Schneier
Read the rest in Op Ed: Does Big Brother Want to Watch?
Whenever you have a technology that's sold only to the enterprises — SharePoint, InfoPath or whatever — it's always going to be at a competitive disadvantage, in terms of mind share than something that gets sold to the whole world.
For example, nobody's ever going to use SharePoint in college. Ever. So no startup is ever going to use SharePoint because none of the kids who leave college are going to know it. This was BEA's big problem. Kids in college, when they want to learn about Web development, they learn Perl, PHP, maybe Microsoft's (ASP.Net) stack. They don't learn about Domino or BEA. So the only way those guys have hope of getting mind share in the market is to have an extensive sales force. They're always going to be sweeping back the waves against the force of the cheap, easy way of getting started in college.
--Joel Spolsky
Read the rest in A Q&A With Joel on (Microsoft) Software
I don't believe class libraries should have dependencies on environment variables or system properties unless absolutely necessary. These dependencies are instances of global behavior that influence how a library behaves to all aspects of an application. If part of an application requires a library to behave in one manner at the same time another part of the application requires it to behave in another manner, global configuration throws a wrench into the works. It is less restrictive to allow the application to instantiate library artifacts and configure them through an API, thereby allowing the application to implement its own environment variable, system property, or other configuration system.
--Daniel F. Savarese
Read the rest in Java Pro - When Static Methods and Code Collide
An ongoing question in the developer community is whether BREW stacks up to J2ME. The answer, for the most part, is that the two technologies don't compare. BREW is proprietary and J2ME is not. BREW comes with a built-in distribution system and J2ME doesn't. Whereas J2ME is viewed as the stronger overall development platform, BREW provides easy entry into the booming cell phone applications market. J2ME is a workhorse; BREW is a moneymaker.
--Larry Loeb
Read the rest in Roaming charges: Taken with BREW
no-one in their right mind would base any interesting Java application semantics on toString; its idiomatic use is for diagnostics and printing.
--Bill de hÓra
Read the rest in Bill de hÓra: ABOUT / HTTP/1.2
Most of our panics on computers are in slow motion, and don’t usually result in death. They can, however, result in destruction. When I started out in computers, disk drives were really, really big—not in capacity, but in physical size. You would plop a disk platter on the drive to use it, replacing it with another platter when done.
Some folks said a “head crash” was when the read/write head would land on the platter, causing a furrow that would render the platter unusable. Not true. A real head crash next required that you, quick, got ahold of the backup platter and placed it on the same drive mechanism and had the now-damaged head trace a furrow in the backup drive. The crash was complete when you then placed the “grandfather” disk on the same defective drive, ensuring a complete loss of data.
Today, things are not much different. People get a message stating, “There are a lot of interesting things on this disk, but I seem to have misplaced my glasses, so I can't read it right now. Would you like me to utterly destroy all your work for the last year?”
Oh, I’m sorry. That’s not actually what it says. It says, “Disk damaged. Initialize?”
Too bad people don’t have a clue what “initialize” means. In a single click, they greatly reduce or eliminate the possibility of recovering their information through a wide variety of available software and hardware options. Anyone writing messages like the above needs to be initialized.
--Bruce Tognazzini
Read the rest in Panic! How it Works and What To Do About It
On one of my previous projects, I ran a pretty tight ship with respect to code size. This was due in part to my natural proclivities, but also due to the constraints on the system. We were delivering the UI as an applet (webstart didn't even exist yet), to users who might be connecting via a modem. I accomplished this, in large part, by means of aggressive refactoring, to pull out commonalities in the code. I always trot out these examples when people start talking about measuring developer productivity via LoC. At my first programming job out of college (my second Real Programming Job), in one highly productive marathon coding session I wrote about 100 lines of code which replaced the work of 600 lines of code scattered throughout the system. Therefore, on my most productive day of coding ever, I had written negative 500 lines of code. On my longest sustained 'productive' cycle, on the first project I mentioned, I averaged negative 200 lines of code for four weeks, and cut the future growth rate of the codebase by 10% through eliminating several common patterns of 'busy work' code. If you're going to reward people based on how much code they generate, does that mean I owed the company money?
--Jason Marshall
Read the rest in Something to Say
Describe your software in one paragraph. If you can't then it's doing too many things or you don't understand the problem well. Cut it back.
--Joshua Marinacci
Read the rest in Joshua Marinacci's Blog: Please: think of the users!
They say you can hold seven plus or minus two pieces of information in your mind. I can't remember how to open files in Java. I've written chapters on it. I've done it a bunch of times, but it's too many steps. And when I actually analyze it, I realize these are just silly design decisions that they made. Even if they insisted on using the Decorator pattern in java.io, they should have had a convenience constructor for opening files simply. Because we open files all the time, but nobody can remember how. It is too much information to hold in your mind.
The other issue is the effect of an interruption. If you are really deep into doing something and you have an interruption, it's quite a number of minutes before you can get back into that deeply focused state. With programming, imagine you're flowing along. You're thinking, "I know this, and I know this, and I know this," and you are putting things together. And then all of a sudden you run into something like, "I have to open a file and read in the lines." All the clutter in the code you have to write to do that in Java can interrupt the flow of your work.
Another number that used to be bandied about is that programmers can produce an average of ten working lines of code per day. Say I open up a file and read in all the lines. In Java, I've probably already used up my ten working lines of code for that day. In Python, I can do it in one line. I can say, "
for line in file('filename').readlines():," and then I'm ready to process the lines. And I can remember that one liner off the top of my head, so I can just really flow with that.
--Bruce Eckel
Read the rest in Python and the Programmer
Apple needs developers more than developers need Apple.
Apple needs a user base, users don't need Apple.
Apple needs a community, the community doesn't need Apple.Is Apple being greedy if they won't support Java 1.5 on 10.1 and later, No. They just aren't being very smart when what they want is a developer community.
--Matthew McGee on the java-dev mailing list
I suspect lots of Windows users are curious about Macs nowadays - and security is a chief cause. The Windows crowd must feel like residents of Florida - one hurricane after another. The machines appear to be under constant attack from virus writers and purveyors of spyware.
--Edward C. Baig
Read the rest in Yahoo! News - Edward C. Baig: Personal Tech - New iMac even more exquisite than last one
Have you noticed that it's generally dying companies that try to misuse the courts as an anticompetitive weapon? It's the fingerprint of failure.
--Pamela Jones
Read the rest in GROKLAW
By default, CVS translates line endings (from CR [Unix] to CRLF [Windows] and back) and expands keywords (like $Id$) in your files. This is very handy until you commit a binary file to your CVS repository and CVS, in a fit of helpfulness, turns your file into tapioca pudding.
Subversion will never ever ever do anything to your data unless you ask it to.
Let's say that together now:
SUBVERSION WILL NEVER EVER EVER DO ANYTHING TO YOUR DATA UNLESS YOU ASK IT TO.
--Brian W. Fitzpatrick
Read the rest in ONLamp.com: The Top Ten Subversion Tips for CVS Users
There's also another lesson I'd like to draw, which is about where people who believe in the fundamentally decentralized and open nature of the web should put our attention. We ought to be careful not to be seduced by the new platforms of the web. We fought long and hard not to have the web become Microsoft Internet Explorer, and we should fight equally hard not have it become Google. In the first wars, our weapons were the HTML and CSS standards, in the latter, they may well turn out to be the vocabularies and ideas of the semantic web.
--Edd Dumbill
Read the rest in Edd Dumbill's Weblog: Behind the Times
For almost any mature language (C, Java, C++, Python, Lisp, Ada, FORTRAN, Python, Smalltalk, sh, javascript, ...) coding style is an essentially solved problem, and we ought to stop worrying about it. And to stop worrying about it will require worrying about it a lot first, because the only way to get from where we are to a place where we stop worrying about style is to enforce it as part of the language.
Yup. I'm really saying that. I'm saying that, for example, the next ANSI C update should define the standard K&R C programming style into the language grammar. Programs that use any new features should be required to be in K&R style or be rejected by the compiler as syntactically illegal.
I'm gonna pause here. When I was talking about this on a mailing list I had to go through this several times. People didn't quit get me because they didn't quite believe someone was saying this. I mean this quite literally. For example, I want the next C grammar to define that a space comes between any keyword and an opening parenthesis. "if (foo)" would be legal, but "if(foo)" would not. Not a warning, not optionally checked, but actually forbidden by the language parser. Flat out illegal. Can't compile.
--Ken Arnold
Read the rest in Style is Substance
People use SOAP in the SOA style for many reasons. One may very well be that they prefer it to using HTTP/XML or SOAP in a RESTful manner. But you need to also consider that they might be using it because it's "the cool thing" that the ISVs are hyping, and/or because they aren't familiar with how to solve their problems using the Web or REST. Only time will tell what was really happening, but in the meantime you can't claim that "adoption == success", because it doesn't, only deployment does.
--Mark Baker
Read the rest in Eric Newcomer's Weblog: More on WS-* Complexity
Debugging is worse than the dentist. Even with watches, breakpoints and single stepping our forty lines a day productivity can drop to fixing a single line over an entire day. That is bad use of resources, resources that could be better spent rewriting that section of code, or writing better tests, or clearer design, or code review, or a good night’s sleep or any other activity that would prevent the bug in the first place. What can be worse than staring at a debugger? Try doing the same thing by staring at log files. It’s like trying to find a gunshot wound with keyhole surgery. To make matters worse, all the other developers have dumped their LOG_WARNING, LOG_NOTICE and LOG_DEBUG messages (where did they come from?) all over your now mission critical log output. It’s a desperate mess. All that extra code and configuration for what? So we could now begin the most spectacularily inefficient process in the whole of software development…?
--Marcus Baker
Read the rest in The Last Craft? Marcus' blog on Agile Web Development » Logging is evil
Of all the shortsighted policies of President Bush and Vice President Dick Cheney, none have been worse than their opposition to energy conservation and a gasoline tax. If we had imposed a new gasoline tax after 9/11, demand would have been dampened and gas today would probably still be $2 a gallon. But instead of the extra dollar going to Saudi Arabia - where it ends up with mullahs who build madrasas that preach intolerance - that dollar would have gone to our own Treasury to pay down our own deficit and finance our own schools. In fact, the Bush energy policy should be called No Mullah Left Behind.
Our own No Child Left Behind program has not been fully financed because the tax revenue is not there. But thanks to the Bush-Cheney energy policy, No Mullah Left Behind has been fully financed and is now the gift that keeps on giving: terrorism
--Thomas Friedman
Read the rest in The New York Times > Opinion > Op-Ed Columnist: The Battle of the Pump
Almost nobody with actual authority in software patents is competent to understand software. Patent examiners (I'm sorry to say) are not our best and brightest. The Patent Office doesn't pay enough to attract or keep top level folks. Juries (like the one in this case) are picked from the normal jury pool. Imagine trying to explain the difference between (say) virtual memory with paging vs. an on-chip CPU cache to mother. And then remember that your mother is smart enough to avoid jury duty. Not to mention that the judge is a lawyer, most of whom have only the most basic scientific training.
In short, everybody who has the power to make judgements is almost certainly unqualified to do so.
--Ken Arnold
Read the rest in Ken Arnold's Blog: Patentably idiotic
I once stood in a hotel lobby in Amman, Jordan, listening quietly as a passionate GNU/Linux advocate tried to get Microsoft employees to agree that free software would be better for the Muslim world than proprietary software. His opponents were getting paid to boost Microsoft and proprietary software and couldn't change their beliefs -- at least in public -- without losing their jobs, so there was no way the Linux advocate could "win" this argument. I've witnessed similar scenes all over the world, and cringed at every one. Linux boosters shouldn't waste their (our) energy trying to convince unconviceable people. There are better uses for that passion.
--Robin 'Roblimo' Miller
Read the rest in NewsForge | The futility of arguing with paid advocates
XML is in some senses the exact polar *opposite* of the O-O paradigm: all the data is exposed and no methods are provided to do anything with it and the receiver is free to do with it what the receiver will.
--Tim Bray on the xml-dev mailing list, Wednesday, 23 Oct 2002
Java is focused on being a powerful but simple language, easy to read, with a consistent clear meaning. It is more important that Java programs be easy to read than to write.
--Graham Hamilton
Read the rest in java.net Weblogs: Evolving the Java Language
If you're a nerd, you can understand how important clothes are by asking yourself how you'd feel about a company that made you wear a suit and tie to work. The idea sounds horrible, doesn't it? In fact, horrible far out of proportion to the mere discomfort of wearing such clothes. A company that made programmers wear suits would have something deeply wrong with it.
And what would be wrong would be that how one presented oneself counted more than the quality of one's ideas. That's the problem with formality. Dressing up is not so much bad in itself. The problem is the receptor it binds to: dressing up is inevitably a substitute for good ideas. It is no coincidence that technically inept business types are known as "suits."
Nerds don't just happen to dress informally. They do it too consistently. Consciously or not, they dress informally as a prophylactic measure against stupidity.
--Paul Graham
Read the rest in What the Bubble Got Right
Most of the information derived from interrogations at Guantánamo appears to be very general in nature; so general that it is not very useful. How much help is it to know that during a class on improvised explosives at a camp in Afghanistan someone discussed bombing apartment complexes or shopping malls in the US?
Chechen terrorists have been bombing apartment complexes in Russia for years, and anyone even vaguely familiar with American consumer culture knows that shopping malls would be a good target. Is it "enormously valuable intelligence"? No; it does not identify cities where sympathisers are resident or an execution timeframe, so it is not very useful.
I doubt that anyone detained at Guantánamo ever had access to that type of information; if some claim that they did, they probably did so to either earn the incentives or avoid the maltreatment that General Miller instituted.
-- Lieutenant-Colonel Anthony Christino
Read the rest in Guardian Unlimited | Special reports | The real truth about Camp Delta
The political ethos of the Net, its extreme libertarianism -- that's another thing that comes out of the programming social world. You know, whoever's the most technically able can do whatever they want. It's really not "everyone can do whatever they want"; it's that the more technically able you are, the more you should be able to do. And that's the way it is online to me. It is a kind of meritocracy in a very narrow sense.
--Ellen Ullman
Read the rest in Salon | 21st
I have found the various optional syntactical elements and syntactical shortcuts to interact in interesting and often surprising ways. The intent behind each of these shortcuts seems sane enough, most often the designers are trying for a more compact syntax and are trying to make it easier for scripty type people to write terse code. In fact, looking back through various discussions, to a large extent it appears that various language features are considered primarily on an individual basis, and then it's determined after the fact how it may be shoehorned into the parser and made to work. This can lead to code snippets and individual features that look cool and compact in isolation - but when these individual pieces used inside of complex Groovy scripts, they can interact in very, very bad ways. You see a snippet of code on a mailing list, and say "Oh, yeah, how nice, how elegant". But when you see it in a real program it's different - you're not focusing on one narrow issue that people are discussing, you're trying to understand what the freak the program does. And more often than not Groovy's shortcuts are getting in my way, not helping me.
--Mike Spille
Read the rest in Groovy Ambiguities, Optional Elements, and Syntax Shortcuts Considered Sucky
The natural extension of grid computing is the Java grid -- the two are made for each other. What I mean by grid computing is the decoupling of applications from specific hardware platforms. And then the virtualization of those platforms so you can create a network-based computing and storage pool, and be a lot more dynamic in associating the computation you perform with the resources you have available. Java technology is great for this, because the principles behind it have been to introduce a fundamental abstraction layer between the code and state, and the underlying platform. So Java technology advances grid-style computing, which enables us to be much more fluid in applying more computation and storage resources when needed.
--Greg Papadopoulos, Chief Technology Officer, Sun Microsystems
Read the rest in Grid Computing: A Conversation with Sun Microsystems' Chief Technology Officer, Greg Papadopoulos
The difference between the CLR world and the Java world is that Java is open. The CLR world is Microsoft. It requires a business relationship with Microsoft to open up that code.
--Stephen DeWitt
Read the rest in Start-up banks on Java hardware boost | CNET News.com
Unlike the president, the young men and women trying to stay alive in the unraveling chaos of Iraq can't count on their daddies to get them out of the line of fire.
--Maureen Dowd
Read the rest in The New York Times > Opinion > Op-Ed Columnist: Pre-emptive Paranoia
By all appearances, the Pentagon has cooked up an overblown spy case at Gitmo based on clumsy mistakes and bad judgment. This illustrates how actions by a very real enemy, al-Qaida, have turned us inward, leading us to fight amongst ourselves when we should be battling the foe.
Yes, there are Muslims in our midst. Yes, there are Arab-language speakers in our midst. Many are our fellow Americans and fellow airmen. They deserve better treatment than Al Halabi has received.
So don’t be upset with me for defending this airman. The case against Al Halabi, like the earlier case against Yee, is an example of government running out of control. It is time to pull hard on the reins.
If they can do this to Al Halabi, they can do it to you or me. We need to demand accountability for the handling of the so-called Guantanamo spy case, and it needs to happen without further delay.
--Robert F. Dorr
Read the rest in Air Force Times - News - This Week's Air Force Times
Sun risks becoming the data general of the decade. The company could easily slide toward becoming a 'zombie' -- a lot of cash but no life, staggering and lurching with a fading heartbeat at each step
--George Colony, CEO, Forrester Research
Read the rest in Sun's plans...and how they could go wrong - ZDNet UK Comment
Sun's revealed strategy is built on a mistaken view of what GNU/Linux is. The problem with building your plans on a mistaken fantasy or a wish is that the rest of the world refuses to shake itself loose from reality. Reality doesn't care what your company wants or needs.
And the reality is that GNU/Linux is a better mousetrap. It wasn't started by any company, it is bigger than any company, it depends on no company, and if they all went out of business tomorrow, it would continue. That's one big reason why companies should switch to it at their earliest opportunity, by the way. There is no vendor lock-in. If, worst-case scenario, your vendor did shut down, you won't be left stranded with software that you can't continue to use. You can always use it. The GPL guarantees it. And there will always be a way to get it updated, vendor or no vendor. If I were a business, what I would do to protect my business is hire a whole lot of Linux guys ASAP, and then I'd be set for life, dependent on no one.
--Pamela Jones
Read the rest in GROKLAW
Certainly we have to convert from random disk access to sequential access patterns. Disks will give you 200 accesses per second, so if you read a few kilobytes in each access, you're in the megabyte-per-second realm, and it will take a year to read a 20-terabyte disk.
If you go to sequential access of larger chunks of the disk, you will get 500 times more bandwidth--you can read or write the disk in a day. So programmers have to start thinking of the disk as a sequential device rather than a random access device.
--Jim Gray
Read the rest in ACM Queue - Content
Every 3-5 years Microsoft comes up with some entirely different developer API library that’s always touted as the next best thing to happen to this planet since the sliced bread. Everything else, according to MS evangelist forces, is pure crap and even your lame “but it works for me” gets silenced away in the corporate propaganda machine.
--Alex Moskalyuk
Read the rest in Spolsky 1: Scoble 0 – Stegman’s Video, while Great, doesn’t apply to the API war
If the "wasted vote" argument ever held any water, it doesn't any more. The two major parties have moved toward a weird, non-existent "center" for the last 50 years, to the point where it's difficult to tell them apart.
--Michael Badnarik
Read the rest in Slashdot | Libertarian Presidential Candidate Michael Badnarik Answers
Many times, applications are developed with a particular version of a framework, and they become dependent on the subtle semantics of its API, or they may workaround bugs in the framework. A future version of the framework may change those semantics and fix the bugs (without changing the API at all), which breaks the application. This is why it's important for application frameworks such as Java to co-exist on the same system -- not just for developer testing, but for users, as well, who may have legacy applications (which have not been or cannot be upgraded) that depend on quirks in earlier frameworks.
--Tevor Harmon on the java-dev mailing list
there are those people out there with dirty minds who have to equate everything in life to stealing music, and right now those folks are probably quite convinced that some way, somehow, my true motivation for turning off my auto-sync is so that I can copy music to my iPod from other people's computers. Sorry folks, that's not the name of the game, at least not for me anyway. If anything, my shame lies in the fact that I've spend so ungodly much money over the years on music (and continue to do so to this day, although less of it is wasted on songs I don't want, thanks to iTunes). So don't even think about trying to accuse me of turning off auto-sync for the purpose of stealing other people's music. Even aside from the legal ramifications, other people's music usually sucks anyway.
--Bill Palmer
Read the rest in iPod Garage
I think we know exactly how this is going to play out. You'll see a very elaborate spin operation. But there's not much new here from what the ISG reported before. There are still no weapons, no production of weapons and no programmes to begin the production of weapons. What we're left with here is that Saddam Hussein might have had the desire to rebuild the capability to build those weapons. Well, lots of people have desire for these weapons. Lots of people have intent. But that's not what we went to war for.
-- Joseph Cirincione, Carnegie Endowment for International Peace
Read the rest in Guardian Unlimited | Special reports | Iraq had no WMD: the final verdict
nearly every conversation I’ve ever had about extreme programming eventually works its way to pair programming, which pretty much kills the dialog part of the conversation. Pair programming is apparently best discussed in monologue format. For most of the developers I’ve listened to, it is “The” extreme in extreme programming. It is either the single greatest advance in Western Civilization since the windowed envelop, or it is the spawn of the Netherworld.
--Craig Castelaz
Read the rest in java.net Weblogs: Pair programming: Everyone's favorite argument
Swing disasters continue to give Java a bad name. Swing is a brilliant, although hard to learn, API. But the vast majority of Swing applications are so bad that they give Swing and therefore Java a bad name.
--Sachin Hejip
Read the rest in Sachin's Java and Software Blog: Why Java isn't cool : triggered by "Great Hackers"
Now you have a legitimate beef with Java OO -- it really is significantly different than doing OO in Smalltalk. Number one on my list of gripes is not being able to add responsibilities to classes in the platform library that should actually house those responsibilities. Number two is that because it's not dynamic we don't have useful abstractions/idioms like code blocks, which can lead to felony violations of the Law of Demeter if folks aren't careful.
Nevertheless, Java really does have a decent toolset nowadays. More importantly, they have the right tools for the corporate environment. I don't want to turn this into another "When will Smalltalk have X so it can be competitive?" complaint. Many Smalltalks have made concerted efforts to remove excess log from their own eyes (and it shows). But there are some mighty big wood chunks still left. Now we all know what we're supposed to do before we removed the slivers from Java, right?
--Josh Braun
Read the rest in Smalltalk Tidbits, Industry Rants: Why progress is so slow
I've seen people spend hours in meetings working out the directory structure and file placement of a project they are preparing to create in their CVS repository--and anyone who's ever tried to move a directory or a file in CVS knows why: CVS doesn't allow you to move anything around in the repository!* With Subversion, you can move files and directories with wild abandon
--Brian W. Fitzpatrick
Read the rest in ONLamp.com: The Top Ten Subversion Tips for CVS Users
For Dolphin, as for Tiger, a lot of people both inside and outside of Sun will be involved in reviewing any language change proposals. The detailed designs will be handled through the JCP. But my suspicion is that we'll probably continue to stay very conservative on changes, as each little change also carries its little wad of additional complexity. We're unlikely to add a macro preprocessor (sorry) or any general form of operator overloading, or full-blown AOP, or any other mechanism for redefining and obscuring core semantics. But we will look for new language ideas that help developers with common problems. For example, one area I'm personally interested in is some kind of "friends" import mechanism to make large multi-package projects easier to manage.
--Graham Hamilton
Read the rest in java.net Weblogs: Evolving the Java Language
To lawmakers: the 21-year-old drinking age is bad social policy and terrible law. It is astonishing that college students have thus far acquiesced in so egregious an abridgment of the age of majority. Unfortunately, this acquiescence has taken the form of binge drinking. Campuses have become, depending on the enthusiasm of local law enforcement, either arms of the law or havens from the law.
Neither state is desirable. State legislators, many of whom will admit the law is bad, are held hostage by the denial of federal highway funds if they reduce the drinking age. Our latter-day prohibitionists have driven drinking behind closed doors and underground. This is the hard lesson of prohibition that each generation must relearn. No college president will say that drinking has become less of a problem in the years since the age was raised. Would we expect a student who has been denied access to oil paint to graduate with an ability to paint a portrait in oil? Colleges should be given the chance to educate students, who in all other respects are adults, in the appropriate use of alcohol, within campus boundaries and out in the open.
And please - hold your fire about drunken driving. I am a charter member of Presidents Against Drunk Driving. This has nothing to do with drunken driving. If it did, we'd raise the driving age to 21. That would surely solve the problem.
--John M. McCardell Jr.
Read the rest in The New York Times > Opinion > Op-Ed Contributor: What Your College President Didn't Tell You
while I was originally impressed by Apple’s iTunes Music Store, it’s become obvious that buying old-fashioned CDs from old-fashioned music stores is a better deal. The sound quality is higher, and what I get is just a bunch of digital files that are mine and I can store on any computer I want to and play on any device I want to and nobody’s getting in the way.
--Tim Bray
Read the rest in ongoing · The DRM Debacle
The events of September 11 are something quite new in world affairs, not in their scale and character, but in the target. For the US, this is the first time since the War of 1812 that the national territory has been under attack, even threat. Many commentators have brought up a Pearl Harbor analogy, but that is quite misleading. On Dec. 7 1941, military bases in two COLONIES were attacked. Not the national territory, which was never threatened. During these years the US annihilated the indigenous population (millions of people), conquered half of Mexico, intervened violently in the surrounding region, conquered Hawaii and the Philippines (killing hundreds of thousands of Filipinos), and in the past half century particularly, extended its resort to force throughout much of the world. The number of victims is colossal. For the first time, the guns have been directed the other way. That is a dramatic change.
The same is true, even more dramatically, of Europe. Europe has suffered murderous destruction, but from internal wars. Meanwhile European powers conquered much of the world with extreme brutality. With the rarest of exceptions, they were not under attack by their victims outside. England was not attacked by India, or Belgium by the Congo, or Italy by Ethiopia. It is not surprising, therefore, that Europe should be utterly shocked by the terrorist crimes of Sept. 11. Again, not because of the scale, regrettably.
Exactly what this portends, no one can guess. But that it is something strikingly new is quite clear.
--Noam Chomsky
Read the rest in Liberty at Risk
Linux cannot compete with Longhorn
Wait. Hear me out. I'm not saying that because Longhorn is a superior platform in any way. I'm saying it because Longhorn is not real, it's just the latest codename for the next version of Windows. As everyone knows, the next version of Windows is always the best operating system of all time: it's always faster, more stable, and more secure than anything the world has ever seen before. Comparing a real operating system like GNU/Linux against the marketing dreams of the malignant monopoly from Redmond is like comparing your geekiness with Helen, Sweetheart of the Internet: a futile and unfulfilling exercise.
Still, such false comparisons are one of Microsoft's favorite marketing techniques. Remember, Microsoft has never competed on the technical merits of its operating platforms. Not from the day IBM gave them a corner on the market until today. Given the quality of their products, that's probably a good thing for Redmond: DrDOS was a better DOS than MS-DOS, and OS/2 was far better, far more advanced than Win95.
Microsoft has always preferred to compete with its core competencies: FUD, astroturfing, false advertising, rigged benchmarks, funding "independent" studies, being channeled by submissive scribes and sycophantic industry analysts, and attempting to freeze the market long enough for them to catch up with the competition. Longhorn will probably fit into all those categories before it materializes, but its primary purpose is the latter. It's just another train-load of BS designed to freeze the market until the next version of Windows gets there.
--Joe Barr
Read the rest in NewsForge | Linux cannot compete with Longhorn
When we were making the rounds of venture capital firms in the 1990s, several told us that software companies didn't win by writing great software, but through brand, and dominating channels, and doing the right deals.
They really seemed to believe this, and I think I know why. I think what a lot of VCs are looking for, at least unconsciously, is the next Microsoft. And of course if Microsoft is your model, you shouldn't be looking for companies that hope to win by writing great software. But VCs are mistaken to look for the next Microsoft, because no startup can be the next Microsoft unless some other company is prepared to bend over at just the right moment and be the next IBM.
It's a mistake to use Microsoft as a model, because their whole culture derives from that one lucky break. Microsoft is a bad data point. If you throw them out, you find that good products do tend to win in the market. What VCs should be looking for is the next Apple, or the next Google.
--Paul Graham
Read the rest in Great Hackers
Overall, we think Tiger is on track to be our highest quality release ever. Happiness! But unfortunately that doesn't mean (and can't mean) that it is bug free.
There is an agonizing tension in getting to high quality. To achieve stability, you have to become really paranoid about change management, especially late in a release. Since beta1 we have been increasingly cautious in bug analysis. We've tried to make sure the key bugs get fixed, but we've also deferred some bugs, in order to manage the rate of change and to make sure we keep a high level of overall stability. Some of these may get addressed in the Tiger update releases (5.0_01, 5.0_02, etc.).
In some of our early JDK releases we were aggressively fixing lots of bugs even very late in the release. Well, unfortunately, that didn't actually lead to high quality releases. Every bug fix is also a bug risk, even for those small fixes that "are clearly totally safe". Our history is that even heavily reviewed "totally safe" fixes sometimes aren't.
--Graham Hamilton
Read the rest in java.net: Stabilizing the Tiger Release [September 08, 2004]
Making the right decision about your tools always comes down to a cost/benefit analysis. The cost side of the equation is some amalgam of money, research time, training, performance, and sustainability ("Will this product be around for as long as my project?"). The benefits can take the form of simplified development and maintenance, better performance or scalability, or simplification of the code. Tool choices should never be based on either of the following propositions:
- "Microsoft said I should."
- "Joe thought this looked cool."
--Justin Gehtland
Read the rest in ONJava.com: Better, Faster, Lighter Programming in .NET and Java
Remember Steve Ballmer said Microsoft couldn't compete with Linux on price, so they'd have to fight on quality. While you are laughing about that one, I'll further explain that this means Microsoft will have to improve its quality and that may well happen. And if it does, we can thank Linus Torvalds for doing something nobody else, including Bill Gates, could do in the preceding 25 years.
--Robert X. Cringely
Read the rest in I, Cringely | The Pulpit
People who program Java using text editors are inevitably the ones who loaded up an IDE, tried to use it, ignoring all the debugging, refactoring, code-navigation and auto-complete tools in the process -- i.e. all the things that make it an IDE instead of an underpowered text editor, and then went back to somewhere the keyboard shortcuts were more familiar, happy that he was "more productive" again.
--Charles Miller
Read the rest in Smalltalk Tidbits, Industry Rants: Why progress is so slow
A new database technology, operating system, or programming language has to be rather special to displace the established 30-year-old stuff that most of us work with.
But I once thought that C would never be displaced, and overnight Java came along and everyone decided it was the next thing. I don't know why it happens, but sometimes the industry decides to take a step forwards.
--Michael Kay on the xml-dev mailing list, Wednesday, 25 Aug 2004
The problem appeared early in his article - at the point where he said "we are a Java shop". he didn't say "We look around for the best tools for a job" - he said "we are a Java shop". Right there, he ensured that there was a fairly low top point to his team's productivity. Python? Ruby? Smalltalk? Nah, text editors and Java are the way to go. This is nicely in line with the 4 zone charts that these bozos like to draw, but it's not a way to rise above the competition. If you make sure that you do exactly what the other guys do, you have made a risk averse decision - you won't fail any worse than they do, but you also won't succeed any better. You'll tread water.
--James Robertson
Read the rest in Smalltalk Tidbits, Industry Rants: Why progress is so slow
When you talk about a virtual machine, that doesn't necessarily imply that it's actually interpreted. You can go through some kind of a transformational step and actually end up with machine code that is what is actually executing.
Just-in-time compilers can give you performance that is indistinguishable from hand-coded machine code. In some cases, the just-in-time happens significantly beforehand, so that what gets blown into the ROM on a machine is not necessarily bytecode but can actually be the compiled machine code. It's just that there's a transitive nature of trust, right? You've got this untrusted piece of code that comes in, but then you do an analysis by the Verifier to prove various things about it, and then you transform that bytecode into machine code through a compiler that you trust, and you end up with machine code that you can trust. You can actually use that in a lot of these constrained high-performance environments.
There are very few environments these days where you can't afford a just-in-time compiler. Even in most modern cellphones, the older ones are interpretive Java, but the modern ones are actually not. They actually get fairly amazing performance.
--James Gosling
Read the rest in ACM Queue - A Conversation with James Gosling - James Gosling talks about virtual machines, security, and of course, Java.
If I can get started with some software very quickly then I'm more likely to use it, regardless of the dollar amount. Access to the code is merely a side benefit. This is an important lesson for free software developers. Make it as easy as possible for someone who doesn't know about your software to figure out what it's about and how to get started. If you need more than a paragraph to explain what it does, then no one will use it. If you need more than a page to set it up, then no one will ... You see what I mean.
--Joshua Marinacci
Read the rest in java.net: My 1 year anniversary at Java.net: the social side of software. [August 21, 2004]
For another example, take Perl. Paul Graham has opined (Hi, Paul) that there are a lot of spectacularly original ideas in Perl, but I'd like to correct that impression. There are indeed a few original ideas in Perl, but most of the ideas were stolen. Perl has learned a spectacular number of things from history. Paul was right about one thing though — some of things Perl learned from history were spectacularly wrong. That's not to say that some of my original ideas weren't also spectacularly wrong. But hey, that's what iterated algorithms are for. "Release early, release often" is the old phrase. The new catch phrase seems to be "Learning in Public". Same sort of thing.
--Larry Wall
Read the rest in Perl.com: The State of the Onion
Yet again, though, I have had to stop and think - what is it about Java that makes people brand it as the most un-cool language on earth? I have had friends look at me like I was a poor sod for "having to" develop in Java. So, let me list all the reasons I can think why people consider Java un-cool.
Java has considerably fewer surprisesand prefers not to add complexity to the language for rarely used features thereby resulting in a language where you cannot really make your friends go ga-ga at amazingly brief programming constructs. You need to write something substantial [like Gosling's Huckster] for them be to impressed with your programming abilities and not your language knowledge. This is probably the biggest reason Java is un-cool. It's too easy (although programming or software development remains as tough as ever).
Java was always touted as the language that the "average" IT programmer can use. It's such a language-for-the-masses that yet again, it fails the "geek" test. And if you use Java, so do you.
--Sachin
Read the rest in The New York Times > New York Region > Across New York, a Death Penalty Stuck in Limbo
If it does nothing else, the McGreevey marriage highlights the chief absurdity of the arguments of those opposed to gay marriage: gay men can, in point of fact, get married - provided we marry women, duped or otherwise. The porousness of the sacred institution is remarkable: gay people are a threat to marriage, but gay people are encouraged to marry - indeed, we have married, under duress, for centuries, and the religious right would like us to continue to do so today - as long as our marriages are a sham. As long as we're willing to lie to ourselves, our wives, our communities, our children, and, for someone like McGreevey, our constituents. A closeted gay man like McGreevey can even marry twice and have both his marriages regarded as legitimate. Even as an openly gay man, McGreevey can remain married to his wife and smoke all the pole he likes on the side. There ain't no law agin' it, Senator Santorum. But how does this state of affairs protect marriage from the homos, I wonder? If an openly gay man can get married as long as his marriage makes a mockery of what is the defining characteristic of modern marriage - romantic love - or if he marries simply because he despairs of finding a same-sex partner, what harm could possibly be done by opening marriage to the gay men who don't want to make a mockery of marriage or who can find a same-sex partner?
--Dan Savage
Read the rest in Guardian Unlimited | UK Latest | When gay Americans marry
The problem with Windows isn't so much that it's insecure, but that it is stale. The company has flailed away, making changes mainly to protect its monopoly. So lately, instead of getting better with each new release, Windows is just getting different.
--Bill Joy
Read the rest in Fortune.com - Technology - Joy After Sun
At the lowest level, you have to know that the boundaries around the piece of software are completely known and contained. So, for example, in Java, you can't go outside the bounds of an array. Ever. Period. Turning off array subscripting is not an option.
A lot of work has gone into optimizing compilers. Then you know there's no way that you can get unbounded memory corruption, and that when you hand a piece of memory off to some suspect piece of code, it can't then use it to get outside of that. So if you've got an interpretive language that supports things like C's unbounded pointers, it's very difficult—or at least expensive—to really bound things that it can touch.
Along with that go things like forging the identity of objects. So in Java, you're allowed to cast things only when the cast is actually legal. You can't cast to a super class or to a subclass. You can't take an image and cast it to a string. You can't lie about the identity of an object.
--James Gosling
Read the rest in ACM Queue - A Conversation with James Gosling - James Gosling talks about virtual machines, security, and of course, Java.
There are too many libraries out there that make it very difficult—or impossible—for programmers to use multiple implementations of a piece of functionality in different parts of the same program. I don't mean to single out the Java core APIs, but an example of this problem is the way the socket API was originally designed in JDK 1.0.2. Socket.setSocketImplFactory forces a single socket-creation factory upon the entire application. Worse yet, recalling the earlier example of global environment variables and system properties, the java.net package relies on a host of system properties. For example, if you want to use a SOCKS proxy you can set the socksProxyHost and socksProxyPort properties. What happens if you want some socket connections to use the proxy and others not to? You have to avoid the java.net configuration properties and implement your own SOCKS support.
--Daniel F. Savarese
Read the rest in Java Pro - When Static Methods and Code Collide
Maybe I'm missing something, but I haven't seen anything in 1.5 (or is it 5.0 now?) for which I'd say "Yeah, that'll let me deliver working software in half the overall time." If it isn't about significantly improving quality, development time, or end-user features, what's the point? Yes, I already know about how generics will save the planet, but if they're so terrific, how has anyone been able to write working Java code without them all this time?
--Greg Guerin on the java-dev mailing list, Thursday, 1 Jul 2004
If you love NetBeans, you either develop on Linux/Solaris, or you need to take a reality check yourself. Have you taken a serious look and IDEA or Eclipse? Have you spent days or weeks with JBuilder? I've spent a great deal of development time with all these products. NetBeans has it merits, like the GUI builder, and some other nice features. However, NetBeans falls way short of the other products.
Lastly, the developers working on the NetBeans GUI need a reality check if they think NetBeans has a 'Native MS Windows appearance'
--Malcolm Davis
Read the rest in java.net: netbeans 3.6 [August 14, 2004]
In my career I saw many ambitious API-centric attempts at smooth network interoperability prove to have lousy cost-effectiveness, including various RPC stacks, Corba, DCOM, and so on and so on. The Web succeeded in many arenas where they failed, and one important reason is that it never subscribed to the myth of the interoperable data model.
--Tim Bray on the xml-dev mailing list, Friday, 24 Oct 2003
Code bloat begets code bloat
The faster your codebase grows, the less of it people will understand. When people don't understand all of the code, they don't see global patterns, and so they will reinvent little wheels all over the place. In theory, the development leads and the architects are supposed to watch out for these issues, but there are always places where redundant code can hide, and as the code continues to grow, even this watchdog function breaks down. Soon you have people who are intimately familiar with only a couple of modules in the system, and so replication across modules becomes difficult to spot. As the line-count continues to rise, the percentage of the code that each person really knows decreases, compounding the problem. Welcome to exponential code growth.
There's more here than just a vague fuzzy warm feeling that the code is 'tight'. It means longer code-build-test cycles, more resource requirements from the code, and harder-to-solve optimization issues. Worst of all, replicated code means replicated bugs. It means developers are spending a lot of time doing the same work over and over again, with slightly different details. Slogging the same boring code over and over again is essentially menial labor, and is bad for morale.
--Jason Marshall
Read the rest in Something to Say
Its sometimes seems funny that we all get so caught up with things like this. But, I too sometimes spend a millisecond more thinking about readable variable/method names then the actual work they are doing. But inconsistencies sometimes bother my simple mind. I prefer ID because when I read it or somebody else reads my code, I want them to say "eye" "dee" not "id" as it sounds in the word "did". Regardless if its real meaning is an abbreviation, I use my case notation to determine how the words(s) will be pronounced/read.
--Scott Stewart
Read the rest in Capitalization: Should you use ID or Id
When I plugged in my Wal-Mart machine and hit the power button, I got a look at an alternate future that ought to be fueling Pepcid sales among Microsoft executives. The computer featured a glamorous new desktop screen and sophisticated control panels, help menus, and audio tutorials. I was instantly able to connect the machine to the Internet, where I downloaded—free of charge—open-source equivalents of the Microsoft Office programs I use every day: Word, Excel, PowerPoint, and Internet Explorer. The free software may not have all of Office’s bells and whistles, but the version of it I chose, Open Office, does everything I need it to do—including saving files in Word format.
The back-office world of servers and databases is no longer Linux’s most exciting frontier. Sure, Linux has gained an irreversible hold in behind-the-scenes corporate computing centers, where some 67 percent of corporate Web servers are Linux machines running open-source software. Companies from Schwab and Merrill Lynch to L. L. Bean and Pep Boys have converted parts of their back-office operations to Linux, and IBM, Oracle, and other companies are spending millions to make their own business software run on the operating system. But over the last three years or so, the capabilities of open-source software have finally caught up with those of Microsoft applications in the space where most human-computer interaction actually occurs: the desktop.
--Wade Roush
Read the rest in Technology Review: An Alternative to Windows
Objects with finalizers (those that have a non-trivial finalize() method) have significant overhead compared to objects without finalizers, and should be used sparingly. Finalizeable objects are both slower to allocate and slower to collect. At allocation time, the JVM must register any finalizeable objects with the garbage collector, and (at least in the HotSpot JVM implementation) finalizeable objects must follow a slower allocation path than most other objects. Similarly, finalizeable objects are slower to collect, too. It takes at least two garbage collection cycles (in the best case) before a finalizeable object can be reclai