[HN Gopher] Google: Angular and Wiz Are Merging
       ___________________________________________________________________
        
       Google: Angular and Wiz Are Merging
        
       Author : tosh
       Score  : 81 points
       Date   : 2024-03-21 11:35 UTC (11 hours ago)
        
 (HTM) web link (twitter.com)
 (TXT) w3m dump (twitter.com)
        
       | TechTechTech wrote:
       | Anyone has any non video source with more info on this?
        
         | mgechev wrote:
         | We're going to share a blog post with more details in the next
         | couple of days.
        
       | ts330 wrote:
       | Exciting? Possibly for those involved.
       | 
       | I hate to say this, as I'm generally optimistic towards most
       | developments like this, but over the last decade I've become so
       | apathetic towards anything and everything from Google. They've
       | lost so much mindshare and credibility. Their org structure leads
       | to stagnation left, right and centre.
       | 
       | I'd rather tolerate the poor status quo in React land than take
       | any sort of bet on Google getting something "newish" right.
       | 
       | It wasn't always like this.
        
         | kilroy123 wrote:
         | I agree as someone who has spent the past decade working in
         | Angular all day and then React. And I don't love React.
        
         | vasco wrote:
         | Google was too innovative and successful to use external
         | consultants and so the consultants joined the company as
         | employees and did it from the inside!
        
           | pavlov wrote:
           | Google today feels like Nokia of the mid-2000s. Victim of its
           | own massive success, taken over by internal politics and
           | divisions. Employs lots of smart people who figured out key
           | ideas for next-gen tech early, but the organization is unable
           | to take any of those innovations to market. And so it's just
           | stuck milking its cash cow.
           | 
           | Google's AI strategy is as clear as Nokia's smartphone
           | software strategy was.
        
             | ta988 wrote:
             | They took some of the best brains, spoiled them with high
             | salaries and glory and took their best years to make them
             | work on dumb problems and projects that were cancelled at
             | various stages of their life.
        
               | adrianmsmith wrote:
               | Those best brains did produce lots of interesting things,
               | back in the day (not recently). The Google search
               | algorithm, the ads auctioning system, Gmail, Golang,
               | certain parts of Google Cloud like BigQuery (create
               | relational tables, just stuff data in there, just scales
               | by itself without "provisioning", write SQL queries
               | including joins e.g. over hundreds of billions of
               | rows...)
        
               | unclebucknasty wrote:
               | Don't forget Google Wave.
               | 
               | May 2010 - August 2010.
               | 
               | https://en.m.wikipedia.org/wiki/Google_Wave
        
         | pookha wrote:
         | It was mostly always like this. You might go back further, but
         | since 2008 I've been dealing with google snake-oil. They sold a
         | customer I worked with a "search appliance" in 2007 that was
         | more or less a paperweight. They packaged up "commodity
         | hardware" in a fancy yellow google case and overcharged this
         | military unit out the ass for what was a half-assed map-reduce
         | algorithm with no security and no means of compartmentalizing
         | the data that was stored on the appliance. This was years
         | before the elk-stack. I can still distinctly remember the
         | commander - an old special forces guy - telling the google-rep
         | that he wanted to do a Roshambo game (Cartman nut kicking
         | contest). A year or so later I cracked open their case and saw
         | that they'd essentially packaged up an old dell poweredge 6K
         | series with slow magnetic drives (and raid-5 lol). Maybe that
         | fly's if you'd chained fifteen of these things into a cluster
         | but that's not how they sold them to their customers. Google is
         | a dishonest company filled with immoral lechers.
        
         | bheadmaster wrote:
         | Golang is one of the Google products that I consider
         | revolutionary in programming.
         | 
         | But then again, it may just be because they employed the
         | rockstars (Rob Pike, Ken Thomson, and Robert Griesemer) to work
         | on it.
         | 
         | I suppose it's less about the company, and more about who the
         | company chooses to work on the project.
        
           | kardianos wrote:
           | Exactly, but the Go team appears to have the exact opposite
           | mindset as Google product managers. They care about
           | maintaining a product and compatibility, without major API
           | revisions. They appear to care about first principle
           | engineering, not "let's make a new product!".
           | 
           | Okay, watching this video, and they just infantized their
           | audience "if someone makes you uncomfortable, come find a
           | staff" as if the conference goers aren't adults. That makes
           | me really uncomfortable that they think adults can't handle
           | themselves and work things out.
        
           | twelfthnight wrote:
           | I hear "revolutionary" claimed about languages like Rust,
           | Haskell and Zig, but rarely about Go. What about Golang is
           | revolutionary to you?
        
             | adrianmsmith wrote:
             | The way concurrency works is pretty unique amongst
             | mainstream languages.
             | 
             | Java has just copied some parts of how concurrency works in
             | Go, but that's nearly 20 years after Go was released.
             | 
             | It's extremely easy to start up code concurrently with "go
             | foo()". You can start up lots of such functions
             | concurrently, as it works in userspace. Like async code,
             | but no "colored functions" problem.
        
               | ildjarn wrote:
               | Colored functions is only a problem in JS
        
               | lokhura wrote:
               | And C#, Python, Rust...
        
               | ildjarn wrote:
               | You can de-color an async function by blocking.
        
               | bheadmaster wrote:
               | In most implementations, blocking in an async function
               | has unintended side effect of blocking all other async
               | function running on the same executor.
        
               | bheadmaster wrote:
               | And Python... And Rust... And C#...
        
               | superdisk wrote:
               | The concurrency model basically came from Erlang, which
               | in my opinion does it better.
        
               | pjmlp wrote:
               | Actually Java brought back the green threads model that
               | it had before Go came to be.
               | 
               | The difference is that now red and green threads are
               | exposed at the API level, and not an implementation
               | detail.
               | 
               | Hardly copying Go.
        
               | bzzzt wrote:
               | > but that's nearly 20 years after Go was released.
               | 
               | Go 1.0 was released in 2012.
        
               | neonsunset wrote:
               | Quoting "colored functions" is a problem of skill. It is
               | a tell of engineer's lack of understanding of
               | concurrency.
        
               | bheadmaster wrote:
               | Can you please elaborate why?
        
             | bheadmaster wrote:
             | There are several features that can be considered neat on
             | their own. Most of those features are probably derived from
             | other languages, but together they form a very powerful
             | language that simply takes away the pain that I feel using
             | other modern languages, such as C++, Python, Java and
             | NodeJS.
             | 
             | Here are a few on top of my head:
             | 
             | 1) CSP concepts embedded deeply into the language
             | (goroutines/channels/select) making concurrency easy to do
             | correctly
             | 
             | 2) Standard Library and Go toolchain providing everything
             | that most languages use third party libraries for
             | (formatting, testing, benchmarking, fuzzing, HTTP, crypto,
             | etc...)
             | 
             | 3) Compilation into a static binary that can just be copied
             | from machine to machine without any dependencies whatsoever
             | (even C struggles with that on Linux, due to glibc NSS
             | fiasco)
             | 
             | 4) Cross-compilation by changing two environment variables
             | 
             | 5) Minimalistic distribution system - just write `import
             | "github.com/person/repository"` - no need for packaging,
             | pom.xml, requirements.txt, package.json, etc.
             | 
             | 6) Interface-based modularity (structural typing), making
             | code reuse much easier than the usual OOP-style abstract-
             | class based modularity (nominal typing)
             | 
             | 7) Extremely fast compilation, which makes read-modify-run
             | development loop as fast as with interpreted languages
        
               | pjmlp wrote:
               | 1) Modula-2, Active Oberon, Erlang
               | 
               | 2) .NET, Java, Smalltalk, Common Lisp
               | 
               | 3) Any compiled language until the mid-1990's.
               | 
               | 4) Amsterdam Compilers Toolkit, 1980
               | 
               | 5) Until the repo changes, forbids distribution of binary
               | libraries
               | 
               | 6) Standard ML, Caml Light, OCaml, Haskell,...
               | 
               | 7) Turbo Pascal on CP/M, MS-DOS computers running at 7
               | MHz, with 640KB.
        
               | bheadmaster wrote:
               | If your post is intended to be a remark on how nothing in
               | Go is "revolutionary", please read the first paragraph of
               | my post, and notice how there isn't a single language in
               | your list which is in all 7 categories.
               | 
               | Additionally:
               | 
               | - Erlang does not implement CSP, it implements Actor
               | model
               | 
               | - Java does NOT have all the listed features included in
               | its default toolkit - hence the existence of Gradle,
               | Maven and all other packaging/testing/benchmarking
               | solutions
               | 
               | - The "until mid 1990's" is the keyword here - I'm
               | talking about modern languages and I explicitly pointed
               | that out
               | 
               | - ACT is not part of any language, it is an external tool
               | that may or may not be reliable, but definitely does not
               | have toolchain/standard library level of
               | quality/stability guarantee.
               | 
               | - "Until the repo changes" - packages can disappear from
               | any system, see leftpad incident
               | 
               | - "forbids distribution of binary libraries" - not true,
               | see [0]
               | 
               | [0] https://docs.google.com/document/d/1nr-
               | TQHw_er6GOQRsF6T43GGh...
               | 
               | ---
               | 
               | However, if I have misread your tone, and your post was
               | intended to be an informative list of languages Go was
               | inspired by, then thanks for the information. But some of
               | it is misleading or false.
        
               | pjmlp wrote:
               | My opinion on Go's "innovation" is well known on HN, and
               | gonuts back when I cared pre-1.0.
               | 
               | I could go over those points, one by one into detail,
               | including Russ Cox point of view on disabling binary
               | distribution, but not feeling motivated to press the
               | further the wound.
        
               | bheadmaster wrote:
               | I have no idea who you are nor do I care about internet
               | pseudocelebrities, sorry. Your opinions, to me, are just
               | words from a random stranger, whose merit is only insofar
               | as I can learn something new from them.
        
           | pjmlp wrote:
           | I fail to see in what sense.
           | 
           | It is basically a revamp from those rockstars previous
           | efforts (Limbo and Oberon based dialects).
        
         | Workaccount2 wrote:
         | Everyday that Sundar is still CEO leaves me more and more
         | bewildered. I cannot figure out how Brin and Page (who together
         | own voting majority) look at google of 2024 and say "Yup, this
         | is what we want Google to be".
        
           | lgleason wrote:
           | They have essentially retired and are just enjoying the money
           | they made from it.
        
           | agotterer wrote:
           | The goal of a public company is to increase shareholder
           | value. Hard to argue that Sundar hasn't done that. Revenue
           | has increased 5 years straight. Market cap with the exception
           | of a dip during Covid is strong and is approaching its all
           | time high.
           | 
           | As a Goolgle user and long time admirer, there have certainly
           | been some disappointments and mistakes over the years. But
           | there's also been some major accomplishments which people
           | sometimes overlook.
           | 
           | While still early, Waymo seems to be on the right trajectory
           | and may be a key player in autonomous vehicles. Let's not
           | forget Googles work on transformers, which is heavily
           | responsible for the current AI boom. That's just two that
           | come to mind, I'm sure there are others. Maybe these were
           | started before Sundar, but he's been CEO for almost 9 years
           | now. So he gets credit.
           | 
           | Google may have some culture challenges to work through,
           | brain drain, and identity issues. But I don't think their
           | story is written just yet. With a giant stock pile of cash
           | they have plenty of time and resources to buy or figure their
           | way out of any perceived issues (if that's even what they
           | need to do).
           | 
           | Microsoft did it. And if you really want to have your mind
           | blown, go take a look at IBMs stock chart. I didn't expect to
           | see it approaching an all time high.
        
             | twelfthnight wrote:
             | What choice can you point to that has increased Google's
             | market cap? Google's search quality is deteriorating, Waymo
             | is yet to make a profit, GCP is struggling, "Attention is
             | all you need" was too early on to credit Sundar, and since
             | then Google's reputation is flagging due to embarrassing AI
             | models...
             | 
             | I think Google's market cap is increase _despite_ Sundar,
             | not because. That said, Google does have enough resources
             | to turn it around, I just don't think Sundar is the right
             | person to do it.
        
               | agotterer wrote:
               | GCP is struggling? Is that an opinion based on experience
               | or based on actual stats? Because GCP revenue has
               | increased every year since 2017. AWS and Azure are
               | capturing more market share. But I'm not sure I consider
               | third place and $33B in revenue last year a struggle.[1]
               | 
               | > I just don't think Sundar is the right person to do it
               | 
               | That was sort of my point. Does Google need to be turned
               | around? All stock metrics and revenue metrics show that
               | they are doing well as a company.
               | 
               | Sure the AI model stuff was embarrassing. But it doesn't
               | seem to be having an impact on the value of the company.
               | Maybe goodwill was hurt. But if we've learned anything
               | from the Meta drama over the years, people will be quick
               | to forget about it. I don't think a few fixable and
               | public missteps like that will sink the company. Does
               | anyone outside of tech even know about it? It's possible
               | it's indicative of a larger internal issue thats brewing.
               | But it's not impacting the value of the company... yet at
               | least.
               | 
               | [1] https://www.statista.com/statistics/478176/google-
               | public-clo...
        
               | Workaccount2 wrote:
               | Google is in the familiar position where there numbers
               | are good, the charts are all pretty, but when you go put
               | your ear to the ground, you only hear sounds of trouble.
               | 
               | If google had proper leadership, the company would
               | _easily_ be worth twice it 's current value. _Easily_.
               | Instead we have a situation where raw capitalist inertia
               | is carrying the company forward, while active discussions
               | of the company are ridden with grievances and
               | frustrations. Grievances and frustrations in a market
               | where there are competitors that users can flee to. It 's
               | a bad spot to be in.
               | 
               | There is no reason Google shouldn't be the ones on the
               | cusp of releasing GPT-5 level LLMs. None. Instead however
               | they have a middling LLM that is scared to mention white
               | people. So back to the drawing board so they can work out
               | the racial kinks, while the competition blasts past them.
               | 
               | Google needs big company technology focused leadership 5
               | years ago. But tomorrow would be good too.
        
               | agotterer wrote:
               | You make a good point about the possibility that they
               | could be even more successful with stronger leadership
               | and product focus. I can't argue with that and don't
               | disagree.
               | 
               | My points were focused on the fact that the data just
               | doesn't currently show Google failing or declining as a
               | company.
               | 
               | It's going to be really interesting to see how the Google
               | AI strategy plays out. I agree that they could have
               | absolutely been the leader. They had the money,
               | resources, and ingredients to make it happen.
               | 
               | I believe that AI is a threat to their current business
               | model. How much did that influence their investment and
               | focus on it?
        
           | twelfthnight wrote:
           | Imagine having the talent and money of Google and
           | accomplishing essentially nothing in ten years, but
           | collecting 200 million a year.
        
       | easton wrote:
       | For people who didn't know: Wiz is apparently a internal
       | framework that Google uses for their apps that wasn't ever open
       | sourced (at least, not completely, based on a quick search).
       | 
       | At least they'll be dogfooding Angular now hopefully.
        
         | throwaway290 wrote:
         | I thought some teams at Google were dogfooding Angular for many
         | years now?
        
           | nness wrote:
           | I can say from experience that Google requires third-parties
           | use Angular when they are developing experiences on behalf of
           | Google -- i.e. through their agency partners.
        
           | brianzelip wrote:
           | Lots have been [0,1]
           | 
           | 0, https://changelog.com/jsparty/310
           | 
           | 1, https://changelog.com/jsparty/312
        
             | throwaway290 wrote:
             | Yeah. I distinctly remember Google using it itself a big
             | motivator to go with AngularJS and then Angular in side
             | projects, so I was not wrong...
        
           | danpalmer wrote:
           | Basically all web frontends I've seen here are either Angular
           | or Wiz, depending on latency requirements, or they're some
           | legacy technology that is being moved to Angular or Wiz.
        
         | jpalomaki wrote:
         | From the presentation: Angular is for "enterprise" apps. Wiz is
         | for latency sensitive consumer apps (Google Search, Google
         | Meet, Photos). They also mentioned Wiz is tightly integrated
         | with the Google tech stack.
        
         | esprehn wrote:
         | Google uses Angular quite a lot already. Pretty much all
         | internal tools (bug tracker, code review, release tooling etc)
         | is built with it. There's also a number of public facing apps
         | like GCP Cloud Console and the Gemini web app.
         | 
         | Wiz has historically favored performance over ergonomics in the
         | extreme. None of it is open source, and to be honest even if it
         | was it's unlikely most people would want to use the mix of
         | Java+Soy+JS+jQuery-ish API.
         | 
         | Interestingly both frameworks are around the same age (if you
         | count Angular 1.0), but Wiz was kept internal.
         | 
         | What Sarah is referring to is both a big shift in Wiz to get
         | modern ergonomics and a shift in the framework strategy to
         | avoid having two entirely separate frameworks.
        
           | skybrian wrote:
           | There is also AngularDart, which is a fork. But it's been a
           | while since I left Google and I don't know how much it's used
           | nowadays.
        
       | nvahalik wrote:
       | Angular I know... but what the heck is Wiz?
        
         | jitl wrote:
         | It's the internal framework they use for Search and YouTube.
         | I've heard of it from Xooglers but besides them I don't think
         | it's well known.
        
         | brabel wrote:
         | Apparently another Google web framework... I had never heard of
         | it, but I know this company called Wiz and thought it may be
         | related for a second: https://www.wiz.io/
        
           | ljoshua wrote:
           | No relation.
        
       | jgalt212 wrote:
       | Can anyone recommend a good resource discussing the interplay
       | between highly optimized js bundles and code caching? i.e. it
       | seems to be me that one would benefit by serving the same js blob
       | on most / all pages even if it includes unused code because then
       | you pretty much always utilize the code cache.
        
         | rimunroe wrote:
         | Maybe I'm misunderstanding your question but why would you want
         | a single bundle vs multiple bundles?
         | 
         | If you have a single blob you have to invalidate the whole
         | thing when it updates. If you split your code out into multiple
         | bundles you can invalidate only the bundles which contain
         | changes. As far as I know this has been standard practice for
         | the last decade at least.
        
           | iainmerrick wrote:
           | I think it's a good question, and the answer isn't quite as
           | straightforward as you suggest.
           | 
           | The advantage of bundling is that you can do cross-module
           | minification and dead-strip unused code.
           | 
           | The extreme version of "multiple bundles" would be to minify
           | each JS module individually, but don't bundle them. That
           | would clearly miss a lot of size optimisations. (And as I
           | understand it, this is how Deno's new package manager is
           | meant to work, which makes me a bit suspicious.)
           | 
           | The opposite extreme of one bundle for the entire app is
           | great for optimisation, but as you say, then you have to
           | invalidate the whole thing if anything changes.
           | 
           | One bundle per route is tempting but then common code gets
           | duplicated.
           | 
           | Vite's default behavior (via Rollup) is to make one bundle
           | per common module. That works pretty well but I've found the
           | number of output bundles can explode in surprising ways. In a
           | recent project I manually split the code into chunks and
           | loaded them via dynamic import() and that worked pretty well
           | -- good balance of size optimisation, caching and manual
           | control.
        
             | jgalt212 wrote:
             | This is probably some big hairy statistical optimization
             | problem. 100 bundles across 1,000 routes. How to you pack
             | up the 100 bundles into n (n<100) larger bundles such that
             | average time to interactive is smallest. Of course, you get
             | different answers depending on first time vs returning site
             | visitors.
        
             | rimunroe wrote:
             | Thanks for the thorough reply!
             | 
             | I confess I wasn't thinking about a particular build tool.
             | My recent experience has been with Vite, where I took a
             | similar approach to what you describe, but haven't had to
             | dig deep into bundle performance because that's not a
             | bottleneck for our application. The last time I did deeper
             | work on the subject was years ago with Webpack.
             | 
             | I thought Webpack at least did dead-code elimination before
             | splitting things into chunks. If I'm reading this random
             | GitHub issue[1] right (and the asker is also right),
             | Webpack does partially behave as I expected, but the pre-
             | chunking optimization pass occurs before things like
             | constant expression evaluation.
             | 
             | [1] https://github.com/webpack/webpack/issues/16672
        
           | jgalt212 wrote:
           | We have a single bundle of JavaScript with all our helper
           | functions, then a page specific bundle that uses some of the
           | helper functions. The same helper function bundle is
           | delivered to all pages--not a different tree-shaken version
           | delivered to each page that only has the functions used by
           | that page. One helper function bundle is bigger, but since
           | every page gets it, this bundle is code cached.
        
         | chuckadams wrote:
         | Bundling everything together and letting it be cached is how
         | most single-page apps do it, yes. If the code isn't used by
         | anything at all, it gets removed from the bundle entirely: that
         | process is called "tree shaking". Modern frameworks like Nuxt
         | also tend to do something called "code splitting": for example,
         | I have a Nuxt app that contains, among others, pages like
         | /vehicles, /drivers, and /fuel. Instead of creating a single
         | giant js bundle, Nuxt creates several, including a file for
         | code that's used by _just_ the  /vehicles page, a separate
         | chunk for code that's only for the /drivers page, and so on,
         | along with common chunks that are used by all of them. Script
         | tags are then generated for each of these three pages so that
         | when you hit one of the pages, you only get enough of the code
         | for that page, and the rest is loaded when you navigate to
         | another page. It's still a single-page app, but with multiple
         | entry points, each one optimized to initially load only what
         | that entry point needs, the rest being dynamically imported
         | when needed. Each bundle's filename contains a hash of its
         | content, so they can be cached forever (that does have
         | consequences when upgrading though: a typical SPA has to do
         | some some version checking and self-updating on its own, as the
         | browser will otherwise be eager to serve stale code)
         | 
         | In dev though, one usually doesn't even bundle, and runs the
         | app on a dev server that dynamically compiles and serves
         | individual modules. When I initially load the app off the dev
         | server, my browser makes close to a thousand requests for all
         | those modules, but pipelining and caching make it all quite
         | zippy regardless. Bundling is still faster and uses less
         | bandwidth though, so for production one typically does still
         | build a bundle (or several code-split ones).
         | 
         | There's gory details at https://webpack.js.org/guides/code-
         | splitting/ (for webpack; other bundlers like Rollup work
         | similarly) but frameworks like Next/Nuxt do it automatically as
         | part of the build process.
        
       | hiddencost wrote:
       | I hate wiz. But maybe having a public facing user base will force
       | basic usability.
        
         | bossyTeacher wrote:
         | This is not Wiz the web builder product you know about. It's an
         | internal framework used by Google.
        
       | ecmascript wrote:
       | I hate Angular with a passion. It's easily the most verbose,
       | overly complex front end framework I've ever used which just
       | takes the fun out of building web apps and make it a pure pain. I
       | would rather work on a farm and shovel pig shit all day than work
       | in Angular again.
       | 
       | My last job forced Angular on me, I quit after a while (not
       | because of solely that reason) but I told them Angular was a bad
       | choice and they chose to overrule me. Pretty funny now, they will
       | have to endure the pain of migrating a large app which makes me
       | feel good.
       | 
       | Make stupid choices, win stupid prizes.
        
         | approxim8ion wrote:
         | To offer a differing experience, I've been working in Angular
         | for a couple of years now and personally like it quite a bit. I
         | don't like frontend frameworks in general, but given the choice
         | I prefer Angular over React.
        
         | usui wrote:
         | I seldom see this opinion but I'm glad to read it. People
         | complain about JSX on the React side but what on Earth am I
         | reading when I see the templating language that Angular came up
         | with? ngIf, ngBlah. Much worse than JSX, which is subordinate
         | to JavaScript code, not equal. I also have been forced to use
         | Angular at the workplace and it killed any fun making web apps
         | had. People say Angular is great for enterprise because it
         | removes the burden of deciding things, but this indicates an
         | organizational problem being solved technologically. In other
         | words: Never a good thing.
         | 
         | Similar conversation 10 months ago:
         | 
         | https://news.ycombinator.com/item?id=35811256
        
           | EMM_386 wrote:
           | > the templating language that Angular came up with? ngIf,
           | ngBlah
           | 
           | The new templating syntax is simply @if () @else () ... it
           | makes it much clearer to read in many cases.
           | 
           | I never had a problem with *ngIf as long as you are
           | controlling the visibility of one element. It became messy
           | when you needed "else" statements in there.
        
           | ecmascript wrote:
           | I didn't care so much about the syntax but rather the over
           | reliance on the subscriber pattern that you have to have like
           | a subscriber to even read something as fundamental as query
           | params. And the funny thing is that is will fire once and
           | then again when the query params is actually set. So you will
           | have an empty fire for when they are not yet set for some
           | strange reason, presumably from when the observer is created.
           | 
           | The problem with Angular, especially as the app grows is that
           | you will have many different subscribers that all listen on
           | the same state changes, then fire them again so you will have
           | code that just runs again and again and it's extremely hard
           | to have a mental model on how the system work and what code
           | runs when.
           | 
           | The code also easily gets super slow because you run
           | something, it affect state, then it triggers something else
           | that triggers something else that just happen to affect the
           | first state, whoops now you have a loop. Even if the loop
           | resolves, it's pretty much inevitable to get a loop sometimes
           | if the app is complex enough, at least in my experience
           | working with several other devs.
        
             | tashoecraft wrote:
             | Sounds more like a misunderstanding of the framework and
             | observables. The problem many faced with angular is they
             | chose not to learn observables, then got angry.
             | 
             | If you have different subscribers, all on the same state
             | change, you may not have chosen to use ShareReplay, or
             | filter, or bothered to use a tool like ngrx that has
             | memoized selectors.
             | 
             | The same problem you're complaining about is the same thing
             | people in the react community are complaining about because
             | they never bothered to understand useEffect, and now have
             | massive cascading updates.
             | 
             | There is a very good reason they chose to make everything a
             | subscriber, and it helps avoid pitfalls, because it doesn't
             | hide away the async nature of everything. Signals are just
             | a simpler way to understand and use that same async nature.
        
               | ecmascript wrote:
               | Well perhaps, but I think it's so overly complex and
               | verbose to the point that learning it and making sure
               | that everyone working on the project is on the same level
               | is hard or near to impossible.
               | 
               | I really tried to learn RxJS, I used a lot of different
               | methods like filter and what not but I still got into a
               | huge amount of issues but honestly a lot of that was
               | because angular was not really fit for the type of
               | application we were trying to build. Especially as we
               | relied heavily on query params for state. There were many
               | strange behaviors of Angular Router that I ran into
               | several times. It has some kind of own internal state and
               | fires updates in an unexpected way. I remember sitting
               | hours just to try to get the query params to update
               | correctly and I was not the only one having these kinds
               | of issues.
               | 
               | Even if I agree useEffect is unnecessary complex, it's
               | still far far away from being as complex as RxJS and
               | Angular. I remember I was trying to add some pipe service
               | or whatever it was called and it was near to impossible
               | to achieve what I wanted to do which would be trivial in
               | any other framework/vanilla JS (unfortunately I don't
               | remember what it was).
               | 
               | Then using third party stuff in Angular is a nightmare as
               | well. You have to deep dive into how it's being built to
               | make sure all the stuff is brought into the build step
               | etc. The configuration is a nightmare if you want to do
               | something special like making use of Angular Elements
               | that's barely documented at all.
               | 
               | I never got to use the Signals feature, because I left
               | the company before it got introduced into Angular.
        
               | datavirtue wrote:
               | That's the problem, you have to learn all that crap.
               | Excuse me, you have to hold it properly.
        
           | chuckadams wrote:
           | The template syntax of Angular isn't the problem most people
           | have with it. It's the boilerplate, the forced OOP paradigm,
           | having to work with observables even when they're not
           | appropriate (thus having to understand "hot" vs "cold"
           | observables), and up until recently, having to scatter each
           | component across three different files. And to top it off,
           | when the lack of expressivity is touted as a feature for
           | taming complexity, that points to a development culture that
           | doesn't sit well with me either.
        
             | tashoecraft wrote:
             | You have literally never had to scatter each component
             | across three files. From the first release of Angular 2,
             | you had "single file components", with template, styles and
             | js all in one file.
        
               | cout wrote:
               | You could do that with angularjs 1.5 components too. But
               | afaik it was/is not standard practice to embed html and
               | css inside your js, because many (most?) editors treat
               | html inside a string as a string instead of as html.
        
               | chuckadams wrote:
               | It does appear I was wrong about the "until recently"
               | bit: Angular still doesn't have a single-file component
               | format like Vue or Svelte. Of course you can stick
               | templates in string literals (and IDEA will even treat
               | them as angular templates). Just be prepared to escape
               | your quotes I guess. The official tutorial still uses
               | separate files, and the tooling defaults to them too.
               | 
               | Honestly the real shame is that IDEs don't present a more
               | integrated UI for separate files, and that on the other
               | hand in my Vue apps I still have to argue over the order
               | of script/template/style sections. I guess Angular at
               | least avoids that second problem.
        
               | usui wrote:
               | Isn't dealing with bare string literals for HTML-like
               | syntax a terrible developer experience?
        
               | chuckadams wrote:
               | Not as much in Jetbrains IDEs: it detects the string is
               | HTML and highlighting, formatting, and mode-specific
               | functionality all just work inside the string. In an
               | Angular source file, all the template properties like
               | "ng-if" autocomplete too, not sure if any code completion
               | inside props works though (it doesn't with the AngularJS
               | 1.x I just tested, but that's a different plugin that's
               | probably less capable). Have to be careful about escaping
               | the outermost quotes too if you use them in the template.
               | So not exactly terrible, but still a little bit janky.
        
         | EMM_386 wrote:
         | I've been working with large Angular projects for years and I
         | really enjoy the development experience.
         | 
         | Especially now with the new template syntax, signals, and other
         | recent changes.
        
           | tmjdev wrote:
           | Agreed. I think the earlier days of Angular put a bad taste
           | in many people's mouths. Many people who complain about
           | Angular being verbose seem to only have experience working on
           | smaller apps.
        
         | mattlondon wrote:
         | I suspect the migration effort will be fairly minimal. We
         | recently migrated a bunch of stuff in a large codebase to use
         | signals instead of observables and it was very straightforward.
         | Couple of days for a junior engineer levels of straightforward.
         | 
         | I personally find Angular to be fine - sure there is a learning
         | curve but that is true of anything (it's not like you can just
         | pickup modern react and make anything functional without having
         | to know how react works and spend ages picking libraries and
         | installing and learning how to use npm, spending 6 months in a
         | sanatorium getting therapy after realising you _have_ to use
         | npm for react and accept the shit show dumpster fire you are
         | letting yourself in for by relying on npm, and deciding if you
         | should use hooks or not and what about JS vs TS etc etc ). I
         | find JSX in React an uncomfortable compromise that throws out a
         | bunch of hard-learnt best practice in computer science (mixing
         | up and confusing presentation with business logic _in the same
         | file_ ). Separation of concerns is a good thing.
         | 
         | Angular will continue to be a solid choice for large
         | professional outfits that care about things like
         | maintainability, repeatable builds, dependency management,
         | readability etc etc. Having Angular be the framework that
         | powers websites like google.com and YouTube is just going to
         | make it even more of a "no-brainer" choice than it already is
         | if people are picking a web UI framework.
        
         | LispSporks22 wrote:
         | I've hated working on every Angular project I've worked on. No
         | matter the team, the experience level or complexity, it's
         | always been an absolute misery.
         | 
         | I cannot understand how it was invented/why it exists, how
         | smart people at Google convinced themselves to use it. I cannot
         | understand how they let it escape into the wild or even why
         | those not forced to use it, choose it.
         | 
         | I know I've begged before for this, and it's pointless, but
         | please if you're in the position to, please consider snuffing
         | it out and starting over.
        
           | datavirtue wrote:
           | It's worse, everyone jumped from Angular to the React
           | bandwagon. I use these types of things as litmus tests for if
           | I want to join a new company/team. No sense in cussing under
           | my breath all day every day. It's really hard to smile after
           | you just invented a new vulgar phrase to describe mangled
           | tech.
        
             | uxcolumbo wrote:
             | So React is equally bad in your view? If so why?
             | 
             | What do you use?
        
       | bruh2 wrote:
       | Off topic, but is there any chance to avoid sharing Twitter
       | links? Would rather not log in to the site
        
         | spamtarget wrote:
         | i'm with you, i used to use nitter with the firefox extension,
         | but it seems to be dying, is there any alternative?
        
           | pabs3 wrote:
           | There is https://twstalker.com/ but the site is very very
           | dodgy.
        
             | spamtarget wrote:
             | thanks, maybe that will become something later, but i am
             | looking for an browser extension that doing the work for me
        
               | pabs3 wrote:
               | Maybe one of these:
               | 
               | https://libredirect.github.io/
               | https://einaregilsson.com/redirector/
               | 
               | Note the site I linked is very dodgy, so probably not
               | trustworthy.
        
               | spamtarget wrote:
               | i checked them, but libredirect removed the twitter
               | option from the config menu (i guess because of the
               | changes in the twitter api) and the other just a generic
               | url to url redirect. but thanks anyway
        
               | pabs3 wrote:
               | You can easily add twstalker to the generic one.
        
         | tosh wrote:
         | In this case I spent 5 minutes trying to find a different
         | source but the tweet thread is the best I could find
         | unfortunately. There is no official blog post afaiu.
        
           | darklion wrote:
           | Why not post a direct link to the video that the tweet
           | embeds?
        
             | tosh wrote:
             | I have considered this as well but the video is a whole
             | keynote about various things. Was not an easy decision.
        
               | mdaniel wrote:
               | it's https://www.youtube.com/watch?v=nIBseTi6RVk&t=2270
               | right?
        
         | wepple wrote:
         | +1 rage against walled gardens
        
       | throwaway4good wrote:
       | I hear most Angular projects being stuck at around version 15 due
       | not being able to migrate away from Angular Material "Legacy".
        
         | tietjens wrote:
         | This seems to be true for many and happened to me. It is an
         | absolute nightmare trying to upgrade Material. Now I've
         | convinced my team to move to a different framework.
        
         | the_cramer wrote:
         | There are still issues with density not working well with some
         | angular Material controls. This forced us to do some hacky css
         | stuff. Some of the github issues have been open a long time
         | now...
        
         | peer2pay wrote:
         | You can upgrade all the way to Angular 17 without having to
         | adopt the new MDC components. Only this May with Angular 18
         | support for the legacy components will be dropped completely.
         | 
         | That's the reason we're currently migrating all our remaining
         | usages of Material components to ng-zorro.
        
       | JamesonNetworks wrote:
       | Ugh, this isn't Angular anymore. This will be just like the v1 ->
       | v2 transition. Presignal -> signal. The second they start
       | deprecating the previous syntax, we will hit very difficult
       | migrations
        
         | baggachipz wrote:
         | We just got done porting everything from AngularJS to Angular
         | D:
        
         | b15h0p wrote:
         | There is a pretty usable migration tool built into Angular CLI
         | at least for switching over to the new template syntax.
         | Requires some manual cleanup here and there but overall it's
         | not painful at all.
        
           | pquki4 wrote:
           | How "not painful" would it be for a codebase with thousands
           | of files, hundreds of which are widgets?
        
       | miiiiiike wrote:
       | For years I've been saying "Angular is the wrong choice now but
       | it will be the right one someday..." I didn't think it would take
       | 5 years to get there.
       | 
       | The Angular team has been doing incredible work lately.
       | 
       | The only thing that I still don't like about Angular is trying to
       | learn anything from the reference docs.
       | 
       | Have a reasonable developer tell me what a component viewProvider
       | is and how it's different from a provider using the @Component
       | docs. It's impossible.
       | https://angular.io/api/core/Component#viewProviders
       | 
       | Whatever committee decided to silo the Angular reference docs
       | from the usage docs has caused more harm than most of the
       | hyperbolic non-examples I can come up with.
       | 
       | If you're writing docs, please, please do me a favor and study
       | the structure of the Django and Python docs.
        
         | dgellow wrote:
         | What makes it the right choice in your opinion?
        
         | hmcdona1 wrote:
         | > Have a reasonable developer tell me what a component
         | viewProvider is and how it's different from a provider using
         | the @Component docs. It's impossible.
         | https://angular.io/api/core/Component#viewProviders
         | 
         | Like this?
         | 
         | - https://angular.io/guide/hierarchical-dependency-
         | injection#u...
         | 
         | - (new docs site) https://angular.dev/guide/di/hierarchical-
         | dependency-injecti...
        
       | Klaster_1 wrote:
       | Not as exciting as the title might imply.
       | 
       | Short story, they put Angular signals into Wiz, which powers
       | YouTube among others. No concrete Wiz announcements besides that.
       | If you follow the Angular changelogs and plans, the video
       | basically recaps these in a less dry manner - the same as seen
       | during previous ng-confs. There's a short section at the end [0]
       | showcasing a preview of what's in the pipeline but didn't receive
       | much coverage yet, such as less boilerplate when authoring
       | components.
       | 
       | [0] https://youtu.be/nIBseTi6RVk?t=4790
        
       | lakomen wrote:
       | I've been working with Angular for 2 years, then moved to Vue and
       | have been with it for, idk 3-4 years now. I like the theory of
       | Angular, the modularity, the way it works, but I HATE rxjs and
       | the complexity of it. And the whole thing on top of rxjs, ngrx.
       | You can't just simply take one value and compare it, no you have
       | to use pipes and rxjs.
       | 
       | Also there's an Angular discord and they're very hostile towards
       | anyone not fanboi-ing Angular. I was about 6 months into Vue and
       | wrote how I prefer it, for its simplicity. Then I was constantly
       | harassed until I was kick/banned. With another account I saw,
       | "HEIL ANGULAR o/" written in the chat.
       | 
       | That's just stupid. You have to be open minded. Angular has good
       | things, but Vue has good things too and even React does.
       | 
       | Never heard of Wiz before.
       | 
       | Almost a year ago I created an Android developer account I
       | believe it's called and paid the bill. The name on the invoice
       | was wrong. I wanted them to update the invoice They responded
       | with, "This is America, we do what we like" more or less. Ok, no
       | problem, I have better things to do. Since I haven't published
       | anything in almost 1 year, they're now threatening to close the
       | account, I paid the $25 for.
       | 
       | My adsense account, no new sites are being approved anymore,
       | previously I could add any site without confirmation, even if it
       | was new. I had a site that made them and me over 150k, but I got
       | into a fight with my partner of that site and the main domain was
       | shut down. I took the content and published it on another domain.
       | Over 7 years of daily mp3 files and images. The 1st domain had
       | adsense approval, the new one didn't. They didn't approve the 2nd
       | domain. Talking to them is not possible.
       | 
       | Google is spiraling downward. They're essentially cutting into
       | their own flesh. Since Darth Sundar took over it's become
       | progressively worse. All the wrong and used hostile decisions.
       | 
       | I still use and like Go, but I'm afraid what will become of it in
       | the future.
       | 
       | It's unlikely I'll return to Angular. It's just too time
       | inefficient and also slower compared to the other frameworks.
        
         | mgechev wrote:
         | >...but I HATE rxjs and the complexity of it. And the whole
         | thing on top of rxjs, ngrx. You can't just simply take one
         | value and compare it, no you have to use pipes and rxjs.
         | 
         | We're working on making RxJS optional. In v17.3 `@angular/core`
         | no longer has a dependency on RxJS. In the long-term we'll
         | enable a path forward without RxJS for other core modules as
         | well.
         | 
         | That said, we're providing an interop package that enables even
         | better RxJS support for people _who make the decision_ to use
         | it.
        
         | whalesalad wrote:
         | Vue is the best framework I have ever used. I can't imagine why
         | anyone would use anything else. Angular has gotta be the worst
         | imho, perhaps Ember. There are big communities around these
         | tools though so I guess the approach resonates with certain
         | folks.
        
         | knallfrosch wrote:
         | Your post touches too many topics.
         | 
         | But on RxJS, yes, it is conceptually complex. I never quite
         | understood whether one should use
         | 
         | - a container component with value-type @Inputs passed down - a
         | service emitting an Observable and subscribing to that, then
         | passing value-types into the template - an Observable as @Input
         | - now Signals? (haven't used those yet.)
         | 
         | Years later though I read a book on functional programming and
         | the whole nightmare of arrays within Observables suddenly made
         | sense.
        
         | datavirtue wrote:
         | Angular has gotten progressively better but after picking up
         | Vue3 I dropped everything else and haven't looked back. It's
         | like front-end sanity has arrived.
        
       | pier25 wrote:
       | This is great.
       | 
       | Angular is getting partial hydration (seems automatic from the
       | keynote but it's not clear) and deferred views which are like
       | components that don't load until something happens (eg entering
       | the viewport).
       | 
       | Performance has increased considerably too thanks to the use of
       | signals.
       | 
       | Honestly I'm quite impressed. I wish Svelte had partial hydration
       | but the team keeps arguing against it.
        
         | benmccann wrote:
         | We're not arguing against it, but simply haven't committed to
         | doing or not doing it as Svelte 5 has been higher priority. We
         | would rather be deliberative than introduce a feature where we
         | don't have the developer experience fully thought out. We want
         | to understand what the experience would be for Svelte users
         | both with and without SvelteKit and have good guidance around
         | the trade-offs of different rendering modes.
        
           | pier25 wrote:
           | > _We 're not arguing against it, but simply haven't
           | committed to doing or not doing it as Svelte 5 has been
           | higher priority._
           | 
           | Please. This discussion has been going on for years Ben. Even
           | before SvelteKit or Svelte 4 existed.
        
       | pjmlp wrote:
       | I wasn't even aware Wiz exists!
        
       | refulgentis wrote:
       | It's hard to ask this without sounding like a jerk: does this
       | matter to anyone externally?
       | 
       | When I was still at Google, the web dev I knew who was in touch
       | with outside stuff, talked about Angular as if its day had passed
        
       | mgechev wrote:
       | Hey everyone, I'm working on this at Google and would be happy to
       | answer your questions :)
       | 
       | The tldr; is that we see a lot of similar requirements from
       | developers across Angular and Wiz, so we're looking for
       | opportunities to reuse work. Good example is the Angular Signals
       | library that's now used in all the YouTube Mobile Web. In a
       | similar way, Angular is bringing more fine-grained code loading
       | that Wiz offers.
       | 
       | Over time, we'll continue focusing on what's best for developers
       | and incorporating the best from Wiz in Angular, and vice versa.
       | At the end we can end up with one framework, or continue to
       | coexist.
       | 
       | In the next couple of weeks we'll follow up with a blog post that
       | explains our plan in more details.
        
         | skybrian wrote:
         | I'm more familiar with Preact Signals. How does Angular Signals
         | compare?
        
           | mgechev wrote:
           | Fundamentally they are similar to Preact Signals, Solid
           | Signals, Vue signals, etc.
           | 
           | We took some different trade-offs and listed the details here
           | https://github.com/angular/angular/discussions/49683
        
         | RunSet wrote:
         | Question (you might need to pass this one up the chain of
         | command):
         | 
         | Was basic HTML gmail deprecated because users so overwhelmingly
         | preferred slow, bloated UIs that there was no demand for an
         | alternative?
        
           | ktosobcy wrote:
           | tbh - killing of basic html Gmail was the last straw that
           | pushed me to other mail provider... I usually use imap but
           | once in a blue moon I need to access mailbox via browser and
           | regular Gmail client is just abysmal...
        
           | mgechev wrote:
           | We're building infrastructure for these products rather than
           | the products themselves.
           | 
           | I'll be happy to answer questions about Angular and our
           | collaboration with Wiz :)
        
       ___________________________________________________________________
       (page generated 2024-03-21 23:02 UTC)