
Who’s on Your 2016 Web Development Thank You List? - neovive
https://hackernoon.com/whos-on-your-2016-web-development-thank-you-list-435b29541c35#.o3i37m3q8
======
CiPHPerCoder
Far too many to list here. A small sample:

\- [https://github.com/mholt/caddy](https://github.com/mholt/caddy)

Caddy is an HTTP/2 webserver written in Go that integrates with ACME and
serves websites of TLS by default. It powers
[https://paragonie.com](https://paragonie.com) and manages our HTTPS
certificates automatically.

\- [https://github.com/twigphp/Twig](https://github.com/twigphp/Twig)

Twig is one of the sane templating languages for PHP projects that I use
extensively.

\-
[https://github.com/composer/composer](https://github.com/composer/composer)

Composer revolutionized PHP development.

A lot of the "PHP sucks" arguments focus on things that haven't been true
about the language since 5.4 (or earlier), but one thing that truly did suck
was dependency management (before composer came around).

Dependency management also sucks in other languages (and still sucks in
those). I suspect that's why few used that as a criticism of PHP.

\-
[https://github.com/jedisct1/libsodium](https://github.com/jedisct1/libsodium)

Libsodium: modern cryptography that you can likely find bindings for in your
favorite programming language.

~~~
mamadrood
I've been using PHP for most of my life, and used various template engine and
it always end up with one question : what is the real purpose of a template
engine in PHP instead of just using PHP ? When I see the examples in twig
homepage it just looks like they tried to make PHP examples verbose for the
sake of it.

I don't really mind them, but I find it extremely boring to have to register
in the template engine every function that you will end up using somewhere
else in your code and eventually have a language with less feature than plain
old PHP and an other layer of cache.

So which use cases make you need Twig, for instance ?

~~~
CiPHPerCoder
If you have a designer who's worked with templating engines in other languages
(e.g. Django/Python projects), they already know what they're doing.

It also makes it easier to separate your presentation logic from your business
logic.

For example:
[https://github.com/paragonie/airship/blob/master/src/Cabin/B...](https://github.com/paragonie/airship/blob/master/src/Cabin/Bridge/Lens/cargo/bridge_perms_context.twig)

This uses macros and other fun things. Doing that in PHP would get messy.

[https://github.com/paragonie/airship/blob/master/src/Cabin/B...](https://github.com/paragonie/airship/blob/master/src/Cabin/Bridge/Lens/macros/permtable.twig)

~~~
mamadrood
Okay, I've never worked with a designer that would touch code, so there is
that. Macros seem a bit redundant with partial views in my opinion, except
they take fixed parameters, but this is a interesting concept.

------
hluska
I have way too many to list, so I figure that I'll list one old school one
that I have been using for years and one that I only started using in 2016.

This year, I made my first foray into building non-trivial web applications
with Angular. Despite (or perhaps because of) that, I was quickly filled with
a brand new respect for good old jQuery. I have yet to find such a simple,
maintainable, readable way to parse complicated DOMs.

[https://github.com/jquery/jquery](https://github.com/jquery/jquery)

I first started working with the Slim Framework in March. Over those nine
months, it has become an absolutely indispensable tool for me.

[https://github.com/slimphp/Slim](https://github.com/slimphp/Slim)

------
neovive
I can't believe I excluded VS Code from my list--and I wrote the article
yesterday. It really shows how much we take for granted when it comes to open
source.

VS Code became my primary code/Markdown editor in 2016. It improves steadily
each month [1] and already has a great extension ecosystem and community. It
also spurred my switch to Markdown for all note-taking due to its powerful
integrated Markdown features.

Thank you to the VS Code team and Microsoft for sponsoring the project.

[1]
[https://code.visualstudio.com/updates](https://code.visualstudio.com/updates)

------
zitterbewegung
If you are grateful for some open source projects you should try to contribute
to them next year as a new years resolution either by donating your time or
money to them.

~~~
neovive
I completely agree. I try to support the open source projects I depend on via
financial contributions (purchasing books/training/services offered by the
organizations or Patreon). I also submit pull requests for documentation
updates and answer questions in forums. One of my goals for 2017 is to
contribute some source code pull requests.

------
taternuts
I'm going to go with Preact [1]. I'm a 'full-stack' developer (primarily
backend) who recently took my first frontend gig and my first real foray into
this world has been with Preact and I really enjoy it. I don't feel as if I'm
'losing out' by not using React, since it has the same API, and have really
come to believe in it's ethos as a project to keep the library size, and
therefore the download + parse time, incredibly small but also providing
performant functionality. The author is a great guy who's really responsive as
well.

[1] [https://preactjs.com/](https://preactjs.com/)

------
ocdtrekkie
Sandstorm.io - [https://github.com/sandstorm-
io/sandstorm/](https://github.com/sandstorm-io/sandstorm/)

I do all my group collaboration with it, and am no longer subject to Google's
whims about my data. Sandstorm predates 2016, but has really accomplished a
lot in 2016.

~~~
neovive
Sandstorm looks very interesting. Thanks for sharing.

------
tomelders
Redux

[https://github.com/reactjs/redux](https://github.com/reactjs/redux)

I love it. To the point that I think it's application architecture to rule all
architectures. I dream of a brand new Unix based OS that adopts this
architecture as it's standard over MVC.

~~~
Bahamut
I'm increasingly convinced that redux is the wrong way to manage most state. I
see the pattern get abused greatly for state that should be more localized.

~~~
tomelders
Im not sure I agree (or maybe I dont understand what you're saying). For me,
all state, no matter how trivial, should be on the store. For UI state that
can seem excessive, but its possible to use middleware and decorators to
simplify that. Local state in my experience means bugs.

~~~
Bahamut
The problem is when different views require the same concept of some state but
they don't really want it global to the application to bleed into other views.
A redux-like pattern makes it very simple to put that state into a store, but
then you're stuck reseting it every time you switch views, which can make it
very easy to introduce timing bugs and just increases the surface area where
bugs can introduce since more code gets written for logic that ultimately is
the wrong abstraction for these situations.

I suspected this would be the case when first reading about redux, and dealing
with it at practice in work, the consequences can be quite bad.

Not to say that some concept of global application state is bad - one always
has it. It is incorrectly making it global when you really want an instance of
it for a particular view. Redux itself isn't bad as it helps manage an
important situation, but it is too much of a facilitator of this antipattern
when it comes to state that absolutely should not bleed across views.

~~~
tomelders
I still dont think I grasp what your describing. The store isnt global. And
you usually have domains on the store to namespace particular bits of state.
But if need be, any part of your app can access that state if it needs to
without having to dig down into your UI hierarchy which will likely change
over time.

without wanting to sound patronising, but I wonder wether you're structuring
things incorrectly.

------
fenomas
If I'm picking just one it would be webpack. It might not be sexy but it
wrangles so much complexity out of my projects - files for disparate
technologies (JS, CSS, Vue.js templates, CSV, whatever) can all declare
dependencies against one another, and somehow each one gets parsed and bundled
and minimized the way it needs to be. It's pretty glorious.

[https://webpack.github.io/](https://webpack.github.io/)

------
BjoernKW
Spring Framework and its numerous companion libraries:
[https://github.com/spring-projects/spring-
framework](https://github.com/spring-projects/spring-framework)

------
sytse
It would be Yehuda Katz for participating in TC39 to improve javascript while
also running a company (Skylight) and making a completely open source
framework (Ember) and helping with two package managers (Cargo and Yarn). It
is hard to believe it is a single person.

------
iagooar
José Valim and Chris McCord, for their HUGE work on Elixir and Phoenix!

------
dmux
Andreas Rumpf for [http://nim-lang.org](http://nim-lang.org) and Dominik
Picheta for his recent Nim book.

~~~
dom96
Dominik Picheta here. Thank you for making my day :)

------
superplussed
My vote goes to Michel Weststrate for his amazing work with MobX [1]. I was
really unhappy with all of the client-side data management options (Flux,
redux, et al) until this came along. Many thanks Michel for making my day to
day frontend life much more enjoyable!

[1]
[https://mobxjs.github.io/mobx/index.html](https://mobxjs.github.io/mobx/index.html)

------
rsync
borg backup.[1]

It's a remote backup tool that solved _all the problems_. It's basically
duplicity[2] but without the unfortunate design fault of having to re-upload
all your data every few months.

Our[3] customers love it and we see new deployments of it (even among existing
customers) every single day.

[1]
[https://borgbackup.readthedocs.io/en/stable/](https://borgbackup.readthedocs.io/en/stable/)

[2] [http://duplicity.nongnu.org/](http://duplicity.nongnu.org/)

[3]
[http://www.rsync.net/products/attic.html](http://www.rsync.net/products/attic.html)

~~~
ams6110
Wow. I've been using duplicity and dealing with that same issue. Thank you.

I sometimes tell myself I should spend less time browsing HN comments but then
I find little nuggets like this that really make it worthwhile.

------
fimdomeio
Vue.js for being elegant.

------
rietta
The list is massive. But the short list is Ruby and the entire Ruby on Rails
ecosystem, PostgreSQL, Linux, and bash. Upon these rocks I earn most of my
living. And none of this would be possible without the GNU Compiler
Collection.

------
potomak
Definitely Matteo Centenaro[0] and Andrea Dal Ponte[1] for their incredible
contributions to Tomatoes[2], and our supporters[3] who boosted our morale and
made the project sustainable.

[0] [https://twitter.com/bugant](https://twitter.com/bugant)

[1] [https://twitter.com/dalpo](https://twitter.com/dalpo)

[2] [http://www.tomato.es](http://www.tomato.es)

[3] [https://backerpass.com/tomatoes](https://backerpass.com/tomatoes)

------
adregan
This year I decided to hunker down and use vim (specifically, neovim). It has
been the best decision I have made.

Using vim and thinking of the satellite of tools in my terminal as my IDE has
made me a better programmer and I have a better appreciation for building on
the foundation of other developers work (huge reduction in desire to invent
everything myself).

So I want to thank all of you who write articles, share tips and tricks about
using vim and utility programs, and especially those of you who contribute to
open source software. I've learned a great deal from you all.

------
joeyspn
1st in my list is React Boilerplate... [https://github.com/mxstbr/react-
boilerplate](https://github.com/mxstbr/react-boilerplate)

~~~
tomelders
Pretty good, but I wish they'd left in a way to choose between styled
components and css modules.

~~~
ng12
Do you have a strong preference? I've been using CSS Modules but I'm
constantly wondering if Styled Components is better -- it seems like less work
to add styles, at least.

~~~
tomelders
No strong preference, I like both. But styled-components beed to ve road
tested in a large project before we can appraise wether they're ready for a
production ready boilerplate.

------
petecooper
Textpattern CMS: [http://textpattern.com](http://textpattern.com)

The jump from 4.5.x to 4.6.x included a huge number of commits from a small
core of people, and the future looks bright. My 'thank you' is in the form of
written thanks to the development team and contributors, and I'm aiming to
increase my regular commitments to helping with docs and other non-dev tasks
to half a day per week in 2017.

------
shams93
The developer of Vue.js even though I haven't finished by project just yet
thanking him ahead of time for giving me an alternative to working with big
company projects. Also the teams behind node and express.the team behind
Mariadb for giving me an alternative to oracles MySQL. The Apache Prediction
team as well so I can use machine learning without having to write everything
from scratch with tensor flow.

------
ggregoire
VSCode, React, Create-React-App, Flow, GraphQL. In short, thanks to Microsoft
and Facebook.

I would add Chrome, Node.js, Babel, Webpack, Knex, MySQL.

------
zuzuleinen
Todd McLeod for his amazing Golang course
[https://www.udemy.com/user/toddmcleod/](https://www.udemy.com/user/toddmcleod/)

------
blueside
Laravel and Vue, to all the people who have worked hard to contribute and make
them better

------
snowpanda
Netbeans

------
bandrami
I feel like the web has been getting significantly worse for about 5 to 6
years now (or, heck, 20 years). I have more of a blame list, personally.

~~~
iagooar
I feel quite the opposite. More options, better frontend, more and more
lightweight, mature backend frameworks.

~~~
bandrami
But does that actually translate into a better user experience for you? It
doesn't seem to for me.

~~~
iagooar
Indeed, it doesn't. But I think it's not the tools, it's the businesses who do
not understand tech, and the engineers, who are not strong enough to say no to
random, tight deadlines, accepting worse quality for the sake of shipping.

