Posts Tagged ‘web development’
Go was created in 2007 at Google as an experimental project. It was designed to be a fun language and at the same time it is productive, practical, expressive and powerful. Google Go can be considered the result of a rather conservative language evolution from languages such as C and C++.
Recently, there have been criticisms about the value of using Node.js in a high-performance, networked application environment, and some developers have moved to the Go language. Not only developers but also some well-known companies, such as Google, DropBox, Docker, DigitalOcean and more have picked up Go for some of their projects.
Certainly, Node.js is still used by a much wider audience, has more modules, is easier to use and isn’t going anywhere anytime soon. However, Go is gaining more and more popularity. In this article we will take a look at the differences between Node.js and Go to reveal the strengths and weaknesses of each environment.
Due to JS’s dynamically-typed nature Node cannot reach the raw performance of CPU or memory bound tasks that Go can achieve in many tests. Go is about 3 times faster and more lightweight than Node.js in a production environment. Not to say that Node.js is slow, it’s fast enough for most use cases, but when you do hit a limit, Go can still go a long way.
One of the language’s peculiarities is the presence of goroutines, functions that can be executed concurrently with one another.
These can be launched simply by using a keyword. Go runtime contains a scheduler that coordinates the execution of an arbitrary number of goroutines on an arbitrary number of system threads (the M:N model). In this way it is possible to carry out rapid context switches in order to take advantage of all CPU cores. So, in a hypothetical web application written in Go a single process will be able to continue serving requests even if one of these is trying to execute a blocked operation.
Ease of use
Node.js is a much simpler platform to use, especially if you are already a JS developer. For Go you will need to learn some new programming concepts, such as: coroutines, channels, strict typing (with compilation), interfaces, structs, pointers, and some other differences.
Both platforms have pretty active and growing ecosystems, but as Node.js has been around much longer and certainly it has a broader community of users and more tools that make certain software projects a lot easier and/or cheaper to implement.
Go is a younger language, however, it dynamically develops: the number of standard Go packages is growing steadily, currently at over 100, and the Go community packages can be searched easily.
In conclusion, I’d like to say that there is no ideal language/framework/tool that could be used by everyone otherwise there would be only one programming language and there wouldn’t be such debates as Go vs Node.js:) Every language is tailored to be used for specific use cases. But we need to admit that there are some things Go performs better in, at the same time it lacks some characteristics that Node.js provides.
And what advantages and disadvantages of using Node.js and Go have you come across?
Business Development Manager
Professional Software Development
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
Professional Software Development
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!
Business Development Manager
Professional Software Development
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.
Business Development Manager
Professional Software Development
Posted August 11, 2014on:
Sitecore’s CMS flexibility, scalability and security make it an enterprise favorite, powering more than 32,000 websites around the world from financial powerhouses like American Express to some of the largest international sporting tournaments like Barclays ATP World Tour Finals. Let’s try to find out why Sitecore is so popular nowadays especially among companies which have got high traffic sites.
What is Sitecore and why it is a choice for so many companies and businesses?
From the start, Sitecore’s architecture is able to meet every unique business need with speed, flexibility and dependability. The large variety of organizations are using Sitecore’s CMS solutions – companies (more than 3,000 of the world’s leading brands such as Experian, Toshiba, Canon, Nestlé, American Express, Carnival Cruise Lines, easyJet, Heineken, and Microsoft), schools, and government agencies all over the world in every vertical sector are leveraging from Sitecore CMS to create business advantage and online success.
Sitecore is one of the leading enterprise-level content management systems built on ASP.NET, enabling web content editors and marketers to have full control over all aspects of their website from social integration and blog posts to advanced personalization, e-commerce and more. Launched in 2001, Sitecore has used the .NET platform from the beginning of the language itself, and has been growing in popularity over the last few years. Nowadays Sitecore is a quite popular CMS in the U.S.A. and Western Europe.
Sitecore CMS brings the power of personalization and conversation management right in the hands of your marketers and business users. The CMS incorporates a powerful desktop interface that is controlled by a fully-customizable role-based system. This desktop is very similar in look and feel to a Windows desktop, which makes it easy for users new to Sitecore to pick up and learn the system. Developers will find Sitecore’s powerful technology platform and open API architecture provides them the flexibility and scalability they need.
10 main reasons why companies should use Sitecore CMS
Some of the top features of Sitecore CMS include solutions that offer better insight to website user behavior as well as tools to increase site visitors:
1) Insight to Website Traffic Conversion;
2) Targeted Content Based on User Behavior;
3) Repurpose Content for Different Devices;
4) Easily Integrate with Third Party Tools;
5) Improved Search Engine Optimization (SEO);
6) Fast Integration with Microsoft Technology;
7) Highly Scalable;
8) Intuitive and User-Friendly Design;
9) Optimize Web Experience with Multivariate Testing;
10) Web 2.0 and Social Media Integration.
.NET-based CMSs: Sitecore, SharePoint, Umbraco – how to choose the right one for your business?
Comparing Sitecore and SharePoint
Firstly, let’s look at SharePoint and Sitecore, as it is often asked about the possibility of using Sitecore for an intranet or SharePoint for a public-facing website. While the idea of using one technology solution to solve both problems sounds promising, there are many things you should consider before limiting yourself.
Here are some thoughts in which cases you should choose Sitecore CMS for your projects and in when it is better to stick to SharePoint (these points are based on experts’ views as well as on Altabel’s own experience):
- it is better to use Sitecore for a platform to customize the web user experience based on non-authenticated users;
- choose Sitecore for a marketing driven platform;
- for an external content focus, choose Sitecore;
- choose SharePoint for an IT driven platform;
- it makes sense to choose SharePoint for a collaboration platform;
- for an internal content focus with enterprise level security requirements, choose SharePoint.
Following the beaten path, many companies continue using SharePoint for creating public facing sites – they are well familiar with it and have already invested a lot of time, money, and knowledge in SharePoint. But actually it should be kept in mind that SharePoint was not developed for such sites so it’s worth adopting another CMS to develop them. There are some advantages Sitecore offers over SharePoint as a CMS for a public facing website:
- Sitecore allows high flexibility for content editors and a logical hierarchical structure;
- SharePoint is very limited to List Viewsfor content entry;
- Sitecore’s Web Forms for Marketers makes building forms and triggering goals simple;
- Frontend development for SharePoint is restricted and requires a lot of customized work, Sitecore on the other hand, is free of restrictions and able to do anything you want;
- Sitecore offers fantastic technical support;
- Sitecore offers easy multilingual configuration;
- A/B testing is included with Sitecore, a must for a modern website. SharePoint does not come with any kind of A/B testing;
- Sitecore’s DMS (Digital Marketing Suite) – SharePoint has nothing like this. Any website that has marketing in mind can greatly benefit from this tool included with Sitecore;
- Sitecore is developer-friendly – Development in Sitecore is much easier and requires a lot less specific knowledge. More developers are able to produce a better solution, faster, cheaper;
- Sitecore has a clear line between data and presentation making content easier to manage.
The bottom line is simple: If you’re looking to build a public internet site on the Microsoft platform, SharePoint makes sense if you meet a certain set of criteria. But Sitecore provides an extremely compelling alternative that, from a business owner’s perspective, offers superior tools for engaging with the customer.
Comparing Sitecore and Umbraco
Sitecore CMS and Umbraco CMS are two leading content management systems based upon Microsoft’s ASP.NET framework. Their flexibility, functionality, integration capabilities and ease of use is why many have chosen to focus their technical expertise on these systems.
Let’s have a look at the similarities between Sitecore CMS and Umbraco CMS:
- Easy integration with Microsoft Office;
- Endless expansion possibilities;
- Easy-to use User Interfaces (UI);
- Design layouts are separated from the content;
- Due to the large open-source Umbraco community and the expert development teams within the Sitecore network both CMS platforms are constantly evolving at a rapid pace;
- Easily scalable and customizable through modules (Sitecore) or packages (Umbraco);
- Can be integrated with your internal systems like ERP and CRM;
- Comprehensive documentation and online help & guidance.
And now let’s get acquainted with the differences between these two CMS:
– Sitecore is an enterprise solution whereas Umbraco is suited to small-medium sized businesses;
– Sitecore is a license-based product. This means a license fee is paid to acquire it. Licensing options can be chosen, taking in consideration a number of factors, making it possible to use Sitecore in a variety of projects: from small non-profits, with websites running on a single server, to big corporations with millions of visits per day;
– Umbraco is an open-source product, meaning there is no license fee;
– In both North America and Europe, you can easily find an existing Sitecore customer. This is very helpful to further increase adoption as it means that new customers have some experience they can tap into. In addition, Sitecore has many government references where Umbraco has almost none;
– Sitecore 7.1/7.2 has advanced feature set;
– Sitecore is an established global player; much more so than Umbraco. Sitecore is in particular strong in the important and highly competitive US and UK markets.
Our opinion is that if you do a proper CMS vendor evaluation, you will probably find that the license cost is only a fraction of the overall project costs. Your criteria should really be to look at which system will meet your requirements most efficiently.
If you are looking for a .NET-based CMS, all these products will work – but right now, at Altabel we would lean toward Sitecore when looking for a pure CMS that provides fast development time, stable platform and ease of use for non-technical content creators.
Of course, each organization is different, and it makes sense to check out the products and run them through your technology selection process to determine which is best for you.
Hope you have found the article interesting and helpful for you.
Also it would be nice to hear your opinion and practical experience. What CMSs do you use and for what kind of projects? What is your favorite CMS and why?
Thank you for your attention and looking forward to your comments.
- Ideal for complex “client-side” applications, where the complexity is more in a way “components” of an application interacts with each other than in a way they synchronise and/or interact with backend
- Very clear separation of concerns
- Uses concepts that kind of look like the future of HTML/DOM (DOM templates, binding attributes).
- A bit complicated to grasp. A lot of new concepts
- jQuery or another dom parsing framework in directives may be painful to use because of the way angular compiles templates
- Good for application with a big level of complexity on the client side, but you’ll have to learn a lot of new stuff.
On the whole, AngularJS is a robust and viable framework for building generic web apps. Whether it lives up to the expectations of being the most dominant JS framework for web development is yet to be seen.
Backbone came out in June 2010, and its community is nearly as large as Angular’s. Many popular applications such as Twitter, LinkedIn Mobile and Foursquare use Backbone framework. Also a number of music apps were built with Backbone, including well-known Pandora, Soundcloud and Pitchfork.
If you’re working on a single-page application or widget and you’re comfortable with being a self-starter—Backbone is likely the right choice for you.
- Very easy to start with
- Very small
- Free to use any templating engine
- A lot of excellent documentation
- Good Community Support
- Very popular (According to Github, Stackoverflow statistics)
- Very flexible in how you may want to use it
- Minimalist library
- Easy to learn
- No two way data-binding
- Dependency on different frameworks like jQuery and Underscore
- No provision for handling nested views
- More work required to build large scale applications as compared to Angular or Ember
- Code can become messy
- DOM manipulations are left to the developer
- Performs slower than AngularJS
Ember is the newest of the three, but it’s already making waves. LivingSocial, Groupon, Zendesk, Discourse and Square are some of the most well-known applications that have adopted Ember. Ember’s creators say it’s easy to see when a site is using Ember because of its loading speed.
Ember’s library size and support network are its two greatest strengths, but if you’re only trying to create a small widget or single-page app, it might be overkill for you. If you’re working on a multipage, navigational, long-term project, Ember might be the right choice for you.
- Good for long running and complex applications with deep nested view hierarchies
- Aggregates model data changes and update the DOM late in the RunLoop
- Well defined models and computed properties
- Use HandleBars as templating which is flexible
- Provides auto updating computed properties
- Test driven
- Relatively new framework
- Steepest learning curve out of the three
- Payload is the largest out of all three
- Dependency on jQuery and Handlebars
- Poor performance as compared to AngularJS
- Documentation is not very good
- Two way bindings are not implemented well