Too early in the morning to think about weak/static/dynamic typing. Also too long since my CS classes (about 20 months!). Perhaps using Perl means I don't care too much about typing. Or is that just stereotyping?
How can you feel when you're made of steel? I am made of steel. I am the Robot Tourist. Robot Tourist, by Ten Benson
Stereotypes are often considered a bad thing, that one tries to avoid and still can't help using. OTHOH how could our brains manage to think and set focus on some things while simplifying others, if not with stereotypes?
Hm ... if there are stereotypes in programming (as a technical term) I don't know its meaning and would be happy to be enlightened about it.
While the word "stereotype" can denote simple "cataloguing" or "categorization" of a concept, the most common connotation of the word implies an oversimplified and often biased mental image. In this sense, it generally means that the person is not actually thinking about the thing itself, but is rather using the conventional image that was received or formed at some previous time. Therefore I wouldn't say that it's any sort of prerequisite for mental functioning, and could even be seen as a hindrance to real "thought".
Is everyone's opinion on what the difference between strong and dynamic typing in sync?
I have the impression that static is that it's known in advance, and strong is that it's enforced. Usually strong typing is a prerequisite to static typing, but does not imply when the type check is made.
I like your definitions, so I'll try to put together a short list of some of the languages I know and where they fit in the scale.
Strong and static: Haskell, ML, PL/SQL, Java (but only if they implemented generics properly so you wouldn't need typecasting)
Strong and dynamic: Perl, Lisp, Scheme
Weak and static: C, C++, Pascal, Java (as is)
The reason (as I understand it) that it is possible to have weakly-typed but also statically-typed languages is because of typecasts: you are essentially instructing the compiler to ignore the type declarations you've already given it. Also note that the first two languages I listed under Strong and Static allow total type polymorphism so that the same functions and data structures can apply to arbitrarily many types, but compile-time resolution still has to be possible.
Your definitions are close to what is in the litature. Really, "strong" and "static" are orthoginal. Being static means that your language needs to have some means of determining the types at compile time, while strong means those types are difficult to change during execution (runtime). Pascal/C/etc. determine the types via special syntax (int foo, bar; and such), while more modern Hindley-Milner type systems can figure it out based on what you do with the variable the first time you use it.
"There is no shame in being self-taught, only in not trying to learn in the first place." -- Atrus, Myst: The Book of D'ni.
Touch typing definitely gets it done for me except when
I'm using one of my many Palm-OS devices. Then touch typing
doesn't apply since I never got one of them folding keyboards
that you see on the market for them.
The way I figure it the times I'd want to use a keyboard
with my Palm device is normally when I have access to my
laptop or desktop machine and they have keyboards already.
Stereo-typing? On one hand I avoid it like the
plague and on the other some folks insist on being a living
stereo-type of one fashion or another. At least that is
I get a laugh everytime I meet one of those folks as
they are they ones usually complaining about the stereotype
affecting the "grouping" they belong to and I
don't necessarily refer to race either.
Geno-typing? That stuff scares the hell out of me. If
Big Brother® ever figures out a way to use that to
predict people's behavior we are all in big trouble.
Maybe I'm being paranoid there, but paranoia has saved
my butt on more that one occasion during my lifetime.
Scarier thought: Typing genes and using them for goofy purposes such as carreers to see who is "genetically qualified" for the job, and insurance to see if you are too risky to insure. Although, I do not think this will happen in my lifetime, so I am not worried about it :). If you have not seen Gatica yet, this is where these ideas came from (for me) ;).
Yes, I know all the lewd jokes about one-handed typing. However, I shattered several bones in my left hand when I was younger, and was faced with the need to type one-handed. I learned the right-handed Dvorak layout out of necessity. My old speed was quickly matched, then surpassed.
I've since regained the use of my left hand (gotta love good surgeons), but I continue to use right-hand Dvorak. I type around 80WPM, which is plenty fast for code. And, I have a hand free to look up code in the Cookbook, sip my coffee, adjust my stereo, and so on.
An additional added benefit: if I get RSI in my right hand, I will just learn left-handed Dvorak, and let my right recover. ;-)
Anima Legato .oO all things connect through the motion of the mind
touch-typing is the only way to go... writing with pens sucks for my generation... bout 80% of the other options went over-my-head, but who cares? if they were useful to me I guess I would know them...