Preface

Developing a web application or software in general, is still a challenging task. There is a client/browser side and a server side with databases. There are many different technologies to master in order to feel comfortable with a full client/server stack. There are different frameworks with different objectives. There are also different programming languages that a developer must learn each one more suitable either for the server or the client side.

Learning Dart will help a developer to become more focused by using Dart both for clients and servers. Using the same language will ensure that a developer will lose neither performance nor flexibility. Dart can be used within its virtual machine, or its code may be compiled to JavaScript. In both cases, the performance benchmarks show promising scores (https://www.dartlang.org/performance/). Dart is both an object-oriented and a functional language. With Dart, a mix of both approaches is possible, providing great professional freedom and a programming background flexibility. In addition, Dart provides many libraries and tools (http://pub.dartlang.org/) that allow a developer to focus on the task at hand and not be concerned with all the aspects of software development.

With Polymer.dart (https://www.dartlang.org/polymer-dart/), a new approach towards developing web applications with web components will be discovered, allowing a developer to divide a web page into sections and re-use an already developed and tested web component for each section. In the near future, different catalogs of web components will appear, enabling an engineering approach to software development after waiting for many years. A web component may be composed from other web components. It may pass data to its components. A web component may also inherit its behavior from another web component. It may access an already instantiated web component.

Spiral approach

The spiral approach to software learning and development, which preserves a project history as a series of code snapshots or spirals, is used in this book.

The following three points are important in the spiral approach:

  • The history of development is preserved
  • Simple solutions are provided first; later on, these solutions may be replaced by more advanced solutions
  • Only concepts used in a spiral are explained

All of these three points are important in teaching and learning technologies.

Learning new software concepts and technologies is a challenging task. Learning in spirals, from simple to more advanced concepts but with concrete software applications, helps readers get a reasonable confidence level early on, and motivates them to learn by providing more useful applications. With each new spiral, the project grows and new concepts are introduced. A new spiral is explained with respect to the previous one. The difference between two consecutive spirals is that the next spiral has the new code introduced and the old code modified or deleted. This is named learning by anchoring to what we already understand. With a new spiral, we can come back to what we did previously and improve it. In this way, learning in spirals can touch the same topic several times, but each time with more details in a better version.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
3.144.30.178