Any half-assed hacker can reverse engineer your code
Reverse engineering is, in fact, one of the hardest forms of engineering and projects that reverse engineer are generally filled with some of the smartest brains we have- because it's very hard. You think the wine devs are idiots ? Yet it took them more than decade to get out of alpha !
Part of that, mind you, was because they had little to no money and were working part time. How do you think Zynga cranks out their own versions of whatever the hot new game on the App store is in two weeks? Because they've got a team of a dozen full-time paid programmers reverse engineering the code.
Perhaps OP's hyperbole should be toned down to "any company with sufficient resources and motivation can reverse engineer your code," which, I'm sure you'll agree, is true.
>He can then replicate your software in 1/10th the time it took you to develop your software
If what my software does is so simple that somebody can replicate it in 1/10th the time it took me to do it - then he's the better programmer and he deserves to win in the market place. My best defense, in fact, is to use a free software license in the first place - so it's to his benefit to rather add his features to *my* product where we can both profit than to go and create his own.
Use a free license so you can both profit? What are you going to do, make it up in volume? \_()_/
Your best defense is a patent, though you may not like them for various moral reasons. Regardless of legitimate complaints about patent abuse and patent trolling, patents are useful when a giant company swoops in and blatantly steals a feature from a small company and says, "what are you going to do, sue us?" Microsoft learned that from lesson from i4i.
You must be truly incompetent as a programmer if you are *this* afraid to compete on the merits of your product - that even with a first-to-market advantage you are this convinced any "half-assed-hacker" can make something better than you did...
Or OP's a competent programmer, but in an industry that lacks proprietary format lock-in and where the market is quick and fickle. Like, say, mobile games. NimbleBit certainly weren't incompetent programmers, but their first-to-market advantage didn't help them against Zynga's giant cross-marketing arm. Nor did Liam Bowmers, creator of Castle Clout, see a dime for Angry Birds.
As noted above, a company with the resources to devote can reverse engineer your product within a couple weeks. More difficult product that you've been working on for years to solve problems? They'll just hire more engineers. Your first to market advantage is going to be negligible, because your head start will be tiny, and they can spend lots of money on marketing, since they don't have to pay people for years to solve the problems you did when they can just take your solution.
exactly the the reason patents exist
No. That is not at all why patents exist. The reason patents exist is right there in the law. To promote open disclosure of how an invention works. Quite the opposite of what you think - it's to make sure you will have MORE competitors than you otherwise would. The reward for letting the world copy your invention, is having a brief time where nobody is allowed to.
Here, we're in agreement. The point of patents is to encourage people to give up trade secrets. Otherwise, we would end up with crappy proprietary format lock-in, intrusive DRM, and highly restrictive licenses like the one AutoCAD uses to keep people from selling older copies of their software.
One of the major problems with software patents it the absolute lack of disclosure actually - I've yet to read a software patent include full source for an implementation of the idea - and nothing less than a working source implementation can count as 'blueprints' for a software program.
I would agree, except that I'd say flow charts and pseudocode should be sufficient as blueprints. I'd also point out that, once a patent application has been filed for, an inventor is free to release white papers, functional specifications, source code, etc., without losing any rights. The original patent for Brunelleschi's merchant boat didn't include any details in the patent - it did, however, include a legal requirement that he was to separately teach everyone how to build it. Patents in many ways are like land deeds - they're written in formal language to sketch out the boundaries of a claimed invention - but you wouldn't rely on the land deed to build a house.
That said, the patent office and courts could be much better at enforcing the written disclosure requirements.
Hey it's first-to-file - who gives a fuck that she died after spending 50 years 'inventing' romance novels before I got the patent right ?
First to file didn't change anything about rules of inventorship. It simply changed the case where two inventors independently create the same thing at the same time and both file identical patents. Know how rare that is? There were about 20 interferences per year, out of half a million patent applications. And they cost hundreds of thousands to resolve. First to file simply reduces that to a black and white decision, rather than a trial.
That would be mathematics. Which is, in fact, a language - and unpatentable all by itself anyway. You may want to study computing theory - if you think software is anything but NOT pure and unadulterated mathematics on every level it's because you don't actually know what software is. Only what we try very hard to make it pretend to be.
Machines can be easily abstracted to pure and unadulterated mathematics, too, but no one would say a transmission is unpatentable because you can describe it in gear ratios.
Pure software is unpatentable. Software implemented by a machine, however, is no longer just mathematics - like the transmission, it's a bunch of interconnected parts configured to produce a particular result.
No, 'technology' consists of real, physical things - machines and devices. Processing steps - a completely abstract set of ideas is not and has never been patentable, software was an abberation in this regard - and the Alice verdict was basically the supreme court telling you just that.
35 USC 101 defines patent eligible subject matter, and uses the term "process", which is a set of steps. Processes have always been patentable in this country, and the Supreme Court certainly did not say they weren't or that software wasn't patentable in Alice Corp. They said that some attempts to claim processes were too abstract (and Alice wasn't on software anyway, but double book accounting). In fact, the word "software" doesn't appear even once in the Alice decision. And a bunch of software has been patented since, and the Supreme Court just denied appeals from a bunch of patent eligibility cases, confirming patentability of software in some of them.
Alice Corp involved a terrible patent. But that doesn't mean that by invalidating it, the Supreme Court threw out all patents.
So what are you ? Patent lawyer ? Patent troll ? Since those are the *only* people who have ever benefited from software patents. No programmer has ever found them anything but a massive risk. No programmer has ever benefited from them. Many have been bankrupted by them - but it wasn't usually other programmers bankrupting them.
Don't know about OP, but I'm an engineer and a patent lawyer. And I've got many clients who rely on patents to protect their businesses. Maybe some programmer in a cubicle working for them might think patents have no value... but if that programmer's work could be easily copied by every competitor, then the programmer has no value to the company.
If we used a graphical flowchart based system to describe software
You may actually get a little closer to at least properly disclosing the invention - it wouldn't solve the other problems. Oh and graphical flowcharts used to be the standard way we designed software until not so long ago. We ditched them because they don't work very well - especially for stuff like parallel execution where you could have dozens of lines on the chart all being followed at once...
Every patent application on software includes at least one flow chart. Problem is that the patent office just said "include a flow chart, and you're okay", rather than "include a detailed flow chart that you could hand to a programmer and say 'build this'," which is what they should have said, under 35 USC 112. As I said above, we agree that the disclosure requirements aren't being sufficiently enforced.
Nope software has never been patentable and never will be. It was a massive legal fuckup to pretend they were, perpetrated by a court of people who - whatever their merits as judges - were idiots at technology who could barely tell the difference between software and magic - let alone fairly adjudicate whether this is patentable technology or not. Because courts and legal systems are slow beasts, and precedent is a thing - it took decades for judges to start figuring out they had made a mistake and finally start fixing it.
Hundreds of what you'd call software patents are being issued every day, and judges are upholding them. I think you're going to have to eat that "never has been and never will be" statement.
Incidentally, your arguments are nothing new. Every new industry throughout history has complained about patents - people said that automobile patents shouldn't exist, aerospace patents shouldn't exist, textile patents shouldn't exist, small molecule pharmaceutical patents shouldn't exist, etc.. This has all been done before, and will be done again.