7 ms·
The Javascript Trap
- swolchok 18y agoLook, dude, web software is often part of a software as a service model. If I let you dig through my JS, you would get the service for free. In short: No.
- dmv 18y agoThat does not -- and should not -- immediately follow. If you consider your look and feel software to be your exclusive value-add, you are not a candidate for FOSS and RMS is irrelevant. The traditional SOAS advantage is availability and data access; having your client code freely available does not reduce either advantage. Accessing is not (should not) be equivalent to access. If I had the front-end javascript source code to gmail or salesforce or basecamp, that would neither give me access to other user's data, nor give me free access. Proof: I do have access to their complete front-end source code, just minified. Having it more readable would just be convenient. Minification / Obfuscation != Security. Don't put anything in your front end code that you would not want an adversary to read (true of the backend too, if perhaps less urgently).
- swolchok 18y agoObfuscation adds an inconvenience barrier: you get the code for free (of course, because you can't be stopped), but you don't get nice, maintainable, well-written code for free.
- jodrellblank 18y agoYou get the code without charge, but you don't get it with (legal, licensed) freedom to tinker with it, which is RMS's ongoing concern.
- mahmud 18y agoFacebook can release its entire application platform as Free software and you could not take their user base away from them. I think web developers are over estimating the sophistication of their work :-)
- axod 18y agoIf their software was available from the very start - eg before they had any users, it's quite possible someone else may have 'won'. You can't argue based on a 'network effect' website that has obvious lock-in. Look at some non-social webapp. Say an online image editor. If the source was available, copy cats competitors could spring up and take away market share. There's no upside to releasing the source code, and obvious downside (Assuming you're in it to make money and not just spread love).
- mahmud 18y ago"If the source was available, copy cats competitors could spring up and take away market share." Image-editing algorithms are published in text-books. Graphics API for the web (flash, java, canvas, etc.) are published in API documentation. Nothing is secret. If someone copies your GPLed Free software and improves on it you can go and copy the improved version if you want it. If a competitor is blindly copying you, you probably have nothing to worry about (should I elaborate?.) And if your competitive edge can be taken away with cut-and-paste, then you have ALLOT to worry about.
- axod 18y agoIt's a decision that should be up to the author. And I personally have complete respect for both decisions.
- mahmud 18y agoRespects. But allow me to add that the great majority of web startups are running on the value of a "social network". Remove the users and the service is worth nothing. You can't say that about shrink-wrap software; even if the great majority of the people don't use it, there is that one or two lucrative corporate or government contract to make it all worthwhile. So in that light, shouldn't the users of web apps be entitled to something a little more than "free use"? Say, a little assurance that the platform they trust so much of their private lives is transparent, extensible, and should the company sink tomorrow, available for replication? What happens when you strike it rich, sell the startup to a Mega Corp and move to Tahiti? The users will be at the mercy of greedy suits who will fill data warehouses with every click, persona and profile of your users, the very same people who made you rich.
- hank777 18y agowhat a whacko. I should allow you to access my servers and services for free? I should allow you to control how you use my resources in a way that guarantees I loose money? Stallman is a digital socialist. The idea of services (or anything other than direct labor) that people charge for offends him. That offends me.
- critic 18y ago"communist"
- jodrellblank 18y ago"label"
- inklesspen 18y agoI don't see anywhere where he demands free-of-charge access. Stallman supports "free software" where the "free" means that the user's liberty to manipulate the program is preserved. In Stallman's dream world, you would be free to charge for your service, or put ads up, or whatever you like. But your service would use standardized file formats, and the user would be able to modify the application (both server-side and client-side) to suit his needs.
- jskopek 18y agoCorrect me if I'm wrong, but aren't the two ideals (being able to charge for your work VS. being able to modify others' work) contradictory? I have zero experience with Firefox extension development, but everything I _have_ seen about it points at it being very difficult to mirror in a closed source environment.
- viraptor 18y agoThese are not contradictory. People still buy services. Also, you don't have to charge users directly. Three simple examples: - firefox - open, free, gets money from google - openmoko - open mobile, you can even download their pcb design and CAD files, but they do sell the product - specialised apps - company I work for releases some code as open-source, but that doesn't mean that our users have resources to provide the same service themselves, so we don't lose anything
- akie 18y agoRichard Stallman is an extremist. Seriously.
- berntb 18y agorms is arguably not totally in the mainstream -- but the world is a better place because rms is in it just based on emacs, gcc and the GNU (-: no editor war-answers, please. I don't have the time :-). (Also, note that the guy's opinions and world view have been getting more and more popular.)
- dasil003 18y agoIn the early days free software was the norm. Everyone in computer science took it for granted. RMS, however, saw which way the wind was blowing, and helped codify the free software ideals for posterity. If it was not for him, we may very well not have Linux or any significant open source software today. We may think he's a wacko, but his extremism is necessary in a world where our freedoms are bought and sold by monied interests. He represents the public good in the software world in a way that benefits everyone (including many businesses and almost every startup). These young YC whippersnappers with dollar signs in their eyes owe him respect.
- critic 18y agoRMS is complaining about Obfuscript. Speaking of obfuscation, I hope someone would deobfuscate LGPL for me.
- patio11 18y agoI have always read LGPL as "Look for another piece of software which does this and save yourself some headaches."
- jrockway 18y agoBecause you can link with it with absolutely no restrictions on the derived app? Yeah... that sucks...
- critic 18y agoThat's what they want you to believe. Try reading the license. You have to know how many lines from the header file you are "distributing" (in the GNU lingo). If you are using C++ templates, you are probably screwed. You have to make sure you link dynamically (or else). LGPL seems to require advertising the library. And if you want do static linking, talk to a lawyer. Linus and RMS disagree on what constitutes "derived work", btw. Edit: I'd like to know what motivated people to upmod parent, when it's factually incorrect and can cost developers dearly if they take the message at face value.
- patio11 18y agoExactly. I'm unwilling to pay the uncertainty tax. (Ironically, commercial software is often much easier to justify than the LGPL equivalent is! "Fork over $200 and you're OK" -- sweet, done! Spend a few hours reading legal code and still coming no closer to understanding whether a plugin in application A accessed over REST by application B is "linked" to A, B, A and B, or neither... bah.)
- azanar 18y agoYou are talking about Section 3 of the LGPL? IANAL, but this section seems pretty logically simple to me, and I think you are misreading it. If you read the terms, you are required to do either of the following: * a) Give prominent notice with each copy of the object code that the Library is used in it and that the Library and its use are covered by this License. * b) Accompany the object code with a copy of the GNU GPL and this license document. How is needing to provide a mention of the LGPL'ed libraries and the fact that they are LGPL'ed in any way screwing you? You also have to provide a copy of the GPL and LGPL amended your own legalese. You are not required to distribute the source for the library, nor the source of your own application. I've seen several large commercial applications make mention of included libraries, some under the LGPL, and it has never bothered me, nor anyone else who purchased it. I understand that you want to be able to charge money for the software you write, but that you seem to perceive the LGPL as a threat to this ability seems excessively fear-mongery. I agree that anyone concerned about licensing terms should consult an attorney, but because you want to understand things better, not because you are fearful of software development turning socialist.
- jmtulloss 18y agoYes, RMS is an extremist, but his central point is valid. It's very difficult to develop and deploy open source web apps. However, I'm not sure that it wouldn't be easily done if there was a demand for it. Most web frameworks come with easy ways to run the environment locally, so you should be able to release a RoR app open source without many problems. It just doesn't seem to be in high demand.
- dasil003 18y agoRMS is awesome. The fact that he's out there fighting the good fight every day so I don't have to is incredible. We all owe him a lot, and we should demonstrate that by contributing back to open source as much as we can. That said, I think he's totally out of his league on the software as a service model. At the very least he needs to spend a lot more time mulling it over. As far as I see it, freeness of javascript more or less meaningless in a web application. The fact is that the barriers to making web applications free are much higher, and there are a lot more legitimate arguments as to why it shouldn't be free. Of course Stallman would argue for freedom under all circumstances, and he's right that web applications do present a risk to freedom of software in the long run, but I don't think it's as easy to argue from his idealogical standpoint when it comes to web apps. Too much baby flying out with the bathwater.
- trezor 18y agoAs far as I see it, freeness of javascript more or less meaningless in a web application. The fact is that the barriers to making web applications free are much higher, and there are a lot more legitimate arguments as to why it shouldn't be free. But you'll keep running them on those servers powered by free software running on a free operating system stating how open solutions are better, wont you? How is that for bigotry? It's like you are deliberately trying to stir up a troll-storm. But please: Do give me some insights on why making web-based applications free poses any more challenges than freakin' kernel-code.
- dasil003 18y agoSorry, I made a leap there and you misunderstood me. What good is free javascript in a web application where a significant portion of the code lives on the server? The fundamental issue of software freedom is trivial when you are running software locally. I'm running this software locally, and I want to be free to do with it as I will. However web application software has the local component (JS) and the server component. The software that is running on the server is clearly not being run by the end user and therefore the notion of freedom is not so clear. Sure, we can make it "free" by releasing the source of the server code, but setting up a server may be non-trivial. Or it may be useless without the data from the service. Maybe the user's data could be released, or maybe it's intertwined with other user's data. The point is, I care very much about freedom of software in general, but having free javascript by itself is essentially useless to me in the vast majority of cases.
- arebop 18y ago"Current free browsers do not offer a facility to run your own modified version instead of the one delivered in the page." GreaseMonkey can do that in Chromium [http://dev.chromium.org/developers/design-documents/user-scripts#TOC-Early-Injection http://dev.chromium.org/developers/design-documents/user-scr...]. Stallman mentions Greasefire later on, but it sounds like he might not clearly understand that Greasefire finds applicable GreaseMonkey scripts, while GreaseMonkey enables user scripting. He may not realize it, but I think the infrastructure is already mostly available for building the detect-and-substitute feature he wants.
- iofthestorm 18y agoAnd of course, it originated in Firefox. I also think Opera can do this as well, although I suppose that's not a libre browser.
- youngnh 18y agofeel free to correct me if I'm wrong, but I thought that GreaseMonkey scripts run on the same page, but in no way _replace_ the scripts a site serves. what, I think, Stallman envisions is being able to use your local copy of Gmail instead of the one Google's serving you without any loss of functionality.
- arebop 18y agoGreaseMonkey scripts can modify the page contents, and if only GreaseMonkey scripts could run before whatever JavaScript is included with the page could start, then it could completely replace the site's script rather than just modifying its behavior shortly after the site's script begins to run. I think so anyway, I haven't actually implemented this so I won't claim to know for sure that it can be done. Chromium has this "early injection" feature for GreaseMonkey scripts, so that's one free browser for which it would be very easy to build Stallman's replacement feature. See the link I gave earlier in this thread and also http://www.mail-archive.com/chromium-discuss@googlegroups.com/msg03760.html http://www.mail-archive.com/chromium-discuss@googlegroups.co... for some background.
- deleted 18y ago[deleted]
- axod 18y agoSorry, but these are the ramblings of a mad man. With little understanding of webapps.
- duskwuff 18y agoErm. The Google Docs JS source is (in all likelihood) "obfuscated" because it's generated code - it's the output of the GWT Java-to-Javascript compiler.
- boucher 18y agoGMail is not built with GWT (and to my knowledge, no major project at Google is).
- duskwuff 18y agoI don't know about GMail, but the Google Docs code (http://docs.google.com/doclist/client/js/1263044158-doclist_modularized_core.js http://docs.google.com/doclist/client/js/1263044158-doclist_... for the current version) looks a lot like the GWT-generated code I've seen (http://gwt.google.com/samples/Showcase/com.google.gwt.sample.showcase.Showcase.nocache.js http://gwt.google.com/samples/Showcase/com.google.gwt.sample... for instance). It might not be using the GWT toolkit, but it's probably output by the same compiler.
- ars 18y agoThat makes his point stronger, not weaker. It means that the GWT Java source code is when needs to be released, and the javascript is not enough.
- hymanroth 18y agoWhilst respecting what Richard Stallman has achieved in the past, I just couldn't read his latest post on javascript without getting a bit hot under the collar. His position is, in my mind, completely untenable. He sees everything through his 'free software' glasses, the same way a dyed-in-the-wool communist sees everything through his Breznospecs. It's not enough for him that a Google Docs javascript file be free (gratis) – he objects that the file is not easy to read and has no comments. The fact that removing unnecessary white space is a commonly-used practice in speeding-up page loading is not mentioned, even in passing. What is this guy on? I have in mind a special device for Stallman, Raymond and the other gratis software nutters. It consists of a big plastic bag that envelops their heads and into which is pumped the aroma of roasted coffee beans. It is required that they use this apparatus until such a time as their eyes light up and they utter the required phrase. Today, more than ever, we live in a world of economic reality. In the recent past it was easy to find some chump to lend you all the money required to buy that house/car/tv you really couldn't afford, or finance your startup based on a 10 page deck and the words “web 2.0”. But things have changed. And perhaps for the better. The open software movement cares more about its users than it does its developers. Hacker kudos doesn't pay the fucking rent. I want to know whether all the people writing iPhone or Facebook apps would have tried so hard if they knew their expected return would be exactly $0? Somehow I don't think so. We've got to move away from this notion that software should be free (gratis). If you use it and can afford to pay for it then why should I give it to you for free? Note: I'm not arguing against open-source, I'm arguing against working for free. If I spend a great deal of time writing a funky database application and big_multi_national dumps Oracle in favor of my code and saves itself $20million in the process, why shouldn't I get my sniff? There's nothing wrong with making an honest dime... If the same code is used by some charity or someone's personal website then I'm happy to tip my hat and say 'glad to be of service', but not if they're Coca Cola, or Hertz, or... (you name it). If there existed a fair and balanced way of rewarding open source developers then I believe the whole sector would explode with a level of commitment and energy that would dwarf the already impressive achievements seen by the community. That time has come. It's time for revolution's founders to retire gracefully, and for a more realistic (though still ethical) guard to take its place. David Semeria Milan, Italy
- omouse 18y ago
- azanar 18y agoApart from the political squabbling, the feasibility of implementing something that "detects" JavaScript released under a free-as-in-freedom license seems tricky and error prone. The suggestion in the article that you put a license delimiter and then parse the text of the license seems error prone; not because the license is particular difficult text to parse, but because text parsing in general is a rather fussy and fragile enterprise. And someone could put after the licensing tag "Just kidding, here's the real license..." which the parser wouldn't catch, but someone litigating a case of copyright infringement would. Maybe I'm not being imaginative enough, but I can't think of a way this is feasible with just the client attempting to glean licensing on its own. Having a global registry of free JavaScripts wouldn't solve the problem, either. Assuring correct URL parsing in every case is a risky thing to rely on for such restrictive behavior, and nothing stops the web site owner from renaming the free script to something else, or renaming one of his non-free scripts to the same name as the free script. Verifying file hashes wouldn't really help, since the free script is allowed to be modified. Regardless of the political ramifications, the feasibility of this seems really questionable. Are there ways of doing this I am not realizing?
- etal 18y agoWell, it could be treated similarly to version numbers in code. Once a given JS file is loaded, whatever __LICENSE__ evaluates to (e.g.), that's the program's stated license. If that global variable isn't set, then you know you can't assume anything about the code.
- tsally 18y agoThere's a disturbing lack of understanding in this community about free software, the GPL and other licences, and RMS himself. Of course Stallman is an extremist. Every leader of such a movement by definition must be an extremist, even if it makes them look foolish. The ACLU for example takes cases that make them look like a joke, but they are forced to because they must exhibit unwavering believe in their ideals. As the leader of the free software movement, RMS must act in the way that he does. And as for the commercial viability of open source software, consider 37signals. Their entire tool set (Rails) is open source, and they make millions. Keeping Rails closed source was not necessary for their success. When you pay for a 37signals app you pay for their reputation and quality. If someone else made the same application a year earlier, it wouldn't sell nearly as well. Saying that you need to keep your software closed source is overvaluing the software. That's only a small piece of what makes a successful product. Hell, 37signals probably could open source Basecamp today and they would still make millions.
- ced 18y agoEvery leader of such a movement by definition must be an extremist, even if it makes them look foolish Why? RMS's movement would benefit most from convincing us, as developers, to contribute to FOSS. I pray that being a foolish-looking extremist isn't the best way to do that.
- tsally 18y agoAgain, going with the ACLU analogy, it's not the ACLU's job to convince you that the Bill of Rights is a good thing. It's their job to rigorously defend it without giving an inch. The same goes for RMS, it's not his job to convince developers to join up with FOSS. Leave the convincing to people who are better at it. Google's summer of code is a great example. Based on the growing size and productivity of the FOSS community, I really don't think RMS needs to change what he is doing. Programmers have already produced billions of dollars of free software and will continue to do so. It's an amazing display of our (the hacker) culture.
- ynniv 18y agoWhile I appreciate those fighting the cultural battles for individual freedom (GOOG's history pretty much confirms for me that being a big requires exploiting the consumer), Stallman's message is unfortunately crippled to me as a programmer. Free software is better in almost every way. It is easier to install, possible to fix, increases the wealth of every owner of a compatible computer, lasts longer (defined by running on more generations of computer), and is often more popular and better known than proprietary software. Yes, software should be free. Where this becomes useless is in his demonizing proprietary software, because even though proprietary software takes many of your rights away, it has some great benefits. Since it doesn't have to be free as in beer, a person can quit their day job and focus solely on writing that program, leading to better designed and better implemented software. It also creates a stable brand that people can evaluate, and clear responsibility for issues. Without a means of monitizing software, we probably wouldn't have the fit and polish systems that we do. I love free software, but there are two RMSisms that bother me: 1) The GPL is actually less "free" than a BSD style license because of his campaign to promote free software. 2) His view is entirely supply side (except for the roundabout means of creating personal wealth by forcing others to use the GPL on their software) to the point where it seems to me like free software has to fall out of trees or large corporations (which I would rather due without). RMS: I love the idea, but I want to see more!
- alecco 18y agoAnybody who dares call herself or himself a hacker should respect RMS. The name calling on this page is disgusting. You don't know the guy, you don't have any thing on him. He doesn't force anybody to use his licenses. He is just warning users of a proprietary software trap, that's all. If you happen to serve this kind of website it's stupid to just get into the name calling and instead perhaps state clearly your JavaScript isn't free software. Add a license, you need it anyway to cover yourself.
- axod 18y agoIt's incoherent rambling. Extremism. There is no trap. No end users care. What average user of a webapp even understands what a software license is? Why would they care either way if they can see comments in the javascript or not?? Obviously you need to make clear if your javascript is open source or not, and both should be respected decisions. I think the majority just care if something solves their problem, rather than if its open source or not. Linux doesn't beat windows because it's open source, it beats it because it works far better. One of the reasons it works better just happens to be because it's open source, which enables far more people to contribute than otherwise etc etc. Are people seriously going to stop using webapps that don't provide their source code unobfuscated? Of course not.
- omouse 18y agoAh, the open source advocate! The type who doesn't really care about freedom, who only cares about what is pragmatic in the short-term. RMS isn't being extremist in this case at all. Your only two options are to fully enable or disable JavaScript. That's not much of a choice because if you enable JavaScript you let in some company's proprietary code to be run on your machine. Imagine you're coding a Free Software Javascript library and the proprietary competitor's product is run on your machine. They can prove that you've run their code, and maybe you looked at it and now you're setup for copyright infringement. If you fully disable Javascript with NoScript, then you won't be able to run "safe" Javascript. Two choices that are both extreme. The real extremism is in the web browser that doesn't allow you to create a blacklist/whitelist or to use replacement JavaScript.
- critic 18y agoSomebody, please save RMS, write an Emacs mode that inserts spaces into JavaScript and converts single char names into made up longer ones! For extra bonus, insert comments that talk about how if you are not using GNU, you are a slave! A slave, I tell ya!
- omouse 18y agoI think Steve Yegge's JavaScript2 mode could handle that... http://code.google.com/p/js2-mode/ http://code.google.com/p/js2-mode/
- shader 18y agoI like freedom. Freedom is good. The only question in this instance is - freedom for whom? Freedom for the developer to write code without comments, so that you can't hack it? Or freedom for you to read his code? I think that javascript currently embodies both of these freedoms in the best possible way. The author does not force you to execute his scripts; by your http request you asked for them. At the same time he is not being forced by you to make his source code "intelligible." The implementation of JavaScript is most likely open source, and the script's code is obviously available. Am I missing something? Is he saying that it's not "Open Source" if it doesn't have enough comments? Trying to prevent people from releasing source code without comments because it's not easily hackable is a bit much. Almost everything about RMS is "a bit much" though, and that's why so many hackers like him ;)
- known 18y agoProgrammers predominantly think in terms of RIGHT or WRONG and MBAs in terms of PRIORITIES.
- vlisivka 18y agoI have same thoughts as RMS. As leader of our national Ukrainian Linux Users Group, I involved in fixing of various problems with support for Ukrainain language in foreign programs. Here is my experience: MS: some problems still around for more than 20 years (from MS DOS era till today); SUN: almost 10 years to fix trivial problem; Apple: good support; IBM: good support of official standards, not so good support for net standards; Google: some problems are still around for years, nobody response to my letters, no way to fix. Linux/*BSD/GNU: very easy to fix (or create) problem in any supported program, much harder when program in no longer in development (need to maintain our own version of program in our own distribution). All these problems are trivial (charset support, proper charset translation, national keyboard support, message translations, etc.), so they are very easy to fix. Currently, then only OS'es that have no problems with Ukrainian language is GNU/Linux. Even Non-GNU/Linux systems are easy to fix in most cases. I agree with Stallman: web services are closed, so they introduce high risk for our freedom.