I put this together because I found navigating the GraphQL ecosystem, with all its tools, to be confusing. I thought it'd be helpful, especially to newcomers, to see how the pieces fit together, and to list all* the tools in one spot.
The official tutorial[1] is the best place to start; it's guaranteed to be the most up-to-date resource. After that, I'm a big fan of egghead.io's courses. Most are paid, but I believe some are free. The paid ones are well worth the money IMO.
- it looks enough like pseudo-code that translating what I wrote on paper into a program is that much simpler.
The fact that it can be used both for teaching computer science in colleges and children how to code speaks volumes about its versatility and approachability.
I use it mostly for web apps, APIs and miscellaneous scripts. Python has been a great addition to my tool-belt. There are some languages I hope I never have to write again; Python on the other hand is something I'm going to always keep in mind, even if I spend most of my days writing another language.
You can, but until I see evidence that "We, the developers, will lose our jobs" any time soon, I'm going to continue doing what makes me happy, and that's coding.
The last time I wrote any ClojureScript was over a year and a half ago. I played around with Reagent a bit and remember really liking it. I never used it for any serious projects or in anger though - how is the tooling and debugging experience? I would love to use ClojureScript for my front end work (since I always end up using React + ImmutableJS anyways) but developer ergonomics are really important to me.
Django, mostly. I like its batteries included approach and its maturity. I've found it's a great tool for many jobs. Every now and then I'll use something smaller, like Flask or Falcon, but as soon as I need an ORM, or auth, I use Django.
I've also used Phoenix a few times now and have been enjoying it. But I know Python much better than I do Elixir, so I skew towards that.
I was very interested in Clojure and studied it for awhile. I liked it a lot, but had a difficult time becoming proficient with it. Part of it was the tooling (I tried learning Emacs and Clojure simultaneously when I should've only focused on Clojure), but my biggest hurdles were the syntax and understanding the error stack traces. They just seemed way too opaque. This really slowed down my progress. On the flip side, when I picked up Elixir, I became productive very quickly. Studying Clojure actually helped a lot here because I was familiar with functional programming and immutable data, but Elixir's familiar syntax and easier to understand error messages made it much easier for me to grok. I've since built a few things in Elixir and have been very happy with it.
Agreed. I'm working on an API where most of the endpoints are RESTful, but there's a handful where it makes total sense to break the rules in order to make everyone's lives easier.
Good question, I'm interested in hearing other people's suggestions.
I don't use go, but I've worked with websockets in Elixir + Phoenix, and one thing that's been really helpful is being able to open up the REPL and broadcast directly to the websocket. Would you be able to do something like this in go?
First my complaint: the slides are really annoying :) A traditional left-right stack would've been nicer.
That said, this is something I've been looking at lately as I've got a bunch of python code that I want to parallelize, and a strong interest in Elixir. I found your code samples very helpful.
Edit: I see the other comments mention the slides, and how to navigate them w/ space. Disregard my complaint.
Awesome - looks like a really easy and quick way to get started. I'll be trying this out this weekend. And good job on the video - you got right to the point :)
There are a bunch of factors in play here, but I'd guess that the reasons are mainly two-fold: a) developers like shiny new things (myself included) and b) Angular and React offer opinions on how to build front-end apps, which can be very hard.
Angular and Ember never quite did it for me. I don't agree with all the design decisions they've made. I do however enjoy using React a lot. It fits my mental model much better when it comes to building front-end apps. It's simple to learn, focuses on building modular components and I really like how it manages state (either via components or Flux/Redux.) That said, it's not something I use for every project. But I had something that just wouldn't work as a traditional server-side rendered project and React was a godsend.
I'm hopeful that ClojureScript continues to gain traction and improved tooling. I really like the language, and feel that it offers enough to replace JS for most of my needs. I've played with Reagent and _really_ liked what I saw there.
* Except the ones I missed, of course :)