Beefy Boxes and Bandwidth Generously Provided by pair Networks
Think about Loose Coupling
 
PerlMonks  

Re: Strong typing and Type Safety.A multilanguage approach

by eyepopslikeamosquito (Chancellor)
on Nov 20, 2010 at 12:41 UTC ( #872663=note: print w/replies, xml ) Need Help??


in reply to Strong typing and Type Safety.A multilanguage approach

I found this old MJD quote relevant:

After reading a lot of articles, I discovered that different people had at least eight different notions of what 'strongly typed language' meant. Sometimes they weren't even sure themselves; I found some articles which defined 'strongly typed language' and then classified languages as strongly or weakly typed in explicit accord with some other definition that contradicted the one they had first given.

My conclusion is that 'strongly typed language' doesn't mean anything at all, and that if you hear someone say that some language is strongly typed, or some other language is weakly typed, you should assume that you don't know what they meant.

Your articles are based on your opinions, especially your opinion of what "strong typing" and "weak typing" mean. Yet these opinions were not supported by citations. Accordingly, I found these articles somewhat lightweight and lacking in rigor. Also, writing a series of articles on typing without describing type inference and functional languages (e.g. Haskell) is a serious omission IMHO. Since I couldn't find any useful references on typing in your articles, I present a few below that I found useful:

  • Comment on Re: Strong typing and Type Safety.A multilanguage approach

Replies are listed 'Best First'.
Re^2: Strong typing and Type Safety.A multilanguage approach
by nikosv (Chaplain) on Nov 23, 2010 at 07:10 UTC
Re^2: Strong typing and Type Safety.A multilanguage approach
by nikosv (Chaplain) on Nov 20, 2010 at 15:10 UTC
    were not supported by citations

    Let's take this one to Room12A too!

    if you hear someone say that some language is strongly typed, or some other language is weakly typed,you should assume that you don't know what they meant.

    that is correct and is the exact point of the article which you unfortunatelly completely missed;the point was that such a distinction is not feasible.Have you noticed the section "Perl Weakly typed?" and then "Perl Strongly typed?" or the conclusion of the article that you cannot label a language of one type or the other? however you should be able to understand the mechanisms behind typing though so when someone uses the terms strong or static or weak or dynamic or late or early binding, more or less know the whereabouts.Why do these terms exist otherwise if they serve no purpose?

    I also think that the example with the void pointers makes the concept of type safety pretty clear

    Also, writing a series of articles on typing without describing type inference and functional languages (e.g. Haskell) is a serious omission IMHO

    what is your definition of type inference then and whose type systems' shortcomings does it address?

    Update : book citations through Google books :

    Perl Cookbook 2nd ed (Page 408)

    Beyond Java (page 57)

    Beginning VB 2008: From Novice to Professional (page 66)

    Practical Distributed Processing (Page 156)

      Why do these terms exist otherwise if they serve no purpose?

      Have you ever watched cable news? Many, many terms exist which serve no purpose other than to obfuscate and to perpetuate silly and irrelevant arguments.

      Why do these terms exist otherwise if they serve no purpose?

      Of course they have purposes, but that not does not speak to their utility in language analysis.

      The purposes of these terms are many and varied. In my experience, their primary intended purpose is to form invalid arguments. (An invalid argument is an argument for which one cannot ascertain the truth of its conclusion.)

        I see what you mean.On the other hand I find their purpose as a way of describing a notion. For example Wikipedia has this to say about Perl6 type system :

        "In Perl 6, the dynamic type system of Perl 5 has been augmented by the addition of static types" and "Perl 6 offers a hybrid typing system whereby the programmer may choose to use Static Typing, Dynamic Typing or mix the two"

        Looking at those sentences the terms dynamic, static and hybrid are mentioned to promptly describe a notion.I don't know if that could be done otherwise.Or for example what hides behind the term MMD.I think the arguing starts because this notion could be considered open to interpretation and not because of the terms themselves.For those reasons I think that terminology is needed

      Let's take this one to Room12A too!

      Hey! I feel I should get a citation for that ;)

        Hey! I feel I should get a citation for that
        Very well. The first reference to Room 12A at Perl Monks, to indicate "uncompromising and relentless arguing by contradiction in Perl Monk threads", was made here by ruzam++ on November 20, 2010.

        In the interests of fairness though, I must also acknowledge artisan BrowserUk++ and others in this monumental work for elevating "Room 12A" into a legitimate form of contemporary art.

        I hereby lay claim to be the first to use the term Room 12 to indicate "uncompromising and relentless abuse in Perl Monks threads" ... You maloderous pervert! You tit!

      that is correct and is the exact point of the article which you unfortunatelly completely missed
      You are right. I missed it. Maybe I so was enchanted by all those advertisements that kept relentlessly popping up in my face that I missed the point of the actual content. Maybe I got distracted by having to click "Next" again and again because I could find no option to display the whole article on one page.
      what is your definition of type inference then
      I think I've found the definitive definition of "type inference" on page 6 of "Type Systems Demystified" by Nikos Vaggalis:
      type inference: used extensively by Linq where a lot of times you cannot use explicitly typing, so you let the compiler decide
      If you find a better definition, please let us know.

        I think I've found the definitive definition of "type inference" on page 6

        wow!thanks!

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://872663]
help
Chatterbox?
and all is quiet...

How do I use this? | Other CB clients
Other Users?
Others perusing the Monastery: (6)
As of 2018-07-21 14:05 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?
    It has been suggested to rename Perl 6 in order to boost its marketing potential. Which name would you prefer?















    Results (449 votes). Check out past polls.

    Notices?