Even More Productivity?
After experiencing the immense productivity gains from using Ionic for mobile development, surely using Ionic 2 would be even more productive, right?!!?.
Sadly. No. Not yet, at least.
I had hoped to be writing a post telling everyone how awesome Ionic 2 is.
I had hoped to be falling over myself to tell you about how quickly it was to get started, the incredible workflow, the intuitiveness of the framework, the terseness of the code.
Instead, what follows is a moan colored by disappointment and frustration from using Ionic 2, Typescript & Angular 2.
Ionic, Angular 2 And Typescript
Ionic 2 is more of the same, but with a few notable differences. You will, inevitably, be using Angular 2 and Typescript to create your apps.
Now, both Angular 2 and Typescript are great in my book, but they are ‘new’. This leads me to my first gripe about the Ionic 2 stack, the learning curve:
Gripe 1: The Learning Curve
There are several steep learning curves involved with the Ionic 2 stack.
The other steep learning curve is with Angular 2. Although the syntax in Angular 2 is more elegant and easier to learn than Angular 1, they both have steep learning curves.
Also, there are also changes with Ionic 2 which are a departure from Ionic 1 which you must learn. However these changes are not as severe as the changes in the Angular 2 and using Typescript.
Gripe 2: Beta
Ionic 2 is a beta.
Angular 2 is just out of beta.
Typescript is relatively new.
If you regularly program via stack overflow ‘copy and paste’ you will be frustrated by the lack of help and the ‘out-of-date’ help that you find.
Gripe 3: The Showstopper: Transpiling & Bundling
Ok, here’s the thing that’s eating me most: transpiling & bundling.
This is not a gripe with Ionic 2 per se; it is a gripe about modern web development.
Before, with Ionic 1, using the web tools to debug your app, feedback was instant. You made a change to your code and the changes were reflected immediately on screen.
Now, with Ionic 2, when you save, all your code needs compiled from typescript to something the browser can understand. On top of that, Ionic 2 now bundles your application for use in the browser every time a change, no matter how small, is made.
(Maybe I am using it wrong? Please, please, correct me if I am.)
This is a BIG problem for me. The thing I liked most about Ionic 1 (and web development in general) was how immediate the feedback loop was.
Things were so much more productive in the web world compared to using compiled languages. Working with a scripting language had its issues, but it felt so productive not having to wait on the compiler to finish.
Transpilers & bundlers have added a compile step to web development which affects productivity.
Largely due to my opinion on the frustrating feedback loop with Ionic 2, I will not be using Ionic 2 for new projects yet.
Sure, there are a lot of benefits from using Typescript to create a maintainable code base and productivity gains from using using Angular 2, but these are currently outweighed by the negatives.
Ionic 1 is still more productive for me and I will be continuing to use it in the near future.
As always, this is just my opinion. If I am missing something obvious, or have got this horribly wrong, please correct me in the comments below….