Ola Bini: Programming Language Synchronicity: Pragmatic Static Typing

 
23 mei 2008

A statically typed language with type inference will give you some of the same benefits as a good dynamic language, but definitely not all of them. In particular, you get different benefits and a larger degree of flexibility from a dynamic language that can’t be achieved in a static language. Neal Ford and others have been talking about the distinction between dynamic and static typing as being incorrect. The real question is between essence and ceremony. Java is a ceremonious language because it needs you to do several dances to the rain gods to declare even the simplest form of method. In an essential language you will say what you need to say, but nothing else. This is one of the reasons dynamic languages and type inferenced static languages sometimes look quite alike – it’s the absence of ceremony that people react to. That doesn’t mean any essential language can be replaced by another. And with regads to ceremony – don’t use a ceremonious language at all. Please. There is no reason and there are many alternatives that are better.

Ola Bini: Programming Language Synchronicity: Pragmatic Static Typing
Interessante post, lees ook de commentaren.
In C# is er de mogelijkheid om gebruik te maken van type inference (var). Dit lijkt te leiden tot enkele voordelen van dynamische talen, of zoals sommigen wagen te beweren, dat C# “dynamischer” wordt. Inference wordt gebruikt, dus er wordt wel degelijk getypet, maar niet meer door de ontwikkelaar. Dat is iets waar is sowieso een groot voorstander van ben, ontwikkelaars zijn heel slecht in typing, maar daarover een andere post. Als je in VisualStudio zweeft boven een var declaratie zal je zelfs het type zien op poppen, mooi toch?
Toch is deze functionaliteit niet een werkelijke oplossing van een probleem – ik ben bang dat het meer een marketing beweging is omdat dynamische talen zo in zwang zijn, en we dan kunnen zeggen: “ja kijk maar, wij zijn ook dynamisch!” Er is al code gedetecteerd waarin Hongaarse notatie gebruikt wordt bij var types omdat ontwikkelaars het typen niet kunnen laten (doet me denken aan een variant op Wim Sonnevelds liedje: “hij kon het typen niet laten, hij typete naar iedere variabele…”). Misschien is het gebruik van een var type zelfs een noodgreep omdat het anders wel heel lastig wordt om lambda expressies mogelijk te maken, en zo ontstaat een kaartenhuis van hacks waar ontwikkelaars nog jaren mee worstelen om er achter te komen op welke wijze je hier allemaal mee moet werken op een goede manier. En in de tussentijd worden systemen ontwikkeld!


Werken met ?
Kijk dan bij onze mogelijkheden voor zowel starters als ervaren engineers.


Categorieën: Development, .Net

Tags: ,


Reactie

  • Tammo schreef:

    Dit klinkt wel leuk eigenlijk. Verstandig dat ze het een en ander van Haskell afkijken.
    Ik vind http://cdsmith.twu.net/types.html wel een goede uitleg over het verschil tussen dynamische en statische types.

    Geplaatst op 23 mei 2008 om 12:14 Permalink