Very helpful, Sander! And thanks to Mo and others as well. Any and all suggestions are helpful as I get my head around my opinions on this, which, in turn, will help me with the rationale for others.
If you tell a seasoned DP-type today that you are working with Angular, my experience is that they are as likely to give condolences as to ask what it is. For the sake of folks making decisions today, I really wish the story regarding Angular 2 were different. Even if Angular 1 and 2 can work side-by-side, that is a migration strategy, not a long-term goal if 1 will be at EOL, replaced by completely different coding approaches and terminology before it even reaches version 2. To start writing code that will be even more obsolete once you write it than is typical, is a tough business case. The start-again strategy of Angular 2 does not bode well if desiring a trustee who respects their users (end-developers), nor does it make it sound like the current Angular is a good way to write software, given that it is being completely replaced. We would like to choose a strategy where over time the developers of libraries and frameworks have a good understanding that there are line-of-business developers and software companies too, where they need to have a good story about their architecture at the point of their deployment. If the tools they used to write their software are obsolete at the point they deploy, that's a really bad story for their customers, even if deployed as SaaS. I am sensing that with my question here, I also have a bit of a plea. It might include things like this: 1. Write your libraries however you choose, but do not tell us nor even lead us into writing with TS given that it would make little sense for us to start doing that right now. I understand that TS is a superset, but it results in significantly different patterns for developers using it. Show us how to continue writing code with the language we are using and how we can make simple changes to get us to the new approach. Telling us that both the entire framework is changing and that the language is getting a big overhaul too, showing examples that look cryptic even to folks currently using Angular is just too much. In some cases, you are telling folks who are currently migrating from procedural-ish to functional-ish that they will then almost immediately need to migrate to oo-ish. It might even be the case that the reason they never moved to Java or C# is that those languages did not fit as well as full-stack JavaScript does for their shops. In other words, you are eliminating the "full-stack JavaScript" rationale for using Angular, at least from the way it is being marketed. 2. Provide some videos to balance the current ones I've watched (e.g. from ng conferences) that my clients, seasoned software professionals, are unlikely to interpret this way: "Well, unless the current Angular version really sucks to the extent that we should not use it, it sounds like a bunch of technically-smart but otherwise overly-ignorant punks who decided to throw everything out and start new for their own sense of elegance and perfection rather than having any understanding of their user base. Why would we want to adopt a product line that acts like this?" How do I answer that question?!! The kicker was that the UI-router is so much better than ng-router that I can think of no reason that Angular 2.0 could not have adopted it. Why re-invent THAT wheel. Sheesh! 3. How do long-term software companies do such projects in a way that would attract "my kind" who are working with line-of-business apps? There are many strategies, no doubt, but one that has worked is to put new names on new products, even new product lines without having or giving a sense of the writing on the wall. A company can have Gap stores even if they have Old Navy too. They keep going with the existing product line as long as makes sense and they keep promoting their existing product line while the other is being developed and deployed under a completely different name. They encourage and invest in the community around their current product line and start a new community that anticipates their new product line without deflating existing customers. If the new, emerging framework were called Elephant 1.0, and Angular 2.0 were coming out as a more solid and faster version of Angular 1, what a hugely different story I would have for my clients! Not only would Angular 1 be seen as a good choice, but we could do a tiny upgrade to Angular 2 and get some significant added benefits. Maybe someday there would be terrific tools to migrate from Angular to Elephant should we see a need, but we would not have to think about that any time in the foreseeable future. It would be terrific if the Angular folks would market Angular so that developers want to jump on the bandwagon NOW to do the same thing I'm likely to do (i.e. Angular 1), not just next year with 2.0. You were there! Developers were turning toward Angular in droves, in numbers far beyond Ember and others before it, but I sense little such excitement for it now, period. Did you blow it and turn the user base sour? If you don't think so, then give us a great story that we can share with our clients and their end-customers. I welcome stories from existing customers too. I have a bit of a difficult sell to do (to sell myself, for starters). Apologies for grabbing a soap box, but we have some decisions to make, and it could be so much easier to present a rationale, so I thought I would do a little bit of begging for help with that just in case there are ears to hear here. Your comments here, Sander, are a helpful start. Thanks! --dawn On Sunday, May 31, 2015 at 10:51:20 PM UTC-5, Sander Elias wrote: > > Hi Dawn, > > Short version: go for option B. But keep in mind that you might need to > replace the router in the future. (or not, UI-router will probably get NG2 > support too!). > Let me explain to you why this is your best option. As you said, you are > on a tight budget/schedule. So converting to anything else is basically out > of the question. React also has an learning curve, and is not as complete > as Angular 1.x, so you also need to learn some complementary stuff. > > Angular 2 still has a long road ahead for release, and it is current state > is barely alpha, so don't use this, as you need your app in production way > before ng2 will become usable. > *However, you don't need a huge conversion once 2.0 comes out*. When 2.0 > becomes available, you can can slowly mix in the new 2.0 features into your > existing 1.x app. The componentRouter(and probably a future UI-router too) > will support mixing angular 1.x and 2.x in the same app. This means, that > whatever you build now, you can keep on using it. As long as it is needed. > When a part need to be refactored, you can choose to rewrite it to an NG2 > part, or, just leave it as is. > > Then there is the conversion part. I won't lie to you, there is work that > needs to be done to convert between ng1 and ng2. However, if you now work > following the John Papa's styleguide > <https://github.com/johnpapa/angular-styleguide>, the conversion will not > be that hard. After all, it all stays JavaScript. You can keep on using the > JavaScript you know. > > Then there is this other thing. TypeScript. Typescript isn't another > language. Everything you write now, is valid TS. However, you will get some > extra features a bit sooner as they will arrive in native JS. But from the > point of writing an app, you might keep on using JS as you do now. Nothing > in Angular 2, or Typescript, will be unavailable in plain JS. > That NG2 will be build in TS does not mean you have to use it. Or that you > even need to understand it for that matter. Consider this, you have a phone > in your pocket right? You now how to operate that, right again?. Now do you > fully understand the building process of that phone? Can you build your > own? Does that make your phone less valuable/usable? Does that mean you > can't build an app that does work on that phone? > > Does this help you a bit? > Regards > Sander > > -- You received this message because you are subscribed to the Google Groups "AngularJS" group. To unsubscribe from this group and stop receiving emails from it, send an email to angular+unsubscr...@googlegroups.com. To post to this group, send email to angular@googlegroups.com. Visit this group at http://groups.google.com/group/angular. For more options, visit https://groups.google.com/d/optout.