Phoenix LiveView 1.2 Released

(phoenixframework.org)

94 points | by ksec 4 hours ago

3 comments

  • cpursley 2 hours ago
    LiveView is such a breath of fresh air, especially over the vibe coded NextJS rats nests that have become the norm (that need specialized hosting, are dog slow and require a ton of proprietary paid services bolted on like caching, background workers and even auth which Elixir and Phoenix provide out of the box).

    https://elixirisallyouneed.dev

    • AdamConwayIE 3 minutes ago
      I've been loving LiveView. Been using it for a project for a client recently and it's so... chill. I like it a lot.
    • Tinkeringz 44 minutes ago
      What caching is provided out of the box for Phoenix framework?
      • conradfr 22 minutes ago
        Doesn't seem to be mentioned in the page but if you're talking about request caching there's libraries like PlugHTTPCache or RequestCache.

        Otherwise I usually use Nebulex (annotations are nice for Ecto queries) with ETS as it's faster than with Redis (if you don't care about losing the cache on deployment).

  • candl 1 hour ago
    What are the pros and cons compared to ASP.Net/Blazor?
    • weatherlight 1 hour ago
      The BEAM virtual machine. Its has lightweight isolated processes, message passing, supervisors, hot-ish runtime introspection, and fault containment are not libraries bolted on later. They are the substrate. not an after thought.

      if you are build an app that needs the following: + many concurrent users + real-time UI + background jobs + workflows + stateful sessions + distributed events + failure isolation + “this thing should keep running for months”

      You're going to want the thing built on the BEAM.

      • zerr 1 hour ago
        But it doesn't have neither AOT nor JIT.
        • arcanemachiner 1 hour ago
          I believe BEAM bytecode is now JIT-ed.

          EDIT: It is, since OTP 24 was released in 2021:

          https://www.erlang.org/downloads/24

          > The BeamAsm JIT-compiler has been added to Erlang/OTP and will give a significant performance boost for many applications. The JIT-compiler is enabled by default on most x86 64-bit platforms that have a C++ compiler that can compile C++17.

        • conradfr 1 hour ago
        • foxes 1 hour ago
          elixir/erlang gets compiled into beam byte code. It's a vm. why does this matter..
    • rubyn00bie 1 hour ago
      TLDR; LiveView is web only.

      There have been efforts to make LiveView native, but it’s extremely difficult to do so, and thus far (to my knowledge) all have failed.

      I was thinking about this the other day because carsandbids (Doug DeMuro’s car auction site) uses Blazor (at least as far as I can tell). And I think that’s one of its biggest advantages of Blazor—- is that it is capable of producing native apps and web apps while LiveView is resolutely not. And that’s because Microsoft can pay for it (or at least sponsor huge amounts of supporting infrastructure).

      And FWIW— that’s an extremely difficult problem to solve. It requires an enormous amount of funding, both a huge team capable of both understanding Android and iOS SDKs and capital to employ folks on pure engineering challenges (hence why MS or Meta can). End users don’t care if it’s made with LiveView, Blazor, React, Java, SwiftUI, et. al. And, the list of companies that can facilitate that long term is extremely small.

      There’s also the issue of OTP being non-trivial to implement or meaningfully transpile into another language/runtime. Erlang, BEAM, and OTP were made together for each other in a very peculiar and specific way, for a specific set of problems, and if it wasn’t a necessity that they were developed together it would be a dead language, runtime, and platform (and for the record it’s absolutely not).

      • cyberpunk 6 minutes ago
        I am a fan of the idea, but the websocket is also quite a big attack surface; you can do a lot more by sending messages over this socket to your phoenix app than you would likely expect to have exposed via some api on another framework.

        It’s difficult to secure, in my opinion. Perhaps not impossible but the cost of doing so pretty much eclipses the benefits of using liveview imo.

      • cpursley 1 hour ago
        Why not just build mobile apps in their native language (Swift etc)? Anyways, end users absolutely notice and care - cross platform mobile apps are all hot garbage without exception.
        • epolanski 18 minutes ago
          Especially now that you can likely throw the mobile conversion to an LLM and judge the feasibility of it's maintenance once it's done.
        • moomoo11 22 minutes ago
          you could also use react native expo and for native functionalities write your own plugins that call the native platform sdk

          you can move fast and provide a good experience for your users. OTA updates for the JS UI code.

          maintaining completely independent mobile codebases works when you have 10M plus ARR and you can afford to have 2-4 engineers per mobile platform. and you have something non shit and useful.

          and even then i’d question if it’s really necessary. unless a native app is absolutely key (convince me)

        • rubyn00bie 52 minutes ago
          That’s what I would do that personally. I hate wrappers around native SDKs. But I also learned them.

          A lot of folks assume mobile apps are “difficult” because of the underlying language. But it’s not the language that’s an issue, it’s the SDKs. They’re so wildly different from each other, and the way things work on the web, that it’s (IMHO) a losing proposition to do so.

          That’s not to say things like Blazor or React Native don’t have a place but that place is one that’s inherently difficult to maintain without huge amounts of ongoing effort and capital invested in non user facing features.

  • rubyn00bie 1 hour ago
    I’m not sure how I feel about the CSS integration. Nor the collocated JS that was somewhat recently released.

    On one hand, yes it is convenient, but on the other it could become a huge mess. It reminds me of Rails 2.x where it became almost impossible to debug, or fix front end code that used rjs or whatever it was called. Because disparate snippets of JS were littered throughout your code base in files that were hard to find.

    I’m sure the Phoenix team has put a lot of effort into it, and I truly hope it slaps. I myself am just really hesitant to use it, when CSS files and non colocated JS work just fine. I’ll probably be waiting a couple years before giving it a try

    • conradfr 15 minutes ago
      To be honest that's copied from the JS frameworks. I tend to agree with you but sometimes scoped CSS is nice to have.