On the current typescript / anti-typescript internet drama I saw someone mention javascript without a build step.

Do you think we’re already there?

Last time I attempted it:

  • there were too many libraries I couldn’t import
  • JSX (using babel) had a warning saying you shouldn’t do it in the browser for production
  • there was some advice against not using a bundler, because several requests for different .js files is slower and bigger than a bundled package

You always have linter steps, testing etc and a competent developer should be able to deal with all that. Of course you don’t start with all this with new students, but I don’t think that is what this post is about.

@jeffhykin@lemm.ee
link
fedilink
3
edit-2
1Y

Sure, all I’m saying is every layer has major cost, and JS development has a lot of layers. It’s a problem when new devs find a YouTube tutorial for a one page To-do app that uses a pipeline as conceptually* deep as:

  • name resolution (node modules and unpinned versions)
  • then compiling uncompiled dependencies
  • then Vue/Sevlte to TS or JS + source maps
  • then TSX to TS
  • then TS + config options + feature flags to JS+source map
  • then JS transpile CommonJS to ES imports
  • then JS through babel for polyfills (and more source maps)
  • then JS through tree shaking
  • then JS through an uglifier (and more source maps)
  • then combine JS into one file of JS (more source maps)
  • then hydration for SSR
  • then start a hot reloading dev server
  • then user can render

I think OP is asking if it’s possible for a good (no jQuery, no global varnames, etc) Todo app to work without needing all that.

And the simple answer is no. You can remove a layer here and there, but this is what the modern dev environment looks like.

I mean sure you can implement all that yourself and carry all the extra cognitive load, but it is not productive to even skip babel or so. There is no point, but the challenge.

Of course it is a bit more complicated to pick the right tools and you don’t have to use everything, but that’s a whole different discussion.

@jeffhykin@lemm.ee
link
fedilink
1
edit-2
1Y

I would disagree.

There’s more to software than big corporate websites or massive FOSS projects. I’ve made tons of little one-html-file sites, like an inflation-adjusted income calculator, a scheduling app I’ve used every week for 4 years, a chemistry converter/calculator for a class I was in, even my resume site is just a single html file. Not only that but most of my published deno modules are nothing more than a main.js, a readme, and a gitignore (no package.json, no node_modules, no install step).

You don’t need tests, and a linter, and babel, and tree shaking, and JSX, and typescript, and souce maps just to make a resume site, or an infographic, or a one-off internal dashboard, or a simple blog, or a restraunt menu. Modern ES http imports and modern JS tooling is enough.

For sure this is true, but at that this point for simple pages like that, most people will just use some sort of lowcode or no code cms like WordPress or square space etc. So for most jobs that are in web development space we’re talking about SAAS/PAAS apps, very complex media sites like Netflix/YouTube, or stuff in the financial sector. In fact I work for a company that makes a CMS just so that other corporate companies can publish their relatively simple PR websites using a low code solution, but the CMS its self is complicated af and I honestly can’t even begin to untangle all the stuff going on.

None of the tools are really made for the most trivial use cases though. Although it doesn’t take much effort to set everything up in a simple project I would probably also skip most of it. But this discussion about tiny one off projects is kinda pointless as you don’t have many of the problems to solve anyway.

I implemented a reddit frontend (kiosk mode) a while back using only vanilla JS for fun, because a previous implementation by someone else broke. There was not really a point though as it wasn’t even simpler than using the proper tools. It was just for the hell of it, but nowhere close to a “real” project.

Create a post

Welcome to the main community in programming.dev! Feel free to post anything relating to programming here!

Cross posting is strongly encouraged in the instance. If you feel your post or another person’s post makes sense in another community cross post into it.

Hope you enjoy the instance!

Rules

Rules

  • Follow the programming.dev instance rules
  • Keep content related to programming in some way
  • If you’re posting long videos try to add in some form of tldr for those who don’t want to watch videos

Wormhole

Follow the wormhole through a path of communities !webdev@programming.dev



  • 1 user online
  • 1 user / day
  • 1 user / week
  • 1 user / month
  • 1 user / 6 months
  • 1 subscriber
  • 1.21K Posts
  • 17.8K Comments
  • Modlog