Can Proprietary Language Teams Succeed By Going Open Source?
JerkyBoy writes "RunRev maintains the proprietary LiveCode programming environment. Those familiar with HyperCard on the Mac would feel quite at home using the environment to produce simple applications, and possibly more, although the programming language it incorporates has a few significant shortcomings (e.g., true object orientation). But it is a very versatile environment, currently claiming support for Windows, Mac, Linux, iOS, Android, and server-side scripting. For us NOOBs who could never find the time to learn C++ and something like the wxWidgets or QT toolkits, it seems like a pretty good deal. Recently RunRev has done something interesting, however, and that is to create a Kickstarter campaign to move the environment to open source (~500K lines of code, ~700 files). The way that they describe it, it sounds like there will be a commercial version and an open-source version of the environment (hopefully not cripple-ware), and they are asking for money to do this. But I want to know: what are their chances of success with this model? How in the world can they make enough money to maintain their programmers and overhead while giving the environment away? In other words, if a company like RunRev announces that they are moving to an open-source model, should you become more interested or less interested in their product?"
Of course it can work. Even Microsoft does something similar with its express editions.
"I've got more toys than Teruhisa Kitahara."
I haven't seen any single case where moving to open source was bad for the mover.
#
#\ @ ? Colonize Mars
#
That's the first time I've encountered someone citing true object orientation as a significant shortcoming.
The Tao of math: The numbers you can count are not the real numbers.
All the money in programming languages is in books that must be updated every 2 years and training.
Just ask the Ruby on Rails guys.
They change the solution completely every 2 years, so that any old documentation is a liability. i've bought and thrown out 3 sets of Rails books over the years because the implementation details changed so much with every major release.
That is where all the money is in computer languages.
No.
Perhaps they are going OSS because they realized their product is simply not going to be successful closed source. The fact of the matter there are many many OSS options which already have wide adoption, and real developers will likely prefer these solutions over any closed source one. Tehre is also the fact that a non OSS platform will simply be dropped at some point and updates will stop - at which point you'll be screwed.
Poster pointed out one of these examples: hypercard, but I'd just like to point out that we had started developing an app on AIR only to have them drop cross platform (Linux specifically) support 2 months into our development. It was a job for a client, and we had to spend a few extra weeks porting it to Java. Since that time we have refused any proprietary platforms, which we didn't like in the first place but we now view as a direct risk. We don't even look at non OSS for our development, environments and libraries included.
Except Novell. Er.. and Sun. And SGI... Google is struggling to keep control over Android and put the cork back in the bottle. I would say that open source is fine if you don't want to commercialize the product in a heavy way.
Novell had its business model removed as Windows absorbed Networking [much like they are doing with stream now], and after getting involved with Linux took a bribe from Microsoft which like all dealing with Microsoft ended badly. Sun and SGI just fell to Better Value Microsoft PC's, and bad management [overspending].
Oddly Googles Android is a success story; set to overtake Windows this year. In reality only Linux is truly open source with its slightly amended GPL2 License, the rest is Apache which is why Google do not [and in some cases haven't] released the code for versions of its software. The reality is most of its value comes from its [cross platform] closed applications and web services...which aren't open source.
No.
Yes
I dont consider *new* languages for which there is no open source implementation of the core language available. This is not because i dont like to pay but because in the case of small languages/domain specific companies you never know ehen they go belly up or are bought and what happens then.
From kickstarter campaign:
We have selected the GPL because it encourages sharing by ensuring that any applications created with it are also open.
This isn't true for any current compiler available under GPL, why would it be true for thier compiler?
Slashdot social media options: AIM, ICQ, Yahoo, Jabber and Mobile Text. Why no MySpace?
Paying to get something nice open sourced is a good thing.
Paying to have a stripped down IDE and language open sourced... not so much.
If you want to learn programming, use JavaScript, Python, or Ruby; they're free, easy-to-use, and they scale up to real problems.
How do you define success? Your open source language project doesn't have to be good to be popular (example: PHP), but it must have a certain audience that finds it appealing. Open sourcing the project is not a magic bullet; if nobody likes your product, you're out of luck. However, if you have carefully studied your audience and believe that such a step will remove the main roadblock for adoption for a large number of potential users, this is definitely worth doing.
That's why Kickstarter exists: to fund business plans.
Python breaking compatibility with version 3 was a brilliant idea. It meant they could fix the (few) poor design decisions they made early on. This means instead of getting yet another language or having to deal with annoying stuff, instead it's just a small move to 3.x, which is excellent.
-- Lattyware (www.lattyware.co.uk)
Because that's what Kickstarter is for?
You're mixing up compilers and compiler runtime libraries. What applies to one doesn't apply to the other.
Applications compiled with a particular compiler do not inherently fall under the copyright license which covers that compiler's implementation, because no copying of the compiler code is involved. However, it is quite common for compilers to provide libraries with which the code generated for the application is linked, and static linking to such libraries would in general propagate the license carried by the libraries. This is why such libraries normally offer a linking exception in order not to taint the generated code.
If linking to such libraries is only dynamic then a large majority of legal opinion suggests that the generated code does not become a derived work of the libraries because the two remain separate, and mere usage is not copying under the terms of the Copyright Act. Nevertheless, to avoid lawyers getting involved and wasting everyone's time in court, it is best to provide a linking exemption even if the compiler libraries are to be linked dynamically, just in case.
No. If they want to extend buy-in by releasing a limited open source version that is their prerogative but 1) it is not worth paying money for since it is a marketing expense of their company and 2) I doubt it will work. Why bother going to a closed model? Two salient experiences: /. thread.
Salesforce. Has a very strong product with huge interest. A managed, growing language and set of libraries. Drawbacks are it must run on their server, and many undocumented things. If you have a reason to use Salesforce (and many companies do) it is great for what it does, but that is the antithesis of open source development which lets you run anywhere.
Firebird. This awesome DB was opensourced and forked out from Borland IIRC by the authors and the open source version took off. The open source version is where you expect to see forums, patches, new additions at a speed impossible for Borland or against their corporate rules. This would never have happened if it was a "lite" version.
MariaDB. See recent
Basically if you want to release a lite version do it on your own dime. If it is of any use on its own, it might get some attention.
It might grow beyond the commercial version. But don't expect significant buy-in, if the goodies are not available for free.
On the other hand if there is anything to the natural language idea beyond a hypercard style engine, it would be useful. Something more sophisticated than zork. If you provide a strong engine and documented api I could imagine a large community springing up to build plugins some free, some commercial, like joomla or wordpress. Doing a lite version is shooting yourself in the foot though.
Make it completely open. You might get kickstarter funds to do so. Then run a market for free and commercial plugins which can include substitute engines. You might even get some sharp scientists to use it as a testbed for their latest ideas. I haven't tried it so if it isn't more than hypercard though it will be pretty limited. If you have any intention of promoting development of real natural language and multiligual support, I could see it going places.
For example, instead of a line of code being translated into 10 times more characters, use 10 words to replace 100 lines of code. I have had some ideas along those lines myself. Somehow though I doubt this is the team that will provide the NLP coding engine to the open source world.
The question is: can they survive without going (partly) Open Source? The target audience for these kind of pseudo-programming environments is pretty small, and there's no major platform without an free SDK. The learning curve for cross-platform programming using Java or QT is not that big, either. So I think it's a good move to start giving some of it away to attract more paying customers.
This is not a lite version. The entire platform is being opened up, it is the same source base in the open and closed version. Students, teachers, in-house developers and those creating open source software can all use the entire feature set for free. The only thing you can't do is create closed source apps with the open version.
I haven't seen that shift of programmers at all, and I completely disagree. They fixed a lot of core issues such as print being a statement rather than a function, loads of the core types returning lists rather than generators, division being float by default, annotations, extended iterable unpacking, nonlocal, and much more. Unicode was a big one and it's excellent - modern languages need to work with Unicode, it's crazy that the kind of built in support that 3.x has isn't standard across the board.
Please, tell me what 'really poor' design decisions were not fixed with 3.x?
-- Lattyware (www.lattyware.co.uk)
> That's why Kickstarter exists: to fund companies without business plans.
FTFY. :-)
There are 0x40000000 types of people: those who understand 32-bit IEEE 754 floating point, and those who don't.
Sort of Worked for DigitalMars D Language.... but the community popularity fadded out some how, maybe because of the non compatible changes of the second generation of the language definition
That is not considered a bad design choice by the PSF (or me, for that matter). It's a great idea that increases readability by decreasing excess clutter in your code. I simply don't understand how people can not like it.
-- Lattyware (www.lattyware.co.uk)
No. The companies on kickstarter have business plans... they need $$ to execute them. If there's no plan, why would anyone give them money? "Excuse me, I have no idea what I'm doing, please give me money..."
http://i.imgur.com/Xa99lgw.jpg
.
Prisencolinensinainciusol. Ol Rait!
You REALLY don't get this?!
I'm sorry but when an entire program can be broken by simply using a different editor with slightly different tab settings, then that language AND its designer deserve all the derision and scorn that could possibly be heaped upon it.
Hey KID! Yeah you, get the fuck off my lawn!
No.
Easy, isn't it?
"Little does he know, but there is no 'I' in 'Idiot'!"
It amazes how quickly things move off topic. The "it's not as good as x" or "only real men program in x" folks really feel a need to hop in. I fall into the category of programmer that makes his extra money programming, the day job pays the rent. I also use the tool, or language, that gets me where I want to be with the least amount of hassle. The world really is big enough for a number of languages.
LiveCode has its place. It is fast and convenient to develop in. The primary issue is its distance to native APIs and raw speed for numerically intensive stuff. If the language doesn't support it, it is a bother to get there. Fortunately, it is rarely a problem.
On to the real question, can this be a successful? Yes, as others have pointed out, it has worked before in similar cases. In the dual license situation, you get the tool for free if you want to give your work away. If you don't, you pay to earn your income. Should it be successful? Yes - it is a very approachable language which is a benefit for those learning to program (the syntax stays out of the way) and, for the same reason, a fast, efficient, and comfortable language to develop apps in if you don't need raw speed.
You REALLY don't get this?!
I'm sorry but when an editor can break an application by simply not detecting the current tab settings, then that editor AND its designer deserve all the derision and scorn that could possibly be heaped upon it.
FTFY
Because you haven't thought it through because you are focused on the red herring that enforced whitespace is.
Everyone formats their code, therefore enforcing it buys nothing, but a few less {}.
There are heavy costs such as Python's gimped lambda. The reason it is pretty much worthless is because of the enforced whitespace, the lesser reason is because Python doesn't follow the everything is an expression design like proper languages.
It also makes debugging harder, because sometimes the best way to debug something is to throw in a few quick throw away print lines. Can't easily do that with enforced whitespace.
The last is simply that if you move files from one system to another the formatting can get borked, which absolutely sucks.
I have seen 1000 line Python files lose their indentation making it worthless.
So, for the small value of enforcing what everyone does anyway, the language is less powerful, and less capable of recovering itself if something in the file gets corrupted.
I completely agree that verbosity should be avoided, and so should the use of special characters.
Syntax that needs detailed comments is also not very good.
I much prefer to write
if x<>0 and y/x<z then exit repeat
than
if ( (x!=0) && (y/x<z) ) { break; };
The first line looks cleaner to me: fewer special characters.
Note also that the division of y by x will not be tried because LiveCode's "and" operator is specified to skip if its first operand is already false. Many languages fail to tell you what must happen in these cases and then implementations differ.
Finally, how many seasoned programmers still fall into the following trap when something changes and the code now becomes:
if x=0 or x/y<z then exit repeat
but in C-like syntax they then write:
if ( (x=0) && (x/y<z) ) { break; };
forgetting the extra = sign.
Clean syntax does help reduce the debugging time.
I don't like programing in modern languages because their not a lot of fun. Python Ruby, etc... Live code is both approachable, and fun. Now fun is a vary subjective thing, but I think Live Code would come out hight on the fun factor
What? What editor do you know that just messes with the amount of whitespace in files? It's clearly not designed for programming with. The only common change that is done is to change the width of a tab character, which doesn't affect the code at all, just how it's displayed. It'll run fine either way. I don't understand how you would break a Python program in this way, and if you did, it would be the editor doing something insane.
-- Lattyware (www.lattyware.co.uk)
Less powerful? Python functions are objects like any other, instead of focusing on a particular way of making a function (lambda), just make one with `def` and use it - all the power you want. lambda is just a little thing to make it easier to put really simple functions in quickly.
I literally have no idea how you think indentation messes with printing to debug. I'm not sure what you think the issue is here.
As to moving files and getting indentation messed up, what? What systems do you use that mess with whitespace in files so significantly? That's clearly a fault with whatever you are using. Why should any tool for moving a file mess with the number of tabs/spaces at the start of individual lines in the file?
-- Lattyware (www.lattyware.co.uk)
wow, you've just argued away the entire open source movement
Are you saying it's "lite" because it's open source? I don't get your logic. Where does it say anywhere that the GPL licensed version will be crippled?
No, it's their complete product: engine, IDE and their addons they are open sourcing. If your making open source apps you won't need to pay anything. If you are making commercial apps then it's $500 for a year. Not a crap load if you need it and you can create your whole app using the GPL version then get commercial when you want to release. There's lots of uses for the open source version alone: education, prototyping, in-house productivity/automation tools etc.
1. Their current version is 5.5.3 and that is what will be released I believe (or 6???). But the GPL version will be the same source as the commercial product. Just a different license and a library for encrypting scripts which can't be GPL for security and licensing reasons.
2. Yes: Linux, Win, OS X, iOS, android and CGI engine that gives you php like scripting (see http://revigniter.com./ Deploying to different platforms is just a setting and the standalone builder will create executables for each platform you choose. There's a few people making noise about arm linux for Raspberry Pi.
3. There's DB drivers for SQLite, Valentina, MySQL, Oracle, PostgreSQL and I know there's someone keen to write a driver for Firebird as soon as he gets the driver source so he can implement it.
if you want to be successful as a language, you need to go open source.
I have been in charge of the development of an OSS (GPL) language - albeit very different from the one mentioned in the OP - called Obyx (cf. http://www.obyx.org/ ). Our motivation for OSS was so that clients would feel less bound to a proprietary model. We use (and love to use) Obyx for the development and deployment of dynamic web services. The actual effect of changing the license model (much of our remaining software is proprietary and closed) has been nominal - it has meant that we have shifted more of our income from build/production to support/maintenance services. As a direct income provider, Obyx has given us none. We haven't seen a big uptake of the language (we haven't promoted it), so the number of coders is in the tens.
However, when evaluating our decision, I talked to various individuals and organisations who found that OSS licenses can have a dramatic uptake to it's useage. This is most often the case when the software is chosen to be rolled out as a component of a Linux, when users (and interest) may jump to millions overnight. However, such events are rather like winning the lottery.
In retrospect, outside of CS theory, there really isn't a strong demand for new languages. Secondly, what is your motivation? Direct income, or uptake? These two are not always compatible. As I have implied, selling a language is not going to work in the long term. Languages themselves, to survive, must be free (as in beer) to use to the programmers. Language support services (and the services that you sell that use the language you develop) however, are all legitimate income sources.
This comment was written with the intention to opt out of advertising.
No. The companies on kickstarter have business plans... they need $$ to execute them. If there's no plan, why would anyone give them money? "Excuse me, I have no idea what I'm doing, please give me money..."
Anyone who uses kickstarter doesn't have a sufficiently compelling business plan to persuade real investors. Asking for money to help develop your brilliant hobby idea is not a business plan.
To have a right to do a thing is not at all the same as to be right in doing it
I'll believe that when I see it - it might be happening in small numbers, but I don't see the appeal of Go over Python.
-- Lattyware (www.lattyware.co.uk)
Yes, and all that power is available from a normal function in Python. They can be defined and used in all the context lambdas can.
-- Lattyware (www.lattyware.co.uk)
It has sold sufficiently well for many people to derive their entire income from the product for many years. The company is growing and making a profit but clearly it needs a no-barrier introductory level. They could have done that by just releasing a free version with a license that didn't allow distribution but where's the fun in that. RunRev's turnover may not increase at all as a result of this move but the use of the software definitely will. As an example, at present I'm reaching a LiveCode course to a group of disadvantaged kids at my local community centre. I struggled with choosing LiveCode for the course because of the cost of maintaining licenses. There are many other environments I could teach for free but none where they would be able to achieve what I wanted them to achieve in the time I had to give them. In the end I decided to run with it (the project has purchased licenses for each of them) but the whole decision making process would have been a no brainer if it were already open source.
I think the motivation is primarily uptake but there's going to be some interesting side effects. For example there are a number of people very keen to see this on the Raspberry Pi which will require an arm Linux engine as currently we only have x86. As the core goal of the Raspberry Pi is programming education I think LiveCode will fit nicely between Scratch and Python. The language is very much like the scratch language without having to drag blocks around.
I am starting to wonder if pitching the kickstarter as being for open source was a mistake. People are wondering why that costs anything. It would have possibly been better to just say... we're going open source but we want funding to make some massive changes to the platform. Here's an example of one of the core goals of the project http://blog.runrev.com/blog/bid/265511/Open-Language which I think is huge. Besides being able to extend the language with DSLs for your data model or library which is big on it's own there's two other VERY interesting possibilities:
- create functionally equivalent syntax in another natural language (e.g. French like syntax rather than english) and the engine could display whichever syntax the reader preferred.
- add other existing scripting languages (e.g. javascript or python) therefore giving them a cross platform UI framework
Please give me an example of something that you can do in Language X using lambdas that you can't do in Python with a normal function.
-- Lattyware (www.lattyware.co.uk)
You defining lambdas as something else doesn't make them more powerful, it's just something you are saying. I will ask again, and if it's so obvious then you shouldn't have a problem answering, in what situation do I need a lambda (or even want one, just to make something simpler or whatever) instead of a function?
-- Lattyware (www.lattyware.co.uk)
get the last word of the first line
put it on the last line
Note the use of the it variable reference to what was last got by a get command. Cool, eh, and almost twenty years ago...