wat the doodle!
wat the doodle!
  • 16
  • 8 178
Modern Frontend Framework Development for Dinosaurs Revisited!
Back in late 2017 an article appeared titled "Modern JavaScript Explained For Dinosaurs" by Peter Jang. It was of course very tongue in cheek and I enjoyed this article because it documented fairly well the evolution of where JavaScript or modern JavaScript frontend framework development had ended up.
I wanted to revisit this article now in 2024 to see how it held up and what changes we have had since then!
Переглядів: 544

Відео

A Review of the Anti Rust article by a Rust Engineer
Переглядів 2,4 тис.День тому
An article appeared recently online entitled: "I spent 18 months rebuilding my algorithmic trading platform in Rust. I'm filled with regret" By Austin Sparks. This article was picked up by ThePrimeagen, and he did a balanced review, I would highly recommend that you watch that if you haven't already. However since that article was published, there has been a lot more context available and in th...
A Response to You don't need a frontend framework
Переглядів 3,3 тис.14 днів тому
In this session we respond to a UA-cam video titled "You don't need a frontend Framework" By Andrew Schmelyun. Andrew is defending the position that server side rendering (SSR) is the best option for most web applications, we take a detailed look to see if the arguments presented by Andrew hold up to real scrutiny and if indeed SSR is still the best option.
Let's Create A Toy HTML Builder in Rust
Переглядів 106Місяць тому
In this session we take a look at creating a toy "HTML" builder in Rust, So why would you want to create a nestable builder like this? Well, an infinitely nestable builder allows one to programmatically generate some output in a typesafe and precise way. It’s also the “base level” building block for layering higher levels of abstractions on top of the builder, for example one could create funct...
Build a Todo Web App Using Deno, Hono, and vanilla JavaScript!
Переглядів 105Місяць тому
In this session we're going to take a look at using Deno (a fantastic JavaScript runtime) and Hono (a very lightweight web server framework) in order to build fully functioning "Todo" web application. This includes the entire Front end built using just vanilla and raw JavaScript and Deno with Hono to handle the static file hosting as well as the backend API. While my preference is always toward...
Dynamic languages vs Statically Typed languages
Переглядів 56Місяць тому
In this session we explore and compare and contrast dynamic programming languages against statically typed languages. What are the key strengths of each and what are some of the negative aspects of each? Is there a clear winner?
The Agile Methodology is Horse Manure!
Переглядів 768Місяць тому
In this session we take a quick dive into the the "Agile" methodology that is part of the software development life cycle. We compare the current modern incarnation and it's original roots and find that to be frank it's utter horse manure! Is modern agile a lost case, can it be saved? watch this video to find out.
Procedural vs Declarative Programming styles
Переглядів 3942 місяці тому
In this session we explore two different programming styles side by side: procedural vs declarative. While they ultimately both achieve the same result, we take a basic example and work through that to see how they compare and comment on what the advantages and potential disadvantages or trade offs each style or programming has when directly compared to each other.
Hyperfetch Project (a neofetch clone in Rust) Update Number 1
Переглядів 942 місяці тому
Since the last video entitled "Oh No, Neofetch is dead!" in this session we'll be taking a look at the new "hyperfetch" project update. Hyperfetch is essentially an attempt at a neofetch clone but rewritten in Rust. There has been some good progress which we review in this session.
oh no, neofetch is dead!
Переглядів 792 місяці тому
On the 26th of April this year Neofetch was marked as archived on Github and the news has been widely reported I first heard of it a week ago. It's a massively popular project and so I decided to do a super quick dive into the codebase. It's a bit of monster at over 11K lines of code (LoC), and it's all in bash! so the code is very dense and it's a bit like pulling at a thread when trying to un...
How to install docker on Arch Linux like a Chad!
Переглядів 1682 місяці тому
While I was configuring my Virtual Machine (VM) instance that I use specifically for recording my UA-cam sessions I realised that I didn't have Docker installed. I thought I take the opportunity to do a quick video on installing docker on an Arch based Linux distribution. While it's fairly trivial to do, I thought on the off chance that it maybe helpful for someone out there in the internet. We...
Sorry Uncle Bob, You're just wrong!
Переглядів 722 місяці тому
Robert C. Martin aka "Uncle Bob" recently did an interview with ThePrimeagen. Early on he mentioned something in the interview that was a pretty bold statement. It's inspired to me unpack it and see if it's really something that holds weight. While "Uncle Bob" has done a tremendous amount of good work in terms of practices related to the software industry (author of the Agile manifesto), one ha...
Get Hired as a Junior Developer in 2024
Переглядів 492 місяці тому
so you're looking to get hired as a junior developer in 2024? well 2024 things are looking bad. This is because the global economy is not doing all that well and that has a knock on effect on all the industries for the tech industry what this means is that we have far fewer roles than we have candidates and as a consequence that means that the competition is is really really intense. So as a ca...
Wat The Doodle Intro!
Переглядів 202 місяці тому
A super short Into for context for my background
Vectorising My Doodles!
Переглядів 232 місяці тому
This is a short video of my current process of vectoring my hand drawn doodles, this is not a tutorial. It's simply my current process, I'm constantly learning so I suspect that my process will change as I improve and learn more, I wanted to share as also a way of self documenting my own process!
Rust isn't a hangover cure?
Переглядів 522 місяці тому
Rust isn't a hangover cure?

КОМЕНТАРІ

  • @chopsueey
    @chopsueey 4 дні тому

    I think the whole discussion comes from the feeling that webdevelopment moves really fast and that there is always new stuff out there being worked on. Andrews view sounds a bit nostalgic, like: "back in the days, just HTML, CSS and JS ... don't need all this fancy new stuff, just plain and simple...". I suppose many people vibe with that, but that's not the whole picture. Sure, for a simple static site, just go with that, but if you want something bigger, you will need a more sophisticated approach, which may be more complicated (which is only natural), but less complicated compared to a big project that doesn't have a system and an idea behind it, so: big project (with a framework) vs. big project (without a framework) I mean a framework is basically the result of optimizing your project for something bigger, that's why they exist.

  • @Valiant600
    @Valiant600 4 дні тому

    I need a FE framework that brings food to the table!!!

  • @adrianspikes6454
    @adrianspikes6454 7 днів тому

    That is the old way of doing it but he is also not relying on anyone else...npm, etc and not many can deal with that BS! Never had an application that wasn't complex so i prefer frameworks like angular or blazor.

  • @michaelbrauner
    @michaelbrauner 9 днів тому

    Interesting take! Keeping server and client responsibilities separate has its advantages, but frameworks like Hotwire can simplify development and speed up the initial launch, tackling common issues like authentication and security. Often, it's unclear if extreme scaling will even be necessary in the early stages. I've seen a company struggle with Vue for months before switching to Hotwire, which led to a successful and much quicker implementation. I have been working with this solution for over a year and I have to say that everything is very clear and extensible. Even with thousands of users per day, there are still absolutely no scaling issues. It really depends on the project's specific needs and resources. And I think for most apps it's worth starting with Hotwire or something similar.

  • @TimothyWhiteheadzm
    @TimothyWhiteheadzm 9 днів тому

    Advanced Rust is hard, especially if you are not trying to learn the advanced parts of the language but instead trying to make use of libraries or frameworks that do use the more advanced features. That said, if you took the same attitude with C++ you would probably end up with some very very bad code, but with Rust, if it compiles it usually works and most classes of bugs are simply caught by the compiler. Certainly, Rust was one of the harder languages I have tried (used for about three years, but still cant say I have 'learnt' it). The biggest problem we experienced though was that it is a constantly changing language and that combined with the frameworks we were using being in active development meant that we spent over 50% of our development effort just updating to newer versions of dependencies.

  • @bradweir3085
    @bradweir3085 10 днів тому

    I'll never like the way Rust code looks. I like everything about Rust, but it is ugly as sin.

    • @watthedoodle
      @watthedoodle 10 днів тому

      That's subjective and you have a right to dislike the look of the syntax, just as others have a right to like the look of the syntax. However objectively the type signatures are like that because they encode and pack a lot of information. Often time it boils down to familiarity, and it's no different to dynamic language users complaining that they don't like static types that have to be declared as it's too "noisy" or verbose.

  • @mtallen56
    @mtallen56 10 днів тому

    Your point at 12:09 reminds me of this Trailer Park Boys scene: ua-cam.com/video/-SkfTU-B1CY/v-deo.html

  • @archibaldhernandez5553
    @archibaldhernandez5553 10 днів тому

    I wanna learn Rust. Any tips?

    • @watthedoodle
      @watthedoodle 10 днів тому

      I have an entire blog article dedicated to it: "So you wanna learn Rust?" link is here 👉 watthedoodle.com/tech/so-you-wanna-learn-rust/

    • @archibaldhernandez5553
      @archibaldhernandez5553 10 днів тому

      @@watthedoodle Thanks!!

    • @ChungusTheLarge
      @ChungusTheLarge 10 днів тому

      When I finally sat down and really got to understand how ownership and lifetimes work, I found it far mor easy to write Rust. Also go check out these resources: "The Rust Book" - Safe Rust guide "The Rustomnicon" - Unsafe Rust guide "Learning Rust, With Entirely Too Many Linked Lists" - This will help you understand how pointers work, and why LL is a shitty data structure, especially in Rust

    • @borylesny
      @borylesny 10 днів тому

      Start with sync code. And switch to async later if at all.

  • @andrewdunbar828
    @andrewdunbar828 11 днів тому

    a curve is towards it

  • @bobby_mathews
    @bobby_mathews 11 днів тому

    I do not think he should be learning rust on the go!!

    • @ballinlikebill8334
      @ballinlikebill8334 11 днів тому

      i disagree. you should but not for production code, just for personal learning projects

    • @SWard-oe8oj
      @SWard-oe8oj 10 днів тому

      ​@@ballinlikebill8334doing it for production code is what "learning on the go" means. Else it's just "learning"

  • @basilefff
    @basilefff 11 днів тому

    Wait, that guy used Strings for error handling? Yeah, probably should have spent some of those 18 month actually learning Rust.

  • @cariyaputta
    @cariyaputta 11 днів тому

    As this video titled get hired as a junior dev. I disagree with the advises on open source contribution and working for free. Many people nowadays are just fishing for open source contribution. And not all open source project are welcoming to outsider contribution, most require some level of communication with the maintainers beforehand. Regarding working for free, people will either suspect their free work offer (spy, ulterior motive, etc.), or just outright exploit them, now they're just contribute to the sweatshop problem. As for the alternative, community college or university where you got a scholarship for is a good start, they provide networking opportunities and the prestige of a degree.

    • @watthedoodle
      @watthedoodle 11 днів тому

      There is a *lot* of open source projects, while there maybe some FOSS communities that are not welcoming it's hard to generalise across *all* FOSS projects. Of course some level of communication is needed and this applies to *ANY* project or team you work on, so I don't understand why you're suggesting this is a problem? There are many internships from companies where you *do* not get paid, for companies this is a much lower risk with lots of advantages including the potential of hiring the intern at the end of internship because it would have given the company and the candidate time to learn about each other as well for the candidate to come to understand the companies codebase etc. Could the internship be exploited? yes, but at least you will know that it is a toxic company and you can just walk away, something that would be much harder to "walk away" if you where employed by that toxic company. Universities (at least in the UK) do NOT provide networking opportunities, I know because I've come out of academia into Industry and it was the *MOST* painful journey to cross, and my story is not unique.

  • @init_bobjames
    @init_bobjames 12 днів тому

    do you know the idiomatic way? i think that is a meme 🤣🤣

    • @watthedoodle
      @watthedoodle 12 днів тому

      I didn't recall that meme! if it is a meme that wouldn't have been pretty cool to drop an overlay on the video to pay homage to it 😁

  • @TheSysmat
    @TheSysmat 15 днів тому

    Yes good points, let he try to crate table as excel sheet on server

  • @codedbyshoe
    @codedbyshoe 16 днів тому

    A few points 1. Html over the wire scales just fine 2. You're missing the point that you are adding the complexity or reimplementing all of the server side logic on the client via redux, or vuex, etc.. this creates just as much spaghetti code ( i haven't seen an enterprise production app prevent this). 3. Building an app based on your needs now and adding api end point later is just fine. 4. (Opinion) i haven't seen something like Nextjs used at a large scale. I have seen Angular and React, and it was just as much as a mess.

  • @hereallyfast
    @hereallyfast 16 днів тому

    You're wrong but, i respect your opinion

  • @scdingundaroo
    @scdingundaroo 17 днів тому

    The claim that server side rendering of HTML doesn't scale is one of the dumbest most pig ignorant claims i have ever heard.

    • @watthedoodle
      @watthedoodle 16 днів тому

      At scale and at high RPS it does not scale sorry that's a simple fact. Given that SSR can mean having to re-render the entire page, this includes all the conditional logic and looping structures etc. Perhaps on the smaller scale it's negligible, but it really really isn't when you work at scale. And it turns out if you invert and delegate the computation to the client side that template computation goes to ZERO for the server side, and it's hard to beat zero.

    • @zulfiqrysaadputra
      @zulfiqrysaadputra 8 днів тому

      ​@@watthedoodleHow many are we talking about here? I need some valid numbers argument. Depending on the interaction it does not need to be fully server-side, it could just be when doing action that is only changing data (yes small js libs can be use for interactivity) and at that point i would argue the lifting is done more on the database side, which is another topic on itself. On the other side, most large application relies on microservices to run their API, this is scalable. But most SSR application mentioned do their scaling the same way using pods, replicas, load-balancing, etc. Why can't we make the same argument? Either way people seem to forgot the DevOps side of things, there no ZERO computation, you are always doing it somewhere, does not REDUCE the amount of computation in any way. The example shown is of course on a small scale where they are in one place, which should not be done on a large scale application (still, how large are we talking). Either way both are complicated, and i agree it should not be simplified.

    • @watthedoodle
      @watthedoodle 7 днів тому

      @@zulfiqrysaadputra Because using client side rendering you wouldn't even **need** to scale the server side, that's entirely the point of CPU delegation.

  • @UntitledProjectDemo
    @UntitledProjectDemo 17 днів тому

    I've worked on large scale apps that use both techniques, and I am a convert to the HTML-over-the-wire camp. It's not a silver bullet and has some downsides, but I think it's a better architecture for most apps where iterating quickly is a high priority. You don't need to duplicate your data model in the client or manage a client side runtime (trying to upgrade a React app is a major PITA). Having separate endpoints to update certain parts of a page makes it much easier to introduce and version components and update your UI incrementally, basically what micro-frontends always wanted to be without all of the overhead. Scalability is fine, Github uses some HTML-over-the-wire in their UI. I don't need framework-specific tooling to figure out why my react DOM updated in a certain way because I'm updating the native DOM. And the best part is that I can embed a react component in my front end when I really need the high level of reactivity and keep it isolated to just the thing that needs it. I don't understand the dislike of sending custom HTTP headers, it's much more aligned with HTTP conventions than what tools like GraphQL do (everything is a POST that needs to return 200 even with an error condition, etc.). Ultimately, choose the tool that makes you the most productive. For me, that's HTML-over-the-wire all day long.

  • @tbethenerd
    @tbethenerd 18 днів тому

    If i do computation on the server side, i can use more efficient languages then JS. Rendering a page in Go, Rust, hell even in JS can be much faster, then on the client side, as the server knows it templates for example. Besides that, you don't have to push the whole page. Look at HTMX. And if you "mash together" HTML and Data on the server side, you are doing it wrong.

    • @watthedoodle
      @watthedoodle 18 днів тому

      even with more efficient languages it still doesn't solve the problem (it may buy you a little more headroom but that's it). Inverting the entire things does, because now you're essentially doing distributed computing by offsetting the computation over to *each* client, that means it doesn't matter how many extra clients requests you have your computation becomes (Computation * Zero) which is always zero!

    • @tbethenerd
      @tbethenerd 16 днів тому

      @@watthedoodle I am not a designer or webdev by trait, I run that stuff. On a huge scale. And i do so since 20 years. I had customers, that moved to SPAs, and client side rendering. And guess what: The load difference on the servers where not measurable. But why is this so? Because rendering a HTML Template or crafting JSON from the same data does not have a large computational difference.

    • @watthedoodle
      @watthedoodle 14 днів тому

      @@tbethenerd they're are *not* the same, one is transformation of data representation that is only minor structural changes (see XML -> JSON etc), while rendering full templates, include full on conditional elements based upon expressions all of which is infinitely nested along with loops etc, these are not the same. For simple templates and at small scale the difference will not matter, but the principle can not be avoided, whatever that computational load is *will* be multiplied with every client you add, and by scale I mean the total concurrent RPS.

    • @steveoc64
      @steveoc64 12 днів тому

      ​@@watthedoodlethis is where you start to go horribly wrong in your thinking Running data through a template to generate HTML is orders of magnitude less work than converting data to json The HTML template expansion can be done using no additional memory allocations. Transforming any data to json requires allocating strings for every element, converting numbers into strings, deallocation after use, etc You could roll out 100 HTML templates in the same number of clock cycles as doing 1 json payload

  • @jasonrooney1368
    @jasonrooney1368 18 днів тому

    I think you gloss over one of the biggest reasons: locality of data. SPA’s have the benefit of being able to leverage a client side cache which can feel far more responsive than needing to wait for a server response for every interaction.

  • @byrongibby
    @byrongibby 18 днів тому

    Are you not missing the point that, in the paradigm you are critiquing, you only have to consider one copy of the application state - whereas with front-end frameworks you have to synchronise the front-end and back-end state? Also, I don't see why you can't separate the concerns (the data and view) on the back-end if that's what you want?

    • @watthedoodle
      @watthedoodle 18 днів тому

      you don't need to "synchronise" state, http is idempotent. You simply "fetch" the client specific state that you need as and when you need it. All state is localised client side and is specific to each client instance. For you second point, yes while you *could* potentially have that strict segregation and use internal data "APIs", you still haven't the computation tax issue.

    • @byrongibby
      @byrongibby 18 днів тому

      @@watthedoodle I will agree to disagree. Firstly, http is not necessarily idempotent, but even in the case that it is, state is not localised on the client side since you still have a database on the server side... when you update the server side database with an idempotent http method (let's say you DELETE a product listing), that change will in many cases, also need to be reflected on the client side, hence the need for synchronisation

    • @watthedoodle
      @watthedoodle 17 днів тому

      @@byrongibby that DELETE request can either succeed or fail. If it fails then no need to update the current client state, if it succeeds then you can safely remove that data point from the client side. In either case navigating between "pages" will automatically load the latest database state anyway. Unless you want 100% seamless realtime state view across all clients in which case you would need to either use WebSockets and push out an the latest data point upon edit/delete/new OR use something like long polling OR server push etc. But this reload will be EXACTLY the same for SSR, the difference being with SSR you would have to refresh the entire page, whereas with SPA you would only re-fetch the changed data set. So actually it still wins out in terms of overhead.

    • @byrongibby
      @byrongibby 16 днів тому

      @@watthedoodle I buy the argument that front end frameworks distribute the compute making it a more easily scaled solution, but to the point you just made - if you're using something like HTMX you aren't doing full page reloads. On the question of state, it has been my experience that you have your server side database, but you also have an in-memory database on the client. The DOM/view is updated as the client database changes - that seems to be a solved problem, the issue as I see it is comes from making sure the client side database and the server side database are kept consistent with each other. If you're saying that this is easy for you to do correctly that's fine, but I think a lot of people find it quite challenging.

    • @watthedoodle
      @watthedoodle 14 днів тому

      @@byrongibby why would it be challenging? as long as the database is the SSOT (Single Source Of Truth), then the Client is simply the presentation of that state. The client also makes request's *to* the database in order to request mutations. The data flow is well established here, there is nothing to "synchronise", at least that's how I approach the design and data flow.

  • @WolfieVenturi
    @WolfieVenturi 18 днів тому

    I really like your style of breaking down the trade offs in a relatively neutral way. Would watch more.

    • @watthedoodle
      @watthedoodle 18 днів тому

      Thank you for you kind words, I really appreciate it and it motivates me to create more stuff!

  • @1989DP3
    @1989DP3 18 днів тому

    5 min into video you do not provide any reasoning for why he is wrong, you just keep arguing that he does not know why, but if you know then explain it. Then it also seems you are ok with someone else abstracting the parts which renders json and stiches that on the front end, and that is perfectly fine. And sure if your product gets too big that you don't want to have large teams writing custom components for each and every item you serve to users that are running your webpage on various clients then it makes perfect sense to migrate to a framework that would help you do that more quickly and efficiently, but most websites out there are not that. They are not serving millions of users every hour, and what ends up happening when you visit these websites is you get an over engineerd bloatware that ends up using your entire memory just to animate the scoll into view. But that's just me

    • @watthedoodle
      @watthedoodle 7 днів тому

      I literally provided the reasons as to why he is wrong, please re-watch carefully. I re-iterated the points throughout the video as well. Almost everyone else has understood the points I raised against Andrew.

  • @yannick5099
    @yannick5099 18 днів тому

    Great video. I think many people are just frustrated with the current state of JS tooling, which is constantly evolving/breaking, fragmented, often slow and not simple to use. Meanwhile most of my backends from a decade ago probably still build and run (or require minimal migrations). If JS frontend dev would require a simple "js build --release" all the time and the same at every project much less people would complain. It's getting better with things like Vite or Bun, but still quite a bit to go.

    • @watthedoodle
      @watthedoodle 18 днів тому

      Thank you! Absolutely agree the JS fatigue is real and I have found Vite to be a breath of real fresh air, and that's the positive direction the ecosystem needs to move towards, I think I may do the next video into vite!

  • @watchernode6138
    @watchernode6138 19 днів тому

    One more thing to say here is that. once you add the html blocks to PHP or Blade/Laravel view engine. It get very difficult to make changes to layout and design. your html markup and css classes gets scattered into different strings in those templates. You can easily further tweak the frontend in case of SPA or SSR with Nextjs. --- Practically SPAs - are only suitable for certain use cases like admin Section, or sites where content changes frequently. Because, SPA make it difficult for search engine crawlers, which results in bad SEO. SSR - Server Side Rendered sites are more suited for things like blogs, landing pages, ecommerce sites etc

    • @watthedoodle
      @watthedoodle 18 днів тому

      Very good point here regarding SEO, that is indeed on key legitimate criticism of SPA, there has been some solutions in this area, as you may already be aware there are solutions such as Nuxt and Next which can do isomorphic builds, but that's another rabbit hole!

  • @justafreak15able
    @justafreak15able 19 днів тому

    Why do people need a one solution for all? Can't people have a discussion and pick out best tools for their requirements? Isn't that why we are engineers ffs?

    • @watthedoodle
      @watthedoodle 18 днів тому

      This video response wasn't to say we need a single solution, you're absolutely correct we *should* use the right tool fort he job, and what I'm arguing is that SSR for web applications is *not* the right tool (for all the points covered). If however you don't have a web application and your site is static, then I wouldn't even SSR or SPA is the right tool in that case SSG would be the right tool.

  • @ivan.jeremic
    @ivan.jeremic 19 днів тому

    yeah I don't get those html over the wire people, it is not flexible and there are reasons why we send data and over the wire.

  • @MachineYearning
    @MachineYearning 19 днів тому

    It's crazy because we've been here before. We had anti-JS zealots years ago when JS was invented. Guess what, JS won because it made web applications much easier to develop and better for users. Now they're coming back and saying "well, just use a little javascript to sprinkle interactivity here and there." No, we tried that too. Anybody who tried writing complex applications with jQuery on server rendered pages knows it sucked. And it wasn't because developers sucked then. We tried the pattern, and it evolved into modern UI libraries like React and Vue

    • @someman7
      @someman7 18 днів тому

      Might you be speaking too broadly? For my part, I lament that we are still locked into JS.

    • @MachineYearning
      @MachineYearning 18 днів тому

      If I'm speaking broadly it's because it's broadly the truth. Sure there are exceptions. And we all know there are drawbacks with JS, I'll be the first to admit it. But the solution to that isn't going back to the same old design patterns we had 10-15 years ago and solved with JS component models. It would be like if we said "there are problems with cars" and the solution was to bring back horses. The reason it looks like such a convenient solution is because it's just regression.

    • @naughtiousmaximus7853
      @naughtiousmaximus7853 22 години тому

      I think current solutions like Sveltekit are basically perfect.

  • @pinatacolada7986
    @pinatacolada7986 19 днів тому

    I've built the same complex app both in Vanilla js and Solid js. It took about 2 months to build in Vanilla js, but I used the jQuery and DataTables library to solve a lot of my problems. Without jQuery it would have taken me even longer. The app was functional but not great. Then I built the same app again using Solid js and it took just 2 weeks and had a lot of unexpected benefits like being able to build dynamic data tables without importing the library - and having pages retain large amounts of data without having to reload it every time the user navigates away and comes back. To achieve the same using jQuery you would have to hide/show entire pages and the code would get very messy and counter-intuitive very quickly.

  • @thewiirocks
    @thewiirocks 19 днів тому

    "Single page applications are still the best option" - I'm afraid I have to disagree. I also disagree with Andrew, mind you. What you are describing is modern horizontal architecture. This separates the delivery of data from the delivery of the UI. In this case, HTML. Literally nothing prevents a multipage application from being effective. SPAs are only required if you need all interface to stay within a single view. e.g. If you are attempting to provide a desktop application type of experience. If you are providing a multipage experience, please STOP using SPA frameworks. It's too much complexity for too little return. I have found in practice that multipage implementations using jquery are faster to develop and provide a better experience over React or Angular in 80-90% of the cases. Which is easy to understand when you realize that 80-90% of the use cases in the wild are designed as multipage and then jammed into SPA.

    • @ivan.jeremic
      @ivan.jeremic 19 днів тому

      Single page applications are peak web dev.

    • @ghostinplainsight4803
      @ghostinplainsight4803 18 днів тому

      JQuery or more specifically shitty jQuery has cost the business I work for about $2,000,000 in developer pay fixing bugs over 10 years and it's only 12 unique pages with the home page, product listing, search and product page being the most complex. Some members on my team were tasked with "updating" the existing product page built in 6000 lines of jQuery spaghetti. They had 3 months. It took 9 months until the defect list grew larger than the actual tasks, then 16 months until the project was scrapped and they were both fired. They handballed it to me, I rebuilt the page in 4 months using Angular. It's been live for 9 months without any critical issues after release. Sure you could make a nice enough webpage/site with HTML and jQuery, but I've never actually seen it in the wild. There are no standards for it's use so different developers do whatever they feel like at the time, some use the revealing module pattern if you're lucky, some global objects, most just free functions in a massive file, generally just hacking exponentially to make things work. SetTimeout's everywhere to deal with race conditions, functionality that overwrites other functionality. Events that are never unbound except occasionally you will see `$el.off().on() It's hard to debug so average developers just hack on whatever they need to get a story complete. Modular componentised code that follows single responsibility as much as possible is always going to be the best solution, but more importantly having standardised practices for average developers to follow and documentation they can read is the biggest benefit to modern js frameworks.

    • @thewiirocks
      @thewiirocks 18 днів тому

      @@ivan.jeremic which is why everyone is so unhappy with them and the quality of most apps is terrible / rapidly declining? SPAs are "Peak" in the same way that server-side MVC frameworks were "Peak" 3-Tier. Both are bad ideas that caught on before the industry could actually evaluate the efficacy. By the time anyone realized they were bad ideas, everyone was doing them.

  • @remiranda
    @remiranda 19 днів тому

    Also, on point 5 The author expresses how he thinks that system languages are overused. He then presents Go as an alternative to them. You somehow got the idea that he was trying to say Go is a system language, but he clearly was stating the opposite and presenting it NOT as a sys lang, but rather the opposite, a non-sys-lang that is underused.

    • @watthedoodle
      @watthedoodle 18 днів тому

      thank you for that clarification, I misinterpreted he's point in that particular case.

  • @remiranda
    @remiranda 19 днів тому

    I`d argue his fourth point, on the economics, actually makes sense. When it comes to the intricacies of the choice, the priorities might favor speed over security. And If you take into account his second argument, about every system always having some flaw, the benefits of rust might just be zero; or even negative benefits in this case. Again, assuming security is not the priority.

    • @watthedoodle
      @watthedoodle 18 днів тому

      I partly agree however speed has to be seen in totality, meaning it is not just the speed in terms of the initial development time, but rather the overall "speed" aka time involvement over the course of the lifetime of the platform or solution that has been developed. You will find that a platform actually spends the majority of it's lifetime in maintenance and updates (newer features etc). And in that context having a more powerful type system that can more correctly mitigate a whole class of potential problems means spending less time on said maintenance and ease of rolling out newer features and doing refactoring to the platform. So it's *not* just about security there are other considerations and must be seen in the wider scope.

    • @remiranda
      @remiranda 17 днів тому

      ​@@watthedoodle I also agree with your point, well said!

  • @mikejohneviota9293
    @mikejohneviota9293 19 днів тому

    just pick a framework and stick with it. raw html css js is a meh

    • @lzszl
      @lzszl 19 днів тому

      Right, I choose htmx 😂

  • @SonAyoD
    @SonAyoD 20 днів тому

    Fanatic video! Great points!

    • @watthedoodle
      @watthedoodle 19 днів тому

      Thank you sir for the kind words, I'm happy you liked it!

    • @byrongibby
      @byrongibby 18 днів тому

      Freudian slip? Is it "Fanatic" or "Fantastic"? Lol

  • @zlayatapka12
    @zlayatapka12 20 днів тому

    Hey. Was interesting to listen, but I think you missed the point of the original video. Andrew shows that "some" projects actually can be done without frontend frameworks. People were creating websites using plain php since the beginning of the web to serve millions of users, and nowadays it's also can be maintainable in the long-term when using modern frameworks. The computation scalability theory does not hold strong here. What your video does not mention is the added complexity when you're using frontend framework. Build tooling, wiring this up, and maintaining, deployment etc in the long-term is very complex nowadays. More and more prior front-end frameworks reinventing the wheel and adding SSR again. Unless you have an investment or free human resources to deal with it, there is no "lie" to shift the added complexity to a later stage. 98% of the projects would never go past this stage and you're not Google to juggle dozens of moving pieces by your own.

    • @watthedoodle
      @watthedoodle 19 днів тому

      Sure I hear what you're saying, however I don't fully accept the "added complexity" part as that was one of the points raised by Andrew and what I'm suggesting is that in actual fact one doesn't even technically need a front end framework and yet still be able to fully do a SPA with ajax that doesn't rely on mashing the data and UI code on the server side. In fact you can watch my earlier video where I pretty much do that using Hono + Deno that has ZERO JavaScript build tooling, dependencies (client side) and zero frameworks, just raw JavaScript etc. Having built many modern production sites, I don't agree with this assessment that it's complex to maintain, are *some* frameworks overly complex? Yes that part I will absolutely agree with (I'm looking at you React!). But we shouldn't tar all frameworks with the same brush as that is unfair and incorrect. I would suggest that using Vite + Vue will be dramatically more productive than doing SSR, I know because I've done *both* commercially multiple times, and I know which one I pick every time and it's *NOT* SSR.

    • @tomitomion1179
      @tomitomion1179 8 годин тому

      90% of sites you use on daily basis are built with heavy frontends. What ppl was creating decades ago is not relevant anymore

  • @chad_giga6934
    @chad_giga6934 20 днів тому

    If a philosopher becomes a programmer 😂 Great video man

    • @watthedoodle
      @watthedoodle 19 днів тому

      Thank you I'm glad you liked it! 👍

  • @arupde6320
    @arupde6320 20 днів тому

    github ??

    • @watthedoodle
      @watthedoodle 19 днів тому

      my GitHub account is displayed in the video footer. It's github.com/watthedoodle/ If you mean the specific repo used in this video session then that can be found here: github.com/watthedoodle/toy-html-builder

  • @ewhorlow
    @ewhorlow 28 днів тому

    Thanks a lot, just what I was looking for to get started. For me, it wasn't auto-starting on reboot, so instead of using: > sudo systemctrl start docker ... I had to use: > sudo systemctrl enable docker

  • @init_bobjames
    @init_bobjames Місяць тому

    nice project wat the doodle! lets goo, lets make html element nodes and overload the dom, html bomb, can we do it?

    • @watthedoodle
      @watthedoodle Місяць тому

      thanks Bob! we can create fork bombs in the shell, but that's because the shell can spawn a new process, sadly HTML is interpreted and static so we can't create the equivalent or at least to my understanding it can't be done! 😆

  • @yuriks
    @yuriks Місяць тому

    Good response, echoed a lot of my own thoughts when reading the article! Regarding point 5 of the tl;dr (10:15) my understanding of the author's point is that he considers that people use C or Rust (or other systems languages) unnecessarily, in contexts where application languages (of which Go was offered as one example) would suffice. I'm not very persuaded by that either, however: 1) In my experience at least, most greenfield applications or servers these days are already not written in C to begin with. This is a part of the problem that has already essentially solved itself via market pressure, because people were unhappy with the productivity that C afforded them, and have already migrated to languages like Python, Go, or Javascript. There used to be a time when large desktop applications or tool suites were entirely written in C++, which in many cases was the only viable alternative at the time, but my perception is that this isn't really common anymore today. 2) It is not always a linear step up in safety/ergonomics along that chain. Go lacks protection against multithreading bugs, and infamously has had poor abstraction capabilities around things like error handling or generic data structure types (until recently). Python codebases with dynamic typing rapidly become hard to reason about once they grow past a certain size, causing productivity to nosedive and affecting correctness/reliability. There are many stories from developers praising Rust's features for data modeling and how they actually improved development velocity with it. etc. Memory safety bugs aren't the only bugs, and not even the only *security* bugs! Logic bugs can also affect security, and not as many languages seem to think it's important to give developers tools to adequately defend against these as well. 3) There are contexts where a language runtime might be prohibitive. Go tends to fare very well here, but deployment of Python apps to end-users tends to be challenging, and even if that's ok for servers or some kinds of desktop apps, I certainly wouldn't want to pay the startup cost of a JVM for each command in my shell scripts, for example! I think a disappointing trend with these kinds of articles I notice is that more "machine-oriented" programmers that think in C a lot seem to overestimate how comfortable the average developer is with an environment like that compared to a more abstracted or math/functional-like language. There's a learning curve, but I think their familiarity with that model tends to bias them towards assuming everyone also finds it intrinsically more intuitive to use, which I really don't think is the case. As with most things in these discussions it's hard to get actual conclusive evidence about any of these things though.

  • @init_bobjames
    @init_bobjames Місяць тому

    hey Doodle, if you haven't tried it, I'd go over the doodle outline in black pen and then try the 'Trace Bitmap' feature? have you tried that?

    • @watthedoodle
      @watthedoodle Місяць тому

      oh nice, not heard of that, thanks! I'll look into it

  • @davea136
    @davea136 Місяць тому

    Everything is crap once the PMC and their MBA locusts infect it. See: David Graeber. Saved you 5 minutes.

  • @ipontt
    @ipontt Місяць тому

    Disagree with most things on the video. We need more focus on documentation rather than getting working software fast. Focusing on the later just leaves you with rushed unmaintainable crap that can only be understood by the underpaid, inexperienced junior that was too eager to prove he's an asset to the company by getting shit done fast. I do agree that non-technical managers can be an issue, but in my experience having nobody correctly translate a client's wishes to requirements to proper documentation is just a recipe for disaster later on. Clients change their minds, then nobody is certain this change wasn't what they originally stated (or worse), the manager decides they know what the client wants and what the client wants is not written anywhere other than a nebulous 5 words sentences per requirement. And I also agree on agile snakeoil salesmen being cancerous bullshit. I had to attend a course like that and it was worthless. Full of "exercises" that just wasted hours that could have been invested in other things. All because the company wants a scrum certification.

    • @watthedoodle
      @watthedoodle Місяць тому

      Thank you for you in depth comment! While I do agree documentation is important, the issue is the first build will always be guaranteed to be wrong, this is because the problem space is *not* initially understood and things evolve as we explore the problem space. Therefore focusing on documentation first is not the correct approach as that assumes one fully understands the entire problem upfront (which we do not). But for sure documentation *after* one has an actual working platform is indeed important. Regarding juniors running wild, that is a different topic about project leadership and developer management and a good lead would nip that in the bud, but that is one for another topic. Also "correctly translating a client's wishes" that right there is actually the issue, part of the original Agile manifesto explicitly states about "customer collaboration" meaning the distance between developers and customers/users should be zero, it is precisely *because* we have all these intermediaries that all the miscommunication happens in the first place, and no amount of "proper documentation" will ever solve that. You will learn so much more when you sit right next to your customer and observe how they interact with your platform then all the documentation in the world!

    • @aaronbono4688
      @aaronbono4688 Місяць тому

      ​@@watthedoodlesure the first build won't necessarily be right but I have always put documentation first and I have been able to actually document how the interface is going to work and put it in front of users and get feedback so that we build a better tool before we ever start coding. If you do good documentation and make sure that it's done in a way that it gets in front of users early so you get feedback to refine and perfect the documentation then you will spend less time coding and you'll get closer to the target on the first build. I have been building software this way for over 25 years and it works really well and I get things done really fast and you need to do good documentation first that way the build goes really fast and everyone understands it and it's clean code and it's closer to the mark the first time we all need to get away from this stupid dichotomy where it's only waterfall or only rapid code and it's nothing in between because it's the place in between where sanity lies.

    • @watthedoodle
      @watthedoodle Місяць тому

      @@aaronbono4688 sure I agree, however from your description that sounds more like system design than documentation. But we may be arguing semantics at this point! I absolutely agree regarding system design which is very important in any build so we're are on the same page here. What I'm against is the the endless documentation with the expectation for everything to be detailed down to the last dot before anything is ever built, I don't agree with that approach! I high level design, schema design, major building blocks those are all you need initially to get going in my view. For the record in total I've been building software for around 22 years (so just a few years fewer than yourself) 😄👍

    • @aaronbono4688
      @aaronbono4688 Місяць тому

      @@watthedoodle so again it comes around to getting away from these discussions of the extreme waterfall versus the extreme dive head first into coding and start discussing the sane and effective middle ground. No matter what the topic these days we keep getting mired in discussing the extremes and we have lost sight of the fact that we live in a world of spectrum where there is plenty of middle ground.

    • @watthedoodle
      @watthedoodle Місяць тому

      @@aaronbono4688 Yes I agree there is a middle ground, and I think that is captured well in the original Agile manifesto, so it doesn't say "no" documentation and planning, because those are the values "on the right", it just advocates to try and focus more on the left (hence the spectrum). If others think "oh the left means no X" then that is also a false understanding of the original agile manifesto.

  • @halvarmc671
    @halvarmc671 Місяць тому

    If you work at a company, chances are they're not doing agile or anything close to agile. It's also not a methodology, it's a mindset. As long as you adhere to the principles, you're doing agile. So, even you get a fail.

  • @jacksonkerr4268
    @jacksonkerr4268 Місяць тому

    Tlrw; Agile is bad because companies aren't doing Agile. Not very insightful.

    • @watthedoodle
      @watthedoodle Місяць тому

      Thank you for you comment. With respect sir, that is absolutely *not* the conclusion of this video. In fact it's the complete opposite. This is clearly understood if one watches the full video.

  • @MiroslavPopov
    @MiroslavPopov 2 місяці тому

    You messed up the sort. It must be `arr.sort( (a, b) => b.age - a.age )` or, even better: ` arr.sort( (a, b) => a.age > b.age ? -1 : a.age < b.age ? 1 : 0)`. I'm not sure what is happening in your example. Another thing. `sort` is a function with a side effect. It sorts the array in place (though, it returns a ref to the same array). You should use `arr.toSorted( ... )`. A good try, but you should prepare better for your videos. Anyway, I'll put you a thumb up for efforts.

    • @watthedoodle
      @watthedoodle 2 місяці тому

      ah yes you're correct because the function is a comparison which I didn't do. Yes thanks for the correction. Yes it's mutable and has side effects, I didn't want to tackle that in this session as I wanted to focus on the procedural vs declarative. But you're correct, it's best avoid mutations as far as possible, of course in some cases it's needed and certainly locally scoped mutations are fine.

  • @ismbks
    @ismbks 2 місяці тому

    the topic looked very interesting but i had to stop the video because it is unwatchable on mobile devices think about increasing your font size, especially if you only use 2/3 of the screen real estate in your videos

    • @watthedoodle
      @watthedoodle 2 місяці тому

      Thanks for the feedback! noted. I will look into ways to improve the experience for mobile devices 👍

  • @steventompson-yu5wm
    @steventompson-yu5wm 2 місяці тому

    theres lot of alternatives to neofetch!

    • @watthedoodle
      @watthedoodle 2 місяці тому

      absolutely yes, I just wanted to add my "Yet Another Fetch" YAF 🤣

  • @init_bobjames
    @init_bobjames 2 місяці тому

    great to see the progress doodle, both in your content and the hyperfetch rust project 👏👏👏👏

    • @watthedoodle
      @watthedoodle 2 місяці тому

      morning Bob! hope your day is going well! thanks for the kind words!

  • @init_bobjames
    @init_bobjames 2 місяці тому

    lets goo doodle 🙌🙌

    • @watthedoodle
      @watthedoodle 2 місяці тому

      Loaded up on morning Coffee and ready to go! thanks Bob! 😁