Microsoft's C++ bigotry - Page 31


DevX Home    Today's Headlines   Articles Archive   Tip Bank   Forums   

Page 31 of 43 FirstFirst ... 21293031323341 ... LastLast
Results 451 to 465 of 633

Thread: Microsoft's C++ bigotry

  1. #451
    Mike Mitchell Guest

    Re: Microsoft's C++ bigotry

    On Sat, 1 Feb 2003 14:06:37 +1100, Jason Sobell iGadget
    <igadget_@hotmail.com> wrote:

    >It's amazing how many ways there are to do the same thing in .NET


    And yet so few ways to do the same thing as in VB6...

    MM

  2. #452
    Mike Mitchell Guest

    Re: Microsoft's C++ bigotry

    On Sat, 1 Feb 2003 16:10:48 +1030, "Mark Hurd"
    <markhurd@ozemail.com.au> wrote:

    >I'd normally download the beta, but I'm too busy writing VB6 code ATM :-(


    No, not :-( but :-)

    )Oh, sorry. You're down under, yes?(

    MM

  3. #453
    Phil Weber Guest

    Re: Microsoft's C++ bigotry

    > Okay then, Phil, why not change For...Next at least
    > to End For?


    Mike: Is it your contention, then, that Wend contributes more to internal
    consistency than End While does?
    --
    Phil Weber


  4. #454
    Mike Mitchell Guest

    Re: Microsoft's C++ bigotry

    On Sat, 1 Feb 2003 12:44:49 -0800, "Phil Weber"
    <pweber@nospam.fawcette.com> wrote:

    > > Okay then, Phil, why not change For...Next at least
    > > to End For?

    >
    >Mike: Is it your contention, then, that Wend contributes more to internal
    >consistency than End While does?


    Er, let's see: Dogmatic consistency versus pragmatic compatibility?
    Hey! It's another of those no-brainers!

    MM

  5. #455
    Jonathan West Guest

    Re: Microsoft's C++ bigotry


    "Patrick Troughton" <Patrick@Troughton.com> wrote in message
    news:3e3c2644$1@tnews.web.devx.com...
    >
    > Hi Jonathan,
    >
    > "Jonathan West" <jwest@mvps.org> wrote:
    > >
    > >If they had followed that line of thought to its logical conclusion, then
    > >they would have had to change Loop to End Do and Next to End For.

    >
    > Sort of, but not really. These are different constructs and are not

    directly
    > annalogous to End While. Specifically, Next accepts an optional counter

    variable
    > whereas End While does not. For example...
    >
    > For i As Integer = 1 To 10
    > 'do something
    > Next i


    That's a dubious distinction to make. The optional counter variable is
    entirely redundant. If you put the wrong variable in there, you get a
    compiler error, and if you put in the correct variable the effect is
    indistinguishable from putting nothing there. Therefore, by your own
    argument, they should have changed to the following simpler and more
    consistent syntax.

    For i As Integer = 1 To 10
    'do something
    End For

    >
    > Likewise, Loop accepts an optional keyword (While or Until) and a

    conditional
    > phrase whereas End While does not. For example...
    >
    > Do
    > 'do something
    > Loop Until Number = 15


    There's nothing about the End xxx keywords that make it impossible for them
    to accept an optional parameter. It could easily be argued that for
    consistency the end of all control structures should use the End keyword,
    whether or not they have optional parameters attached. Leaving Do-Loop is an
    anomaly.

    In fact, since all these control structures have to be strictly nested,
    there's really no need for the End keyword to be qualified by the type of
    structure it is ending, since that is clear from the context. Therefore, the
    following arrangement would be even more internally consistent.

    Sub Foo
    For a As Integer = 1 To 10
    Do While b > 0
    While c > 0
    With d
    If e > 0 Then
    Select Case f
    'your code here
    End
    End
    End
    End
    End
    End
    End

    All this of course leaves aside entirely the other design objectives, which
    according to
    http://msdn.microsoft.com/library/de...fVBSpec1_3.asp
    include the following.

    "It is as compatible with previous versions of Visual Basic as possible.
    Whenever practical, Visual Basic .NET has the same syntax, the same
    semantics, and the same run-time behavior as its predecessors."

    I'd say that changing Wend to End While contradicted that objective, in that
    it introduced an incompatibility with VB6 for no gain at all in
    functionality, and a debatable gain in internal consistency. It was
    certainly practical to leave the syntax as it was, given that the compiler
    recognises the presence of Wend and knows well enough that it should be End
    While that it is able to say so in an error message.



    --
    Regards
    Jonathan West


  6. #456
    Patrick Troughton Guest

    Re: Microsoft's C++ bigotry


    Hi Jonathan,

    OK, now you're just being ridiculous. You wanted to know why Wend was changed
    to End While and now you know: it makes VB an easier and more consistant
    language (End If, End Select, End Sub, End Class, End With, End Function,
    End Namespace, End Try, End Property, etc.). Then wanted to know why Next
    and Loop weren't changed, too. Now you know that, too. The Upgrade Wizard
    easily converts all Wends to End Whiles so even compatiblity isn't an issue.
    Get over it already.

    /Pat
    ---------------------------
    It's the platform, stupid.
    ---------------------------


  7. #457
    Jonathan West Guest

    Re: Microsoft's C++ bigotry


    "Patrick Troughton" <Patrick@Troughton.com> wrote in message
    news:3e3d3c27$1@tnews.web.devx.com...
    >
    > Hi Jonathan,
    >
    > OK, now you're just being ridiculous. You wanted to know why Wend was

    changed
    > to End While and now you know: it makes VB an easier and more consistant
    > language (End If, End Select, End Sub, End Class, End With, End Function,
    > End Namespace, End Try, End Property, etc.).


    You've added something new here. You've asserted that the change makes the
    language "easier". Unfortunately, you haven't suggested the means by which
    this is achieved. It is not sufficient for you to state that it is
    self-evident.

    I'll accept having intellisense insert the end of a control structure when
    you type in the opening of it makes writing code easier and imporves coder
    productivity, but I don't see why having "End While" inserted by the IDE is
    any "easier" than having the IDE insert "Wend". So, I would be most
    interested in your opinion as how "End While" is easier than "Wend". What
    productivity gains would you expect from this improvement?

    I've already dealt with consistency in my earlier posts and I shan't repeat
    myself, but I would be interested in a response from you on the specific
    points I made. If you choose not to respond, then you will have to allow me
    to draw my own conclusions from your lack of response.

    > Then wanted to know why Next
    > and Loop weren't changed, too. Now you know that, too.


    You haven't attempted to answer my points on this subject either, you have
    simply repeated your original assertions, which I am questioning on the
    grounds of inconsistency within the language as currently defined.

    Also, even after your response, I don't know why they were changed or not
    changed by Microsoft. I only know your opinion on the subject (unless you
    are claiming to speak on the basis of information provided to you by
    somebody at Microsoft), and so I am asking you questions regarding the basis
    of that opinion. Do you have any objection to questions of this sort? After
    all, if everything is as obvious as you claim, then these questions should
    be simple to answer and you should have no trouble convincing me and the
    various other contributors to this thread.

    > The Upgrade Wizard
    > easily converts all Wends to End Whiles so even compatiblity isn't an

    issue.

    Compatibility remains an issue, in that using an upgrade wizard (as opposed
    to having a common syntax) makes it much more difficult to maintain a single
    library of common functions that can be used in both old and new versions of
    the language. Furthermore, the Upgrade Wizard currently does not upgrade
    anything smaller than a whole project.

    --
    Regards
    Jonathan West


  8. #458
    Patrick Troughton Guest

    Re: Microsoft's C++ bigotry


    Hi Jonathan,

    "Jonathan West" <jwest@mvps.org> wrote:
    >
    >You've added something new here.


    No, I don't think that anything new was introduced. This has all been discussed
    many times before.

    > You've asserted that the change makes the
    >language "easier". Unfortunately, you haven't suggested the means by which
    >this is achieved. It is not sufficient for you to state that it is
    >self-evident.


    I'm not sure I would use the phrase 'self-evident', but I do think it's fairly
    obvious....

    More consistancy + better readability = Easier to use.

    >I've already dealt with consistency in my earlier posts and I shan't repeat
    >myself, but I would be interested in a response from you on the specific
    >points I made.


    Your 'points' were so ridiculous, I didn't honestly think you were being
    serious. OK, assuming you were really serious....First, changing every scope
    terminator to End does not contribute to readability. On the contrary, it
    reduces readability because the only way you can tell what exactly End means
    is by context. Second, the End keyword is already used for something else.


    >> Then wanted to know why Next
    >> and Loop weren't changed, too. Now you know that, too.

    >
    >You haven't attempted to answer my points on this subject either, you have
    >simply repeated your original assertions,


    Wrong again. I explained in detail how Next and Loop are different from End
    If and End While. I even gave you actual code examples to illustrate how
    Next and Loop are different....

    <quote>
    These are different constructs and are not directly annalogous to End While.
    Specifically, Next accepts an optional counter variable
    whereas End While does not. For example...

    For i As Integer = 1 To 10
    'do something
    Next i

    Likewise, Loop accepts an optional keyword (While or Until) and a conditional
    phrase whereas End While does not. For example...

    Do
    'do something
    Loop Until Number = 15
    </quote>

    You wanted to know how For and Loop were different, and now you know. Your
    question has been answered. You might not like the answer, but this question
    has been answered.

    >you should have no trouble convincing me and the
    >various other contributors to this thread.


    Not true. I've been visiting this newsgroup for two years (off and on) and
    one thing I've found is that most people who come into this newsgroup to
    complain already have their minds made up and no amount of facts or logic
    will ever change their mind. The only reason I post is for newbies or people
    with open minds. I've said on more than one occassion, that I could post
    2 + 2 = 4 and somebody on this newsgroup would argue.

    >Furthermore, the Upgrade Wizard currently does not upgrade
    >anything smaller than a whole project.


    Not for much longer. The VB.NET 1.1 has a code snippet tool that does upgrades
    code snippets.

    /Pat
    --------------------------
    It's the platform, stupid.
    --------------------------

  9. #459
    Patrick Troughton Guest

    Re: Microsoft's C++ bigotry


    Hi Jonathan,

    I don't want to be accused of ignoring your points, so here's one other thing
    I want to say....

    "Jonathan West" <jwest@mvps.org> wrote:
    >
    >the compiler
    >recognises the presence of Wend and knows well enough that it should be

    End
    >While that it is able to say so in an error message.


    I've already mentioned that the Intellisense in VB.NET is much better than
    in VB6, that if you start typing in a While loop, VB.NET automatically inserts
    End While for you.

    Also...

    - If you were to manually type in Wend, it's smart enough to change it to
    End While

    - If you were to copy and paste Wend into VB.NET, it automatically changes
    it to End While

    /Pat
    --------------------------
    It's the platform, stupid.
    --------------------------

  10. #460
    Patrick Troughton Guest

    Re: Microsoft's C++ bigotry


    Hi Jonathan,

    Again, in the interest of making sure you don't accuse me of ignoring your
    points.....

    >Compatibility remains an issue, in that using an upgrade wizard (as opposed
    >to having a common syntax) makes it much more difficult to maintain a single
    >library of common functions that can be used in both old and new versions

    of
    >the language.


    This is true, but you can use COM interop.

    >Furthermore, the Upgrade Wizard currently does not upgrade
    >anything smaller than a whole project.


    In the upcoming version of VB.NET, there is a code snippet tool that will
    upgrade code snippets. I'm not sure what the ETA is on that, but it went
    into final beta a few weeks ago, so it should be released very shortly.

    /Pat
    --------------------------
    It's the platform, stupid.
    --------------------------

  11. #461
    Jonathan West Guest

    Re: Microsoft's C++ bigotry


    "Patrick Troughton" <Patrick@Troughton.com> wrote in message
    news:3e3d5c58$1@tnews.web.devx.com...
    >
    > Hi Jonathan,
    >
    > "Jonathan West" <jwest@mvps.org> wrote:
    > >
    > >You've added something new here.

    >
    > No, I don't think that anything new was introduced. This has all been

    discussed
    > many times before.
    >
    > > You've asserted that the change makes the
    > >language "easier". Unfortunately, you haven't suggested the means by

    which
    > >this is achieved. It is not sufficient for you to state that it is
    > >self-evident.

    >
    > I'm not sure I would use the phrase 'self-evident', but I do think it's

    fairly
    > obvious....
    >
    > More consistancy + better readability = Easier to use.


    Then you should have no trouble suggesting the extent to which this improved
    ease of use will increase programmer productivity. How much do you think it
    will help? I asked that in my last post, but you snipped the question.

    >
    > >I've already dealt with consistency in my earlier posts and I shan't

    repeat
    > >myself, but I would be interested in a response from you on the specific
    > >points I made.

    >
    > Your 'points' were so ridiculous, I didn't honestly think you were being
    > serious. OK, assuming you were really serious....First, changing every

    scope
    > terminator to End does not contribute to readability.


    But we weren't talking about readability, we were talking (originally) about
    consistency. You've introduced ease and now readability into the discussion
    since your original answer to my question, neither of which were the
    original reason you were claiming for the change. Please make up your mind
    exactly *what* is the reason for the change, it seems to vary each time you
    post.

    > On the contrary, it
    > reduces readability because the only way you can tell what exactly End

    means
    > is by context.


    That's nothing new. If you have nested constructions of the same type, then
    that applies already. Furthermore, the curly braces of the Java and C/C++/C#
    languages have exactly the same problem, and yet they are being used (and
    presumably being found easy to use) by quite a lot more programmers than
    appear to be using VB.NET. Therefore I conclude that the effect on
    readability is pretty marginal either way.

    However, if you are claiming that just using End is less readable and
    therefore less easy to use, you are now in effect suggesting that
    readability can somtimes be improved by making some reduction in
    consistency, a sentiment I wholeheartedly endorse. Unfortunately, it rather
    undermines your original assertion that there was a benefit to the user
    through improving the consistency by making the change in the first place.

    > Second, the End keyword is already used for something else.


    *That* has not stopped Microsoft before! If that were a consideration, then
    they really ought not to have re-used Return for a different purpose. Or
    maybe they shouldn't have re-used Long, or Integer, or String for different
    purposes, or maybe And or Or as they originally did in Beta 1. <g>

    >
    >
    > >> Then wanted to know why Next
    > >> and Loop weren't changed, too. Now you know that, too.

    > >
    > >You haven't attempted to answer my points on this subject either, you

    have
    > >simply repeated your original assertions,

    >
    > Wrong again. I explained in detail how Next and Loop are different from

    End
    > If and End While. I even gave you actual code examples to illustrate how
    > Next and Loop are different....
    >
    > <quote>
    > These are different constructs and are not directly annalogous to End

    While.
    > Specifically, Next accepts an optional counter variable
    > whereas End While does not. For example...
    >
    > For i As Integer = 1 To 10
    > 'do something
    > Next i
    >
    > Likewise, Loop accepts an optional keyword (While or Until) and a

    conditional
    > phrase whereas End While does not. For example...
    >
    > Do
    > 'do something
    > Loop Until Number = 15
    > </quote>
    >
    > You wanted to know how For and Loop were different, and now you know. Your
    > question has been answered. You might not like the answer, but this

    question
    > has been answered.


    You have made no attempt to reply to the points I made in response to the
    post you have quoted from. It looks like you either don't have a response,
    or that you are keeping it secret. Oh well...

    >
    > >you should have no trouble convincing me and the
    > >various other contributors to this thread.

    >
    > Not true. I've been visiting this newsgroup for two years (off and on) and
    > one thing I've found is that most people who come into this newsgroup to
    > complain already have their minds made up and no amount of facts or logic
    > will ever change their mind. The only reason I post is for newbies or

    people
    > with open minds. I've said on more than one occassion, that I could post
    > 2 + 2 = 4 and somebody on this newsgroup would argue.


    I could say much the same thing, though I have noticed more people acquiring
    doubts about the language as a result of posting questions here than gaining
    confidence in it.

    A few questions for you.

    1. Are you responsible for the upgrade and maintenance of a large VB6
    codebase?
    2. If so, how much time have you been given to complete the upgrade?
    3. How does that compare with the amount of time taken to upgrade the
    project from VB5 to VB6?
    4. Was this project originally started in VB3 or earlier, and did it include
    code for binary file i/o?
    5. If so, how long did it take you to rewrite that code to cope with the
    fact that the String datatype had been changed?

    >
    > >Furthermore, the Upgrade Wizard currently does not upgrade
    > >anything smaller than a whole project.

    >
    > Not for much longer. The VB.NET 1.1 has a code snippet tool that does

    upgrades
    > code snippets.


    Any response to the issue of the single code library? I notice you snipped
    that as well.

    --
    Regards
    Jonathan West


  12. #462
    Jonathan West Guest

    Re: Microsoft's C++ bigotry


    "Patrick Troughton" <Patrick@Troughton.com> wrote in message
    news:3e3d6908$1@tnews.web.devx.com...
    >
    > Hi Jonathan,
    >
    > I don't want to be accused of ignoring your points, so here's one other

    thing
    > I want to say....
    >
    > "Jonathan West" <jwest@mvps.org> wrote:
    > >
    > >the compiler
    > >recognises the presence of Wend and knows well enough that it should be

    > End
    > >While that it is able to say so in an error message.

    >
    > I've already mentioned that the Intellisense in VB.NET is much better than
    > in VB6, that if you start typing in a While loop, VB.NET automatically

    inserts
    > End While for you.
    >
    > Also...
    >
    > - If you were to manually type in Wend, it's smart enough to change it to
    > End While
    >
    > - If you were to copy and paste Wend into VB.NET, it automatically changes
    > it to End While


    All these are benefits of Intellisense, not of the change in the language,
    and would be just as beneficial if Wend were inserted instead. Moreover,
    Microsoft would have had less development effort in leaving things as they
    were with the language.

    So, what is the benefit (in some tangible form, such as increased
    productivity) of the change in the language itself?

    --
    Regards
    Jonathan West


  13. #463
    Jonathan West Guest

    Re: Microsoft's C++ bigotry


    "Patrick Troughton" <Patrick@Troughton.com> wrote in message
    news:3e3d6aaa$1@tnews.web.devx.com...
    >
    > Hi Jonathan,
    >
    > Again, in the interest of making sure you don't accuse me of ignoring your
    > points.....
    >
    > >Compatibility remains an issue, in that using an upgrade wizard (as

    opposed
    > >to having a common syntax) makes it much more difficult to maintain a

    single
    > >library of common functions that can be used in both old and new versions

    > of
    > >the language.

    >
    > This is true, but you can use COM interop.


    As you well know, there is a substantial performance penalty in doing that.
    Even if you are willing to accept that penalty, this is only an option for
    as long as you are targetting a 32-bit platform that has COM available. With
    the advent of Longhorn, high-end server apps are going to be targetting
    64-bit platforms where this is not an assumption that can automatically be
    made. Lastly, even with Windows XP, Microsoft has managed (inadvertently) to
    make changes in key DLLs that change the behaviour of VB6 code operating in
    COM DLLs. COM interop is not something to be trusted as anything but the
    shortest-term interim solution.

    >
    > >Furthermore, the Upgrade Wizard currently does not upgrade
    > >anything smaller than a whole project.

    >
    > In the upcoming version of VB.NET, there is a code snippet tool that will
    > upgrade code snippets. I'm not sure what the ETA is on that, but it went
    > into final beta a few weeks ago, so it should be released very shortly.


    We'll have to see how useful that is. I think that trying it out on some of
    the code samples on Karl's site would be a fair test. Or maybe importing
    some of the modules from the FMS Total VB Sourcebook.

    --
    Regards
    Jonathan West


  14. #464
    Patrick Troughton Guest

    Re: Microsoft's C++ bigotry


    Hi Jonathan,

    "Jonathan West" <jwest@mvps.org> wrote:
    >
    >Then you should have no trouble suggesting the extent to which this improved
    >ease of use will increase programmer productivity. How much do you think

    it
    >will help?


    It's not life and death, if that's what you mean. I think it's a minor improvement.


    >But we weren't talking about readability, we were talking (originally) about
    >consistency. You've introduced ease and now readability into the discussion
    >since your original answer to my question, neither of which were the
    >original reason you were claiming for the change. Please make up your mind
    >exactly *what* is the reason for the change, it seems to vary each time

    you
    >post.


    There's no point in keeping up this discussion if you're not going to pay
    attention. I've explained myself several times. I'm going to be nice and
    explain it one more time. But honestly, I'm getting tired of repeating myself
    over and over again. So this is going to be last time....

    Wend was changed to End While to be consistant with other block structures
    such as End If, End With, and End Sub. This improves language consistency
    and readability. More consistancy + better readibility = easier to use.

    There, I've said it *again*. Now, do you understand?

    >> On the contrary, it
    >> reduces readability because the only way you can tell what exactly End

    >means
    >> is by context.

    >
    >That's nothing new.


    Just because it's not new doesn't mean it's not valid.

    >If you have nested constructions of the same type, then
    >that applies already. Furthermore, the curly braces of the Java and C/C++/C#
    >languages have exactly the same problem


    Exactly. Java and C/C++/C# have this problem and VB.NET doesn't.

    , and yet they are being used (and
    >presumably being found easy to use) by quite a lot more programmers than
    >appear to be using VB.NET.


    All four language combined, sure.

    >However, if you are claiming that just using End is less readable and
    >therefore less easy to use,


    Yes.

    >you are now in effect suggesting that
    >readability can somtimes be improved by making some reduction in
    >consistency, a sentiment I wholeheartedly endorse.


    No, I did not say that.

    >> Second, the End keyword is already used for something else.

    >
    >*That* has not stopped Microsoft before! If that were a consideration, then
    >they really ought not to have re-used Return for a different purpose. Or
    >maybe they shouldn't have re-used Long, or Integer, or String for different
    >purposes, or maybe And or Or as they originally did in Beta 1. <g>


    Well, these are different topics, really. Given you're having such a hard
    time understanding Wend => End While, let's just stick to one issue at a
    time, OK?

    >You have made no attempt to reply to the points I made in response to the
    >post you have quoted from. It looks like you either don't have a response,
    >or that you are keeping it secret.


    Jonathan, seriously, there's no point in talking to you if you're not going
    to pay attention. I did address this in the last post. Do I really have to
    repeat myself again?

    >Oh well...


    You said it!

    >I could say much the same thing, though I have noticed more people acquiring
    >doubts about the language as a result of posting questions here than gaining
    >confidence in it.
    >
    >A few questions for you.
    >
    >1. Are you responsible for the upgrade and maintenance of a large VB6
    >codebase?
    >2. If so, how much time have you been given to complete the upgrade?
    >3. How does that compare with the amount of time taken to upgrade the
    >project from VB5 to VB6?
    >4. Was this project originally started in VB3 or earlier, and did it include
    >code for binary file i/o?
    >5. If so, how long did it take you to rewrite that code to cope with the
    >fact that the String datatype had been changed?


    I hope you don't mind but I'll skip these questions. It's not that I think
    that these aren't worthwhile questions, but given you're having such a hard
    time understanding Wend => End While, let's just stick to one issue at a
    time.

    /Pat
    --------------------------
    It's the platform, stupid.
    --------------------------

  15. #465
    Patrick Troughton Guest

    Re: Microsoft's C++ bigotry


    Hi Jonathan,

    "Jonathan West" <jwest@mvps.org> wrote:
    >
    >So, what is the benefit (in some tangible form, such as increased
    >productivity) of the change in the language itself?


    This has already been explained to you several times. Again, Wend was changed
    to End While to be consistant with other block structures
    such as End If, End With, End Sub, End Function, End Try, End Namespace,
    End Class, End Property, etc. This improves language consistency
    and readability. More consistancy + better readibility = easier to use.

    /Pat
    --------------------------
    It's the platform, stupid.
    --------------------------

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
HTML5 Development Center
 
 
FAQ
Latest Articles
Java
.NET
XML
Database
Enterprise
Questions? Contact us.
C++
Web Development
Wireless
Latest Tips
Open Source


   Development Centers

   -- Android Development Center
   -- Cloud Development Project Center
   -- HTML5 Development Center
   -- Windows Mobile Development Center