Mozilla have lost their mind - Part 2



  •  I'm with Blakey, fix your broken ass computer.  All of mine draw all of their windows just fine, except my old laptop still running a shitty XP install.



  • @blakeyrat said:

    However, I didn't see the evangelist saying that Enterprise is not only not a focus of Mozilla (duh), but shouldn't be! Idiots. The Mozilla Foundation is so completely directionless
    Tell businesses to fuck off.  Yes!!  That's the plan!!

     



  • @RHuckster said:

    ...yet Firefox has still not addressed the same memory leak and other performance issues that have plauged it since 2003.
    I've seen a couple of posts by Mozilla developers on other forums claiming that Firefox's excessive memory usage is not a bug, it's a feature.  It has been claimed that Firefox keeps pages in memory so that you can go back to them faster.  That would be a nice a feature -- if it actually worked.  However, even with static pages that haven't changed, hitting the back button loads the page just as slowly as the first time I view it.

    That said,  I'm not all that riled up about Firefox's memory usage.  Right now taskmanager is showing Firefox using 196 MB.  Although I'm an old fart who is horrified by the idea of a web browser using that much memory, I've got 8 GB of RAM so what the hell.  Might as well use it.

    @RHuckster said:

    Chrome, of course, pwns Firefox and IE in its performance
    I have Chrome installed and use it occasionally.  And yes, it is fast.  But speed isn't everything.  The UI is too barebones, there are too many missing features and extensions don't work as well.

     



  • @El_Heffe said:

    That said, I'm not all that riled up about Firefox's memory usage. Right now taskmanager is showing Firefox using 196 MB. Although I'm an old fart who is horrified by the idea of a web browser using that much memory, I've got 8 GB of RAM so what the hell.

    The problem is when you have FF wanting 200-300MB, half a dozen business apps each wanting around 100MB, another couple wanting 250-350MB, and one wanting 800MB, on an XP system with 2GB of memory. Not that I'm bitter or anything. Especially when I was trying to run a BI report the other day and it pushed IE out to 1.2GB before my whole system basically just gave up (don't you love BI programs that do the pivoting on the client, combined with admin access meaning you have visibility to all the records?)



  • @fatbull said:

    Of course not. Because I was joking. Or at least trying. I thought the ridiculous version numbers etc. and the tag would make that clear. I guess I was wrong.

    It wasn't funny because it was true.



  • @El_Heffe said:

    It has been claimed that Firefox keeps pages in memory so that you can go back to them faster.  That would be a nice a feature -- if it actually worked.

    It's worse than before.

    Sometimes I scroll down by tapping the arrow buttons, and the page just freezes while I'm tapping. The client area just stops updating, for some reason. Solution? Move the mouse. The page will jump to the correct position.

     @El_Heffe said:

    However, even with static pages that haven't changed, hitting the back button loads the page just as slowly as the first time I view it.

    I have experienced very good performance increase on the back button for TDWTF, which is by far the slowest site I visit.

    I thought at first that Panorama would be an awesome tab management feature, kind of like OSX's Exposé*, but fact is that I never used it beyond the initial Oh and Ah.

     

    *) Exposé: random window thumbnails in a random place. Now that's a UI!



  • @dhromed said:

    I thought at first that Panorama would be an awesome tab management feature, kind of like OSX's Exposé*, but fact is that I never used it beyond the initial Oh and Ah.
    Well, I use it a lot. It's particularly good for keeping tabs (heh) on what I need to see right now, what I'd rather not close because I need to see later but can't be bothered to bookmark, and stuff I visit once each day. It's also quite well implemented, for a change. It just feels right.

    My current tab groups are "Reports" (about a dozen tabs), "Daily visits" (5 tabs), "Docs" (about ten tabs with general reference information I need for work) and "General browsing". The number of tabs on this last group varies wildly. It's where I make Google searches and where I drag stuff from the Daily Visits group if it's starting to get too many extraneous tabs. Tabs in this group are meant to be short-lived or be moved to another group if applicable.

    Oh, how I'd love if the OSs I use came with a WM that worked just like this. It's the rich man's virtual desktops.



  • @dhromed said:

    I thought at first that Panorama would be an awesome tab management feature, kind of like OSX's Exposé*, but fact is that I never used it beyond the initial Oh and Ah.



    speaking of tab management, i accidentally clicked on "Group your tabs" buton (just before the first tab). ans because I accidentally clicked it, i just wanted to close it, so clicked on x in the upper right corner (IMHO should be "Close this popup" button).

    its not that i am complaining, this "close" button really closes stuff ... and (i think since FF5) there is an "undo close" button ... but i find it extremely crappy ui design ...




  • @Zecc said:

    @dhromed said:
    I thought at first that Panorama would be an awesome tab management feature, kind of like OSX's Exposé*, but fact is that I never used it beyond the initial Oh and Ah.
    Well, I use it a lot.

    I used to use it and that was my main reason for not switching to Chrome yet (there's an equivalent extension for chrome, but at least at that time it didn't work at all). However, I've recently noticed that I haven't used my other tab groups in months; they were just sitting around wasting memory, with the same sites loaded I had interest in months ago. Another few reasons used to be AbBlock, Firebug, GreaseMonkey, Stylish, and Find-As-You-Type, which are all now there on Chrome, either built-in or as extensions. So no reason to use Firefox any more...



  • @Nelle said:

    speaking of tab management, i accidentally clicked on "Group your tabs" buton (just before the first tab). ans because I accidentally clicked it, i just wanted to close it, so clicked on x in the upper right corner (IMHO should be "Close this popup" button).
     

    What  "Group your tabs" button?Just before the first tab, there's only the firefox button.

     Edit.

     Oh, that one on the far right that I completely ignore. :)

     



  • @blakeyrat said:

    @RobFreundlich said:
    What gets me about stuff like this, though, is the lack of configurability. Did no-one at MS stop and say, "Hey, wait a minute! We're drastically changing the way a central part of the desktop UI works. Maybe we should give users the option of making it work the old way." ?!?!?!? Answer: no. Their research found that some portion of the users prefer it this way, and so this is how it will be for everyone. If you don't like it, well, then, BAD USER!

    Adding a checkbox doubles the QA time. Adding two checkboxes quadruples the QA time.

    Microsoft already has a ridiculously huge QA burden with the existing checkboxes. You bet your ass they're not going to add a new configurable to Windows unless they know beyond a doubt it'll draw in customers.

    And in doing so, they put usability on the back burner. I object.

    @blakeyrat said:

    The difference between Microsoft and the rest of the industry is that Microsoft actually performs QA on their product. Which is why these new options aren't added.

    Agreed. But again, I object. And I have worked at companies that were able to find the right balance.

    @blakeyrat said:

    Current trends suggest less configurability is better, generally.

    Current trend is wrong. Current trend is an overreaction to overconfigurability. When you present the user with a zillion knobs (or worse, REQUIRE the user to twist them to get the product to work), you are overconfigurable. But the answer to that is not to take away configurability, it is to provide a reasonable set of defaults that will satisfy a reasonable subset of your users, and to give control to those users who want it.

    There are a lot of people who will take whatever default settings you present them with, and who will be perfectly happy with them. But often, the default settings are best for a new or non-proficient user. As your users become more familiar with your product and more proficient using it, they are going to want to tweak it. Not giving them that ability is treating them like children.

    And, to come back to the point I started with, if you change the behavior of a core part of your system (such as the Windows task bar), you should always provide an option to revert that behavior. People who have been using your system have become used to the old behavior and might find it much more useful than the new behavior.

    @blakeyrat said:

    @RobFreundlich said:
    * Like a LART to the head, perhaps?

    You're a UI developer and you use the term "Luser?" Jesus.

    I do not have scorn for all of my users, as many developers do. If a user is confused because I screwed up my UI, or because my documentation folks screwed up the docs, I will support them any way I can and do all that I can to improve their situation and the product. If a user thinks, and tries, and reads the docs, and learns how to use the product, well, then that's wonderful. And most of my current users are like that.

    But if a user refuses to read documentation (even when the product makes it almost impossible to not do so) and repeatedly does things that are actually stupid (as opposed to mistakes the product leads them to) and refuses to think for himself (and in one recent case, tells me how proud he is of not thinking for himself), then yes, I will call him a Luser.



  • @serguey123 said:

    Ok, first let me say, pat yourself in the back or whatever makes you happy because you seem to think very high of yourself

    Now, wtf are you talking about, what MS changed so radically and did not give and option to fallback to? Grouping? other people in this thread already said that you can change this, please clarify with valid details and examples what are you ranting about or else I will consider a retard's post and ignore it.

    As others have pointed out, it is not possible to completely turn off grouping. It is not possible to have the task bar reorder your buttons for you. It is not possible to turn off that ridiculous menu that shows up when you hover your mouse over a task bar button. Those are the details I am complaining about.



  • @blakeyrat said:

    (Also I'd facepalm too if I had to use one of those crappy 600-series Dell laptops.)

    My development machine here at work is a crappy 600-series Dell laptop. That fact, combined with a draconian standard corporate image, equals 13 minutes from cold boot to usable desktop. 13 fucking minutes. I like to start each morning with a solid facepalm and some quiet sobbing.



  • @Zecc said:

    My current tab groups are "Reports" (about a dozen tabs), "Daily visits" (5 tabs), "Docs" (about ten tabs with general reference information I need for work) and "General browsing". The number of tabs on this last group varies wildly. It's where I make Google searches and where I drag stuff from the Daily Visits group if it's starting to get too many extraneous tabs. Tabs in this group are meant to be short-lived or be moved to another group if applicable.

    Oh, how I'd love if the OSs I use came with a WM that worked just like this. It's the rich man's virtual desktops.

    BeOS did that in 1994-ish.

    I can only assume other vendors don't implement it because it's patented? I really have no idea, but it was great being able to tab any window alongside any other window.



  • @RobFreundlich said:

    And in doing so, they put usability on the back burner. I object.

    You need stability before you can have usability. The most well-designed program in the universe will have a shitty user experience if it crashes.

    @RobFreundlich said:

    Current trend is wrong. Current trend is an overreaction to overconfigurability.

    I could see that.

    On the other hand, OS X has almost zero configurability other than some color choices, and look at their sales. Ditto iOS. So even if we both agree on that point, try convincing your boss with his eye on the balance sheet.

    @RobFreundlich said:

    When you present the user with a zillion knobs (or worse, REQUIRE the user to twist them to get the product to work), you are overconfigurable.

    If you REQUIRE the user to go tweak settings before the program works, you're the worst designer ever. Or are on Linux.

    @RobFreundlich said:

    But the answer to that is not to take away configurability,

    If you can't QA it, don't add it. Other than that, I'm not opposed to programs having options. But every feature starts out at -100, so it better be pretty fucking good to justify the QA time, the localization time, the documentation time, etc etc.

    @RobFreundlich said:

    As your users become more familiar with your product and more proficient using it, they are going to want to tweak it.

    Not if you've done your job.

    @RobFreundlich said:

    And, to come back to the point I started with, if you change the behavior of a core part of your system (such as the Windows task bar), you should always provide an option to revert that behavior.

    What if the default behavior is a security hole? (It isn't in this case, I just object to "always"-- absolutes suck.)

    Anyway, we're talking about Microsoft here. If there's a single company left on Earth that actually does usability testing and research, it's Microsoft. If they switched the default behavior of the taskbar you can bet your ass they have the studies that show beyond doubt the new way is measurably better.

    You could argue "you should be able to switch it back because users are used to it, and that makes them happy". But Microsoft's goal isn't to make users happy (well, its primary goal), it's to make them productive.

    @RobFreundlich said:

    I do not have scorn for all of my users, as many developers do.

    You use the term "luser." So yes you fucking do.

    @RobFreundlich said:

    But if a user refuses to read documentation (even when the product makes it almost impossible to not do so)

    If your product requires the user to read docs, you're a shitty designer.

    @RobFreundlich said:

    then yes, I will call him a Luser.

    If you use the word "luser" for any reason, you're not just a shitty designer, you're a shitty human being. How about some fucking respect?


  • ♿ (Parody)

    @blakeyrat said:

    @RobFreundlich said:
    As your users become more familiar with your product and more proficient using it, they are going to want to tweak it.

    Not if you've done your job.

    Bullshit. It's impossible to account for all the different ways different people work. Now, I agree with you that there are limits as to the feasibility and desirability of tweakability. I'm also not disagreeing with you that MS probably does more usability testing that just about anyone. But you've gone ahead with an absolute here that I just can't agree with.

    @blakeyrat said:

    If you use the word "luser" for any reason, you're not just a shitty designer, you're a shitty human being. How about some fucking respect?

    More bullshit. You sound like the people who tell you that if you bitch about your children in some way then you don't really love them.

    What happened to "absolutes suck?"



  • @boomzilla said:

    @blakeyrat said:
    @RobFreundlich said:
    As your users become more familiar with your product and more proficient using it, they are going to want to tweak it.

    Not if you've done your job.

    Bullshit. It's impossible to account for all the different ways different people work. Now, I agree with you that there are limits as to the feasibility and desirability of tweakability.

    Shit. I'd reply to this, but I'd probably end up using the word "ideal", and I know from past experience that people on this board don't fucking know what "ideal" means. Oh what he hell...

    Ideally, a program should be equally easy for an advanced user to use as a beginning user. A good example of this is the Office 2007 Ribbon; it scales extremely, extremely well.

    @boomzilla said:

    I'm also not disagreeing with you that MS probably does more usability testing that just about anyone. But you've gone ahead with an absolute here that I just can't agree with.

    It's not an absolute, it's an ideal. Like "every American should pay their taxes." It'll never actually happen, but it's something to strive for.

    @boomzilla said:

    @blakeyrat said:
    If you use the word "luser" for any reason, you're not just a shitty designer, you're a shitty human being. How about some fucking respect?

    More bullshit.

    Insulting someone because they haven't spent 15 years of their life geeking-out about computers? This is acceptable to you? Then you, also, are a shitty human being.

    @boomzilla said:

    What happened to "absolutes suck?"

    Absolutes suck. Ideals are awesome.



  • @blakeyrat said:

    @boomzilla said:
    @blakeyrat said:
    @RobFreundlich said:
    As your users become more familiar with your product and more proficient using it, they are going to want to tweak it.
    Not if you've done your job.
    Bullshit. It's impossible to account for all the different ways different people work. Now, I agree with you that there are limits as to the feasibility and desirability of tweakability.

    Shit. I'd reply to this, but I'd probably end up using the word "ideal", and I know from past experience that people on this board don't fucking know what "ideal" means. Oh what he hell...

    Ideally, a program should be equally easy for an advanced user to use as a beginning user. A good example of this is the Office 2007 Ribbon; it scales extremely, extremely well.

    That's intended as irony, right?  Because you're right, the ribbon provides the same experience to everyone: it's a horrible, ugly waste of screen real estate and a major step backwards in usability for both beginners and power users.  The next piece of Microsoft Usability™ from the wonderful folks who brought us the XBox controller.

     


  • ♿ (Parody)

    @blakeyrat said:

    Insulting someone because they haven't spent 15 years of their life geeking-out about computers? This is acceptable to you? Then you, also, are a shitty human being.

    It has nothing to do with spending "15 years of their life geeking-out about computers." It's about normal human reactions and blowing off steam. Plus, some people really are losers, and some of them end up being your users. If you can't understand the nuances of social contexts, then you're probably autistic, but that doesn't make me or Rob "shitty human beings." Or you're just an overly PC asshole, and therefore a shitty human being.



  • @Mason Wheeler said:

    @blakeyrat said:

    @boomzilla said:
    @blakeyrat said:
    @RobFreundlich said:
    As your users become more familiar with your product and more proficient using it, they are going to want to tweak it.
    Not if you've done your job.
    Bullshit. It's impossible to account for all the different ways different people work. Now, I agree with you that there are limits as to the feasibility and desirability of tweakability.
    Shit. I'd reply to this, but I'd probably end up using the word "ideal", and I know from past experience that people on this board don't fucking know what "ideal" means. Oh what he hell...

    Ideally, a program should be equally easy for an advanced user to use as a beginning user. A good example of this is the Office 2007 Ribbon; it scales extremely, extremely well.

    That's intended as irony, right?  Because you're right, the ribbon provides the same experience to everyone: it's a horrible, ugly waste of screen real estate and a major step backwards in usability for both beginners and power users.  The next piece of Microsoft Usability™ from the wonderful folks who brought us the XBox controller.

     

    Ok, I have to ask, how is that controller worse than any other and please I need relevant studies, not something like "i tried it and I did not like it" because it was fine for me.

    The ribbon, I don't use Office a lot so... I don't care but is easier to find stuff you did not know was there



  • @Mason Wheeler said:

    That's intended as irony, right? Because you're right, the ribbon provides the same experience to everyone: it's a horrible, ugly waste of screen real estate and a major step backwards in usability for both beginners and power users.

    You know how I know you don't know anything about GUIs?

    Read this and become enlightened. Start from the beginning and work your way forward.

    @Mason Wheeler said:

    The next piece of Microsoft Usability™ from the wonderful folks who brought us the XBox controller.

    You mean the most well-designed and comfortable controller currently available?

    Or do you live in some weird alternative evil-goatee universe where the Xbox controller is an example of bad design?

    @boomzilla said:

    It has nothing to do with spending "15 years of their life geeking-out about computers." It's about normal human reactions and blowing off steam. Plus, some people really are losers, and some of them end up being your users. If you can't understand the nuances of social contexts, then you're probably autistic, but that doesn't make me or Rob "shitty human beings." Or you're just an overly PC asshole, and therefore a shitty human being.

    You've read my posts, do you honestly think I'm politically correct? Christ. Look at that I just offended Christians. It's not about being an asshole. I'm an asshole all the time.

    No, what I'm against is people forming their own little cliques and groupthink. The correct response when you see someone who can't use a piece of software is to first figure out why they can't, then fix the software so they can. Calling them "lusers" doesn't accomplish either of those goals, and actually stands in the way of the first one.


  • ♿ (Parody)

    @blakeyrat said:

    No, what I'm against is people forming their own little cliques and groupthink. The correct response when you see someone who can't use a piece of software is to first figure out why they can't, then fix the software so they can. Calling them "lusers" doesn't accomplish either of those goals, and actually stands in the way of the first one.

    Oh, FFS. It may not be a positive step towards understanding something, and I agree that you can go overboard. But it can also help you keep your sanity. Plus, sometimes you get to understand how some individual thinks and then you know they're a luser. There may or may not be something wrong with your code, but there's definitely something wrong with some people. If you haven't run into those users, you either don't have many, or don't have the misfortune to interact with them.



  • @Master Chief said:

     I'm with Blakey, fix your broken ass computer.  All of mine draw all of their windows just fine, except my old laptop still running a shitty XP install.

    It's a frame or two of lag. If you're one of those poor sods who can't tell the difference between 24 and 85fps or has a horrid lethargic display you won't see it. I guess it could also be masked by the GPU lagging behind the CPU redrawing the client area depending upon implementation...



  • using the term "Luser" is acceptable when talking about Linux Users, of course, because as users they are usually losing out. (well, unless they get excited about using bash, in which case they're probably losing their mind, so I guess it still applies)

    @Mason Wheeler said:

    the ribbon provides the same experience to everyone

    Let's add to the "don't use absolutes" rule and add  "don't make generalizations". It's nice that you think you can talk about how everybody interacts with the ribbon. Also, the ribbon, at least in office 2007 (can't speak for office 2010) typically uses less space than Office 2003;Unless you hide a shitload of toolbars in 2003, in which case you have to dig around the menus to use those respective features, which takes longer then looking around the ribbon. As I have it setup now, Office 2003 actually uses has 6 fewer pixels for the document than 2007. Of course if you hide all the menus and toolbars in office 2003 you can get more space, but you get even more space with 2007 if you minimize the ribbon and in that scenario the functionality is still closer at hand because the same tabs are still there to display the ribbon again, so any argument saying "The ribbon is a waste of space" is in itself both uninformed and clearly stems from motivated reasoning.

     

    That said, I prefer Office 2003, but at least I know there is no loss of actual usability with the ribbon, and that my preference is entirely rooted in bias.



  • @boomzilla said:

    Plus, sometimes you get to understand how some individual thinks and then you know they're a luser.
    Just today I was at a client, and I installed some updates that a program they use needs at one user. 20 minutes later I get a call from that user that the program froze, and that it can't be closed at all, and that she can't work like that. I was in the middle of some other task, so it took me around half hour to get back to her computer. When she unlocked Windows, she showed me how the program was frozen - she couldn't click on the large Close button, which was partially covered by another dialog informing her about something. Every time she tried to click the Close button, the computer dinged, and the modal dialog flashed a bit - but she didn't see it at all until I pointed it out.



  • @ender said:

    @boomzilla said:
    Plus, sometimes you get to understand how some individual thinks and then you know they're a luser.
    Just today I was at a client, and I installed some updates that a program they use needs at one user. 20 minutes later I get a call from that user that the program froze, and that it can't be closed at all, and that she can't work like that. I was in the middle of some other task, so it took me around half hour to get back to her computer. When she unlocked Windows, she showed me how the program was frozen - she couldn't click on the large Close button, which was partially covered by another dialog informing her about something. Every time she tried to click the Close button, the computer dinged, and the modal dialog flashed a bit - but she didn't see it at all until I pointed it out.

    Are you implying that she was a "luser" due to that?



  • @blakeyrat said:

    @ender said:
    @boomzilla said:
    Plus, sometimes you get to understand how some individual thinks and then you know they're a luser.
    Just today I was at a client, and I installed some updates that a program they use needs at one user. 20 minutes later I get a call from that user that the program froze, and that it can't be closed at all, and that she can't work like that. I was in the middle of some other task, so it took me around half hour to get back to her computer. When she unlocked Windows, she showed me how the program was frozen - she couldn't click on the large Close button, which was partially covered by another dialog informing her about something. Every time she tried to click the Close button, the computer dinged, and the modal dialog flashed a bit - but she didn't see it at all until I pointed it out.
    Are you implying that she was a "luser" due to that?
    I think he was.  Yes.



  • @blakeyrat said:

    @Mason Wheeler said:
    The next piece of Microsoft Usability™ from the wonderful folks who brought us the XBox controller.

    You mean the most well-designed and comfortable controller currently available?

    Or do you live in some weird alternative evil-goatee universe where the Xbox controller is an example of bad design?

    I assume you're thinking of the XBox 360 controller, which is halfway decent, though I wouldn't agree that it's better-designed or more comfortable than the PlayStation's DualShock.  (In true Microsoft fashion, they copied the broad strokes of a successful competitor wholesale and then completely screwed up on the details.  Whoever designed the 360 controller's thumb-destroying sticks with a hard, concave lip and bumps that dig into your skin instead of a nice, padded convex curve like the DualShock's thumbsticks has oughtta be taken out and shot.)

    But I digress.  I was referring to the original XBox controller.  You know, the one that was obviously designed for gorillas, not human beings, to hold in their hands?

     



  • @Mason Wheeler said:

    Whoever designed the 360 controller's thumb-destroying sticks with a hard, concave lip

    Err, my thumbs were convex last time I checked. checks Yep! And digging in? Stop it, you're hurting it!



  • @Mason Wheeler said:

    @blakeyrat said:
    @Mason Wheeler said:
    The next piece of Microsoft Usability™ from the wonderful folks who brought us the XBox controller.
    You mean the most well-designed and comfortable controller currently available?

    Or do you live in some weird alternative evil-goatee universe where the Xbox controller is an example of bad design?

    I assume you're thinking of the XBox 360 controller, which is halfway decent, though I wouldn't agree that it's better-designed or more comfortable than the PlayStation's DualShock.  (In true Microsoft fashion, they copied the broad strokes of a successful competitor wholesale and then completely screwed up on the details.  Whoever designed the 360 controller's thumb-destroying sticks with a hard, concave lip and bumps that dig into your skin instead of a nice, padded convex curve like the DualShock's thumbsticks has oughtta be taken out and shot.)

    But I digress.  I was referring to the original XBox controller.  You know, the one that was obviously designed for gorillas, not human beings, to hold in their hands?

    Opinions, opinions, for example for me the PS controller feel small and fragile (I have big hands) so unless you have factual data to back this up....

    If we are going to talk about shitty controllers let us talk about the NES controller, because something that happened years ago is relevant now



  • @serguey123 said:

    @Mason Wheeler said:

    I assume you're thinking of the XBox 360 controller, which is halfway decent, though I wouldn't agree that it's better-designed or more comfortable than the PlayStation's DualShock.  (In true Microsoft fashion, they copied the broad strokes of a successful competitor wholesale and then completely screwed up on the details.  Whoever designed the 360 controller's thumb-destroying sticks with a hard, concave lip and bumps that dig into your skin instead of a nice, padded convex curve like the DualShock's thumbsticks has oughtta be taken out and shot.)

    But I digress.  I was referring to the original XBox controller.  You know, the one that was obviously designed for gorillas, not human beings, to hold in their hands?

    Opinions, opinions, for example for me the PS controller feel small and fragile (I have big hands) so unless you have factual data to back this up....

    If we are going to talk about shitty controllers let us talk about the NES controller, because something that happened years ago is relevant now

    Big difference here: the NES controller was brand new, AFAIK the first of its kind.  There was no previous research or competing models to base things on.  And they did a pretty good job, really.  Today, decades later, every major gamepad has been based on the basic example of the NES controller and its successor on the SNES.  Movement buttons go on the left, action buttons on the right, "bumpers" on the front of the case and meta-command buttons in the center.  Nintendo had no earlier examples to base that on; everything before them used a joystick.

    The XBox, on the other hand, came around 3 console generations later, and one generation after the PlayStation, whose controller they blatantly (and badly) copied.  They really had no excuse to make all the ergonomic mistakes they made.

     


  • Considered Harmful

    I actually liked the larger Xbox controllers.



  • @Mason Wheeler said:

    I assume you're thinking of the XBox 360 controller, which is halfway decent, though I wouldn't agree that it's better-designed or more comfortable than the PlayStation's DualShock.

    The DualShock isn't bad, but look where the thumbsticks are and try to correlate that with the position of your actual thumbs while holding the thing. Whoever designed the DualShock obviously thought that symmetry was more important than comfort. Comfort aside, the thing's labelled with shapes instead of letters. That's retarded. Even technologically, the 360's "all-analog" approach is better than Sony's "mostly digital" approach. Analog face buttons FTW. Oh, and it can be used on a PC.

    It's obvious to me now that you're just the typical "everything Microsoft does is evil" Slashdotter, so there's really no point in me even typing this, but... eh whatever.

    @Mason Wheeler said:

    (In true Microsoft fashion, they copied the broad strokes of a successful competitor wholesale and then completely screwed up on the details.

    Actually, they improved on the DualShock in pretty much every way.

    @Mason Wheeler said:

    Whoever designed the 360 controller's thumb-destroying sticks with a hard, concave lip and bumps that dig into your skin instead of a nice, padded convex curve like the DualShock's thumbsticks has oughtta be taken out and shot.)

    What does the word "hard" mean in your evil goatee alternate universe? Look, you're welcome to not like the Xbox 360 controller, but when you spout obvious falsehoods like that, the only real message you're sending me is, "I'm talking out of my ass."

    Concave? it's almost as if it's designed to fit a human thumb! Bumps? It's almost as if tactile feedback helps keeps your thumbs centered on the stick!

    @Mason Wheeler said:

    But I digress.  I was referring to the original XBox controller.  You know, the one that was obviously designed for gorillas, not human beings, to hold in their hands?

    1. The "Duke" controller was only shipped with the console for like 6 months, max. In no way could it be called "the" Xbox controller. (Even if you interpret "Xbox" to mean "original Xbox", the Controller-S was the standard controller for 90%+ of its lifetime, and the "Duke" wasn't even available for sale the last few years of the Xbox's life.)

    2) The "Duke" controller was extremely comfortable. I preferred it to the Controller-S, and I used the shit out of mine until it literally broke. You can't universally declare it "bad" unless it's universally considered "bad", and it's not. Penny-Arcade comic does not a concensus make.

    3) You're a dick.


  • Considered Harmful

    @blakeyrat said:

    the 360's "all-analog" approach is better than Sony's "mostly digital" approach.

    On a Sixaxis or DualShock 3 controller, the ╳, □, △, ◯, L1, R1, start, and select buttons are all pressure sensitive, and the L2, R2, and both thumbsticks are full analog. Not even mentioning the motion sensors, how do you figure that's mostly digital?



  • @blakeyrat said:

    @Mason Wheeler said:
    I assume you're thinking of the XBox 360 controller, which is halfway decent, though I wouldn't agree that it's better-designed or more comfortable than the PlayStation's DualShock.

    The DualShock isn't bad, but look where the thumbsticks are and try to correlate that with the position of your actual thumbs while holding the thing.

    shrug My thumbs can reach either position just fine.

    Whoever designed the DualShock obviously thought that symmetry was more important than comfort.

    Since there's no actual reduction in comfort, yes, symmetry is better than no symmetry.

    Comfort aside, the thing's labelled with shapes instead of letters. That's retarded.

    Why?  They're just the same as letters: arbitrary geometric shapes with no inherent meaning besides whatever the game designers assign.  Do A, B, X or Y actually mean anything relevant in the context of any game you've ever played?  The only example I can think of is the one-off "L A R A" thing in Chrono Trigger.

    Even technologically, the 360's "all-analog" approach is better than Sony's "mostly digital" approach.  Analog face buttons FTW.

    Again, why?

    Oh, and it can be used on a PC.

    ...umm?  I was able to get a converter to use my Dual Shock controller on a PC before the XBox 360 even came out.  What's your point?

    It's obvious to me now that you're just the typical "everything Microsoft does is evil" Slashdotter, so there's really no point in me even typing this, but... eh whatever.

    Bah. I don't even have a Slashdot account.  When Microsoft does something right, I'll give them credit for it.  It's just that they do so pretty rarely, and they've got a long track record of doing exactly what they did with the XBox controller: blatantly rip off the market leader that figures out how to do something well, copy the basic feel, and get a bunch of details wrong.  (Some of the most obvious examples: Mac OS Classic -> Windows, Delphi -> .NET, Dual Shock -> XBox controller)

    @Mason Wheeler said:
    (In true Microsoft fashion, they copied the broad strokes of a successful competitor wholesale and then completely screwed up on the details.

    Actually, they improved on the DualShock in pretty much every way.

    @Mason Wheeler said:

    Whoever designed the 360 controller's thumb-destroying sticks with a hard, concave lip and bumps that dig into your skin instead of a nice, padded convex curve like the DualShock's thumbsticks has oughtta be taken out and shot.)

    What does the word "hard" mean in your evil goatee alternate universe? Look, you're welcome to not like the Xbox 360 controller, but when you spout obvious falsehoods like that, the only real message you're sending me is, "I'm talking out of my ass."

    The word "hard" in this context means "made with hard plastic, without soft rubber padding such as the Dual Shock's thumbsticks have, that makes pressing your thumb against it for extended periods of time painful."

    Concave? it's almost as if it's designed to fit a human thumb!

    It's a stick, not a glove. Your thumb isn't supposed to "fit into it".  It's supposed to push it around in different directions, and if you're going to be pushing against something, it's a lot more comfortable if 1) it's padded and 2) it doesn't have a hard, thin edge at a highly acute angle that makes applying pressure to it for extended periods of time highly painful.

    Bumps? It's almost as if tactile feedback helps keeps your thumbs centered on the stick!

    ...huh? Who moves a thumbstick from the center?!? The edge provides all the tactile feedback you need to know exactly where the stick is without looking at it, and the edges on the 360's sticks are painful.  And the totally unnecessary bumps on the concave surface mean that even when you're thumb is inside the thing, in case you try to avoid the pain of working around the edge like you would on any sane thumbstick, it still inflicts pain on you by digging into your skin.  Those bumps are very small and very hard, and after a few hours of play it's almost like they stuck thumb tacks up from the center of the controller.

     



  • @joe.edwards said:

    @blakeyrat said:
    the 360's "all-analog" approach is better than Sony's "mostly digital" approach.

    On a Sixaxis or DualShock 3 controller, the ╳, □, △, ◯, L1, R1, start, and select buttons are all pressure sensitive, and the L2, R2, and both thumbsticks are full analog. Not even mentioning the motion sensors, how do you figure that's mostly digital?

    Sorry; I was talking about the original DualShock, since I've used it. I should have specified.



  • @Mason Wheeler said:

    Since there's no actual reduction in comfort, yes, symmetry is better than no symmetry.

    Explain.

    @Mason Wheeler said:

    Why?  They're just the same as letters: arbitrary geometric shapes with no inherent meaning besides whatever the game designers assign.

    As long as you don't give a shit about walkthroughs, tutorials, and documentation, or even little kids sharing combos-- any situation where describing which buttons to push on the DualShock controller is much more difficult than doing the same on the Xbox controller.

    @Mason Wheeler said:

    Even technologically, the 360's "all-analog" approach is better than Sony's "mostly digital" approach.  Analog face buttons FTW.

    Again, why?

    Because the job of the controller is to map the user's intent to the software. A half-pressed face button reported as 35% expresses intent more accurately than a face button that's either 1 or 0.

    @Mason Wheeler said:

    Oh, and it can be used on a PC.

    ...umm?  I was able to get a converter to use my Dual Shock controller on a PC before the XBox 360 even came out.  What's your point?

    It can be used on a PC without a converter. Happy? Pedantic dickweed?

    @Mason Wheeler said:

    Bah. I don't even have a Slashdot account.

    Shocking! And I mean that literally, not in my usual sarcastic way.

    @Mason Wheeler said:

    When Microsoft does something right, I'll give them credit for it. It's just that they do so pretty rarely, and they've got a long track record of doing exactly what they did with the XBox controller: blatantly rip off the market leader that figures out how to do something well, copy the basic feel, and get a bunch of details wrong. (Some of the most obvious examples: Mac OS Classic -> Windows, Delphi -> .NET, Dual Shock -> XBox controller)

    Ok; Xbox Live. What's your opinion? Putting a mass storage device inside a game console, your opinion? I want to see the logical gymnastics you're gonna have to pull off to make those sound like bad undesirable things.

    @Mason Wheeler said:

    The word "hard" in this context means "made with hard plastic, without soft rubber padding such as the Dual Shock's thumbsticks have, that makes pressing your thumb against it for extended periods of time painful."

    First of all, why are you pressing your thumb against it?

    Secondly, it's soft rubber just like on the Sony controllers. You've never even fucking USED a Xbox 360 controller, have you? You're so full of shit is spewing out your mouth.

    Thirdly, why the fuck am I still responding to your ass? I'm done. You're a dumbass. You're incapable of forming an opinion without foaming at the mouth with Microsoft-hate. There's no point in trying to engage you in debate, because you've already lost the world of "logic" and "reason" far behind.

    You get nothing. You lose. Good day sir!



  • @Mason Wheeler said:

    Why?  They're just the same as letters: arbitrary geometric shapes with no inherent meaning besides whatever the game designers assign.  Do A, B, X or Y actually mean anything relevant in the context of any game you've ever played?  The only example I can think of is the one-off "L A R A" thing in Chrono Trigger.

    +1 for the Chrono Trigger reference.



  • @Mason Wheeler said:

    Bah. I don't even have a Slashdot account.  When Microsoft does something right, I'll give them credit for it.  It's just that they do so pretty rarely, and they've got a long track record of doing exactly what they did with the XBox controller: blatantly rip off the market leader that figures out how to do something well, copy the basic feel, and get a bunch of details wrong.  (Some of the most obvious examples: Mac OS Classic -> Windows, Delphi -> .NET, Dual Shock -> XBox controller)

    Really?, I mean really?.....

    @Mason Wheeler said:

    ...huh? Who moves a thumbstick from the center?!?

    I do


  • Considered Harmful

    @Mason Wheeler said:

    The only example I can think of is the one-off "L A R A" thing in Chrono Trigger.

    Same game, though.



  • @blakeyrat said:

    Ok; Xbox Live. What's your opinion? Putting a mass storage device inside a game console, your opinion? I want to see the logical gymnastics you're gonna have to pull off to make those sound like bad undesirable things.

    You can always tell when someone's out of real arguments when they turn to mockery and attacking strawmen instead of trying to refute points that their opponent actually made.  I never said that XBox Live or putting a HD inside the console were bad things, and they're not.  I said the thumbsticks on the controller are painful to work with, because they are.

    The word "hard" in this context means "made with hard plastic, without soft rubber padding such as the Dual Shock's thumbsticks have, that makes pressing your thumb against it for extended periods of time painful."

    First of all, why are you pressing your thumb against it?

    ...umm, because it's a thumbstick and that's how you use it?

    Secondly, it's soft rubber just like on the Sony controllers.

    There's a single very thin layer of soft rubber over the sticks, with bumps on it that dig into your fingers.  This is nothing like the heavily-padded Dual Shock sticks, which are far more comfortable.

    You've never even fucking USED a Xbox 360 controller, have you? You're so full of shit is spewing out your mouth.

    If you really must know, I used to be a tester for XBox 360 games, back before I got this job.  Having to use those horrible thumbsticks for 8 hours a day was a big part of the reason I left. After the first couple weeks I'd come home each evening with my left thumb in agony.  So yes, I have used them and I know quite well what I'm talking about, TYVM.

     



  • @serguey123 said:

    @Mason Wheeler said:

    Bah. I don't even have a Slashdot account.  When Microsoft does something right, I'll give them credit for it.  It's just that they do so pretty rarely, and they've got a long track record of doing exactly what they did with the XBox controller: blatantly rip off the market leader that figures out how to do something well, copy the basic feel, and get a bunch of details wrong.  (Some of the most obvious examples: Mac OS Classic -> Windows, Delphi -> .NET, Dual Shock -> XBox controller)

    Really?, I mean really?.....

     

    Really, really. They even hired away Anders Hejlsberg, chief architect of Delphi, and several other members of the team away from Borland in order to create it.  (That is, if you don't believe that it was actually produced by Borland and stolen outright by Microsoft.) And what they ended up with, if you're familiar with both systems, is a language called C#, developed by Delphi engineers as competition to Java, that feels a whole lot like "Delphi rewritten to look like Java."  Only without a bunch of useful features, of course.  (How C# coders can get anything useful done in an object-oriented language with no class references (aka metaclasses) is beyond me...)

     



  • @joe.edwards said:

    On a Sixaxis or DualShock 3 controller, the ╳, □, △, ◯, L1, R1, start, and select buttons are all pressure sensitive, and the L2, R2, and both thumbsticks are full analog. Not even mentioning the motion sensors, how do you figure that's mostly digital?
    DualShock 2 isn't any different - all buttons (including the directional pad) are analog with 256 levels of sensitivity. Few games made use of this though (this is why the PS2 controller is called DualShock 2 - the original PSX DualShock only had the thumbsticks analog).



  • @Mason Wheeler said:

    Really, really. They even hired away Anders Hejlsberg, chief architect of Delphi, and several other members of the team away from Borland in order to create it.

     Retrospective falsification. they hired him in 1996, and he (I can't find any information about others that were hired from Borland, but since Borland was pretty much fucked by that point it's no surprise people were abandoning the sinking ship) worked on several other projects/languages before C#. I doubt there was even a thought to create .NET or C# until sun revoked the MS java license.

      (That is, if you don't believe that it was actually produced by Borland and stolen outright by Microsoft.)

     

    That would be difficult to believe.  What the fuck good would that do for Borland? Some people are such fucktards. They can't ever say "hey, you know, this language that I've been using for years is NOT the fucking magical elixir of life" instead they turn around and say the language and the company behind it failed not because of shitty business decisions, poor marketing, or an IDE that shits all over the place, but rather because Micro$haft stoled-ed it.

     

    developed by Delphi engineers as competition to Java

    So, you believe that bullshit conspiracy theory too? I suppose Microsoft is the cause of 9/11 for you as well?

     

    (How C# coders can get anything useful done in an object-oriented language with no class references (aka metaclasses) is beyond me...)

    Stop blabbering on as if Delphi has no problems. It required you to write method definitions twice for no good reason, lacked any sort of in-line documentation (like javadoc or xmldoc), reflection, foreach style enumeration, etc. Reflection appears to address some of the functionality constraints imposed by not having metaclasses, also. I'd say the Type returned by a object's GetType() method gives you a metaclass but I'm fairly sure that wouldn't be accurate.

     

    Am I saying "Delphi sucks" as a language? No, I'm saying it's different. That's all. And it clearly is. It has it's advantages, but it also has it's disadvantages, like having a worse than shit IDE. Weaving or regurgitating conspiracy theories that C# is really just Delphi made to look like java would just make you look like an immature asshat who clearly shouldn't be in a field where rapidly changing technologies are pretty much a given.

     

     



  • @BC_Programmer said:

    @Mason Wheeler said:

    Really, really. They even hired away Anders Hejlsberg, chief architect of Delphi, and several other members of the team away from Borland in order to create it.

     Retrospective falsification. they hired him in 1996, and he (I can't find any information about others that were hired from Borland, but since Borland was pretty much fucked by that point it's no surprise people were abandoning the sinking ship) worked on several other projects/languages before C#. I doubt there was even a thought to create .NET or C# until sun revoked the MS java license.

    Where are you getting that from?  Borland was in great shape up until the early 2000s.  The team members didn't leave to "abandon a sinking ship;" the ship didn't start sinking until years after they left.  They left because a company several times Borland's size was offering them contracts worth millions of dollars, which Borland simply didn't have deep enough pockets to match.  And AFAIK the first thing that Microsoft had Anders & co do was develop Microsoft's competing Java implementation, which was full of incompatibilities, and that was what got Sun to revoke their Java license.  So then they developed .NET and C#, which is basically Delphi rewritten in Java syntax.

      (That is, if you don't believe that it was actually produced by Borland and stolen outright by Microsoft.)

    That would be difficult to believe.  What the fuck good would that do for Borland?

    ...umm, the same as it's done for Microsoft, obviously.

    developed by Delphi engineers as competition to Java

    So, you believe that bullshit conspiracy theory too? I suppose Microsoft is the cause of 9/11 for you as well?


    Which part of my statement do you find to be a factual error?  That .NET was developed by Delphi engineers, that it was created for the purpose of competing with Java, or that the framework is extremely similar in its "feel" to Delphi?

    (How C# coders can get anything useful done in an object-oriented language with no class references (aka metaclasses) is beyond me...)

    Stop blabbering on as if Delphi has no problems. It required you to write method definitions twice for no good reason

    A clear separation of interface from implementation, giving you a simple, clean overview of what each class can do without wading through screens full of code, is "no good reason"?

    lacked any sort of in-line documentation (like javadoc or xmldoc), reflection, foreach style enumeration, etc.

    All of those features you just mentioned are present in Delphi.

    Reflection appears to address some of the functionality constraints imposed by not having metaclasses, also. I'd say the Type returned by a object's GetType() method gives you a metaclass but I'm fairly sure that wouldn't be accurate.

    Can you take the type returned by GetType and call a virtual method on it?  Can you use it in a factory style by taking a type reference and calling a constructor?  (This is a real question, not a challenge.  I don't actually know, but from what I've heard I think the answer is "no," and that's extremely limiting.)

    Am I saying "Delphi sucks" as a language? No, I'm saying it's different. That's all. And it clearly is. It has it's advantages, but it also has it's disadvantages, like having a worse than shit IDE.

    I'm not sure what you find so bad about the Delphi IDE.  It's got some severe problems with CodeInsight (their version of Intellisense,) but that can be disabled pretty easily, and aside from that it's wonderful to work with.  In particular, its debugger and its form designer are what Visual Studio's versions of the same want to be like when they grow up.

    Weaving or regurgitating conspiracy theories that C# is really just Delphi made to look like java would just make you look like an immature asshat who clearly shouldn't be in a field where rapidly changing technologies are pretty much a given.

    Look up Joel Spolsky's "Fire And Motion" article.  He explains the whole "rapidly changing technologies" thing far better than I could.

     



  • @Mason Wheeler said:

    Stop blabbering on as if Delphi has no problems. It required you to write method definitions twice for no good reason

    A clear separation of interface from implementation, giving you a simple, clean overview of what each class can do without wading through screens full of code, is "no good reason"?

    Ctrl+M, Ctrl+O.  Or the object explorer. (C++ forces you to do that, and I find it cumbersome)

    @Mason Wheeler said:

    Reflection appears to address some of the functionality constraints imposed by not having metaclasses, also. I'd say the Type returned by a object's GetType() method gives you a metaclass but I'm fairly sure that wouldn't be accurate.

    Can you take the type returned by GetType and call a virtual method on it?  Can you use it in a factory style by taking a type reference and calling a constructor?  (This is a real question, not a challenge.  I don't actually know, but from what I've heard I think the answer is "no," and that's extremely limiting.)

    The first question seems like virtual methods on types (virtual static methods).  C# certainly does not have this, and they want it that way.  What do you use this for?  The second question: Activator.CreateInstance.



  • @Mason Wheeler said:

    Reflection appears to address some of the functionality constraints imposed by not having metaclasses, also. I'd say the Type returned by a object's GetType() method gives you a metaclass but I'm fairly sure that wouldn't be accurate.

    Can you take the type returned by GetType and call a virtual method on it?  Can you use it in a factory style by taking a type reference and calling a constructor?  (This is a real question, not a challenge.  I don't actually know, but from what I've heard I think the answer is "no," and that's extremely limiting.)

    The first question seems like virtual methods on types (virtual static methods).  C# certainly does not have this, and they want it that way.  What do you use this for?

    All sorts of things, really.  The main one is for virtual constructors, but virtual class methods (class methods are not the same thing as static methods, at least not when your language has the concept of a class reference) are extremely useful in lots of different scenarios.  Granted, some of the really simple cases can be replaced by Attributes, but for more complicated tasks they're quite useful. Why would C# "want it that way"?  Not having them available would be extremely limiting IMO.

    The second question: Activator.CreateInstance.

    OK, so you can do it with reflection if you have a type reference.  Can you obtain a type reference without first having an instance of that class and calling GetType on it?

     



  • @Mason Wheeler said:

    @Mason Wheeler said:
    Reflection appears to address some of the functionality constraints imposed by not having metaclasses, also. I'd say the Type returned by a object's GetType() method gives you a metaclass but I'm fairly sure that wouldn't be accurate.

    Can you take the type returned by GetType and call a virtual method on it?  Can you use it in a factory style by taking a type reference and calling a constructor?  (This is a real question, not a challenge.  I don't actually know, but from what I've heard I think the answer is "no," and that's extremely limiting.)

    The first question seems like virtual methods on types (virtual static methods).  C# certainly does not have this, and they want it that way.  What do you use this for?

    All sorts of things, really.  The main one is for virtual constructors, but virtual class methods (class methods are not the same thing as static methods, at least not when your language has the concept of a class reference) are extremely useful in lots of different scenarios.  Granted, some of the really simple cases can be replaced by Attributes, but for more complicated tasks they're quite useful. Why would C# "want it that way"?  Not having them available would be extremely limiting IMO.

    How does a virtual constructor work?  First hit on google shows a "constructor" called "create_figure" that takes the name of the class you want to create.  Ok, that's the factory pattern, it's not a virtual constructor.  Do you have a better explanation?

    What C# "wants", according to the designers that I've read, is not to have static virtual methods, since it makes no sense.  Even if the Type had metadata, I'm not seeing any case where it is mightily important.

    The second question: Activator.CreateInstance.

    OK, so you can do it with reflection if you have a type reference.  Can you obtain a type reference without first having an instance of that class and calling GetType on it?

    There's also 'typeof' which will get you the type.



  •  @Mason Wheeler said:

    Where are you getting that from?  Borland was in great shape up until the early 2000s.


     Look up any "neutral" development magazines from about 1994 onwards (not endorsed by either MS or Borland) and you'll find a lot more mentions of things like Visual Basic than Delphi. Admittedly that is a contrived example though, since this is mostly because Delphi didn't exist yet; closest to that, there was Object Pascal. 1995 was when Delphi was released, but in many ways they were already heading down the long road to failure, at least in the area of software development tools. Visual Basic had already gained a good foothold in what would otherwise have been ripe territory for Delphi. Most users of Delphi were migrating from Object Pascal. Borland (as a company) did in fact make great inroads and was fierce competition with MS on other fronts, such as Databases and similar applications, but Delphi never rose to the expectations of it, because it was difficult to compete with the already well established RAD tools like Visual Basic. Considering Anders left in 1996, it's difficult to get a good idea exactly how much of Delphi 2.0's improvements can be directly attributed to decisions he made,  Most of the Delphi language as it is today was not created by him; many concepts that might be attributed to his hand are really quite "obvious" features to design into a modern language.

     @Mason Wheeler said:
    Can you take the type returned by GetType and call a virtual method on it?  Can you use it in a factory style by taking a type reference and calling a constructor?


      The first case can be done using reflection; creating the instance would require either calling Activator.CreateInstance() and passing the appropriate Type to the method (and constructor arguments as an array) or, by calling the appropriate ConstructorInfo acquired from the Type; this ConstructorInfo can be acquired by using GetConstructor() and passing the appropriate arguments, which include the ability to have an array of Type[]'s that define the parameters of the constructorInfo you want. Calling that constructorInfo, which gives you the constructed object. You can even create new Type objects from Generic Types by providing the Type Arguments to CreateGenericType().

    @Mason Wheeler said:
    A clear separation of interface from implementation, giving you a simple, clean overview of what each class can do without wading through screens full of code, is "no good reason"?


    That's the problem. There was no "separation"- it's no different than C/C++ header files, where you need to state the function declaration in the header, and then state it again when you implement it. If you want to separate the interface from the implementation, you use an interface. With the Delphi method, the implementation and the interface were "strongly coupled" at the source-code level. It's analogous to if you were "forced" to create an interface for all of your concrete classes in other languages. From my understanding the original requirement in pascal to have the interface presented before the implementation was as much a decision to allow to make it easier to parse the code as it was stylistic; in fact, I suspect it was the former passed off as the latter on an ad hoc basis.

    @Mason Wheeler said:
    All of those features you just mentioned are present in Delphi.


    Yes, NOW they are... but a good question is, for how long? There is a good chance they were implemented after C#... and if not, than after java, in which case we can only surmise that Borland had abducted James Gosling. As for reflection: the only Delphi I know of that has reflection is Delphi.NET, in which case it's using the reflection inherent in the CLR and the Framework, and is not a language feature. RTTI is not the direct equivalent to Reflection; Reflection seems, from what I can tell, to be RTTI and Metaclasses rolled into one to a degree, and what's left I suspect to be covered, if only partially, by the functionality of generics.

     

    @Mason Wheeler said:
    Which part of my statement do you find to be a factual error?  That .NET was developed by Delphi engineers,


    It was. but they weren't Delphi engineers anymore, they were working at MS, and it was years after they had worked at borland. (also, I can't find any information on any other Borland employees that moved to MS that worked on the original C# spec...). Therefore they weren't "Delphi Engineers" anymore than they were Borland Engineers.

     
    or that the framework is extremely similar in its "feel" to Delphi?


    It's also very similiar in "feel" to the Java class library, ATL, MFC and OWL. This isn't because the same people worked on them, but rather because they all followed the obvious path to creating an Object-based library that works on top of the "flat" API of the operating system. Particularly since the API itself uses objects in the form of handles, and those handles naturally map to objects in the object model. Two object models feeling similar doesn't mean much, really.

     
    I'm not sure what you find so bad about the Delphi IDE.  It's got some severe problems with CodeInsight (their version of Intellisense,) but that can be disabled pretty easily, and aside from that it's wonderful to work with.


    my problem is it never works; in fact, that was why I stopped using Delphi and switched back to VB6, despite the lesser language features of VB6. Not sure which version it was. Each time I've tried to get the latest version it either refuses to install, doesn't install properly, or crashes rather infrequently. I suspect I have simply been unlucky, but it still embittered me towards the product. Also, There is simply no free IDE I can use; for .NET I could use SharpDevelop or MonoDevelop, for exampl. This wouldn't be so bad, but the IDE (again, for me, and was not the latest version) crashes somewhat infrequently.

    In particular, its debugger and its form designer are what Visual Studio's versions of the same want to be like when they grow up.


    have you even used Visual Studio lately?

     



  • @Sutherlands said:

    How does a virtual constructor work?  First hit on google shows a "constructor" called "create_figure" that takes the name of the class you want to create.  Ok, that's the factory pattern, it's not a virtual constructor.  Do you have a better explanation?

    That's exactly how (at least one implementation of) the factory pattern works in Delphi.  The form description file looks like this:

    object name: classname
      attribute = value
      attribute2 = value
      object name: classname
        attribute = value
      end
    end

    All object classes that can be instantiated by the form deserialization code are registered with it at startup, and it keeps them in a string->class reference dictionary.  When it's time to instantiate a form, the deserializer parses the tree.  When it sees an object class name, it looks up the associated class reference.  All these classes descend from a base class called TComponent, which has a constructor defined as:

    constructor Create(AOwner: TComponent); virtual;

    The deserializer calls this constructor on the class reference, which invokes that class's override of it, and ends up with an instance of the class.

    This is only one of many ways to implement the Factory Pattern in Delphi, but most of the ways do involve class references, since they're very useful.  They're a variable just like any other (implemented as a pointer to the class's VMT) and can be passed as parameters or returned from functions.  For example:

    function Filter(list: TObjectList; base: TClass): TObjectList; //TClass is the name of the class reference type
    var
      obj: TObject;
    begin
      result := TObjectList.Create;
      for obj in list do
        if obj is base then //is operator returns true if an object's type either is or is descended from a certain class
         result.add(obj);
    end;

    What C# "wants", according to the designers that I've read, is not to have static virtual methods, since it makes no sense.  Even if the Type had metadata, I'm not seeing any case where it is mightily important.
     

    OK, I'll chalk that one up to the Sapir-Whorf Hypothesis.

     


Log in to reply