Become a fan of Slashdot on Facebook

 



Forgot your password?
typodupeerror
×
Google Microsoft Open Source Programming

Google's New Angular 2.0 Isn't Compatible With Angular 1 (techcrunch.com) 121

An anonymous Slashdot reader quotes TechCrunch: When Google announced Angular 2 in 2014, it created quite a stir in the web development community because this new version wasn't just an update, but instead a complete rewrite that wasn't compatible with the older version... "Angular 1 first solved the problem of how to develop for an emerging web," the company writes... "Six years later, the challenges faced by today's application developers, and the sophistication of the devices that applications must support, have both changed immensely."
Announcing the final release version of Angular 2 last week, Google thanked the open source community, saying "We are grateful to the large number of contributors who dedicated time to submitting pull requests, issues, and repro cases, who discussed and debated design decisions, and validated (and pushed back on) our RCs." TechCrunch writes that Google's Angular team "now also recommends that developers use TypeScript to write their apps...a Microsoft-developed superset of JavaScript that adds features like static typing and class-based object-oriented programming."
This discussion has been archived. No new comments can be posted.

Google's New Angular 2.0 Isn't Compatible With Angular 1

Comments Filter:
  • duh.... (Score:5, Interesting)

    by theNetImp ( 190602 ) on Monday September 19, 2016 @02:37AM (#52915431)

    That's because it's a complete rewrite, and anyone who has been around for the last year who develops Angular already knew this.

    • Re:duh.... (Score:5, Funny)

      by K. S. Kyosuke ( 729550 ) on Monday September 19, 2016 @02:43AM (#52915433)
      Or, they're jealous of Swift 3.0.
    • can't mod you so just posting to concur. this is a non-story.

    • by Anonymous Coward

      announced in 2014 and known *THEN* to be incompatible... why is this "news" on /. in 2016? surely it wouldn't be front page material here til at least 2017 or 2018.

    • by Anonymous Coward

      Everything on the web is always a complete rewrite. It is like each year a bunch of new CS grads turn up who are hell bent on 'fixing the internet' by creating a new unifying platform. There is even a sort of cyclical way in which we go through imperative -> OO -> functional and back again as the magical way in which every app ever conceived could be written better. Same happens for design patterns, test strategies, and whatever is the latest model-view-whatever thing. My favorite is when scripting pr

      • Ok everyone, turn the crank one more time!

      • Web systems are reactive systems. Therefore, you have events which trigger functions/transformations wich modify data and returns an reply. This can best be realized with functional programming style and object types. But, yes, technology stacks go in circles instead forward. And with JavaScript it can cycle back. Using a duck typed language is a nightmare for software evolution. Fortunately, Google advices to use TypeScript which fixes this issue. Again.

    • It's a complete rewrite, and it uses a lot more *standards* like ES6 [babeljs.io] and Web Components. [webcomponents.org] Many of the changes in Angular 2 have been replacing Angular's own features with polyfills awaiting native browser support.

      Admittedly the new standards are, well, new and take some getting used to, but they add a lot of sorely needed improvements and in time developers will be glad Angular went this route rather than sticking with their old workarounds and proprietary implementations.

      • in time developers will be glad Angular went this route

        Many technologies have gone this route (breaking backwards compatibility to achieve "perfection"), and most have failed. Consider Perl 6, D 2, Python 3 (which is slowly working, but it's taken a very long time), KDE 4, Gnome 3 (slowly working, maybe). And those technologies don't move at the pace of the JavaScript ecosystem.

        Maybe since Google's backing this, it will ultimately succeed. Corporate backing seems to trump everything.

  • It wont ever be implemented as long as the previous is supported. Shoot my employer still supports IE 6 and would only still use it if MS didn't force change.

    I said the same comment on previous story with Swift. People never learn once something is etched it is the word of God and is almost impossible to change

    • VB.net is heavily used in the Social Security Administration; their development policy forbids C# because they've standardized on VB.net as a codebase. Most other shops don't use VB.net because they've left VB.

      Python 3 is the current standard, used in most new modules, new programs, up-to-date versions of most core distribution utilities written in Python, and in academic works (all books which use Python as a reference language now use Python 3).

      Perl is garbage, and anyone who uses Perl is stuck in t

      • by Junta ( 36770 )

        That's an overly rosy picture of Python 3. Install most linux distros and run 'python'. Odds are overwhelming that it will be python 2.

        There are plenty of modules that *still* are python 2 only. Most are developed to work with both python 2 and 3. Very very few are python 3 only.

        Now it's not as bad as angular 1 -> 2, it's *generally* not too terrible to accomodate both python 2 and 3 in the same codebase. You only get to pulling your hair out if you do a lot with binary data, and even then it's not

        • Install most linux distros and run 'python'. Odds are overwhelming that it will be python 2.

          But at least on UNIX and Linux, you don't have the problem where the part of the filename after the last period determines which interpreter is used. Instead, you have the executable bit, which causes the OS to read the first line of the file to find the interpreter:

          #!/usr/bin/env python3

          This means use the env program and have it search the PATH for an interpreter called python3.

          One reason Python 3.0 through 3.2 didn't gain popularity so fast is that on Windows, .py was still associated to Python 2. It to

          • by Junta ( 36770 )

            Also, prior to 3.3, unicode strings couldn't be written in a python 2/3 agnostic way. Of course dealing with binary data as strings is a pain in 2/3 agnostic code still, but I can't see personally how they could have done it better than they did.

            In any event, the fact that there is discomfort changing the 'python' to be a python 3 verifies that things aren't exactly rosy. If there *were* no mess, there wouldn't be so much fretting about concurrent installs and python3 and python2.

            As a python developer in

        • I mean, Ubuntu's tools are #!/usr/bin/python3, and portage is python3-based. Some distros don't even come with python2, but the majority still do seem to have python2.7 as the default python--probably because /bin/env python has always been python2.7, and python3 is now referenced as python3.

          That is to say: most .py scripts targeting python 3 look for an executable called "python3", because most .py scripts targeting python2 look for an executable called "python". Unless you can rewrite all existing Py

      • No lol. For example [hynek.me]:

        Looking at the PyPI download statistics1, the Python 3 situation seems gloomy: all Python 3 versions together are about as popular as Python 2.6 that nobody should use anymore.......Python 2.7 still growing.

        Your VB.net idea is also off, I know several shops who use it (no idea why)

        • The assertion was VB.NET didn't gain popularity because people stuck with VB. I asserted most shops don't use VB.NET because they no longer use VB; that is: the shops that use VB.NET are irrelevant for this conversation mainly because the supposed shops sticking to VB6 ... aren't. Who is still using VB6?
    • It wont ever be implemented as long as the previous is supported. Shoot my employer still supports IE 6 and would only still use it if MS didn't force change.

      I said the same comment on previous story with Swift. People never learn once something is etched it is the word of God and is almost impossible to change

      A fundamental difference between regular business people, and computery people. They don't want to rework everything, and we'll rework everything because of because.

      • by mbkennel ( 97636 )
        | A fundamental difference between regular business people, and computery people. They don't want to rework everything, and we'll rework everything because of because.

        They don't want to rework everything (in the technology), because their career success depends on advancing the business. In the areas that they work on and are part of their career evaluation, there is plenty of churn in initiatives, reorganizations, and management styles and 'paradigms'.

        The technologists have the same problem doing excessive
  • typescript adds "class-based object-oriented programming".

    Lie.

    "Classes" existed already as prototypes, and with ES6 you can create those prototypes with your favorite "class" definition.

    I'll never be using typescript so I'll never be using angular2. As much as I loved working with Angular1, I'll instead move to reactjs [github.io].

    • by cen1 ( 2915315 )
      I might use Angular 2 but I definitely won't be using TypeScript, ES6 all the way.
    • by jblues ( 1703158 )
      What about aurelia.io? The way it was described to me was "the smart people from the angular team left and formed aurelia". Haven't tried it yet myself.
      • I used Angular 1 for two years, the glimpses I had of A2 were scary! Then I read that Rob had left to start a new framework, and he made it to 1.0 before A2 did I love it, I've used it for 3 projects now and it's so sweet! Clean as can be and ES6 thru and thru. They even give you app skeletons that work with webpack so that your production builds are done without you having to do more than switch from: npm start to: npm run build:prod https://github.com/aurelia/ske... [github.com] They also hook up babel for you,
    • Angular 2 works with JavaScript. You don't have to switch to TypeScript to use it. There's even a tutorial for Angular 2 with JavaScript on the Angular site.

      Your decision making process would be better if your opinions had a better factual basis. On the other hand, this is Slashdot and facts don't count for much around here. You fit right in.

  • by Chrisq ( 894406 ) on Monday September 19, 2016 @03:20AM (#52915513)

    When Google announced Angular 2 in 2014, it created quite a stir in the web development community because this new version wasn't just an update, but instead a complete rewrite that wasn't compatible with the older version

    Such a stir that it was noticed by Slashdot in 2016

    • Considering that Slashcode is scheduled to upgrade to Angular 1.0 in 2027, some forward thinking is warranted here, wouldn't you say?
    • by jrumney ( 197329 ) on Monday September 19, 2016 @04:27AM (#52915653)
      It is a new Slashdot new policy of being fair and balanced. An Emacs story has to be followed immediately by a similar but weeks old VIM story, and a Swift story has to be followed immediately by a similar but years old Angular story.
  • by Anonymous Coward

    Google has taken a community-hostile position to destroy the future value of all apps unfortunate enough to have selected Google as an honorable vendor and adopted Angular as a key technology.

    For their troubles, adopters of Angular have seen their investments discarded, and told to rewrite their apps so Google can make more money.

    F that.

    • They don't make any money off of Angular... it's completely [github.com] open-source [github.com].

    • This is situation normal for Google coders. They have really good in-house refactoring tools and absolutely no clue about API design. As such, every iteration of every Google product involves massive code refactorings to fix poor API design choices in the previous one, which has little impact in house because the migration is largely automated.
    • Yes well. This is why we don't use C++ or anything else that tries to not break compatibility. Hilarious artifacts of the past.
  • either way, it's not with compatible to compete with React anyway
  • Wot? (Score:2, Interesting)

    by dohzer ( 867770 )

    What is Angluar?

    • A mistype of the word "Angular"?

      Any half competent person in front end web development knows what it is, if you're not in that segment of the software development industry, then it is likely that it is of absolutely no interest to you, in which case feel free to move onto the next story.

      If you're interested in making yourself more generally knowledgeable and finding out more about Angular, Google it, assuming you know what Google is.
    • It's a MVCish javascript framework. It's main claim to fame is data-binding. You can write all your HTML and decorate it, and use minimal markup to bind data to elements. Then you can do all the computation in abstract models, and the frontend is automatically updated as data changes. Its nifty, but its more for web-apps than websites.

    • Do you really want me to point you to Pythagoras and Euclid?
      Here you go ...
      Euclid: https://en.wikipedia.org/wiki/... [wikipedia.org]
      Pythagoras: https://en.wikipedia.org/wiki/... [wikipedia.org]
      Of course there are more in depth considerations about angulars ... e.g. momentum, probably by Newton ...

  • When you jump onto the newest technology for development there is always a risk that it will die out or be rebooted in a new version.
    The problem software development process needs a period of wide usage for people to find where the pain points are. Sometimes those pain parts are part of the root code as they were at the time considered an acceptable trade off, only to later realize it is a big problem.

    If you are learning or playing with the technology rusing v1 is good. If you are trying to make a profess

  • Is this yet another clickbait title? The real news here is that final release is out but the title is about compatibility which was known for 2 years? What the hell!
    • by Luthair ( 847766 )
      I suspect you'll find most people wouldn't have known about it, I didn't until earlier this year and have been using Angular 1 for an enterprise application for 5-years. I can't see us re-writing the application so we'll be sticking with 1.x, and if we do eventually then why would we choose Angular 2? Fool me once....
  • I've been aghast at the broad adoption of thick client JS frameworks on the open web and a growing open hostility towards progressive enhancement, as if it's somehow not possible to build a single page app without totally breaking everything that makes the web a great platform.

    There is a reasonable argument to be made that the vast majority of websites should not be using one of these, as the majority of these frameworks are incompatible with progressive enhancement and progressive enhancement is still the

    • by Ken D ( 100098 ) on Monday September 19, 2016 @05:44AM (#52915813)

      Where can I download this "progressive enhancement" framework that you speak of?

    • One web site I used to use apparently introduced Angular to its codebase.

      With it, there came a super-long CSS rule that says display: none to pretty much everything. Every single page is completely blank to me now. (I'm a NoScript user.)

      Here's the rule, at line 2248 (out of 2713) in angular-material.min.css:

      @media (min-width:1280px) and (max-width:1919px){.hide-gt-md:not(.show-gt-xs):not(.show-gt-sm):not(.show-gt-md):not(.show-lg):not(.show),.hide-gt-sm:not(.show-gt-xs):not(.show-gt-sm):not(.show-gt-md):not

      • Well, it seems I was wrong here. It was not that CSS rule that was at fault. It was the one on line 1155, called "ng-cloak". Apparently its inclusion "prevents flicker on page load", according to w3schools.

        The mistake I did is understandable when you are dealing with 308 KB of CSS minified to a single line. (The line numbers I mentioned came from manually line-breaking the file.)

    • For anything non-trivial, your argument is essentially, "Don't do any planning, ignore all architecting, and spend 90% of your time refactoring unnecessarily, all while creating endless bugs and breaking anything."

      For trivial, 15-line stop-gaps that are going to be thrown out for a real solution in 4 months, your argument is valid.

      • The argument that "my app is too complex for PE" is intuitive and popular, but the trouble here is people tend to project far more complexity on to their projects than is actually there. The vast majority of web applications are simple CRUD with some UI polish, but the authors of many such apps think they're building some crazy complex thing that's incompatible with PE. Rarely is that ever the case. I worked on some of the most complex web applications ever written in Silicon Valley and I can say from perso

        • Complexity is a matter of how many moving parts you have and how they fit together. If you have non-trivial pieces that someone else built, it's worth eliminating the risk of creating new bugs by using something that's been tested widely.

          If your application is 6 megabytes of code, or 0.8 megabytes and some libraries, maybe you should bring in the external code. This is the same reason we have GTK, libsockets, and OpenSSL instead of a bunch of custom implementations of just the bits you need.

    • My solution to this problem is to convert dynamic websites to static websites. Script kiddies hate static websites as there is nothing to hack into.
  • by Viol8 ( 599362 ) on Monday September 19, 2016 @05:52AM (#52915831) Homepage

    .. are partly the constantly mutating APIs! Irony, much??

  • This is the last version of Angular. A year from now Google will drop it in favor of Jula 1. Angular was soooo boring. Hope you didn't put much effort into learning it!
  • by ilsaloving ( 1534307 ) on Monday September 19, 2016 @10:07AM (#52916739)

    Angular 1 first solved the problem of how to develop for an emerging web,"

    *What* "emerging web"? The web has been around for decades now. The only thing that's changed is the fact that there are now even more unnecessary layers of javascript on top of everything than there was before.

    "Six years later, the challenges faced by today's application developers, and the sophistication of the devices that applications must support, have both changed immensely."

    Yeah, because asshats like you keep reinventing the wheel and forcing everyone to relearn what they already knew, throwing away hard won lessons in the process, and resulting in poorer quality code overall because no particular language or API seems to last long enough anymore for people to become proficient enough in it to deal with all the inevitable bugs.

    Why even call it Angular if it's completely incompatible with the previous version?

    • *What* "emerging web"? The web has been around for decades now.
      I beg to differ!

      Last night, very early, I opened my kitchen window. To let cold air in.
      This morning, relatively late, I went to the bath, but closed the kitchen window first.

      The Web was not there the night before!!!! I swear!!!

      (As a side note, it was impressive that the single spider thread going at least 2m through the room caused enough physical force on my forearm that I noticed it ... and even moving like 50cm did not break it ... it still w

  • Developers have been WAY too eager to jump onto the latest development fad. Google has been well-known for creating products and dropping them. Why should they behave differently when it comes to open source projects?

    Microsoft may have its own issues, but at least they stay committed to preserving (most) legacy code. You can still run a lot of c. 1985 software on today's Windows machines! As a .NET developer, I'm pretty sure my source code is still going to work when Version 5 comes out.

    • Uh..fanboy much? Did we forget silverlight? (Yes, I know they've committed to security bug fixes until 2021, but still...)

      This is why commercial software is just plain bad -- we buy because we hope to get something near perfect and avoid this type of stuff. But alas, free or commercial, developers have always had the same struggles with an ever-shifting landscape. At very least with FOSS you can take up maintenance of a library yourself if you have to. And a relatively small effort to fix a critical bug or

      • I'd say it is warranted to credit MS with making serious effort to maintain backward compatibility. A win32 binary (not driver) which if implemented to spec on Windows XP w/ VC++6.0 probably still runs in Windows 10, at least until they kill off win32 in favor of UWP. Win32 and COM's fanatical (and much appreciated) adherence to ABI versioning means most software packages will run for a very long time via MS's compatibility shims. How many commercial or FOSS projects can you think of which provide those kin
      • Perhaps you didn't realize that .NET has itself become a FOSS project, as has Visual Studio. And wow, support until 2021 for a product that never went anywhere. That's pretty solid commitment!

        I've written software for Mac, Linux, Unix, and Windows, and other platforms you've probably never heard of. I've written for Borland OWL, MFC, ATL, .ASP (old and new), MVC, jQuery, Bootstrap, and Angular. I've seen it all, and nobody creates developer tools and platforms like Microsoft. I guess you could say I'm

        • Okay, I relent and agree. MS actually is pretty f-ing amazing in terms of supporting stuff for the long haul. Sorry, Bill. I apologize. .NET is still a PITA that I don't enjoy coding in though.

  • Flipping the major version number should be enough to communicate it is a breaking / not backwards compatible version.
  • Soon Angular will be as powerful as any decent web framework from 15 years ago.

    function service(name, constructor) {
       return factory(name, ['$injector', function($injector) {
           return $injector.instantiate(constructor);
       }]);
    }

    Such elegance.

If all else fails, lower your standards.

Working...