her.esy.fun/src/posts/draft-professional-lessons-and-opinions.org
Yann Esposito (Yogsototh) 2525d63244
Still progress
2019-07-13 23:30:59 +02:00

2 KiB

Professional Lessons and Opinions

How to choose a programming language/paradigm to write with.

  • programming is about making the program do what you want it to do.
  • not much told, lot harder, and not as natural/intuitive; a program should not do something you do not want it to do.
  • programming paradigms, functional is superior because it better fit all real-life scenarios.
  • in Machine Learning, Kolmogorov complexity. Object Oriented is worse than Functional programming to represent naturally many real life problems.

What did I learned? Is it a set of specific knowledges or can we discover great common principles?

  • restart from zero, tabula rasa, what is programming?

I could talk to much about that. But a few short written down lessons.

If you want to reach productivity and not necessarily enlightenment. You have to stop learning and use what you know well. And do not try to use things you don't know.

In particular, most programming languages/ide/workflow/utils/tools have basic and advanced features. If want want to produce and deliver in time. Your best bet is to limit yourselve to a minimal set of features that give you enough power of combination instead of looking for a super generic strong solution.

Clojure for example has:

  • functions
  • higher-level functions
  • destructuring
  • defmethods
  • protocols
  • macros
  • atoms, agents, core.async
  • Java FFI

In fact, writing a fully working app you only need, basic data structure (edn) and functions.

That's it.

I was part of a team that created an advanced full featured app using only those. No magic, just taking care of the state and not writting spaggethi code.

How I choose

  • Functional programming is superior to imperative and object oriented languages