Types are important for type safety, so you don’t access properties that don’t exist, can use polymorphism etc. However, having worked in both duck-typing and hard typing languages, I believe the most important part of a type is it’s name.
Classes are are arbitrary constructs we create to help us understand and manage code. They are inherently organisational structures.
That may sound like an argument FOR putting the name of the class first. “If I know it’s a ConnectionCredentialsQuery, I don’t need to know it’s name, the use-case is evident!” Classes often get reused though, like a CartesianPoint. You may create several instances of them. Which of the name and type below are more indicative of use?
CartesianPoint PlayerPosition;
Types are, to some extent, implementation detail. The name tells you what the variable is for, which is more important.
Another point: You will always need to name variables well, because after declaration, whenever you see a variable, you will only see its name. You want to be able to fully understand what you are looking at without having to mouse over or go back to the declaration of a variable.
Additionally, many typed languages will allow you to use a syntax to altogether avoid declaring the type of a variable if derived from somewhere else.
var result = a + b;
var customer = new Customer();
Given that the type can be inferred, and therefore specifying it explicitly is optional, why make it the first thing you see? That means you need to move your eye back and forth when looking for the names of things. Which of these two are better for legibility:
var result = a + b;
CartesianCoordinate playerPosition;
const result = a + b;
letplayerPosition: CartesianCoordinate;
Finally, you say that types are more important because they are important to the compiler, but compilers don’t care about the order of these definitions. Compilers exist to allow us to write easier to read code. They exist to convert high level languages to low level byte code. They exist to enable more readable code.
As other users have said, we aren’t compilers.
Types are important for type safety, so you don’t access properties that don’t exist, can use polymorphism etc. However, having worked in both duck-typing and hard typing languages, I believe the most important part of a type is it’s name.
Classes are are arbitrary constructs we create to help us understand and manage code. They are inherently organisational structures.
That may sound like an argument FOR putting the name of the class first. “If I know it’s a
ConnectionCredentialsQuery, I don’t need to know it’s name, the use-case is evident!” Classes often get reused though, like aCartesianPoint. You may create several instances of them. Which of the name and type below are more indicative of use?Types are, to some extent, implementation detail. The name tells you what the variable is for, which is more important.
Another point: You will always need to name variables well, because after declaration, whenever you see a variable, you will only see its name. You want to be able to fully understand what you are looking at without having to mouse over or go back to the declaration of a variable.
Additionally, many typed languages will allow you to use a syntax to altogether avoid declaring the type of a variable if derived from somewhere else.
var result = a + b; var customer = new Customer();Given that the type can be inferred, and therefore specifying it explicitly is optional, why make it the first thing you see? That means you need to move your eye back and forth when looking for the names of things. Which of these two are better for legibility:
var result = a + b; CartesianCoordinate playerPosition;const result = a + b; let playerPosition: CartesianCoordinate;Finally, you say that types are more important because they are important to the compiler, but compilers don’t care about the order of these definitions. Compilers exist to allow us to write easier to read code. They exist to convert high level languages to low level byte code. They exist to enable more readable code.
Thank you for coming to my TED talk.