Computer graphics by Ciro Santilli 35 Updated +Created
Database by Ciro Santilli 35 Updated +Created
Integrated development environment by Ciro Santilli 35 Updated +Created
IDEs are absolutely essential for developing complex software.
The funny thing is that you don't notice this until someone shows it to you. But once you see it, there is not turning back, just like Steve Jobs customers don't know what they want quote.
Unfortunately, after the Fall of Eclipse (archive), the IDE landscape in 2019 is horrible and split between:
  • highly buggy but still feature rich Eclipse
  • many may many other feature lacking options using possibly more trendy and forward lasting implementations like Electron
  • awesome cross-platform proprietary JetBrains IDEs
  • the God-like Windows-only proprietary language-lacking Visual Studio
Programmers of the world: unite! Focus on one IDE, and make it work for all languages and all build systems. Give it all the features that Eclipse has, but none of the bugginess. Work with top project to make sure the IDE works for all top projects.
Projects of the world: support one IDE, with in-tree configuration. Complex integration is often required between the IDE and the build system, and successful projects must to that once for all developers. Either do this, or watch you complex project wither away.
Build tool maintainers: make it possible for IDEs to support your tool! E.g., implement JSON Compilation Database output so that IDEs can read the exact compiler commands from that, in order to automatically determine how files should be parsed! Or better, just use libllvm in your IDE itself as the main parser.
Ciro is evaluating some IDEs at: github.com/cirosantilli/ide-test-projects
Multimedia software by Ciro Santilli 35 Updated +Created
Programming language by Ciro Santilli 35 Updated +Created
A language that allows you to talk to and command a computer.
There is only space for two languages at most in the world: the compiled one, and the interpreted one.
For 2020 now, when you have a choice, you must go for:
Those two are languages not by any means perfect from a language design point of view, and there are likely already better alternatives, they are only chosen due to a pragmatic tradeoff between ecosystem and familiarity.
Ciro predicts that Python will become like Fortran in the future: a legacy hated by most who have moved to JavaScript long ago (which is slightly inferior, but too similar, and with too much web dominance to be replaced), but with too much dominance in certain applications like machine learning to be worth replacing, like Fortran dominates certain HPC applications. We'll see. Maybe non performance critical scripting languages are easier to replace.
C++ however is decent, and is evolving in very good directions in the 2010's, and will remain relevant in the foreseeable future.
Bash can also be used when you're lazy. But if the project goes on, you will sooner or later regret that choice.
The language syntax in itself does not matter. All that matters is how many useful libraries and tooling it has.
This is how other languages compare:
Software bug by Ciro Santilli 35 Updated +Created
Source code by Ciro Santilli 35 Updated +Created
Sodium chloride by Ciro Santilli 35 Updated +Created
Shimano product lines by Ciro Santilli 35 Updated +Created
Sexual selection by Ciro Santilli 35 Updated +Created
Sexual orientation by Ciro Santilli 35 Updated +Created
Eugenics by Ciro Santilli 35 Updated +Created
Boarding school by Ciro Santilli 35 Updated +Created
Catholic Saint by Ciro Santilli 35 Updated +Created
Spanish (language) by Ciro Santilli 35 Updated +Created
Work by Richard Feynman by Ciro Santilli 35 Updated +Created
Tuberculosis by Ciro Santilli 35 Updated +Created
Special relativity by Ciro Santilli 35 Updated +Created
This was first best observed by the Michelson-Morley experiment, which uses the movement of the Earth at different times of the year to try and detect differences in the speed of light.
This leads leads to the following conclusions:
All of this goes of course completely against our daily Physics intuition.
The "special" in the name refers to the fact that it is a superset of general relativity, which also explains gravity in a single framework.
Since time and space get all messed up together, you have to be very careful to understand what it means to say "I observed this to happen over there at that time", otherwise you will go crazy. A good way to think about is this:
  • use Einstein synchronization to setup a bunch of clocks for every position in your frame of reference
  • on every point of space, you put a little detector which records events and the time of the event
  • each detector can only detect events locally, i.e. events that happen very close to the detector
  • then, after the event, the detectors can send a signal to you, who is sitting at the origin, telling you what they detected
Emergence by Ciro Santilli 35 Updated +Created
Basically the opposite of reductionism.
Homogenous coordinates by Ciro Santilli 35 Updated +Created

Unlisted articles are being shown, click here to show only listed articles.