What else is there other than "society owes people a personal ass wipe?"
How about, creators have no obligation to share their works with society, nor to spend any time working on them for the benefit of society? People taking your position always seem to forget that the creators hold all the aces here. Either society offers them something to make sharing their works worth it to them, or it doesn't, and if it doesn't, it gets jack. You may choose to believe that there would still be as much quality work distributed to society if the artists responsible for creating it weren't offered any sort of support. I choose to believe that the truth is completely different, and looking at places around the world where the rules vary, reality seems to be firmly on my side.
For example, for service people, the information age will find the artist a larger audience for live concert than ever before. The writer a larger audience for soliciting personalised services than ever before.
But will it? I've heard this argument before, but it always seems to jump straight to the happy conclusion. Who paid the rent for those skilled writers for the many years before they were so good that they got hired on commission? Who pays for the commodity writing - the reasonably entertaining but unexceptional novel you read on the train on the way to work last week? In a mass market, the couple of dollars you'd spend on such a novel multiplied by the number of people buying the book would be enough to pay the writer's rent for the months it takes to write it, plus his costs getting someone to print and distribute it. But no-one's ever going to pay that on commission, just for an OK but not amazing book they'll read in a couple of days.
I didn't mean to imply in my previous post that mass-market, cheap 'n' cheerful goods are a bad thing. For many purposes, they're absolutely fine. My objection is simply that in the current system, anyone who does want to provide a better quality but more expensive alternative will often find the industry against them, and the barriers to entry too high to compete.
IMHO, one of the reasons for this is that every producer must create designs and parts from scratch - rather than violate someones patents and use designs that are already out there and improve upon them. [...] With that restriction lifted, I think there would be strong incentive to compete off of quality, and to standardize parts - so the consumer wouldn't be screwed.
Sure, that's one possibility. Another, which I consider more likely, is that as soon as the little guy comes up with a neat idea that results in producing a better product, it will rapidly be seized on by the established big players and their mass-production capabilities, who will almost immediately take over the market by being known brands with massive distribution networks. The innovative little guy won't recoup his investment costs, never mind turn a modest profit, and will spend the next six months stacking shelves to pay the back-dated rent, rather than inventing more good things that benefit everyone, or (God forbid!) enjoying some happy time supported by profits made from inventing something others found valuable and offering to share it.
As with copyright, the patent laws are supposed to protect a little guy like this and level the playing field against the big name, established players. The fact that they do exactly the opposite in practice today is because patents are awarded on a daft basis, and the costs of patent lawsuits go against the little guy whether he's defending his own patent or being harrassed by others, not because the underlying principle is flawed. We certainly need to fix the system, but we shouldn't abandon the useful underlying principles just because today's implementation sucks.
Re:Straight Talk About Copyrights
on
The Demise of IP?
·
· Score: 4, Interesting
I'd just like to address a particular point you raised there.
The information age is
forcing the commoditisation of information and the ugly death of the
copyright system. [...] Well, over the next several years, the copyright system will not only be changed, it will become effectively dead. [...] The information age is doing for information services what the industrial revolution did for production.
I truly hope this is not true. The principle of copyright is sound: to encourage those with the ability to produce useful and/or entertaining works to share what they create for the benefit of others. It is the corruption of this system, such that giant middlemen like the megacorps of the publishing and media industries reap all the rewards while effectively dictating terms to both sides through a complex monopoly, that causes pretty much all the problems we see today.
The solution to this, IMHO, is simple: copyright should not be transferrable, and should remain for the duration with the creator(s) of the work. Instead, the law should allow for exclusive licensing agreements, and probably restrict them to a relatively short period to avoid the same sorts of abuse we have now where anyone wanting to get published has to accept terrible terms from the megacorps in exchange, or go independent and take their chances.
The analogy you suggest, between the information revolution and the industrial one, is probably rather closer to the truth than most of us would like. Consider that in days gone by, skilled craftsmen and knowledgable traders could bring quality goods to society who wanted them, while still catering for those who just want cheap 'n' cheerful. In contrast, in today's industrialised economy, almost everything is cheap, nasty, mass-produced rubbish (or at least nasty and mass-produced). It's hard to find a skilled craftsman even if you want one and are prepared to pay for his services.
Right now, most software is released full of bugs, and the fact that some consumer device you've paid tens, hundreds or even thousands for doesn't actually do what it's supposed to is just "the way it goes". No-one who has a better way of doing things has much chance of getting into the market and taking on the big players. As a consumer who prefers quality to quantity, I find there's no-one competing for the quality end of the market, because the money isn't there to go up against the mass-market industrial firms.
If the system were fixed, the effective cost of entry would become lower, more niches for smaller players would become viable, and those with a superior product could ask and receive a fair price for it without disadvantage or risking having their market wiped out by the big players on a whim. In time, they could increase their market share, driving standards up for everyone.
However, if the system were disolved rather than fixed, you would embed today's status quo just as various other industrial firms have done, and the concept of a quality product would be just as dead in software and high tech goods as it is today in average consumer fare. Perhaps that's what the market wants in its short-sightedness, but it's certainly not what I want, nor in the long term interests of society.
Certainly we have much better construction materials and techniques than thousands of years ago, but we don't tear down the great wall of China just to see if we can do it better/faster.
Sure, but we do use them for building new walls and repairing existing ones. We also reinforce or outright replace some key structures with better materials as they become available.
I'd be interested to see any up-to-date information you've got about things like Office 12. In the past, there was certainly a lot of hype about going to managed code, redoing the UI in.Net-friendly code, etc. Rumours from my friendly local Microsoft insiders suggest that this has been almost entirely sidelined at this point, and if anything things are going the other way. If you've got anything more substantial than those rumours, it would be interesting to see, though; the sources in question are friends of friends and I have no reason to doubt them, but I don't know how involved in the big decisions they really are.
As someone who has worked as a manager of others, as a programmer, and in the construction business, I will sit here and tell you that projects can be estimated with tremendous accuracy.
And as someone whose projects typically involve a significant amount of research and development of genuinely new algorithms, I'll call you on that. If you're talking about cookie-cutter web sites, glorified databases, etc. then sure, someone with experience can probably call it with useful accuracy. OTOH, when your development can extend from a predicted 6 weeks to a real 6 months after the initial design work, when it turns out that the algorithms in question had a loophole that no-one saw coming and the knock-on effects require a significant restructuring of the whole project, it's not so routine.
I'm afraid you've been misinformed. You can develop standard C++ without any.Net (or MFC or anything else) in all recent versions of Visual C++, and the recent compilers are among the most standards compliant around. Microsoft cunningly hired a couple of the big names in the C++ world a couple of years back, which hasn't done their PR any harm.
As for the use of.Net, consider this: Microsoft wants us all to use.Net, since it's so much more productive, secure, etc. And yet, it's not willing to bet either of the products that generate the vast majority of its money on the technology. Why, then, would any other big business customer want to undergo the expense of porting their applications? Why would any smaller or newer project want to trust.Net, or see any advantage in it over existing, tried and tested technology?
If your not programming against.NET Framework then anything after VS 6 isnt really for you in the first place.
The thing is, the more recent versions of Visual C++ should be great for non-.Net programmers, too. The quality and standards compliance of the compiler itself, optimisation options, debugger enhancements, support for high-performance code via things like OpenMP and Profile Guided Optimisation -- all these things should be useful to non-Windows-specialists like me. It's just that the bugs and usability problems have outweighed the advantages for many people since since v.6. The question is whether undoing some of the damage -- notably the missing browse toolbar -- in the 2005 release will make up for it. With a few stability enhancements, hopefully it will.
Having said that, it's interesting to see how little of MS's stuff is actually being developed using.Net now. A few years ago, we were hearing about directives from on-high that everything should be managed code unless there was a specific exemption made, etc. Now, with.Net itself several years old and reaching its second full incarnation, we're still looking at little more than minor applications out of MS that use it. Notably, there seems little interest in moving much of either Office or Windows across, which is quite telling.
Assuming you're referring to things like my post earlier in the discussion when you talk about underperforming Intellisense, please allow me to clarify. If your IDE locks up for several seconds on a 3+ GHz machine with 2+ GB of RAM and a fast hard drive, then your IDE is broken. I don't care how clever the Intellisense is, if it takes so long to use it that my productivity goes below that of a cheap text editor.
If the "little gaffs" include things like removing the browse toolbar they had in VC++ 6, then I think it's more than just a little annoying. In fact, the majority of developers where I work decided not to upgrade to any earlier.Net version because of that feature and a couple of similar annoyances. They didn't care what else had been improved; lack of serious browsing tools was a show-stopper for them. I put up with it, but I'm greatly relieved that the 2005 edition has some decent browsing tools again.
As for Intellisense being fast: any system that spikes my CPU to 100% for several minutes to generate glorified on-line help is broken. And it's been popping up the info after a . or -> just fine for several years without that delay, thanks.
Your comments about being a serious Windows developer seem to assume that any serious project must be MS-only. To those of us who routinely build on a dozen platforms, that position seems rather archaic. Why on earth would you limit yourself to a system that can't be ported without prohibitive amounts of effort, unless your application is the kind of thing that'll only ever run on typical desktop PCs for a year or two anyway? Most things aren't.
As for not using VS being detrimental if you develop for Windows, I'd have agreed with you five years ago when we were talking about VC++ 6. However, as I mentioned earlier, in an office full of informed developers with a pretty free choice about the tools they use, almost everyone opts for VS, but the vast majority were still on VC++ 6 until a couple of weeks ago, and most still are today. The jury is still out on whether they'll upgrade.
Ah, I understand. My friend, I was once like you. Then I discovered that it's not talking to others that matters. It's what you say that counts! Fortunately, the web is a wonderful thing, and people like these have kindly provided resources to help you navigate this troublesome area more successfully. Good luck to you.
OK, here goes: does anyone here actually work on an application that uses so-called web services? I've heard so much hype about these things in the past few months that anyone would think desktop applications or client-server over a network were dead. Given the high-tech city I work in, it's therefore slightly surprising that I've never encountered a genuine (as-in, not a toy, not a prototype) web service in use, other than possibly via a couple of Big Name Companies that could use any architecture they wanted with the resources they've got. In other words, I think this:
This concept is especially welcome as Web services become increasingly central to integrated application systems.
actually wins the prize for "highest bull**** factor" in the quote, beating the other buzzwords by a considerable margin!
...as long as the underlying system for a single guy at his desk isn't up to scratch, it doesn't really matter how good the collaboration aspects and high-level funkiness are.
We've been working with VC++2005 since the early betas, and it's been very hit and miss. On some systems it runs fine, but on others ("possibly those without hyperthreading processors" is the closest we've got to a pattern so far) it can go into a trance for literally minutes while it faffs around updating all that clever Intellisense it does on-the-fly these days.
Add to that a debugger that really does run code orders of magnitude slower than a properly compiled version when you step through it, and you've got a serious problem with the two main tools in VC++. Worse, these are things that were fine back in VC++ 6, and rapidly went downhill when MS started relying on.Net and a multi-language framework for the dev tools a few years ago, which isn't exactly a great recommendation for all this new technology MS want us to use.
In other words, the TS stuff is all very well, but until the fundamental problems with the single-user everyday stuff are fixed, it's rather academic at this point. Several of my colleagues never "upgraded" from VC++6 to any of the earlier.Net versions because the basic functionality wasn't up to the job, and the same is in danger of happening this time, too.
Discovery certainly does take a long time for large projects. In fact, for many projects, you'd need to do upwards of 90% of the work (i.e,. the design plan, and several cycles of implementation/testing) before you could know enough to give an accurate assessment of how much work would be required and how long it would take. Herein lies the problem.:-)
Perhaps you could share with us your incredibly accurate estimation technique? I'm sure many of us would love to know how you've solved a problem that no-one else in the business has managed to solve effectively for years.
Seriously, estimation is hard. I'm sure you know that really. The best development shops I've worked for deal with this problem by having plans that can adapt to unexpected delays, including putting back the shipping date if necessary. Perhaps we're lucky; for some projects, that simply isn't an option. But it's a lot better than pretending you can estimate a project that's going to take hundreds of man-years accurately ahead of time, and then betting your business on being able to make your predicted shipping date.
I think it is unwise to generalise about lawyers in technology fields. Some clearly do know their stuff, and make a genuine effort to offer timely and correct advice when it is sought, which is all that can reasonably be asked of them.
OTOH, we recently had a presentation from our megacorp's new patent lawyer, who managed to cite the standard misrepresentation of the GPL as "viral" (he even explicitly said that incorporating GPL'd code in your product inadvertently could force you to relinquish your copyright and open up your own source code). He also mentioned the Sony XCP case we're talking about, but apparently he'd just read a quick article mentioning the dubious incorporation of LGPL'd material; has anyone worked out for sure whether that was fair use because it was just a signature to scan for, or a genuine violation of the LGPL yet? In any case, no mention was made of the fact that the class action lawsuits being filed against Sony at the time weren't because of LGPL violations.
In light of this, and various other things that even as a non-lawyer I recognise as common fallacies that are repeatedly debunked by real lawyers (but happen to serve our corporate masters' interests), it's hard to give guys like this any respect as authoritative sources of useful advice. Which is a shame, because it would have been good to hear credible, deeper opinions from a real lawyer than the... sometimes not so reliable... popular wisdom around these parts.
I agree that it would be nice to have somewhat more realistic physics/science generally in sci-fi, but only up to the point where it doesn't damage the story. It's science fiction, but it's still science fiction, after all, and a little dramatic licence can carry a plot a lot better than rigorous mathematics.
Funnily enough, TV series seem to get this balance right more often than full-length movies. Two shows I've always appreciated for this are B5 and (shock!) Andromeda. Take a look at the workhouse small craft in B5, the Star Fury: it's pretty much exactly how you'd really design a ship like that to work in space: boxy, thrusters distributed to make it highly manoeuvrable, etc. <inside joke> You'd almost think they talked to real rocket scientists about the design. </inside joke> Earth ships, unlike those of more technologically advanced cultures, still require rotating sections to provide artificial gravity, as does the space station itself. There is technology that we don't yet understand and have to research, sometimes with unfortunate consequences. Even searching a huge database requires a non-trivial amount of time, and may not even be possible if we're too far away to communicate effectively.
To give credit where it's due, despite the criticism it often receives, Andromeda also had one of the most realistic representations of action in space in any sci-fi show. We're talking about ships moving at high fractions of lightspeed here, so they mainly fight each other using projectiles that also travel at near lightspeed, with "laser beam" type weapons only used at very close range. In several episodes, there are clear battle tactics being used involving controlling space and distance in three dimensions. Real-time communications are an issue: while they have long-range communications, which clearly involve faster-than-light signals, there is still a significant time lag, sometimes minutes or hours, and this affects the plot. Rather than inventing strange propulsion technologies, they invent a mechanism that reduces a ship's mass to almost nothing, which conveniently means they can have highly manoeuvrable ships, yet not kill every human on board the moment they accelerate. Having created this plot device, they do still have to stop to collect raw materials to use in their propulsion system. Leaving aside the whole "stuck on the edge of a black hole for 300 years then rescued by a much smaller ship that could somehow escape" premise, which had some concessions to today's physics but wouldn't exactly work out that way according to our current understanding, the series was reasonably realistic when it came to physics - not bad for a show that is an unashamed "action hour" not trying to be some deep sci-fi movie.
Personally, I prefer these approaches to the magic of Star Trek physics, where inventing a new device that can do anything we need for this week's episode is pretty routine. However, I also prefer them to the overly realistic physics of some "classic" sci-fi movies, where we have to put everyone in suspended animation for years to get to places, everything is silent, and computers look like things that were invented 30 years ago today. All of this may be a fairer reflection of what we could possibly achieve with our knowledge today, but it's not nearly as interesting to watch.
I was afraid that would happen. Here in the UK, I saw a couple of trailers on national TV, but nowhere near as much as we had for things like War of the Worlds. I don't think I saw a single trailer for it at the cinema, so they can't have been advertising it more than a week or two ahead of time, which is a lot shorter than normal. When it finally did come out, I would have liked to go and see it, but it lasted something like a week and then the shows at useful times were gone.
It's interesting that on the web site the parent post mentions, the vast majority of reader votes (out of about 1,500 as I write this) rate the movie as an A. I guess it's the same as the original Firefly series: fans who get into it love it, but there just aren't enough of us to support a mainstream movie.
Its democratic dream offers no defence against viruses, spammers, criminals, hucksters or deranged individuals.
And yet it's still easier to find informed technical help on many subjects, or to compare notes with peers, via Usenet than via any of the wannabe web forums full of people with too many letters on their CV and too many buzzwords in their brain. It's also one of the best places to find interesting discussion on many hobbies. Contrary to apparent popular opinion, not all of Usenet is binaries groups where people can rip material illegally if P2P is too hard for them to understand. Also contrary to apparent popular opinion, it is possible not to read all the virus/spyware/whatever posts!
Do you do your job better because you get help from your smart clothes?
In a sense, yes, I suppose I do. Personally, I feel a little more "professional" if I'm more smartly dressed, which I find helps me to focus on doing a professional job (and to stop feeling like I'm at work when I go home and change). YMMV; I'm certainly not arguing that everyone will feel this way.
Sorry, I'm not sufficiently expert to tell you for sure who's implementing the technique already. IIRC, I first saw it described in some sort of research paper. It was a while back now, but I think it came out of somewhere like HP or Microsoft Research.
I'm pretty sure it's also been mentioned in discussions on a couple of the more serious C++ Usenet groups, so you might like to search archives of things like comp.lang.c++.moderated if you're interested in more details. If nothing else, there's probably a thread that cites the original paper I mentioned, because that's probably how I found it.
The biggest potential hit is exceptions. The compiler has to generate extra code in every function to handle cleanup in the event of an exception, and it can cost a bit.
I don't have time to write a long comment here, but I'll quickly note that the above isn't necessarily true any more. Modern compilers are pretty good at generating efficient code for exceptions. Although to the programmer they're quite an open-ended design tool and might be thrown in many places if you don't know exactly what someone else's code does, to the compiler they're quite deterministic: only certain places can ever throw exceptions and only certain places can ever catch them. Hence all the stack unwinding can be done in only a few places, not necessarily directly linked to the functions where the automatic variables are used.
As a result of such techniques, using exceptions is almost invariably better than propagating return codes manually. It's the usual deal: give the compiler more information, and it can better take advantage of it. The bulk of your code may actually run faster, because there's no need to test for and propagate return codes at each stage, and the overheads for exceptions are incurred only at the point of throwing.
Erm... Didn't you just do a super-jumping-tiger-uppercut-combo and kill him? :-/
How about, creators have no obligation to share their works with society, nor to spend any time working on them for the benefit of society? People taking your position always seem to forget that the creators hold all the aces here. Either society offers them something to make sharing their works worth it to them, or it doesn't, and if it doesn't, it gets jack. You may choose to believe that there would still be as much quality work distributed to society if the artists responsible for creating it weren't offered any sort of support. I choose to believe that the truth is completely different, and looking at places around the world where the rules vary, reality seems to be firmly on my side.
But will it? I've heard this argument before, but it always seems to jump straight to the happy conclusion. Who paid the rent for those skilled writers for the many years before they were so good that they got hired on commission? Who pays for the commodity writing - the reasonably entertaining but unexceptional novel you read on the train on the way to work last week? In a mass market, the couple of dollars you'd spend on such a novel multiplied by the number of people buying the book would be enough to pay the writer's rent for the months it takes to write it, plus his costs getting someone to print and distribute it. But no-one's ever going to pay that on commission, just for an OK but not amazing book they'll read in a couple of days.
I didn't mean to imply in my previous post that mass-market, cheap 'n' cheerful goods are a bad thing. For many purposes, they're absolutely fine. My objection is simply that in the current system, anyone who does want to provide a better quality but more expensive alternative will often find the industry against them, and the barriers to entry too high to compete.
Sure, that's one possibility. Another, which I consider more likely, is that as soon as the little guy comes up with a neat idea that results in producing a better product, it will rapidly be seized on by the established big players and their mass-production capabilities, who will almost immediately take over the market by being known brands with massive distribution networks. The innovative little guy won't recoup his investment costs, never mind turn a modest profit, and will spend the next six months stacking shelves to pay the back-dated rent, rather than inventing more good things that benefit everyone, or (God forbid!) enjoying some happy time supported by profits made from inventing something others found valuable and offering to share it.
As with copyright, the patent laws are supposed to protect a little guy like this and level the playing field against the big name, established players. The fact that they do exactly the opposite in practice today is because patents are awarded on a daft basis, and the costs of patent lawsuits go against the little guy whether he's defending his own patent or being harrassed by others, not because the underlying principle is flawed. We certainly need to fix the system, but we shouldn't abandon the useful underlying principles just because today's implementation sucks.
I'd just like to address a particular point you raised there.
I truly hope this is not true. The principle of copyright is sound: to encourage those with the ability to produce useful and/or entertaining works to share what they create for the benefit of others. It is the corruption of this system, such that giant middlemen like the megacorps of the publishing and media industries reap all the rewards while effectively dictating terms to both sides through a complex monopoly, that causes pretty much all the problems we see today.
The solution to this, IMHO, is simple: copyright should not be transferrable, and should remain for the duration with the creator(s) of the work. Instead, the law should allow for exclusive licensing agreements, and probably restrict them to a relatively short period to avoid the same sorts of abuse we have now where anyone wanting to get published has to accept terrible terms from the megacorps in exchange, or go independent and take their chances.
The analogy you suggest, between the information revolution and the industrial one, is probably rather closer to the truth than most of us would like. Consider that in days gone by, skilled craftsmen and knowledgable traders could bring quality goods to society who wanted them, while still catering for those who just want cheap 'n' cheerful. In contrast, in today's industrialised economy, almost everything is cheap, nasty, mass-produced rubbish (or at least nasty and mass-produced). It's hard to find a skilled craftsman even if you want one and are prepared to pay for his services.
Right now, most software is released full of bugs, and the fact that some consumer device you've paid tens, hundreds or even thousands for doesn't actually do what it's supposed to is just "the way it goes". No-one who has a better way of doing things has much chance of getting into the market and taking on the big players. As a consumer who prefers quality to quantity, I find there's no-one competing for the quality end of the market, because the money isn't there to go up against the mass-market industrial firms.
If the system were fixed, the effective cost of entry would become lower, more niches for smaller players would become viable, and those with a superior product could ask and receive a fair price for it without disadvantage or risking having their market wiped out by the big players on a whim. In time, they could increase their market share, driving standards up for everyone.
However, if the system were disolved rather than fixed, you would embed today's status quo just as various other industrial firms have done, and the concept of a quality product would be just as dead in software and high tech goods as it is today in average consumer fare. Perhaps that's what the market wants in its short-sightedness, but it's certainly not what I want, nor in the long term interests of society.
Sure, but we do use them for building new walls and repairing existing ones. We also reinforce or outright replace some key structures with better materials as they become available.
I'd be interested to see any up-to-date information you've got about things like Office 12. In the past, there was certainly a lot of hype about going to managed code, redoing the UI in .Net-friendly code, etc. Rumours from my friendly local Microsoft insiders suggest that this has been almost entirely sidelined at this point, and if anything things are going the other way. If you've got anything more substantial than those rumours, it would be interesting to see, though; the sources in question are friends of friends and I have no reason to doubt them, but I don't know how involved in the big decisions they really are.
Please step into my office; it's time for your "performance review". :-)
And as someone whose projects typically involve a significant amount of research and development of genuinely new algorithms, I'll call you on that. If you're talking about cookie-cutter web sites, glorified databases, etc. then sure, someone with experience can probably call it with useful accuracy. OTOH, when your development can extend from a predicted 6 weeks to a real 6 months after the initial design work, when it turns out that the algorithms in question had a loophole that no-one saw coming and the knock-on effects require a significant restructuring of the whole project, it's not so routine.
I'm afraid you've been misinformed. You can develop standard C++ without any .Net (or MFC or anything else) in all recent versions of Visual C++, and the recent compilers are among the most standards compliant around. Microsoft cunningly hired a couple of the big names in the C++ world a couple of years back, which hasn't done their PR any harm.
As for the use of .Net, consider this: Microsoft wants us all to use .Net, since it's so much more productive, secure, etc. And yet, it's not willing to bet either of the products that generate the vast majority of its money on the technology. Why, then, would any other big business customer want to undergo the expense of porting their applications? Why would any smaller or newer project want to trust .Net, or see any advantage in it over existing, tried and tested technology?
The thing is, the more recent versions of Visual C++ should be great for non-.Net programmers, too. The quality and standards compliance of the compiler itself, optimisation options, debugger enhancements, support for high-performance code via things like OpenMP and Profile Guided Optimisation -- all these things should be useful to non-Windows-specialists like me. It's just that the bugs and usability problems have outweighed the advantages for many people since since v.6. The question is whether undoing some of the damage -- notably the missing browse toolbar -- in the 2005 release will make up for it. With a few stability enhancements, hopefully it will.
Having said that, it's interesting to see how little of MS's stuff is actually being developed using .Net now. A few years ago, we were hearing about directives from on-high that everything should be managed code unless there was a specific exemption made, etc. Now, with .Net itself several years old and reaching its second full incarnation, we're still looking at little more than minor applications out of MS that use it. Notably, there seems little interest in moving much of either Office or Windows across, which is quite telling.
Assuming you're referring to things like my post earlier in the discussion when you talk about underperforming Intellisense, please allow me to clarify. If your IDE locks up for several seconds on a 3+ GHz machine with 2+ GB of RAM and a fast hard drive, then your IDE is broken. I don't care how clever the Intellisense is, if it takes so long to use it that my productivity goes below that of a cheap text editor.
If the "little gaffs" include things like removing the browse toolbar they had in VC++ 6, then I think it's more than just a little annoying. In fact, the majority of developers where I work decided not to upgrade to any earlier .Net version because of that feature and a couple of similar annoyances. They didn't care what else had been improved; lack of serious browsing tools was a show-stopper for them. I put up with it, but I'm greatly relieved that the 2005 edition has some decent browsing tools again.
As for Intellisense being fast: any system that spikes my CPU to 100% for several minutes to generate glorified on-line help is broken. And it's been popping up the info after a . or -> just fine for several years without that delay, thanks.
Your comments about being a serious Windows developer seem to assume that any serious project must be MS-only. To those of us who routinely build on a dozen platforms, that position seems rather archaic. Why on earth would you limit yourself to a system that can't be ported without prohibitive amounts of effort, unless your application is the kind of thing that'll only ever run on typical desktop PCs for a year or two anyway? Most things aren't.
As for not using VS being detrimental if you develop for Windows, I'd have agreed with you five years ago when we were talking about VC++ 6. However, as I mentioned earlier, in an office full of informed developers with a pretty free choice about the tools they use, almost everyone opts for VS, but the vast majority were still on VC++ 6 until a couple of weeks ago, and most still are today. The jury is still out on whether they'll upgrade.
Ah, I understand. My friend, I was once like you. Then I discovered that it's not talking to others that matters. It's what you say that counts! Fortunately, the web is a wonderful thing, and people like these have kindly provided resources to help you navigate this troublesome area more successfully. Good luck to you.
OK, here goes: does anyone here actually work on an application that uses so-called web services? I've heard so much hype about these things in the past few months that anyone would think desktop applications or client-server over a network were dead. Given the high-tech city I work in, it's therefore slightly surprising that I've never encountered a genuine (as-in, not a toy, not a prototype) web service in use, other than possibly via a couple of Big Name Companies that could use any architecture they wanted with the resources they've got. In other words, I think this:
actually wins the prize for "highest bull**** factor" in the quote, beating the other buzzwords by a considerable margin!
...as long as the underlying system for a single guy at his desk isn't up to scratch, it doesn't really matter how good the collaboration aspects and high-level funkiness are.
We've been working with VC++2005 since the early betas, and it's been very hit and miss. On some systems it runs fine, but on others ("possibly those without hyperthreading processors" is the closest we've got to a pattern so far) it can go into a trance for literally minutes while it faffs around updating all that clever Intellisense it does on-the-fly these days.
Add to that a debugger that really does run code orders of magnitude slower than a properly compiled version when you step through it, and you've got a serious problem with the two main tools in VC++. Worse, these are things that were fine back in VC++ 6, and rapidly went downhill when MS started relying on .Net and a multi-language framework for the dev tools a few years ago, which isn't exactly a great recommendation for all this new technology MS want us to use.
In other words, the TS stuff is all very well, but until the fundamental problems with the single-user everyday stuff are fixed, it's rather academic at this point. Several of my colleagues never "upgraded" from VC++6 to any of the earlier .Net versions because the basic functionality wasn't up to the job, and the same is in danger of happening this time, too.
Oh, come on. We^WThey'd never dream of doing something so low.
Discovery certainly does take a long time for large projects. In fact, for many projects, you'd need to do upwards of 90% of the work (i.e,. the design plan, and several cycles of implementation/testing) before you could know enough to give an accurate assessment of how much work would be required and how long it would take. Herein lies the problem. :-)
Perhaps you could share with us your incredibly accurate estimation technique? I'm sure many of us would love to know how you've solved a problem that no-one else in the business has managed to solve effectively for years.
Seriously, estimation is hard. I'm sure you know that really. The best development shops I've worked for deal with this problem by having plans that can adapt to unexpected delays, including putting back the shipping date if necessary. Perhaps we're lucky; for some projects, that simply isn't an option. But it's a lot better than pretending you can estimate a project that's going to take hundreds of man-years accurately ahead of time, and then betting your business on being able to make your predicted shipping date.
I think it is unwise to generalise about lawyers in technology fields. Some clearly do know their stuff, and make a genuine effort to offer timely and correct advice when it is sought, which is all that can reasonably be asked of them.
OTOH, we recently had a presentation from our megacorp's new patent lawyer, who managed to cite the standard misrepresentation of the GPL as "viral" (he even explicitly said that incorporating GPL'd code in your product inadvertently could force you to relinquish your copyright and open up your own source code). He also mentioned the Sony XCP case we're talking about, but apparently he'd just read a quick article mentioning the dubious incorporation of LGPL'd material; has anyone worked out for sure whether that was fair use because it was just a signature to scan for, or a genuine violation of the LGPL yet? In any case, no mention was made of the fact that the class action lawsuits being filed against Sony at the time weren't because of LGPL violations.
In light of this, and various other things that even as a non-lawyer I recognise as common fallacies that are repeatedly debunked by real lawyers (but happen to serve our corporate masters' interests), it's hard to give guys like this any respect as authoritative sources of useful advice. Which is a shame, because it would have been good to hear credible, deeper opinions from a real lawyer than the... sometimes not so reliable... popular wisdom around these parts.
"Never doubt that a small group of thoughtful, committed citizens can change the world. Indeed, it is the only thing that ever has."
I agree that it would be nice to have somewhat more realistic physics/science generally in sci-fi, but only up to the point where it doesn't damage the story. It's science fiction, but it's still science fiction, after all, and a little dramatic licence can carry a plot a lot better than rigorous mathematics.
Funnily enough, TV series seem to get this balance right more often than full-length movies. Two shows I've always appreciated for this are B5 and (shock!) Andromeda. Take a look at the workhouse small craft in B5, the Star Fury: it's pretty much exactly how you'd really design a ship like that to work in space: boxy, thrusters distributed to make it highly manoeuvrable, etc. <inside joke> You'd almost think they talked to real rocket scientists about the design. </inside joke> Earth ships, unlike those of more technologically advanced cultures, still require rotating sections to provide artificial gravity, as does the space station itself. There is technology that we don't yet understand and have to research, sometimes with unfortunate consequences. Even searching a huge database requires a non-trivial amount of time, and may not even be possible if we're too far away to communicate effectively.
To give credit where it's due, despite the criticism it often receives, Andromeda also had one of the most realistic representations of action in space in any sci-fi show. We're talking about ships moving at high fractions of lightspeed here, so they mainly fight each other using projectiles that also travel at near lightspeed, with "laser beam" type weapons only used at very close range. In several episodes, there are clear battle tactics being used involving controlling space and distance in three dimensions. Real-time communications are an issue: while they have long-range communications, which clearly involve faster-than-light signals, there is still a significant time lag, sometimes minutes or hours, and this affects the plot. Rather than inventing strange propulsion technologies, they invent a mechanism that reduces a ship's mass to almost nothing, which conveniently means they can have highly manoeuvrable ships, yet not kill every human on board the moment they accelerate. Having created this plot device, they do still have to stop to collect raw materials to use in their propulsion system. Leaving aside the whole "stuck on the edge of a black hole for 300 years then rescued by a much smaller ship that could somehow escape" premise, which had some concessions to today's physics but wouldn't exactly work out that way according to our current understanding, the series was reasonably realistic when it came to physics - not bad for a show that is an unashamed "action hour" not trying to be some deep sci-fi movie.
Personally, I prefer these approaches to the magic of Star Trek physics, where inventing a new device that can do anything we need for this week's episode is pretty routine. However, I also prefer them to the overly realistic physics of some "classic" sci-fi movies, where we have to put everyone in suspended animation for years to get to places, everything is silent, and computers look like things that were invented 30 years ago today. All of this may be a fairer reflection of what we could possibly achieve with our knowledge today, but it's not nearly as interesting to watch.
I was afraid that would happen. Here in the UK, I saw a couple of trailers on national TV, but nowhere near as much as we had for things like War of the Worlds. I don't think I saw a single trailer for it at the cinema, so they can't have been advertising it more than a week or two ahead of time, which is a lot shorter than normal. When it finally did come out, I would have liked to go and see it, but it lasted something like a week and then the shows at useful times were gone.
It's interesting that on the web site the parent post mentions, the vast majority of reader votes (out of about 1,500 as I write this) rate the movie as an A. I guess it's the same as the original Firefly series: fans who get into it love it, but there just aren't enough of us to support a mainstream movie.
And yet it's still easier to find informed technical help on many subjects, or to compare notes with peers, via Usenet than via any of the wannabe web forums full of people with too many letters on their CV and too many buzzwords in their brain. It's also one of the best places to find interesting discussion on many hobbies. Contrary to apparent popular opinion, not all of Usenet is binaries groups where people can rip material illegally if P2P is too hard for them to understand. Also contrary to apparent popular opinion, it is possible not to read all the virus/spyware/whatever posts!
Why is having good communication skills stupid?
"People skills" aren't a substitute for technical skills, but they're certainly valuable.
In a sense, yes, I suppose I do. Personally, I feel a little more "professional" if I'm more smartly dressed, which I find helps me to focus on doing a professional job (and to stop feeling like I'm at work when I go home and change). YMMV; I'm certainly not arguing that everyone will feel this way.
Sorry, I'm not sufficiently expert to tell you for sure who's implementing the technique already. IIRC, I first saw it described in some sort of research paper. It was a while back now, but I think it came out of somewhere like HP or Microsoft Research.
I'm pretty sure it's also been mentioned in discussions on a couple of the more serious C++ Usenet groups, so you might like to search archives of things like comp.lang.c++.moderated if you're interested in more details. If nothing else, there's probably a thread that cites the original paper I mentioned, because that's probably how I found it.
Sorry I can't be more specific.
I don't have time to write a long comment here, but I'll quickly note that the above isn't necessarily true any more. Modern compilers are pretty good at generating efficient code for exceptions. Although to the programmer they're quite an open-ended design tool and might be thrown in many places if you don't know exactly what someone else's code does, to the compiler they're quite deterministic: only certain places can ever throw exceptions and only certain places can ever catch them. Hence all the stack unwinding can be done in only a few places, not necessarily directly linked to the functions where the automatic variables are used.
As a result of such techniques, using exceptions is almost invariably better than propagating return codes manually. It's the usual deal: give the compiler more information, and it can better take advantage of it. The bulk of your code may actually run faster, because there's no need to test for and propagate return codes at each stage, and the overheads for exceptions are incurred only at the point of throwing.