• The Typinator (unregistered) in reply to Ouch!
    Ouch!:
    The Typinator:
    STDP (wish there was an "edit post" feature here...)
    There is, but of course only for registered users. It's only available for a short time, though. Normally it expires about five seconds after the post shows up (that's part of why I usually can't bother to log in).
    If there's a quick timeout anyway, there's no reason it couldn't work for non-registered users. In fact, I hear that kind of thing is standard practice on an embedd--never mind.
  • Bonghit (unregistered) in reply to airdrik
    Here's my 2 cents:

    The syntax of the language should get out of the way of the content. When writing the code, you want something that lets you easily put together the content - putting together method calls, manipulating variables and objects, etc. When reading code, you want something that directs your attention to that content.

    IMO, a language that is more verbose is harder to read/write because of the extra verbosity, or "fluff", which tends to get in the way of the content more than assist in promoting the content. You may say that it is easier to read because it reads more like a novel, but we aren't writing novels, we are writing code. Sure for someone who is unfamiliar with the language, it will be easier for them to find out what's going on if the syntax is more words than symbols, but it becomes faster to scan through symbols than words for the actual content when you are familiar with the syntax of the language. Of course you can still go too far with replacing words with symbols, for example: APL, or Perl (where you can easily write entire programs without using any alphabetic characters). But it would seem that languages like C (et al), Python and Ruby strike the right balance with few reserved keywords, symbols for structure and emphasizing naming for clarity.

    Finaly someone who can make sense. I tried to write something similar, but it just came out as "VB SUXXORZ HARDCOREZ!ELEVENTYONE" so i'll just quote you instead.

  • Blowfish (unregistered) in reply to Mark
    Mark:
    Jeff Dege:
    Every language has constructs in it that made sense to some language designer, once, but on reflection are "really bad ideas [tm]".

    That VB.NET has a few does not make it a bad language. Every language has a few.

    Yes but it's fair to say that VB has waaaaaaaaay more than most.

    I remember one in particular - the way hash tables are treated in VB. It's just - awful. Adding a value was via c.Add("Key", Object) (or Object, "Key", I don't want to remember), where c is a Collection object.

    How do you /change/ a collection item? You don't. You /remove/ the Object, and you add a new one with that key.

    How do you check whether a given key is in the collection? You can't. Not directly. You can try accessing the key, and catch the error sic.

    Which reminds me, error catching is one of those other godawful things. GoTo? Seriously?

  • DonQHoti (unregistered)

    I've been programming since 1968: ALGOL, FORTRAN, COBOL, two or three varieties of mainframe assembler, BASIC, VB, VBA, 68000 assembler, VScript, JScript, Java, VB.NET, PHP, ASP ... I think that's it; I used the language required by the job - never had a job where I needed to do any flavor of C although I've wanted to try it.

    What I've learned:

    • programming is programming; different languages just require different syntax
    • you can do most anything in any language if you can figure out the syntax
    • you can write solid reliable code in any language if you understand the language's limitations, watch your typing, and construct solid error trapping and handling
    • an idiot can write crap in any language

    [captcha: facilisis - a facility affliction?]

  • (cs)

    Hey now, variable variables are just like a sort of pointer. You want to hate on PHP, hate on register_globals or magic_quotes or the total lack of namespaces (until recently) and consistency in function names and parameters.

  • (cs) in reply to Larry
    Larry:
    TRWTF is that no one knows what the "B" in "VB" stands for.
    Raw:
    I disagree with the notion that VB was made for beginners. It was made as a RAD environment, a way to make software quickly.

    I think Raw says it stands for "RAD"

  • (cs) in reply to Severity One
    Severity One:
    You forgot two-byte signed integers that couldn't exceed 32767.

    At least, Niklaus Wirth fixed that in Modula-2, which also had the cardinal type.

    Which was an two-byte unsigned integer that couldn't exceed 65535.

    WOW Niklaus made it so a two-byte signed integer could exceed 32767? That is quite an accomplishment.

  • Emu (unregistered) in reply to Anonymous

    At the local university here they use VB for the first 2 years of a comp sci degree. After that they use .Net and C++ depending on what stream(s) you take..

  • Anonymous (unregistered)

    This made me cold all over. Please make it stop.

  • Cheong (unregistered)

    Not having read all the comments, but I think if the code for timer is placed in the getter part, it would make perfect sense.

    If (Not IsDemo) ' In demo mode, a number of milliseconds will past, pretending some task is done ' Do actual task End if

    CAPTCHA: acsi. Isn't it ASCII or ANSI?

  • Shinobu (unregistered)

    Sorry to knock you off your soapbox Alex, but in this case the programmer really is to blame. Code that doesn't do what the identifiers and structure suggest is a dime a dozen klocs. Properties can be a useful tool to document that certain members of your class behave in a certain manner. Nothing wrong with that. They (and their access syntax) also solve a subtle problem that several other languages have. Consider a class with a field x that must be publicly accessible. Most books urge you to make x private and add public getX and setX methods. Why? Because if it turns out you ever want to do some processing if x changes, and you used a public field, you're screwed. In VB this problem can't happen. Now, from a language design perspective I wonder if the End Get syntax was a good idea. Since there can be no code inside properties outside the accessors, it would have made much more sense to just use Get and Set statements (without End Get and End Set). After all, there is no such thing as End Case either. Pursuing that line of reasoning a bit further, most non-WTF properties will have exactly one getter and one setter. So one could argue that the Get statement could be dropped, which would also enforce a consistent accessor order. In the rare case that only one of them is present, one could use a modifier on the Property statement (VB classic style) although I'm not convinced of the merit of such properties.

  • junior (unregistered) in reply to dan
    dan:

    Agreed.

    The issue with VB isn't about what it can do (since it's become a .net language it's become pretty powerful and fast).

    Not like when VB6 used the same compiler and virtualised environment (Visual Studio and Windows) as Microsoft C.

    After all, C was a well know inefficient and slow language (when compared to Pascal or FORTRAN).

  • Felix (unregistered) in reply to Spivonious
    Spivonious:
    There is nothing you can do in C# that I can't do in VB.

    Wow. This is just plain wrong.

    There ARE features unique to C# ("unsafe" code, default indexer syntax without introducing a new magic property) ... as well as there are features unique to VB (indexed properties). I like those of C# better.

  • (cs)

    The reason we have less than perfect tools like VBA is largely because of history. These things did not just get designed this way, they evolved over time. Much of the time they were trying to be as backwardly compatible as possible. Other times a decision was made, and now we live with it.

    In the past, Office applications, as well as those by other vendors, would have their own custom scripting programming language.

    For an application like Excel, you want a scripting language. C++ isn't one so wasn't appropriate at the time. VB isn't exactly a scripting language as such but is closer to one - quick interpretation into small units, in-built variant types. You need a variant type as Excel cells can contain any type.

    You also often want rapid development rather than building the perfect solution. VBA provides a solution for small-scale programming in a spread-sheet.

  • Herby (unregistered) in reply to Larry
    Larry:
    airdrik:
    Perl (where you can easily write entire programs without using any alphabetic characters)
    Gentlemen, I think we've been given a challenge!

    What is the longest / most useful (actually does something, for various values of something) Perl program that can be written using no letters in the executable code? (The shebang line, filename, command line etc. don't count.)

    To get us started:

    perl -e '@{[]}=(0..99999999)'

    will help you measure the adequacy of your hardware. (You've been warned...)

    Sorry...

    Not an ARRAY reference at -e line 1.

    Error, try again.

  • Joey (unregistered)

    You really should thank MS for vb. All Kids and beginners would use C#, Java or C++ instead. And if this happens, we are all doomed. xD

  • Elric (unregistered) in reply to Severity One
    Severity One:
    Anonymous:
    Awww, "beginner-targeted language" makes it sound so cute!

    Pretty much like Pascal, and like Pascal, in its original incarnation totally unsuitable to write real software.

    Define "real software". You are probably right that in most cases it is unsuitable for shrink wrapped or "enterprise grade" software. But "real software" is more than that IMO.

    VB has its limitations but it is useful for the casual "programmer" who wants to build something for themselves or say a small community of users.

    Also small/medium businesses use applications built in VB and other such tools. They have low upfront costs in general compared to much larger more "robust, extensible, portable etc" solutions.

    Anyway some of you can sneer away - I am sure it makes you look more attractive to chicks if you dis VB in front of them!

  • oheso (unregistered) in reply to Leo
    Leo:
    Also, I like how you used both "its" and "it's" in the same way in your two sentences there. Makes it so you're sure to be 50% right.

    Just like the Microsoft Word grammar checker, then, without the added annoyance of slowing the whole program down.

  • Larry David Jr (unregistered) in reply to Some Guy
    Some Guy:
    Larry David Jr:
    Here's a challenge for you all then. Give a piece of code which is 'better' in C# than in VB (.NET).

    Go.

    Easy.

    VB:

    Public Function GetJunk() As String
    Dim junk As String = "1"
    If junk = "1" Then
    Return junk
    End If
    End Function

    C#:

    public string GetJunk()
    {
    string junk = "1";
    if(junk == "1") return junk;
    }

    For the string comparison, the VB version calls a bunch of VB string comparison crap kept around for backward compatibility with old VB (6 and earlier). The C# version calls op_Equality() which is a much more efficient method.

    If you don't believe me, compare the MSIL. If you want to make your VB more efficient, rewrite that string comparison to

    If String.op_Equality(junk, "1") Then...

    The mountain of squabbling comments aside, I would say that because VB is by default making a case insensitive comparison (as the language is 'case insensitive') and c# is case sensitive, that using a string comparison as an example isn't an entirely like-for-like comparison (because it can't be a simple byte comparison if ignoring case). Personally I consider VB's case insensitivity a language feature rather than 'backwards compatibility' but you may disagree.

    Other trivial examples like incrementing (i.e. var++ vs. var += 1 or var = var + 1) produce identical MSIL.

    I think any differences you find will be quite trivial at MSIL level and are probably more of a result of coding style than the language itself.

    N'est-ce pas?

  • Oh THAT Brian! (unregistered) in reply to Alan

    Actually, you can do bitwise shifts and operators in VB.NET 2003 and above. I know it works in 2005.

  • (cs) in reply to A More Skilled Programmer than "Some Guy"
    A More Skilled Programmer than "Some Guy":
    A More Skilled Programmer than "Some Guy":
    C#:
    public string GetJunk()
    {
      return ((string junk = "1") == "1");
    }
    
    FTFY

    Well, at least my code would actually compile, sir.

    ORLY?

    A C# compiler:
    Invalid expression term 'string'
  • L. (unregistered) in reply to Jaime
    Jaime:
    Some Guy:
    Larry David Jr:
    Here's a challenge for you all then. Give a piece of code which is 'better' in C# than in VB (.NET).

    Go.

    Easy.

    VB:

    Public Function GetJunk() As String
    Dim junk As String = "1"
    If junk = "1" Then
    Return junk
    End If
    End Function

    C#:

    public string GetJunk()
    {
    string junk = "1";
    if(junk == "1") return junk;
    }

    For the string comparison, the VB version calls a bunch of VB string comparison crap kept around for backward compatibility with old VB (6 and earlier). The C# version calls op_Equality() which is a much more efficient method.

    If you don't believe me, compare the MSIL. If you want to make your VB more efficient, rewrite that string comparison to

    If String.op_Equality(junk, "1") Then...
    I would argue that VB string comparison is better in many respects. String comparison in C# is faster, but VB implicity treats null strings as empty strings for comparison purposes. This is almost always what the programmer wants and has to be coded manually in C#. Also, VB does compare lengths first in its internal comparison routine, so it almost always executes very efficiently.

    Maybe i'm misreading you, but really, do you prefer having null=="" evaluate to true ?????? I mean it could have been a null array or a null cheese for all you know, is it really sane to compare it with a string using a string comparison function ??

    Then again it shows the one most important thing, either way you should know what you're doing (here that it's a null string and not a null cheese for example), and if you cannot know what you're doing, you're much better off with a modern mass-programming language (those they call OO - java, c POUND !!! and the likes) which will prevent "some" of your incomprehension to cause damage (yes, it can be someone else's code and you might not know variable types and all those insignificant (to some languages) details).

    I must say I have personnal griefs with VB for doing some stuff the Excel way (you know, not telling you, doing strange stuff in an automated way and you searching for a reason when there is none) and therefore will not be impartial in this quarrel - however I would like to add that C# isn't that much better, so both sides of the arguments receive a point each.

    Although coercing the coder in one specific style w/ java or c# or the likes isn't that great, it does prevent a lot of bad coders from doing a lot more damage and thus it is clear that those languages are much better business-wise (150 -cheap- coders projects and other industry standard failures) than VB.

  • Larry David Jr (unregistered) in reply to L.

    mmmmmmmmmmmm ... null cheese

  • L. (unregistered) in reply to DonQHoti
    DonQHoti:
    I've been programming since 1968: ALGOL, FORTRAN, COBOL, two or three varieties of mainframe assembler, BASIC, VB, VBA, 68000 assembler, VScript, JScript, Java, VB.NET, PHP, ASP ... I think that's it; I used the language required by the job - never had a job where I needed to do any flavor of C although I've wanted to try it.

    What I've learned:

    • programming is programming; different languages just require different syntax
    • you can do most anything in any language if you can figure out the syntax
    • you can write solid reliable code in any language if you understand the language's limitations, watch your typing, and construct solid error trapping and handling
    • an idiot can write crap in any language

    [captcha: facilisis - a facility affliction?]

    That's where you see programming is really a better world than many others : See this man : his experience is mostly useless today (most of the languages are irrelevant to date - and his brain might have been damaged by all the prehistoric stuff) and yet, his wisdom is as valid as ever, so instead of having to assimilate all the knowledge, you just need those 5 lines of wisdom, a few languages (I guess perl and python would do the trick for a start) and a brain and tadaa you're on your way to be an excellent programmer.

    Ain't that amazing ?

    Now, you get the same skills and forget about the wisdom and the brain part and tadaaa you're a total fail programmer.

    Really, programming is a good world (when you forget about all that [all those other bad and stupid coders] have written for you to stumble upon).

  • Black Eyed Peas (unregistered) in reply to Some Guy

    Whatcha gonna do with all that junk, All that junk inside your code?

  • Will.i.am.not.able.to.produce.music.without.autotune (unregistered) in reply to Black Eyed Peas
    Black Eyed Peas:
    Whatcha gonna do with all that junk, All that junk inside your code?
    You're so two thousand and late.
  • English Man (unregistered) in reply to Mark
    Mark:
    Anonymous:
    English Man:
    Anonymous:
    Awww, "beginner-targeted language" makes it sound so cute! Much better than "ungodly piece of crap" or "used exclusively by school children and bad CS students".

    As for todays WTF, well, that's exactly what you get from an ungodly piece of crap that is used exlusively by school children and bad CS students.

    It's entertaining when ignoramuses talk with such arrogance. Well done.
    It's entertaining when VB coders talk with such clarity, instead of just screeching and flinging feces at each other like normal. Well done.
    +1e100 for that retort
    He's admitting to being a VB coder? Or he's admitting to screeching and flinging feces? Or he's complimenting me on my clarity? Hard to tell...

  • English Man (unregistered) in reply to Cat
    Cat:
    VB6 really *is* TRWTF. My favorite is array and collection indexing -- certain ones always index 0...N-1. Some always index 1...N. Some index either 0...N-1 or 1...N depending on the settings. And some allow the user to specify ANY starting index.
    COM arrays let you specify the starting index, or define the array range. That's used in C/C++.
  • (cs) in reply to danixdefcon5

    Consider yourselves one-upped. I did both - for YEARS.

    -Max :D

  • (cs) in reply to danixdefcon5

    I just know that someone's bound to 1-UP all of these comments and claim to have programmed on a PDP-11, or having used FORTRAN. <<

    Consider yourselves one-upped. I did both - for YEARS.

    -Max :D

  • (cs) in reply to boog
    boog:
    Miniature Pecker:
    No, it's NOT fair to say that VB has WAAY more than most. I've been at this for 35 years. I've seen bad code in a number of languages from C, to VB, to FORTRAN to Assembly (need I go on?).

    OTOH, I can write clean, efficient well-designed code in ANY of the languages I use. I have a 100,000 line Rules Engine that was originally in C, then had to be converted to VB6 so it could be a COM component then into VB.Net. There are bad legacy sections in there and good code that I've more recently added as I became more proficient in OO design techniques.

    I really have to laugh when everybody gets into these "my daddy can beat your daddy" kinds of discussions. It really brings out the "High School" in the community. Both VB.Net and C# are competent development tools. Yes, I now prefer C# for anything new I develop but 10+ years working with VB has not hurt my ability to craft good code, nor does VB help a bad coder to craft good code.

    Heh ... keep arguing guys - it really makes a difference!

    -Max

    Pragmatic programmers suck.

    Left him speechless! ;-)

  • (cs) in reply to Anonymous
    Anonymous:
    Steve The Cynic:
    Severity One:
    Alas... tomorrow is my 41st birthday, and I've been programming since the age of 13 (starting with BASIC on the TRS-80 model I). I also know what COBOL and APL stand for.
    And I have 3.5 years on you. I started on a Commodore Pet, with the built-in cassette drive and the ghastly horrible keyboard. From there I progressed (?) to a Sinclair ZX80 (bounce, bounce, bounce).
    Awesome, it's fun to see the programmer's equivalent of dick measuring. I started coding on a Commodore VIC-20 so you guys both beat me, but only just. I remember sneering at the TRS-80 and its measly 4KB of RAM (I had 5KB, whoopee!).
    Once you reach a certain age, there's nothing to be gained by showing how old you are.

    I've passed that age some time ago, and by the looks of it, so has Steve. :)

  • (cs) in reply to JB
    JB:
    I'd rather use VB and C#'s properties than the stupid Get/Set functions that are forced upon us in Java, PHP, c/c++, etc.
    Well, this is supposed to be addressed in Java 7, whenever it may come out. Rumour has it that it's a close call between the release of Java 7 and the second coming of Christ.

    But on the other hand, if all you have are getter and setter methods that, well, get or set the value, you might as well make the property public.

  • JayC (unregistered) in reply to Bus Logic
    Bus Logic:
    Chris Haas:
    I'm a long time VB dev and I have never been confused over properties vs methods. I don't want to get into the old war of C# vs VB but except for the unsafe keyword, there's nothing in C# that VB can't do.
    Yes there is, because C# and VB.NET are completely different langauges. They compile down to the same intermediate language so what you meant to say was "there is no compiled bytecode that C# can produce but VB.NET can't". That is not the same as saying "there's nothing C# can do that VB can't". For example, VB.NET supports weak typing (ugh) whereas C# cannot and will not. This is a distinct difference in the high level langauges that exists despite the fact that both languages compile down to the same bytecode. And remember that C++ targets the .NET framework as well, so you might as well have said "there is nothing in C++ that VB can't do". Obviously this is not true.

    Erm, yeah, no, you are wrong. C# 4.0 finally supports dynamic variables, which allows you to pull some of the late binding functinality that VB.NET was born with. BTW, Nothing wrong with weak typing, if used properly. Furthermore, if you want, you can declare as an option (or compiler) that there will not be anything that can late bind.

  • hughdbrown (unregistered)

    Timely. Peter Norvig on why he used python for code in his AI book:

    http://news.ycombinator.com/item?id=1803815

  • frits (unregistered) in reply to Severity One
    Severity One:
    JB:
    I'd rather use VB and C#'s properties than the stupid Get/Set functions that are forced upon us in Java, PHP, c/c++, etc.
    Well, this is supposed to be addressed in Java 7, whenever it may come out. Rumour has it that it's a close call between the release of Java 7 and the second coming of Christ.

    But on the other hand, if all you have are getter and setter methods that, well, get or set the value, you might as well make the property public.

    Yeah, but everyone knows that public property has a tendency to acquire graffitti and just to be run down in general. That's why I like private property.

  • (cs) in reply to Mark
    Mark:
    Null strings and empty strings are very different constructs with very different meanings.
    Tell that to Oracle.

    Don't get me wrong, I agree with you totally... but Oracle doesn't.

    (Oracle is very powerful, but sometimes in the same way that a thermonuclear device is very powerful.)

  • boog (unregistered)

    Where's my damn article?

  • Cbuttius (unregistered)

    I would pay money if they would post an article every day.

  • Matt Westwood (unregistered) in reply to Cbuttius
    Cbuttius:
    I would pay money if they would post an article every day.
    Take it easy. Tuesday is Remy's responsibility, and there's a real good chance he's busy engaged in unimaginable homosexual activities.
  • uuang (unregistered) in reply to Matt Westwood
    Matt Westwood:
    Cbuttius:
    I would pay money if they would post an article every day.
    Take it easy. Tuesday is Remy's responsibility, and there's a real good chance he's busy engaged in unimaginable homosexual activities.

    I don't get the Remy hate...

  • Gumby (unregistered) in reply to McVaio
    McVaio:
    What's wrong with variable variables?

    Well, first, if they were "real programmers", they'd call them symbolic references, and would know that you don't use them willy-nilly and it's much easier to just say "don't use them" because you shouldn't use them 99.99999% of the time you think you want to.

  • Remy Martin (unregistered) in reply to uuang
    uuang:
    Matt Westwood:
    Cbuttius:
    I would pay money if they would post an article every day.
    Take it easy. Tuesday is Remy's responsibility, and there's a real good chance he's busy engaged in unimaginable homosexual activities.

    I don't get the Remy hate...

    What, exactly, is hated about homosexuals?

  • (cs) in reply to Larry David Jr
    Larry David Jr:
    Here's a challenge for you all then. Give a piece of code which is 'better' in C# than in VB (.NET).

    Go.

    C#

    List<string> myList = new List<string> { "Hi", "there", "I'm", "a", "list" };
    

    VB.NET

    Dim myList As List(Of String) = New List(Of String)(New String() { "Hi", "there", "I'm", "a", "list" })
    

    Or, even worse:

    Dim myList As List(Of String) = New List(Of String)()
    myList.AddRange(New String()  { "Hi", "there", "I'm", "a", "list" })
    

    Oh, and while I'm at it, any code that uses a method with an empty parameter list, considering VB.NET makes parens optional in such cases (I refuse to leave them off in my own VB.NET code, but unfortunately, others are not as considerate).

    P.S.: No citing .NET 4.0. I'm not able to use it yet.

  • (cs) in reply to chrismcb
    chrismcb:
    Severity One:
    You forgot two-byte signed integers that couldn't exceed 32767.

    At least, Niklaus Wirth fixed that in Modula-2, which also had the cardinal type.

    Which was an two-byte unsigned integer that couldn't exceed 65535.

    WOW Niklaus made it so a two-byte signed integer could exceed 32767? That is quite an accomplishment.

    scoff no-one says a byte has to be eight bits.

  • Bus Logic (unregistered) in reply to JayC
    JayC:
    Bus Logic:
    Chris Haas:
    I'm a long time VB dev and I have never been confused over properties vs methods. I don't want to get into the old war of C# vs VB but except for the unsafe keyword, there's nothing in C# that VB can't do.
    Yes there is, because C# and VB.NET are completely different langauges. They compile down to the same intermediate language so what you meant to say was "there is no compiled bytecode that C# can produce but VB.NET can't". That is not the same as saying "there's nothing C# can do that VB can't". For example, VB.NET supports weak typing (ugh) whereas C# cannot and will not. This is a distinct difference in the high level langauges that exists despite the fact that both languages compile down to the same bytecode. And remember that C++ targets the .NET framework as well, so you might as well have said "there is nothing in C++ that VB can't do". Obviously this is not true.

    Erm, yeah, no, you are wrong. C# 4.0 finally supports dynamic variables, which allows you to pull some of the late binding functinality that VB.NET was born with. BTW, Nothing wrong with weak typing, if used properly. Furthermore, if you want, you can declare as an option (or compiler) that there will not be anything that can late bind.

    Looks like you read some "New Features in C# 4.0" document and totally misinterpreted it. This is a common mistake amongst rookies, reading the blurb without actually bothering to test and understand the new features.

    Let me make this clear: C# does not support weak typing. Not at verion 1.0, not at version 4.0. Version 4.0 has introduced dynamic types but this is absolutely not weak typing. Weak typing would mean that the type could be changed at runtime, like the old style variant. In C# 4.0 they are statically typed as dynamic, so there is zero risk of the type being changed at runtime. This essentially removes the risk inherent with weak typed variables.

    Next time, please don't make me do your research for you. It sounds like you haven't even used the new version, much less understood its features.

  • wtf (unregistered) in reply to Severity One
    Severity One:
    ... if all you have are getter and setter methods that, well, get or set the value, you might as well make the property public.

    Well, you don't want to just throw getters and setters on everything, but it's substantially better to have some control on the distribution and setting of information than to simply make it public. A setter, for example, can validate the new value and inform the classes concerned when a value is changed, which can't happen if you simply make the field public and let anyone change it at whim, and a getter can be used check a value before returning it, if that is a concern.

    However, it's much better, in my view, to inflict changes on objects as actions taken on them than to allow classes to set their values freely. Getters pose less potential harm, I suppose, but they do betray a failure of design: why does class B need class A's data? Why can't class A do its own work?

  • Bus Logic (unregistered) in reply to English Man
    English Man:
    Mark:
    Anonymous:
    English Man:
    Anonymous:
    Awww, "beginner-targeted language" makes it sound so cute! Much better than "ungodly piece of crap" or "used exclusively by school children and bad CS students".

    As for todays WTF, well, that's exactly what you get from an ungodly piece of crap that is used exlusively by school children and bad CS students.

    It's entertaining when ignoramuses talk with such arrogance. Well done.
    It's entertaining when VB coders talk with such clarity, instead of just screeching and flinging feces at each other like normal. Well done.
    +1e100 for that retort
    He's admitting to being a VB coder? Or he's admitting to screeching and flinging feces? Or he's complimenting me on my clarity? Hard to tell...
    Surely as an "English Man" you should understand, you know, English. I understand exactly what he was saying and I thought it was a pretty sweet comeback as well.

  • wtf (unregistered) in reply to Remy Martin
    Remy Martin:
    uuang:
    Matt Westwood:
    Cbuttius:
    I would pay money if they would post an article every day.
    Take it easy. Tuesday is Remy's responsibility, and there's a real good chance he's busy engaged in unimaginable homosexual activities.

    I don't get the Remy hate...

    What, exactly, is hated about homosexuals?

    What, exactly, is unimaginable about homosexual activities?

    captcha: abbas - speaking of homosexual activities, how many abbas are there in Remy's forthcoming poly-sexual Busby Berkeley porn musical? (sorry, best I could do)

  • me (unregistered) in reply to Jaime
    Jaime:
    I would argue that VB string comparison is better in many respects. String comparison in C# is faster, but VB implicity treats null strings as empty strings for comparison purposes. This is almost always what the programmer wants...
    You see, this is exactly why VB must die. It encourages programmers to think ridiculous, nonsensical things like null should equal an empty string. I can't even begin to convey just how wrong this is, yet it's so familiar to VB devs that it's the norm to hear them make silly assertions like the one above.

Leave a comment on “Property Basics”

Log In or post as a guest

Replying to comment #:

« Return to Article