How learningPython/Dart/Clojure made me abetter PHP DeveloperViennaPHP May 2017@Sgoettschkeshttps://stocksnap.io/photo/LTB7BB80VH
View Slide
CODE
CODE(Almost)
A developer is born
A developer is born1. Write crappy PHP “webapp”2. Make every mistake possible, including wipingproduction data without a backup3. Learn Java4. Write better PHP
A developer is born// login.phprequire_once(‘header.php’);// ... some php?>require_once(footer.php’);?>
Let’s talk languages
PHP from the outside● Javas little brother● Death by boilerplate
JS from the outside● Callback hell● Many solutions to one problem● So many smalllibraries
Python from the outside● Getting things done● BIG libraries/frameworks
Dart from the outside● Modern (built from scratch)● Async by default● Small ecosystem
Clojure from the outside● Done is better than perfect● First “useable” functional language for me● Libraries, not frameworks
Learn from each other
Learn from PythonReadability:if variable is not null:doSomething()else:doSomethingElse()
Learn from PythonReadability:with open(file.txt', 'w') as file:file.write(Hello ViennaPHP!')
Make common tasks easy:// ConstructorClassName(this.var1, this.var2);Learn from Dart
Make common tasks easy:// Implicit getters/settersprint(obj.var1); //this is not a publicpropertyLearn from Dart
Learn from ClojureImmutability:var1 = 15;var1++;
Learn from ClojureComposability:(defn function1[var1 var2](str var1 ″ - ″ var2))
Learn from ClojureComposability:(defn function2[var1](println (function1 ″DEBUG″ var1)))
Learn from ClojureSyntax doesn’t matter:(defn function2[var1](println(function [] {:var1 (function2)})))
Not only languages● Infrastructure (vagrant / docker)● Architecture (Microservices)● Methodology (Agile/Scrum/Kanban)● ...
Let’s GOStart a pet project
Let’s GOContribute to Open Source
Let’s GOUse something new for asmall project
Let’s GOSmall steps get you closer toyour goal
https://www.dropbox.com/s/6z5aiwa8l09g2pa/86H.jpg