Morfik Patents AJAX Compiler 181
MikeyTheK writes "It appears that under the radar, the USPTO granted Morfik a patent for the "System and method for synthesizing object-oriented high-level code into browser-side javascript". Reading further, it appears that they have patented the compiling of high-level languages into AJAX apps. The high-level languages include "Ada, C, C++, C#, COBOL, ColdFusion, Common Lisp, Delphi, Fortran, Java, Object Pascal, SmallTalk, Visual Basic, and Visual Basic.NET". It would appear that the application date is September, 2005."
My First Thought (Score:5, Insightful)
All I can say is: where was your due diligence, Morfik? It doesn't make a whole lot of sense to spend time and money on filing a patent that will be useless to you after it's granted. The best they could do is scare a few Open Source projects into submission. Anyone with a vested interest in the technology is going to do the due diligence that Morfik didn't, and take the matter to court.
The only "out" they have available is to show evidence that they disclosed the inner workings of their JST product prior to GWT being released. In which case they might have protection from the "one year to file" rule. Maybe. Or maybe they're just trying to carry out this threat [ajaxian.com] in a laughably oversimplified fashion. (They're lawyers must be telling them it won't work?) Go figure.
For those who are unaware of what GWT is, it's basically a toolkit that takes Java programs and converts them down to Javascript. By coding Java to the GWT toolkit*, you gain all the benefits of the Java compiler and type checking without sacrificing the ability to deploy on browsers that do not have Java installed. I'd rather code in Javascript myself, but it has its place.
Re:My First Thought (Score:5, Informative)
That's 2005, not 2006.
Re: (Score:2)
Re: (Score:3, Interesting)
In any case, I managed to pull the patent. (Search in published applications for application #20070055964) It looks like this is the exact same patent, just in different forms. (One an application while the other is the issued? Could someone who knows more about the filing process chime in here?) In which case, Morfik may have a valid patent. It will be interesting to see how this plays out.
Re: (Score:2)
Re:My First Thought (Score:5, Informative)
Re: (Score:2)
Re: (Score:2)
patents reward disclosure, not invention (Score:2, Insightful)
If you invent something and you don't disclose it fully and publicly, you lose your right to use your invention if someone else patents it. That's what the patent system is intended to accomplish.
Re: (Score:2)
Re: (Score:2)
yaccety yacc (Score:5, Interesting)
Re: (Score:2)
Re: (Score:3, Interesting)
It reads like what I've seen done for years: having a program (e.g. PHP-based) that produces javascript or calls to javascript. Heck, I wrote something like that as recently as 2005. "Compile" could be as simple as building an array of javascript function calls that are then embedded into a web page.
That said, another case of poor judgment of the USPTO. Last summer I took a class in Patent Law at my law school. The professor showed a patent for a
Re:My First Thought (Score:4, Insightful)
Re: (Score:3, Funny)
Re: (Score:2)
Frigidaire, watch out -- my lawyers are on the way!
Re: (Score:2)
Re: (Score:2)
Re: (Score:2)
On the other hand, if you can be proven to have not displayed due diligence, you run the risk of a substantial shareholder lawsuit, because your lack of due diligence can be seen as a type of actionable mismanagement.
I would argue that, by modern standards, failing to at least attempt to patent something like this could be argued to be in itself a failure of due diligence by a sufficiently informed shareholder possessed of the moral rectitude of a wood tick.
Re: (Score:2)
Criminal Penalties for Frivolous Applications (Score:2)
Re: (Score:2)
That would just tilt the patent system even more in the favor of large companies, patent trolls, and hordes of lawyers. Determining if there is prior art - even well publicized prior art - for a patent can be damn hard. Even an expert in a reasonably specific field (say "Web Programming" here) won't know about all of the potential prior art.
Consider how the law you suggest would effect a big company, a patent troll, and a small entrepreneur. The big company would file the same patents they always did - th
Re: (Score:2)
All where preprocessors that translated one high-level language into another.
Re: (Score:2)
I wrote a cross assembler in FORTRAN that ran on the TRS-80 Model-IIs that they had in the programing lab. I could write my code in assembly and then dump the hex output to the printer. I then wrote a simulator for the 6800 s
Re: (Score:2)
damn! what a waste of a bit.
Re: (Score:2)
Re: (Score:2)
Re: (Score:2)
Re: (Score:2)
Re: (Score:2)
Subcase ! It's old stuff. (Score:2)
Isn't this a very specific subcase of all "translating" compilers that compile some highlevel into some other similarly- or not quite so- high level language (instead of compiling highlevel language into assembly / bytecode) ?
Thoses have been around for years.
As recently Pugs [wikipedia.org] - the perl 6 to haskell/perl 5 (and parrot [wikipedia.org] intermediate representation for lower level) translator.
Or to cite
Re: (Score:2)
Re: (Score:2)
Analogous to: "Your mother hasn't been convicted, only charged with witchcraft. So chill out!"
Department of redundancy department (Score:2)
Well, if this keeps people from making C into JS (Score:5, Funny)
Then maybe the patents aren't such a bad thing.
Could some explain to me why Javascript Java (Score:2)
Trying to answer my own questions the relevant issues are:
1) is the size of the javascript smaller or larger?
2) is java faster or slower for sophisticated operations?
I don't actually know which will be true. While normally i'd expect java to be faster than an interpered language, it's not so obvious for code sent across the web. While simple things like
Re: (Score:2)
Because every browser has a roughly adequate JavaScript interpreter that is integrated with page rendering.
Re: (Score:3, Insightful)
Here's the process:
Requiring a Java VM is t
Re: (Score:2)
Of course they theoretically support it. Do they have it? If they do, is the startup time for a person with their browser under 500 ms?
Until the answer to both those questions is yes for 95% or more of typical web users, client-side Java is of no use to me in the places where I'd use GWT.
Economic Model (Score:2)
Re: (Score:3, Informative)
The MSFT technology [asp.net] that the poster is referring to used to be marketed as Atlas but no longer. It is not in violation of this patent because it does not compile server side code into client side java script. Instead, it provides a lot of web controls that use AJAX instead of the traditional ASP.NET form post to interact with the server.
Re: (Score:2)
Re: (Score:2)
Do you mean Visual Studio 2005? :-)
The first beta came out in 2004, I believe. i.e., before September 2005.
Re: (Score:2)
IANAL so take this with a grain of salt. IMHO, VS.NET does not infringe on the first independent claim of the Morfik patent. It is my understanding of U.S. patent law that all independent claims of a patent must be infringed upon in order for it to be a patent violation.
Don't even think it. (Score:3, Funny)
Re:Don't even think it. (Score:4, Funny)
I'm afraid you have infringed my copyright (Score:2)
Re: (Score:3, Funny)
Re: (Score:2)
Re: (Score:3, Funny)
Did you patent the "dur dur... I'm going to patent blank" line?
Re: (Score:2)
HA! Follow through with your threat and I'll sue your ass!
Re: (Score:3, Funny)
Re: (Score:2)
ya know (Score:3, Funny)
Turing tarpit (Score:2)
Re: (Score:2, Informative)
Re:Turing tarpit (Score:4, Informative)
Yes. [w3.org] Next question?
Re: (Score:3, Funny)
Yes. [wikipedia.org] Next question?
Re: (Score:2)
Re: (Score:2)
There are two types of self-modifying programs: programs that physically modify their machine code (which is possible for assembly, C or other really low-level apps), and functional languages.
Firstly, you're right, Javascript and most other high level languages can't modify their machine code because it's entirely protected (not to mention, usually interpreted).
But, high-level functional languages can create code at runtime. T
Re: (Score:2)
Also what the original poster was saying with "it is technically possible to do anything" is that JavaScript, like most programming languages, is turing complete.
This means any algorithm you can write in one language you can write in another, including JavaScript.
A lot of turing-complete languages (eg. Java) are not self-modifying, but they can still code up any algorithm. They just have to find another way to do it, and this computability th
Not an invention (Score:2)
Turing Completeness? (Score:4, Insightful)
(I know, they'd approve a patent on cheese if you worded it as "a method for transforming milk and bacteria into edible food product.")
Re: (Score:3, Informative)
If it's an algorithm, it's been firmly established legally that it is patentable. It transforms a computer from a "general purpose device" into a "specific invention". Any lawyer will tell you this. Patents are granted for algorithms all the time and they cannot be challenged on that basis.
If you write a book, you transform hundreds of sheets of blank pages into a device for keeping you absorbed for a few hours, but they won't let you patent that for
Re: (Score:2)
books (Score:2)
NOT A PATENT (Score:5, Informative)
Re: (Score:2)
Re: (Score:2)
There's that period of readjustment every April 2nd, as we return from an endless stream of unfunny "joke" stories to an endless stream of just-plain-wrong stories.
Re:NOT A PATENT (Score:5, Informative)
There is a review process where an examiner searches for prior art that matches or closely matches the application. Then, in probably 90% or more of cases, a rejection letter for some or all of the claims is sent to the attorney (or the applicant if filing without an attorney). After a few months, a response from the attorney comes. This can now go one of two ways. If the attorney argued your prior art is not applicable, you can 1) uphold your decision, in which it become a "final rejection" or 2) change your rejection in which case you basically repeat the first step again.
The other method is they pre-date your prior art, using proof of older design date, if your rejection wasn't under 102(b) that is. You can now write a rejection with new prior art and this becomes a "final rejection". However, these "final rejections" are not the end of the process. They can either make a last ditch effort to amend to your liking (and probably get their "stamp"), they can basically repay the filing fees and start over with another two rounds, or they can file an appeal to the Board of Patent Appeals and Interferences (BPAI, I think that is right.). If they still don't like the decision they can appeal to the CAFC (Court of Appeals for the Federal Circuit), and in the very unlikely case, all the way to the Supreme Court.
I recommend three pieces of literature before you say they just stamped "approve" on everything. Read title 35 of the United States Code (35 USC), title 37 of the Code of Federal Regulation (37 CFR), and the Manual for Patent Examining Procedure (MPEP). I am pretty sure that is the right CFR, but all of those documents will give you an idea of what a patent examiner deals with. I gave you a very rough and very brief explanation of the procedure above. And to end this, I was a Patent Examiner, so yes, I do know something about this.
What does that mean for AJAX then ? (Score:2)
ColdFusion? (Score:2, Insightful)
Compiler definition (Score:3, Insightful)
Even here in 2007, some people still seem to think the only thing that can be called a compiler is something that takes source code and emits binary code, but that's just one specific special case. The same basic principles that GCC uses will be used by PovRAY to compile its scene language into an image, ignoring the raytracing part. (That is, setting up the internal representation of the scene is just like a compiler.) Compiling C# into IL uses the same basic techniques. Defining anything that uses standard compiler techniques as a compiler is the motivation for my preferred definition.
Given the long history of compilers, and the sheer profusion of them, I really don't think that compilers ought to be patentable anymore. Compiling Java into Javascript isn't a novel idea, it's "just" some engineering by somebody who understands compilers. (Which the recent "Wasabi" uproar over Joel on Software's posting proved is not all that many people, but still, it's simple once you see the tricks.) The only even remotely tricky part of such a compilation is if there's no easy way to get the syntax tree directly from the language parser, and that's still just engineering. There's definitely plenty of copyrightable stuff in such a compiler, but it'd take something very, very novel for it to be patentable.
(Note I'm writing this message as if I weren't entirely against software patents, which I am, at length [jerf.org]. This is written from the putative point of view of the patent system; even then, compilers generally aren't that novel an idea. Saying "with a compiler!" is up there with "on the internet!" for novelty.)
Re: (Score:3, Insightful)
Compiling Java into Javascript isn't a novel idea, it's "just" some engineering by somebody who understands compilers.
Indeed, but sadly not many programmers do understand compilers. (And even fewer understand linkers.)
Other examples are CFront (the first C++ compiler) which just compiled C++ into straight C, which was then compiled by an existing C compiler, and the first Modula-3 compiler, which also just compiled to raw C.
I myself have written a compiler that took a scripting language in our game editor, compiled it to C, linked the C code into a DLL, loaded the DLL into the game editor, and ran the code all in a
Re: (Score:2)
There is also the concept of nested abstract machines that is
Ruby on Rails?? (Score:2)
April Fool's! (Score:3, Funny)
Yeah, haha, Hemos, you almost had me! OMG PONIES!!!1!! Very clever April Fool's joke! And for the USPTO to be in on it... Wow. Best one yet!
GPL3 ecosystem (Score:2)
As a consultant, I always try to sell my customers on going open source, if it makes sense for their situation. Open source == cost savings.
Slashdot Just DOES NOT GET Patents (Score:5, Informative)
1. The title of a patent does not describe the scope of what the patent will cover. In this example, they are not trying to patent every single "System and method for synthesizing object-oriented high-level code into browser-side javascript." They are trying to patent *one particular, specific system and method* for doing so. That is a big friggin difference. If you read the patent claims, you will see what the patent is actually covering. Summary: People on Slashdot inappropriately freak out when they see a patent title that looks broad and they really ought to know better by now.
2. This is a patent APPLICATION!!! Not an issued patent. When people try to get a patent, they make the claims incredibly broad at first. And then the examiner will make them narrow the claims as they negotiate what the patent actually will cover. In this example, I am going to hazard a guess that the examiner will probably make them throw out claims 1 through 4. And the examiner might let their broadest claim be claim 5. The people trying to get this patent KNOW that this is what will happen during this process--it is how things are done! I am astounded that the people on Slashdot have not picked up on this yet. Summary: Just because a patent application has incredibly broad claims, that does not mean 1) that the patent will issue that way, or 2) that the people applying for the application realize that what they are in their application claiming is too broad.
Get with it, people! I hope that reading this may take the discussion here from "Patents suxkzorz!!" to "Well, claim 1 looks way to broad because of $somePriorArt . . . but the method described in claim 5 . . . hmmm, I don't know that I've ever heard of anything that does it that way exactly."
Here's to hoping, anyway!
Re: (Score:2)
Re: (Score:2, Insightful)
Difference Between Application/Priority Date (Score:4, Informative)
Under 35 U.S.C. 102(e), a prior filed U.S. patent or application can be used as "prior art" against a currently filed application. As an example, suppose Application A was filed on March 1, 2006 that discloses each and every limitation of claim 1 of the current application. Application A could then be used under 35 U.S.C. 102(e) as "prior art" to reject claim 1 because it has an earlier filing date (application date) than the current application. However, the Applicant of the current application could then rely on the priority date of the provisional application, which is September 6, 2005, to overcome the rejection. In this case, the Examiner would then have to go back to the provisional application to which the current application claims priority, and determine, whether, in fact, the provisional application discloses the subject-matter claimed by claim 1. As an additional comment to 35 U.S.C. 102(e), I briefly add that it is common for an Examiner to reject a claim in view of a reference that qualifies as "prior art" under 35 U.S.C. 102(e), where the reference is used with other art under 35 U.S.C. 103(a) [uspto.gov].
Hence, there is a difference between filing dates and priority dates, and these two dates need not always be the same. So, to say that these application has a filing date of September 5, 2006 would be correct, but then to say that this application has a priority date of September 6, 2005 would also be correct.
The opinion expressed herein does not represent the views of any government or private organization.
Time to Modernize.... (Score:3, Funny)
I guess now I am forced to to port all of my FORTRAN AJAX apps over to Perl
Re: (Score:2)
This isn't under the radar. Been known about. (Score:3, Informative)
http://blogs.zdnet.com/web2explorer/?p=196 [zdnet.com] explains the patent back in 2006. No, Morfik didn't copy it. They even hypothetically showed it to Google before GWT was released.
This was already being done in 2001 (Score:3)
Simple solution. (Score:2)
Yay! (Score:2)
Looks like a none starter to me... (Score:2)
It is NOT the summary that matters, but the claims. Claim 10 reads consisting of Ada, C, C++, C#, COBOL, ColdFusion, Common Lisp, Delphi, Fortran, Java, Object Pascal, SmallTalk, Visual Basic, and Visual Basic.NET, as do claims 11, 12, 16, 17 and 18. None of the claims read "langauges include".
They admit that someone has produced a S2 to javascript complier, but then try to weasel out saying
In any event, this approach has various limitations, namely, it is only a "p
Re: (Score:2)
There was a perl PIL compiler that was commited in July of 2005.
From the README [openfoundry.org].
PIL2JS - PIL to JavaScript compiler
=head1 DESCRIPTION
C is a Perl 5 program which takes PIL as input (as given by C) and outputs JavaScript.
Looks like the same thing to me. Again, not listed in prior art.
BWP
Solution? (Score:2)
Just have someone show a working invention to the people at the patent office. That will be patented. You want to spur innovation? Maybe rewarding people AFTER they innovate might be better than to reward them after they have submitted nothing but paper and ink?
Just a thought.
Patent Cycles (Score:2)
Obviousness, Prior Art, a bad patents (Score:3, Interesting)
Its a bad patent because it is so "obvious". All they've done is to define JavaScript as as a p-code machine and created a (set of) compiler(s) for translating arbitrary programming languages into JavaScript "p-code". They have, in effect, attempted to patent compilers, albeit in a very limited way. Doing this was extrordinarily obvious, so much so that it wouldn't surprise me if there were hundreds of instances of prior art.
This may be one reason why the patent is so badly written. A truly general patent would make claims against all possible programming languages, but this one explicitly does not. Almost every claim is tacked down to a specific list of languages, and that list varies from claim to claim. Worse, none of the claims address some of the most widely used web programming langauges, including Perl, RUBY, Python, and PHP. My guess is that either (1) the patent was written by an amateur or (2) that these list variations reflect what they were able to find in their search of prior art. The mere existence of variations in the claims is probably evidence of the obviousness of this patent.
As for prior art, we've already seen claims of prior art in IBM (1996) and Microsoft (1998) products. That doesn't surprise me at all. I can recall discussing use of a JavaScript translator for an Ajax-like project I was in involved with (at IBM Research) in 1996. We didn't actually do it while I was on the project, but it was an option, and certainly not one that anyone would have believed was in any sense patentable. Appearance of such code in VisualAge during that same time frame would be anything but surprising. That is, for instance, the same time frame in which Mike Cowleshaw is translating REXX into Java p-code while retaining the interpretability of the REXX.
There are so many other examples of this kind of machine code translation, going all the way back to the original Fortran. I don't see a chance that this patent will hold up to scrutiny.
S2 (Score:2)
1.) Compiler is the wrong term. 2.) Prior Art. (Score:3, Informative)
2.) Prior Art. Tons of it. Laszlo [openlaszlo.org] and a bunch of other generators have been doing this for years. This patent won't even last a month. To many big players involved in RIA to let it pass. It's about as long lasting (and as silly) as the famous Gary Larson 'Chicken hung by a helium balloon floating into a pub full of Samurai'. Nothing new here, move on.
Re: (Score:2)
Re: (Score:2)
pypy (Score:2, Informative)
Re: (Score:2)