Bash Coffeescript ES6 and the curly religion
January 01, 2016Looking back at the rise of ES6 transpilers, I can’t help myself seeing the rise of an ‘curly religion’ vs ‘other’. Time for a rant.
The curly religion
C/C++ is the real deal. Be like C/C++.
The influence of this cute curlybrace syntax is obviously present in many other scripting languages.
And lo, the curly religion was born.
Traitors & apostates
Languages like Shellscript, VB, Python, Ruby, Coffeescript confuse the average curly follower.
It’s not curly, how can it be good.
A common trap for curly disciples is, to identify themselves with their curly braces. Anything indentbased, or human language-like seems too “simplistic”.
if ismoving ball
move ball 3,8 <- "BAD": no braces or linter
needed, apostate!
if( ismoving( $ball ) ){
move( $ball, array(3,8) ); <- "GOOD": so precise, so
readable, so curly!
}
thru the eyes of a curly disciple
ES3 / ES4 / ES5 / ES6 / ES7
The brain of a curly follower is fixed on language versioning, since the tool itself became the holy grail. Instead of focusing on the lowest common denominator, the highest common denominator becomes highprio. The curly follower will start using ES8, and build ES8-to-ES5-tools to build ES5 applications.
Curly vs Human language (HL) wars
Let’s take a step back, and compare:
* C is a curly spec * Java(script) is a curly spec
* C++ is a curly spec * ES6/7 is a curly spec
* sh/bash/Lua are both tools * Coffeescript/Livescript/Purescript
and HL specs is a tool and a HL spec
* the kernel is a runtime * nodejs is a runtime
* the gnu compiler converts * Babel, Coffeescript etc converts
to LCD (asm) to LCD (es3/es5 etc)
LCD = Lowest common denominator
Clearly you can get impressive stuff done in both C or C++. See a pattern here?
DISCLAIMER: Clearly this overview is not 1-on-1 applicable
Stop using X! use X instead!
2015 was a year where forums flourished with what I call the unconscious curly vs human wars:
- developer X: Coffeescript is great!
- developer Y: Coffeescript sucks! switch to ES6/7 while you can!
It would kindof be similar to:
- Developer X: C++ is great!
- Developer Y: (Linus torvalds) C++ sucks! switch back to C while you can!
An obvious pattern here is that developer Y is using FUD to manipulate developer X. Simple because of personal taste/history/fear of new things.
The reality: the polyglot vs the disciple
A typical disciple is afraid of change, and hates because of selfprotection, perfectionism and lack of empathy. The polyglot developer however, care’s about solving problems in a lazy constructive way.
Checklist: are you a disciple?
- Do you like ES6/7 because its the next big thing?
- Do you use ES6/7 because ‘everybody is using it’ ?
- Do you hate ES5 because ES6/7 must be superior?
- Are you naturally fearful to learn/use HL tools (coffeescript/purescript/bash/haskell/ruby)?
- Are you fearful of functional programming?
Needless to say, the (fallicious) coffeescript/typescript/ES6 debate is clearly ran by curly disciples.
A polyglot
Enthousiast about anything which could get the job done.
Conclusions
- keep learning markup specs, formats and conventions (json/jsonschema/xml/wsdl)
- keep using tools to solve problems
- stop blaming, start emphasizing