Programming rants
Rants I wrote a couple of years ago back when I was an edgy naive kid. 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.