Altabel Group's Blog

Archive for September 2015

js

JavaScript is celebrating 20th anniversary in 2015. It’s a language with a changeable history and carries a lot of baggage from its childhood, but as it leaves its teenage years behind it, now it’s a language that has finally grown up. JavaScript made a revolution in web by allowing scripts to run in a browser. But after its initial popularity soon the reputation was spoiled and JS was often associated with poorly written, cut-and-pasted code that was used to create annoying pop-ups and cheesy ‘effects’. Thus we see that JavaScript had some annoying weaknesses as a programming language.

On the other hand, we can observe that JavaScript has “ubiquity” that other programming languages don’t have. One must admit that you just need a browser to run, which means that anyone with a smartphone or computer is capable of running a JavaScript application. JavaScript has made the dream true that Java was available on all platforms by using the browser as its virtual machine. And now thanks to Node.js, it can run without a browser.

It is well known fact that simple text editor – is all you need to write a program in JS. JavaScript has a low barrier to entry when it comes to development. And we also must agree with GitHub that JavaScript is one of the most popular languages. This means that help is often easy to come by and there is a lot of JavaScript code out there. Furthermore, one should not forget that it also means that code’ libraries are well tested and many issues have already been solved.

After a first decade, which was a period of awkward childhood, JavaScript was growing up like most of the teenagers. People changed their mind with the revolutionary advent of Ajax. jQuery then made people using JavaScript to build some new applications and Node has taken it all to a whole serious level. JavaScript established itself as a powerful and flexible language with some cool features such as:
– Prototype-based Inheritance
– Closures
– JSON (subset of the object literal notation of JavaScript)
– Asynchronous event-driven programming
– Functions as objects

Frameworks and Libraries

Lots of frameworks and libraries have been written to mitigate problems and improve JavaScript for programming. JavaScript framework is the set of pre-written JavaScript code that helps to ease development of the JS based applications. This framework is also known as JavaScript libraries, which enhance the use of this programming language in many ways.
We have already shared some posts about the JavaScript frameworks in the past. JavaScript framework can be found anywhere on the web with different type of working capabilities. We have selected few of them to keep an eye on, and we hope you will find our compilation useful.

1) Angular.js

Open-source web application framework. It aims to simplify both the development and the testing of such applications by providing a framework for client-sidemodel–view–controller (MVC) and model–view–viewmodel (MVVM) architectures, along with components commonly used in rich Internet applications.

2) Ember.js

Open-source JavaScript application framework, based on the model-view-controller (MVC) pattern. It allows developers to create scalable single-page web applications by incorporating common idioms and best practices into the framework.

3) Meteor (MeteorJS)

Open-source JavaScript web application framework written using Node.js. Meteor allows for rapid prototyping and produces cross-platform (web, Android, iOS) code. It integrates with MongoDB and uses the Distributed Data Protocol and a publish–subscribe pattern to automatically propagate data changes to clients without requiring the developer to write any synchronization code. On the client, Meteor depends on jQuery and can be used with any JavaScript UI widget library.

4) Backbone.js

JavaScript library with a RESTful JSON interface and is based on the model–view–presenter (MVP) application design paradigm. Backbone is known for being lightweight, as its only dependency is on one JavaScript library, Underscore.js. It is designed for developing single-page web applications, and for keeping various parts of web applications (e.g. multiple clients and the server) synchronized. Backbone was created by Jeremy Ashkenas, who is also known for CoffeeScript.

5) Knockout.js

JavaScript implementation of the Model-View-ViewModel pattern with templates. Main principles are: a clear separation between domain data, view components and data to be displayed; the presence of a clearly defined layer of specialized code to manage the relationships between the view components. These features streamline and simplify the specification of complex relationships between view components, which in turn make the display more responsive and the user experience richer.

6) Ext JS (Sencha Ext JS)

JavaScript application for building interactive cross platform web applications using techniques such as Ajax, DHTML and DOM scripting. Ext JS includes interoperability with jQuery andPrototype.

7) D3.js (D3)

JavaScript library for producing dynamic, interactive data visualizations in web browsers. It makes use of the widely implemented SVG, HTML5, and CSS standards. It is the successor to the earlier Protovis framework. In contrast to many other libraries, D3.js allows great control over the final visual result.

Conclusion

JavaScript will be one of the most important languages to learn and invest into over the next few years. Website development is into a single-page web application that relies on JavaScript to do the heavy lifting on the client side (in this case, usually JS goes with modern front-end frameworks such as Backbone or Angular.js). The advantage of using Isomorphic JavaScript is increasing the popularity of JS. The data that is transported from databases is often stored in JSON format. The possibility of using a combination of HTML, CSS and JavaScript let you build an application for iOS, Android and FireFox OS. JavaScript has existing libraries, plugins, APIs and other cool stuff to be broad used in The Internet of Things (IoT). JavaScript is becoming the language not just for the front and back end of web development, but also for interacting with a huge number of modern devices.

To sum up, I must admit that now is the perfect time to get started with JavaScript projects, as it moves into its 20s, and has finally grown up for starting to go places!
What are your opinions about JavaScript future, its libraries and frameworks? I’d love to hear your thoughts in the comments.

 

Svetlana Pozdnyakova

Business Development Manager

 

altabel

Altabel Group

Professional Software Development

E-mail: contact@altabel.com
www.altabel.com

We are often asked about which iOS game engine to use. It is believed that most companies are looking for a free game engine so here is a comparison of the different open source iPhone game engines that actually have apps out there.  Also these game engines now support the iPad.

Sparrow Framework

The Sparrow Framework is a very lightweight 2D game engine created in Objective-C.

It was built from ground up for iPhone, iPad and iPod Touch. You can easily integrate it with your existing UIKit apps, access all iOS APIs directly and benefit from native performance.

If you have already worked with Adobe Flash or Starling, you will feel right at home: Sparrow uses the same concepts and naming schemes. Even if you’re coming from a different background, you’ll get the hang of it quickly, because everything is designed to be as intuitive and easy to use as possible.

The game framework includes all the necessary features you’d require for creating a basic 2D game such as easy animation, and a sound engine.

Cocos2D IPhone

The Cocos2D iPhone game engine is a port of a game engine originally created in Python and converted to iPhone Objective-C.  As you can tell from the name, Cocos2D is designed for 2D games, that being said, although the engine is in a 2D world, the engine includes a growing collection of high quality 3D special effects.  Cocos2D has also been released on the Mac so you can ease the release on 2 platforms.

Cocos2D is the first engine to check out, while many may be turned off by the engine not supporting a 3d world, if you look at most of the top iPhone games the gameplay is 2D, in fact the iPhone’s touch screen controls can make it difficult to operate in a 3D world.

The engine provides more examples than any of the other engines out there because of the large community.

iSGL3D

iSGL3D (iOS Scene Graph Library) is a 3D framework for the iPhone, iPad and iPod Touch written in Objective-C, enabling the creativity of developers to flourish in a 3D world without the complexities of OpenGL.

With its rich set of features, iSGL3D provides the necessary tools to develop 3D applications in an incredibly short time frame, even with a minimum of experience in 3D graphics. The principal behind iSGL3D is to make construction and manipulation of 3D scenes as simple as possible for a developer.

With a single line of code you can add a 3D object whether it is a simple primitive, a sprite (or particle) or your own imported asset. Properties on these objects allow you to modify their appearance, position, rotation and more very simply. You can add containers too to group objects and manipulate them together. In a short period of time you can build up a complex 3D scene.

Moai SDK

The Moai SDK is an open source 2D game engine. It designed more for people who know what they’re doing. While it includes the ability to start developing a game immediately from a downloadable binary, it only supports using the FreeGLUT library on the desktop. It is designed in such a way that it expects the developer to be able to create the windowing system themselves.

The main language used with Moai is Lua. Most of the time you shouldn’t need to use C++ to extend the base engine, but the capability to do so is there. The documentation for the Lua codebase is kind of weak however, so you should be ready to do some searching to find out how to use various capabilities. You can create your games with Moai on both Windows (Visual Studio) and Mac (Xcode).  In order to
submit your games to the iOS app store you will need to do so with a Mac.

Oolong Engine

The Oolong Engine is written in C++ with some help from Objective-C. It will help you to create new games and port existing games to the iPhone, the iPod touch and the iPad.

Oolong provides support for a wide variety of features and provides excellent performance.

Haxe

Haxe is a multi-platform language that most notably compiles to SWF and has been used in many Flash games.

Galaxy Game Engine

The Galaxy Game Engine is a very promising engine with an extensive feature set. This is a BSD licensed 3D engine that includes some very useful tools such as a level editor, terrain editor, model viewer, particle editor, and shader IDE.

Sure, we may make this list longer, but let me stop here. The most important thing, which I’d like to notice, is that you should select the engine which fits your project needs and suits your purposes in the best way.

And what do you think? To what engine would you give your preference?

Feel free to share with us your thoughts!

mk

Marina Karabanova
Marina.Karabanova@altabel.com
Skype ID: m.karabanova
Business Development Manager (LI page)
Altabel Group – Professional Software Development


%d bloggers like this: