Note that there are still what I consider right tools and right conclusions. They are just under in terms of popularity and it feels like the industry is pushing me away from them.
In hindsight maybe the most annoying part isn't just the constant churn, but also how questions about x will be answered with: you should use y instead.
In some ways, it's sort of a blessing to avoid the javascript fatigue; however, in cases where we worked with clients with strong branding/UX guidelines with React components, it was really frustrating having to rebuild components entirely from scratch.
I think the largest changes are behind us - I think the big shift happened at the end of 2014 when Angular 2 was announced without backwards compatibility. It was also the time when Node had really been thrust forward as the backend language of choice in comparison to Ruby on Rails (from my experience).
Lots and lots and lots of people.
It feels like I woke from a coma and am trying to adjust to a new kind of world with flying cars except they don't really fly.
I mean, I feel insecure for writing CSS by hand, not using webpack/roll-up or a whole frontend build flow. I do like Mithril.js and Svelte though so perhaps I'll start using bits of that in my new project.
I dont think there has been much change in the javascript world in the last few years that hasnt been strictly beneficial. The biggest paradigm shift is probably the widespread use of typing on the frontend with typescript and flow.
Take a look at Svelte 3.
Just in case, I'm being serious. I'm a mostly backend dev, and haven't spent significant time working on frontend code in several years.
By way of example, I do a lot of freelancing and have quite a lot of clients that I think would be better served by a traditional web app (much faster to develop, though not nearly as rich interactions dollar for dollar. Also a lower infra bill generally.) Many of them refuse though because they've been conditioned to expect the kinds of features that SPA's provide.
I write a lot of business automation sorts of apps for SMBs. Something I see requested a lot is wizard style workflows (on a web app.) This is trivial in a SPA and a major annoyance at best in the context of a traditional app framework. I totally agree that the world might not have moved on yet, but I think it's pretty clear which way the wind is blowing. Users are expecting rich SPA interactions as the new normal.
We have 50,000~ LoC in our front-end and the Webpack development-server is rebuilding in 2-3 seconds.
Does anyone know SF companies that take this attitude? I've been interviewing all over at startups and large companies but I always feel misaligned when discussing front-end tradeoffs. I'm in the process of realigning my career away from full-stack dev nowadays because the state of frontend dev is so horrendous in my opinion. But I'd rather just work somewhere that isn't trying to turn every little thing into an SPA.
SPA's aside web dev hasn't changed much in a decade, it's just been framework churn.
If you are disillusioned then its time for something new
Almost everything on that site could be server side and there is no need for a loading screen that takes 2+ seconds to load!
Again, love what they've done, love the community, don't understand the tech choice.
Edit: I think javascript and dynamic stuff is great to use where it really speeds things up like a comment popup etc. I think of it like seasoning. Use it sparingly to make a site really great in the places that a full page reload would be a bad experience.
Given that I can get 100k image in a few seconds!!! Ie Why would it ever need more than 100k JS after compression and thus < 1s to load?
Even if it is a big size why not cache and be instant on load?
If the answer is it needs to use Ajax to load data after loading the js, then why not include that data on initial load?
IMO frameworks nowadays don't give you much more than a rope to hang yourself with, it's up to developers to recognize this. But some applications do need these patterns in order to build front-end applications with dozens of developers on the same team. The unfortunate reality is that too many people think they need use the same tech for a landing page; and too few people with front-end skills seem capable of profiling (in Chrome! nevermind trying to figure out where your GC pressure is coming from in IE11)
But this article is pretty boring. I can think of some concerns that the applications I work on need solved:
* Maintainable (TypeScript helps a ton with this)
* Stylizable/Themable (emotion/JSS, etc.; pick your poison)
* Reusable (presentational components in React; I imagine Vue could work for us as well)
* Asynchronous, reacting to events from user input/websocket/timers/local+remote storage appropriately
* Accessible via keyboard
I believe the answer is Svelte.
A redesign of the whole compilation process was undertaken - assets that were global were compiled through a different process and you pulled the precompiled results, assets that were hardly ever touched in the normal development flow were not automatically compiled instead you had to call the process to compile them, only paths or asset types that had been changed were compiled - thus if no sass files had been touched no style compilation happened, and finally you no longer had to compile everybody's subsection of the site only your own. Compile time was generally less than a second for our part of the site on my machine.
- makes code that works
- solves people's problems
- doesn't care what other programmers think
edit: the truth is a boring programmer won't even read this, just doesn't care, doesn't read hn, just does stuff
This should also have a 2014 in the title.
As far as lightweight goes, jquery is much heavier than Preact, a React clone designed to be lightweight. Only 16kb.
When I start interviewing next month I am going to dive into this immediately and if I don’t like the answer I am walking out. Interview over. They can hire somebody else to write tiny react modules.
No real content yet, but there will be regular content about my side projects.