About | Project Members | Research Assistants | Contact | Posting FAQ | Credits

A Comparison of Development Platforms for Social Network Data Visualizations

Research Report by Salman Bakht
(created 10/22/09)

A Comparison of Development Platforms for Social Network Data Visualizations

This report explores several software development platforms that may be used in developing web-based data visualizations. This report particularly focuses on comparing the suitability of these platforms for developing dynamic social network and document visualizations for ProSE (Professional Social Environment), the social network environment developed by the Bluesky Group of the Transliteracies Project. Adobe Flash (www.adobe.com/products/flash), Adobe Flex (www.adobe.com/products/flex), OpenLaszlo (www.openlaszlo.org), and Processing (www.processing.org) are examined herein. These platforms are first described in general terms in the Overview section, and then they are compared in terms of several factors, such as licensing and cost, accessibility, and ability to interface with databases.

Overview


Flash


Flash was originally released in 1996 (first as FutureSplash Animator and shortly after as Macromedia Flash) as a tool for creating vector-based animations. Now with additional functionality, Flash is currently used to add streaming audio/video and interactivity as well as animations to web pages. Adobe Systems acquired Macromedia in 2005 and currently produces the Flash platform and associated products. Adobe Flash Player, used for viewing Flash files (“SWF files”) in a web browser, is installed on approximately 99% of Internet-enabled desktops in “mature markets” (US, Canada, UK, France, Germany, Japan) and 98% of those in “emerging markets” (China, South Korean, Russia, India, Taiwan) according to Adobe Systems.[1]

Bahkt Image 6


Figure 1: Adobe Flash CS4 Professional

A text-based programming language, ActionScript, was incorporated into Flash in 1999. This language offered greater interactive control of animation, text, sound, video, etc. The current version of ActionScript, ActionScript 3, was released in 2006. Although ActionScript is a text-based programming language, the Flash development platform (Flash CS4 Professional being the most current version) remains a graphically oriented environment draws upon the metaphors of animation, video, and image. ActionScript code and visual objects (buttons, movie clips, etc.) are placed on “keyframes” in the Flash project’s “timeline,” although dedicated ActionScript files can also be used.

Flex


Bahkt Image 7


Figure 2: Adobe Flex Builder 3

Flex was released as an alternative to Flash. While the Flash environment is geared towards multimedia designers, Flex offers software tools more suited for software developers. Flex is a “rich internet application” (RIA) framework that uses ActionScript in addition to MXML, an XML-based user interface markup language. Adobe Flex Builder is the integrated development environment (IDE) based on the Eclipse IDE and designed for use with the Flex framework, although Flex can also be developed with another IDE or standard text editor with the stand-alone Flex compiler. Additionally, Flex Builder can be used to develop purely ActionScript-based projects. The most recent release of Flex Builder is Adobe Flex Builder 3. The next version will be renamed Adobe Flash Builder, further emphasizing the close relationship between Flex and Flash.

OpenLaszlo


OpenLaszlo is an open source RIA framework originally developed by Laszlo Systems as Laszlo Presentation Server in 2002. OpenLaszlo uses LZX programming language, which is an XML language with embedded JavaScript, similar to the MXML language of Flex (which can have embedded ActionScript). OpenLaszlo applications can be compiled into SWF (Flash) format or DHTML to be loaded statically onto a webpage. This is called SOLO (Standalone OpenLaszlo Output) deployment. Alternatively, OpenLaszlo applications can be deployed with the OpenLaszlo Server using J2EE and Java servlet containers.

Processing


Processing is a programming language, integrated development environment, and web community created by Casey Reas and Benjamin Fry. In the book Visualizing Data, Benjamin Fry describes Processing:

Originally built as a domain-specific extension to Java targeted at artists and designers, Processing has evolved into a full-blown design and prototyping tool used for large-scale installation work, motion graphics, and complex data visualization. Processing is a simple programming environment that was created to make it easier to develop visually oriented applications with an emphasis on animation and provide users with instant feedback through interaction.[2]

Processing was originally developed as an educational tool. The Processing website states that Processing is used in middle school math classes, undergraduate programming courses, and graduate fine arts institutions in addition to “tens of thousands of companies, artists, designers, architects, and researchers.”[3]

The Processing development environment is called a “software sketchbook” and is designed to be lightweight and easy to use. Likewise, a program written in Processing is called a “sketch,” and the programming language is intended to be script-like and provide quick results for both novice and experienced programmers. Finally, as Processing is built on Java, users can export sketches to be viewed on the web. Many examples of software developed in Processing can be viewed on the “Exhibition” section of the Processing website (http://www.processing.org/exhibition/).

Bahkt Image 8

Figure 3: Processing Development Environment[4]

Other Platforms


Several additional software development platforms exist such as Microsoft Silverlight and JavaFX. These platforms, also classified as RIA frameworks, have many similarities to the options above, particularly Flex and OpenLaszlo. The primary difference between these platforms and Flex is that each platform is particularly suited for a population of developers who already use a certain set of development tools or programming languages. For example, Microsoft Silverlight is designed for developers who already use Microsoft’s .NET platform, while JavaFX is aimed at experienced Java developers. As this is not a factor with the current ProSE development team, these platforms are not discussed here. In cases where the developers are have experience with the appropriate set of development tools or where the visualization software being developed must interface with existing software written for one of these platforms, the relevant platform should be considered.

Comparison of Platforms


Accessibility for Developers


Both OpenLaszlo and Processing are fully available at no cost and open source. OpenLaszlo is released under the common Public License (Version 1.0).[5] The Processing development environment is released under the GNU General Public License (GPL) while the export libraries are released under the GNU LGPL (Lesser General Public License).[6] The Adobe Flex SDK is also available at no cost and open source, although the Flex Builder and Flash development. Flex Builder is available for $249 or at no cost for a student license. Flash Professsional CS4 costs $699 or for $249 students and is also available in various Adobe software bundles.

Although it is difficult to compare the overall difficulty of development in these platforms, certain platforms are designed to be easy to use or easy to learn for those with a particular background. Flash, which uses animation and video editing metaphors, is designed to be easily learned for those who already have a background in this field. Flex, OpenLaszlo, and Processing, on the other hand, are text-based programming languages, which are easier to learn for software developers who lack a background in those fields. Also, Processing is designed as an educational language for rapid prototyping with a clear focus on providing quick visual results, so it may be easiest for learning to create visualizations.

Accessibility for Users


As stated earlier, some version of Flash Player, the web browser plugin that is required to using web software compiled with Flash, Flex, or OpenLaszlo (if the developer compiles for Flash), is installed on a majority of internet-enabled personal computers. Processing compiles to Java, so can be used with browsers that have the Java plug-in installed. Additionally, Processing.js (http://processingjs.org/), a port of Processing for JavaScript, allows Processing software to be displayed on without the need for an external plug-in. Therefore, Processing.js runs on the current versions of Safari, Firefox, Opera, Chrome, and Internet Explorer (using ExplorerCanvas (http://excanvas.sourceforge.net/)).

Although Flash Player is freeware, it is not open source. This may considered a negative for the Flash, Flex, and OpenLaszlo, which all compile for playback with Flash Player. However, OpenLaszlo’s ability to compile for DHTML, an open standard built in to most browsers, negates this issue in that case. The Java platform, used with Processing, is open source.

Database Interoperability and Visualization Development


Database access, data processing, and visualization development can be performed with all the platforms described herein. However, this process is aided in each cases by different capability found internally in the platform or as externally developed libraries. The Flex SDK contains a set of classes for data visualization. For loading data, ActionScript has data types and syntax for working with XML data. OLAP (online analytical processing) schema creation and querying are supported by the mx.olap package. Data can be visualized with the OLAPDataGrid and common two-dimensional charts such as bar, column, and pie charts.


Bahkt Image 9


Figure 4: Flare Visualization Examples

Additionally, Flare (http://flare.prefuse.org/) is a well-documented external open-source library for ActionScript data visualization designed for use with Adobe Flex Builder or the Flex SDK. Flare provides a wide array of interactive visualization types such as trees, treemaps, stacks, timelines, scatter plots, bar graphs, and pie charts. Flare supports loading data externally from a server in tab-delimited text, Javascript Object Notation (JSON), and GraphML formats.

Data can be loaded into OpenLaszlo from XML code that is embedded, included as static XML files, or accessed remotely by HTTP requests, allowing for dynamic data. Similar to Flex, OpenLaszlo includes classes for basic chart and graph types such as pie chart and line chart.

Processing includes the XMLElement class for parsing XML code. Additonally, SQLibrary (http://florianjenett.de/processing/libs/sql/), created by Florian Jenett, is an external Processing library that allows communication between a Processing program and a MySQL, PostgreSQL, or SQLite database. Processing has been designed with interactive data visualization prototyping as one of its primary uses. Visualizing Data by Ben Fry, Processing co-creator, serves as an introduction to interactive data visualization and uses Processing for code examples.

Overall Conclusions


From the analysis above, it is clear that Flash as a development environment is least suited for the social network data visualization. The cost of the software is the first hurdle since, even if the software were available on campus, the developers would not be able to easily learn the software at home. Secondly, as the visualization developers will not be novice programmers, the more standard text-based software development paradigm found in the other three options will be easier to learn. Finally, external ActionScript libraries, such as Flare are designed for use with Flex Builder or Flex SDK rather than Flash.

Of the remaining three platforms described, Processing differs the most. Processing has been successful as an educational programming language, particularly in the field of real-time interactive data visualization. Notably, it is used heavily in a data visualization course taught at UC Santa Barbara, MAT 259: Visualizing Information. Consequently, Processing is a good option for the development of visualizations by those outside of the core ProSE development team if raw statistics from ProSE are made available to the wider academic community.  Additionally, Processing is useful for rapid prototyping in experimenting with new data visualization models and is also a viable option for developing final visualizations.

Both OpenLaszlo and Flex offer standard chart types and data access in addition to a wide array of standard interface components (buttons, menus, boxes, etc.), which makes both good options for more traditional visualizations within a “professional” web environment. Although OpenLaszlo and Flex have much in common, there are some key differences. While both OpenLaszlo and Flex are open source for development, Flex must compile to a Flash file, which is proprietary. Although Flash is installed on most desktop computers, there are still market segments such as many mobile devices that cannot use Flash. OpenLaszlo code can run on both Flash and DHTML in addition to potential future platforms. In other ways, the Flex platform is easier to learn. Flex Builder is an easy-to-use development environment and a wide range of tutorials for Flex and ActionScript are available online and in books. Finally, the Flare library for Flex provides a wider range of pre-built visualization types.

Bibliography


Actionscript.org:

Adobe Flash:

Adobe Flex:

Flex.org:

OpenLaszlo:

Processing:



[1] “Adobe Flash Player Version Penetration” 29 June 2009, .

[2] Ben Fry, Visualizing Data, 1st Edition (Sebastopol, CA: O’Reilly Media, Inc., 2008) “Chapter 2. Getting Started with Processing.”

[3] “Overview: Procesing 1.0,” 14 July 2009, .

[4] “Overview: Procesing 1.0,” 14 July 2009, .

[5] “Download: OpenLaszlo,” 15 July 2009, .

[6] “Develop Processing,” 15 July 2009, .

Transliteracies Research Paper PDF Version PDF version of the research report.

  chagenah, 10.07.09

Comments are closed.