But in the case of proprietary file formats, or really any non-crypto-based attempt to hinder interoperability, the less control, the better. For example, Microsoft could have hypothetically designed their DOC format for the explicit purpose of creating legal issues, such as by having files consist of a series of API calls to reconstruct the document (like WMF!), so that anyone parsing the document would have to reimplement the APIs. To be fair, the need to do so for actual compatibility would weigh heavily in favor of fair use, whereas the story with Android is somewhat weaker (especially because nobody seems to have told the Federal Circuit that Android actually is compatible with existing Java libraries, rather than the API copying being solely for the sake of programmer familiarity...) Also, there is no real need to use copyright for this purpose in the first place: patents have been shown to be quite effective in locking down file formats (c.f. H.264, x86 instructions) - and don't have fair use - so arguably copyright gives offenders nothing they couldn't achieve by other means. But then, patents are limited-duration and who knows, maybe the law with respect to them will be improved some day. No need to hand out extra tools.
Visual J++ was a very usable Java. Had Sun failed to sue it out of existence, the world would have had a Java with a good UI stack developers actually used, an IDE that was not unusably slow and buggy, AND almost all packages built for Sun's Java would drop right in without problems. Visual J++ would have created the same effect on the use of Java that Android did, but it would have happened approximately 10 years earlier.
Sun's suit was tremendously destructive of a very useful product that would have helped the cause of Java's wide use. Unnecessary, spiteful, and an own-goal.
EDIT: And less VB, and more Windows applications software running in a managed language runtime, years earlier.
Can't argue about the UI stack in general, but IntelliJ is a dream compared to anything Microsoft have ever produced.
Forte later became NetBeans and today it is fine but it was rubbish back then especially compared to Microsoft's tool chain.
This is what it took to make interactive Java successful in Android: Subtract cross-platformness, add a runtime designed for a specific OS architecture, add a nice UI stack, and add modularity to apps that makes component lifecycle useful to running apps efficiently. Among other mods. Android "corrupted" the fuck out of Java which was absolutely nowhere as a language for interactive software.
Oracle should have gotten on the bandwagon.
Joel on Software had article about the file formats several years ago. Apparently big chunks of the files are basically just memdumps. http://www.joelonsoftware.com/items/2008/02/19.html
I don't know if this is still the best way. LibreOffice has came a long way for sure, but still doesn't reproduce Word's layout perfectly (which is still the expectation).
E.g. if I open a word document in libreoffice (to do e.g. review and commenting), save it without any changes to the layout, then I'd expect the original author to have the same document layout as before... and that is not so. The same applies to LibreOffice Calc - opening and saving the document produces changes.
Can't you just have a unit test that verifies that reading and immediately writing a document should keep it completely unchanged, except possibly for metadata?
I do not envy those who have spent years of their life trying to reverse engineer .doc and .xls formats... those are pretty nasty.
My understanding with Java is MS had signed a contract with Sun so there were other obligations. From a purely engineering POV though it makes total sense to extend. When I embed a language in my app (lua, JavaScript, whatever) the first thing I do is expose all my functionality.
Ok. Shame on me. You win. Checkmate.
But you won't fool me twice. No more support for "innovation" and "intellectual property" of any kind.
You can still ask me to pay for it, but you won't have the copyright industry stick to swing at me if I decide I'd rather get it from an unsupported source because your version only comes with digital restrictions.
Was it so bad back when you could just buy software for money? Before business models built on eyeballs and data mining instead of copyright?