Currently, Patents are all about making certain techniques (business processes, algorithms, etc.) illegal unless licensed.
Who honestly reads patents to learn about technology anymore?
359 karma · joined February 1, 2010
Currently, Patents are all about making certain techniques (business processes, algorithms, etc.) illegal unless licensed.
Who honestly reads patents to learn about technology anymore?
One can also make the argument that code is read more often than written.
But often times it is used exclusively (or in majority) on the server-side. If the server side language follows the underscore_case convention. That's where the ambiguity creeps in.
Should the json keys be camelCased or underscore_cased? It's a bit ambigious.
Patents were put in place to discourage trade secrets. In the technology world, trade secrets are not quite as advantageous as they once were.
Somebody else could have developed the FW technology, at a certain cost and time spent. It still makes the FW technology valuable.
> Indeed, FingerWorks probably would never have been founded if it could not have differentiated itself with patented technology.
So by that argument, why do any software companies exist? Last time I checked, I'm getting paid to write software. You're just trying to spread FUD. Nice try.
Interesting, but the iphone should have nothing to do with this. This is simply over the multi-touch technology and whether or not other people can independently come up with similar solutions.
Why not have the best of both worlds and open up another market? There's also an opportunity cost, because smaller companies cannot use this technology and innovate. Smaller companies tend to innovate more than bigger ones (yes even Apple). So yes, darn.
> How is that innovative? When products do not differentiate, they compete on price, which drives prices down to levels incapable of sustaining any significant innovation.
Oh, but products do differentiate and technology does improve. For example, software, unencumbered by patents, has been sustaining (and increasing) significant innovation for quite a while. Also, software does not only compete on price.
Also, it's innovative because companies have to push the envelope and cannot rest on their laurels to just use their position to rake in the cash (like Microsoft and IBM did).
It comes down to simple economics. Protectionism hinders innovation.
Anyways, what's wrong with clones? It's time to market that matters. If somebody clones an ipad, or whatever, then the markets will decide who the winner is.
Unfortunately with the bajillions of already existing patents, it is very difficult and costly to innovate in an incremental manner (incremental improvement tends to be efficient improvement) without infringing on something.
- My assertion is fundamentally flawed. - Even the line of code metric YOU come up with is fundamentally flawed.
TDD does force you to think about the interface of your abstraction, however. If it is painful to write (or maintain) the test, then that is a good indication that the abstraction is wrong or not being properly tested. Don't be afraid of deleting tests when they are not useful.
I often find that these unanticipated bugs are often due to incorrect abstractions. To fix it, create the correct abstraction and test it.
It is also simply faster to develop in larger projects than creating the state that would test your unit. For example, you could make a change, manually refresh the page, and debug or write the test and make it pass. You also get the benefit of regression testing.
Note that the narrower your unit, the less likely it will be useful for regression purposes.
I often find that when beginning a project, my units are smaller. As abstractions are built, the nonessential tests are deleted and future tests are built upon abstractions that I care about.
With json I have to resort to imperative means and care about the middle layers. That means refactorings are more likely to break software.
Fundamentally there is no reason why json cannot have it's own selector which traverses the tree. There just isn't one that I know of though.
If you want to go more toward the software engineer approach you have a few options. You can stick with CS, but try to work on actual projects. For example, you can contribute to an open source project or start a company. The main thing is to work on projects that aren't cookie-cutter tasks, such as the ones that are common in school.
Switching majors so you can learn something new is also a great option. What are your other interests? If you do go with the school route, you will probably learn more about problem solving by learning a new field. You can still use your programming skills with many majors.
Another option is to get a job. Frankly, I think college is overrated. School is good, but there it is not the only route. You could probably get a good position at a startup, and will probably learn more than in school.
I didn't get interested in programming until I was a sophomore in college. I graduated with a BS in Engineering Physics. I'm glad I didn't major in CS, and I was still able to pursue software development. You will have plenty of opportunities in school to try new things. I have to say that I have learned more about problem solving (at a faster rate) while in the workforce, than in school.