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.

Reply via email to