The data visualization is often awful and misleading. For instance, consider https://2019.stateofjs.com/javascript-flavors/ 1. The first graph shows "Rankings". I strongly doubt rankings are more importants than values. When Clojurescript goes from 67% to 72%, this increase is shown as a ranking decrease because Reason was introduced at a higher ranking. 2. The meaning of the data is unclear, since the exact question…
I think the best visualization overall is the first one on https://2019.stateofjs.com/overview/ . Seeing the trajectory of each piece of tech gives a lot of insight on overall trends. For example, I was thinking of learning a bit of the more recent Angular (last time I used it was Angular 1.x, before React was a thing), but now I think I'll look more into Vue.js, as its trajectory looks much better.
State of JavaScript 2019
331–340 of 372 posts
Re: State of JavaScript 2019
#332Earlier quoted context omitted.
TypeScript is kind of in its heyday though, it's fairly unlikely many teams would be comfortable making a bold decision to "switch back to JS", even if they want to. Would need to be given more time for such a statistic to be meaningful, if it ever would be.
Not a single developer I know (I was in leadership position in a company with 300+ devs, now I lead a small startup dev team) cares about "heyday". They care about their experience during development being significantly worse with plain JS due to stupid ("we'll use TS because it checks names of properties") but also not so stupid ("we'll use TS because it checks that switches are exhaustive", "we'll use TS because it…
Re: State of JavaScript 2019
#333Earlier quoted context omitted.
I get Javascript fatigue, and all the criticisms aimed at the language, and while it's not totally ideal, I feel frameworks have helped tremendously by either being opinionated enough that you can do things in a predictable way (angular/vue) or are flexible enough to design complex flows and views as small, easy to reason about components (React/Redux). I have seen some horrible stuff as an enterprise dev, from poorl…
I work with JS as a low percentage of my total work, and recently tried to bring a 2-year-old Vue-based project up to date with the latest versions of everything. I failed in my task. With these frameworks, given enough time, there ends up being a lot of "deprecated boilerplate" code, either directly or via dependencies. E.g. Vue is closely coupled to Webpack, and Webpack deprecated so many things between versions 2…
There is another type of hell, where changes to modern browsers or the JS language itself cause the (long abandoned) library code that your entire application is coupled to to break completely. At that point, your only options are to tell your users they have to run the website in 'legacy-mode' in IE, or rebuild an application from scratch, teasing a decade's worth of business logic out of poorly designed code (i.e. business logic in JSP/php tags etc).
Re: State of JavaScript 2019
#334Earlier quoted context omitted.
It surprises me too personally - the testing experience is worlds better, better built in modules than what you get in the React ecosystem (especially routing, http request layer, forms, testing, etc.), and opinionation that helps improve the overall experience of working with it. I miss my time with Angular sometimes - my only gripes is TypeScript being limiting with regard to function composition, and creating a co…
It’s just a bad framework for code reuse. -No dynamic directives -Nothing dynamic works with @ContentChildren, making anything that uses it the “last stop” for abstraction. -DI system makes inheritance/mixins nearly impossible, and without dynamic directives there are situations where the only solution is a massive copy paste job. I work in the framework every day and spend countless hours shaking my head at cryptic…
Code reuse is fine with Angular in my experience - it has been 2.5 years since I last used it though, as I have been working with React in that time and my frustrations about certain aspects of using React & the community has me in a the grass is greener on the other side sort of mindset from time to time, although I know things are not perfect with Angular either (I have some complaints there too).
I've basically learned to accept that using off the shelf libraries come with tradeoffs that you just have to accept as a dev.
Re: State of JavaScript 2019
#335Earlier quoted context omitted.
> In git, a branch is NOT like a wooden branch on the trunk of a tree, although it ends up being at the top of one, which makes the analogy ok. So, there's an isomorphism between (1) a commit node; and (2) the chain(s) of commits ending in that node. Why then is it important to think of "branch" as referring to one rather than the other? As evidenced by the isomorphism, they're the same thing.
It helps to NOT think of a branch as a commit node, nor a chain of commits ending in that node. A branch is a separate concept, it's not even stored in the history DB but in a different dir. See it as a label attached to a commit, since a commit can have several branches attached to it, or none. A branch will be moved across the history, while a commit will keep his place in the history. A branch is designed to be ea…
Ahhhh. So the distinction matters if you bring in a bad assumption from SVN. It had never occurred to me that a labeled branch would be noticeably more expensive than the weight of the commits making up the branch.
> you can put a branch anywhere you want. You like an old commit and wanna try something new from it? Plant your flag here and start working.
Well... yeah. That's how you create branches. You go to the commit you want to branch from, and you run `git branch`. The fact that you can do this is immediately implied by the way you have to do it. I don't understand how someone could believe something different.
> deleted a branch by mistake ? No worry, it's just a label. You can recreate it in a blink.
This one's a little weirder; if you delete a branch, you _can_ recreate it, but it's only blink-of-an-eye easy to do if there's another branch containing the head of the old branch. Otherwise you're mucking around in the internal data.
> this branch is so good it should be master? Sure you can. Just swap the labels.
This is another one where I don't see how you would believe something different. Even if branches were huge, heavyweight objects, they have names, and changing the name of something is generally not so hard to do. There's a command solely for the purpose of renaming branches. (`git branch -m`)
> moving to a branch is cheap. Apart from moving the files to the working copy, it's just a matter of changing point of view on the history. Switch to branches often, it's fast.
And in my mental model, a checkout is indeed a (potentially mass) update to file contents (and, if applicable, file existence). Saying "apart from moving the files to the working copy" sounds -- to my ears -- kind of like the chestnut that "controlled for height, taller men earn no more than short men do". Setting up the working copy is the thing I'm looking to accomplish in a checkout.
I can imagine two types of people who want git training:
- Never used version control.
- Used subversion heavily; trying to update to the new new thing.
In your opinion, how many of these points are "git gotchas" that the first group need to be trained in, and how many are "subversion gotchas" that only really come up for the second group?
Re: State of JavaScript 2019
#336Earlier quoted context omitted.
Survey author here, it's all the more ironic considering all these 21k responses were collected through a Meteor app ;)
Ha! BTW Sacha, thanks so much for Discover Meteor , it was what I cut my web dev teeth on! Somehow I hadn't heard about Vulcan until now. It looks really interesting and I'll be looking into it more.
Re: State of JavaScript 2019
#337Earlier quoted context omitted.
I believe the question you are referring to is asking what general level of experience TypeScript developers have. I too was a bit taken aback when I saw that. I had to reread the question. They should have done a better job making that clear in the chart for people just skimming the data. https://2019.stateofjs.com/javascript-flavors/#javascript_fl...
I completely missed that last sentence I guess.
Re: State of JavaScript 2019
#338Interesting. React is the thing. But some trends are weird: People ditch Cordova heavily, but also React Native and native apps. Electron rises to the top, although you can't build mobile apps with it that are distributed through the various stores. So, what's filling the void for app development, if everything just went down?
Re: State of JavaScript 2019
#339I dream of an alternate timeline in which today we would release "State of ClojureScript 2019" with Javascript being listed as a ClojureScript flavor :)
Re: State of JavaScript 2019
#340Earlier quoted context omitted.
It helps to NOT think of a branch as a commit node, nor a chain of commits ending in that node. A branch is a separate concept, it's not even stored in the history DB but in a different dir. See it as a label attached to a commit, since a commit can have several branches attached to it, or none. A branch will be moved across the history, while a commit will keep his place in the history. A branch is designed to be ea…
> branches cost nothing. They are very lightweight, unlike in SVN, you should create as many as you want. Ahhhh. So the distinction matters if you bring in a bad assumption from SVN. It had never occurred to me that a labeled branch would be noticeably more expensive than the weight of the commits making up the branch. > you can put a branch anywhere you want. You like an old commit and wanna try something new from i…
git reflog is very useful for this. Also, when you delete a branch, git helpfully prints
Deleted branch foo (was da2bb5d)
so you already have that information, right there.