SitePoint Sponsor

User Tag List

Page 2 of 3 FirstFirst 123 LastLast
Results 26 to 50 of 53
  1. #26
    SitePoint Addict
    Join Date
    Jan 2005
    Location
    Ireland
    Posts
    349
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    And even in ActionScript 2 types are not forced upon you, as far as I can see.

  2. #27
    ********* Victim lastcraft's Avatar
    Join Date
    Apr 2003
    Location
    London
    Posts
    2,423
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)
    Hi...

    Quote Originally Posted by Rotwang
    It's not supposed to be perfect. It can't be.
    I am well aware of the stats (and fond of quoting them myself). Here is another. Code inspection can catch 95% of errors. That is why I said it is the unit testing leads to refactoring that leads to cleaner code that is easier to inspect that is easier to define and so is easier to test and so reduces the defect. It's a virtuous cycle. The statistics (80% is actually the highest figure) come from conventional QA testing after the developers have performed rudimetary checks.

    I also know the effect from projects I have worked on, ranging from phone systems (strongly typed and still a complete mess), to data mining. Types are not useless, just marginal. It's just that I no longer see the errors that typing is supposed to catch, so they no longer have any value.

    The picture is more complicated, but more pleasant, than you paint it. I can also give you a list of world class developers who are using weakly typed languages. Really you have to try them in the development environment in which they perform well. It's pretty obvious nothing else external will convince you (and I have no patience for banging my head on a wall). You have to try it.

    Quote Originally Posted by Rotwang
    When it comes to type errors (and I'm only talking type errors right now, not all errors), you can be damn sure that a java compiler will tell you when your types mismatch.
    Which misses the point. How did you get into such a mess that you are passing around completely the wrong thing? If typing is catching you errors , then you have already lost control of your code.

    Quote Originally Posted by Rotwang
    Like 100%. Replace that with weak typing and unit testing, and you're not at 100% anymore.
    This really loses the plot. Contracts are no more effective than QA testing and typing is a weak form of contracts at best. Are you saying it is sufficient to get your types right for your code to work? That would make lint tools a panacea. It means there would never be errors in C++ code.

    Quote Originally Posted by Rotwang
    But like I say maybe you don't care about the quotes, and just because it's written in a book doesn't make it true. I guess.
    Well no .

    Quote Originally Posted by Rotwang
    ...so all type errors would become runtime errors (not to mention it would probably slow the run-time down because it would care about type checking), so it's really not an option.
    This point is confused I think.

    You are now discussing compilation, which is a different argument. Compilers type check just to allocate storage and to be able to handle method dispatch without knowing the type at run time, not because they feel a need to on principle. You also miss out JIT, which would rather cloud your argument, but thta's by the by. The problem with complilation is multiple platforms, versioning of libraries and the longer editing cycle.

    Oh, yeah, you can get compilers for Python and Scheme. Haskell is either compiled or interpreted and is strongly typed. Prolog is compiled, SQL is interpreted.

    Your example of passing in the wrong object is also common in Java 1.4 from containers, because of the need to cast. Class cast exception anyone?

    Quote Originally Posted by Rotwang
    But that's honestly how I feel so there it is, sorry!
    I think you should try it in a development team with pairing, TDD, refactoring, etc.

    yours, Marcus
    Marcus Baker
    Testing: SimpleTest, Cgreen, Fakemail
    Other: Phemto dependency injector
    Books: PHP in Action, 97 things

  3. #28
    SitePoint Zealot Rotwang's Avatar
    Join Date
    Jun 2005
    Posts
    104
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Quote Originally Posted by lastcraft
    Hi...
    The picture is more complicated, but more pleasant, than you paint it. I can also give you a list of world class developers who are using weakly typed languages.
    Do you think there are more "world-class" developers using strong typed languages or weak-typed languages?

    Which misses the point. How did you get into such a mess that you are passing around completely the wrong thing? If typing is catching you errors , then you have already lost control of your code.
    You're kidding right? How did I get into the mess? The usual reasons. I mistyped. I stayed up to late. Maybe a stomach ache while coding. I'm human. I find there's a certain personality-type of programmers who actually don't expect themselves to make mistakes. You're going to make errors when you write your code. It's going to happen. I promise. You are not now, nor will you ever be "in control of your code".

    This really loses the plot. Contracts are no more effective than QA testing and typing is a weak form of contracts at best. Are you saying it is sufficient to get your types right for your code to work? That would make lint tools a panacea. It means there would never be errors in C++ code.
    Now that's just plain unfair. I went out of my way in my post to say: "And by the way, I'm NOT saying that unit testing is irrelevant and strong typing 'replaces' it. I unit test when I write java too." To get that response from you is just ridiculous. Makes you look bad.

    You are now discussing compilation, which is a different argument. Compilers type check just to allocate storage and to be able to handle method dispatch without knowing the type at run time, not because they feel a need to on principle.
    No. It's absolutely not a different argument. The fact that (ok pretty much) every language that reasonably had the choice of strong-typing took it should tell you something. Compilers don't necessarily need to type check for the purposes of allocating storage. Cpp compilers maybe, but you know very well you could write a language/framework that compiled before runtime but doesn't do strong-typing. Hmm.. like PHP compilers, for example. Yet we (almost) can't even name one. The only ones we can name are pretty obscure, relatively speaking. Prolog?? That's a sign.

    Oh, yeah, you can get compilers for Python and Scheme. Haskell is either compiled or interpreted and is strongly typed. Prolog is compiled, SQL is interpreted.
    The fact that somewhere there are compilers for Python (and PHP too btw), is obviously irrelevant. When they designed those languages they obviously were expecting them to be interpreted rather than compiled, hence the reason they're weak-typed, hence my point about "having the option" remains. And btw, Haskell!??!? If you have to dig so deep that you pick languages that aren't even on the TIOBE index then you're grasping at straws.

  4. #29
    eschew sesquipedalians silver trophy sweatje's Avatar
    Join Date
    Jun 2003
    Location
    Iowa, USA
    Posts
    3,749
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Quote Originally Posted by Rotwang
    Do you think there are more "world-class" developers using strong typed languages or weak-typed languages?
    Perhaps at a slight tangent to your argument, but in this article Joel Spolsky (the original author of Visual Basic) advocates the bigest productivity advance in programming are those languages which eliviate the concern for memory management. My favorite quote: "The real significant productivity advance we've had in programming has been from languages which manage memory for you automatically."
    Jason Sweat ZCE - jsweat_php@yahoo.com
    Book: PHP Patterns
    Good Stuff: SimpleTest PHPUnit FireFox ADOdb YUI
    Detestable (adjective): software that isn't testable.

  5. #30
    SitePoint Wizard
    Join Date
    Aug 2004
    Location
    California
    Posts
    1,672
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    In the time Rotwang has spent whining about this, he could have looked through the phplint code and be up to speed on making what he considers a significant contribution to the PHP language.
    Christopher

  6. #31
    SitePoint Zealot
    Join Date
    Jul 2004
    Location
    Oklahoma
    Posts
    119
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Quote Originally Posted by Rotwang

    No. It's absolutely not a different argument. The fact that (ok pretty much) every language that reasonably had the choice of strong-typing took it should tell you something. Compilers don't necessarily need to type check for the purposes of allocating storage. Cpp compilers maybe, but you know very well you could write a language/framework that compiled before runtime but doesn't do strong-typing. Hmm.. like PHP compilers, for example. Yet we (almost) can't even name one. The only ones we can name are pretty obscure, relatively speaking. Prolog?? That's a sign.



    The fact that somewhere there are compilers for Python (and PHP too btw), is obviously irrelevant. When they designed those languages they obviously were expecting them to be interpreted rather than compiled, hence the reason they're weak-typed, hence my point about "having the option" remains. And btw, Haskell!??!? If you have to dig so deep that you pick languages that aren't even on the TIOBE index then you're grasping at straws.
    Wow, I guess the fact that you ignore everyone's arguments, and suggestions, and continue on your own ill-researched path says it all. If you don't like dynamic typed languages, then by all means, quit using them. Noone is holding a gun to your head saying "you will write PHP instead of Java". There are advantages and disadvantages to both, and even some that are personal opinion. If you don't like the way it works, fix it, or leave, but please, quit trying to argue something that you have no intention on learning about, or changing your mind on.

  7. #32
    SitePoint Zealot Rotwang's Avatar
    Join Date
    Jun 2005
    Posts
    104
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Quote Originally Posted by Sgarissta
    Wow, I guess the fact that you ignore everyone's arguments, and suggestions, and continue on your own ill-researched path says it all. If you don't like dynamic typed languages, then by all means, quit using them. Noone is holding a gun to your head saying "you will write PHP instead of Java". There are advantages and disadvantages to both, and even some that are personal opinion. If you don't like the way it works, fix it, or leave, but please, quit trying to argue something that you have no intention on learning about, or changing your mind on.
    How am I "ignoring" anyone's argument? Those are called refutations. And look, when I started the thread I said "I know a lot of you actually like weak-typing (and I will never agree with you)". So maybe you should be whining at the people who started the strong vs weak argument. All of my posts were responses to those arguments. If they make points in favor of weak typing, I (or "we", who are in favor of strong typing) can't make counterpoints? I don't follow you at all.

    Maybe you just don't agree so rather than argue the issue, you pretend I'm irrational.

  8. #33
    Non-Member
    Join Date
    Jan 2003
    Posts
    5,748
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    I've been following this thread, keeping to myself but now I feel I need to make a shout

    Rotwang, you are being irrational, or at now you are.

    Rotwang:

    But like I say maybe you don't care about the quotes, and just because it's written in a book doesn't make it true. I guess.
    You buy a book to read and learn from. An author doesn't just put a transcript to ink and paper, they also put their years of experience to the book as well. The more you delve into application development on the larger scale, the more you benifit from this experience, that has been passed on from the author to the book.

    Take Domain Driven Design as an example... In your case, you've guessed wrong.

    Marcus:

    Which misses the point. How did you get into such a mess that you are passing around completely the wrong thing? If typing is catching you errors , then you have already lost control of your code.
    Rotwang:

    You're kidding right? How did I get into the mess? The usual reasons. I mistyped. I stayed up to late. Maybe a stomach ache while coding. I'm human. I find there's a certain personality-type of programmers who actually don't expect themselves to make mistakes. You're going to make errors when you write your code. It's going to happen. I promise. You are not now, nor will you ever be "in control of your code".
    Type hinting helps but it's by no means a substitute to unit testing if your applying it during your development. If your relying solely on type hinting then you have no scope of what your script is doing.

    Rotwang:

    You're going to make errors when you write your code.
    Yes, we do, isn't that the fun of development though? But in saying that, you'd be making fewer mistakes with the help of unit testing yes?

  9. #34
    SitePoint Zealot Rotwang's Avatar
    Join Date
    Jun 2005
    Posts
    104
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Quote Originally Posted by Dr Livingston
    You buy a book to read and learn from. An author doesn't just put a transcript to ink and paper, they also put their years of experience to the book as well. The more you delve into application development on the larger scale, the more you benifit from this experience, that has been passed on from the author to the book.
    Er, um, I was the one who quoted from the book, to help my argument. I think you misread my post. (Maybe that's why it seems irrational to you). Take a look again. I'm saying something like "well here's what this book says, it helps my point- but I know you might just say you don't care that some book says that".


    Type hinting helps but it's by no means a substitute to unit testing if your applying it during your development. If your relying solely on type hinting then you have no scope of what your script is doing.

    Yes, we do, isn't that the fun of development though? But in saying that, you'd be making fewer mistakes with the help of unit testing yes?
    Ok now, I'm going to get irrational. This actually making me angry. You say you've been following this thread up until now?

    Quote Originally Posted by Rotwang
    And by the way, I'm NOT saying that unit testing is irrelevant and strong typing "replaces" it. I unit test when I write java too.
    Quote Originally Posted by Rotwang
    And by the way, I'm NOT saying that unit testing is irrelevant and strong typing "replaces" it. I unit test when I write java too.
    Quote Originally Posted by Rotwang
    And by the way, I'm NOT saying that unit testing is irrelevant and strong typing "replaces" it. I unit test when I write java too.

    I even brought that up again in my second from last response:

    Quote Originally Posted by Rotwang
    Now that's just plain unfair. I went out of my way in my post to say: "And by the way, I'm NOT saying that unit testing is irrelevant and strong typing 'replaces' it. I unit test when I write java too." To get that response from you is just ridiculous.
    I'm on the verge of accusing you of doing that on purpose just to piss me off and make me angry enough to seem irrational. None of the examples you provided even border on "irrational" responses. You may disagree but there was nothing irrational about my mode of argument.

  10. #35
    SitePoint Addict
    Join Date
    Jan 2005
    Location
    Ireland
    Posts
    349
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    I'm sorry for asking why you people dislike weak typed languages, didn't realise it would end up in an argument involving emotion.

    Did you get you're idea working, involving __call() and the calling of non-existent method within a class?

  11. #36
    Non-Member
    Join Date
    Jan 2003
    Posts
    5,748
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    You say you've been following this thread up until now?
    Must have skimmed over a few posts huh?

  12. #37
    simple tester McGruff's Avatar
    Join Date
    Sep 2003
    Location
    Glasgow
    Posts
    1,690
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    This is starting to stray from the informative, technical discussions I like to see here into personal recriminations which are much less interesting. Let's just leave it there.

  13. #38
    SitePoint Zealot Rotwang's Avatar
    Join Date
    Jun 2005
    Posts
    104
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    I agree mcgruff. Well, except I'd kind of like to veer back into the informative, technical discussion about typing. But then again, I guess we could say 36 posts is enough for one thread.

    And yes Ryan, I got it working!

  14. #39
    Non-Member
    Join Date
    Jan 2003
    Posts
    5,748
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    I missed a few posts, and I thought some humour may help, but I'll leave it that since I've gone off topic.

    My appologies Rotwang

  15. #40
    SitePoint Guru BerislavLopac's Avatar
    Join Date
    Sep 2004
    Location
    Zagreb, Croatia
    Posts
    830
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Quote Originally Posted by Rotwang
    My development environment is UltraEdit. I only use it for colored text and the file tree.
    I just remembered something: when editing a code file in UE, press F8. Your life will never be the same again.

  16. #41
    SitePoint Zealot Rotwang's Avatar
    Join Date
    Jun 2005
    Posts
    104
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    hmm that opened a side panel that lists the constructor definition. It only lists the constructor, not any member functions.. I think I just need a new php wordfile.txt I'll look around for a fix, thanks

  17. #42
    SitePoint Wizard DougBTX's Avatar
    Join Date
    Nov 2001
    Location
    Bath, UK
    Posts
    2,498
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Quote Originally Posted by Rotwang
    I'd kind of like to veer back into the informative, technical discussion about typing.
    I like strong typing over weak typing, whether it is static or dynamic.

    With that said, do I like static more or dynamic more?

    Static typing means that there is more meta data in the code, which give several advantages:

    1. You know what should go in a variable,
    2. Potentially makes the code more self-documenting,
    3. The IDE knows what should go in a variable, so:
    - Auto-completion is easier to write, and
    - Automatic refactoring is easier to implement, and
    - Type checking is easier to implement.

    The main disadvantage from a programmer's perspective is that he needs to write this meta data down, and update it when it changes.

    So, the debate from my perspective is the toss up between having to write more code, and using an IDE which can take advantage of that code I've written so that I can write code faster. Will that help me write programs faster?

    I feel that one comes down on the perception of writing code faster vs actually writing code faster problem. In the Ruby mailing list, someone complained that their Ruby IDE didn't have autocompletion, basically because it is so difficult to write an IDE with autocompletion for Ruby. (Ruby is a much more dynamic language than PHP.) His example was that "he got cranky" if he had to write "boolean" instead of "bool<tab>". I remember that from back when I coded in a static language with autocompletion, so I feel the guy's pain The flaw with the logic is that in a dynamic language, you never need to write 'boolean'. $foo = true; You don't need to declare that it is a boolean, so you don't need to write Boolean.

    Faster refactoring by automagically rewriting my variable declerations? In a dynamic language, I don't have declarations to rewrite.

    I've found that the limiting factor in my coding is working out what specifically I want to write. I can only write the meta data to help the IDE once I know what it is I want to write, so it cannot help me with my bottle neck, and will only slow me down if I descide to change that meta data. This mitigates advantage 1 I wrote down.

    So, that leaves advantage 2. Do types give me more self documenting code? I think they might, knowing the types of variables might make it easier to work out the logic of a piece of code. But, it strikes me that it should work the other way around. I should be able to see the types directly from the logic, and that's what comments and refactoring are for, when the logic isn't clear enough straight from the code.

    I can't think of any more arguments to put in my straw man, so I guess I'll have to leave it at that

    Douglas
    Hello World

  18. #43
    SitePoint Zealot Rotwang's Avatar
    Join Date
    Jun 2005
    Posts
    104
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    I'm mostly with that. I think it's much easier to read someone else's code if I can see the type declarations.

    The only thing I want to point out is your bool example isn't the best one for autocompletion. A cooler example is like in Visual Studio when you type the name of a variable and then press . (or -> for php), and it shows you a dropdown next to your cursor of all of the members of that class. And you can like tab to one of them. Even if there are too many to tab to, it at least helps to have the list right there so you can remember that the function you want is updateDBTable and not updateTable, etc. Or when you start writing a function and when you type the "(" it shows you the definition of the function. I find that stuff very helpful. That kind of stuff is probably a lot easier to make IDE's do when you've got a strong typed language.

    That would also tell you you've used the wrong type even before you compile/run.

  19. #44
    ********* Victim lastcraft's Avatar
    Join Date
    Apr 2003
    Location
    London
    Posts
    2,423
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)
    Hi...

    Quote Originally Posted by Rotwang
    Do you think there are more "world-class" developers using strong typed languages or weak-typed languages?
    My point was that they use both and without predudice. An equally silly argument would be me saying that most newer languages are dynamically typed, so that must be better. So what?

    Quote Originally Posted by Rotwang
    You're kidding right? How did I get into the mess? The usual reasons. I mistyped. I stayed up to late. Maybe a stomach ache while coding. I'm human. I find there's a certain personality-type of programmers who actually don't expect themselves to make mistakes. You're going to make errors when you write your code. It's going to happen. I promise. You are not now, nor will you ever be "in control of your code".
    I am really not kidding (honestly). Firstly introduce code review. Either as a formal practice or via. pairing or just as an informal get together on knotty problems. Secondly have a rigorous policy on code quality. No method longer than ten lines for instance. Unit testing you are already doing, so you have enough infrastructure to make these other practices work. Oh yes, and a forty hour week.

    It is entirely possible to get control of your code, and the clean room methodology does exactly this. Now I would not recommend going to that extreme on anything other than an unlimited budget, but you can have a lot of the benefit at less cost. Once you have this baseline established the kind of errors that still get through are more subtle design errors, well above the level of returning the wrong object.

    Actually the odd one will still slip through (never say never), but it's a trade off. By cutting down on all forms of error with cleaner code, the marginal gain of types in this environment is not worthwhile.

    Quote Originally Posted by Rotwang
    To get that response from you is just ridiculous. Makes you look bad.
    Well that's possibly true, but quoting 100% was just silly. Also your tone rather lacks a willingness to look at the other side of the argument, so I was clutching at anything that might break through.

    Quote Originally Posted by Rotwang
    No. It's absolutely not a different argument. The fact that (ok pretty much) every language that reasonably had the choice of strong-typing took it should tell you something.
    Yes. It tells me that additional information is required for programs to compile to a form that does not want embedded type information. Look at the argument the other way: any language that does not need static types does not have them.

    What you are actually asking for is not compilation or static typing, and this is where you seem to have got muddled, but a static analysis to make sure that you do not get a "method does not exist error". This check appears as a byproduct of compilation, hence the association. It has little bearing on the superiority or not of static types.

    You are conflating compilation, static typing and linting.

    Quote Originally Posted by Rotwang
    Compilers don't necessarily need to type check for the purposes of allocating storage.
    You do if you are trying to be efficient at the byte level. Both C++ (bare metal) and Java (embedded devices) had that as design goals.

    Quote Originally Posted by Rotwang
    Cpp compilers maybe, but you know very well you could write a language/framework that compiled before runtime but doesn't do strong-typing.
    Your argument is becoming increasingly opaque to me.

    Quote Originally Posted by Rotwang
    The only ones we can name are pretty obscure, relatively speaking. Prolog?? That's a sign.
    Well you wouldn't let me choose C and I didn't think of Objective C or VB. The Zend accelerator seemed like a cheap shot, so I skipped that one.

    Quote Originally Posted by Rotwang
    And btw, Haskell!??!? If you have to dig so deep that you pick languages that aren't even on the TIOBE index then you're grasping at straws.
    It was just the first one I thought of. You asked for a counter example and you were claiming a pretty absolute position so I only needed one counter example to break your argument (I actually gave SQL as well btw).

    If you are saying that compiled languages tend to be statically typed then I would agree. That's pretty obvious as if you have gone to the trouble of translating your method invocations into machine code for efficiency you are then not going to encode a symbolic look-up on top. Otherwise you may as well just ship an interpreter. This is a marriage of convenience though, not a choice made out of some massive superiority of static typing. Even C++ now has a mechanism to circumvent this constraint anyway, so it looks like even this bastion of static typing could not maintain an absolute position.

    Previously typing was thought to be an aid to developers, but then so were comments. Both do give marginal improvements, but both come at a cost. I prefer to look at the bigger picture. It's an ROI calculation, not an absolute.

    yours, Marcus
    Marcus Baker
    Testing: SimpleTest, Cgreen, Fakemail
    Other: Phemto dependency injector
    Books: PHP in Action, 97 things

  20. #45
    SitePoint Zealot Rotwang's Avatar
    Join Date
    Jun 2005
    Posts
    104
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Quote Originally Posted by lastcraft
    Hi...
    My point was that they use both and without predudice. An equally silly argument would be me saying that most newer languages are dynamically typed, so that must be better. So what?
    Can you back that up? I know you're not actually making that argument, you say it would be silly. But I'm curious... Are most newer languages dynamically typed? I'm not sure. It's tricky because new languages that are totally flopping aren't exactly helping the case. Anyway, I'd be curious to know how a list ranked by age would look.

    Well that's possibly true, but quoting 100% was just silly. Also your tone rather lacks a willingness to look at the other side of the argument, so I was clutching at anything that might break through.
    Oh yea, right, so your mistake was my fault. somehow. And btw I didn't say "100%" I "like 100%". If you're going to exploit my hyperbole, we'll never be able to communicate.

    What you are actually asking for is not compilation or static typing, and this is where you seem to have got muddled, but a static analysis to make sure that you do not get a "method does not exist error". This check appears as a byproduct of compilation, hence the association. It has little bearing on the superiority or not of static types.

    You are conflating compilation, static typing and linting.
    I'm sorry but you've gotten desperate. Because of the fact that I brought up those three things, you think I'm conflating them? The title of the thread is "Type Checking PHP Precompiler?". I bring up phplint. Do you think I'm confusing what phplint does with strong typing, in spite of the title of the thread? I describe it as a (poor) substitute. My perl example absolutely was a strong (well, weak) typing issue. And when I described my homemade method, I even stated "Actually I guess that might not count as 'type checking' per se, it's just 'more strictness'. " That was in regard to my homemade method, go read the context.

    Well you wouldn't let me choose C and I didn't think of Objective C or VB. The Zend accelerator seemed like a cheap shot, so I skipped that one.
    I thought it was obvious that I'm only comparing OOP languages since that's where strong typing matters most.

    If you are saying that compiled languages tend to be statically typed then I would agree.
    No, I'm saying that compiled OOP languages are, in nearly every case, strong-typed. Don't conflate static typing with strong typing.

    Even C++ now has a mechanism to circumvent this constraint anyway, so it looks like even this bastion of static typing could not maintain an absolute position.
    And even ActionScript 2, which absolutely didn't have to become strong-typed (because AS 1 wasn't), decided to become strong typed. And when it comes to c++, hell, it's got more flavors than baskin robbins.

    Hey btw I think VB is strong typed now in .net, actually. (I figure it would need to be, right?) So that's the direction they went in.

    EDIT: Sorry, Mackie’s, not baskin robbins.

  21. #46
    SitePoint Addict been's Avatar
    Join Date
    May 2002
    Location
    Gent, Belgium
    Posts
    284
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Quote Originally Posted by Rotwang
    Anyway, I'd be curious to know how a list ranked by age would look.
    Maybe the O'Reilly history of programming languages poster can be of some assistance?
    Per
    Everything
    works on a PowerPoint slide

  22. #47
    SitePoint Wizard DougBTX's Avatar
    Join Date
    Nov 2001
    Location
    Bath, UK
    Posts
    2,498
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Quote Originally Posted by Rotwang
    Can you back that up? I know you're not actually making that argument, you say it would be silly. But I'm curious... Are most newer languages dynamically typed? I'm not sure. It's tricky because new languages that are totally flopping aren't exactly helping the case. Anyway, I'd be curious to know how a list ranked by age would look.
    How old is new?

    (I couldn't think of any even semi-mainstream languages which are less than 10 years old, with the exception of C# which some people will say is a direct Java rip anyway...)

    Douglas
    Hello World

  23. #48
    SitePoint Wizard DougBTX's Avatar
    Join Date
    Nov 2001
    Location
    Bath, UK
    Posts
    2,498
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Quote Originally Posted by been
    Maybe the O'Reilly history of programming languages poster can be of some assistance?
    http://www.levenez.com/lang/history.html#05

    Not as colourful, but it does have PHP5 on it

    Douglas
    Hello World

  24. #49
    ********* Victim lastcraft's Avatar
    Join Date
    Apr 2003
    Location
    London
    Posts
    2,423
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)
    Hi...

    Quote Originally Posted by Rotwang
    Can you back that up?
    Probably . I was going on my own impression of what colleagues are finding hip these days. Apart from Smalltalk, weak typing (really dynamic typing) was hardly seen. VB and Perl was the province of sysadmins and drudge coders. Now it seems that Java is the starting language, and "real" pogrammers are using Ruby, Groovy and Python.

    Quote Originally Posted by Rotwang
    IOh yea, right, so your mistake was my fault. somehow. And btw I didn't say "100%" I "like 100%". If you're going to exploit my hyperbole, we'll never be able to communicate.
    I actually tried several different psychological approaches in several paragraphs. My problem is that you adopted a strident tone from the outset (hyperbole accepted). I was probing in different ways to see which approach would be most profitable in getting you to look at the other side of the argument. If you examine every statement (I don't have the patience in case you haven't guessed) then you will miss the wood for the trees. I was trying to get you to rethink a muddled position.

    The main thing is have I at any point challenged your view, by which I mean to get you to think the thing through again afresh? I am not interested in some petty point scoring. I am trying to change your mind, or allow mine to be changed instead.

    Quote Originally Posted by Rotwang
    Because of the fact that I brought up those three things, you think I'm conflating them?
    The concepts you were complaining about did not tie up with the failures in your examples. This was making nailing your argument directly like nailing jelly to the wall.

    Quote Originally Posted by Rotwang
    That was in regard to my homemade method, go read the context.
    I did. Don't be rude.

    Quote Originally Posted by Rotwang
    I thought it was obvious that I'm only comparing OOP languages since that's where strong typing matters most.
    You have pulled another statement out of your...er...hat. Rather than me wasting my time arguing, why don't you try to explain why strong typing matters most in an OO language, but not in say a functional one.

    Quote Originally Posted by Rotwang
    No, I'm saying that compiled OOP languages are, in nearly every case, strong-typed. Don't conflate static typing with strong typing.
    I didn't. I switched from the poorly defined term to the more exact term when I couldn't find a decent definition anywhere. I started looking for an exact definition when you started responding in a line by line style.

    Quote Originally Posted by Rotwang
    And when it comes to c++, hell, it's got more flavors than baskin robbins.
    There is no way I can pursuade you of any case for and against here. You are simply factually incorrect.

    C++ is one of the few languages that is officially ANSI standardised. It also has the so called TR1 document which lays out the future areas of standardisation so that compiler vendors can be ahead of the game. There will be differences in say g++ and metroworks whilst each implements each part of TR1 in a different order. The first standardisation effort was small in scope, but very successful. The language core, the STL, string and auto_ptr are completely identical across compilers. At least I hope they are. If not you should report it as a bug. Currently g++ 4 is the only release that supports all of TR1.

    Quote Originally Posted by Rotwang
    Hey btw I think VB is strong typed now in .net, actually. (I figure it would need to be, right?) So that's the direction they went in.
    That has nothing to do with VB and everything to do with .NET, but then I am sure you know this. Anyway, I am bored with this. Please say something substantial. Perhaps if you give us some more examples of the problems you are having, we can suggest workarounds. Either in methodology or with code.

    yours, Marcus
    Marcus Baker
    Testing: SimpleTest, Cgreen, Fakemail
    Other: Phemto dependency injector
    Books: PHP in Action, 97 things

  25. #50
    eschew sesquipedalians silver trophy sweatje's Avatar
    Join Date
    Jun 2003
    Location
    Iowa, USA
    Posts
    3,749
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    A link I stumbled on yesterday which seems relevant to this discussion:
    Bruce Eckel - Strong Typing vs. Strong Testing
    Jason Sweat ZCE - jsweat_php@yahoo.com
    Book: PHP Patterns
    Good Stuff: SimpleTest PHPUnit FireFox ADOdb YUI
    Detestable (adjective): software that isn't testable.


Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •