False claims debunked! Runrev requires more lines of source code than Flex!

Runrev recently proposed the following challenge:


"If you have code samples in other languages that you feel would be good illustrations of how revTalk can be shorter and/or more readable. [...] We're especially interested in : ActionScript (Flash) [...]

Runrev challenge is to find the shortest possible way to wrrite the equivalent of :


get the last item of line 2 of URL "http://ichart.finance.yahoo.com/table.csv?s=RBS.L";

Ok, let's get an idea of what it will take in Flex/AS3/AIR. The code below will build a full application, with one button and one text area. As soon as the webservice returns the data, the text area will be populated with ''33.55" which is the last item of line 2.

<?xml version="1.0" encoding="utf-8"?>
<mx:WindowedApplication xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical">
   <mx:HTTPService id="getUrl"
      url="http://ichart.finance.yahoo.com/table.csv?s=RBS.L" 
      result="{var arr:Array = event.result.toString().split('\n')[1].toString().split(','); textArea.text = arr[arr.length-1]}" 
      resultFormat="text" method="GET" 
     /> 
   <mx:Button label="Submit" click="getUrl.send()"/>
   <mx:TextArea id="textArea" width="100%" height="100%"  />
</mx:WindowedApplication>

The relevant part:

var arr:Array = event.result.toString().split('\n')[1].toString().split(','); textArea.text = arr[arr.length-1]

Tada! One line of code! Maximum two if you count the semi-column.

Sure could be clearer... but clearer than what?

Now, the part that runrev doesn't tell about. What is above is a mxml file. Saved as runrevChallenge.mxml. If I exchange it over email or anything, this will appear exactly like I pasted it. I can open in any text editor to check it out and it will have 10 lines of code.

What Runrev claims is that all that is required is this source code to produce the exact equivalent of my Flex code:

on mouseUp
  get the last item of line 2 of URL "http://ichart.finance.yahoo.com/table.csv?s=RBS.L"
  put it into field 1
end mouseUp

But that's somewhat deceptive. What runrev does is propose you an interface where you MUST use a property editor for about everything, overall, slowing you down considerably. You don't realize it that much because you are active at the time you use the editor... but it forces you to take a few extra steps. These property settings get saved in the source code along with any code that you edited in the script editor. Equally, ui elements don't get specified in your code. They get specified in a design view which gets saved into the source code.

If you open the file runrevChallenge.rev, the source code looks like this:

When you look at the source code, you have 13 lines for runrev and 10 for Flex. Runrev requires MORE lines of source code than Flex.

Obviously, the format above makes it quite hard for sharing or source control.

The issue with runrev is not the language. The language has potential, even in our modern era.

The issue is the company. They tend to use deception a bit too much. This is what they say takes 42 lines of code in C#.

Once you remove the all the extra lines that have been added for the SOLE purpose of artificially increasing the number of lines, you get at 20 lines. I have little familiarity with C#. I am sure that the code could be condensed even further. I am sure that some silverlight code can be written that is pretty close from the Flex code that I have proposed.

using System;
using System.Collections.Generic;
using System.Text;
using System.Net;
using System.IO;

namespace LastClosingStockQuote {
   class Program {
      static void Main(string[] args) {
         string t_quotes = GetURL(@"http://ichart.finance.yahoo.com/table.csv?s=RBS.L");
         string[] t_quotes_by_line = t_quotes.Split(new char[]) {'\n'});
         string[] t_quotes_items = t_squotes_by_line[1].Split(new char[] {','});
         Console.WriteLine(t_quotes_items[6]);
      }
      private static string GetUrl(string p_address){
         Webclient t_client = new WebClient();
         return t_client.DownloadString(p_address);
      }
   }
}

Does it matter, 42 lines vs 20? Yes, It does! What matters is the deception.

The extra lines is the key information to remember about runrev. They are trying to scare people who don't know yet much about programming in thinking mainstream languages are too complicated for them. They seek persons who have little background in programming and make false claims taking advantage of the fact that the person will almost certainly not become aware of the deception.

Again, does it matter? They give you a product. The product proves somehow useful. Not top conduct but not real damage, is it?

Well, the problem is that once a company sees no problem to crossing a line that shouldn't have been crossed, it is likely to cross it on other aspects of their business as well.

I had been a faithful runrev customer for about year. I had actively supported their users on their revolution-education list. I made available plenty of supporting material, sample stack, open source. Created a gallery to give them visibility. I had paid my license. Initially a studio one, for developing on the Mac. At some point, I did look into developing cross platform. I contacted their support for advice. They told me that the best thing to do was for me to purchase an enterprise license because it would allow me to develop on Linux. They told me it was worth the money compared to an extended studio license (mac/pc). They also told me that paying extra money would be a good way to show my support to the company (yeah, right!). I did put the extra money and purchase the enterprise license. This gave me access to a private user list, accessible only to the select few who paid the enterprise license. On that list, I learned that support for the Linux version had been scrapped. A decision had been made to not support it anymore at least two weeks before I got that recommendation from the support person! They had been no information on them not supporting the Linux version anywhere on the public mailing list or their website. They had been no way for me to know that they were not gonna support Linux anymore. The support person had deceived me (that person did know). They never proposed any reimbursement as they promised that the Linux version will be available "SOON". It wasn't available for another year or two.

I dunno precisely who long it toke for the Linux version to be released. A bit more than a year after having purchased a license for a product that didn't really exist, I quit. They had made further promises. And I got deceived again. I then made a decision that, with time, proved an excellent one. I decided to accept my loss and to never ever open the runrev IDE anymore. Even if I knew it would be easier to use runrev to do something than learn a new language and a new tool, for a full year, I never ever used runrev anymore. The goal was to drop out of a very unhealthy habit. After 3-6 months, I was productive enough in Flex. I have now used Flex on a day to day basis for a bit more than a year. I feel more proficient and more productive in Flex/AS3 than I ever was in xTalk. Even if the entreprise version of runrev was US$20, I would not see it as worth the trouble, uncertainty and stress that you get by being a runrev customer.

Having programmed in Flex for less time than in xtalk, the language of runrev, I tend to find it faster to do things in Flex. The key, really, the quality of the documentation, both in terms of adobe online language references, books, presentations, tutorial website. Then the availability of a #huge# number of third party resources, many of them open source. And then the ease of code reuse across projects.

Runrev claims that xTalk is faster to learn because more english like. The degree to which the syntax is "English like" has little to do with how easy it is to code in any language. There are some conventions about how you should write your code and what it takes to learn a language is to memorize and internalize these conventions so that it becomes somewhat automatic.

With runrev, the english "likeness" comes with a lack of structure. All instructions are on the same level and can be used in any context. You end up spending quite a bit of time in the online reference to try and identify the command that you should be using. With Flex, the best approach is to use english words in a Google search box and most of the time, you will get 3-4 blog posts and a few forum posts providing quality example code.

The Flex SDK is free. A license for the Flex builder, that is a development environment that offers more advanced functionalities than the runrev one is US$249. With that, you develop cross-platform and for both the web and the desktop (AIR). Flex Builder is FREE for educators. At the time of this writing, currently free to unemployed developers. The closest equivalent is runrev entreprise, costing US$499.00 (the double).

No brainer, really.

Really, don't buy from runrev, a company that uses deception as primary marketing strategy!

And for persons who really are after doing very simple media applications like a little presentation or an animated christmas card, plenty of free products exist out there. Scratch is an excellent proposition for young kids. Processing is a great tool for more mature students to learn to program.

Powered by Drupal, an open source content management system