It was an enlightening exercise. The point was David had to learn the purpose of these dependent libraries by justifying their existence first; understanding exactly what they do; and introducing them incrementally. He learned on an empirical basis, much more than if he had used those libraries merely because everyone else is using them. Building apps in Javascript may result in great user experiences, but it can also induce confusion, delirium, and migraines in newbie learners of these rapidly proliferating and rapidly obsolescing tools. Only by spending many hours in the trenches with these libraries can you overcome Crippling TMC Syndrome (too many choices) and attain a state of productivity.
@kimichen8866 жыл бұрын
JS feels like a needed evil when I try to bring technologies to my classroom. Nothing works but the browser but after knowing clean languages like Python, I just can't swallow JS no matter how much I want to. Thanks for your presentation. Now I understand why JS needs to be built this way and maybe give me some hope to try again. 😀🙏🙇
@threeone60126 жыл бұрын
I work for myself so I'm allowed to program vanilla.js all day. Don't hate the player, hate the game.
@MrVankog7 жыл бұрын
As someone who is currently learning Javascript, I feel completely overwhelmed by the framework and Ecmascript versioning hell. You can't really do anything with plain js at all beside simple algorithmic computation. This video really, really helped me in understanding what these common frameworks are there for. E. g. I had some jasmine tests with require syntax. node can't run it yet. Jasmine standalone can run it fine, tough. JsWebdriver with jasmine can't. Karma can't, because all the browsers I tested can't. (just today Chrome 61 finally can...) So running jasmine karma can't neither. It requires extra setup to initialize require.js. But this led to errors from require.js that needed another require syntax instead. So finally, with lots of effort, days of frustration and code changes it works. And then I found out about jest. Installed it, gave it some minor configuration, and it works out of the box with the original require syntax in the jasmine specs... It was a frustrating odyssey deluxe with lots of plugins that turned out to be outdated, interoperability problems, versioning issues etc. Basically I expirienced Javascript as hell. And I'm really tempted to throw it and learn C# or Go instead...
@davidvujic7 жыл бұрын
MrVankog I am happy to hear this session was useful, thank you for sharing your thoughts! But don't give up on JavaScript yet! :)
@ryanmoody57037 жыл бұрын
I would have to disagree with you. You can a lot more with JavaScript then just simple algorithmic computation. You can make a light front end to backend using just JavaScript.
@MrVankog7 жыл бұрын
Ryan Moody sure you can. It's Turing complete. But it's virtually impossible as a Newby. Because every tutorial or course starts with at least one framework that you have to use. E.g. Exercism needs jasmine, node and therefore npm Coding Train needs p5 Any web development course needs react, angular, vue or whatever.
@user-sw1wq8lh2w7 жыл бұрын
you want an easy time writing unit tests? I highly recommend jest, just dump all the cruft and write tests. lol, just noticed you switched to it. awesome. I tried mocha + chai, intern, nightwatch, even tape. Jest is great, super simple, includes what you need.
@lakeacres97506 жыл бұрын
Exactly! Although until the day browsers in use around the world have adopted newer specifications, I think there is a place for frameworks to help us out.
@CaptainAardvaark7 жыл бұрын
I dunno about anyone else, but I find the dependency hell of modern web development nauseating. It feels like languages on top of languages on top of languages- how do you keep control of your code?
@bavidlynx34094 ай бұрын
Thats the point of good code why not code fucking code the internet again whenever you need to push some data to a service 🤡
@WillKriski7 жыл бұрын
So true. When something goes wrong you realize then you don't understand what each module is doing.
@projectivemotion7 жыл бұрын
Good video. I remember back when people used to think javascript was java.
@Liberalite7 жыл бұрын
Some people still do.
@rajashahja89756 жыл бұрын
he is very intelligent, a blessing for typical JS professionals
@griffadev7 жыл бұрын
A good video though, it was unfortunate that the speaker turned to React, whilst people say React is just a library, i find this a falsehood. I've often found Reacts lifecycle and Virtual DOM causes a lot of interoperability issues, when trying to share components across projects. A true component model should allow you share modules across projects, and swap pieces in and out. Think this isn't true, try using Vanilla Custom Elements and the new Shadow DOM spec into some of your components, and use it with React. You will encounter issues, leading me to strongly believe React isn't what its advertised as, a UI Library, it's an opinionated Component Framework that forces you to write and expose components the way that it wants you to write and expose components. It would be cool to see how the Custom Elements spec influences projects like this, where you progressively enhance your architecture, where you can write code that has zero run time dependencies, and just uses the browser Platform features, and build process to transpile and polyfill when features arent available
@pimbrouwers10047 жыл бұрын
This is why I use knockoutjs instead!
@Mark-qc8iu6 жыл бұрын
I thought this was going to be a joke about how awful the state of js libraries are, but the punchline never came. This was an advertisement for how ridiculous things have become. I could do what he's trying to do in his example in about 5 total lines using basic javascript requiring no additional libraries or packages.
@kefleyohannes41587 жыл бұрын
Watch on speed 1.5x because the speech is so slow!
@raghavkanwal7 жыл бұрын
Thank you. :D
@andrewcameron58527 жыл бұрын
x2 worked perfectly for me!
@williamramirezlizano7 жыл бұрын
Was just about to say the same. 1.5x makes it bearable.
@VikasPoonia5 жыл бұрын
3x here
@KANJICODER Жыл бұрын
JQuery is a great language for writing HTML in a vertical monitor or otherwise column-limit friendly way. Super long CDN url? No problem, break it up into sub strings.
@maskman48217 жыл бұрын
so many libraries, frameworks, all emphasize that pure javascript dom is pain in the ass, and jquery is not enough, react, angular, vue, amber and on and on.....and when it comes to mobile, jquery mobile, bootstrap, ionic native, react native, nativescript, framework7 and on and on... from es5 to es6 now es8, all achieve the same thing.....we have to learn new technology each and every single day if we go with javascript, html, css.....
@LarsGyrupBrinkNielsen6 жыл бұрын
21:37 Actually, both Chrome, Edge, and Safari supports script tags with type=module: caniuse.com/#feat=es6-module and it's awesome!
@alexandertsvetkov7 жыл бұрын
I dunno... personally, can't say that the message came across. I second the idea of learning all frontend-related tools one by one instead of relying on "quickstart" templates or scaffolders like create-react-app. But I still don't see how this is suitable for 45 minutes talk.
@thomaslang6227 жыл бұрын
you built a widget, but without being able to put two of them on a page then its not really a component is it. have you thought how you would accomplish this. in other words, have the widgets click events not occupy the globab namespace
@AmitErandole7 жыл бұрын
For those searching for the repo: github.com/DavidVujic/vanillajs-components
@JuanPabloSalaMDQ7 жыл бұрын
Liked it a lot, thanks
@unknotmiguel7 жыл бұрын
Just didnt explain how the browser will select each compiler.js according to browser version? Is that automatically or what...
@brubrunda97836 жыл бұрын
User should be able to make search and accordingly product should be displayed. Now it’s up to you how you display. Use any front-end frameworks you like. Sir please send how to do this code
@nacancanyokamziku1247 жыл бұрын
so he used +- 5 tools (meaning couple of dozens of thousands of files downloaded via npm) to achieve laughably trivial functinality; what tools would he recommend for building os of an space shuttle? brain maybe?
@davidvujic7 жыл бұрын
Načančaný Okamžiku I probably wouldn't choose JavaScript. Npm would take forever to use out there in space :)
@nacancanyokamziku1247 жыл бұрын
don't know, man, currently if you want to use babel, you need to install presets localy; it doesn't work otherwise, because that's the way cool kids use tools these days; that's +-3-4 thousands files (for es2015 preset alone, i mean preset, the basic babel can probably do nothing on its own) inside your project directory; storage is cheap, yeah, as is the mentality that allows one invent or worship yet another way how to read data from db, display them, present UI to modify them and store them inside db; i get it, you all create facebooks, twitters or some other very important complicated websites, so you really need baggers 288, it's just that sometimes it looks more like bagger 288 caught in a storm inside a glass of water
@JorgeDev927 жыл бұрын
It's not about being a cool guy, it's about not being decrepit. I you dont want to have 200 MB in packages, then do tree shaking and get what you need. In dev i dont care about if i have 1 or 40K files in node_modules because the app runs exactly the same. You dont need to deploy Twitter for using strong tools. It´s a time cuestion, I prefer for example to use Angular with CLI (webpack) instead of reinvent the wheel with vanilla js. When you finish the app, you just write ng build --dev and you have a strong SPA app in 400kb wich is what your prod server needs not the 40k files. Dont understand the mind of some devs who would prefer to continue with ES1 if you ask them. PD: i am not english, sorry if it's difficult to read or if it seem so rude.
@pamelagerber99897 жыл бұрын
just trying to understand this web site. pretty hard but I'm trying.