The Linux Foundation Unites the JavaScript Community for Open Web Development
js.foundation
js.foundation
Then I saw the "initial projects" list.
"Appium, contributed by Sauce Labs, is an open source Node.js server..."
"Interledger.js, contributed by Ripple, enables instant payments and micropayments in any currency..."
"JerryScript, contributed by Samsung, is a lightweight, fully-featured JavaScript engine for Internet of Things..."
"Node-RED, contributed by IBM, is a flow-based programming environment built on Node.js..."
This made it very clear that the founding members of the "JS Foundation" are not interested in developing and promoting the best open source tools, those tools which are most deserving of broad adaption. To them, this is a way to promote their own tools. They aren't doing this for the good of the of JS ecosystem, they are doing it to push their own brands on developers.
There seems to be some kind of messaging problem in that we are reading totally different things into what this foundation is about.
Can you share why you think this foundation is trying to "push [any] brands on developers"? I just don't get it.
One interpretation:
"key JavaScript solutions and related technologies" = brands
"drive broad adoption" = pushing on developers
This gave me the impression that they were focusing on standardizing tools (the "drive broad adoption" part especially).
As for "pushing brands on developers", well... You can't standardize and encourage broad adoption of a technology if you cultivate and support multiple technologies. Maybe two or three, but there is a need to champion a particular technology as the tool developers should adopt. And the JS Foundation seems to be specifically promoting tools of its members where it can.
Of course, if the interpretation that their goal is to encourage standardization is incorrect, then the point is moot.
Pure speculation, but maybe some people see it as a last ditch effort to keep projects like jQuery relevant. I've run across a lot of negative opinions about it. I've known developers who will laugh if they see it in an app. I've seen some interesting uses where people import only specific functionality out of jQuery they want, cutting it way down. https://goo.gl/kWeIJe But honestly I haven't needed it for awhile now.
webpack
moment
jquery
mocha
lodash
eslint
grunt
In the end, I just don't think it's a great list... webpack, moment, lodash, sure... but jQuery UI, really? I mean bootstrap is a bit long in the tooth today, but still very modern in terms of structure. lodash is setup in a way that you can pick only the parts you need/want... but a lot of these tools just aren't what you probably want to be using starting a project today.
Centralized, profit driven organizations certainly benefit from having a clear, standard road-map with which to direct their resource deployment so as to maximize return on investment. Their investment. Not to maximize community value.
Standardization of the web will be the death of the web. Building the web-browsers on standards has forced corporations to make their flavor of browser compatible with the world wide web, keeping them from making a proprietary www. But, to standardize a language is a whole other thing. Languages are best when they are maximally flexible, so they do not constrict one from expressing in the world what is currently only in one's imagination.
That is, in my opinion, why despite the crappy design of JavaScript it has been so successful. There are not many languages with less restrictions. Take that away and we'll have a whole bunch of Walmarts, all the same implementation of the same super efficient product with great user experiences for 98% of users. But as the web becomes the global commons, for an Earth with a population of 7.125 billion, well 2% is still 145 million people. So, if you want the perfect solution, the final answer, then standardization requires you to write-off those people, if you want to be intellectually honest about it.
There is that saying, "The Medium Is The Message." The more restrictive the medium, the more restrictive, the more pre-defined, the message is by default. The less restrictive the medium, the less well defined is the default message.
If you want an analogy, think of a knife. It can be used to cut things very well, but also serves as a really bad screwdriver, bottle opener, toothpick, tent peg, etc. Better to have a tool for each of these tasks than cut your thumb open mis-using your knife.
We maybe need one general-purpose language for trying new stuff out (and I'd argue that that language is actually LISP). The rest need to be single-purpose, designed to do a single job.
Javascript is designed to run in browsers, and recently to run on a server (mostly as a web server). Trying to write real-time systems (for example) in javascript is a bad idea; you can do it, but you will cut your thumb open and there are much better languages available to do it in.
I think the core point I'm trying to make is that programming languages are engineer's tools rather than artistic media. We use the tools to build the thing we want. Tell an engineer that the hammer is the thing being built and they'll tell you you're an idiot.
Then it will be more like Java Applets or Flash applications, I think some restrictions have lead to better index ability(hyperlinks, search engines) , accessibility in web.
A better medium doesn't necessarily mean untamed or freer medium. If restrictions can create a medium which has better accessibility, then maybe they are not so bad.
* ESLint
* Grunt
* jQuery/jQuery Mobiel/jQuery UI
* Lodash
* Mocha
* Moment
* Webpack
> This made it very clear that the founding members of the "JS Foundation" are not interested in developing and promoting the best open source tools
That's an enormous chunk of what I'd call "the best open source tools". And I hardly think jQuery needs to "push" its brand on developers!
Every bit helps.
If we look at this announce:
* the jQuery foundation (jQuery + jQuery UI) becomes the JS foundation (jQuery + jQuery UI + IBM + Samsung + unknown companies)
* the list of founding members is awkward. IBM to unite the JavaScript community? IBM is the company who creates things like JSONx [1]. These founders have done nothing for the web, for JavaScript or for the open source community. Where are the main actors like Facebook, Google, Microsoft or Netflix?
This new partnership is an attempt to gain visibility by companies that are non-existent in the JavaScript community.
To be clear: the JS foundation will not make the JavaScript ecosystem finally less fragmented and more standardized (the common complaints on Hacker News).
[1] https://www.ibm.com/support/knowledgecenter/SS9H2Y_7.5.0/com...
I'd argue that the main actors (and others) have driven the web backwards, not forwards. They've done this by the push towards capturing consumers in a walled garden, the rejection of open standards, the embrace of DRM, the selling of user private data for profit, etc.
You listed companies I'd invite to sit on the board of some kind of User Tracking Foundation, but not anything to do with open web development.
That could well be. I just don't quite see what that has to do with moving Javascript forward.
The real answer is probably a combination of all the above, which qualifies for GP's comment.
If someone understood it better than me please add your thoughts.
I also don't see faces here: https://js.foundation/members/ Who runs the show?
But yes, as I've said in some recent comments: Dan and Andrew found a sweet spot with Redux's design in terms of approach, concepts, and providing building blocks for others, and that's led to an explosion of useful stuff that people have built for their own use cases.
For example, if you write long running services in node then optimising for memory allocation in order to avoid leaks is a good idea. It's less useful for clientside things that generally don't run for nearly as long. Conversely, if you write isomorphic JS that can run in the browser but also needs to run on the server for that first-load advantage, then you'd prefer if things work the same everywhere.
Neither school is 'right' per se. How a language ought to evolve is incredibly subjective.
I mean this is a bit of hyperbole, but the point is that languages and platforms evolve, and given that JS has a bigger target surface than anything else in the history of computing, with more resources than anything else ever being poured into it, multiplied by approaches and opinions, how can it not be diverse. The world doesn't have the same houses everywhere either... Oh noes, they're building different styles of roofs over there.. the sky is falling.
If you are spending most of your time writing other languages which have a standard library, I can understand your opinion.
However, I see fragmentation as:
1) It introduces the opportunity everyone on the planet to give a shot at implementing something that may or may not be better than we consider today the best. For example I used a datepicker in my latest project but in the current it failed and I could replace it in 15 minutes rather than spending hours finding the issue with the "standard one". I'm not really experienced in the C++ world, but I guess people would call me crazy if I proposed a new stdio lib. Maybe there could be better libraries, who knows. It's a settled game there. See jQuery in JS land, it was for many years, "the golden tool". Now we have alternatives for more specialized workflows. Not everybody wears the same hat all the time.
2) EcmaScript is constantly evolving, that causes another fragmentation, but this also allows the dev community to propose changes, implement new features and create a really vibrant feedback loop. If you stick to the latest stable (currently ES5) you are safe to build whatever you like with great stability.
It's a daunting process that I keep pushing back as there is no immediate need.
<script>
// get started!
</script>Like the commenter higher up said, it's not like C#, Python, or Go where if you have an issue with a library, it could take days to find and implement a replacement. The vast majority of libraries in JS land are small and single purpose. Think of it as replacing the air-filter in your car vs the whole engine.
IMHO the sweet spot for picking up new JS tech is about a year or two after it first starts appearing on Hacker News.
Actually no, the technology churn is much higher in JavaScript-land than most anywhere else.
You're not talking about a single application and platform. You're talking about the most flexible set of cross platform rendering engines ever created. How many UI toolkits are there for Windows, Linux and macOS for native apps, now add Android and iOS... The browser targets all of them, and the base app toolkits pretty much target them all, and still being more flexible and capable than what came before. Expand this to the number of tools available. How could this be anything but echoed in the JS sphere.
Given the shear breadth of Web development alone, let alone server-side, IoT, Desktop, embedded, mobile and who knows where else, how can there be anything but a lot of options and diversity.
"It's not there" i.e its a stinking pile of shit.
But, most of experimentation isn't around the core ECMA features. The experimentation is happening around the toolchain, the libraries, the frameworks, etc. which are separate from stuff like ES6.
Stuff like minification you probably want a pre-existing tool to do. It's stupidly simple and not that difficulty to integrate into any build process.
But stuff like transpiling is completely optional. ES5 is a really high level language. There isn't anything particularly "wrong" with it, not any more so than most any other language you'll end up using.
These are the core of it all... from there, it's a matter of picking the lego pieces you want to use. What I described above is no more complex than the JVM or extended .Net APIs, especially when you pick all the target options there... in fact the footprint is a lot smaller. Yes, it's a little harder to build something with the 2000 piece lego generic pack than it is with the guided here's a pirate ship with all the parts laid out. But that's what engineering is all about.
If you're really stuck, start with a boilerplate or starter generator tool, there's a few of them for whatever direction you are leaning. Don't worry about picking "the right one"... there is no true path. No matter what you pick, you're going to hit a wall that conflicts with your sensibilities. Angular has the biggest adoption of any web framework ever and only has a 44% approval rating for reuse. That means a LOT of people pick wrong. Adapt, learn, grow...
I can see what's so great about the JS community, but the fixed cost to get to actual production-ready development is pretty high. And rolling your own bootstrapping tools seem pretty pointless given the longevity of any particular tool being the one to recommend. #jsfatigue!
For the building to rise higher the foundations need some solidifying.
Some would. But there are plenty of companies and projects with their own standard libraries. There's also serious (but early-stages) discussion within the C++ standards committee about developing an std2.
Certainly, at a prototyping/exploratory level, all of the freedom and choices are great!
For me, however, when you just 'need to get sh*t done', all the choices and configuration required to setup a project becomes a nightmare, commonly referred to now days as js fatigue.
I am looking forward to trying out http://www.electrode.io/ on my next project. Other than that, I have been digging into elm as a way to reduce the choices required and the cognitive load involved in setting a project up. It's great to have 'one true way' of doing things.
It's not like ruby has another package manager every 6 months.
I agree the many implementations probably are a feature, not a bug, but still induce fatigue. It's too easy to get behind.
I mean, certainly I agree that trying to keep current on everything would be a nightmare. But surely that's just the result of lots of people sharing lots of libraries, right? If other languages don't have the same problem, isn't that just because people aren't sharing as much code?
Angular 1 is impossible to maintain compared to Angular 2, for instance. Angular 1 fixed a lot of problems vanilla js faced. It's all improvements.
I know what the pain/churn was like then... I mean it's overwhelming, build chains, task runners, configuration files, tools changing left and right, exponential (for a while) growth... Not to mention more functional approaches clashing paradigms, the detour of bower, less vs sass vs whatever... It was a huge shift. But the backdrop has settled a lot... Yes, there are new options out every other day, but it's not like it was for a long while.
Node 0.12 through current is mainly about bringing in new JS engines and performance improvements and less about introducing sweeping changes. Webpack and Babel are now staples... ES6 modules will shake up the npm ecosystem a bit for the next while, but if you're using Webpack + Babel, you'll probably notice it less.
There's still growth, but the churn isn't quite as massive if you just concentrate on the core (JS, npm, webpack, babel) and less about specific modules (lego blocks) until you need a given brick.
https://js.foundation/governance/ seems to have placeholders
The way this usually works AFAIK is that you try to get as much "buy-in" from as many important parties as possible before making the first big public announcement. It seems that in this case that didn't quite work out, and they instead hope to let the announcement itself be what starts the ball rolling to get more members on board.
I hope the organizers of JSF can share what works and doesn't with the wider community. If they want to solve fragmentation in JavaScript projects, no one organization will do that. The need to share their ideas where they work well.
I asked a few questions on Twitter yesterday to this end, and if there is a JSF member around I would really appreciate some thoughts:
* What does the "mentorship program" look like? It is mentioned several times but not with much detail. (https://twitter.com/mixonic/status/788046983437037568)
* Can provide context re: "Today the JS Foundation touts a new open, technical governance structure"? What are the changes, and what led to them? https://twitter.com/mixonic/status/788038708364587008
* What are the motivations for moving to Apache 2.0 as a default license? I expect something about IBM and the patent clause. Does adopting this license attract more corporate participation?
Thank you!
I don't see the JS Foundation being even remotely related to this. The JS Foundation is pretty much just a small Apache Foundation for JS projects. And it's not new: it's mostly a rebranding of the jQuery Foundation which has existed for years.
It's also decidedly not the "JavaScript Foundation". They don't have the trademark for JavaScript (I think technically Oracle still holds the JavaScript trademark with Mozilla having an unrestricted license to use it). It isn't affiliated with TC39 or any standards body and it doesn't steer the development of the language.
IMO the name is unfortunate unless they extend the scope beyond "we support a couple of open source JS projects".
Seems to me like it get's updated
This is an attempted capture of a major open source community by commercial interests.
There's a name missing there I would have expected to see. Starts with M. Mo... mo ... something.
And yeah, managing to do this without having ONE of:
* Mozilla * Google * Microsoft * Apple * Adobe * Facebook * eBay
Is just... weird. But they have IBM and Samsung.
DID work together to try to help standardize the web platform [1] a few years ago.
Unfortunately, it failed, mostly because of politics.
Does this mean this new foundation will be offering funding for projects?
The JS Foundation is not related to TC39, the organization in charge of new ECMAScript editions. I guess they might sponsor a TC39 member eventually and engage in JS advocacy beyond merely supporting JS open source projects -- similar to what the PSF and its affiliates do for Python.
Will see in 3 or 5 years the results but looking at recent Facebook activity this strategy works fine.
Also the JS Foundation already announced that they're adopting the Apache 2.0 license as the default license but that existing projects will keep their MIT/etc licenses. Their open source licensing policy is hidden in the "IP Policy" PDF linked in the footer: https://js.foundation/pdf/ip-policy.pdf
Quote:
> The technical governing body of each Project is free to choose, [..] the Apache License, Version 2.0 [..]. If an alternative inbound or outbound license is required [..], the Board of Directors of the JS Foundation (the “Board”) may approve the use of an alternative license for inbound or outbound contributions on an exception basis.
Case in point: https://medium.com/webpack/sustaining-webpack-for-the-future...
The feedback is interesting, but I think it helps to understand more of the history to get that most of the negative feedback here is overreaction. Some thoughts:
* No, the foundation isn't trying to dominate or tell people what to do. It's trying to support open source projects through their lifecycle. Running a project can be a rather lonely and frustrating experience at times, but can also be very rewarding
* Open source foundations provide legal protection to individuals and corporations that contribute and use open source software, and help ensure that one company or person doesn't turn evil and try to pull the carpet out from under the community (which has happened many times in the history of OSS)
* Regarding standardization, the foundation has members on TC39, W3C TAG, etc. Helping with standards is time consuming (and something I personally don't want to spend any time on), but it does help to gather ideas and have a way to contribute in a smaller way to the process
* As a foundation, we don't require any project to merge or conform with another. We have 3 testing tools (Intern, Mocha, and QUnit) which all have different philosophical approaches. But there are certainly things we could collaborate on, inside or outside the foundation.
* The foundation is not a place for projects to go to die. For example, many think of Dojo 1.x as old (because it's been under active use and development since 2004), but if you look at the work being done on Dojo 2 ( http://github.com/dojo/meta ), you'll see that it's on its way to reinventing itself as a modern TypeScript based approach to building web apps.
* Over the years we've worked with many large companies, and it's important to remember that companies are made of individuals. These companies have behaved on the OSS front in a very helpful manner (and I'm a huge skeptic in general). IBM has contributed as much over the years to JS OSS as anyone out there. The amount of help they provided in a11y and i18n is second to none, and they've helped Dojo, jQuery, PhoneGap/Cordova and others in significant ways.
* The list of founding members is smaller than we would have liked, but many times, you need to put something out there before people will join (it's more difficult to convince someone to sponsor something not yet announced than something fully baked). And just because you haven't heard of a company doesn't mean they don't do interesting and important things. The goal was not to just get a bunch of large companies to push their logos, but to get a group of people that care about the open web involved.
Overall it seems like the community loves to hate on things out of FUD (nothing new), but really we're just a group of people that create OSS that solves problems we have as developers. Really we just want to help, and a foundation is just one way to encourage collaboration.
The Linux Foundation is not specific to Linux and already includes the Node Foundation which maintains Node.js.
The JS Foundation is just the rebranded jQuery Foundation which already included projects not related to jQuery (e.g. Dojo or Grunt).
Neither foundation has changed its scope with this announcement.