Frameworks Fill Language Knowledge Gaps, Which is Great (and Terrible)

Should developers spend time learning frameworks, or focus the bulk of their attention on languages and other, fundamental skills?

In a recent blog post, Eduard Sizovs argues developers are spending too much time learning frameworks, and not enough time on core competencies. His argument rings true, to a degree; the adoption of foundational skills and languages can give you the knowledge and flexibility to handle a variety of projects and situations. He points out that, rather than learning Angular, diving deeper into HTTP and REST may serve you better.

Apple’s aggression toward those template-based apps was ultimately a move against white-label app publishers who flood the App Store with branded apps or turnkey games. Most of those apps were created with non-native frameworks. This lead us to believe Apple’s policy was a shadow-war against React Native, a non-native app development tool.

In its way, this underscores Sizovs’ argument that frameworks are less useful than languages. The goal of many white-label app distributors was total cross-platform functionality, which you can’t achieve via native frameworks. Sure, you can create a to-do list with Swift, but you can’t make a web version that updates in real-time like you can with JavaScript frameworks like React.

We may be too reliant on frameworks, too. A recent HackerRank study shows students aren’t learning frameworks that employers need, which is an effect of the education system teaching older languages (something Sizovs’ article promotes). Upon graduation, students often need to learn new languages and frameworks to become employable.

The ultimate sin is that we’re not taking the time to understand how something works. How often have you used a framework in your own apps or services, even though it wasn’t exactly what you were looking for – but never bothered to use that framework as a jumping-off point to write your own (or form-and-merge it via Github)?

Even platform providers such as Apple understand this. Its Xcode IDE has a fairly robust code completion algorithm that makes coding a lot faster and simpler, but also allows us to sidestep much of the nuance and styling. Closing brackets and indentation become secondary to operations, but this also bypasses critical steps that can lead to errors, which is a slippery slope to using frameworks (and ignoring gaps in our knowledge base).

One Response to “Frameworks Fill Language Knowledge Gaps, Which is Great (and Terrible)”

I tend to agree with this article. I have personally witnessed teams of web developers that are able to make forward progress on projects using something like React. However, these folks were clearly lacking in deep base knowledge of Javascript, and so it actually slowed their progress whenever troubles arouse, as they simply don’t know how it all works.
I feel it is best to become strong in the base abilities of a language, and then choose frameworks only because you know instinctively that it will be more effective than doing it yourself.

Salary Predictor

Estimated base salary using job title, location, and skills.

More About Dice Salary Predictions

Where does this estimate come from?

Dice predicts salary ranges based on the job title, location, and skills listed in
individual job descriptions. Our proprietary machine-learning algorithm uses more
than 600,000 data points to make its predictions. To get the most accurate
prediction of the salary you might earn, customize the prediction in your Dice
profile. Actual salary offered by employer may vary.

How was this salary estimate calculated?

Dice's predictive salary model is a proprietary machine-learning algorithm. Unlike
many other salary tools that require a critical mass of reported salaries for a
given combination of job title, location and experience, the Dice model can make
accurate predictions on even uncommon combinations of job factors. The model does
this by recognizing patterns in the more than 600,000 salary data points to infer
how much each factor - job title, location, experience, education, and skills - will
impact the salary.