Wednesday, December 28, 2011

There is No Such Thing as Proprietary Client-side JavaScript

 



 About 3 years ago, I launched my first product. I built it with two fabulous partners, who continue to produce awesome things. It was a little app, and a tool I thought made for better web. It is no longer online, due to costs, it was a URL aggregator called bundl.it. It was a big deal for me, as it was something I made, and put online for others to use. It was a useful tool, and I'm still very proud of it.  


 

A year or so later an established website in the same industry launched a feature that was doing the exact thing that my app was made for. They even gave it the same name. 

 

When the news hit I was flooded with emails from friends and folks that had happened upon my site. "Hey, are you working with xxx?", "Did you see what xxx did? They totally copied you!", "How could they do that, I'm so sorry. You should do something.", "Are you going to go after them?"

 

At the time I was disappointed, not because my idea had been "stolen," or "copied" by a larger company. I was disappointed because I knew that had I put my all into this product, if I had followed through with support, focused more on marketing, and funneled my energy in this product there wouldn't be market to steal. 

 

In other words, it was my responsibility to make my tool the staple the internet needed. However, the field was wide open, because I left it open. There is no such thing as disruption from the couch, and that was the valuable lesson I learned from the experience. 

 

Another lesson I learned, is that people seem to think they own ideas on the internet. Or, in this case, that I owned my idea that I put on the internet. 

 

We have seen a lot of arguing back and forth about these issues as the landscape of the web is starting to be sheriff'd. SOPA, The Winklevii, and hundreds of completely absurd patent lawsuits. These issues has made the concept of ownership of 1's and 0's on the forefront of world issues we face every day. 


 

As the world of software development becomes en vogue, we are seeing this issue broached by new developers and veterans alike.  The idea of code "ownership." The idea that the method, or the algorithm makes you money, and therefore is proprietary.



 

Web pioneers like Torvalds, de Raadt, Stallman, and DeIcaza battled on this ground. They created the free software movement, GNU/Linux, Git, Open BSD, and GNOME and told big-co software companies to go screw as they opened up their code for fellow developers to learn from, to better their craft. The sharing of ideas for a better internet. 


 

Yet, still today, people sue over simple equations behind engines making millions of dollars. NDAs and invention agreements are everywhere and claim to cover websites, executables, webapps, modules, functions, and methods alike. 

 

However, in the midst of it all, lies client side JavaScript. I freaking love this shit. I'm here to say there is no such thing as proprietary client side JavaScript. Again, there is no such thing as proprietary client side JavaScript! 

 

You can protest, argue, call people thieves, stake the moral high ground, and point fingers all you want. There is no obfuscation, everything you have done is right out in the open for everyone to see. More importantly, everything you do is in the ecosystem for people to learn from. I think it's a great proof of concept as I've never heard anyone get angry at someone else for stealing something they have written for the DOM.

 

People don't run around copy -> pasting things they find elsewhere. For many reasons, mainly, your style comes through in what you write. Your code is your signature, and someone else's never can express your unique type of art. When it does happen (which it does), it is a matter of ethics, not law or government. Clientside JavaScript is policed by the JavaScript community, and if you're a thief that copies and pastes, people know. 

 


Not all of us write JavaScript clientside. So we all can't go about just assuming people can learn from the things we have created. So I have a few suggestions. 

 

Obviously, there is Github, and any startup that puts their code out there for people to learn from is an open web advocate in my book. That also means we need to stop signing agreements that include clauses about the ownership of syntax (I will from this point on not be signing such contracts). This means educating the people we work for about the developer community, how we help each other, and how being open puts you in a unique position to improve your standing, and help others. 


 

Funny enough, developers are now in a place of power that we haven't known before. Recently, I've seen a new form of currency sweeping the world of business. Developeronomics. From the lone startup founder, to the VC; from the Mom and Pop shop, to the Hedge fund douche bags, from the CEOs of big corp to the teachers of public schools, there is something they all need. Web developers, good ones. Enough to offer obscene salaries, equities, weekly backrubs, briefcases of cash, and sexy parties to the crack team of developers they employ to carve out their section of the internet. 

 

This puts the development community in a unique position. Do we copy the established business community in the money grab? Do we want to line pockets while cranking out "It's this for that's" with every nerd for his/herself on the terms of "my code, my product, my creation?" 

 

We've seen what that has done for the remnants of the industrial age, with huge corporations being the enemy of the individual. Where corporations battle each other in the media, and keep a tight grip on information, even if it means people losing lives. Where advancements are being retarded by a legal cat and mouse game, because the information companies hold dear could help all of us the world over if they would join forces. 

 

What a beautiful place we are at where we can make a conscious decision not to follow in their footsteps. While the internet and it's implications are still being formed every day. When we decide that the education and advancement of future developers, our children, and the history books are more important than lining our pockets (seriously, how expensive can comfy sweatshirts and Vibram Five Finger shoes be?) 

 

Where would we be now if John Resig decided to keep his little library to himself? If DHH kept his framework proprietary? How much further could we be if more people shared the way they did? 

 

I'm pledging to work for an open web and open code, a place where we can all share, learn, and invent together. I hope you will too. 

 



5 comments:

  1. Speaking of startup who has their code open-source checkout https://erpnext.com/. It's an open-source online erp product with brilliant,javascript based UI.
    Disclaimer: I used to work for them.

    ReplyDelete
  2. As I understood, pretty much what you said about the free software movement opinion does not applies to Linus Torvalds. He pretty much disagree a lot with Richard Stallman. He even said the hate for Microsoft is a disease (back then when MS was a company people love to hate).
    As for the client side javascript, I would agree with you there is almost no such things as proprietary client side javascript. Things such as code and data that you put out in the open (to be consumed by web browsers) can have its own terms of use IF you decide it so.
    If nothing else, if you particularly trademarked the name of the project you started with, at the very least, they could not use even the same name. But my guess here is that you dont. Nothing wrong about that. Maybe at the time it didn't seem that important to you.
    My opinion, is that even though the guy can take your work and your application name, he does so in a very bad taste. Its like submitting collage assignment that is copied from someone else, and not changing a thing in the assignment, including the name.
    I think a good take from this is that you now know where you are good at. You know you can create a product that can be accepted by the market. Maybe last time you didn't spend as much time on marketing, now you can spend time on it or work with someone who is good at it.
    For me this is quite a a positive thing indeed. Right now you get a validation that your effort was good, so good that the other party take it at verbatim. There is nothing to say that you can't start on another idea, doing better this time.
    On that note, I would say all the best on your future projects. :-)

    ReplyDelete
  3. I'm with you. I try to put all of my sketches and ideas on Github or otherwise out into the Universe. If somebody "steals" the idea or does it better, good for them. I'll have time to work on something else.

    ReplyDelete
  4. I'm not sure what you mean by "there is no just thing as proprietary client sive JavaScript". You seem to be actually saying "there is no such thing as hidden/closed client-side JavaScript".
    "Proprietary software is computer software licensed under exclusive legal right of the copyright holder." (http://en.wikipedia.org/wiki/Proprietary_software) I consider this to be a bit of an abuse of the historical meaning of "proprietary" (which has more to do with originality), but it is the definition in vogue. Thus, there is much proprietary JavaScript, even on the client side, because the term has to do with copyright licensing and not "hiddenness".

    ReplyDelete
  5. What I'm more saying, is that making proprietary JavaScript is kind of like pissing into the wind. It doesn't do you much good.

    ReplyDelete