Rants I wrote a couple of years ago. I crossed out stuff I don't believe anymore.
- Backend web developers write wrappers around databases.
- Frontend web developers write wrappers around wrappers around databases.
- Most programmers don't really understand databases.
- Programming is a craft not a science, and that's a problem. This allows for opinions not facts.
- Programming in java is not fun, even with intellij.
- ORM is an anti-pattern.
UML is shit. scrum and agile are a waste of time and resources for most teams. I'm a programming motherfucker. Libraries over frameworks any day.
- Simplicity over complexity any day.
Functional programs are simple. OO programs are not.
- Clojure is simple, Java is not.
You don't need design patterns for most programs.
- You don't need static typing for most programs.
- The most beautiful thing about UNIX is program composition through pipelines.
- Filters can't be used for everything. sometimes you need monoliths.
- Abstraction is not always the solution. see The law of leaky abstractions.
- Most professional programmers are solving non problems.
- Code documentation important only for critical parts (things that are not obvious), or to offer a high level view.
- Tools matter.
- Textual programming needs to be replaced. this is not 1970 anymore.
- IDA is a reverse engineering tool but it has capabilities that most IDEs don't have (XREF, Graph view…).
- Using the command line is a waste of time, and doesn't make you look smart.
- GUI's are far better than command line tools (for example magit for git).
- The only thing command line tools offer is flexibility (pipelines) and repeatability (scripting), not talking about curses style programs those are shit.
I don't understand non relational databases.
- Vi(m) is a meme that has been going on since 1976.
- Composition in OO is broken. In functional programs functions are first class citizens.
- In a functional program, a function or composition of functions solves a problem. In OO programs, you have 10 interfaces, 20 classes and a factory.
OO is not all evil, an example of beautifully designed OO language is ruby or python. I don't like how professional enterprise programmers solve problems.
- I used SQLAlchemy ORM in python made it work like an active record ORM.
- I don't understand data mapper ORM's.
- Programmers design information systems, i.e systems that deal with data, yet they treat data as a second class citizen.
- In clojure, there is no difference between data and code. Quote code and it becomes data, apply data it and becomes code. No marshalling or serialization needed.
- I wish universities use SICP as an introduction to programming.
- Unit tests should include security testing.