Catch up on stories from the past week (and beyond) at the Slashdot story archive

 



Forgot your password?
typodupeerror
×
Programming Editorial IT Technology

Does Visual Studio Rot the Brain? 790

duffbeer703 writes "As a UNIX guy dragged kicking and screaming into the Windows world, I've never really been able to enjoy Windows programming. Charles Petzold, who is a long-time developer for DOS & Windows really laid out the reasons for me at the NYC .NET Dev group. Visual Studio and Microsoft tools force you to adopt programming techniques designed around implementation speed, not understanding or quality."
This discussion has been archived. No new comments can be posted.

Does Visual Studio Rot the Brain?

Comments Filter:
  • by yagu ( 721525 ) * <{yayagu} {at} {gmail.com}> on Wednesday October 26, 2005 @06:10PM (#13884656) Journal

    I have a good friend whose son is brilliant. He looks at anything, and instantly is taking it apart and putting it back together. In our technical day and age, he has tinkered with computers a LOT and has shown great acumen in troubleshooting and configuring not only Windows, but putting together a network.

    I tried to turn him on to coding, but he went out and got Visual Studio, and went off on his own. He came back and proudly demonstrated his various creations.

    While I liked his creativity, it was evident his depth of grasp of the workings of programming were as deep as VS allowed him. Cute screens with cute input buttons and cute input boxes. But nothing in the sense of real code.

    He is now taking some programming classes, and while he is doing well, they have begun java, and it has totally thrown him. He's getting back on his feet, but his initial foray into VS gave him some bad (and some wrong) insights into programming and languages.

    His reaction so far to having to actually write and understand code is that it is stupid. I think that's a dangerous culture to cultivate in an IT universe. He is doing well in his class but he constantly wants to go back and do the drag and drop thing.

  • Great quotes (Score:5, Interesting)

    by tcopeland ( 32225 ) * <tom AT thomasleecopeland DOT com> on Wednesday October 26, 2005 @06:10PM (#13884665) Homepage
    This is in the section where he's talking about filling in event handlers for a VB form:

    > This bothered me because Visual Basic was treating a
    > program not as a complete coherent document,
    > but as little snippets of code attached to visual objects.

    So true. You can't "read" the program, instead, you can only leap about from handler to handler. And another good point when talking about a XAML demo:

    > It was very, very cool, except that the 12 tick marks
    > of the clock were implemented in 12 virtually identical chunks of XAML.

    I'm not sure about this one - seems that one of the few times that duplicated code is OK is when it's in generated code; i.e., in a JavaCC-generated parser. For everything else, there's CPD, the Copy/Paste Detector [sourceforge.net].
  • Force? (Score:5, Interesting)

    by b0r1s ( 170449 ) on Wednesday October 26, 2005 @06:11PM (#13884673) Homepage
    They allow and perhaps encourage, but they don't force anything...

    Visual Studio (VS newer than VS 6, up to and including VS 2005) is in the top 3 products MS has ever produced (behind MS Office and MS SQL Server). Powerful, flexible, and yes, it allows for very rapid development.
  • who's fault is that? (Score:5, Interesting)

    by conJunk ( 779958 ) on Wednesday October 26, 2005 @06:17PM (#13884716)
    I tried to turn him on to coding, but he went out and got Visual Studio, and went off on his own. He came back and proudly demonstrated his various creations.
    Well come on. When I was a kid my down sat my down in front of Apple BASIC on our IIgs. When I was little older we got THINK C. Whoever started this kid off in Visual Studio has some 'splainin to do.

    There's a reason we start with printf("Hello World."); and not with dragging a text box into a big white rectangle.
  • by Amouth ( 879122 ) on Wednesday October 26, 2005 @06:19PM (#13884729)
    i know many people that code.. some of them ar die hards and want notepad/vi/joe others want a full blown ide and try not to look at code.. the die hards are the ones that make quality software the others make nice looking stuff.. personaly i fall just short of the die hard.. i am mainly in windows so i use editplus, a wonderful app.. and only open VS when i want to play with laying out forms because well it makes sence.. personaly i hate the way they have the code interface.. it is almost like they don't want you to be there
  • by erroneus ( 253617 ) on Wednesday October 26, 2005 @06:23PM (#13884768) Homepage
    Is it good or bad? I can't tell you. But the more disconnected from the environment and the machine, the less comfortable I feel about programming. Then again, the only program languages I know are Assembler for 6809, general forms of original BASIC and C. Object oriented stuff more or less caused me to lose interest in programming because it was increasingly difficult to imagine what the computer was really doing when it was executing my code. With BASIC and C, I can mentally write the assembler code and understand what's going on.

    So... yeah I can see where programmer's eye-candy would be a major distraction for a programmer just getting started. But "back in the day" useful code could be written in Basic and C... wasn't complex or beautiful but served some purpose. In today's visual environments, it's not too hard to imagine kids getting REALLY bored with making meaningless code that doesn't look like the apps they are accustomed to running... but it's that meaningless code that really drives apps right?

    Maybe I'm missing something important (and I probably am) but my initial impressions of graphical RAD tools are that it's a lot of flash and bluster but doesn't inspire a coder to write code.
  • Feh. (Score:1, Interesting)

    by Black Parrot ( 19622 ) on Wednesday October 26, 2005 @06:29PM (#13884807)
    I'll take a text editer and CLI over an IDE anytime.

    Ok, not anytime. The IDE search & jump facilities are extremely useful when you first sit down to work on a code base that you aren't familiar with. But for my own code, or for others' code that I've worked with long enough to understand reasonably well, I find IDEs a nuisance.
  • by G4from128k ( 686170 ) on Wednesday October 26, 2005 @06:35PM (#13884858)
    From what I have seen, Visual Studio seems to automagically impose a bunch of programming cruft on any project. The default code structures make it hard to fully understand the what and why. In contrast, Hyerpcard [wikipedia.org] let the programmer draw all the UI elements with a Drawing tools palette and easily add event-driven code into each UI object (Cm-Option-Click took you right to the code space of a UI object). A simple message passing heirarchy let UI messages flow intuitively from UI objects such as buttons to the card with that button to the background of the card to the file (called a stack) that contained all the cards. In short, Hypercard provided an excellent interface for creating interfaces.

    Hypercard had some serious limitations (no data structures, monochrome, single-user applications, sometimes slow on machines under 50 MHz, etc.), but it had a very nice approach to both constructing UI-intensive applications and an extremely fast edit-run-debug cycle.

  • by _xeno_ ( 155264 ) on Wednesday October 26, 2005 @06:36PM (#13884870) Homepage Journal

    Eclipse does something like IntelliSense, but it does it correctly, assuming his description of IntelliSense is correct.

    Basically, Eclipse doesn't do anything while you're typing. If you type out "id" and a space, it stays "id" with a space after it. In fact, Eclipse won't do anything if you just type "id." It will only start offering suggestions after you enter a period to access an object's properties and methods. Even then, if you're typing fast enough, it won't pop up anything. If you pause, it will display a list, but it won't alter your typing unless you press enter. So if you have a new object, and you decide it needs an "id" field, which you haven't defined yet, you can simply do "object.id = foo;" and Eclipse won't replace "id" with anything. (It will, however, flag it as an error, since "id" isn't defined in this example.)

    Now there's another feature of Eclipse's implementation: pressing Control-Space anywhere a Java identifier can go will bring up a list of identifiers that can fit there. (This includes things like in doc comments.) So if you don't want to type out "ExcessivelyLongInterfaceNameInterface," you can just type "E" and hit Control-Space, and up will pop a list of everything that starts with "E." However, it will NEVER replace what you're typing, until you press enter. Continuing to type will further refine the list, so if you type "x" after popping on the list above, it'll further refine the list to things that begin with "Ex."

    This gives you all the power of Microsoft's IntelliSense (something I missed when going from Visual J++ to Java 1.2 all those years ago), but causes none of the "don't do that for me" problems the author of the article was complaining about.

    I don't think his complaint was the concept of code assistance, it was Microsoft's implementation.

  • by ankarbass ( 882629 ) on Wednesday October 26, 2005 @06:40PM (#13884903)
    No offense,

    But, taking stuff apart doesn't make you brilliant. Most of us geeks took things apart when we were kids. People around us said the same things you're saying about so and so's kid. The kid is stumped with java because he's having to go beyond instant gratification and actually learn something. There is a fundamental difference between just discovering random facts and learning ideas that have depth. Just because he can play video games or memorize oodles of random computer facts, or fankly, even put a network together, doesn't mean much. I'm not saying the kid isn't smart, most geeks are "smart", few are brilliant.

    It's good for him to struggle. He'll find out if he's really brilliant. His response that the ideas are stupid is just his ego combined with youth. Does he think math is stupid too?

    My point is that visual studio isn't the problem. The problem is thinking that mucking about with computers is equivalent to learning difficult things. Whipping up some crappy kid-app in Visual Basic is about as difficult as Whipping up some crappy speakers in woodshop. It no more makes you a programmer, or dare I say, a computer scientist, than building the crappy speaker makes you an acoustic engineer.

    The kids problem isn't visual studio, the kids problem is that the stuff he's done requires tinkering and doing but no hard thinking. Now he's being forced to think and it sounds like he's finding out that it's not quite as easy as just doing. That's good!

    ymmv.
  • by pv2b ( 231846 ) on Wednesday October 26, 2005 @07:00PM (#13885024)
    ... you mean where you modify code at runtime while running it inside a debugger?

    Get on Mac OS X, and start coding using Xcode. You may drool once you find the Fix & Continue (ZeroLink) feature. :-)
  • by tom8658 ( 899280 ) <tomd&uky,edu> on Wednesday October 26, 2005 @07:03PM (#13885048)

    This year our computer science department switched to Visual Studio, and I can say without qualms that they couldn't have made a worse decision. Now we are forced to use VS.NET because the professor can't run the programs to grade it without .vcproj and .sln files.

    Fortunately, this is not my first foray into C/C++, and I am quite used to writing programs in vim and compiling on the command line at my job, so usually I just import the source into VS.NET and compile to make sure it doesn't produce any strange microsoft errors (my favourite is the crap about "unable to verify assembly source", I'm looking right at the assembly source, why can't I verify it myself?). However, this does not bode well for my classmates. For one, the cost of using linux/bsd is now prohibitive: it's extremely inconvenient to haul ass down to the lab every week just to import some source.

    It seems like the focus, even in obtaining a cs degree, is now speed of implementation instead of speed of code. I realize that this is common business practice in the real world, but do we really want all of our new cs graduates to be a horde of IDE-dependant windows programmers? I know that I dont look forward to working in that kind of environment, or running software produced in it either.

  • It's not the tool, (Score:3, Interesting)

    by bmac ( 51623 ) on Wednesday October 26, 2005 @07:15PM (#13885159) Journal
    it's the brain using it. A program is only as good as its
    organization. This is why large programs often fail or are
    terribly bug-ridden. The complexity of software grows much
    more than linearly with the number of lines of code. VS.NET
    is an excellent tool for program editing, but it has its
    limits as to the number of files (and, hence, data structures)
    that it can present coherently to the user.

    The challenge for programmers is always how much of the
    design can be visualized in the brain. As much as I like
    VS.NET, it does not allow me in any way to visually represent
    my internal organization of my software, therefore my brain
    is the limiting factor. (AAA, Visio sux and I don't have
    the cash for Canvas X).

    But, hey, what do you think I do on my machine, other than
    read slashdot :-) We programmers are some of the only
    engineers who create our own tools, so stop complaining, and
    get to coding!

    Peace & Blessings,
    bmac
  • by TheNetAvenger ( 624455 ) on Wednesday October 26, 2005 @07:38PM (#13885327)
    Whether the 'old' timers (myself being one) like the abstraction of low level coding and what is becoming mainstream, this is an evolution of development.

    Visual Basic back in 1992 was in of itself a massive advance for this type of programming and programming understanding. Look at all the 1000s of VB applications from this time period by people that truly had very little coding experience.

    However, some of the VB programs from this time were quite effective.

    I think the biggest injustice to programming and the programming community as a whole, is the lack of UI guidelines, and understanding usability and User Interaction and User Flow.

    How many times have you grabbed a GOOD program, with brillant LOW LEVEL coded features, but the interface to the application work about as well as a broken pay phone.

    So sure VS can remove the user from 'low level coding', but this is NOT always a bad thing.

    As development EVOLVES, there is NO REASON with the AI in the development tools and the AI in the code produced by these development tools should not be used. Why should a person in the 21st century truly have to fully understand memory allocation, advanced recursion, or even see program past advanced event handlers, as that is what programs ARE - event handlers...

    Why do we have to beat down development tools just because they remove the developer from having to DO THINGS THE Tool or Compiler should DO FOR YOU? This is what makes advanced devleopment and the progression of better applications bloom.

    Go back to the VB of 1992, it was a major eplosion for application availability. Sure some of the programs were crap and from people that had no idea of coding, but there were also serious developers that didn't want to take time to screw with all the crap that a developer in THIS DAY and AGE should not have to do.

    I welcome development tools advancement. Sure there is some fundamental coding knowledge that everyone should know, but you can't blame these tools for this.

    I could have the same arguments about many projects in the Open Source world, they are brilliant, but since the coders have little undertsanding of usability or UI guidelines, they applications are virtually worthless to anyone that is not a geek.

    I'm not even arguing VS is the best set of tools out there, Borland still makes some really great development environments. I still like Delphi, and am amazed of how tight the code it produces, and yet how much it DOES FOR ME, even if I do know how to do the things it is doing for me is irrelevant.

    We not only need to support development that is beyond a text editor and command line compiler, but we also need to support development tools that try to structure and help users with usability for the people that will be using the applications. PERIOD.

    VS and Borland products are pretty good, but they could even be better - imagine a development environment that gives a flag when it notices a break in usability, or gives a compile warning after it 'intellectually' sees the appliction has many inconsistencies that would confuse the user.

    Additionally, VS is even dated for what the new Microsoft Development and technologies are introducing. VS2005 barely touches the abilities of future Windows development - that is why the 'Expression' like of products will be used to augment the UI and User experiene for VS applications.

    Give the world a couple of years, and the foundations of 'native' understanding being built into the next generation of Windows Vista, WILL change not only the user experience, but the development world. Leapfrogging concepts of today.

    Go look up some of the concepts Microsoft has introduced and HAS that are often overlooked, go do a search on the last PDC. There are things in Vista that move development to a new level of understanding and functionality for not only developers, but what the users will start to see in the next 5 years.

    It is like one of the brains behind the XAML and XPS systems in
  • by istartedi ( 132515 ) on Wednesday October 26, 2005 @08:05PM (#13885521) Journal

    I can see how you could say that about VS, but I think it applies to a lot of things. If you don't know (or want to know) anything about how computers work, then you could get lulled into just clicking the pretty widgets and filling in the blanks on all the things the wizard does for you. Myself, I use VS but almost always start with a blank project and build from there. When I was first learning in the mid 90s, I got roped into using MFC because of it, but experience has taught me to avoid proprietary stuff like that--and by "proprietary" I mean "specific to a particular system". You could make the same argument against using shell scripts with calls to commands found only on your favorite distro of Linux. If you aren't aware of the existance of a "Linux standards base" or "C99" you are going to get suckered into writing something "trendy" when you didn't mean to. Then you'll find yourself re-writing it 2 years later when the "release often" cycle has made your efforts irrelevant; but I don't hear anybody saying Open Source rots your brain. You have to learn to defend your brain. Defend it against tools that hide too much, defend it against trendiness, defend it against outdated designs touted as the latest thing, defend against marketing, and hold on to what stands the test of time. If you have a good brain, a bad tool might keep you down for a while, but you'll learn, and you can actually "un-rot" your brain.

  • Re:Huh? (Score:5, Interesting)

    by Tuross ( 18533 ) <darthmdh&gmail,com> on Wednesday October 26, 2005 @08:32PM (#13885705) Homepage
    I've seen this sentiment a couple of times in this article, so I choose you to respond to. Congratulations ;)

    Some background first: I dropped out of University for two reasons, first I wasn't sure if I wanted to focus on software development or network administration and I wanted some industry experience. Second, there were far too many people there who could memorize textbooks and regurgitate the examples, and hence go exceedingly well in examinations which seemed to only test this attribute; yet who could not understand yet explain the concepts being "taught".

    That group I labelled, through its abundance of occurrances, the Visual Basic programmers. Using the term "programmers" loosely, of course. They could paint applications really well (drag & drop little GUI shit around in Visual Studio and come up with something tangible) but you didn't even have to take them outside of Visual Studio for them to be well out of their depth (which they obviously are when you do). Just ask them to explain what any of the Visual Studio-generated code does. They have no freaking idea what their code does, they just know if they drag this here and drop that there and click here and type that, that they get foo.

    Now, in a culture when IT professionals are treated less than dirt, particularly by those in management, the focus is on generating Maggi programs. You know, the classic 2-minute noodles. Tangible results ASAP, don't care that the weird geeky stuff looks like spaghetti and the cook can't tell you what its made of because they simply don't know. All they had to do was drag some shit out of a package and drop it into a saucepan and stir for a little bit.

    Nobody denies that Visual Studio has features that are useful. What is under scrutiny here is the fact that it also has features, and there's some crossover, that enable complete dimwits to produce the kind of results management is looking for in the time they are looking for, leaving those who can actually design and develop software looking incompetent. The PHB doesn't care that the real hacker's design is far superior and the implementation robust, it took 4 weeks longer (because they understood the entire problem and handled all the cases) and dammit the client wants it NOW, who cares that its crap - that's just a small detail that can be fixed later - potentially for more money. This then forms a culture that a particular breed of "programmer" - namely those that can only use Microsoft tools and work solely on the Microsoft platform - are better and that Microsoft solutions are better; not because they are but simply because more quality people and alternative solutions are shut down before their full benefits are realised, because of the impetus on getting a quick buck and must have things NOW.

    I work with someone who only last week could not comprehend exactly how they were going to go about doing a particular job as Visual Studio was not installed on the server. The job involved editing some XML config files and doing some minor Python programming. Visual Studio by default has absolutely zero Python support (Activestate and presumably others have $$$ plugins for it, but that's not the point). That particular sentiment came the day after I installed Vim (with the Cream suite - I do that on Windoze boxes to stop Windoze gumbies whining about the default keybindings - another symptom of "cannot cope outside the box") while they watched on, and we did some of the work together. The whole "outside the box" thing annoys me because this VB programmer culture festers this idea that those who do it the Microsoft Way are somehow immune to the requirement to be flexible. Case in point, there's no requirement for them to "put up with" using something other than Visual Studio - yet you take someone with Unix experience and the onus *is* on them to adapt. I know its because Unix people are far more flexible and generally smarter and more capable, but in reality it translates to our skills being taken for granted
  • Re:Help! (Score:3, Interesting)

    by killjoe ( 766577 ) on Wednesday October 26, 2005 @08:48PM (#13885779)
    This happened to me. For many years I worked on a PHP web site. My setup went like this.

    Apache server with a virtual host to my home directory.
    Mount home directory via samba to my windows workstation.
    SSH into apache machine for cvs access and other tools like grep
    Jedit for development.

    Now I work like this.

    ASP.NET using visual studio.
    IIS running on local machine.

    I can't tell you how less productive I am using ASP.NET. It's mind boggling really. First of all visual studio is a pig, it sucks up virtually all the ram on my machine, just opening projects takes ten times longer then it took opening up jedit. Secondly the build cycle is insane. Not only does it take a long time build this site (probably thanks to crystal reports) but building also expires your session so you have constantly log back in and navigate to the page you were working on. Just making even minor changes and seeing the result turns into a painful experience like swimming in molasses. I guess I don't also need to rell you guys that sourcesafe and Crystal reports sucks ass do I?.

    I honestly thought I would be 10 times more productive in this new project because I would be using l33t tools like VS.NET but I was sorely disapointed. I will never take on a ASP.NET project again, it's just too painful.
  • Re:Help! (Score:3, Interesting)

    by digidave ( 259925 ) on Wednesday October 26, 2005 @09:40PM (#13886048)
    I feel your pain.

    I once worked on a Websphere 5 app where the project was in Websphere Studio. Any slight change to the app required using the deploy feature in WAS Studio and on my 900Mhz laptop that took 40-50 minutes.
  • Ok, back in 1995 (Score:3, Interesting)

    by orasio ( 188021 ) on Wednesday October 26, 2005 @09:44PM (#13886067) Homepage
    Maybe ten year ago, Visual Studio was great. We all used it.
    Now, we have Eclipse, and _I_ have GCJ, and SWT. And I don't need Visual Studio to make a standalone dialog EXE.
    So I don't use it.
    Or maybe it's the fact that I can use Eclipse for my web development too. And the same with Java.
    Or maybe it's that Eclipse does so much more than syntax highlighting. Refactoring is solid with Eclipse. CVS support is flawless (to the extent of the capabilities of CVS) . Working with Eclipse feels, now, the same that Visual Studio felt like back in 1995.

    That, in the technical realm, aside from the fact that Eclipse is free. As in beer, and as in, for example, being available from here to eternity (another nice side-effect of free software).
    so you will never have to retrain, or recode, or change the language you use.
    Java with Eclipse rocks.

    Of course you could use other languages with Eclipse, but that's what _I_ like.
  • by twitter ( 104583 ) on Wednesday October 26, 2005 @10:42PM (#13886358) Homepage Journal
    They allow and perhaps encourage, but they don't force anything...

    You don't have to read far into the article to see what he's talking about, so I suggest you do that instead of jerking your knee like that. There's real force here by the very nature of closed source. The whole way the code base is acquired and maintained leads to this. The inner ugliness of greed, selfishness and paranoia is manifesting itself in a horrid tool that you will have to use if you want to play their game.

    The author notes that Microsoft's API now includes some 60,000 methods and properties, an impossible number to get your head around without an aid. The aid is IntelliSense. I'll let him take it from here:

    And yet, IntelliSense is also dictating the way we program.

    For example, for many years programmers have debated whether its best to code in a top-down manner, where you basically start with the overall structure of the program and then eventually code the more detailed routines at the bottom; or, alternatively, the bottom-up approach, where you start with the low-level functions and then proceed upwards. Some languages, such as classical Pascal, basically impose a bottom-up approach, but other languages do not.

    Well, the debate is now over. In order to get IntelliSense to work correctly, bottom-up programming is best. IntelliSense wants every class, every method, every property, every field, every method parameter, every local variable properly defined before you refer to it. If thats not the case, then IntelliSense will try to correct what youre typing by using something that has been defined, and which is probably just plain wrong.

    ... To get IntelliSense to work right, not only must you code in a bottom-up structure, but within each method or property, you must also write you code linearly from beginning to end just as if you were using that old DOS line editor, EDLIN. You must define all variables before you use them. No more skipping around in your code.

    Sure, you can program without Microsoft's new autowrong tool. I can hardly stand typing text in an editor that changes things for me, and I know such a tool would drive me nuts

    But then where are you? There's not a man page and a book, the author points out, would be 1,000 pages long. The Cathedral is Byzantine indeed, and you might as well abandon Microsoft all together as soon as you abandon their tools. This mess is undoubtedly pathologically redundant, full of bugs and represents the zenith of non-free programming. People who are not free to share their work duplicate it all day long and Microsoft has amassed it all by purchase into a giant Frankenstine. Yet, in typical Microsoft style, it's "Do as I say and be grateful." The control freak that Bill Gates is made manifest.

    Like you, I have to dissagree with him about the inevitability of this kind of hen pecking. The purpose of higher languages and code reuse is to allow abstraction. A proper tool will give us hints based on natural language questions about what we want to accomplish, much the way a experienced human mentor does today. You give it a flow chart, it comes up with answers. Instead of locking us into an insane framework, it will offer us rational choices of methods that work and let us zoom into and modify details as we see fit.

    You won't find a tool like that coming from Redmond, ever. They do not want you to understand or modify their code. They simply want you to use it. Anyone who can understand their mess is looked on as competition, to be purchased or ruthlessly exterminated.

    All of this is consistent with the Microsoft way and the result is what you see, a network overrun with spam and botnets, friendly only to those who think they own it.

  • by jbrocklin ( 613326 ) on Wednesday October 26, 2005 @11:09PM (#13886488) Homepage Journal
    It was at the bottom of the page as a footnote:

      1It was the late 70s. I was working for New York Life Insurance Company at 51 Madison Avenue, programming in PL/I on an IBM 370 via TSO (Time Sharing Option) and an IBM 3278 terminal. I was using a new-fangled "full-screen editor" called FSE to edit my source code. At one point I pressed the Backspace key and instead of the cursor moving backwards as is normal, the entire screen moved left one character, including the frame of the editor, with the beginning of each line wrapping to the end of the preceding line. It was as if the entire frame buffer shifted. I pressed the Backspace key a couple more times, and it did the same thing. Then it started going by itself, with the lines circling around the screen and right up through the top until the screen was entirely clear. Then we called the IBM repair guy. I was very eager to tell him what happened and hear his diagnosis, but that's not they repaired 3278s. Instead, the repair guy had a box full of spare circuit boards. He swapped them in and out of the machine until the terminal worked again.
  • Windows a la Unix (Score:4, Interesting)

    by cheezit ( 133765 ) on Wednesday October 26, 2005 @11:23PM (#13886542) Homepage
    I had the a double stroke of good fortune when I learned Windows development:
    1) I worked in a shop that did cross-platform development with core libraries that had to compile and run across various Unices and also Windows (95 and NT 4.0 at the time).
    2) someone turned me on to Petzold as the best place to start.

    Petzold's uncompromising focus on the code and away from the tools (like VS) allowed me to get used to doing things the "hard" way---rolling my own message handlers, hand-editing .rc files, etc.---instead of using VS's horrible tools like the godforsaken "ClassWizard". And while it took more time in some cases, it allowed me to carry over lessons from the Unix world. Between that and "Deep C Secrets" I was feeling good...

    Unfortunately, the advent of COM/COM+/DCOM prevented this approach from working for too long. For instance, magical precompilers that generate binary files that must be linked into your project to make it "just work"---I'm looking at you, "tlb."
  • Oh dear god, that gives me nightmares. MFC, Hungarian notation, C++ spaghetti code that makes absolutely no use of classes, and an API from hell.
    And let us not forget the wonderful code examples given in the Microsoft documentation that you can cut'n'paste into a project, where they will compile without error and then fail silently at runtime. (CreateFile, anyone?)

    But then, what do you expect from an outfit that believes a BOOL is tri-state [microsoft.com]. (one would have thought that would have been fixed by now, but nooooo....)

  • by morcego ( 260031 ) * on Wednesday October 26, 2005 @11:48PM (#13886673)
    AT LAST!!!
    I know someone was on the same page :)
  • by Anonymous Coward on Thursday October 27, 2005 @12:18AM (#13886815)
    So you guys can now do what I could do 30 years ago in APL.
    Hey, I guess you're starting to catch up!


    Yeah, we had this like three levels up the thread.
    Edit/resume in a COMPILED language. 30 years ago you interpreted APL and that's why you had edit/continue.
  • by glavenoid ( 636808 ) on Thursday October 27, 2005 @12:51AM (#13886946) Journal
    And I agree compleately with this.
    The important thing, For what it is designed for is exactly right on the button.
    VS and VS.NET, are *primarily* rapid application development environments. They try to serve the developer by offering all the cool intellisense mojo and whatnot, and try to serve the employer of said developer by trying to make said developer more productive.
    I for one think that MS does a pretty damn good job of this...
    However, I can see the validity of Mr. Petzold's complaints. The code that VS and VS.NET generates can be rather obtuse at times. Intellisense can get REALLY annoying. Sometimes it really does feel like VS is trying to hijack one's code, but you know what? We as developers don't need to use it. I often find myself using some arbitrary text editor and calling the freely downloadable win32 SDK or .NET SDK to develop Windows applications.
    And I like it this way.
    But when my employer comes around and asks me why I've spent the last hour hand rolling a complex dialog with property sheets and all that ballyhoo, when using the Dialog Editor or Windows Forms Designer would have taken ten minutes, what do I say? "Uh, I'm just pining for the days when men coded their own resources, with their teeth!"

    But then again, I had trouble finding my belly button today, so maybe VS really does make me stoopider...

  • Fun, huh? (Score:3, Interesting)

    by 87C751 ( 205250 ) <sdot AT rant-central DOT com> on Thursday October 27, 2005 @12:28PM (#13889692) Homepage
    Well, as long as you implement booleans as ints, they are 2^32-state variables - that's fuzzy logic, you know ;).
    'Zackley! There's really more fun to be had, since sometime in the near past, MS actually added a 'bool' type (but not to be confused with 'BOOL').
    If there is an error, the function returns -1, which is nonzero, which means that a message other than WM_QUIT was retrieved. I presume that the first paragraph should read "the value is greater than 0", but I can't be sure, based on this documentation.
    I s'pose one could say that an error is a "message other than WM_QUIT". Just not the "message" one might have been expecting.

    I usually say that this requires one to write a what_is_truth() function.

    confusion generates errors.
    At MS, confusion is Job 1.

Never test for an error condition you don't know how to handle. -- Steinbach

Working...