Home Web Development Opa Application Development

Opa Application Development

By Li Wenbo
books-svg-icon Book
eBook $16.99 $10.99
Print $32.99
Subscription $15.99 $10 p/m for three months
$10 p/m for first 3 months. $15.99 p/m after that. Cancel Anytime!
What do you get with a Packt Subscription?
This book & 7000+ ebooks & video courses on 1000+ technologies
60+ curated reading lists for various learning paths
50+ new titles added every month on new and emerging tech
Early Access to eBooks as they are being written
Personalised content suggestions
Customised display settings for better reading experience
50+ new titles added every month on new and emerging tech
Playlists, Notes and Bookmarks to easily manage your learning
Mobile App with offline access
What do you get with a Packt Subscription?
This book & 6500+ ebooks & video courses on 1000+ technologies
60+ curated reading lists for various learning paths
50+ new titles added every month on new and emerging tech
Early Access to eBooks as they are being written
Personalised content suggestions
Customised display settings for better reading experience
50+ new titles added every month on new and emerging tech
Playlists, Notes and Bookmarks to easily manage your learning
Mobile App with offline access
What do you get with eBook + Subscription?
Download this book in EPUB and PDF formats, plus a monthly download credit
This book & 6500+ ebooks & video courses on 1000+ technologies
60+ curated reading lists for various learning paths
50+ new titles added every month on new and emerging tech
Early Access to eBooks as they are being written
Personalised content suggestions
Customised display settings for better reading experience
50+ new titles added every month on new and emerging tech
Playlists, Notes and Bookmarks to easily manage your learning
Mobile App with offline access
What do you get with a Packt Subscription?
This book & 6500+ ebooks & video courses on 1000+ technologies
60+ curated reading lists for various learning paths
50+ new titles added every month on new and emerging tech
Early Access to eBooks as they are being written
Personalised content suggestions
Customised display settings for better reading experience
50+ new titles added every month on new and emerging tech
Playlists, Notes and Bookmarks to easily manage your learning
Mobile App with offline access
What do you get with eBook?
Download this book in EPUB and PDF formats
Access this title in our online reader
DRM FREE - Read whenever, wherever and however you want
Online reader with customised display settings for better reading experience
What do you get with video?
Download this video in MP4 format
Access this title in our online reader
DRM FREE - Watch whenever, wherever and however you want
Online reader with customised display settings for better learning experience
What do you get with video?
Stream this video
Access this title in our online reader
DRM FREE - Watch whenever, wherever and however you want
Online reader with customised display settings for better learning experience
What do you get with Audiobook?
Download a zip folder consisting of audio files (in MP3 Format) along with supplementary PDF
What do you get with Exam Trainer?
Flashcards, Mock exams, Exam Tips, Practice Questions
Access these resources with our interactive certification platform
Mobile compatible-Practice whenever, wherever, however you want
BUY NOW $10 p/m for first 3 months. $15.99 p/m after that. Cancel Anytime!
eBook $16.99 $10.99
Print $32.99
Subscription $15.99 $10 p/m for three months
What do you get with a Packt Subscription?
This book & 7000+ ebooks & video courses on 1000+ technologies
60+ curated reading lists for various learning paths
50+ new titles added every month on new and emerging tech
Early Access to eBooks as they are being written
Personalised content suggestions
Customised display settings for better reading experience
50+ new titles added every month on new and emerging tech
Playlists, Notes and Bookmarks to easily manage your learning
Mobile App with offline access
What do you get with a Packt Subscription?
This book & 6500+ ebooks & video courses on 1000+ technologies
60+ curated reading lists for various learning paths
50+ new titles added every month on new and emerging tech
Early Access to eBooks as they are being written
Personalised content suggestions
Customised display settings for better reading experience
50+ new titles added every month on new and emerging tech
Playlists, Notes and Bookmarks to easily manage your learning
Mobile App with offline access
What do you get with eBook + Subscription?
Download this book in EPUB and PDF formats, plus a monthly download credit
This book & 6500+ ebooks & video courses on 1000+ technologies
60+ curated reading lists for various learning paths
50+ new titles added every month on new and emerging tech
Early Access to eBooks as they are being written
Personalised content suggestions
Customised display settings for better reading experience
50+ new titles added every month on new and emerging tech
Playlists, Notes and Bookmarks to easily manage your learning
Mobile App with offline access
What do you get with a Packt Subscription?
This book & 6500+ ebooks & video courses on 1000+ technologies
60+ curated reading lists for various learning paths
50+ new titles added every month on new and emerging tech
Early Access to eBooks as they are being written
Personalised content suggestions
Customised display settings for better reading experience
50+ new titles added every month on new and emerging tech
Playlists, Notes and Bookmarks to easily manage your learning
Mobile App with offline access
What do you get with eBook?
Download this book in EPUB and PDF formats
Access this title in our online reader
DRM FREE - Read whenever, wherever and however you want
Online reader with customised display settings for better reading experience
What do you get with video?
Download this video in MP4 format
Access this title in our online reader
DRM FREE - Watch whenever, wherever and however you want
Online reader with customised display settings for better learning experience
What do you get with video?
Stream this video
Access this title in our online reader
DRM FREE - Watch whenever, wherever and however you want
Online reader with customised display settings for better learning experience
What do you get with Audiobook?
Download a zip folder consisting of audio files (in MP3 Format) along with supplementary PDF
What do you get with Exam Trainer?
Flashcards, Mock exams, Exam Tips, Practice Questions
Access these resources with our interactive certification platform
Mobile compatible-Practice whenever, wherever, however you want
  1. Free Chapter
    Getting Started with Opa
About this book
Opa is a full-stack Open Source web development framework for JavaScript that lets you write secure and scalable web applications. It generates standard Node.js/MongoDB applications, natively supports HTML5 and CSS and automates many aspects of modern web application programming. It handles all aspects of web programming written in one consistent language and compiled to web standards.Opa Application Development is a practical,hands-on guide that provides you with a number of step-by-step exercises. It covers almost all aspects of developing a web application with Opa, which will help you take advantage of the real power of Opa, as well as building a secure, powerful web application rapidly.Opa Application Development dives into all concepts and components required to build a web application with Opa. The first half of this book shows you all of the basic building blocks that you will need to develop an Opa application, including the syntax of Opa, web development aspects, client and server communication and slicing, plugin, database, and so on. By the end of the book you will have yourself created a complete web application along with a game: Pacman!
Publication date:
June 2013
Publisher
Packt
Pages
116
ISBN
9781782163749

 

Chapter 1. Getting Started with Opa

This chapter shows how to install Opa and set its environment. A simple Opa program will also be shown to give a first glimpse of Opa programming.

 

Installing Opa


This section is about installation and configuration of Opa. You can get a more detailed installation guide that includes how to build Opa from source on Opa's webpage (https://github.com/MLstate/opalang/wiki/Getting-started). This section will give us brief instructions on how to install Opa compiler, Node.js, and some required modules for Node.js.

Installing Node.js

Node.js (http://nodejs.org) is a platform for building fast and scalable network applications. It is the backend of Opa (since Opa 1.0.0). We need to install Node.js first before installing Opa. The following are the steps to install Node.js on various operating systems:

  • Mac OS: Following are the steps to install Node.js:

    1. Download the latest .pkg package from http://nodejs.org/dist/latest/.

    2. Double-click on the package to install Node.js.

  • Ubuntu and Debian Linux: To install Node.js on Ubuntu and Debian Linux, type the following commands:

    $sudo apt-get install python-software-properties
    $sudo add-apt-repository ppa:chris-lea/node.js
    $sudo apt-get update
    $sudo apt-get install nodejs npm
    

    Tip

    Downloading the example code files

    You can download the example code files for all Packt books you have purchased from your account at http://www.packtpub.com. If you purchased this book elsewhere, you can visit http://www.packtpub.com/support and register to have the files e-mailed directly to you.

  • Windows: The following are the steps to install Node.js:

    1. Download the latest .msi package from http://nodejs.org/dist/latest/.

    2. Double-click on the package to install Node.js on Windows.

Type the following commands to confirm your installation. If everything goes right, you will see the version information of Node.js and npm.

$ node -v
$ npm –v

Installing the required modules

There are several modules that are required by Opa to run an application. Type the following command to install these modules:

$ npm install -g mongodb formidable nodemailer simplesmtp imap

Installing the Opa compiler

The easiest solution for installing Opa is to download an installer from the Opa website (http://opalang.org/). You can also get the installer from Opa's GitHub repository (https://github.com/MLstate/opalang/downloads). At the time this book is being written, the latest version of Opa is 1.1.0.

Following are the steps to install Opa on various operating systems:

  • Mac OS X: Download the latest .dmg package and double-click on it to install. You will need the password of an administrative account.

  • Ubuntu and Debian Linux: Download the latest .deb package and double-click on it to install. You can also install it with the following command line:

    $sudo dpkg –i opa-1.1.0.x86.deb
    
  • Windows: Download the latest .exe file and double-click on it to install. Note that only 64-bit packages are available for Windows at this time.

  • Other Linux: To install Opa follow these steps:

    1. Download the latest .run package for Linux.

    2. Go to the download folder and add an execution privilege to the downloaded file by running the following command:

      $ chmod a+x opa-1.1.0.x64.run
      
    3. Run the installing script:

      $ sudo ./opa-1.1.0.x64.run
      

Testing the installation

To test if Opa is installed properly on your computer, run the following command:

$ opa --version

Opa is installed properly if the version information of the Opa compiler is printed.

 

Setting up editors


You can write Opa codes with any text editor you like, but a good editor can make coding easier. This section is about setting up editors you may commonly use. For now, Sublime Text is the most complete Integrated Development Environment (IDE) for Opa.

Sublime Text

Sublime Text (http://www.sublimetext.com/) is a sophisticated text editor for code, markup, and prose. You can download and try Sublime Text for free from http://www.sublimetext.com/2.

There is an Opa plugin that offers syntax highlighting, code completion, and some other features. To install the plugin, follow these steps:

  1. Get the plugin from https://github.com/downloads/MLstate/OpaSublimeText/Opa.sublime-package.

  2. Move it to ~/.config/sublime-text2/Installed Packages/ (in Linux), or %%APPDATA%%\Sublime Text 2\Installed Packages\ (in Windows), or ~/Library/Application Support/Sublime Text 2/Installed Packages (in Mac).

  3. Start Sublime and check if the menu entry (View | Syntax | Opa) is present. If everything goes well, the file with the .opa extension should automatically have its syntax highlighted. If not, please make sure you are using the Opa plugin (View | Syntax | Opa). We can navigate to Edit | Line | Reindent to auto-indent the Opa code.

Vim

Vim (http://www.vim.org/) is a highly configurable text editor, freely available for many different platforms. The Opa installation package provides a mode for Vim at /usr/share/opa/vim/ (for Linux) or /opt/mlstate/share/opa/vim/ (for Mac OS). To enable Vim to detect Opa syntax, copy these files to your .vim directory in your home folder (create it if it does not exist already):

  • On Linux, type the following command:

    $cp –p /usr/share/opa/vim/* ~/.vim/
    
  • On Mac OS, type the following command:

    $cp –p /opt/mlstate/share/opa/vim/* ~/.vim
    

Emacs

On Mac OS X, you can either use Aquamacs and the package installation will take care of it, or you should add the following line to your configuration file (which might be ~/.emacs; create it if it does not exist already):

(autoload 'opa-classic-mode "/Library/Application Support/Emacs/site-lisp/opa-mode/opa-mode.el" "Opa CLASSIC editing mode." t)
(autoload 'opa-js-mode "/Library/Application Support/Emacs/site-lisp/opa-mode/opa-js-mode.el" "Opa JS editing mode." t)
(add-to-list 'auto-mode-alist '("\.opa$" . opa-js-mode))
(add-to-list 'auto-mode-alist '("\.js\.opa$" . opa-js-mode))
(add-to-list 'auto-mode-alist '("\.classic\.opa$" . opa-classic-mode))

On Linux, add the following lines to your configuration file:

(autoload 'opa-js-mode "/usr/share/opa/emacs/opa-js-mode.el" "Opa JS editing mode." t)
(autoload 'opa-classic-mode "/usr/share/opa/emacs/opa-mode.el" "Opa CLASSIC editing mode." t)
(add-to-list 'auto-mode-alist '("\.opa$" . opa-js-mode))
(add-to-list 'auto-mode-alist '("\.js\.opa$" . opa-js-mode))
(add-to-list 'auto-mode-alist '("\.classic\.opa$" . opa-classic-mode))

For Eclipse, the experimental plugin is available at https://github.com/MLstate/opa-eclipse-plugin.

 

Your first Opa application


As a first example, here is the most simple program in Opa:

jlog("hello Opa!")

Compile and run it:

$ opa hello.opa -o hello.js
$ ./hello.js

Note

We can type opa hello.opa -- to compile and run the code in a single line.

The code does nothing but prints hello Opa on your screen. If you can see this message, it means Opa is working properly on your machine.

 

Summary


In this chapter, we learned how to install Opa, set up a proper editor, and write our first Opa program. In the next chapter, we will have a brief look at the basic grammar of the Opa language.

About the Author
  • Li Wenbo

    Li Wenbo studied Computer Science and Technology at Wuhan University, graduating with a master's degree. He has two years experience working as a Software Engineer in a leading telecom company in China. He has been doing web development for about 8 years, ever since he was a student at Wuhan University. He is familiar with a lot of programming languages such as C/C++, Java, JavaScript, PHP, and so on, and he has a passion for new things and technologies. Li tried the Opa framework last year and found it very interesting. He then participated in an Opa challenge and won the first prize. Li Wenbo is now a freelance developer and owns a small studio in Wuhan, China.

    Browse publications by this author
Opa Application Development
Unlock this book and the full library FREE for 7 days
Start now