Dynamische talen (vervolg)

Een voordeel van static typed languages is dat de IDE je makkelijker kan helpen met autocomplete. Je bent minder lang bezig met het zoeken naar de methode die je wilt gebruiken. En als de methode nog niet bestaat wil de IDE wel een stub voor je genereren op de juiste plek. Je kunt dus vrij snel code schrijven.

Code moet je echter ook lezen en dat doen we eigenlijk veel meer dan code schrijven. Als de code makkelijker te lezen is en dus makkelijker te begrijpen kunnen we ook sneller programmeren.

Wat voorbeelden van moeilijk leesbare code zien we in Java met generics:

1
Map <Long, CompanyDataInt> companiesMap = new HashMap <Long, CompanyDataInt>();

Het kan nog erger als je een collectie van een collectie typesafe wilt maken. De zelfde code nu in Smalltalk:

1
companiesMap := MappedCollection new.

Een stuk minder code en veel sneller te lezen en te begrijpen. Een voorbeeld waar extra code wel toegevoegde waarde heeft zien we bij named arguments.

In onderstaande Java code moet je de methode definitie kennen om te weten wat de rol van de argumenten is.

1
companiesMap.put(company.getCompanyId(), company);

Smalltalk bevat named arguments:

1
companiesMap at: (company companyID) put: company.

Nu net zo veel code, maar de named arguments geven beter weer wat de rollen van de argumenten zijn. Het is extra informatie voor de lezer en niet voor de compiler.