Nieuws:

Welkom, Gast. Alsjeblieft inloggen of registreren.
Heb je de activerings-mail niet ontvangen?

Auteur Topic: Dynamically typed vs Statically typed talen  (gelezen 2124 keer)

Offline idefix

  • Lid
Dynamically typed vs Statically typed talen
« Gepost op: 2008/06/13, 09:04:33 »
Hallo,

ik heb een achtergrond in talen waar variabelen verplicht met een type gedeclareerd worden (C, C++, Java):

int a = 2;De nieuwe generatie script-talen (Python, Ruby,...) hanteert echter het principe van dynamic typing: je moet bij de declaratie geen type meer opgeven:

a = 2Erger nog: je kan het type in deze talen "onderweg" veranderen:

a = 2
...
a = "Python"
Dit geeft een grotere flexibiliteit, maar ik vind dat het vooral verwarring kan scheppen in een programma. Wat vinden jullie?
Support bacteria. They're the only culture some people have.

Offline markba

  • Lid
    • http://markbaaijens.nl/
Dynamically typed vs Statically typed talen
« Reactie #1 Gepost op: 2008/06/13, 09:29:30 »
Voor codepuristen is er slechts één oplossing: statische declaratie. Helaas is het zo dat dat de snelheid van ontwikkelen omlaaghaalt. Daarom is het niet verrassend dat scriptgebaseerde talen als python zeer populair zijn, de code rolt als het ware van je vingers, waar je aan denkt, maak je, zonder je in een verplicht keurslijf te hijsen.

Heb in de loop der tijd met allerlei talen gewerkt, zowel statisch (Pascal, Delphi, C, C++, Java, C#, ...) als dynamisch (Lisp, Python, VB, Perl, ....) maar ben nu helemaal om naar Python vanwege het herwonnen plezier in het coderen. Je moet er even aan wennen, je codeermethodiek moet je ook wat aanpassen (de compiler haalt dit soort 'fouten' niet of zeer weinig naar boven), maar dat gaat erg snel.

Offline BailHope

  • Lid
    • Techneut
Dynamically typed vs Statically typed talen
« Reactie #2 Gepost op: 2008/06/14, 15:37:31 »
Ik denk eigenlijk dat dit net het verschil is tussen script- en programmeer-talen. Een script kan dynamically-typed werken, een echte programmeertaal enkel statically typed.

Het onderscheid tussen een scripttaal en een programmeertaal is wel aan het verdwijnen denk ik eerder. Persoonlijk gaat mijn voorkeur nog altijd uit naar statically typed omdat dit de leesbaarheid van de code verhoogt.
Ubuntu user #12046
Mijn blog voor techneuten: http://techneut.wordpress.com
Voor de professionele IT'er: http://it-potato.blogspot.com

Offline profoX

  • Lid
    • wesley
    • Lionslink
Dynamically typed vs Statically typed talen
« Reactie #3 Gepost op: 2008/06/14, 16:26:10 »
Het ligt maar aan je definitie van wat een "programmeertaal" is. Een programmeertaal is een taal om in te programmeren, en dat kan zowel met ""programmeertalen"" als met ""script-talen"" :) technisch gezien verschilt het natuurlijk wel een beetje, maar elke programmeertaal verschilt technisch wel wat.. en je hebt zelfs talen die tussen de 2 inzitten.. bv. Java en Mono (.NET)
Human Knowledge Belongs To The World -- Antitrust (2001)
Nederlandstalige Ubuntu documentatie van Ubuntu-NL (wiki)

Offline Double12

  • Lid
Dynamically typed vs Statically typed talen
« Reactie #4 Gepost op: 2008/06/14, 22:54:49 »
Citaat van: Bail Hope
Het onderscheid tussen een scripttaal en een programmeertaal is wel aan het verdwijnen denk ik eerder.
Een script wordt tijdens het uitvoeren geïnterpreteerd en een gecompileerd programma wordt één keer gecompileerd en daarna alleen uitgevoerd. Het lijkt me niet echt dat zoiets vervaagt: een programma wordt óf uitgevoerd óf geïnterpreteerd.

Op zich maakt het me niet echt uit of iets dynamically typed of statically typed is, maar ik vraag me in Python dus af of je nog wel een lege variabele kunt maken, zonder er direct een waarde aan toe te kennen. Als dat niet kan, geef ik denk  ik wel de voorkeur aan statically typed.

Offline profoX

  • Lid
    • wesley
    • Lionslink
Dynamically typed vs Statically typed talen
« Reactie #5 Gepost op: 2008/06/15, 00:03:56 »
Citaat van: Double12
Citaat van: Bail Hope
Het onderscheid tussen een scripttaal en een programmeertaal is wel aan het verdwijnen denk ik eerder.
Een script wordt tijdens het uitvoeren geïnterpreteerd en een gecompileerd programma wordt één keer gecompileerd en daarna alleen uitgevoerd. Het lijkt me niet echt dat zoiets vervaagt: een programma wordt óf uitgevoerd óf geïnterpreteerd.
Zoals ik eerder al zei bestaan er ook dingen die een beetje tussen de twee zitten.. Zie ook: Artikel over Bytecode op Wikipedia

Citaat van: Double12
Op zich maakt het me niet echt uit of iets dynamically typed of statically typed is, maar ik vraag me in Python dus af of je nog wel een lege variabele kunt maken, zonder er direct een waarde aan toe te kennen. Als dat niet kan, geef ik denk  ik wel de voorkeur aan statically typed.
'Min of meer' kan dat wel :) gewoon met lege variabelen starten..
>>> a = ''
>>> a
''
>>> a.append("test")
Traceback (most recent call last):
  File "", line 1, in
AttributeError: 'str' object has no attribute 'append'

>>> b = []
>>> b.append("bla")
>>> b.append("foo")
>>> b
['bla', 'foo']
Human Knowledge Belongs To The World -- Antitrust (2001)
Nederlandstalige Ubuntu documentatie van Ubuntu-NL (wiki)