But why TypeScript?
Let’s review main reasons of its popularity:
- TypeScript can be just the right fit for projects in which developers try to remain relevant without the need to learn a whole new syntax.
- TypeScript has many additional language features but defining types and creating classes, modules, and interfaces are some of the key features it offers.
- TypeScript implements many conceptions that are appropriate to object-oriented languages such as extending, polymorphism, encapsulation, accessibility modifiers and so on.
- Lots of TypeScript features have strict rules, so various code formatting errors are excluded. Which means that the possibility of incorrect implementation or inaccurate method invocations is eliminated.
TypeScript has a number of other positive features that are out of the scope of this article. On the other hand, there are two significant minuses exist.
- Probably, the biggest minus is entry threshold and number of specialists on the market. Nowadays there are not so many specialists with solid experience in this language.
The most recent version, TypeScript 1.8, rolled out in February, includes several more features like F-Bounded polymorphism, string literal types, etc.
We will be happy to hear how you use TypeScript in your current projects, if you like it, if you are planning to switch to this language, what are the pros and cons in your opinion, etc. Feel free to share with your thoughts in comments below!
Business Development Manager | LI Profile
Facebook is not the only one to use React:
Instagram is 100% built on React, both public site and internal tools ;
Yahoo`s mail client is made in React;
Netflix – the biggest paid video-streaming service;
Sberbank, bank #1 in Russia, is built with React;
Khan Academy uses React for most new JS development.
React in comparison to Angular.js isn`t a complete framework. However we can`t say that React.js is only “V” in the MVC. After a closer look, you can actually see that React.js is more than just “V”, it has quite some features of the C (controller) part as well. This is why React is so confusing to understand.
Let`s see why React.js stands out from the crowd:
Flux – is highly competitive to MVC. One-way data flow provides maintainability and efficient arrangement of data and DOM elements.
React developers suggested using “virtual DOM” in order to solve performance issue for websites with too dynamic DOM. All changes in a document are made there first, and then React looks for the shortest path to apply them in a real DOM tree. This approach makes the framework fast.
React is fundamentally different than other front-end frameworks in that each asset is made up of many isolated components. Want a button changed across the whole platform? Change it once and voilà it`s changed everywhere.
By making the creation, distribution and consumption of isolated reusable components more straightforward, developers are better able to save time by using and creating common abstractions. This is true of both low level elements like buttons and high level elements such as accordions.
Business Development Manager |LI Profile
Posted March 15, 2016on:
Whether you’re building apps for the browser, mobile or desktop, Aurelia can enable you to not only create amazing UI, but do it in a way that is maintainable, testable and extensible.
Retrospective and today
Aurelia is a project of Rob Eisenberg, the author of a very popular MV * – framework for Caliburn.Micro XAML-platforms, Durandal. Understanding all the disadvantages of Durandal, Eisenberg engaged in the development of so-called NextGen framework. In 2014 he began to work in Angular team on the second version of the framework. However, several months later, Rob decided to leave the Angular team since the direction of Angular 2, in his opinion, had changed a lot. He gathered a large team and returned to work on the framework of his dreams. And Aurelia is the result of that work.
By using modern tooling Aurelia was written from the ground up in ECMAScript 2016. This means you have native modules, classes, decorators and more at disposal.
Aurelia’s code is open sourced under the MIT License, a very permissive license used by many popular web projects today. The starter kits are available under the Creative Commons 0 license. There is also a Contributor for those who wish to join the team in working on Aurelia. Ultimately, this means that you can use Aurelia without fear of legal repercussions and it can be build in the same confidence.
Benefits of Aurelia
• Convention over Configuration – Simple conventions help developers follow solid patterns and reduce the amount of code they have to write and maintain. It also means less fiddling with framework APIs and more focus on their app.
• Simple, But Not Simplistic – Because of the simple design developers are able to learn a very small set of patterns and APIs that unlock limitless possibilities.
• Promotes the “-ilities” – Testability, maintainability, extensibility, learnability, etc.- Aurelia’s design helps developers to naturally write code that exhibits these desirable characteristics.
• Amazingly Extensible – Aurelia is highly modular and designed to be customized easily, so developers will never hit a roadblock or have to “hack” the framework to succeed.
• Integrates Well with Others – Easily integrated with any 3rd party library or framework: for instance, with jQuery, React, Polymer, Bootstrap, MaterializeCSS and much more.
• TypeScript Support – Each Aurelia library is released with its own d.ts files. There are also official TypeScript beginner kits and production quality starter kits.
• An Official Product with Commercial Support – Being an official product of Durandal Inc., it has commercial and enterprise support available, so you can use Aurelia for building core technology for your business.
Aurelia, Angular and React.js – what’s common and what’s different?
Aurelia vs. Angular
Similarities between Aurelia and Angular 2:
Differences in vision details and options range:
Aurelia vs. React.js
Aurelia vs. Angular and React
It goes without saying why these three frameworks are so popular. They all have a lot of strong advantages. Eventually, I’m favoring Aurelia: there’s solid documentation available and the overall philosophy is the same with Angular 2, but Aurelia is a better choice from the syntax and execution point of view. The architecture and syntax vision of Aurelia team seems to be more clear than the vision of the Angular team. The company and enterprise support of Aurelia is also a big pro.
What is your personal experience with these frameworks? Which one would you choose for your projects and why? What’s your prediction “who” will win the crown in the nearest future? Please feel free to share your thoughts with us.
Thank you in advance!
Node.js was first written in 2009, and since then its popularity has risen immensely. The list of companies using Node.js is big enough and includes such as IBM, LinkedIn, Microsoft, PayPal, and Yahoo!. Here is the link with projects, applications, and companies using node.js https://github.com/nodejs/node-v0.x-archive/wiki/Projects,-Applications,-and-Companies-Using-Node
The node.js package manager npm became the biggest package manager in the software world in 2014, and now has almost twice as many modules as similar package managers from Java and Ruby.
Npm is the package manager for Node.js and is one of the reasons for the popularity and growth of Node.js. Npm makes adding libraries and third party modules very easy, handling all of the dependencies for you. Moreover, there are about 225k modules in npm with 2.5B downloads per month.
Node.js projects range from small and simple libraries to fully blown applications. You can not only run your entire back-end on Node.js but also you can run other aspects of your engineering operations and online presence with Node.js based software. There are basic libraries like Lodash for various utility functions or Async to help with control flow in your asynchronous code. There are drivers for working with all the SQL and NOSQL databases. There are web frameworks like Express or HapiJS. There are two popular tools for build/task runners, Grunt and Gulp. For testing, there are a few great frameworks such as Mocha, Jasmine, and Lab, which includes code coverage. A great tool for managing your Node.js processes is PM2. You can run a message broker with MQTT using Mosca. If you need a continuous integration/delivery server, then there is StriderCD. You can even use HarpJS for static website generation, Ghost for blogging, and NodeBB for community forums.
A large active community
The size and usage of npm makes it clear about the size of the Node.js community. There are various resources to learn Node.js together with approximately 105k questions on StackOverfow. Most Node.js project owners are quite responsive. There are a number of blogs posts, books, open source modules, active IRC channels, several Meetup groups, conferences, and even a few consulting firms dedicated to Node.js.
When to use Node.js
Node.js is built on great non-blocking event driven architecture model. In case your project or module can really make advantage for this model, then go for it. Some of the cases could be the following:
- Single page applications (web applications in AJAX, mobile web applications)Node.js has ability to process many requests with low response times needed. It is also able to share things like validations between client and server side, which makes it a good choice for modern web applications doing a lot of processing on client side.
- Real time web applications:Anything that requires real-time feedback from web server such as chat application, messaging applications or other collaboration tools is good with Node.js. It will be the best technology for this type of job. Ruby and Python can do these kind of features however Node.js will do it exceptionally great in terms of performance and simplicity of development.
- Streaming Data:In case your plan is to build streaming applications then Node.js is what you need. Traditional web technologies frequently treat http requests and responses as atomic events. However, they are streams and not events. And consequently many great Node.js applications can be built to take advantage of this fact.
- Building APIs:Mobile applications can benefit most out of it because they consume data mostly via web services in form of JSON APIs. It’s as well perfect for taking care of many requests that are I/O driven (e.g. operations on database) and scales nicely.
When not to use Node.js:
- Heavy CPU utilizing applications:It’s not good using Node.js for applications that are very heavy on CPU usage and very light on actual I/O. Node.js permits to easily write C++ add-ons, so you could certainly use it as a scripting engine on top of your algorithms.
- Enterprise applications:If you’d like to build an enterprise application which requires complex operations, it’s better to stick to proven technologies like JAVA, Python. Node.js still has a long way to go and is considered to be rather young technology and yet to prove itself.
- Simple CRUD/HTML apps:While Node.js will eventually be a tool for writing all kinds of web applications, however your application won’t mystically get more traffic just because you write it in Node.js. If large part of your application is basically rendering HTML based on some database, using Node.js will not provide a lot of business benefits yet.
Some suppose that Node.js has a big future ahead and its popularity will be rising. Do you agree with this? Which future do you predict for it? I’ll be glad to hear your thoughts in the comments below
What is it?
Developers often use it for games, but it is finally gaining visibility across the web. It is now being used for map visualizations, charting data and presentations.
Some history behind
WebGL emerged of the Canvas 3D experiments started by Vladimir Vukićević at Mozilla. He first demonstrated a Canvas 3D prototype in 2006. By the end of 2007, both Mozilla and Opera had made their own separate implementations. In early 2009, the non-profit technology consortium Khronos Group started the WebGL Working Group, with initial participation from Apple, Google, Mozilla, Opera, and others. Version 1.0 of the WebGL specification was released March 2011. Early applications of WebGL include Zygote Body. In November 2012 Autodesk announced that they ported most of their applications to the cloud running on local WebGL clients. These applications included Fusion 360 and AutoCAD 360. Development of the WebGL 2 specification started in 2013. This specification is based on OpenGL ES 3.0.
What is WebGL Doing?
WebGL has three distinct advantages over writing code that simply manipulates the DOM:
- Performance. Using hardware acceleration (with GPU being built into your device), WebGL is a great fit for games as well as complex visualizations.
- Shaders. Complex visual effects can be done with small programs – “shaders”. This may be very simple things (such as producing a sepia coloring effect), or more complex simulations (such as water or flames).
How to start?
Here are the essentials steps to create your first WebGL project:
1. Create “canvas” element
2. Obtain drawing context
3. Initialize viewport
4. Create buffers
5. Create matrices
6. Create shaders
7. Initialize shaders
8. Draw primitives
This could sound like a lot of work, so please have a look at some of the engines and frameworks that could be of help.
Engines and Frameworks
It is an open source engine which includes a number of options, along with an editor which helps visualize your changes as you make them. Some useful experiences they highlight include brand experiences for viewing high performance cars, as well as playable ads which you can insert into applications.
It offers a 2D and 3D engine for developers to build, publish, and monetize games on their platform. Founded by former developers at Electronic Arts, this tool is also open source under the MIT License. You could download and build the latest Turbulenz Engine directly from the Github public repository. This includes everything from rendering effects and particles, to physics, animations, audio, inputs, and networking.
It is a devoted rendering engine. There are a host of other engines covering game, sound and physics etc. and they all work beautifully with Pixi. It also has a number of added benefits including render auto-detect to fallback to Canvas when necessary, text support via bitmap (sprites) or webfont, as well as an asset loader.
It is a powerful ground breaking HTML5 game creator designed specifically for 2D games. It allows anyone to build games as no coding is required.
PhiloGL is a WebGL Framework for Data Visualization, Creative Coding and Game Development from Sencha Labs people. All lessons from Learning WebGL have been ported into the PhiloGL Framework. This is a great starting point for people wanting to learn PhiloGL and/or WebGL as well. This is also licensed under the MIT License.
Where else is WebGL used?
WebGL has not only been used in 3D web design and gaming, but also by some researchers for scientific purposes. For example, in a book named “Cellular Automata” the authors have used this technology to simulate Debris flow for the article “Visualization of molecular structures using state-of-the-art techniques in WebGL” tried to simulate molecules with it. More basic examples like simulation of the solar system are made many times by developers.
NASA developed an interactive web application called Experience Curiosity to celebrate the 3rd anniversary of the Curiosity rover landing on Mars. This Blend4Web-based app makes it possible to operate the rover, control its cameras and the robotic arm and reproduces some of the prominent events of the Mars Science Laboratory mission. The application was presented at the beginning of the WebGL section at SIGGRAPH 2015.
Hope the information about WebGL was useful for you Have you ever used it? If yes, how was your experience? Please feel free to share your comments and thoughts in the comments below.
Posted September 10, 2015on:
– Prototype-based Inheritance
– Asynchronous event-driven programming
– Functions as objects
Frameworks and Libraries
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.
3) Meteor (MeteorJS)
6) Ext JS (Sencha Ext JS)
7) D3.js (D3)