Live data from Hacker News

Why are there so many JavaScript frameworks?

news.ycombinator.com

31–40 of 46 posts

Re: Why are there so many JavaScript frameworks?

#31
post #18

Javascript language was originally written in ~10 days by Brendan Eich[0]. The limited time meant that it was a bare bones primitive language that did not include an opinionated and standard GUI library . Compare that to how Java and C# gestated internally for years at Sun and Microsoft before the v1.0 of the respective languages were released. With more development time, they included a bigger standard library. Java…

Javascript was never designed with the intent of ever being anything like Java is terms of reach and magnitude though, that's a hindsight thing.

Re: Why are there so many JavaScript frameworks?

#32

Javascript framework makers are the new rockstars. People want to be rockstars.

Not sure why this is being downvoted, it is at least a top two explanation for this phenomenon.

Because it comes off as snarky and provides little value I would guess.

I would say that due to jQuery's explosion, framework writers went from geeky technical people to being looked at as heroes. Back in 2007 there was actually a big javascript framework war between jQuery and MooTools. Technical blogs left and right on why jquery is bad, or why mootools ecosystem sucks. It was weird to behold. I don't think I have seen in any other community such rivalry. Even later, when angular vs react vs ember became a thing, people had overly heated arguments about them. That's so odd. In the non-js world, people usually welcome the new approaches provided by new frameworks or question the usefulness of yet another new framework - and it stops there. I suppose framework writers are not rockstars in those communities :)

Re: Why are there so many JavaScript frameworks?

#34
post #3

Why are they so many distros of Linux? It's a feature of open source. You don't like how something is done in framework X or you have an idea for building something useful/productive/cool, go ahead and do it. Separating JavaScript frameworks from Linux though is that everyone online uses a browser, and therefore, uses JavaScript. To say it's popular is an understatement; companies invest a lot in their JavaScript pro…

> It's a feature of open source.

There are lots of open source languages out there that haven't displayed this pattern. After their initial burst of frameworks, most FOSS language communities ended up coalescing around one or two -- Ruby around Rails, Python around Django (and to a lesser extent, Flask), PHP around Symfony and Laravel, etc.

Re: Why are there so many JavaScript frameworks?

#35
post #18

Javascript language was originally written in ~10 days by Brendan Eich[0]. The limited time meant that it was a bare bones primitive language that did not include an opinionated and standard GUI library . Compare that to how Java and C# gestated internally for years at Sun and Microsoft before the v1.0 of the respective languages were released. With more development time, they included a bigger standard library. Java…

Javascript was never designed with the intent of ever being anything like Java is terms of reach and magnitude though, that's a hindsight thing.

>Javascript was never designed with the intent of ever being anything like Java

I agree.[0]

I'm not criticizing Javascript nor Brendan Eich but trying to state why Javascript's particular history of minimal built-in capabilities has a ripple effect of motivating lots of bespoke frameworks.

In a similar vein, the early C++ language didn't have a very extensive string manipulation library. So what happens? Different C++ programmers wrote their own little custom string libraries. E.g. Qt QString functions are different from Microsofts MFC CString. Take that example of code diversity and multiply it by 1000x for Javascript.

[0] "The by-design purpose of JavaScript was to make the monkey dance when you moused over it." -- from https://softwareengineering.stackexchange.com/a/221658

Re: Why are there so many JavaScript frameworks?

#36

Conversely, why are there so many back-end programming languages? C#? Java? ColdFusion? PHP? Node? Rust? C++? Ruby? Python? Do we really such have different requirements that there need to be so many!?

Really the idea of "backend" and "frontend" is a web phenomenon that does not really have the same equivalency in other spaces. MANY of the languages you mention were not developed for use in the web space and have had libraries built to support their use in that space: C++, Rust, Python, Java, Ruby (?) all fall into this camp. Yes, they can be used for web stuff, but it is not their primary purpose (unlike PHP, JS/Node, etc). As a result I do not find this counterpoint to have a lot of meaning in the context of the question. Though, why are there so many programming languages is an interesting question in its own right.

Re: Why are there so many JavaScript frameworks?

#37
I'd like to see a move toward mini-kits instead of frameworks. The problem with frameworks is you are dealing with a dark-grey box. If the components work, everything is great. If they don't, you have to either fiddle a lot to find a work-around, or read and debug thousands of lines of framework code.

For example, a "routing engine" to translate URL's into specific function/method calls doesn't have to be rocket science for smaller applications, yet they are rocket science (thousands of lines of code) in many frameworks. Come up with a standard interface for routing engines and let me choose which implementation best matches our org rather than have to use the thousand+ lines of code version.

You have a choice: bicycle science, car science, and rocket science versions. A large org or special domain may need the rocket science routing engine, that's fine, but don't force all framework users to use the rocket science one. If I use the bicycle-science router, I can read it and fix or customize it quickly.

ORM's, HTML templating engines, field managers (models), can all also be interface-itized this way, and ship with or offer 3 levels: bicycle, car, and rocket.

Frameworks should then only be interface managers, not implemented conglomerates of fat "helpers".

Re: Why are there so many JavaScript frameworks?

#38
God, Javascript can be such a train-wreck though.

Frameworks break all the time when people want something updated. For example, updating a website from an old version of Middleman to the latest, while also using Webpack 3 (but can't use Webpack 4 because that further breaks things) and also use a theme that is difficult to work with both middleman and Webpack.

I spent more time debugging than actually building / updating the website. lol

Re: Why are there so many JavaScript frameworks?

#39
There are many reasons. But ultimately, it comes down to incentives.

People who spend hours a day working with a flawed tool have incentives to find another. I had that experience myself using BackboneJS day in and day out for over a year. In my own time, I started exploring better alternatives such as AmpersandJS (which was very similar but handled subviews gracefully). After discovering React, I saw a further improvement beyond my then local maxima.

People who lead products and hire engineers have incentives to choose something that will appeal to engineers who are looking for better ways to do things. It can both allow more hiring competitiveness at any given level of salary and filter out candidates who don't care about learning or finding cleaner solutions.

People who create open source software have tremendous incentives to create something new and grow it. Even if it's not actually better than what it replaces, being the author of a popular framework carries tremendous career capital.

Re: Why are there so many JavaScript frameworks?

#40
post #37

I'd like to see a move toward mini-kits instead of frameworks. The problem with frameworks is you are dealing with a dark-grey box. If the components work, everything is great. If they don't, you have to either fiddle a lot to find a work-around, or read and debug thousands of lines of framework code. For example, a "routing engine" to translate URL's into specific function/method calls doesn't have to be rocket scie…

You might be interested in svelte.dev it's a JavaScript mini-framework of sorts.

I'd consider it more of a library, but it's quite nice.

Post reply on HN