Saturday, January 12, 2013

Typescript, a software engineering issue

Software engineering is the art of doing well applications for computers. We use many means for achieving such a goal : tools, methodologies, formalisms, languages, management tricks, well educated developers, and so on... We could have the best language in the world, without the other means described above, it would have not to be chosen to develop industrial-oriented software.

I'v been convinced of this since many years, and I applied this principle first to Smalltalk in 90' when I chose Java instead of my beloved Smalltalk. Smalltalk was great, well defined, flexible, even beneficing of great development tools... but it was a nightmare to deploy, to make collobaroration effective , to make short, to enable big teams to work together...except by using quite expensive tools like Visualage for Smalltalk for instance... Java at once were supported by a big community, eclipse and its plugins enable to easily connect to a source control management tool, or to interface with UML tools, and so on... It was 15 years ago...

About Javascript, i followed such a thinking path when I chose GWT to develop webapps in 2006 ; javascript is wonderful language, very flexible as Smalltalk can also be, having a great inventive community behind it, ... But it was a nightmare for ensuring code quality, perenity of the code, portability, readability, bad development tools, etc... GWT was then a good answer to all this drawbacks, and may still a good choice (if the future of the technology is made clearer by the consortium being in charge of ensuring its future).

The coming of typescript 4 months ago may change this if everything is well controled. Typescript offers the software engineering touch to javascript which was missing...without withdrawing any of its strenghts, especially the flexibility and the plasticity of the language. And with the advent of HTM5, and the true portability of the language across browsers, we may think it is the right moment to switch to javascript, and especially typescript for developping webapps...

Of course it will be needed to consolidate the software engineering stuff, but if we look after the framework part (which consists in brief to take into account security, form validation, database access, communication with server, UI design, history management, i18n management, and so on...) we could propose the following for start :
  • rest
  • http://resthub.org/backbone-stack.html
  • http://foundation.zurb.com/
  • http://domo-js.com
  • http://typescriptlang.org
  • https://github.com/borisyankov/DefinitelyTyped
  • http://linqjs.codeplex.com/
With this package we can do a lot on the client side ; I let you the choice of the backend stuff (but in stateless mode) ; java, dotNet, Go, even node.js...

Have fun...
 

No comments: