Readit News logoReadit News
mrits · 9 years ago
I made a pretty sophisticated Angular app a few years ago which is still selling and being maintained by other devs on my team. I started helping my friend with a new app and realized I'm already obsolete. Screw frontend development, I'll come back when things settle down.
MatekCopatek · 9 years ago
There are multiple ways to look at that.

My previous job was on a product that used CoffeeScript and Backbone. As a stereotypical front end hipster, I was worried at first. I thought: "This is really old stuff in JS time. There are shiny new things out there". But I soon saw that while it would be more fun to use a new framework/language, the old ones are _totally fine_.

CoffeeScript was last updated a week ago. Backbone was updated several times last year and 1.4 is expected some time soon. There are online communities, there is documentation, there are answered questions on stackoverflow. Yeah, everything feels a bit old, but there won't be breaking changes to the API every few months and that blog post from 2015 that solves your exact problem is still useful!

Try looking at it like Angular is a language, not a framework. Sure, there are fancier ones coming out all the time, but that doesn't mean you have to switch every time that happens. The one you know has a bunch of apps built in it, you can still learn about its intricacies and there will be jobs for you for quite some time.

rkunnamp · 9 years ago
I am the sole front end developer at ReportDash, an online report and dashboard builder. We use backbone, backbone layout manager & coffee script and never ever once regretted the choice. The code is highly organised, thanks to the structure provided by backbone layout manager, and is pretty much readable and extensible. And not even once I felt limited by the framework.

The code has got quite complex over time, and I strongly suspect I would have gone mad if I had used a different framework. I used to wonder why the hype over react, vue, angular etc.

schlowmo · 9 years ago
I couldn't agree more with your comment. If you found your favorite framework, which is still maintained and gets the job done, then stick with it unless you have very good reasons not to (and "it's uncool to use this long established framework" isn't one of those reasons).

I saw so much flawed frontend code which wasn't written by bad coders but by people which try to use always the fanciest and newest thing out there. Even if the docs written in marketing language claim otherwise, there's always a learning curve and it doesn't make any sense to switch the framework as soon as the learning curve getting flat.

milesrout · 9 years ago
One reason that Angular feels more like a language than a framework to me is that it essentially has its own module/dependency system with all the dependency injection stuff.

It don't even use Angular's D.I. to test things. We don't have any tests in our app, what would you even test? It just displays data it gets from various sources.

But this:

    angular.module('...')
      .controller('BlahController', function(a, b, c) {
        'ngInject';
        ...
      });
is still clearly better than this:

    var a = require('a');
    var b = require('b');
    var c = require('c');

    exports.BlahController = function() {
      ...
    }

collinmanderson · 9 years ago
This is why I still use jQuery :)
ChristianGeek · 9 years ago
I'm 56 and have been programming for 40 years and counting. I'm paid extremely well for one reason...I've never stopped studying and learning.

If you want to base your future on something you already know, you're in the wrong profession.

mrits · 9 years ago
I'm not sure having to learn how some kid decided to design a new package manager is what we should be re/learning. If anything it might kill your career as you keep learning basic libraries and never understand the underlyings.
kbart · 9 years ago
Learning fundamentals and mastering every shiny, new frameworks that will be replaced in few months (years max) are totally different things.
tracker1 · 9 years ago
Thank you... 42 here (at it about 20 years now), and I can't imagine where my career would be today if I stood still at any point. Even in the JS and front-end space alone there's a lot to learn. There's adjacent tech too (various db's, cloud providers, ci/cd, docker, etc). It hasn't stopped or stood still and never will.
k__ · 9 years ago
I have the feeling Angular was fad.

I met many people who bet on it, but most of them, even the 'fanboys' didn't seem to be 100% convinced of it.

"We panicked multiple times, bit it always turned out we were wrong and just didn't do things the Angular-Way"

Ember, for example, is kicking it for a much longer time, even with fewer ppl using it.

thewhitetulip · 9 years ago
I am using Vue, which is much simpler than Angular. With Angular2, I spent a few weeks and still wasn't able to understand how things are working, contrast that with Vue, I was up and running within one week, migrated my html only app to use AJAX in a matter of a week!

https://github.com/thewhitetulip/Tasks-vue

Vue.JS is great to use!

jpalomaki · 9 years ago
For those thinking about Angular2, I would recommend angular-cli[1] and then going through the tutorials in Angular documentation[2].

Angular-cli because it provides a scaffold for getting started with the project and getting something up and running. The documentation feels pretty good. I like the example app they are building and the documentation format (they provide the full source code for the files right there in the documentation, no need to navigate to somewhere else).

[1] https://github.com/angular/angular-cli [2] https://angular.io/docs/ts/latest/

FanaHOVA · 9 years ago
I worked with Ember at a YC company a year and a half ago. At the time at least, it was really hard to find good docs about it; I read Ember.js in Action, but it was already mostly outdated since ember-cli was just released. Lots of help ends up being found in random gists or people's blog on page 10 of Google Search. I haven't touched it since last winter though, so not sure how the situation has evolved, but I'm sure that was one of the big entry barriers for Ember.
lacampbell · 9 years ago
I have the feeling Angular was fad.

The only client side JS library that doesn't seem to be a fad is jquery. Which now has backlash - maybe that's a sign of success in frontend dev land?

awjr · 9 years ago
Honestly I had hoped Angular 2 (with iminent release of 4) would be the holy grail. It took soo long to come out, I dabbled in React and have not looked back. However I'm under no illusions that "this is it". Vue is definitely one I want to explore.
gspetr · 9 years ago
When I hear the word "way", I reach for my gun.

Seriously though, if there has to be a certain "way" of using some technology I can't help but remember Code Complete, that you should always code into a language as opposed to coding in it.

sdegutis · 9 years ago
People are less and less understanding of the fact that nobody lives in a vacuum and all our actions affect other people. They're stressing individual liberties, which you see in the mainstream political opinion of "if it doesn't directly affect me then why should I care?", and that same guiding principle is also pushing developers to make gigantic changes without any regard to the waves, splashes, or ripples they make.
ChemicalWarfare · 9 years ago
I work for a company with a couple of heavy Angular-based apps. They are pretty easy to support/extend for anyone with a decent level of JS knowledge. The backend API they are talking to and some of the business logic in the apps is kinda tricky but that's not angular's fault per se.

The downside is for candidates looking to add a hot shot tech to their resume, Angular isn't all that sexy, but for anyone with JS knowledge willing to spend a couple of days getting up to speed with the app itself (the "tool stack" is minimal - npm, grunt, bower, browserify and since it's an existing app they are learning by example) - this is almost a no-brainer.

iagooar · 9 years ago
It should be called Front-End Developer Handbook Early 2017. Or even early Feb 2017 ;)

Now seriously, how's the front-end progressing currently? Has the pace become a bit more humane?

hakanito · 9 years ago
> JavaScript will settle, and hopefully, CSS will erupt and everyone will cry fatigue until it settles.

Sounds pretty accurate. My perception is that a large part of the JS community has started to settle on React with Redux/MobX for state management.. Facebook also really lowered the barrier to entry for React with create-react-app. CSS is still up in the air a little bit, with many different solutions still being used. Sass, CSS-in-JS, CSS Modules+PostCSS and most lately styled-components (which is very promising, but lacks features like universal rendering out of the box).

mattmanser · 9 years ago
Not sure why you think it's settled, just look at any recent js/react discussion here and search for the word "vue".

It's Vue.js everyone's raving about now. React is so 2016.

In early 2015 you might have said the same about angular.

The other moderately amusing parallel is that it used to be people said angular was for a full project and react you can use a lot or just a bit. Now people are saying react is for a full project and vue can use a lot or just a bit.

mxstbr · 9 years ago
Just to note this here: SSR support for styled-components is almost finished and will be released after some testing on real projects in a few weeks as v2.
ktRolster · 9 years ago
I think WebAssembly is really going to shake things up here in the next few years.
taude · 9 years ago
Not sure how you'd come to the conclusion that "large part of the JS community has started to settle on React", other than confirmation bias of reading Hacker News and a lot of recent discussion about what the new hotness is.

I'd rather use a gauge of number of people showing up at Meetups, number of jobs in job searches, etc.

At my current guess is that the AngularJS camp is at least 4x the size of the React, and even that number is likely low since Angular is a lot more stabilized in all the enterprise environments.

thejosh · 9 years ago
You just hear more about React because it's the "hot new thing".
tootie · 9 years ago
Toolsets change but the core principles are pretty stable. I've been around for all the paradigm shifts. When browsers first had DOM APIs and CSS. That was when FE dev first became a dedicated job. Since then we've just been layering more and more abstraction on the same stuff.
rpcorb · 9 years ago
I'd argue that front end development tools are complex and varied because the craft itself is complex and varied. Try to strike the optimal balance between usability and fine control. It's not easy. How to welcome newbie developers with intuitive tools while not frustrating experienced ones with blunt instruments. Imagine all the schools of thought for how to best achieve this delicate balance. Not to mention beauty and elegance in design.
kbart · 9 years ago
Front-end is not fundamentally complex at all, the only complexity comes from ever changing tools and techniques. I occasionally create websites (approx. one or two per year) for my own or family/friends use and every time I have to learn everything anew, because the tools I used a year or even several months back are no longer around or have changed beyond recognition.
romaniv · 9 years ago
This is what J2EE developers said back in the day.
ergo14 · 9 years ago
Just take information there with a grain of salt. The what to expect in 2017 section says that web components will never gain traction where in fact one of the biggest enterprises in their industries adopted them already: Github, Slack, Comcast, USAToday (Ganett), ING, Coca-Cola, Electronic Arts, General Electric, Google, Youtube and others.

Just https://www.webcomponents.org/ reached over 500 reusable elements, just polymer slack channel is now 6,5k users.

The current growth and adoption looks very bright, chrome, opera and safari already shipped 1.0 versions of most of the spec (so no polyfills are needed), firefox is close behind and edge is implementing right now.

If this is not traction then I'm not sure what is. I'm not even accounting for other libraries/frameworks like x-tags, bosonic, svelte and others.

GeneralMaximus · 9 years ago
Have you used Web Components as part of a large project? What has your experience been?

I'd love to start pushing them to my clients, especially non-tech companies who can't afford to rewrite all their code every time a new framework becomes the fad, but I'm still kinda unconvinced. I'd love to read some real-world case studies.

ergo14 · 9 years ago
Well if you want "big" cases you have Google Play Music, Youtube (gaming site, + the main one is being rewritten right now - you can force beta with some cookies), electronic arts sites like battlefield1 and others. Watch polymer summit streams they show some really high profile sites that use webcomponents.

Personally I've introduced web components using polymer library in two ways - upgrading legacy jquery based application and when starting a fresh CMS system with admin panel that is 100% SPA built with polymer (kind of like weebly interface - its not public yet).

It worked well for both of my cases, It felt quite similar to my previous angular 1.5+ component based approach (so I suppose it would be comparable to react/vue development).

Right now you can use polymer-redux or polymer-uniflow if you want to structure big application data flows.

I haven't encountered bigger obstacles or problems compared to other solutions I've used in the past.

I've integrated 3rd party libs like crossroads-router or quill editor just fine.

I looked a bit at Angular 2.x but for me Polymer look way more natural in terms in how applications should be build on the web.

What I did miss was a routing element like angular's ui-router (I didn't like `app-route` element)- but this is currently being worked on and there is a POC ui-router port for Polymer already.

arvinsim · 9 years ago
I find this surprising because all I hear about are React/Angular/Vue.

At this point, I am likely to stick to React because of the support and community. But I could see myself using web components if it reaches critical mass.

sjcrank · 9 years ago
This link will get you to the handbook content: https://github.com/FrontendMasters/front-end-handbook-2017/b...
Nimsical · 9 years ago
It's rather ironic that the front-end developer handbook doesn't support mobile devices.

Doesn't inspire confidence.

kagamine · 9 years ago
There is mention of mobile devices as early as page 8. There are 31 uses of the word "mobile" in the document. The document does not tell you how to build a website, it tells you about the tools you can use to do so reading as a series of lists linking to those technologies and a series of graphs. If you want to know about media queries for example, you have to follow the links. It's not meant as a PDF version MDN or W3schools.

edit: not usually one to complain about downvotes, but the document is literally what I described it to be. So, why?

fancy_pantser · 9 years ago
I think he meant that gitbooks doesn't have a responsive layout when you hit the "read" button instead of downloading a PDF, ePub, or mobi. The book's content is unreadable and cut off in my mobile browser when I try to read it that way.
tmnvix · 9 years ago
I think you have been downvoted because you missed the point of the parent comment. The HTML version of the handbook is not readable on mobile (the table of contents leaves no room for the content).
pc86 · 9 years ago

  'support' <> 'mention'

fpgaminer · 9 years ago
I did LAMP+HTML+JS+CSS stuff back in the day, but most of my work and hobbies over the past six years has not involved front-end. I only recently got back into the scene. I've dabbled with React and crew in quite a few hobby projects now and, at this point, I just find the whole modern front-end development stack completely wacky.

I always liked Javascript as a language, but like everyone else had the scars to show for its thorny bits. Looking at the modern stack from afar left me fantasizing about all the painful points in Javascript being fixed. ES20XX, Babel, webpack, npm. Wow!

To be honest, a lot of the modern stack _is_ nice. But for every step forward these tools take, they take two steps back.

We have a nice package manager, npm, yay, but what happens when I `npm install -S bootstrap`? Nothing. Oh sure, it installs it, but how do I _use_ it? It's tossed in node_modules, where there's no sane way to reference it. I ran into this problem immediately, on my very first hobby project. It's now two years later, 2017, and it's still a problem that requires googling around, sifting through old answers, and finding the hack that I find least painful.

Breaking up libraries into manageable sub-packages. Sounds great. It's fundamental to strong development. But usually you have a master application/library that references all the pieces, if the pieces were meant to be part of a coherent whole. But front-end devs? shrugs You just have to include everything by hand. Has seriously no one looked at their package.json in a simple TODO app and said "Something is wrong here"? How is a 20-30 line list of dependencies normal for the most basic of applications? It isn't. It's isn't maintainable. No one is going to remember all the packages they need to include each time they start a new project. They're doing what I'm doing; copy paste from the last project, like some holy script scrawled by ancient masters from long ago.

Fancy new JS language features are nice. `for of`, `for in`, filter, map, etc. But seriously I can't use `<SomeThing onClick={this.handleClick}/>`? I have to use binding magic, special function definitions, etc? Because _nobody_ has to register event handlers, right? Geez. And why did they spec a standard for classes, finally, but not static methods and types!? That had to come in another version later, leaving yet another legacy of out-dated documentation?

Webpack, like everything else, is an improvement by the numbers. Writing modular javascript and getting it packed into a bundle is nice. Almost like a real programming language! But why do I have to write a cryptic webpack.config.js for every project? Why do I have to install Babel and webpack separately? Why do I need to install 3 other babel related packages? Why do I need a .babelrc? It's just insane. There should just be one tool, one command. "modernjs build". Done. Break that one tool into sub-libraries/sub-tools underneath, I don't care, but when I'm building fancy Uber-for-breastmilk Web 2.0 SPA, I'd rather focus on UX than spending my evening configuring compilers to what should be their defaults.

The most frustrating thing, and a common theme, is the amount of times I need to Google things while developing with the modern stack. "Oh, ummm ... how do I export/import?" "How did I configure webpack last time?" "Errr ... how do you include a bootstrap theme?" "Was it `in` or `of` to iterate over values...?" "How do you filter in place? Oh, you can't ... okay..." A lot of that sounds like basic stuff, like "How do I export/import", but ya know what? The way it's implemented in modern JS is just not intuitive. Call me dumb if you want, but I've dealt with a _lot_ of languages in my time, and JS is the one where I cannot possibly remember the exact magical incantations for specific kinds of exporting and importing. And really, that's how everything is. It's just cryptic and non-intuitive. The underlying concepts of any of these major tools or systems is sound. The implementations are gibberish.

As much as I'd like to say "sorry for the rant", I'm not. Something is horribly wrong with developer culture if this abomination is what we've created. There's no excuse for it. I've heard people argue that all of this is just a result of front-end being in-between stages of its life, and that things will eventually settle down and be stable and usable in a few years. But you know what? Rust, a completely new and modern programming language, went from nothing to a thriving ecosystem in just a matter of years. It was driven by Mozilla, hardly the largest company. Meanwhile MASSIVE companies like Facebook, Google, Amazon, etc have given us the "modern front-end". There's no excuse for the ecosystem to be in this state.

"But you don't have to use all those libraries and tools!" Of course not. I could just LAMP+HTML+JS+CSS it up like the good ole days. It worked then, it works now. But it frustrates me that there exists tools that _should_ be better. npm _should_ make life easier. ES2017 _should_ make Javascript a better language. I tried out these tools for a reason. Old school development was painful. Javascript with modules and packages, reactive UI, state management, etc. It's all awesome! I'm not messing about with the tools for no reason.

Imagine if I sold you an automated potato peeler. "It'll peel the potatoes for you in seconds!" And it does! But turns out you spend more time cleaning it than you spent just peeling potatoes the old fashioned way. That's what the modern front-end tools are like. They take the painful parts of old-school front-end and make them easier, but they add tons of busy-work elsewhere that ends up making things a net negative.

StreakyCobra · 9 years ago
> But seriously I can't use `<SomeThing onClick={this.handleClick}/>`?

Give a try to Vue.js, you can do exactly this. This framework reconciled me with frontend development after I discovered it on HN. Let's say you want to build a custom button with a special functionality and reuse it, like a button that logs when it has been clicked. Simply create a component like this (it's almost self-explanatory):

    <template>
        <div class="colored-box">
            <p @click="logClick">{{ text }}</p>
        </div>
    </template>

    <script>
    export default {
        name: 'LogButton',
        props: [
            'text'
        ],
        methods: {
            logClick: function () {
                console.log('The button "' + this.text + '" has been pressed"')
                this.$emit('click')
            }
        }
    }
    </script>

    <style scoped>
    .colored-box {
        background-color: red;
        border: solid 1px black;
    }
    </style>
There are 3 sections in the file, one for the HTML template, one for Javascript code, one for CSS style. All this belongs to the same components, so the methods you defined in the javascript code can be called directly from the html template as you wanted.

Once your component is ready, you can use it in other files, and in a damn simple way:

    <LogButton text="Delete" @click="…" />

CharlesW · 9 years ago
I really like Vue, and I love single file components.

React folks: Is there no way to do this with React? I may need to use React soon, and if it can't do this I'm going to be pretty sad.

Terr_ · 9 years ago
It's not hip, but Dojo has similar markup.
onion2k · 9 years ago
There should just be one tool, one command. "modernjs build". Done.

You seem to be building an argument based on the idea that there's "one true way" to write web applications. There isn't. People have very different ideas about what's best. While ostensibly different tools do the same job, they take quite different approaches. For example, take "gulp vs grunt vs make vs npm" for the build process. gulp uses "JS with a framework" for config. grunt uses json. make uses unix-y scripting. npm uses JS but plain node.js without a framework. Those are opinions, and there isn't a "right" one.

Suggesting there should be one tool for compiling web apps is a bit like suggesting there should be one C compiler for compiling C programmes. There can only really be one tool if there's only one way to do things, and that's simply not the case. With different approaches comes different tools.

But, all that said, it doesn't matter to an individual developer. Choose the tools that suit you, learn them, and be happy. Whatever approach you take to development is far less important than writing software that works for your users.

fpgaminer · 9 years ago
> You seem to be building an argument based on the idea that there's "one true way" to write web applications.

Nah, you misunderstand me. I'm saying webpack+babel should be a single program with a sensible default config. I didn't mean to imply anything grander than that.

> Choose the tools that suit you, learn them, and be happy.

If someone decides to use Webpack+Babel, I don't think they're going to be "happy" about having to memorize a list of at least 9 different npm packages and 35 lines of configuration. Not to mention re-memorizing the new sets of packages and configurations every six months when some maintainer decides that package X should be split into packages Z, Q, and R, or that the current configuration tree is "wrong" and needs to be tweaked in backwards incompatible ways.

webmaven · 9 years ago
It's OK for tools to be opinionated and for there to be advocates for modernjs build vs. newjs build vs. stdjs build. It is even OK for there to be configuration knobs to twiddle. But the GP is absolutely correct that not enough effort is put into choosing good defaults that most developers won't need to fiddle with just to make tools work well together.

Right now, FE JS development mostly has a terrible OOTB experience.

kagamine · 9 years ago
That was similar to my failed attempt to make an app with Meteor. Not having much free time I seem to have started at the wrong time so that halfway into learning the framework and applying it to my own project, Meteor got an update. Being still in the learning phase I updated to be working with the latest stable version, something which broke the app, so I spent time fixing that, then the free hosting tier was dropped and for a hobbyist who was making an app that was guaranteed to never generate revenue ever ever, it became too expensive to host in comparison to a traditional $10 host with a mySql DB. And what was I doing anyways? Meteor Blaze? Was that the correct choice? Or was Meteor & Angular a better choice? Or was Meteor React the way to go? Or if I'm using Angular or React why am I using Meteor? Ended up with so many questions about whether or not I was using the right stack for me, and as I said, not much time to work on it so looking for something that wasn't going to be abandoned in 6 months time, in the end I just gave up on that project.

It doesn't help either that these js communities are splintered around every tiny issue and forked every other week (mean.js! is where I started the whole process). The feeling that there is zero permanence one week into a project does not inspire confidence either in my own project or the tools I have chosen.

lucaspiller · 9 years ago
DHH recently posted a comment on Quora about why it's still valuable to learn Rails in 2017 [0]. I don't agree with everything he says, but he is right that the Rails ideology was a big thing for web development in the '00s. Yes both Rails and Ruby have their issues, but if you look at what was around before it was a breath of fresh air.

I keep hoping the JavaScript community will have the same epiphany, but so far I'm still dreaming. Yes there are boilerplates that give you something working out-of-the-box, but still you need to keep up with which boilerplate is the latest and greatest. I'd argue Rails being so opinionated was one of the reasons for it's success.

[0] - https://www.quora.com/What-makes-Rails-a-framework-worth-lea...

z3t4 · 9 years ago
> But seriously I can't use `<SomeThing onClick={this.handleClick}/>`?

That's what you get by shoehorning XML. Here's how you do it:

  var someThing = document.createElement("button");
  someThing.onclick = handleClick;
HTML is a fun an powerful language, but it should only be used for static web pages or old school server rendering.

terragon · 9 years ago
You can also use <SomeThing onClick={() => this.handleClick()} />
insin · 9 years ago
> No one is going to remember all the packages they need to include each time they start a new project. They're doing what I'm doing; copy paste from the last project, like some holy script scrawled by ancient masters from long ago.

If it hurts, don't do that then - put all your build stuff and devDependencies in a separate module and install it into your next project like any other development dependency, adding new capabilities as you need them and bumping the version number when you need to like any other tool. You can start doing it yourself [1] or use one someone else made earlier [2] - there are an increasing number of these toolkits about.

> But seriously I can't use `<SomeThing onClick={this.handleClick}/>`?

You can do exactly that if you're using React or one of the many libraries which use React-like conventions (Preact, Inferno, Mithril.js etc.), so just use one of them.

> But why do I have to write a cryptic webpack.config.js for every project? Why do I have to install Babel and webpack separately? Why do I need to install 3 other babel related packages? Why do I need a .babelrc? It's just insane. There should just be one tool, one command. "modernjs build". Done.

You don't have to, and there are lots of tools which will take care of this for you (see [2] again). That's the exact same workflow I wanted, so I created it for the types of projects I'm working on [3] - it doesn't take much extra effort to turn your own preferred build setup into a command.

[1] https://github.com/insin/ad-hoc-reckons/blob/master/Creating...

[2] https://github.com/facebookincubator/create-react-app#altern...

[3] https://medium.com/@jbscript/quick-development-with-nwb-35f3...

fpgaminer · 9 years ago
> You can do exactly that if you're using React

No, you can't. This is broken:

   class Foo extends React.Component {
       render () {
           return (<SomeThing onClick={this.handleClick}/>);
       }
   
       handleclick () {
           this.setState (blah);
       }
   }
It _shouldn't_ be broken. I don't agree with any arguments about the semantics of Javascript, this, scope, binding, etc. It's a pain point; something every developer runs into. It should be fixed. Instead, we have about 10 ways of working around the problem. In all the revisions of the Javascript that have gone by, nobody fixed this _very_ common usage of the language. Instead they just added more workarounds.

> it doesn't take much extra effort to turn your own preferred build setup into a command.

Here's the thing. Let's say, instead of selling people cars, we only sold parts. You shop on various stores for all the parts you need, depending on the kind of car you want, order them all, and then put the car together. The great thing about this is that every person gets exactly the car they want for their specific needs! And the people making the parts get to focus on a specific part, so the individual parts are will end up well designed and polished.

For a car nut, that's probably great. But most people aren't car nuts. For everyone else, this system is terrible. They don't know how a car works. They go online, search around, get overwhelmed, and decide to just follow whatever random "Build a Car in 30 minutes!" guide they stumble on. They end up with a car at the end, and now they can do what they really want to do; drive from point A to point B and forget about building cars. Until one day the radio breaks. They look online for a replacement, only to discover they don't make that radio anymore. In fact, the new radios don't fit in their dash configuration. So after hours and hours scrounging through oiloverflow.com questions, they finally piece together how to replace their dash with a new dash, without having to replace their steering column configuration. Then they get their radio, and all is well. Except now they've missed the movie they were going to see with friends, so they just go to bed and don't even use the car.

And the promise about each individual part being well designed and polished? It didn't pan out in practice. Some parts ended up really nice (React). Most parts just kept getting revised or forgotten and were never really thought through (react-router).

Most developers just want to get from point A to point B. Go from idea to app. Fiddling with packages, compiler configurations, etc, is not productive for them. "it doesn't take much extra effort to turn your own preferred build setup into a command" is the equivalent of asking everyone to build their own car. Just give them a pre-made car! If they're the type of person to want to customize their build tools and environment, they'll do that. But don't foist that burden on every single developer.

AtheistOfFail · 9 years ago
"gem 'twitter-bootstrap-rails'" in the Gemfile.

"bundle install" in the command line.

That's my approach to dealing with frontend libraries but I tend to cheat by using Rails or RailsComposer to setup my project.

carlmungz · 9 years ago
As a junior dev, that list almost makes me want to run to the hills...where I will presumably stumble upon another similarly monster-like list telling me all the things I need to learn to become [insert job role here].
douche · 9 years ago
Hint: Move to the backend. Building the APIs that crunch SQL into JSON for the react/angular/fad of the week folks to consume is much easier, and the half-life of your framework and language knowledge can be measured in years, not months.
NTripleOne · 9 years ago
Alternatively, find somewhere to work that doesn't insist on using the latest 'greatest' new fangled bollocks technology simply because it exists.
GFischer · 9 years ago
The bad thing is that it's much harder (IMO) to find freelance jobs for back-end development (especially for SQL-based stuff and not Node or Rails with Mongo or whatnot).

On the other hand, yes, the SQL coursework I did a decade ago is holding up really well :) .

jumpmancw · 9 years ago
Any recommendations on where to start with that? As someone who started with front-end because it was the easiest to jump into right away, and is now already sick of it, I'd appreciate the help transitioning to back-end. I have some PHP experience and a touch of SQL experience.