I don't have a problem with any refactoring tool if it allows me to see what changes it made (Kind of a no-brainer), and allows them to be undone if the results aren't too great after you do it. Even better is if they integrate with a tool's undo or redo, if they are hosted in an IDE like VS.Net, JBuilder, Eclipse, etc.
Sure, it's tricky to insure that more complex refactorings do what they say, and sometimes they do change the semantics, but in a way you want. For example, moving methods up/down in a hierarchy.
And the simple refactorings are still really useful. Rename X is just really, really nice.
I looked at the page, and I didn't really see the extensible metadata part. Sure, there is plugins and such, but NTFS has had layered file systems and addons too. Harder to write, maybe.
Some examples would be good.
Thanks for the references. I now kind of see why XUL isn't used outside of Mozilla stuff.
XAML maybe a solution looking for a problem, but I look at it as simply a new technology that is being promoted by Microsoft to make developing GUI applications easier, and frankly, from what I've seen, it really does that very nicely and has some really good ideas in it.
Sure, why not? CLR to JVM. I think it'd be harder, but not impossible. The JVM is much more closely tied to Java than, say C# is to the CLR. Weird, but true. Now, with 1.5, that'll change. You get boxing, etc, etc.
As for the XUL and XAML thing. XUL isn't getting traction. Why not? Frankly, because I've seen better documentation and examples from MS on XAML than I have from XUL. I've never seen a standalone example of XUL, and I've seen two XAML examples already.
Not to say that there aren't better XUL examples out there, but I can't find them. Okay, I didn't look too hard, but why in the heck isn't there a big developers here link on Mozilla that shows XUL off in all it's glory?
Yes, XAML is hyped. But part of that hype is showing developers how it works, and even getting the bits in their hands to play with.
As for Apple, really? Wow. I could have sworn that there was vector support in Aqua. Huh. Well, hell.
Also, having vector support doesn't mean you can never have bitmaps, just that you can use vectors when they are more useful. And it's surprising just how useful vector-based graphics are in some cases. Native support and accleration good.
Yea. It's an issue, especially if the company has enough in it to try and break the GPL as a way out of the mess they may have created it.
Even worse, as a side effect, the GPL could get toasted as a larger contract dispute. "They violated this license here! See!" (Judge looks at it...) "Well, that's too bad, because I don't think that license is legal." "Hey!" "Don't like it? Appeal." And the judge does it in the context of one case, and doesn't think about the ramifications outside that case. Erk.
A very key point. Basically, XAML allows a declarative access to components and placing them together.
I also though it allows declarative hooking of events, etc. to simple JavaScript.
The simple blogger demo I saw should really open some eyes, because it shows how useful XAML can be in gluing things together.
The idea is that you can change the layout and interface of a Windows application via XML.
Given this, it is possible that the new model would allow you to take the GUI of an application (say, Windows Player), and place it in another application, and place the controls, etc, in the application just like any other control. I don't claim that XAML allows to you do that, just that it may be possible.
From the stuff I've seen, it isn't not just a filesystem in a database. The stuff from Oracle just basically allowed you to set/get BLOBS in a DB via a filesystem. Cool, yes, useful, yep.
But that's all they could do, because filesystems don't understand anything else. They see files. They don't see metadata beyond what the file system sees.
Also, Oracle Files didn't address the search, relate, and act ideas. This part of WinFS. The idea that given rich metadata, users should be able to easily make rules like "If I get a email from this person mentioning this account number, then make a task to call this and that person and then try and make an appointment with X".
Really, really hard, but they are trying. Can they do it. I believe they can. Lots of smart people at MS. Will they, that's another question. After all, they do have a limit to throwing good money after bad at things (A high one, but still), and they have stockholders and war chest to protect, so...
WinFS really is changing what a filesystem is and does at a fundemental level. Yes, there is adoption of XML and DB ideas, but it goes beyond that.
Check out the WinFS core schema to get an idea of just what kind of metadata they are using. And the real interesting is that you can extend that schema to include whatever metadata you want.
I understand people not getting the WinFS vision, but there is enough information from MS now to make statements like "It's just a filesystem in a database, but they can integrate it" less convincing.
That's a good point about the tools. Probably makes sense to "give away" the base tools if you want to have a market for software. Given that MS just gave away the C++ compiler for Windows.
I agree that people misread how Open Source works, but how do you address that? Given those people that misread it are probably blinded by dollar signs, so maybe the only way to get them to get it is to attach dollar signs to it, I fear.
The problem I have with making money of support is that the hard part isn't support, especially if the product works pretty well. Support does not require the skill and training that software development does at this point.
As for MS, MS hasn't ever sued for market dumping, I don't think. Netscape kind of sort of did, but it was a monopoly issue in addition. Kind of hard for MS to call market dumping at this point. Call us when you've lost 20% is probably the response they'd get.
I'll have to look at StarOffice vs. OpenOffice.
I think there is a point in which that free software becomes less free after a certain amount of corporate adoption. Especially if it's add some stuff to free stuff and sell it, GPL or not.
And I do think lots of people in Open Source are trying to grow the pie, but I worry that it's not really working, because there is too much "get MS" mentality vs. "Do good stuff" out there.
Two reference to look at:
Stephen Gilmore, Mobile Resource Guarantees Project, Laboratory for Foundations of Computer Science, University of Edinburgh, Presentation, "Comparing the JVM and.NET", here>
Jeremy Singer, "JVM versus CLR: A Comparitive Study", Proceeding of the 2nd International Conference on Principles and Practice of Programming in Java, May 2002, pp. 167-169
Both papers compared the performance of the JVM to the CLR. The first used the Pascal compiler that emitted code for both the JVM (1.4) and the CLR and the second used Java Grande benchmarkes that were translated to C# and complied to the 1.0 CLR (the Java was compiled to Java 1.4.1, with hotspot).
In both cases, the CLR beat the JVM in performance, in some cases, by a large margin. A beta version and version 1.0 of the CLR on Microsoft beat a mature version of the JVM on the Windows platform. So, the CLR can indeed be faster than the JVM.
In fact, each paper talks about how the CLR instruction is more ameddable to optimization (on any platform) than the JVM, which was not originally designed with JIT in mind.
Just FYI. Any references on Java beating the CLR to counteract the above? (Seriously. Debate is good).
Well, excellent! I guess somebody not only agreed that it's be a good thing, but actually did the hard part of actually doing it. Best of luck in your efforts.
I disagree to a point. Competition is part of a lot of Open Source now. When the major Open Source communities made and embraced partnerships with major companies (not to mention new companies like RedHat) like IBM, Novell, etc, etc. and when contributions from those companies was accepted alongside those companies' resources and money, when they sell and/or profit from products based on open source, it's no longer just about making software as an exercise.
The reason SCO sues over Linux? Because IBM, etc. uses it to sell servers, and IBM has lots of money. Why Sun, Microsoft, (place company here) can/may/will(?) sue in the future? Because IBM, etc. uses it. And you can't go back unless you start over.
Also, software was already established as a product. Like most speech, it doesn't have to be free (as in free beer). You can sell books, newspapers, and so on. You can sell software.
Frankly, my problem is that the Open Source community seems to be more than happy to let any company use their work to boost their profit margins, without demanding anything in return. And we wonder why companies are willing to send software development to the lowest bidder?
Karma be dammed time.
Because the Open Source is seen by some as sending the clear message that software is not hard to make, that cool stuff can be done for free, so why not give it the lowest bidder? I mean, look at all the stuff they give away and people just make in their spare time? A Unix OS, Office Tools, Apache, etc. It's so cheap (hell, free), it must be easy to make, right?
That's not the case. If the OS community demanded compensation for commerical use (or just disallowed commerical use), the message could be different. This is not easy to do. In fact, we do it this way to pool vaulable resources from everywhere we can get them to make software, and while we choose to allow certain users to use the software without cost, or more reasonable costs (I'd restrict free use to educational or personal use at the most, sliding scale, etc.) it does not mean that you can use our valuable efforts to gain profit without consideration in return.
In fact, I believe that since Linux and other Open Source projects have allowed commerical gain, they should own up to the fact that they are in business, and they should start acting like it.
And, yes, right now in America, that does mean charging money, making profits, and using that money to benefit the people that helped you. That's really loosey goosey, I understand.
There is implied social contract right now. You employ people. You can use their work to make profits. You can't just take things for free and not face consequences. (You may get away with it, but you may end up defending your actions. MS did. It won, but it could have lost).
I'm sorry, but Linux, Apache, OpenOffice, etc. are all to the point in which they have commerical value and are being used commerically, and you can't just pretend that's not the case when it isn't convienent. For example, if MS sues you for market dumping.
Maybe it's time to think about growing the software market by selling these products at a reasonable rate, instead of just shrinking the market by giving away software to reduce MS or commerical Unix market share. Sure, it's a good size pie to redistribute, and MS has lots of share to lose, but isn't is much better to make a bigger pie for everybody to share?
There is lots of talking about software as a commodity. Well, even commodities have a price. They must be brought. The market sets the price. Giving away things undercuts the market. If you didn't want to deal with the market, Linux, etc should have never, never allowed any commerical use.
I think that Linux people are going to realize the true price of having IBM, Novell, etc. get on board. For one, it is no longer about technology, invention and freedom. It's now about business. Like it or not.
I appreciate that the GPL adds complications to this, but it is possible that yo
IANAL, but you don't own the content. You own a copy of it with certain, limited rights on how you can use it. You have a book. You can read it, but you can't make your own version of the book. There is fair use, but that is limited in scope as well.
There are fair use exceptions, but buying a DVD does not mean you brought the movie. You brought a copy of it and the means to view it. That's all. After all, it is copyright law.
One thing I really give Miguel credit for; he is more than willing to put up with the political heat and flak for taking MS ideas seriously and seeing how they could apply to the Linux/Open Source/GUI world.
Given the popularity of Perl, Python, etc, it makes sense for a language independent VM and libraries for programming. Is the CLR the best for this? Well, no, but there's a good case that it is best thing right now, or at the least, good enough!
I think a killer Open Source project would be port Java over to the CLR. To be really evil and fun, make it a JVM->CLR rewriter. Of course, Sun will sue you like mad, but that not why it wouldn't happen (it helps MS too much), but it would break Sun's hold on Java a bit more. Especially with Mono in the mix.
And now to for the flamebait (This is a post with MS stuff it in, after all).
Microsoft does have true innovations in Longhorn. (See, I told you). And it is worth paying attention to and evaluating. Passing it off as vaporware or FUD isn't wise, considering the bits are getting into people's hands right now.
XAML is nicely balanced and really seems like the first truly usable markup-based GUI language (XUL was close, but not close enough. I think it'd be much more popular otherwise).
Avalon is nice, not totally groundbreaking, but it does kill bitmap-based windowing, and I haven't seen anything that suggest that Linux world is pulling that trigger yet. (X being a obstacle in the way) Apple did, and the results speak for themselves I think.
WinFX has some very interesting ideas in how you structure components, and has the chance to become the next big thing in components (after COM. Another Microsoft innovation! Flames rising).
Finally, WinFS is very, very cool stuff, even as vaporware. I'm not surprised they had to scale it back, because what there are doing is nothing short of rethinking the file system from the ground up. This is a bold thought to take seriously. The notion of extensible metadata alone is powerful. (Before, file metadata was fixed.) Add in searching, extensible relationships, etc and you have something worth paying attention too.
This is innovation, in my book. Invention is coming up with those rare new ideas. I see innovation is taking those ideas and making them applicable, or practical, affordable, widely available, better, used by many and so on.
I think Ford was an innovator for creating a practical way to mass-produce cars. He didn't invent the car, he made it a reality for many.
Microsoft has done that, for better or for worse. Not all innovation is a priori good for all.
Of course, one should never obsess with what MS is doing to the determent of all else. Pay attention, but focus on doing what you can do best, and let the chips fall were they may.
Why Modeling (and UML) could be useful...
on
UML Fever
·
· Score: 4, Informative
Well, I'm one of the authors of the UML 2.0 specification, so karma be damned. Here's a totally biased response.
1. UML enables communication on design, architecture that everybody can contribute too. The standard notation and concepts in UML 1.x enabled a foundation for communicating in a team about aspects of software that are not easily gleaned from the code.
I think this in itself makes standardization worth it. Also, it's not a secret language of architects. You read the same books they do.
2. You don't have to have all in one place. The nature of modeling allows models to be developed across different diagrams. UML 1.x is incomplete in this area, UML 2.0 does better. Pushing this notion could lead to some to some interesting places, one could be AOP without requiring AOP code.
3. Some changes are easier in UML. Tools don't do a good job of this, but I find it much easier to change object hierarchies and relationships in UML than in code. Imagine extending this to other areas besides the static layout of classes.
4. Metamodeling. The problem with UML and it's tools right now is the complete lack of metamodel extensibility mechanisms. It's like XML, but you can only use a fixed set of schemas.
This could be a real rat trap, but on the other hand, it could very cool. For example, imagine extending the base class metamodel to add what your project needs for persistence, integrity and object communication, and instead of writing code for every class to enable your special features, you use a model tool and templates to automate most of the process for every class.
5. Little Languages that everybody can use. If metamodel holds promise, it is basis for providing Domain-Specific Modeling Languages that take advantage of common metamodel concepts and visual syntax to reduce the learning and usage curve for every language. Having standards in this area help ensure interoperability and lack of lock in.
Oddly, Microsoft is the only vendor right nowthat really seems to be taking on the notion of metamodeling and DSMLs. I expect IBM and others in Eclipse to do the same around the EMF.
6. Modeling could be a complementary abstraction to programming languages. With some exceptions, we rely on code to produce systems. In some areas, models can often provide additional information that is not "immediately clear" in the code, and can automate the generation of that code.
An excellent example is E/R modeling. I would argue that E/R modeling serves as an good tool for designing relational databases, and shows things about the database that may not be clear from the set of DDL statements.
Now, imagine having the ability to create a whole set of these models that all carry a common infrastructure and tool set. Your DB modeling tools is your XML modeling tool is your OO modeling tool is your Workflow modeling tool, and so on.
The problem is that I view UML as "modeling middleware". I don't see it as just a notation, but I see it as a core infrastructure to base modeling tools on. This probably because I worked on the metamodel. In other words, I've spent too much time inside UML that I see the outside much differently.
Granted, most tools make it seem that UML is pretty (expensive too) pictures. But, hopefully, with UML 2.0, people will understand the real promise of UML and modeling. I think it goes beyond the surface syntax.
Now modeling is not UML. In fact, if Microsoft really pushes forward with Whitehorse, they may create the de-facto modeling standard.
The UML community becomes much more aggresive about providing metamodeling capabilities. Also, XMI needs to improve big time. Also, the OMG and UML would be well served by reaching out to MS and staying in tune with where they are headed, so they don't get caught totally off-guard. There is hope, I think MS has does some good work for the W3C (and some bad work, of course).
I understand the differences, but I find Self fits more in the SmallTalk OO camp. Smalltalk is, of course, still class-based, but the programming model in Self feels like Smalltalk to me. Maybe it's Self syntax, but a part of it is that it feels very dynamically typed. So, Smalltalkish. Besides, selfish is a word already. What's the fun in that?
Well, the site is down. (Slashdot: The fun and friendly DDOS attack). I wonder if the twist on being prototype based will catch on in the script world.
The nature of the prototype OO model is a much more SmallTalkish (ooh, a new word). One problem is that you have to make a prototype, and that raises issues with default values and such.
The model is much more dynamic than class-based OO model. An interesting exercise I guess.
My apologies if this has been mentioned, but I find a little irony here. Take the "Microsoft kills competition. It's a monopoly. It abuses its power." frame of mind.
But, it's okay to fault Microsoft for not providing PDF export? Nevermind that there are numerous third-parties that sell software that does exactly that, and that if Microsoft put that kind of functionality in Office, it'd be anti-competitive, and Microsoft killing off those companies, right? The same kind of thing when MS added a browser to the OS, a media player, etc.
Call me confused. Microsoft could easily put PDF support in Office, but I bet they don't do so for defendable reasons. One, maybe they actually don't mind if Adobe sells Acrobat. Two, maybe they don't want the legal headaches, like Adobe suing them for market dumping to kill off Acrobat.
If PDF is an "open standard" then, MS, like everybody, has the right to implement it without fear of legal hassles, but MS can't do that. Is PDF really open in the free (beer or freedom) sense then?
"Loser Pays" is not the right term. You are correct. It's more "idiotic cases don't pay". If the case is dimissed on obvious lack of merit, then the lawyer or party is liable for all costs and a potential fine.
The idea is that lawyers must consider if a case has true merit. If the case is rule to have merit, then things proceed and recovery of costs can be included in the settlement, if it is ruled. If not, no such luck. The judgement comes at the beginning of a case, and it is not revisited later.
And if this means lawyers have to do more investigation into the facts of the case from their clients perspective and judge it's likelihood of success, I think that's a good thing. If that means that more facts have to be laid out early, then that's fine with me.
Also, if the client is persistent in seeking legal recourse, the lawyer can shift the burden to the client after discuss what that entails.
Yes, that will discourage a lot of suits, but that's fine by me. The problem is the number and nature of civil suits. The fact that many unduly profit by cases of dubious merit is a side effect of that problem.
In my mind, there is not enough to discourage lawyers from pursuing cases with little or no merit for fees. My friend is having to sue his neighbor from blocking off his driveway, over a weird nit in Utah law from 1894. He's up to his neck in fees, but it's still less than the loss on his house.
What does he have to do to recoup his costs? Sue the title company of course, and that's more lawyer fees. It's like you mentioned. Google can turn around and sue him. And that's one more case in the civil term. I'd argue we have way too many civil cases right now.
The problem is the civil system is win or lose, adversial, and a long process. I'd like to see arbitration take over as the default means to handling civil disputes. It's not win or lose and it can be much more streamlined, and it's the buck stops here. No stream of appeals (which often does little but add lots of billable hours).
The civil model is showing it's age and I claim it is outdated and needs revision and augmentation. In my judgement, the civil process serves those in law much, much more than the general population, and that's not the case. Remember, the system was set up with the notion that one could defend oneself in a civil case. You can't now. Criminals are required to have lawyers, but who will defend you in the civil term?
This is a slight variation on "Loser Pays". In fact, "Loser pays" isn't the right term.
If the case has merit and proceeds, the loser isn't necessarily required to pay the other side's court costs, unless that is part of the settlement.
So, in this case, a corporation or person may not recover any costs in a defense, even if they win the case.
The liability is introduced if the case is ruled to have "obvious lack of merit."
To go further, I'd even make coporations or lawyers that engage in extreme cases of meritless litgation can be charged criminally.
And finally, this would not hold for those who seek arbitration. The main problem with the civil term is that it is by nature adversial. There is a winner, a loser. In many cases, that is too black and white.
Arbitration is not win or lose, and that has real advantages. I think it'd be a good thing if arbitration becomes the default route of settling most civil disputes. In it's current form, it seems to be cheaper and faster and it works better.
I think it may be time for the US to seriously consider implementing a "Loser Pays" system in civil court. Basically, if you, as a lawyer, pursue what is found to be suit with insufficient legal merit, then you are liable for all the costs of the case, including the other sides fees, plus any penalty the court finds suitable.
If you as a lawyer don't believe that a case has merit, but the client wants to pursue the case, the lawyer can draw up a contract noting that the client has been advised that consuel believes the case does not have merit, and that they, the client, will bear the liability for all costs and penalties in the case.
The first thing that happens in a civil suit is that it is analyzed for merit, and if it found lacking, liability and fines are assessed.
Basically, it takes the profit motive for pursuing crappy cases out of the system. Why shouldn't lawyers pursue any case? Money is money.
And this still allows for anybody to pursue a case, but they have to assume the costs if the lawyer doesn't find any merit to the case.
I was reading this, and it basically summed up how good ideas can go horribly wrong. Basically, the authors are trying to make a tool that matches their ideal of music engraving. So, the use LaTeX markup ideas, add in a Scheme interpreter, don't really bother with MIDI import or other standards, focus on one thing to the exclusion of all else and basically come up with a tool that almost nobody will probably use.
Because most musicians just want to make readable scores quickly and effectively. They aren't looking to make works of art. Those people that want engraving, will probably pay an engraver to do so. And engravers have their own tools.
The whole thing seemed to be "we make better printouts that anybody else" seems awfully subjective and not really the main point.
A tool that likely takes 10 times as long to make a simple score for band class (not to mention the huge learning curve) is not a good computer tool for most musicians. A tool that bangs out pretty nice scores fast, that's a good use of software.
Just one issue I did not as mentioned. The author talks about how the NT 5.x kernels can't scale to 8-way systems and beyond without major rewrites.
But it seems to fail to mention that for those kind of machines, Datacenter Server is used. And that is a different version of the NT kernel built for 8 way systems and up. Windows 2003 Standard and Enterprise are not exactly same as 2003 Standard or Web. At the least, Enterprise and DataCenter are NUMA aware. The claim may still be true, but without looking at those version, I'm more skeptical.
Also, the criticism that Windows had to undergo big changes seems a bit unfair. Of course Windows is growing and changing. It's barely a teenager, really, where UNIX is heading towards its 40s.
UNIX evolved and changed drastically in it's youth. And UNIX never had integrate single-user OS ideas and requirements (PC, not on the network, one user, etc) into the multi-user network, because nobody had their own computer.
Look at the radical changes from OS 9 to OS X. Granted, you can argue that Apple handled it better, but having a smaller user, application and hardware helped there, in my opinion. They could get all the third-parties lined up and on-board with the changes, and they still had to quite a bit to support "classic" apps.
How similar is Linux 1.0 to 2.6 really? Change is not bad, drastic or otherwise.
Agreed that a deterministic build process is good, but by storing binaries alongside the source, that verifies that the build for version 2.1.2.4 of Foofware builds exactly the binary in the SCM system. And, if by misfortune it doesn't, you can dig around and see where the differences might lie.
Also, there is the case when you just want a particular configuration. Let's say you want version 1.2.4 of your SuperOS to be installed to reproduce a bug for a customer. The bug is not in the OS, but you want to reproduce the environment quickly.
A build could take a long time, and you may not have the resources to exactly recreate what the customer has. But, if you have the binaries, you just check them out and load them.
You should be able to rebuild on demand, but that's not always possible. Certainly, it is to be desired (and demanded for recent versions), but if you can't even produce the binary version of software, then you really have a problem.
This seems to ignore the very real problem of how businesses address bust/boom cycles. It seems to me that too many companies rely too much the stock market to provide captialization and business value.
Sure, markets are important, but stocks are not the end all, be all indicator of business health. What about all those companies that are private? It is a shame that heavy speculation in the markets can depress the economy so much that it affects companies that are not as dependent on the stock market (Small/Medium businesses).
Instead of maintaining cash reserves to maintain consistent staffing level thoughout cycles, too many companies purge staff to reduce costs, thereby maintaining a bottom line to try and maintain stock value. When stocks go up, they rehire. Nevermind the retraining costs.
The real problem is the widespread mismanagement of payrolls in too many companies. When I was laid off, when got a stat sheet of the impact. Almost no management was affected, and the real talent was reduced. I guess I'd better learn to middle manage next time. Too many people with too little seniority or pay are let go. The people that can least afford to be laid off are the most likely to be laid off.
And finally, a pep talk is all fine and good, but it doesn't address people's real problems. I was told just 2 weeks before I was laid off that they were "sure" my job was just fine. Yea, right. And I'm sure that making an ADA request just two weeks before that had nothing to do with the decision. And, no I was not at a dotcom
Now, I can watch everything I own disappear as my savings to drained to nothing. But I can laugh at my severance being taxed at the bonus rate, I can laugh at having to sell my new house, at my laughable unemployment benefits, my CORBA costs. All this joy while people that had half my skills keep their jobs, and those with more talent than me get laid off in spades.
The economic crash was due to unchecked greed. Don't blame those who had geniune, interesting, even if misplaced ideas. Blame those who used them to try make fast money for nothing.
I don't have a problem with any refactoring tool if it allows me to see what changes it made (Kind of a no-brainer), and allows them to be undone if the results aren't too great after you do it. Even better is if they integrate with a tool's undo or redo, if they are hosted in an IDE like VS .Net, JBuilder, Eclipse, etc.
Sure, it's tricky to insure that more complex refactorings do what they say, and sometimes they do change the semantics, but in a way you want. For example, moving methods up/down in a hierarchy.
And the simple refactorings are still really useful. Rename X is just really, really nice.
I looked at the page, and I didn't really see the extensible metadata part. Sure, there is plugins and such, but NTFS has had layered file systems and addons too. Harder to write, maybe. Some examples would be good.
Thanks for the references. I now kind of see why XUL isn't used outside of Mozilla stuff. XAML maybe a solution looking for a problem, but I look at it as simply a new technology that is being promoted by Microsoft to make developing GUI applications easier, and frankly, from what I've seen, it really does that very nicely and has some really good ideas in it.
Some responses.
Sure, why not? CLR to JVM. I think it'd be harder, but not impossible. The JVM is much more closely tied to Java than, say C# is to the CLR. Weird, but true. Now, with 1.5, that'll change. You get boxing, etc, etc.
As for the XUL and XAML thing. XUL isn't getting traction. Why not? Frankly, because I've seen better documentation and examples from MS on XAML than I have from XUL. I've never seen a standalone example of XUL, and I've seen two XAML examples already.
Not to say that there aren't better XUL examples out there, but I can't find them. Okay, I didn't look too hard, but why in the heck isn't there a big developers here link on Mozilla that shows XUL off in all it's glory?
Yes, XAML is hyped. But part of that hype is showing developers how it works, and even getting the bits in their hands to play with.
As for Apple, really? Wow. I could have sworn that there was vector support in Aqua. Huh. Well, hell.
Also, having vector support doesn't mean you can never have bitmaps, just that you can use vectors when they are more useful. And it's surprising just how useful vector-based graphics are in some cases. Native support and accleration good.
Yea. It's an issue, especially if the company has enough in it to try and break the GPL as a way out of the mess they may have created it.
Even worse, as a side effect, the GPL could get toasted as a larger contract dispute. "They violated this license here! See!" (Judge looks at it...) "Well, that's too bad, because I don't think that license is legal." "Hey!" "Don't like it? Appeal." And the judge does it in the context of one case, and doesn't think about the ramifications outside that case. Erk.
A very key point. Basically, XAML allows a declarative access to components and placing them together.
I also though it allows declarative hooking of events, etc. to simple JavaScript.
The simple blogger demo I saw should really open some eyes, because it shows how useful XAML can be in gluing things together.
The idea is that you can change the layout and interface of a Windows application via XML.
Given this, it is possible that the new model would allow you to take the GUI of an application (say, Windows Player), and place it in another application, and place the controls, etc, in the application just like any other control. I don't claim that XAML allows to you do that, just that it may be possible.
From the stuff I've seen, it isn't not just a filesystem in a database. The stuff from Oracle just basically allowed you to set/get BLOBS in a DB via a filesystem. Cool, yes, useful, yep. But that's all they could do, because filesystems don't understand anything else. They see files. They don't see metadata beyond what the file system sees. Also, Oracle Files didn't address the search, relate, and act ideas. This part of WinFS. The idea that given rich metadata, users should be able to easily make rules like "If I get a email from this person mentioning this account number, then make a task to call this and that person and then try and make an appointment with X". Really, really hard, but they are trying. Can they do it. I believe they can. Lots of smart people at MS. Will they, that's another question. After all, they do have a limit to throwing good money after bad at things (A high one, but still), and they have stockholders and war chest to protect, so... WinFS really is changing what a filesystem is and does at a fundemental level. Yes, there is adoption of XML and DB ideas, but it goes beyond that. Check out the WinFS core schema to get an idea of just what kind of metadata they are using. And the real interesting is that you can extend that schema to include whatever metadata you want. I understand people not getting the WinFS vision, but there is enough information from MS now to make statements like "It's just a filesystem in a database, but they can integrate it" less convincing.
That's a good point about the tools. Probably makes sense to "give away" the base tools if you want to have a market for software. Given that MS just gave away the C++ compiler for Windows.
I agree that people misread how Open Source works, but how do you address that? Given those people that misread it are probably blinded by dollar signs, so maybe the only way to get them to get it is to attach dollar signs to it, I fear.
The problem I have with making money of support is that the hard part isn't support, especially if the product works pretty well. Support does not require the skill and training that software development does at this point.
As for MS, MS hasn't ever sued for market dumping, I don't think. Netscape kind of sort of did, but it was a monopoly issue in addition. Kind of hard for MS to call market dumping at this point. Call us when you've lost 20% is probably the response they'd get.
I'll have to look at StarOffice vs. OpenOffice.
I think there is a point in which that free software becomes less free after a certain amount of corporate adoption. Especially if it's add some stuff to free stuff and sell it, GPL or not.
And I do think lots of people in Open Source are trying to grow the pie, but I worry that it's not really working, because there is too much "get MS" mentality vs. "Do good stuff" out there.
Two reference to look at: Stephen Gilmore, Mobile Resource Guarantees Project, Laboratory for Foundations of Computer Science, University of Edinburgh, Presentation, "Comparing the JVM and .NET", here>
Jeremy Singer, "JVM versus CLR: A Comparitive Study", Proceeding of the 2nd International Conference on Principles and Practice of Programming in Java, May 2002, pp. 167-169
Both papers compared the performance of the JVM to the CLR. The first used the Pascal compiler that emitted code for both the JVM (1.4) and the CLR and the second used Java Grande benchmarkes that were translated to C# and complied to the 1.0 CLR (the Java was compiled to Java 1.4.1, with hotspot).
In both cases, the CLR beat the JVM in performance, in some cases, by a large margin. A beta version and version 1.0 of the CLR on Microsoft beat a mature version of the JVM on the Windows platform. So, the CLR can indeed be faster than the JVM.
In fact, each paper talks about how the CLR instruction is more ameddable to optimization (on any platform) than the JVM, which was not originally designed with JIT in mind.
Just FYI. Any references on Java beating the CLR to counteract the above? (Seriously. Debate is good).
Well, excellent! I guess somebody not only agreed that it's be a good thing, but actually did the hard part of actually doing it. Best of luck in your efforts.
I disagree to a point. Competition is part of a lot of Open Source now. When the major Open Source communities made and embraced partnerships with major companies (not to mention new companies like RedHat) like IBM, Novell, etc, etc. and when contributions from those companies was accepted alongside those companies' resources and money, when they sell and/or profit from products based on open source, it's no longer just about making software as an exercise.
The reason SCO sues over Linux? Because IBM, etc. uses it to sell servers, and IBM has lots of money. Why Sun, Microsoft, (place company here) can/may/will(?) sue in the future? Because IBM, etc. uses it. And you can't go back unless you start over.
Also, software was already established as a product. Like most speech, it doesn't have to be free (as in free beer). You can sell books, newspapers, and so on. You can sell software.
Frankly, my problem is that the Open Source community seems to be more than happy to let any company use their work to boost their profit margins, without demanding anything in return. And we wonder why companies are willing to send software development to the lowest bidder?
Karma be dammed time.
Because the Open Source is seen by some as sending the clear message that software is not hard to make, that cool stuff can be done for free, so why not give it the lowest bidder? I mean, look at all the stuff they give away and people just make in their spare time? A Unix OS, Office Tools, Apache, etc. It's so cheap (hell, free), it must be easy to make, right?
That's not the case. If the OS community demanded compensation for commerical use (or just disallowed commerical use), the message could be different. This is not easy to do. In fact, we do it this way to pool vaulable resources from everywhere we can get them to make software, and while we choose to allow certain users to use the software without cost, or more reasonable costs (I'd restrict free use to educational or personal use at the most, sliding scale, etc.) it does not mean that you can use our valuable efforts to gain profit without consideration in return.
In fact, I believe that since Linux and other Open Source projects have allowed commerical gain, they should own up to the fact that they are in business, and they should start acting like it.
And, yes, right now in America, that does mean charging money, making profits, and using that money to benefit the people that helped you. That's really loosey goosey, I understand.
There is implied social contract right now. You employ people. You can use their work to make profits. You can't just take things for free and not face consequences. (You may get away with it, but you may end up defending your actions. MS did. It won, but it could have lost).
I'm sorry, but Linux, Apache, OpenOffice, etc. are all to the point in which they have commerical value and are being used commerically, and you can't just pretend that's not the case when it isn't convienent. For example, if MS sues you for market dumping.
Maybe it's time to think about growing the software market by selling these products at a reasonable rate, instead of just shrinking the market by giving away software to reduce MS or commerical Unix market share. Sure, it's a good size pie to redistribute, and MS has lots of share to lose, but isn't is much better to make a bigger pie for everybody to share?
There is lots of talking about software as a commodity. Well, even commodities have a price. They must be brought. The market sets the price. Giving away things undercuts the market. If you didn't want to deal with the market, Linux, etc should have never, never allowed any commerical use.
I think that Linux people are going to realize the true price of having IBM, Novell, etc. get on board. For one, it is no longer about technology, invention and freedom. It's now about business. Like it or not.
I appreciate that the GPL adds complications to this, but it is possible that yo
There are fair use exceptions, but buying a DVD does not mean you brought the movie. You brought a copy of it and the means to view it. That's all. After all, it is copyright law.
One thing I really give Miguel credit for; he is more than willing to put up with the political heat and flak for taking MS ideas seriously and seeing how they could apply to the Linux/Open Source/GUI world.
Given the popularity of Perl, Python, etc, it makes sense for a language independent VM and libraries for programming. Is the CLR the best for this? Well, no, but there's a good case that it is best thing right now, or at the least, good enough!
I think a killer Open Source project would be port Java over to the CLR. To be really evil and fun, make it a JVM->CLR rewriter. Of course, Sun will sue you like mad, but that not why it wouldn't happen (it helps MS too much), but it would break Sun's hold on Java a bit more. Especially with Mono in the mix.
And now to for the flamebait (This is a post with MS stuff it in, after all).
Microsoft does have true innovations in Longhorn. (See, I told you). And it is worth paying attention to and evaluating. Passing it off as vaporware or FUD isn't wise, considering the bits are getting into people's hands right now.
XAML is nicely balanced and really seems like the first truly usable markup-based GUI language (XUL was close, but not close enough. I think it'd be much more popular otherwise).
Avalon is nice, not totally groundbreaking, but it does kill bitmap-based windowing, and I haven't seen anything that suggest that Linux world is pulling that trigger yet. (X being a obstacle in the way) Apple did, and the results speak for themselves I think.
WinFX has some very interesting ideas in how you structure components, and has the chance to become the next big thing in components (after COM. Another Microsoft innovation! Flames rising).
Finally, WinFS is very, very cool stuff, even as vaporware. I'm not surprised they had to scale it back, because what there are doing is nothing short of rethinking the file system from the ground up. This is a bold thought to take seriously. The notion of extensible metadata alone is powerful. (Before, file metadata was fixed.) Add in searching, extensible relationships, etc and you have something worth paying attention too.
This is innovation, in my book. Invention is coming up with those rare new ideas. I see innovation is taking those ideas and making them applicable, or practical, affordable, widely available, better, used by many and so on.
I think Ford was an innovator for creating a practical way to mass-produce cars. He didn't invent the car, he made it a reality for many.
Microsoft has done that, for better or for worse. Not all innovation is a priori good for all.
Of course, one should never obsess with what MS is doing to the determent of all else. Pay attention, but focus on doing what you can do best, and let the chips fall were they may.
Well, I'm one of the authors of the UML 2.0 specification, so karma be damned. Here's a totally biased response.
1. UML enables communication on design, architecture that everybody can contribute too. The standard notation and concepts in UML 1.x enabled a foundation for communicating in a team about aspects of software that are not easily gleaned from the code.
I think this in itself makes standardization worth it. Also, it's not a secret language of architects. You read the same books they do.
2. You don't have to have all in one place. The nature of modeling allows models to be developed across different diagrams. UML 1.x is incomplete in this area, UML 2.0 does better. Pushing this notion could lead to some to some interesting places, one could be AOP without requiring AOP code.
3. Some changes are easier in UML. Tools don't do a good job of this, but I find it much easier to change object hierarchies and relationships in UML than in code. Imagine extending this to other areas besides the static layout of classes.
4. Metamodeling. The problem with UML and it's tools right now is the complete lack of metamodel extensibility mechanisms. It's like XML, but you can only use a fixed set of schemas.
This could be a real rat trap, but on the other hand, it could very cool. For example, imagine extending the base class metamodel to add what your project needs for persistence, integrity and object communication, and instead of writing code for every class to enable your special features, you use a model tool and templates to automate most of the process for every class.
5. Little Languages that everybody can use. If metamodel holds promise, it is basis for providing Domain-Specific Modeling Languages that take advantage of common metamodel concepts and visual syntax to reduce the learning and usage curve for every language. Having standards in this area help ensure interoperability and lack of lock in.
Oddly, Microsoft is the only vendor right nowthat really seems to be taking on the notion of metamodeling and DSMLs. I expect IBM and others in Eclipse to do the same around the EMF.
6. Modeling could be a complementary abstraction to programming languages. With some exceptions, we rely on code to produce systems. In some areas, models can often provide additional information that is not "immediately clear" in the code, and can automate the generation of that code.
An excellent example is E/R modeling. I would argue that E/R modeling serves as an good tool for designing relational databases, and shows things about the database that may not be clear from the set of DDL statements.
Now, imagine having the ability to create a whole set of these models that all carry a common infrastructure and tool set. Your DB modeling tools is your XML modeling tool is your OO modeling tool is your Workflow modeling tool, and so on.
The problem is that I view UML as "modeling middleware". I don't see it as just a notation, but I see it as a core infrastructure to base modeling tools on. This probably because I worked on the metamodel. In other words, I've spent too much time inside UML that I see the outside much differently.
Granted, most tools make it seem that UML is pretty (expensive too) pictures. But, hopefully, with UML 2.0, people will understand the real promise of UML and modeling. I think it goes beyond the surface syntax.
Now modeling is not UML. In fact, if Microsoft really pushes forward with Whitehorse, they may create the de-facto modeling standard.
The UML community becomes much more aggresive about providing metamodeling capabilities. Also, XMI needs to improve big time. Also, the OMG and UML would be well served by reaching out to MS and staying in tune with where they are headed, so they don't get caught totally off-guard. There is hope, I think MS has does some good work for the W3C (and some bad work, of course).
Eek. Good point. I guess I was thinking more along the lines of Perl and Python there. Whoops.
I understand the differences, but I find Self fits more in the SmallTalk OO camp. Smalltalk is, of course, still class-based, but the programming model in Self feels like Smalltalk to me. Maybe it's Self syntax, but a part of it is that it feels very dynamically typed. So, Smalltalkish. Besides, selfish is a word already. What's the fun in that?
Well, the site is down. (Slashdot: The fun and friendly DDOS attack). I wonder if the twist on being prototype based will catch on in the script world.
The nature of the prototype OO model is a much more SmallTalkish (ooh, a new word). One problem is that you have to make a prototype, and that raises issues with default values and such.
The model is much more dynamic than class-based OO model. An interesting exercise I guess.
My apologies if this has been mentioned, but I find a little irony here. Take the "Microsoft kills competition. It's a monopoly. It abuses its power." frame of mind.
But, it's okay to fault Microsoft for not providing PDF export? Nevermind that there are numerous third-parties that sell software that does exactly that, and that if Microsoft put that kind of functionality in Office, it'd be anti-competitive, and Microsoft killing off those companies, right? The same kind of thing when MS added a browser to the OS, a media player, etc.
Call me confused. Microsoft could easily put PDF support in Office, but I bet they don't do so for defendable reasons. One, maybe they actually don't mind if Adobe sells Acrobat. Two, maybe they don't want the legal headaches, like Adobe suing them for market dumping to kill off Acrobat.
If PDF is an "open standard" then, MS, like everybody, has the right to implement it without fear of legal hassles, but MS can't do that. Is PDF really open in the free (beer or freedom) sense then?
Well, there goes the karma...
"Loser Pays" is not the right term. You are correct. It's more "idiotic cases don't pay". If the case is dimissed on obvious lack of merit, then the lawyer or party is liable for all costs and a potential fine.
The idea is that lawyers must consider if a case has true merit. If the case is rule to have merit, then things proceed and recovery of costs can be included in the settlement, if it is ruled. If not, no such luck. The judgement comes at the beginning of a case, and it is not revisited later.
And if this means lawyers have to do more investigation into the facts of the case from their clients perspective and judge it's likelihood of success, I think that's a good thing. If that means that more facts have to be laid out early, then that's fine with me.
Also, if the client is persistent in seeking legal recourse, the lawyer can shift the burden to the client after discuss what that entails.
Yes, that will discourage a lot of suits, but that's fine by me. The problem is the number and nature of civil suits. The fact that many unduly profit by cases of dubious merit is a side effect of that problem.
In my mind, there is not enough to discourage lawyers from pursuing cases with little or no merit for fees. My friend is having to sue his neighbor from blocking off his driveway, over a weird nit in Utah law from 1894. He's up to his neck in fees, but it's still less than the loss on his house.
What does he have to do to recoup his costs? Sue the title company of course, and that's more lawyer fees. It's like you mentioned. Google can turn around and sue him. And that's one more case in the civil term. I'd argue we have way too many civil cases right now.
The problem is the civil system is win or lose, adversial, and a long process. I'd like to see arbitration take over as the default means to handling civil disputes. It's not win or lose and it can be much more streamlined, and it's the buck stops here. No stream of appeals (which often does little but add lots of billable hours).
The civil model is showing it's age and I claim it is outdated and needs revision and augmentation. In my judgement, the civil process serves those in law much, much more than the general population, and that's not the case. Remember, the system was set up with the notion that one could defend oneself in a civil case. You can't now. Criminals are required to have lawyers, but who will defend you in the civil term?
This is a slight variation on "Loser Pays". In fact, "Loser pays" isn't the right term. If the case has merit and proceeds, the loser isn't necessarily required to pay the other side's court costs, unless that is part of the settlement. So, in this case, a corporation or person may not recover any costs in a defense, even if they win the case. The liability is introduced if the case is ruled to have "obvious lack of merit." To go further, I'd even make coporations or lawyers that engage in extreme cases of meritless litgation can be charged criminally. And finally, this would not hold for those who seek arbitration. The main problem with the civil term is that it is by nature adversial. There is a winner, a loser. In many cases, that is too black and white. Arbitration is not win or lose, and that has real advantages. I think it'd be a good thing if arbitration becomes the default route of settling most civil disputes. In it's current form, it seems to be cheaper and faster and it works better.
I think it may be time for the US to seriously consider implementing a "Loser Pays" system in civil court. Basically, if you, as a lawyer, pursue what is found to be suit with insufficient legal merit, then you are liable for all the costs of the case, including the other sides fees, plus any penalty the court finds suitable.
If you as a lawyer don't believe that a case has merit, but the client wants to pursue the case, the lawyer can draw up a contract noting that the client has been advised that consuel believes the case does not have merit, and that they, the client, will bear the liability for all costs and penalties in the case.
The first thing that happens in a civil suit is that it is analyzed for merit, and if it found lacking, liability and fines are assessed.
Basically, it takes the profit motive for pursuing crappy cases out of the system. Why shouldn't lawyers pursue any case? Money is money.
And this still allows for anybody to pursue a case, but they have to assume the costs if the lawyer doesn't find any merit to the case.
I was reading this, and it basically summed up how good ideas can go horribly wrong. Basically, the authors are trying to make a tool that matches their ideal of music engraving. So, the use LaTeX markup ideas, add in a Scheme interpreter, don't really bother with MIDI import or other standards, focus on one thing to the exclusion of all else and basically come up with a tool that almost nobody will probably use.
Because most musicians just want to make readable scores quickly and effectively. They aren't looking to make works of art. Those people that want engraving, will probably pay an engraver to do so. And engravers have their own tools.
The whole thing seemed to be "we make better printouts that anybody else" seems awfully subjective and not really the main point.
A tool that likely takes 10 times as long to make a simple score for band class (not to mention the huge learning curve) is not a good computer tool for most musicians. A tool that bangs out pretty nice scores fast, that's a good use of software.
Just one issue I did not as mentioned. The author talks about how the NT 5.x kernels can't scale to 8-way systems and beyond without major rewrites.
But it seems to fail to mention that for those kind of machines, Datacenter Server is used. And that is a different version of the NT kernel built for 8 way systems and up. Windows 2003 Standard and Enterprise are not exactly same as 2003 Standard or Web. At the least, Enterprise and DataCenter are NUMA aware. The claim may still be true, but without looking at those version, I'm more skeptical.
Also, the criticism that Windows had to undergo big changes seems a bit unfair. Of course Windows is growing and changing. It's barely a teenager, really, where UNIX is heading towards its 40s.
UNIX evolved and changed drastically in it's youth. And UNIX never had integrate single-user OS ideas and requirements (PC, not on the network, one user, etc) into the multi-user network, because nobody had their own computer.
Look at the radical changes from OS 9 to OS X. Granted, you can argue that Apple handled it better, but having a smaller user, application and hardware helped there, in my opinion. They could get all the third-parties lined up and on-board with the changes, and they still had to quite a bit to support "classic" apps.
How similar is Linux 1.0 to 2.6 really? Change is not bad, drastic or otherwise.
Agreed that a deterministic build process is good, but by storing binaries alongside the source, that verifies that the build for version 2.1.2.4 of Foofware builds exactly the binary in the SCM system. And, if by misfortune it doesn't, you can dig around and see where the differences might lie.
Also, there is the case when you just want a particular configuration. Let's say you want version 1.2.4 of your SuperOS to be installed to reproduce a bug for a customer. The bug is not in the OS, but you want to reproduce the environment quickly.
A build could take a long time, and you may not have the resources to exactly recreate what the customer has. But, if you have the binaries, you just check them out and load them.
You should be able to rebuild on demand, but that's not always possible. Certainly, it is to be desired (and demanded for recent versions), but if you can't even produce the binary version of software, then you really have a problem.
Sure, markets are important, but stocks are not the end all, be all indicator of business health. What about all those companies that are private? It is a shame that heavy speculation in the markets can depress the economy so much that it affects companies that are not as dependent on the stock market (Small/Medium businesses).
Instead of maintaining cash reserves to maintain consistent staffing level thoughout cycles, too many companies purge staff to reduce costs, thereby maintaining a bottom line to try and maintain stock value. When stocks go up, they rehire. Nevermind the retraining costs.
The real problem is the widespread mismanagement of payrolls in too many companies. When I was laid off, when got a stat sheet of the impact. Almost no management was affected, and the real talent was reduced. I guess I'd better learn to middle manage next time. Too many people with too little seniority or pay are let go. The people that can least afford to be laid off are the most likely to be laid off.
And finally, a pep talk is all fine and good, but it doesn't address people's real problems. I was told just 2 weeks before I was laid off that they were "sure" my job was just fine. Yea, right. And I'm sure that making an ADA request just two weeks before that had nothing to do with the decision. And, no I was not at a dotcom
Now, I can watch everything I own disappear as my savings to drained to nothing. But I can laugh at my severance being taxed at the bonus rate, I can laugh at having to sell my new house, at my laughable unemployment benefits, my CORBA costs. All this joy while people that had half my skills keep their jobs, and those with more talent than me get laid off in spades.
The economic crash was due to unchecked greed. Don't blame those who had geniune, interesting, even if misplaced ideas. Blame those who used them to try make fast money for nothing.