Slashdot Mirror


Why Develop On Linux?

Kidbro asks: "I'm working as a programmer stuck in a Windows environment and know a really cool coworker here who's one of the best developers I've met. He is a Windows coder, though, and today he asked me why he should develop under Linux? What makes it easier? I pointed out the big flora of tools for manipulating files and text, I pointed out the stability of the system - things I as a normal user and hobby developer on the platform think are cool. 'Yeah, but still.. that has little to do with the actual code development, it's merely some fluff beside that eases up maintenance a bit' he replied. Now, since I practically also only have developed under the Windows platform I couldn't really counter this. So I'm asking this crew here, what are the real advantages with developing under Linux?"

After spending the last year developing under Windows in my previous job, I can say that I would highly prefer the freedom of developing with Open Source rather than depending on a closed environment. I have had numerous problems with the preponderance of binary files created by Developer's Studio (and ActiveX's dependence on the Registry) and the the behavior of just building my project. I prefer makefiles and source code, where everything is specified in text and there's an open syntax describing all aspects of the build process. Here's question I would like to ask of all the Developer's Studio users...how can you take an existing MFC SDI (single-window) project and convert it to an MDI (multi-window in a single pane) project? If it doesn't involve creating a new project from scratch, I'd be highly surprised.

So what are your thoughts on this subject? Do you prefer the slicker, highly integrated commercial environments, or do you prefer open ones?

676 comments

  1. integrated development by MooseMunch · · Score: 2

    where I spend my days we mostly program for windows, but we do our programming on a Unix (solaris) platform. Why? The multi user environment provided by Unix make file sharing a breeze. Code control systems (CVS,SCCS,etc) are more widly avliable (and I think more through). My answer, it's easier to share :)

    1. Re:integrated development by Jon+Erikson · · Score: 3

      There are code control systems available for Windows as well - PVCS (nasty), SourceSafe (even nastier) and WinCVS, which is just a GUI wrapper around CVS. I wouldn't say that Windows suffers in this department.


      ---
      Jon E. Erikson
      --

      Jon Erikson, IT guru

    2. Re:integrated development by Jon+Erikson · · Score: 1

      You just share them across projects and then they'll get kept in sync whenever you do Get Latest Version IIRC. Of course, SourceSafe is not my strong point (thankfully), so I could be wrong.


      ---
      Jon E. Erikson
      --

      Jon Erikson, IT guru

    3. Re:integrated development by MrBogus · · Score: 1

      NT has this information, of course. But for the life of me, I can't figure out how to get the command-line to display it! (You have to dig through various dialogs in the Explorer.)

      --

      When I hear the word 'innovation', I reach for my pistol.
    4. Re:integrated development by Opinionated+Newbie · · Score: 1

      I cannot agree that Windows doesn't "suffer" in SCM. The issue is not so much the SCM tool (CVS, PVCS, RCS, Perforce, or SourceSafe), but the development tool being managed.
      Windows tools tend to save source as blobs. Linux/Unix tools have the tradition of saving code, makefiles, scripts, even documentation as text files. This is far superior from a SCM point of view for several reasons, not the least of which is superior debugging (the essence of debugging is isolation, and you can't do a diff on a blob).
      So before we even discuss stability or openness, Windows tools are a lap behind in the race.

      --
      ---- "When I grow up, I'll know far less"
    5. Re:integrated development by ScripKitty · · Score: 2

      Unix (tm) was developed by programmers. In a sense Unix -- and Linux & BSD -- are IDEs! How many Windows (tm) developers use something like MKS or UWIN? There are alot of really useful tools with Unix and others that facilitate software development: Gotta search through an executable's symbols? Make an editing change in a raft of files? I could go on, but Unix-like systems seem to come with alot of useful tools; so much of software development is text processing -- no way around it.

    6. Re:integrated development by vfats · · Score: 1

      Ironically my situation is the exact opposite. Our team develops for NT and Solaris, while personally I use vi on Solaris, most of the other developers use MSVC and then ftp the files across! Easier debugging, better IDE (than the Sun Workshop - which I don't use either) are the reasons they cite. The source control argument is spurious, most source control apps are available on NT, certainly the one we use (Clearcase) has more features on NT than Solaris - but is fully cross-platform.

    7. Re:integrated development by vfats · · Score: 1

      most software is developed by programmers :)

    8. Re:integrated development by j-pimp · · Score: 1

      I think its better put as Unix software is developed for programmers. They are like a mecanics tools, designed to do the job well and effeciently. They are not designed to be intuitive to those unfamilar with there operation. While most people posting/reading this articles discussion could go on and on about the effeciancy of the might bash prompt, if you stop and think about it you wouldn't find it intuitive.

      --
      --- Justin Dearing http://www.justaprogrammer.net/ We're just programmers.
    9. Re:integrated development by Ergo2000 · · Score: 1

      I have to disagree. The only things stored as blobs in most Windows development tools are things that are blobs : Graphics, etc. A couple of exceptions to this rule have occured in the past but that is changing (i.e. Delphi now saves form layouts as text). As such you can fully do compares, histories, etc. Windows tools are equal to their UNIX compatriots.

    10. Re:integrated development by vfats · · Score: 1

      Hmmm.... personally I see the OS as the kernel, along with the really core services.
      Essentially most OS's provide a C level API, accessable either through a command line shell, or some sort of GUI. I do not consider these to be really part of the OS.
      After all, I use the Korn shell on NT, with all my favourite '*nix' tools. *But*, they are not *nix tools are they? They are simple file manipulation tools, which could be ported to any platform. To say otherwise is to suggest MacOS and Windows are Xerox systems :)

      The tools are *not* the OS.

      Let's not forget NT what developed in C, by the VMS guys, and is POSIX compliant (or so MS claims) :)

    11. Re:integrated development by MrTwisted · · Score: 1
      Our shop currently develops for Windows 98, NT, Solaris, Linux, HP-UX, BSD, Irix, plus a few other platforms. Currently we use a combination of PVCS and SourceSafe. Yes, we know these tools are horrible.

      PVCS: Awkward, with very limited query ability. Only submitters of change requests can close them, no security (plain text http transfers), etc.

      SourceSafe: - not safe at all It's database is stored in tens of thousands of files, 1 file missing and the database integrity is lost. (yes this has happened to us, thank god for backups). Also, good luck trying to access it from any platform other than Windows. This particularily hurts me in that I have 1 Windows box whose sole purpose is accessing SourceSafe.(I also have 5 Solaris boxes and 2 linux machines).

      We are currently moving to CCC/Harvest by Computer Associates. I understand it has clients for HP-UX, Windows, Irix, and Solaris. I would be interested in what your experiences with this are?

    12. Re:integrated development by JonK · · Score: 1

      kill -f #pid. It's in the ResKit, free for download from the evil Microsoft - try reading the documentation some time before spouting off.
      --
      Cheers

      --
      Cheers

      Jon
    13. Re:integrated development by DrSkwid · · Score: 1

      That's one advantage of doing your development work on UNIX systems - unlike Windows the OS doesn't go senile.

      Don't underestimate the significance of this.
      I spent a couple of years building up an NT based web server tailoring to our needs. Adding server side activeX and NT services and the like. I tired to be a good boy and keep things in sensible places and understand what was going on.

      Eventually the machine started to crawl along and would do unexplainable stuff like forgetting it's IIS settings or just not starting some services. Try and kill 'em and the OS says you can't or the service is not responding or you don't have permission.

      With 3 BSDi servers sat there for 4 years happily servicing 2000 users and nt (and me) struggling to keep on top of 25 or so I ended up wishing I'd not been the one who decided to go with nt. I liked your programming book Mr Petzold but I wish I'd never heard of you now.

      Binary configuration files are just plain stupid.
      The registry is a very silly idea.

      I watched my colleague in the neighbouring company ere-enter the details of 200 web sites in to IIS when his server decided to corrupt his binary IIS config file. 10 solid hours of crap (and it started on a Friday afternoon at 2pm).
      I was very happy that the majority of our stuff just sits in /etc/namdb and /apache/conf/httpd.conf


      .oO0Oo.

      --
      There are places where the networks are not touching,and there are places where they are-Boeing's Lori Gunter
    14. Re:integrated development by DrSkwid · · Score: 1

      too right
      getting task manager up is one thing but killing an NT service.....
      hit that power button
      I've never had to power cycle BSDi iirc
      NT - the button has that dirty look with a clean middle
      .oO0Oo.

      --
      There are places where the networks are not touching,and there are places where they are-Boeing's Lori Gunter
    15. Re:integrated development by JonK · · Score: 1

      Agreed, although given the nature of the software life cycle (god, I hate that phrase), it's rarely a case of making software maintenance free as making it easily maintainable: requirements change and (small) changes in requirements shouldn't require large changes in the code-base if the software's been designed correctly.
      --
      Cheers

      --
      Cheers

      Jon
  2. Well, it's natural... by Dungeon+Dweller · · Score: 5

    C and Unix as they stand fit hand in hand, they were born together. This makes programming on any unix-like platform MUCH easier. There are a ton of libraries to work with that have code that you can see and hammer bugs out of. There are a TON of languages, and more compilers and interpretters than you will ever find under windows. The command line is easier to understand. There is less garbage to mess around with. Pretty much, coding in Linux is coding just like you learned it in school. Coding in windows is, sort of like writing a biography about a person who won't tell you anything about themselves.

    --
    Eh...
    1. Re:Well, it's natural... by vulgrin · · Score: 2

      Great post... I think you hit it directly on the head. I'm trying to learn c++ now, and after years of misstarts by trying to do windows programming, with MFC and all its guckiness, I finally started doing some simple command line stuff under linux.

      Man... so much easier and it actually makes sense! I'm also quite impressed that I can, with my rudimentary knowledge, can look at the Linux kernal code and actually follow it, where-as a calculator program written with MFC boggles my mind.

      Simple is Better

      --
      I sig, therefore I am.
    2. Re:Well, it's natural... by DeadSea · · Score: 2
      I used to code only on windows. After I was introduced to linux, I found that the command line was amazing and that gcc and other gnu apps just rocked.

      From the cygwin project, you can get bash and other gnu apps (including gcc) for windows. Now my windows interface and linux interface are very similar. I can comfortably develop from either. The OS should just get out of your way. I can make either do that.

      However, each has tools that the other doesn't that I find indespensible at times. My suggestion is to develop on both. That way your programs may end up cross platform as well....

    3. Re:Well, it's natural... by java_sucks · · Score: 2

      Bingo!! I learned how to code on a VAX VMS back in the day. I had played around with little programs in Win 3.xx and Win 95 but hated it. It seemed confusing and I never really felt any passion for it. When I discovered Linux a few years ago it was like being in school again only better. (no exams to worry about :)

      In the Windows environment it always felt like I was fighting everything, nothing seemed intuitive. With Linux it's just the oppisite. The *nix environment makes more sense to me, it simple and clean. The Windows environment goes to great lengths to hide things which just muddles it up. Also I'll take emacs over visual studio anyday. Now before anybody gets worked up over that let me state that it's a matter of preference for me, I'm not saying that it's better or easier for anybody else but it works for me. With Linux I feel like the only limitations are my abilty to think and be creative.

      In conclusion I would have to say that for me it's just simply matter of personal preference, your milage may vary,

    4. Re:Well, it's natural... by SEWilco · · Score: 1
      You forgot that when you are testing your program and it crashes, it does not take the operating system with it.

      Unless you're using a version of Unix running on hardware which does not isolate users from OS at the hardware level -- but this does not apply to 386/486/Pentium. Most such systems are about as old as the 286, so not many are being used for development, except for embedded systems.

    5. Re:Well, it's natural... by Fractured+One · · Score: 1

      Isnt that a result of most MFC programs being done in some form of "modified hungarian notation"

      --
      ----------------------------------------- Fractured One
    6. Re:Well, it's natural... by foistboinder · · Score: 4

      Learning C++ in Microsoft's Visual Studio environment is, in my opinion, a bad thing. A novice programmer can crank out software (the quality of which is usually poor) using MFC and the IDE's Class Wizard and not actually understand anything about the language. When faced with a task that requires actual understanding of inheritance, polymorphism, overloading, or anything the IDE can't generate a framework for, such a programmer will always get stuck (making more work for me).

      It is better to at least learn C++ in an environment that requires one to actually learn how the language works to get anything done. This understanding will be useful even when asked to work with something like Microsoft's Visual Studio.

      I once worked on the project were the technical lead required UNIX (or similar OS) C++ experience even though the bulk of the work was on Windows NT. His reasoning was that almost all people claiming C++ experience but only had Windows experience didn't know the language well enough for a complex project.

    7. Re:Well, it's natural... by pxpt · · Score: 1

      In the Windows environment it always felt like I was fighting everything, nothing seemed intuitive. With Linux it's just the oppisite.

      Thank God that I'm not the only one who feels this way...

      However, I do like the intellisense feature of Visual Studio where lists of options pop up at the approriate time. I find this speeds up the development time by providing nudges to my memory. Unfortunately, this is the only good thing I like in VS.

      I find that Microsoft products are Okay to use but not brilliant - ie they do the job but not in a satisfying way.

      Just my £0.02p worth

    8. Re:Well, it's natural... by SamIIs · · Score: 2
      Learning C++ in Microsoft's Visual Studio environment is, in my opinion, a bad thing.

      HEAR HEAR!!

      Our begining courses in CS have recently switched to VisualCafe and JBuilder, and similar graphical coding. These are great programs, because they let the coder work on a higher level. User talks to GUI, GUI talks to language, language talks to compiler.

      The problem is, all errors are still on the code level. If all compiler errors were "DUDE! You messed up that button over there." we'd be fine. The problem is that the errors are speaking in the same language the users is coding in.

      If these begining CS students already understood how to program, I might not be quite as mad. As it is, this cute drawing code is all they know.

      Sam

    9. Re:Well, it's natural... by arseydoohli · · Score: 2

      it's a bit tough to use Visual Studio within VirtualPC within Mac-On-Linux when I can just develop on plain Linux.

    10. Re:Well, it's natural... by Jenova · · Score: 1

      Quite agree, after programming C with Win32 for quite some time, I found that the switch to Linux was quite refreshing.

      I could actually concentrate on working on my program logic rather than to struggle with my code.

      I don't have to cope with strange API calls with 10+ parameters or the countless types of MS defined variables anymore. Yay!

    11. Re:Well, it's natural... by warmi · · Score: 1

      NT is this regard just about as stable as Linux.
      Linux will not crash but X often will and with GUI development that's very annoying.

    12. Re:Well, it's natural... by vherva · · Score: 1

      IntelliSense could speed up developing if it actually worked. I can understand it's slow, but it's downright ridiculous I have to wait half a minute after typing "0." while IntelliSense tries to find class members for 0. It rarely finds any... Although it often doesn't find even if it should.

      That said, similar tools are available for emacs and although they may not work any more correctly (C++ grammar is a PITA to parse), they are way faster and trimmer. I mean, 20MB browse info file and it takes 5 minutes to build it... come on!

      --
      -- v --
    13. Re:Well, it's natural... by BetaJim · · Score: 1
      When a program your developing does crash you get a core file. Debug it and find out where the crash happened at! Really saves debugging time, just set a breakpoint before the point where it bombs out and you have saved your self stepping through the whole thing!

      Now if I could discover why my parser segfaults I'd be happy! Note: don't use a C parser in C++ code :(

      --

      "Drug related crime" is a misnomer, "prohibition related crime" is the more accurate and correct phrase.

    14. Re:Well, it's natural... by greysky · · Score: 1

      From a java developer's standpoint, I definately prefer to develop under linux, as opposed to either windows or solaris. It's easier to use multiple versions of the compiler, the system can run for months without a reboot, and I can use my own machine as a testing environment for database, appserver and webserver (which I can't do under windows without going all out and installing NT).

    15. Re:Well, it's natural... by leereyno · · Score: 1

      When you were playing around with windows coding, were you by chance using MFC? If so then there is a big part of why the system was muddied up.

      I've been coding since I was ten years old on various systems. When I went to go learn how to code on windows I quickly said "screw this!" All the books and information I could find only dealt with MFC, or were heavily focused on MFC.

      But then I found Charles Petzold's book and took another look at windows. His book deals with the API itself instead of a bunch of wrappers (MFC) that only make the code more bloated and inefficient. Writing code this way is so much better. With his book you actually learn how the system works rather than relying on an abstraction of it. MFC may have its uses if you're coding something in a hurry, but if I'm going to be writing code for real, its going to be directly to the API.

      As for linux coding, I learned it after dos and before windows. With toolkits such as GTK+, the real differences between Linux coding and Windows become differences in syntax rather than semantics as many of the concepts are the same.

      I like emacs too, especially xemacs 21

      Lee

      --
      Muslim community leaders warn of backlash from tomorrow morning's terrorist attack.
    16. Re:Well, it's natural... by spectecjr · · Score: 1

      after years of misstarts by trying to do windows programming, with MFC and all its guckiness, I finally started doing some simple command line stuff under linux.

      Man... so much easier and it actually makes sense!


      Command line programming is always going to be easier than GUI programming. Regardless of Linux vs. MFC - did you know for example, that you can write ANSI C command-line apps UNDER WINDOWS?!!?!?!

      Shock, horror!

      Yep, it's all there. And Visual Studio will even generate "int main()" for you if you ask it nicely.

      Sheesh.

      Simon

      --
      Coming soon - pyrogyra
    17. Re:Well, it's natural... by Rei · · Score: 1

      I take it you haven't messed with svgalib too much? ;)

      - Rei

      --
      Hey, guys, I'm just pleased as punch to report that it's a fleet of a hundred Vogon Battle Destroyers!
    18. Re:Well, it's natural... by neowintermute · · Score: 2

      Let me just point out two things linux would really really benefit from.

      1.) An incremental linker! I've been working on a very large project in linux for the past year and I can tell you that waiting 1-5 minutes for a link is ridiculous. Both the mac and windows have this feature. Can't we do it? Let's start by appendign the new object code to the end, then finding all the references to the old object and pointing them to the new one... come on guys!

      2.) An integrated debugger! Until you can set breakpoints from within emacs/vi/code fusion/fill in your favorite editor here it's going to continue to be hard as hell to debug on linux. I mean, we shouldn't have to rely on debuggers, but do we really want to leave emacs, launch the debugger, go back to emacs, get the line number, type b filename:line number forever! That's pretty damn counter productive!

      I still LOVE cvs, vi, the test based nature of building, being able to use sed to fix my project, etc, but I don't have all the time in the world.

      thank you...

      ___________________________
      Michael Cardenas
      http://www.fiu.edu/~mcarde02
      http://www.deneba.com/linux

    19. Re:Well, it's natural... by Old+Wolf · · Score: 1

      Quite agree, after programming C with Linux for quite some time, I found that the switch to Win32 was quite refreshing.

      I could actually concentrate on working on my program logic rather than to struggle with my code.

      I don't have to cope with a complete lack of useful API calls, and the lack of countless options is appalling. Yay!

    20. Re:Well, it's natural... by Old+Wolf · · Score: 1

      Unix and Linux are classically designed systems, and thus suit C, as people have pointed out.

      Windows is an object-oriented system and has been from day one, and thus suits C++. *Everything* in windows is an object (aka component, control, etc.)

    21. Re:Well, it's natural... by JonK · · Score: 1

      Well, if the code I'm debugging throws an exception my OS opens it, on request, in the debugger with the line that caused it to blow up highlighted, thereby saving me the effort of wading through a core dump. Then, as you say, set a breakpoint and go. Doesn't your OS allow you to do that</innocent wide-eyed wonderment>
      --
      Cheers

      --
      Cheers

      Jon
    22. Re:Well, it's natural... by FryDaddy · · Score: 1

      When considering what OS to develop software under, one should consider the level of utility he or she expects the software to have.\n Regarding OS, the way I see it, there are two basic catagories:\n 1) Those OS that are POSIX compliant 2) The rest What is POSIX? Wow, I am suprised to see no mention of POSIX anywhere here. POSIX is a set of OS interfacing standards developed by the IEEE society. It specifies API's for the manipulation of files, processes, interprocess communication, and threads. POSIX is extremely important to serious application developers because it allows us to develop code that is portable and easily read and understood. If you set out to develop any serious, portable application, then you want to choose a POSIX compliant OS as your development environment, period. In POSIX compliant OS, things such as multi-tasking, multi-threading, and networking are a natural extension of the OS, and many system calls are already defined to do the job. Most POSIX work is based on the UNIX OS, however, WindowsNT, VMS, and OS/2 are also POSIX compliant. This is by no means an exaustive list of POSIX compliant OS. You can see what bearing this has on software utility. If you dont care to use your software on any other platform BUT the one you develop it on, or if your application does not have to talk to other computers of multiple OS, or if it is not a true multi-tasking or heavy duty computing application, then you are safe with any OS, including POSIX compliant OS. Otherwise, there is no alternative but to use a POSIX OS. Among these POSIX OS, it is simply a matter of preference. GUI portability is quickly becoming a non-issue with lots of multi-platform GUI API's emerging. My personal preference is Linux because it is free and open source. When I develop POSIX compliant code on linux, I can be sure that my application will port to all of the systems which I frequently use - including IRIX, Solaris, AIX. Linux is also the emerging standard for high-performance cluster computing. Code developed on POSIX compliant systems is easily ported to linux. If I dont like the behaviour of some built-in tool, I can grab the source and change it to my liking, then port the new tool to any other POSIX system I want. The advantages are limitless. Eight years ago, almost to date, linux transformed my Windows PC (which was mostly a toy) to a serious computing workstation and development environment. It is to this transformation that I give credit for all of my programming skills and awesome marketability as a programmer.

  3. Don't use MFC as an example of anything by Jon+Erikson · · Score: 3

    Ugh, if there's ever been an application "framework" nastier than MFC I've yet to see it. The sheer complexity involved in acheiving some of the simplest tasks is truly amazing - who wants to deal with a huge mess of DDX/DDV commands just to get the value of an edit box into a variable?

    Personally I'm using Borland's VCL at the moment, and whilst it, like any other framework, does constrain the things you can do, it certainly feels a hell of a lot more "natural" than MFC ever did - things work the way you expect. As for chaning an SDI app into an MDI app? Well, it'd be some work, but I can see myself doing that without starting over.

    No, using MFC as an example of why Windows is a poor environment for coding is wrong. Plain and simple, MFC sucks, and there are a lot better alternatives out there for coding apps in. And since Borland are porting Delphi and C++ Builder to Linux, I'd highly recommend them there as well.


    ---
    Jon E. Erikson
    --

    Jon Erikson, IT guru

    1. Re:Don't use MFC as an example of anything by cybrthng · · Score: 1
      Do you ever have anything good to say? Hehe, i've been following your posts throughout some of these past discussions.

      Sure MFC stinks, but it looks like everything else in your book does to.

      hehe, oh well.. i think it would be intresting to build some statistical/analytical spyder to traverse slashdot and get a general history/idea of the content and the feelings behind it.

    2. Re:Don't use MFC as an example of anything by Mr.+Sketch · · Score: 1

      I believe that's why they have the Class Wizard to make that stuff at lot easier. I personally use it all the time and although I don't think it's very 'natural', it doesn't take long to get used to doing it their way. Just like any development environment, you have to get accustomed to doing it the way the creator intended.

      I personally just create an object for each of the fields I need information from and just call Get/Set methods to get the info. I find this process very natural instead of having to call UpdateData everytime I need to Get/Set information from the object.

      disclaimer: I admit I haven't tried Borlands VCL, but I have tried KDevelop and did not find it as intuitive as the Visual Studio environment. And I'm not trying to bash linux, I love linux and use it all the time, I just don't like the developing environments for it, gimme vi and a makefile anyday :).

    3. Re:Don't use MFC as an example of anything by NaughtyEddie · · Score: 1
      So don't use DDX/DDV. That aspect of MFC isn't too good, but you are free to ignore it. MFC simply wraps the WIN32 API. All my MFC dialog boxes use ad-hoc message passing mechanisms. DDX/DDV is for HUGE enterprise-level applications, not for tinkering.

      Yet again I find myself saying: if you want to program Windows, learn the APIs. MFC isn't a substitute for WIN32 know-how.

      --

      --
      It's a .88 magnum -- it goes through schools.
      -- Danny Vermin
    4. Re:Don't use MFC as an example of anything by NaughtyEddie · · Score: 1
      Most of my Windows experience is either games (WIN32 to a minimum, plus DirectX) and high-performance graphics applications (MFC to a maximum, plus DirectX).

      If I ever engaged in "routine software development" I'd probably learn VB.

      --

      --
      It's a .88 magnum -- it goes through schools.
      -- Danny Vermin
    5. Re:Don't use MFC as an example of anything by marimbaman · · Score: 1

      Borland C++ Builder rocks! I learned programming with the first few versions of Visual Basic, then learned real programming with plain C/C++. Well, C++ Builder with the VCL combines all the high-level convenience of VB with C++ compatibility, so I can call Win32 API directly, link to C libraries, and use C/C++ without having to micromanage the UIs. To anyone programming on Windows who hasn't used Delphi or C++ Builder: try it! My Windows programs are no longer, and sometimes shorter than an equivalent command line program.

      Oh yea, and there will soon be C++ Builder on Linux. Whee....

  4. Give MS Visual Studio a Chance! by superid · · Score: 4
    I've been using MS Visual Studio for a couple of years now, and I really like it. It's quite stable, I can't remember ever having the IDE crash, and it's very powerful.


    By far, my favorite feature is the popup Intellisense, when you're working with an object or struct and type "." or "->" you get a window with the details of the object at that level. You will quickly get hooked on this feature.


    Plus, you can now edit and recompile c on the fly while debugging. That's a big timesaver for me (for correcting "freshman" mistakes like incorrect loop bounds without having to start all over).

    And finally, if it's good enough for John Carmack, it's good enough for me!

    1. Re:Give MS Visual Studio a Chance! by PSargent · · Score: 1
      Plus, you can now edit and recompile c on the fly while debugging.

      You've been able to do that on Solaris for quite a while now. Not sure why you can't under Linux.

      Paul

    2. Re:Give MS Visual Studio a Chance! by Virek · · Score: 1

      The features you mention are quite useful but IMO the main problem with MSVC, which causes me to tear out my hair on a regular basis, is build management. I have wasted ridiculous amounts of time because of some inconsistency in the dependencies in a complex project. In the end the solution is frequently to do a total rebuild, wasting another 4 hours...

      Aside from this i agree - it's not a bad development environment and it has some useful features, but then i've never had a chance to do any real development work under *nix. I suspect this would be a much less frustrating experience.

    3. Re:Give MS Visual Studio a Chance! by numo · · Score: 5
      Well, I am also using MSVC and I surely could imagine more stable system, although 6.0 is quite good.

      The Intellisense absolutely rocks. However it is not only IDE what counts. I personally can live with vi, make, ddd etc. But it is plenty of mature tools available for M$ environment that makes a difference. Try to profile your code with gprof and then try to do the same using Rational Quantify. Try to make a coverage analysis without recompiling your code under Linux. Try to catch memory errors with ElectricFence - due to how it works it will eat all your memory in a few seconds in all but trivial programs.

      Yes, the tools are expensive, but they save a huge amount of time.

    4. Re:Give MS Visual Studio a Chance! by harshaw · · Score: 1

      I have not heard of anyone who has developed a complex project on Windows AND used MSVC as the build environment. We use gmake, bash, perl, etc. to do the builds.

    5. Re:Give MS Visual Studio a Chance! by snookums · · Score: 1

      Give me a vi key-binding for the Visual Studio IDE and I'll switch.
      Say, does anyone know if there is an API for writing editor plug-ins for the IDE? I would love to try to make the win32 version of gvim work with all the nifty features (i.e. Intellisense) of Visual Studio.

      --
      Be careful. People in masks cannot be trusted.
    6. Re:Give MS Visual Studio a Chance! by V. · · Score: 2

      FWIW, there is an elisp package that works pretty
      much the same way as IntelliSense except that
      the info shows up in the um....what is it called...the little area at the bottom in emacs.
      I had it working at one time but never really
      used it so I don't remember what it's called now.
      I'm sure you could find reference to it on Deja
      tho.

    7. Re:Give MS Visual Studio a Chance! by Teppy · · Score: 1

      Try "Intellisense" on a large project. I routinely see popup times of 5-10 seconds, and the editor locks up during that time.

    8. Re:Give MS Visual Studio a Chance! by cd_Csc · · Score: 1
      Basically its a text editor with syntax highlighting that will display all the properties/methods of an object when you type object.

      Then why hasn't something similar to IntelliSense been for a linux IDE?

    9. Re:Give MS Visual Studio a Chance! by Keithel · · Score: 3

      I'll agree with this. I don't particularly like the editor (I'm a vi person myself), except for the ultra-mondo-cool intellisense feature, but the plethora of good quality 3rd party tools like Rational Purify, Quantify and (esp.) Clear Case is quite nice. The tool integration is especially nice with clear case. Things hardly ever crash, which is *NOT* the case on linux or other unices (this is development tools I'm alking about). The debugger is quite a bit nicer and easier to get used to (and just as powerful) than ddd. Many times, on complex CORBA apps, gdb and/or ddd has crashed and burned.

      I think part of the reason that dev studio doesn't crash much is that M$ actually uses it to develop code, so of course it is going to be clean -- they have a lot of beta testers and dev studio fixit people. :)

      Keithel

    10. Re:Give MS Visual Studio a Chance! by Virek · · Score: 1

      Well, from my experience, i can see why... MSVC is fine for small to medium Windows projects but 70% of the problems we get are build issues. Not fun.

    11. Re:Give MS Visual Studio a Chance! by CelestialWizard · · Score: 1
      I do have to admit, that the Visual Studio IDE is pretty good. i wish that they'd integrate VB with DevStudio more quickly however. intellisense is a wonderful boon.

      but this statement about it hardly ever crashing.... now now now. i have had DevStudio crash on me
      • upon loading of project / workspace files it creates
      • looking up intellisense
      • looking up intellisense where it is across the network
      • putting in a pointer from a struct
      • ... the list is endless, much like most other software from redmond

      \\||//
      --ooo00ooo--
    12. Re:Give MS Visual Studio a Chance! by erwin · · Score: 1

      It's a pretty bloated text-editor, too. (Though Emacs is a close, but more flexible and functional contender).

      We use Interdev at work for ASP development and I could really take to leave it. Actually, that's not true. I'd rather leave it. There's an annoying bug with it that causes the whole thing to hang when it tries to present the syntax for Javascript statements. So basically, it's a colored text editor with DAV support.

      If I can't work on *nix, give me BBEdit on a Mac....

    13. Re:Give MS Visual Studio a Chance! by 51M02 · · Score: 1

      First because of the structure of MFC and of all their API, it would be impossible to keep track of them. :-)

      Second, I think I am not the only one prefering looking at some doc in HTML or anything else, to know an objects properties or method. How can you remember APIs if you don't even read a doc? What do you expect? MSVC to write code for you?

      Disclaimer: "These opinions are my own, though for a small fee they be yours too"

      --
      --- Bouh !!! ---
    14. Re:Give MS Visual Studio a Chance! by 0xdeadbeef · · Score: 1

      Because the benefit is not worth the effort required to implement it? Think about it. It is essentially half of a compiler tacked on to the editor. Who wants to go through all that work to implement crutch? Where's the glory?

      It is a nice toy, but I find it less useful than syntax highlighting, and vim does that wonderfuly using only regular expressions. About the only time I find it useful is when I'm trying to remember all the parameters to a Windows system call. In unix, it's as easy as "man <whatever>", and I've usually got my answer in less time than it takes MSVC's help to start up.

    15. Re:Give MS Visual Studio a Chance! by lordmage · · Score: 1

      >now. Not sure why you can't under Linux.

      insure from parasoft.com can do that I believe

      nice product but costs money.

      --
      I can program myself out of a Hello World Contest!!
    16. Re:Give MS Visual Studio a Chance! by 51M02 · · Score: 1

      You forget about the line count feature. Since it's the only feature I missed when I had to write some ASP in notepad or wordpad and I can't stand writing inside edit, a long time ago... How can you trust a platform without a line counting editor. And all those "Javascript error on line 56" how am I supposed to know which line it is anyway, when writing CGI.

      Disclaimer: "These opinions are my own, though for a small fee they be yours too"

      --
      --- Bouh !!! ---
    17. Re:Give MS Visual Studio a Chance! by MonkeyMagic · · Score: 1

      I'd perfer linux (although its not my choice) b/c of the better tools, like grep, sed etc.

      If you like these then get them on win32 with cygwin. It gives you a bash(ish) commandline and a fair few of the tools you most use on unix. Also, if you want the more complex stuff use perl. If you like make etc. use win32 gcc.

      While these tools can't do everything that they do on unix, they'll do enough to get you by.

    18. Re:Give MS Visual Studio a Chance! by MonkeyMagic · · Score: 1

      If that's the case, then turn it off.

    19. Re:Give MS Visual Studio a Chance! by lordmage · · Score: 3

      Heh, Since I am a Solaris/HPUX programmer we use Purify constantly and the purify product line from rational.

      HOWEVER, I think that parasofts insure product line is sweet as well. If you talk about spending money, this is much better than electricfense or even most of the other windows products. The deal here is that parasoft is cross platform and support linux.

      --
      I can program myself out of a Hello World Contest!!
    20. Re:Give MS Visual Studio a Chance! by goodviking · · Score: 2
      The issue here seems not to be "developing windows apps is better than developing Linux apps" but "there are better IDEs on windows than on Linux". These are separate issues. Granted there may be a larger and more established set of IDEs for Windows, but when you get down to the core of programming on the 2 platforms, it comes down to:

      "given an equal set of tools, which contains easier and more logical standards to which to code"

      I have found the Win API and the MFC to be cumbersome at best and the support base to be lacking. On the other hand, I have found *nix programming to be better documented, have better adherence to standards, and to have a better support base. Further, with Linux, if you can't figure it out, look at the source.

      Tools will come as the number of developers working on Linux boxes increases. Look at JBuilder for example. Excellent Java IDE with a Linux port.

      Fundamentally though, I would hesitant to invest my time and effort mastering interfaces and techniques that are owned by a company which has shown no hesitation to arbitrarily change them. Probably the best example of this is a colleague who tried to compile some simple examples from "Mastering Visual C++ 5" with Visual C++ 6. The source wouldn't compile and the reasons weren't readily apparent. That to me is not good developer support.

    21. Re:Give MS Visual Studio a Chance! by ddstreet · · Score: 2

      By far, my favorite feature is the popup Intellisense, when you're working with an object or struct and type "." or "->" you get a window with the details of the object at that level.

      Visual Slickedit has this and many more features and is availble for almost all UNIXes. Trial versions are available.

      Slickedit is expensive ($299), and closed source, and most of its (and other editors) features can be reproduced in vi and emacs, but I like it. Especially the feature you mention.

      Incidentally the latest issue of Linux Journal has a review of Visual Slickedit.

    22. Re:Give MS Visual Studio a Chance! by yugami · · Score: 1
      I can't remember ever having the IDE crash, and it's very powerful.

      I used VS for several years, and while there was much that i liked about it, there where a few that i didn't. One is I have had the IDE crash, but thats not the big issue, the big issue is I've had the compiler flake out on certain programs. the compiler would exit out w/ an error(the error was a long complicated thing that made 0 sense, even to the MS people) and a second compile would finish fine. sounds like a small thing, but turns into a huge annoying festering ball of hate when you've been coding for 16 hours and have to compile twice EVERY TIME.

      2, I've never found it more powerful than XEmacs, but thats just me.

      3 whats w/ that FSCKing MDI? that sucks, i have multiple monitors, they rule, and i can't spread out the source files!!!!

      sometimes the intellisense just stopped working, and just about nothing you could do would fix it, short of shutting down VS and deleting a certain file.

      there was something else i wanted to vent on but dont remember

      whats good?

      like you said the edit and recompile while still debugging is a huge time saver sometimes.

      aaaand... thats about it. I have gripes about everything, don't get me wrong, its just that VS isn't the panacea of programming that some people make it out to be.

    23. Re:Give MS Visual Studio a Chance! by shadrack · · Score: 1

      They copied those features from Borland products, so when Kylix gets out, maybe more people will start looking at Linux.

    24. Re:Give MS Visual Studio a Chance! by JamesGreenhalgh · · Score: 1

      Heh - Rational didn't endear themselves to me particularly... I was in charge of a small collection of Irix machines, which all got upgraded to 6.5 because 6.2/6.3 were slow and bugged. Some time after 6.5 was in full release, Rational still weren't supporting Purify on it.

      --

      --
      ALL YOUR BASE ARE BELONG TO US!
    25. Re:Give MS Visual Studio a Chance! by el_mex · · Score: 1
      You gotta be kidding me... man faster than intellisense?! Why don't you just come out and say it: You hate anything related to Microsoft!

      I got all my schooll projects done back in the day because of my writing and debugging in NT and just recompiling under Sun Solaris to turn it in!

      Yes, you CAN make MSVC output a makefile, and you can set the flags to remind you when you are not writing ANSI C!

    26. Re:Give MS Visual Studio a Chance! by JamesGreenhalgh · · Score: 1

      Yet another rather good application for Linux that I _would_ buy if it was priced reasonably. They need to have a home user license and a seperate price for commercials. At $75 for a personal edition I'd probably buy it, at $299 I'll stick to nedit thanks. At $199 I wasn't even vaguely interested in AccelX, but when they released the 2d/3d licensed-by-gfx-card servers at $29 I bought a license straight away. They still haven't learnt that Linux users are largely a very different market to Windows ones.

      --

      --
      ALL YOUR BASE ARE BELONG TO US!
    27. Re:Give MS Visual Studio a Chance! by 4of12 · · Score: 2

      &lt offtopic&gt

      (A thousand pardons for drifting off topic here, but this key binding issue irritates a pet peeve...)

      Now that I have hardwired the default Emacs key bindings between brain and fingers, I find that editing inside of Word *extremely* frustrating, since the keymaps are different. (Usually I stay out of that app, but the Forces of Darkness continue to expect me to do battle with a .doc from time to time.)

      Is there any way to remap key functionality inside of Word to capitalize on my Emacs investment?

      &lt/offtopic&gt

      Regarding development on Linux and Windows, I'd say that your friend may well be satisfied with the tight embrace of his IDE - it can be efficient for the things it was designed to do and if he's already climbed the learning curve for that particular IDE.

      What I like about Linux, though, is that development is based on the idea of simple tools that can be put together to do a wide range of projects and tasks quite easily. Eg, once you get used to make and grep and a few other tools, you get the feeling that you can do just about anything.

      The philosophy of interoperability under Linux and Unix in general is illustrated by thinking of cubes (applications) with faces (interfaces) - the number of combinations of ways that they can be put together to do things increases dramatically as the number of cubes - and you don't really need that many.

      Under Windows, the market economic advantages to vendor lock-in are barely outweighed by customer demand for interoperability with other applications, so the apps try to keep you inside whenever possible. Rather than let you escape to another application for a feature you want, the tendency is to eventually bloat up the app with the feature in the next rev. And while the new feature will serve 90% of your uses, there might be occassions where you might have wanted to do things differently. Tough.

      I think the IDEs tend to be fast for a particular task only (and, again, only after you've learned the quirks of that highly integrated tool.) And people really do get work done fast under them (need that quickie VB script done yesterday), so don't think I'm against them.

      The right tool for the right job.

      So there's a different philosophy to tool use, re-use and interoperability that your friend might find refreshing.

      [But beware - if you do try it out and you're like me you'll begin to insist on bringing Cygwin to every Windows systems you have to work on!]

      --
      "Provided by the management for your protection."
    28. Re:Give MS Visual Studio a Chance! by perfecto · · Score: 1
      By far, my favorite feature is the popup Intellisense, when you're working with an object or struct and type "." or "->" you get a window with the details of the object at that level. You will quickly get hooked on this feature.

      feh! delphi had this YEARS ago.



      --
      J Perry Fecteau, 5-time Mr. Internet
      Ejercisio Perfecto: from Geek to GOD in WEEKS!

    29. Re:Give MS Visual Studio a Chance! by cd_Csc · · Score: 1
      Where's the glory?

      It is this type of thinking that hinders the success of linux. If you want something to become mainstream, it must be user friendly! It really gets to me when people take pride in using a more difficult UI and rant about Microsoft and Windows users.

    30. Re:Give MS Visual Studio a Chance! by wcb4 · · Score: 1

      If you want the syntax highlighting, ability to define functions to compile and run the program directy, nice sets of macros, clip libraries, sorting, spell checking, file comparisons and regular expression search/replace within a windows editor (and yes it has line numbering) try Textpad. Its a little shareware editor for windows that I use exclusively. I even converted a vi user to textpad (at least when he's on windows, though he still uses vi under linux) and trust me, that's hard to do.

      --
      I reject your reality ... and substitute my own.
    31. Re:Give MS Visual Studio a Chance! by schulzdogg · · Score: 1
      "Javascript error on line 56" how am I supposed to know which line it is anyway, when writing CGI.

      I'm not alone! I usually try to count the lines in the CGI that won't print, then add that to the number javascript gave me then use VI...

    32. Re:Give MS Visual Studio a Chance! by esper · · Score: 1
      By far, my favorite feature is the popup Intellisense... You will quickly get hooked on this feature.

      Speak for yourself. When Borland added their version of this (mis)feature to Delphi, everyone else I worked with loved it, but it wasn't long before I had to turn it off. Damn popups kept placing themselves right on top of a piece of code I was using for reference and obscuring it.

      For the record, I now have both a Linux box (which I do most things on) and a WinNT box (for compiling) at work. I write code in vi under Linux, then use CygWin's make to build it using MSVC's command-line compiler and linker under NT. Works great, although converting MSVC's auto-generated Makefile to something human-comprehensible was a royal PITA... But I only had to do that once; I haven't started another project out in the IDE since then.

      (I do still use the IDE for some of my debugging, though, mostly because that's what comes up when I tell NT to debug a process that just GPFed. I occasionally consider switching it to give me gdb then, but MSVC's debugger is pretty good.)

    33. Re:Give MS Visual Studio a Chance! by sethg · · Score: 2
      I've been using MS Visual Studio for a couple of years now, and I really like it. It's quite stable, I can't remember ever having the IDE crash, and it's very powerful.
      I started using Visual Studio in February, for a C++ class I was taking, and the IDE crashed at least three times. It wasn't even compiling anything when it crashed -- in the middle of an editing session, it just rolled over and died.
      --
      --
      send all spam to theotherwhitemeat@ropine.com
    34. Re:Give MS Visual Studio a Chance! by esper · · Score: 1
      What do you expect? MSVC to write code for you?

      Have you used MSVC lately? It's got code templates and wizards and crap like that all over the place. Whether people want MSVC to write code for them or not, it sure tries pretty hard to do just that.

    35. Re:Give MS Visual Studio a Chance! by BigD42 · · Score: 1
      Look at JBuilder for example. Excellent Java IDE with a Linux port.

      I always find statements like this funny. JBuilder (at least the Linux "port") is a pure Java implementation of an IDE. This means that it should run on ANY port of the JDK >=1.2. The only Linux dependant aspect, and why they consider it a port, is the installer which installs in a Linux specific way. Of course the actuall executable does little more then run the main class of the app. In fact there is very little in the config scripts that is Linux specific and more often is Unix specific.

      --
      --- Linux... a college project gone horribly right
    36. Re:Give MS Visual Studio a Chance! by Billy+Donahue · · Score: 1

      > It is a nice toy, but I find it less useful
      > than syntax highlighting, and vim does that
      > wonderfuly using only regular
      > expressions.

      Vim fucks it up all the time...
      Particularly when I'm doing weird stuff like
      outerspace Perl syntax or JSPs or something
      like that. That said, I don't think I'd
      want to see the stupid select boxes everytime
      I type . or ->, either...

      --
      -- The Funk, The Whole Funk, And Nothing But The Funk
    37. Re:Give MS Visual Studio a Chance! by Malc · · Score: 1

      Etags

      I just use C-M-/, which does dynamic word expansions based on the currently loaded buffers. It makes me very lazy and I often forget how to type more than the first couple of letters when I switch to other programs.

    38. Re:Give MS Visual Studio a Chance! by RedGuard · · Score: 1

      I find gdb crashes frequently when trying to
      debug any non-trivial threaded program. Mozilla
      have a whole page of complaints about it
      http://www.mozilla.org/unix/debugging-faq.html.

    39. Re:Give MS Visual Studio a Chance! by warmi · · Score: 1

      These tools are worth the asking price.Specially AcceleratedX.
      However, from the market point of view , you might have a point. It is entirely possible they would make more money if the price was below 100$.

    40. Re:Give MS Visual Studio a Chance! by warmi · · Score: 1

      Hey. how do you that with vs ?
      I know there is API help but it works differently, using separate dialog. Is there a way to have it work online ( class->...)
      ?
      Thanks

    41. Re:Give MS Visual Studio a Chance! by warmi · · Score: 1

      Dude, plug in your JVM of choice into J++ and be done with it. It really works.

    42. Re:Give MS Visual Studio a Chance! by cjsteele · · Score: 1

      I too like MS Visual Studio... but the editor is really quite a small portion of development. I think the debate here is more over the environment as a whole. KDevelop (and projects like it) are quickly gaining ground on MSVS, and eventually will offer close to the same set of features. When there is no longer a gap in IDE's, the question then becomes, which platform is more friendly to development? There are two possible answers to that question: 1) the platform that is easiest to use, and 2) the platform that is most powerful. If you've been around Linux for very long at all, you learn quickly that it is obviously the most powerful. After being around it a bit longer you'll realize that yes, everything here makes sense and its actually quite easy to use. ...it's all about the learning curve my friend. hit the top of that curve, and all the sudden everything makes so much sense that you'll question why you spent the best years of your life running Windows. (Much the way many divorced people marvel at why they spent the best years of their life with their ex-spouse.) I'm a blissfully (software) divorced geek, and I'm proud!
      -C

      --
      "This above all, to thine own self be true" :x!
    43. Re:Give MS Visual Studio a Chance! by 0xdeadbeef · · Score: 1

      Of course you'll get that problem, you're mixing two languages to where you've essentially got a third language. Here's a syntax file for JSP that I found linked off the vim pages:

      http://altern.org/rgs/vim/syntax/jsp.vim

      Put it in your vim syntax directory. I used to have a syntax file for ASP scripts too, but can't seem to find it anymore. It shouldn't be too hard to tweak the one I linked for ASP or embedded perl.

    44. Re:Give MS Visual Studio a Chance! by 51M02 · · Score: 1

      Well you can move to the line number you want inside vi, no need to see which line number it is anyway, by typing 'gg' and the line number...

      Disclaimer: "These opinions are my own, though for a small fee they be yours too"

      --
      --- Bouh !!! ---
    45. Re:Give MS Visual Studio a Chance! by 0xdeadbeef · · Score: 1

      No no no, not faster than the popups, faster than their help browser. Most of the time I need to lookup parameters, I want to look up the exact behavior of the function/method I'm calling. Intellisense is only useful when I know the parameters, but aren't quite sure of the order.

    46. Re:Give MS Visual Studio a Chance! by madmaxx · · Score: 1

      Visual Studio stable? 6.0 is better than a number of previous releases, but developers here crash it at least once a week. And annoying?? Damn, MSVC's docking bastard tool-windows and MDI-ness are almost impossible to work around. Make settings can be set in the environment and in the bastardized prj (mak) files. Try to structure a set of project sources/binaries different than MS likes?? Pain in the ass...and not completely possibly (pdbs have a fixed name). Then there is VSS...another proprietary 'innovation', crap most of the way through.

      All I ask for are quality, flexible, open-standard tools...which abound mostly appart from Microsoft.

      --
      mx
    47. Re:Give MS Visual Studio a Chance! by 0xdeadbeef · · Score: 1

      Oops, forgot something. You'll need to add the following in your filetype.vim file for it to work automatically:

      " JSP
      au BufNewFile,BufRead *.jsp set ft=jsp

    48. Re:Give MS Visual Studio a Chance! by Paul+Komarek · · Score: 1

      Why isn't this 'score 5, funny'? Although I don't use MSVC or any other MS development products, I've never heard such praises as you give. In fact, for every point you mention, I've only heard swearing:

      1) stable, never crashed? This is new to me--my wife has complained of 3 crashes in one workday, on more than one occasion (this is running on NT, if that makes any difference)

      2) hooked on Intellisense? Again, I've been told it is a huge distraction, and very bothersome.

      3) and recompilation while debugging--it's a good idea, and so I asked a couple developers about it. Their response was that despite the nice idea, it didn't actually work reliably.

      Consider how much time you save because of the slick user interface. Then think about the money spent on it--not a very good argument on its own, though. Now consider how much time it will take you to implement regular expressions, since it doesn't include regex libraries--or else how much it will cost to purchase commercial libs with distribution rights. How about any of the other standard POSIX services that don't come with MSVC?

      "I got this great new shiny bicycle, too bad it doesn't have a chain, oh, and the wheels are square."

      I just don't understand what you really get for your money with the Microsoft development tools. I'd rather have useful libraries instead of Intellisense. Not to mention, slightly unrelated, why doesn't FAT/VFAT/NTFS have symlinks yet? Where's the service from Microsoft?

    49. Re:Give MS Visual Studio a Chance! by bjb · · Score: 1
      Ok, the IDE might be nice, but don't put the underlying compilers in the same boat. I've been using MSVC++ for some time now, and I think the standard libraries are pieces of garbage. For example, the STL libraries barely work (see String library) and namespace is partially implemented too (see namespace 'std' and things like cout and strcpy).

      My two cents.

      --

      --
      Never hit your grandmother with a shovel, for it leaves a bad impression on her mind...
    50. Re:Give MS Visual Studio a Chance! by warmi · · Score: 1

      I am refering to J++ IDE which allows you to plug in latest and greatest JVM from IBM etc ..

    51. Re:Give MS Visual Studio a Chance! by DA_MAN_DA_MYTH · · Score: 1
      All I know is that I can't truly appreciate VC++ for the way it treats its pointer arithmetic, and the way it treats templates, which sucks if your a student...

      VB is cool, if you want a pretty little database fronted for a Microsoft shop for people that people who somewhat have grasped the concept of point and click...

      The fact remains is Visual Studio is only meant to develop for a windows environment... Even look at InterDev... If your web programming... It's meant to work with ASP (vbscript), and only that runs effectively with IIS...

      But as programmers / developers, you have to remind yourself that you have to bow down to user requirements. If you are creating windows apps... MFC may be the way to go...
      Although Java Swing is starting to look a little enticing....

      True, we are all gonna die...

      --
      "It takes many nails to build a crib, but one screw to fill it."
    52. Re:Give MS Visual Studio a Chance! by Azog · · Score: 2

      If you are using Microsoft Dev Studio, download and install the service packs! There are at least two for Dev Studio 6, IIRC, and you really need them.

      Even with them, I used to crash the IDE every now and then. Sometimes when the IDE would crash it would leave processes hung in the background with files open, so make sure you kill those.

      More often though, I would just partly corrupt the project. The fix for that was to shut down the IDE and delete the .ncb, .clw, and other non-source code files in the project directory. (But not the .dsp and .dsw).

      Then restart, open class wizard, and rebuild the class library.

      (You know, I'm glad I don't have to deal with that anymore. Just minutes ago I got the very latest Gnome + Enlightenment running on my FreeBSD development box, and now I'm going to learn how to customize the heck out of emacs... and I program in PHP and Java now. Whee!)


      Torrey Hoffman (Azog)

      --
      Torrey Hoffman (Azog)
      "HTML needs a rant tag" - Alan Cox
    53. Re:Give MS Visual Studio a Chance! by mvw · · Score: 1
      We did it at my last job with a huge project.

      And guess what, the dependency resolution of the Dev Studio IDE was found to have bugs that caused recursion until some internal counter turned around (that took a couple of minutes).

      The guy who fixed it changed the build process to spill out a makefile, processed it with awk to remove some dependencies and then ran the resulting makefile.

      That made me wonder if Microsoft developers themselves use that IDE for any huge project.

      Probably it is fixed in release 15 + service pack 7 :-)

    54. Re:Give MS Visual Studio a Chance! by dsyu · · Score: 1
      Actually, the debate seems to be over:
      1. Development environment (read: IDE)
      2. Development tools (read: compiler)
      3. Operating System
      Assuming your statement that KDevelop and the like will catch up to MSDEV (a reasonable assumption), and likewise assuming that compiler technology will even-out (here I actually think MS needs to do some catchup to gcc), I'd agree with your statement that the "environment" (the operating system really) becomes the deciding factor. However, I'd have to disagree that Linux is more powerful. It _really_ depends on what you're trying to do. If you're doing networking, or server apps, Linux is probably going to have an edge. However, things like 3D graphics and game development (my area), MS Win2K, and things like Direct3D (which is starting to really jump away from OpenGL) really would swing the favor to Microsoft. As usual, everything depends on what you want to do. Start with that, and then govern which dev-tool, operating system, etc. fit your needs, not the other way around.
    55. Re:Give MS Visual Studio a Chance! by dsyu · · Score: 1

      Granted VSlickEdit is pretty nice, but I still have to agree that the price is too high. They may have done things originally for high-end UNIX's, but why did they put out a Linux port and expect folks to pay $200+ for an editor, when the build and compile tools are free? If they charged $50, I'd probably buy it.

    56. Re:Give MS Visual Studio a Chance! by adum · · Score: 1

      the intellisense hang happens to me, too. always has in MSVC 6.

    57. Re:Give MS Visual Studio a Chance! by Old+Wolf · · Score: 1

      Notepad doesn't support that, you dumb fuck

    58. Re:Give MS Visual Studio a Chance! by JonK · · Score: 1

      Seconded: Textpad rocks.
      --
      Cheers

      --
      Cheers

      Jon
    59. Re:Give MS Visual Studio a Chance! by JonK · · Score: 1

      Since when was part of the STL? It's part of the standard C++ library, but it's got nothing to do with the STL.
      --
      Cheers

      --
      Cheers

      Jon
    60. Re:Give MS Visual Studio a Chance! by KRW · · Score: 1

      or type :xx where xx is the line number. Also hit g to see what line your on. Of course you mean type the line number than gg. Besides vi doesn't use half your system resources (maybe on a 486 with 1MB of ram it would) just to edit a few files.

    61. Re:Give MS Visual Studio a Chance! by MaksO · · Score: 1

      I agree with the comments on the editor - I am doing crossplatform development using MSVC on WIndows and gcc+make+emacs+gdb on Linux, and the MS environment is surprisingly(for their product) nice. The debugger, IntelliSense, etc.,etc., are all very helpful. Code optimization is also very nice.

      However, there is a major downside: some ANSI non-compliance and annoying bugs. A good example of the first is the ARM-style scoping for the vars declared in the 'for' loop (i.e. if you do for (int c=....) the variable has function scope and not loop scope). This can be very frustrating when perfrectly valid code, tested and debugged on Linux begins spewing out hundreds of errors...

      Similarly, some compiler bugs are a pain, and downloading 120MB(OK, so I can order a CD - but why do I need to get fixes for every single MS developer product if I only use C++?) "patch" is not sane using a modem. For instance,(I don't remember the details),but I think that if you don't declare members of a nested class inline, they'll be "lost" in derived classes. Took me a couple hours to find out the info in the KB. Ouch

      So, to sum up, there are a lot of nice things about MSVC, but a bit of standards compliance wouldn't hurt...

      P.S. On crashing MSVC 6 - this is pre-service pack, so might be fixed - just setup it to use outside tools that don't exist.

    62. Re:Give MS Visual Studio a Chance! by cjsteele · · Score: 1

      I concur. That has been my basic premise for choosing most technologies, I guess I just hadn't thought of extrapolating that to the development environment... I do all of my developing on the server-side of things.

      Thanks for the thoughtful followup.

      -C
      -C

      --
      "This above all, to thine own self be true" :x!
    63. Re:Give MS Visual Studio a Chance! by ddstreet · · Score: 1

      Not sure what you mean...
      In C, some_struct_pointer-> pops up a list of members, as does some_struct_name. (the '.' activates the popup)
      In Java, some_class_name. pops up the members.
      Always worked without chnage for me, maybe you should check the manual if it's not working for you...

    64. Re:Give MS Visual Studio a Chance! by ddstreet · · Score: 1

      Yet another rather good application for Linux that I _would_ buy if it was priced reasonably

      I agree 100% - my employer bought me a copy, I certainly wouldn't use it otherwise. The only feature I really like is the context help, showing class members and such. Also, specifically for Java, there is a listing of all classes with all members which is useful...

      Although all those features could be semi-easily added to existing free (open source) editors...vi and emacs come to mind.

  5. moolah by skagin · · Score: 1

    If nothing else, you don't have to pay out the arse for a copy of the "approved" development package. Being a cheap little bugger, that clinches it for me.

  6. A sane environment by pe1rxq · · Score: 2
    I find the unix environment and philosophy more sane than the windows one. Like all devices have a similar (to some degree) interface to the user in /dev. In linux there also is less need to get something done real quick and ugly so new things tend to be more thought about.

    Jeroen

    --
    Secure messaging: http://quickmsg.vreeken.net/
  7. Ok Ok the trolls *have* taken over by scrutty · · Score: 1
    I mean this is the first time I've seen them posting front page stories as well as comments :o)

    Kudos due trolls , you own slashdot!

    Hey moderator ! This is a joke

    --
    -- Oh Well
  8. Hard to say by Ace+Rimmer · · Score: 1
    if you exclude varius text/source code manipulation? What remains and it is not available under windows? Exclude the base of the whole *nix, stability etc and show it is superior. And what if you reverse the question? What does windows studios provides and linux not. Of course exclude RAD. Dumb question, dumb answer.

    I have an alter-ego at Red Dwarf. Don't remind me that coward.

    --

    :wq

  9. Two things for me by The+Pim · · Score: 5
    1. The libraries you use are open. You can read (and marvel at or laugh at) their source code, debug them, fix them, and participate in their development communities.
    2. The API's you program against were mostly written by creative people with taste and community feedback; not by committees with deadlines, backwards compatibility requirements, an internal review only, and a narrow Microsoft mindset.
    Really, development on a free platform is just more fun!
    --

    The evaluation of an action as 'practical' . . . depends on what it is that one wishes to practice.
    1. Re:Two things for me by geekopus · · Score: 1

      Just thought that I would point out that the source does, in fact, come with the MFC's. That first argument does not wash.

      As for the second, well, that's being a little harsh isn't it? The MS developers routinely develop with their own tools, so wouldn't it be in their best interest for them to work as well as possible? They didn't get that big by being so stupid as that!

      One problem that I have is poor documentation. If you've ever had to go diving through the MSDN Library, you know how frustrating that can be. Doc A leads to Doc B, which says "For more information, click here.", which leads back to Doc A! You feel like tearing your hair out.

      My $0.02....

    2. Re:Two things for me by el_mex · · Score: 1
      So you are saying all *nix coding is portable and beautiful just because it is *nix?

      Gimme a break!

    3. Re:Two things for me by The+Pim · · Score: 1
      MFC has source, but many other libraries do not. I didn't find kernel source or IIS source on the MSDN CD's.

      And yes, Microsoft is renouned for their internal testing, but you must agree that there is a pronounced Microsoft mentality when it comes to development tools. Microsoft is a pretty self-contained culture, so I think their developers may have a hard time thinking outside that mentality. It's not a matter of the tools working "well", which I didn't dispute, it's a matter of style.

      Quoth Jobs, "The think about Microsoft is, they have no taste". This rings true to me--but about the tools and API's, not the UI.

      --

      The evaluation of an action as 'practical' . . . depends on what it is that one wishes to practice.
    4. Re:Two things for me by The+Pim · · Score: 1
      Generalities, generalities :-)

      Unix is hugely legacy--but I argue that for the most part it's a good legacy! Old != bad. How much have the core Unix API had to change over the years? How much back-compatilibity does a typical Linux system support? Much less than in "API of the week" Win32 land.

      --

      The evaluation of an action as 'practical' . . . depends on what it is that one wishes to practice.
    5. Re:Two things for me by Rombuu · · Score: 1

      The API's you program against were mostly written by creative people with taste and community feedback; not by committees with deadlines, backwards compatibility requirements, an internal review only, and a narrow Microsoft mindset

      Hahahaha.. you mean like LibC? You mean like the STL? You mean like all the stuff that comes with C++ these days? You mean like SQL? YOu mean like OpenGL? You mean like X?

      Come on, every API these days are written by committee, with the exception of maybe PERL (and if you look at PERL, you know it)

      --

      DrLunch.com The site that tells you what's for lunch!
    6. Re:Two things for me by geekopus · · Score: 1

      Yeah, I guess you're right about the sources.
      I will say though that I haven't found nearly as many un-documented functions as I was lead to believe existed. Then again I have only been developing Windows apps for about 9 months...

      I also think that you hit the nail on the head about the tools being a question of style. In the context of what they were designed to do (create GUI standalone or client applications), I think are designed well. Now, I'll be the first to say that if we have to write a server application, we push the customer to a FreeBSD (that's a whole other subject!) based solution. *nix does servers better than any other OS, period.

      I still maintain that for what it was designed for (GUI development) the MS methodology is sound.

      Just my opinion, I could be wrong.

    7. Re:Two things for me by The+Pim · · Score: 1

      You seem to have two misconceptions. First, not any group of people is a committee. A research group at a university or lab is more likely to come up with a clean solution than a team at Microsoft. Second, standardized by committee is not the same as designed by committee. The best standards codify existing (designed and implemented) practices. Even when a committee takes over maintenance of an API, they have the original design to guide them.

      As for your particular examples: libc is basically what the original Unix guys wrote. C++ was designed by Stroustrup. STL was shepherded by Stepanov. SQL is shit, but we're stuck with it on all platforms. I don't know OpenGL, but good teams at start-ups often produce elegant designs. I don't know the X API, but X was designed by a research group at MIT, and for all its shortcomings has withstood time quite well.

      And Perl (why do people think it's all caps?) makes my programming life worth living.

      --

      The evaluation of an action as 'practical' . . . depends on what it is that one wishes to practice.
    8. Re:Two things for me by warmi · · Score: 1

      Xlib is actually one of the more consistant and predictable C APIs out there.
      Posix and unix libc really sucks ( with silly names like "creat" - who that fuck thought that one , how hard was to append one more letter ?)

    9. Re:Two things for me by cduffy · · Score: 2

      No, that's not what he's saying. But *nix coding is more likely to be portable, though I certainly can make no claims for beauty (though I'd say that GTK-based code is far, far more readable than a similar Win32 API or MFC implementation).

      After all, if you're coding on *nix you've likely got users spread across a wide range of platforms, and preferably you code with this in mind. You can be sloppier in Win32-land and nobody notices 'till it's time to do a port. And when that happens, 'yer screwed. :)

    10. Re:Two things for me by Luis+Casillas · · Score: 1

      Yeah, but Unix's legacy is from supporting real timesharing computers (minis from the 70s), while Window's legacy is maintaining compatibility with the 8086 IBM PC and MS-DOS, an 8-bit operating system with no memory management or multitasking.

  10. System Calls by finkployd · · Score: 5

    When you make a system call, you know what is going to happen. No hidden APIs, no undocumented 'features' to bite you in the ass, and it follows well documented standards.

    Finkployd

    1. Re:System Calls by cybrthng · · Score: 3
      Well, you usually do. Your right, its not hidden, but for any programmer to come from Windows to Unix it is simply not documentated as much.

      Sure you can find those rare Unix books that surfaced a few years back that really dug into the internals/libraries and posix standards but they're so damn expensive!

      I'd say give it another year, and the choise will be a no brainer. You will either have A) Windows B) Linux.

      With the likes of kdevelope, and the new Gnome and KDE hitting the streets, any gui developer will feel at home and in control of linux

      OTH, i would love to see java take off more. OH well. It would be nice to follow IBM's Goal of Platform independance. Nothing like using an operating system which is designed for a specific task rather then vice versa.

    2. Re:System Calls by psaltes · · Score: 1

      Well, you'd think that. But, for instance, if you want to fork and call a shell in the background, without the background process zombifying when it finishes, how do you do it? You have to dig through man pages until you find the obscure one that mentions that the way to do this on linux is to set SIGCHLD to SIGIGN, which actually happens to violate POSIX, but that's how it works in linux anyways.

      Now, of course I'm not the most experienced c/linux programmer, or at least I've forgotten how to do most of it. So I'm likely to be missing something. But this seems like an undocumented 'feature' to me, that violates well documented standards, but is kind of important for some things. (I just wanted gaim to call another program to play sounds instead of using its builtin functions - a zombie process for each sound playing fills the process tables right quickly)

    3. Re:System Calls by peter · · Score: 1

      > ... for any programmer to come from Windows to Unix it is simply not documentated as much.

      You haven't found libc.info yet, have you. Open an xterm and run info libc. (or use emacs's info reader mode.) Press i to search the index for e.g. socket or getopt or thread. The info page has _good_ explanations and understandable examples that help you figure out how to do what you want to do. Of course, it only covers libc, not graphics programming. Most of the info is applicable to C in general. I do scientific computing at work, but JDS Uniphase has a tight-ass IT dept that won't let me use Linux. I do C programming on windoze 98, and I find the libc info page _very_ useful. I compile with mingw, so my code is linked again MS's C library.
      (info runs under cygwin, so I usually use that. I never got used to using emacs's info mode.) I would go insane without cygwin and emacs! If I wasn't just working here for the summer, I'd quit unless they let me use Linux.)
      #define X(x,y) x##y

      --
      #define X(x,y) x##y
      Peter Cordes ; e-mail: X(peter@cordes , .ca)
  11. It's the interoperability by The+G · · Score: 1

    If I write code to run under Linux, there's about a 90% chance that it will compile and run without changing a single line on Solaris, AIX, SCO, and BSD. In fact, with Cygwin and gcc, it's even got a fair shot at running on Win32.

    If I write code to run under Windows, it'll run under windows. This year.

    Really, is this a hard question?
    --G

    1. Re:It's the interoperability by fprintf · · Score: 1

      This is not a fair statement because you would not necessarily be writing similar programs.

      If you are writing a command line program for Unix, then yes, your statement could very well be true - and the Cygwin version would run inside a DOS window. However, consider that you write a similar GUI program - because Windows is more than just an OS - on Linux, say for X. How likely is it to run on every version then? Probably not likely - just like in Windows, you need to ensure that everyone is using a similar version of X, and you will have to expect differences in the WindowManagers.

      I guess my point is, typically your Windows program has a much higher complexity from the start and is designed to interact with the User from a gui standpoint. Unix programs are not all necessarily designed to interact the same way. It's like apples and oranges. You could say exactly the same thing about DOS vs. Windows.

      --
      This post brought to you by your friendly neighborhood MBA.
    2. Re:It's the interoperability by Znork · · Score: 2

      Windowing toolkits like GTK+ are portable across most or all unix platforms. It changes nothing. Use autoconf/automake/gcc and you get an even higher compatibility degree (because those tools know about the 'features' of the os's and what to define/include/etc). Writing GUI applications I've had them compile flawlessly on linux, aix, hpux and solaris without even thinking about compatibility. I run into more problems with network code portability than I do with GUI portability.

  12. Development can occur on any platform by AndrewSchaefer · · Score: 4

    Where I work our developers use windows boxes because that interface is simple for them. They write the code under cygwin and compile with GCC. They can take their code wherever they want since they use a standard compiler. It's not about forcing an OS on people, it's getting them to use tools that will port easily. If they used visual studio or some other propriatary tool it would make things a hell of a lot more complex. The software that they write actually runs on Sun boxes with solaris 7. If you want to push Linux, push GCC. Once they can port their code they will be a lot happier to hear about what else they can do in Linux. I have found that they are most interested in A) a good text editor (emacs or vi) B) Good windowing interface C) ability to display video output from their apps (remote X session or local execution) If that all works fairly simply, I don't think they care a whole lot about what they are actually using.

    1. Re:Development can occur on any platform by perfecto · · Score: 1
      Where I work our developers use windows boxes because that interface is simple for them.

      i'm in a similar situation. for my purposes, i have not found an editor as good as or better than scopeedit for non-windows environments. i've tried various folding editors (ae, fe and a few others) but nothing does the job as well as scopeedit. this (and quicken) has slowed down my move to an all linux box!

      --
      J Perry Fecteau, 5-time Mr. Internet
      Ejercisio Perfecto: from Geek to GOD in WEEKS!

    2. Re:Development can occur on any platform by notdedyet · · Score: 1
      One thing that I don't see in any of the discussion is the difference in programming method used by the two operating systems. Unix processes are essentially sequential. Windows, on the other hand, is essentially event-driven. If you don't take these differences into account, then you will tend to find yourself preferring what you are used to.

      One other comment: there is a certain benefit to using the same environment that your users will be using. Quirks (and each OS has some) will be more apparent to you before your users have to suffer through them.

  13. Your target audience? by Psiren · · Score: 2

    I don't know about anyone else, but the programs I develop are intended to run under Linux, so I develope under Linux. If I was intending to develop Windows apps, I'm sure I'd develop them under Windows. Yes, there are cross platform development environments, but to be frank I couldn't care less about Windows (95 has just trashed two motherboards for me so I'm in a very anti-Windows mood atm).

    Anyway, what I'm saying is, if the programs are intended to be run only under Linux, Linux is a good choice for development, is it not? ;-)

    Now weary traveller, rest your head. For just like me, you're utterly dead.

    1. Re:Your target audience? by fprintf · · Score: 1

      How on earth does an OS trash 2 motherboards? I would be if you can prove the OS did it, that Microsoft would be willing to reimburse you for your expenses - a) to have you be quiet about it and b) to fix an obviously horrible bug.

      Let us know!

      --
      This post brought to you by your friendly neighborhood MBA.
    2. Re:Your target audience? by Psiren · · Score: 2

      I bought a new KA7 board and moved my old disk across from my old system. I booted the machine up into Linux and it worked just great. I then proceeded to boot into Windows 95 in order to install the new motherboard drivers etc. Windows did its usual clucnking around and finding new hardware then asked me to reboot (no option to install drivers yet). I did this and bang, nothing. No POST, no Video.. sod all. I thought it was just a coincidence and that the board was faulty so I had it replaced (this time with a KA7-100). This had been running fine with Linux for a week until yesterday when I thought I'd give Windows a try again. And guess what... reboot... bang.. no board. Coincidence my arse. Windows is fucked ( and no, its not a virus as the windows partition has hardly been used in 2 years and is neither networked nor had any programs added for a long long while). I'm nuking Windows when I get my board back. Here endeth the lesson.


      Now weary traveller, rest your head. For just like me, you're utterly dead.

    3. Re:Your target audience? by Psiren · · Score: 1

      Okay.. so explain what I did wrong then?

      Now weary traveller, rest your head. For just like me, you're utterly dead.

    4. Re:Your target audience? by mpe · · Score: 1

      I would be if you can prove the OS did it, that Microsoft would be willing to reimburse you for your expenses

      Only if it happened to someone senior at an OEM or a member of a government (i.e. someone who could give Microsoft real hassle) otherwise they'd just point out the licence clause.

    5. Re:Your target audience? by mpe · · Score: 1

      This had been running fine with Linux for a week until yesterday when I thought I'd give Windows a try again. And guess what... reboot... bang.. no board. Coincidence my arse. Windows is fucked ( and no, its not a virus as the windows partition has hardly been used in 2 years and is neither networked nor had any programs added for a long long while)

      Maybe Windows is a virus. The silly thing is that whilst their are BIOS's which see LILO as a "virus" there are none, AFAIK, which complain about any version of Windows/DOS.

    6. Re:Your target audience? by pornking · · Score: 1

      It sounds like windows hosed the bios settings. Try setting the jumper to clear the CMOS. Windows can sometimes get funny when it is moved from one chipset to another.

      --
      pornking
    7. Re:Your target audience? by Psiren · · Score: 1

      Read my above reply. I'm not making it up... I'm just stating what happened. If you can explain it then please do. But don't presume that I'm wrong just because it goes against your beliefs. I have heard of 95 trashing a BIOS on another board so it s not unreasonable to assume it can do it to mine too. Having said that, it maybe an amazing coincidence. Then again...

      Now weary traveller, rest your head. For just like me, you're utterly dead.

    8. Re:Your target audience? by Psiren · · Score: 1

      Done it, several times.. reseated the cards, CPU and DIMM's.. removed the battery for a day... its not having it. I tried for 3 days on the previous board and got nothing.

      Now weary traveller, rest your head. For just like me, you're utterly dead.

    9. Re:Your target audience? by John_Booty · · Score: 1

      95 has just trashed two motherboards for me so I'm in a very anti-Windows mood atm

      Let me get this straight... Windows trashed your *motherboards*? WTF? I'd like to hear how this happened....

      It's pretty hard for software to trash hardware, unless you overclock your videocard to 800MHZ or try to run your crappy old CGA monitor at 200HZ or yank the power cord during a BIOS update or something...

      --

      OtakuBooty.com: Smart, funny, sexy nerds.
    10. Re:Your target audience? by creepy_mofo · · Score: 1

      I don't know about Windows itself trashing a motherboard, but doesn't the CIH virus attempt to wipe out your EPROM? Perhaps this is what is happening.

    11. Re:Your target audience? by Rombuu · · Score: 1

      You probably didn't ground yourself and blew something out when fiddling with the motherboards.

      Come on Occam's razor...

      --

      DrLunch.com The site that tells you what's for lunch!
    12. Re:Your target audience? by Zorikin · · Score: 1

      > You probably didn't ground yourself and blew something out when fiddling with the motherboards.

      So what you're saying is that he blew something out, ran linux for a week without incident, before windows, upon starting up, finally hit that 'something' and somehow hosed the rest of the board?

      Occam's razor isn't going to help you here ...

    13. Re:Your target audience? by Psiren · · Score: 1

      Twice? And they both fail immediately after rebooting from Windows? Despite being permanently grounded? Nope.. don't think so.

      Now weary traveller, rest your head. For just like me, you're utterly dead.

  14. Do what you know. by kwsNI · · Score: 4
    It's always easiest to develope on what you know. If you're not familiar enough with Unix to know it's advantages, you probably won't have the experience with it to use it to program.

    I'd still recommend checking it out or you'd never be familiar with it. I just don't recommend anyone wiping out their Windows partition, running down to the store and buying Linux and think that they can be a Unix programmer. Learn Unix first and when you know it well enough, you'll WANT to program with it.

    kwsNI

  15. More power by heikkile · · Score: 2

    I see the difference between Ms-DevStudio and all the Linux tools a bit like the difference between coding in VB and C++. If all you need is a quick way to put up a simple program, it is easier in DevStudio and all its wizards that create stuff for you. But once you need to maintain this code for a while, or wish to do something the wizards did not provide for, you start to run into problems. Under Linux the initial costs of starting up are a bit higher, but once you have a project going, there are (almost) no limits to what you can do, all files are in documented formats and plain ASCII, so you can just go and edit them. Distributed projects are easier to maintain, with a publicly available CVS repository where anyone can get the latest development version, and a standardized way to submit patches etc. And of course the scripting facilites under Unix make it so much easier to make (semi)automatic regression tests and other advanced stuff..

    --

    In Murphy We Turst

  16. Let me count the ways by FascDot+Killed+My+Pr · · Score: 5

    I spent several years developing on Windows (3.1 and 95, mostly). The last 7 months have been on Linux (exclusively). Here's my opinion: I will quit my job before I will spend as much as a week coding on Windows again.

    1) Multi-tasking: Booting into Windows makes me feel claustrophobic now. I can start multiple programs but if one of them hangs (like Exchange) they ALL do. If you are like me you like to be doing several things at once (emacs here, netscape there, news reader the other place, etc). This is harder (or even impossible to the extent I do it) under Windows.

    2) Determinacy: It used to be that when a program crashed I'd try running it again. Then I'd reboot and try again. Under Linux if it crashes I KNOW it was the program that did it (or course there may be environmental factors, like config files).

    3) Source code: In the course of just 7 months, I've had to inspect the kernel code twice (and change it once).

    4) And then there's all the little things: DLLs. Installers. Command line tools. Now that I've learned how to use the "find" command...well, there's no superlative strong enough to get across how much I prefer Linux.

    Here's what you do: Go back to your friend and find out what he hates most about developing under Windows. Then show him how that isn't an issue under Linux. "Linux, it has something for everyone."
    --
    Less money, less admin, less machine--more power

    --
    Linux MAPI Server!
    http://www.openone.com/software/MailOne/
    (Exchange Migration HOWTO coming soon)
    1. Re:Let me count the ways by Wiener · · Score: 1
      2) Determinacy: It used to be that when a program crashed I'd try running it again. Then I'd reboot and try again. Under Linux if it crashes I KNOW it was the program that did it (or course there may be environmental factors, like config files).

      This is absolutely, positively the most compelling reason for developing under Unix. Staying out of DLL hell is a very close second.

    2. Re:Let me count the ways by RedShodan · · Score: 1

      I spent 2 years developing in Windows 95 and Dos. I as well, will never work on those platforms again. Let me add to FascDot's list:

      1) The single most important point. Absolute memory addressing in Windows is a sin. Since all programs use absolute memory addressing, when you load a program after another, that program has different addresses for any pointers that it has. If you have a bad pointer variable which causes a crash and you load the program up the debugger, the behavior of the program changes 9 times out of 10. Makes the debugger useless.

      2) Simple stability of windows itself. A Dos mode program is even worse. And working on a dos mode program in Windows does not help at all. It just makes the reboots take longer. I have never come across such a problem in Linux in the 7 years of programming I've done on it.

      3) Quality of system libraries. Windows libraries are horrid. Microsoft Foundation Classes are I think the worst GUI toolkit I've ever seen in my life. The most buggy and the most static. I personaly do not like static GUI's for a program.

      I can go on and on, but I think I'll just go back to work and program in Linux. :)

      --
      RedShodan --------- Never underestimate the bandwidth of a station wagon full of tapes.
    3. Re:Let me count the ways by dattaway · · Score: 2

      To be fair, point #1 isn't valid for NT.

      I work at a manufacturing plant that decided to use NT to control its production lines. When the server quits or refuses to stop taking connections, all the NT clients start bluescreening or hanging. Believe me, that gets your attention every time.

    4. Re:Let me count the ways by AndyS · · Score: 1

      >>I work at a manufacturing plant that decided to use NT to control its production lines. When the server quits or refuses to stop taking connections, all the NT clients start bluescreening or hanging. Believe me, that gets your attention every time.

      I go to Imperial College and when our NFS file server dies, all the Linux boxes effectively die. It would be interesting to know potential solutions to this (although to be honest, being sans home directory is a touch useless anyway :|

      The Windows boxes can still login and do stuff because their registry info is served by a (pretty stable) NT box

    5. Re:Let me count the ways by JimStoner · · Score: 1

      I've had programs crash NT say in and day out. Were you only running Freecell?

    6. Re:Let me count the ways by tjwhaynes · · Score: 3

      4) And then there's all the little things: DLLs. Installers. Command line tools. Now that I've learned how to use the "find" command...well, there's no superlative strong enough to get across how much I prefer Linux.

      Several extra tips on that one. For those times when "find" just isn't quick enough, run "updatedb" as a cron task every night at 4am and use "locate" to near-instantly pull filenames out of the database that updatedb builds. Of course if you are doing things like "find . -cmin -60" then this doesn't help, but then you really do want find.

      Of course, you can get fancy after that piping the argument into other commands or into other command arguments (using xargs). But that is the beauty of Unix - everything plugs together!

      Cheers,

      Toby Haynes

      --
      Anything I post is strictly my own thoughts and doesn't necessarily have anything to do with the opinions of IBM.
    7. Re:Let me count the ways by SurfsUp · · Score: 3

      Here's my opinion: I will quit my job before I will spend as much as a week coding on Windows again.

      I *did* quit after it became clear management wasn't going to let me develop on Linux. I'm much happier and productive now - also better paid :-)

      4) And then there's all the little things: DLLs. Installers. Command line tools. Now that I've learned how to use the "find" command...well, there's no superlative strong enough to get across how much I prefer Linux.

      Hooboy, you're gonna cream when you discover "locate"!
      --

      --
      Life's a bitch but somebody's gotta do it.
    8. Re:Let me count the ways by customcpu · · Score: 1

      I think micro$oft considers this a feature :) I believe it is called MS enterprise server monitoring.

    9. Re:Let me count the ways by Bassthang · · Score: 1
      To be fair, point #1 isn't valid for NT. Bollocks is it.

      Scenario: Perl/CGI development.

      Let's say I have coded an infinite loop in my script (not that I would actually do anything as daft as this :-). Under Apache I can log in as root and quickly kill the httpd process (10 seconds). In NT I have to log out, log in as Administrator, restart IIS, log back in as me, and restart my development environment (1+ minutes). No contest. And this is assuming that IIS is running on my development machine. No contest.

      --
      "What I look forward to is continued immaturity followed by death."
    10. Re:Let me count the ways by Mondo54 · · Score: 1
      --

      But isn't the purpose of the Doomsday machine lost if you keep it a secret!
    11. Re:Let me count the ways by longfalcon · · Score: 1

      When a prog in NT crashes, it crashes lonely, and by itself. in 2 years of NT use, it crashed four times, all because of some royally screwed up drivers.

    12. Re:Let me count the ways by Malc · · Score: 1

      "Quality of system libraries. Windows libraries are horrid. Microsoft Foundation Classes are I think the worst GUI toolkit I've ever seen in my life. The most buggy and the most static. I personaly do not like static GUI's for a program. "

      But you have the source. Why not fix and rebuild?

    13. Re:Let me count the ways by theonetruekeebler · · Score: 1

      Oh good--yet another closed-source hack of dubious reliability you have to wedge in to an MS product to add a desperately needed bit of functionality that has been a standard part of Unix since the 1970s.

      --

      --
      This is not my sandwich.
    14. Re:Let me count the ways by TummyX · · Score: 1

      Excuse me? how is this a 'hack'.

      NT has had CreateProcessAsUser since it's creation.

      If you want to see hacks and copies of another OS. Look to JAVA, GNOME and KDE.

    15. Re:Let me count the ways by DrCode · · Score: 1

      Yes... When I interviewed for my current job, I made it clear to the hiring manager that I would do my development on Linux (or Unix) platforms. It was fine with him; but after a week I was transferred to a different manager, who's constantly chiding me (or threatening...) because I won't switch to Windows like the rest of his group. And we're developing Java!
      As another data point: I've got some HUGE java source files (automatically generated by another tool). On my Linux machine, each compiles in about 15 secs. with javac, or in 2 secs. with the jikes compiler. But the Windows machines, with equivalent hardware, take several minutes, and occassionally crash. And I'm working on these files all the time. Could this be why my coworkers are always working weekends, while I never do?

    16. Re:Let me count the ways by The_Alan · · Score: 1
      1) Multi-tasking: Booting into Windows makes me feel claustrophobic now. I can start multiple programs but if one of them hangs (like Exchange) they ALL do. If you are like me you like to be doing several things at once (emacs here, netscape there, news reader the other place, etc). This is harder (or even impossible to the extent I do it) under Windows

      For a moment, let's just forget about the fact that a crashed program can take the OS with it in NT/98 and just focus on Multi-tasking itself. I work on a proprietary database engine which requires doing a lot of wacky things like say...sorting a large amount of data. If I kick off a big sort on *nix, I can go about my business and keep developing without any perceptible performance degradation, while that's running in the background. Try doing the same in Windows (any flavor) and all of a sudden your mouse clicks take 5 seconds to respond and the machine becomes virtually useless. The process/time sharing/swapping management is so vastly superior on *nix that this alone is a selling point to me.
    17. Re:Let me count the ways by Ergo2000 · · Score: 1

      What were YOU running? I develop on NT, now 2000, every single day and have done so for years. I leave my PC on 24 hours a day, and reboots are EXTREMELY rare and are usually the result of a power outage.

      I crash programs left and right all day and the vast majority of the time kill task takes care of it. On the odd occassion that the explorer.exe has been corrupted (usually through spurious shell communications) I kill it and restart it (it doesn't require a system reboot).

    18. Re:Let me count the ways by Mondo54 · · Score: 1

      Heh? "Closed source hack" or not, now you don't need to logout/login anymore, as you were so used to doing. Just trying to help, and you spit back venomous UNIX bigtry? and to #533, isn't the whole point of this discussion about development environments? UIs, GUIs and how they help you get stuff done are an important part of that :)

      --

      But isn't the purpose of the Doomsday machine lost if you keep it a secret!
    19. Re:Let me count the ways by benwb · · Score: 1

      Took about 30 seconds to find this on msdn.microsoft.com- not quite as nice as runas, but it comes with complete source code. Interactive Client Process.

    20. Re:Let me count the ways by Roundeye · · Score: 2

      Why bother?

      --
      "Cause there's 40 different shades of black, so many fortresses and ways to attack, so why you complainin'?"
    21. Re:Let me count the ways by Malc · · Score: 1

      I was making fun of all the open source advocates. They constantly tell us that is one of the big benefits. They also constantly slam Microsoft for being so closed-source and are thus conveniently short-sighted when they need to be.

    22. Re:Let me count the ways by ericfitz · · Score: 1

      Well obviously you wrote your database incorrectly. I regularly run programs which are CPU- and resource-intensive on my system, and Windows NT or 2000 ALWAYS stays responsive. Why? Because I bump down the thread priority of the hogging process' threads. The only time you run into this problem is when you boost the priority of a thread above the GUI (which is hard because the foreground app gets a +2 priority boost), or because you've got too many interrupts occurring (which is usually a hardware problem or a bad driver).

    23. Re:Let me count the ways by ericfitz · · Score: 1

      Hmmm. Or under NT4 you could just run an AT job to have the system NET STOP IISADMIN, or use SUSS.EXE (the NT SU service in the RK), or in Windows 2000 you could use RunAs...

      I am sick and tired of people bashing NT because they are not competent enough to know how to use it. It is DIFFERENT than *nix, but that does not make it inferior.

    24. Re:Let me count the ways by dylan_- · · Score: 1

      NT has had CreateProcessAsUser since it's creation.

      Is there a 'runas' for NT4? I couldn't find it on the MS site...

      dylan_-


      --

      --
      Igor Presnyakov stole my hat
    25. Re:Let me count the ways by TummyX · · Score: 1

      su comes with the reskit.

    26. Re:Let me count the ways by periscope · · Score: 1

      Some interesting comments, however, let me suggest that you introduce yourself to the "locate" (often now slocate) command. It builds a database of available files (via anacron ("cron") or whatever...) and then allows you to very quickly locate files without waiting for find.

      --
      Jon.

      --
      http://www.jonmasters.org/
  17. Consistent API. Source Available. by 1010011010 · · Score: 3

    I find that Linux is more consistent that Windows. Unix has a philosophy -- everything is a file. It's not followed 100% (as in Plan9), but it's pretty widespread. Windows has no philosophy; it feels like a mash of unrelated ways of doing things.

    Also, with Linux (any open-source, really), I can find out what the bugs are. I've been programming with imagemagick recently and ran across a situation where the headers didn't match the documentation. I just lookined in the .c file at the implementation of the function in question, and my questions were answered.

    If he's good at Windows programming, though, good for him. It's not easy to be a *good* Windows programmer. And he probably makes good money at it.

    --
    Napster-to-go says "Fill and refill your compatible MP3 player", which is a lie. It's not MP3. It's WMA with DRM.
    1. Re:Consistent API. Source Available. by MonkeyMagic · · Score: 1

      If he's good at Windows programming, though, good for him. It's not easy to be a *good* Windows programmer.

      So refreshing to here this on slashdot. I was beginning to believe that there weren't any good Windows programmers (bar John Carmack).

    2. Re:Consistent API. Source Available. by whoop · · Score: 1

      Harping on this "you have the source" point can never become redundant. So, I feel compelled to say you have the source code to everything. From the kernel, to system libs, to the editor (vi naturally), to the compiler, to whatever other toolkits you use.

      I learned C from a guy posting tutorials on USENET some seven years ago. Nothing helps you learn better than looking through example programs and tweaking them. With all this free software, there are billions of lines of code to look at.

    3. Re:Consistent API. Source Available. by shren · · Score: 1

      Windows has a philosophy. You know Unix, "Everything is a file!". Well, meet Windows, "Everything is a problem!".

      --
      Maybe the state's highest function is to grind out insoluble problems. (Zelazny, Hall of Mirrors)
  18. Why develop for Linux? by JCMay · · Score: 4
    I'll tell you why I'd develop for Linux, but this comes from somebody that's not a professional software engineer-- at least not on a regular basis.

    First, I write programs that fill needs that I see. The last desktop-based application I wrote, IntuDex, was a mailing list manager for the Amiga. It was much simpler to use than the relational database that my user group, Amiga Atlanta, had been using. Also, I could give it to anybody I wanted, an important fact. As the newsletter editor I depended on the secretary/treasurer for mailing labels. My program facilitated data sharing between us, and I didn't have to buy a $300 program to do it!

    Second, I'm a big fan of simplicity. Even as an RF/Microwave engineer I find beauty in reducing complexity (try getting my program to believe that when they see this board I'm working on!). Win32 does not provide a "beautiful" environment, at least from my point of view. For example:

    if(IntuitionBase=OpenLibrary("intuition.library,NU LL))
    {
    if(win=OpenWindow(...))
    {
    /* do program stuff here */

    CloseWindow(win);
    }

    CloseLibrary(IntuitionBase);
    }
    is pretty much all you need to do to open a window under the Amiga's operating system. Isn't it like a page and a half of code under Win32?

    For me programming should be a joy, not a chore. It's realy as simple as that!

    1. Re:Why develop for Linux? by TummyX · · Score: 1

      That's why I actually really like Windows Foundation Classes. That's right, the windows classes for java. They're actually pretty neat...and basically as simple as that. And they support data bound controls (unlike Swing).

      Pretty neat if you don't like MFC.

      What I do is split my project into components, use VC++/ATL to write the COM objects for all the logic, then I usually use J++ or VB for the UI.

    2. Re:Why develop for Linux? by Emil+Brink · · Score: 1

      Hey, that's interesting! I grew up hacking on the Amiga, but mainly learned C over in Linux-land... I never did much programming in AmigaOS, but even when I did, I don't think I knew enough C for it to seem weird, something your snippet above does today. ;^) The thing is, the Amiga's handling of libraries (.so:s, or DLL:s) is weird (from a C perspective). You open (load) a library by calling OpenLibrary(), and get a pointer known as the library base back. In assembly, you would then jump into a function table at an offset from that pointer. In C, you don't use the pointer, you just magically call the library function directly, relying on code in stubs to use the library base. This doesn't seem very clean today, really... It would be cleaner if you actually used the library base as an explicit function table, e.g. IntuitionBase->OpenWindow(...) and so on. Hm. OK, just a thought, move along now people.

      --
      main(O){10<putchar(4^--O?77-(15&5128 >>4*O):10)&&main(2+O);}
    3. Re:Why develop for Linux? by Vanders · · Score: 1

      Mmmm, certainly programing to the Amiga API was nice. But i don't think it's any more or less complex when it comes to Win32 v's POSIX/X (I.E, both horribly over-complex). If you've ever moved from GUI coding on the Amiga to trying it on X (As i have done), you'll probably run away crying. I know i sob every time i try.

      As an example, take a look at a "Hello World!" example for X ;)

    4. Re:Why develop for Linux? by gserre · · Score: 2

      ... is pretty much all you need to do to open a window under the Amiga's operating system. Isn't it like a page and a half of code under Win32?

      With Visual Basic : Win.Show

    5. Re:Why develop for Linux? by Skorpion · · Score: 1

      You forgot the window parameters filling part, which was a bit longer, but not much. Alex --

    6. Re:Why develop for Linux? by Surak · · Score: 2

      No, you got that last line wrong...

      Visual Basic = Win.Slow

      Note the changes in bold face :)

      Visual Basic doesn't count because it provides a high-level interface to Win32. The same code generated by a page and a half of C/C++ code is the same code generated by Win.Show in VB.

      Here's a question - open to all - if you have an acquaintance who you are hideously attracted to, and want to see about exploring the relationship BUT you don't want to inadvertently queer the current, tenuous friendship, what's a good way to do it?

      Plus, VB is okay for some work, but the code it produces is too bloated and slow for systems work, for example. VB is also not well-suited for large systems, either.

    7. Re:Why develop for Linux? by Surak · · Score: 3

      Here's a question - open to all - if you have an acquaintance who you are hideously attracted to, and want to see about exploring the relationship BUT you don't want to inadvertently queer the current, tenuous friendship, what's a good way to do it?

      How the hell did that get in there?????

    8. Re:why develop for linux? by Felinoid · · Score: 1

      People who do that are really asking for it when they write open source software.

      Ok let's face it.. this happends. It happends A LOT.

      But when your porability or code is broken making your code available is really asking for it.

      This happends with closed source as well...

      But unlike open source... You paid for it and now it's your problem...

      Look at the comments in the Linux Game Tomb....
      A lot of bad code but guess what.. the authors really catch it.

      "Look at me I'm an idiot"
      I guess the total sum of idiot programmers for Linuix prove how easy it is to code for Unix.

      --
      I don't actually exist.
    9. Re:Why develop for Linux? by warmi · · Score: 1

      That's unfair comparison. If you wanna fair one look at Qt's "Hello World".
      But, Motif one would be terrible ...

    10. Re:Why develop for Linux? by Vanders · · Score: 1

      I've seen the GTK+ one, and that was almost as scary. I inetend to go look for an online Qt tutorial when i get the time.

    11. Re:Why develop for Linux? by mav[LAG] · · Score: 3
      I dunno but in answer to the question: tread carefully. I was in the same situation a couple of years ago, decided a fork() or two would solve the problem and now I have two child processes to worry about...

      --
      --- Hot Shot City is particularly good.
  19. Hey I agree! by ghoul · · Score: 1

    I have just started using VB as it is reqd for a project at my company and for the life of me i can't figure out Visual Source Safe!

    --
    **Life is too short to be serious**
    1. Re:Hey I agree! by TummyX · · Score: 1

      Um duh?

      Seeing as VSS is integrated into visual studio, it's much easier to use than other systems like CVS.

      Right click on the file in your project tree, and check it out when you want to use it. After you've finished editing, check it back in.

      What's the problem?

    2. Re:Hey I agree! by dthable · · Score: 1

      Visual Source Safe? We had to use it on a company project once. We would check in the code at night for the backups and builds but the next day, the code had reverted back to some combiniation of old code and new code. We ended up spending a month working with various consultants before we just gave up.

      It's amazing how much version control a whiteboard and a shared network drive can offer.

    3. Re:Hey I agree! by Palou · · Score: 1

      That supposed "integration" is an absolute joke. The interfaces to VSS from VB and VC++ are radically different, and they only allow you to do a small subset of things compared to the full VSS GUI. Besides VSS is abit of a joke respect to "real" project management. Have you ever had to branch out projects or anything similar? Scary stuff. And let's not talk about version compatibility issues (but then that must be an M$ tradition!)

  20. Linux/Unix is for curious perpetual coders. by Karmageddon · · Score: 4
    Coding under Windows is actually easier. If he's used to it, he will not easily make the switch. The reason it's easier is that the Integrated Development Environments are more comprehensive. There's more automatic code generation, there's plenty of code samples around, and plenty of people and books with deep expertise. Now, a lot of experience and smarts exists in the unix world too, deeper even, but your friend doesn't sound like he's in that world so it will be harder for him to tap into.

    So, why do it? The reason to do it is that the code you end up with under windows is a big steaming pile of non-portability. In many instances, i.e. if it does anything whizzy, it won't even port to other versions of Windows. And there's tons of totally bogus crap you have to deal with in Windows, interfaces not working the way they are specced, weird... ok, one example: quick, allocate a string, and make it work cross platform. Do you want TCHAR, wstring, or any one of six others. Search MSDN, that will help you decide. ha ha ha.

    Unix is for people who like to code everything they do. People who want to write a script to check in and out of source control. This morning, my cable modem was down at home. I whipped up a one line script so it would retry my the net every five minutes so I could make a service call from work and then later today I'll be able to log in from work and get to my home network. (The script: while [ 1 ] ; do /etc/rc.d/init.d/network start ; sleep 10 ; if ping -qc10 207.46.130.45 ; then exit ; else /etc/rc.d/init.d/network stop ; sleep 300 ; fi ; done )

    you just can't do things like that under Windows. Oh, I know, there are tools you can find to do each thing, but it's not in Windows' blood. OK, then there's stuff like how regular the APIs are, how simple the inter-process control, and how network capable your apps will be (X Windows was designed for network use. When my home cable modem comes back up, I'll be able to log in from across the internet and use my several machines at home no different than if I were at home.

    Finally (yes, there's more to say, but I gotta get to work :) you asked about Linux, and it's unix with all the source available. You can look up how things work, no secrets, no frustration with apps that don't quite do what you want. Apps that don't quite do what you want? That's almost the definition of Windows.

    Unix isn't perfect, and Linux isn't perfect Unix, but if you love coding, you'll love coding them.

  21. APIs by The+Iconoclast · · Score: 2

    We are doing windows coding at work. Before all I ever did was do a little bit of *nix coding at home and school, and the biggest difference is that because Linux/GNU/BSD/etc is an Open platform, the APIs are actually followed. You can use code directly from an MSDN examle in your windows project and it won't work. Also under *nix you get all of the excellent POSIX calls. You can't use POSIX under Windows, it's not there. I had to write a string parser for a project we were working on without the use of POSIX regular expressions, and BOY was that a pain in the ass.

    A wealthy eccentric who marches to the beat of a different drum. But you may call me "Noodle Noggin."

    --
    Quando Omni Flunkus Moritati
    1. Re:APIs by nullset · · Score: 1

      I had to write a string parser for a project we were working on without the use of POSIX regular expressions, and BOY was that a pain in the ass. There exists a regex library for windows, hregex.dll i believe.

  22. IDE's are bad for code maintainance by robra · · Score: 5

    I think IDE's are bad for producing maintainable code. When, after 15 years, you find that you need
    to alter a program that was once written using a command line C compiler and make, you can just recompile it using those same tools. If, however
    the same program was written using some kind of IDE
    with its own kind of project files and stuff you're going to have a hard time finding a copy of the same 15 year old IDE the program was developed with, not to mention a computer that can run the thing!

    I think IDE's are only good for write-once programs.

    1. Re:IDE's are bad for code maintainance by SlaterSan · · Score: 1

      I really don't agree with this. I develop on WinNT using Visual C++ for a cross-platform project on Win32, Irix 6.5, SunOS, and Linux. We don't use cross compilers, but the IDE makes it worth it. Code completion and having the MSDN library is _MUCH_ easier than sifting through man pages. The IDE gives you tools to work with, you don't have to use the code they CAN add. My code looks almost identical to stuff that's developed by hand, but it took me less time to do. I don't think I'll be able to make the switch easily to strictly linux coding till kdevelop/codecrusader/codewarrior get better.

    2. Re:IDE's are bad for code maintainance by Bassthang · · Score: 1
      you're going to have a hard time finding a copy of the same 15 year old IDE the program was developed with

      ... or someone who can get it to work in a reasonable amount of time with few or no docs.

      --
      "What I look forward to is continued immaturity followed by death."
    3. Re:IDE's are bad for code maintainance by madstork2000 · · Score: 1

      I've not done too much with IDE's but another example of a different kinda of codeing is the crap that WYIWYG HTML editors. Just like the IDEs they produce such clunky extraneous code that makes it nearly impossible to hand maintain an exant project. It sometimes seems simpler to start over, with a new page (or new objects, classes etc when your in the IDE.) I suspect that it is the IDE that has caused WIN2K and the rest of the bloated packages MS produces to get that way. Every time they add a new developer, he/she adds their own set of specialized functions, and leaves the existing ones there so as not to "break" anything (as if the program is not inherently broken. . . ).

      -MS2k

    4. Re:IDE's are bad for code maintainance by ceo · · Score: 1

      I don't see where this problem is unique to IDE's... makefile incomaptibilities are nothing new in the *nix world either. And Visual C++, at least, can be set to automatically generate makefiles along with the project file. I wouldn't use an IDE that *didn't* have this capability, for precisely this reason.

    5. Re:IDE's are bad for code maintainance by Denor · · Score: 2

      Actually, I stopped using KDevelop for a reason like this.
      Don't get me wrong - I loved KDevelop (and still do) and wrote a great many programs with it. But I discovered that when I went back to these programs, I had to load up the IDE every time, and then use the IDE's controls to find the functions I'd written (whereas normally I put functions in alphabetical order).
      KDevelop works fine for me as long as I'm writing a project for myself, but if I plan on releasing it to others, I can't use it. My code isn't as clean, and I don't have as much control over automake/autoconf as I do working by hand. (Looking at the automake/autoconf stuff that KDevelop created was, however, instrumental in helping me learn it)
      Of course, since it is open source, I could always contribute code to the KDevelop crew.... :)

      --
      -Denor
    6. Re:IDE's are bad for code maintainance by jonathanclark · · Score: 1

      This is a good point, but MSVC can produce Makefiles from your project file with a click of a button. Plus their project file format is text and pretty easy to parse yourself. I've written Makefile -> .dsp convertors because the MS ide is so nice.

    7. Re:IDE's are bad for code maintainance by ckaminski · · Score: 1

      I disagree.

      IDE's are excellent tools. If you use standard compilers, linkers, and dependency tools underneath, like GCC, and gmake.

      The best IDE is one which contains a decent editor with Windows Style keymaps, (or modifiable ones), the ability to replace the editor with one of my choice, and the ability to reconfigure every step of the build process.

      And bases it's project configuration off of an input makefile (Oh, and does decent (non-extraneous text) makefile maintenance).

      IMHO

  23. *rolls eyes* by TummyX · · Score: 1


    I pointed out the big flora of tools for manipulating files and text, I pointed out the stability of the system


    I see, I really love it how Unix has 10000 text editors. But I'd prefer one that works, and is easy to use. Does XEmacs support intellisense? No, I didn't think so. What's XEmac's goal? To demonstrate bad HCI by having the most deeply nested menus ever seen on the face of the earth.

    And stability isn't an issue for many windows developers who use NT/2000. Which is overall more stable when you consider using X on linux.


    I can say that I would highly prefer the freedom of developing with Open Source rather than depending on a closed environment


    Yes I have some friends who can't program that well who refuse to use anything WITHOUT the source code. When I ask them what they do with the source code, they say, they use it to build the binary. Oooooh, I wish I could do that on windows.

    The thing about Windows development is it's blackbox. You shouldn't need to know anything about the components except thru the interfaces. Makes things much more stable....guesss what Unix is starting to do. That's right, copy Windows...so far - poorly.


    (and ActiveX's dependence on the Registry)


    Hello? Mcfly!

    So what? Oh damn, I really hate it how Unix relies so much on the file system. Talk about dimented understanding.


    I prefer makefiles and source code, where everything is specified in text and there's an open syntax describing all aspects of the build process.


    I see, so you've never looked at your project settings? All the compiler options, build options are explained there with controls AND with plain text.


    MFC SDI (single-window) project and convert it to an MDI (multi-window in a single pane) project? If it doesn't involve creating a new project from scratch, I'd be highly surprised.


    Maybe you should like learn MFC in addition to using the wizards?

    1. Re:*rolls eyes* by -brazil- · · Score: 1
      I see, I really love it how Unix has 10000 text editors. But I'd prefer one that works, and is easy to use. Does XEmacs support intellisense? No, I didn't think so. What's XEmac's goal? To demonstrate bad HCI by having the most deeply nested menus ever seen on the face of the earth.

      Well, you just said yourself that Unix has 10000 text editors, so if you don't like XEmacs, don't use it! Use kwrite, whatever.

      --

      The illegal we do immediately. The unconstitutional takes a little longer.
      --Henry Kissinger

    2. Re:*rolls eyes* by WMSplat · · Score: 1

      The incrediblely key word in your entire rant was "shouldn't". In theory, yes, Windows APIs are like a black box, and you don't need to know how they are implemented because their purpose is documented and correct. That you still believe this theory suggests you have not dealt enough with Win32 API programming.

      As for Unix's use of the "filesystem", at least it has a central design! Windows APIs are rarely consistant and always changing. Every day I am reminded of the lack of foresight of the API programmers when I use ...Ex() functions. In Unix, the filesystem is transformed into a global namespace that provides as much uniformity as you want.

      I myself have never been able to kick Win32 for more than a week, however, when I am in an anti-Microsoft mood and boot to Linux, the beauty of it all is amazing. If not for a few problems (lack of web browser), I would certainly give up Windows completely.

    3. Re:*rolls eyes* by Hamshrew · · Score: 1

      Does XEmacs support intellisense? No, I didn't think so.

      As another poster pointed out, there's an elisp package that does something similar. I think it's for emacs, but I assume it could work for Xemacs, given some tweaking. Unfortunately, my understanding of lisp is less than perfect, although I'm learning fast. Still, it's THERE, just not popular at the moment.

      I agree about the menus, though. Something should be done about that. and a more intuitive placement of options should be used, as well. Then again, I don't find MSVC very intuitive, either.

      --
      - Free tabletop fantasy gaming! Grey Lotus
    4. Re:*rolls eyes* by pallex · · Score: 1

      i`ve found that compiling a program using the IDE is not the same as compiling the program using the options displayed in the ide...you get different output.

    5. Re:*rolls eyes* by Junta · · Score: 2

      Exactly what is intellisense? Personally, I hate
      emacs, but love vi. (Which can be run under
      windows too. I can't think of any features I'd like that vi doesn't have.

      X is not that unstable, bloated, debateable, but still pretty solid, not as solid as the kernel, but solid. At least when X crashes, 97% of the time a reboot is not required. Even if X crashed as much as windows, at least time to recovery is short, as you can immediately restart X without reboot.

      As to the blackbox model, that is plain bs. In the OSS world, most things could be treated as a black box, and work fine. You never *have* to look at source if you don't want. You certainly can't argue that it *hurts* you to be able to see how the calls you need are implemented.

      And dependence on the registry is NOT akin to depending on the file system. That is the dumbest comparison I have ever heard. The registry is a centralized database of settings used by programs stored in a proprietary format in a singular spot on the disk, where if one thing corrupts it, many applications cease to function, a central spot for malicious programs to look for sensitive information. Sure something can corrupt the superblocks of a unix filesystem, but windows filesystem is also vulnerable, if not more so. The registry adds whole new dimensions of problems in security, reliability, and system administration. I have seen registries get so trashed before, and I have grown to hate having to be the administrator of such crap.

      --
      XML is like violence. If it doesn't solve the problem, use more.
    6. Re:*rolls eyes* by James+Ojaste · · Score: 5
      I see, I really love it how Unix has 10000 text editors. But I'd prefer one that works, and is easy to use. Does XEmacs support intellisense? No, I didn't think so

      I'll assume that was sarcasm. While I prefer nvi, Emacs is highly extensible, and nedit is about the best combination of standard idiot-proof gui and configurability you can get, in my opinion. They're all "easy to use", once you've surpassed the learning curve that every editor has. I hate Intellisense, by the way - it slows me down and my keys stop working properly. After a year or two of 9-to-5 coding, you start to vaguely remember the odd property or method... Yes, that was sarcasm. If there's something I don't remember, I'll look it up, but I don't want the editor to slap me around like that.
      Yes I have some friends who can't program that well who refuse to use anything WITHOUT the source code. When I ask them what they do with the source code, they say, they use it to build the binary.

      True, the source is useless unless is used for something. I like having the source (if only to compile it) in order to put everything (binaries & configs etc) where I want them. When you install MS-App 98, you get the choice of where to put the base directory and that's it.
      I also occasionally have to deal with bugs, and unlike your friends, have a clue about what I'm doing.
      The thing about Windows development is it's blackbox. You shouldn't need to know anything about the components except thru the interfaces. Makes things much more stable....guesss what Unix is starting to do. That's right, copy Windows...so far - poorly.

      This actually made me laugh. In the grand "OO theory of everything", you are correct in that no object should need to know the details of any other - just the interface between them. Well. I've done enough programming under Windows to notice the slight (sarcasm again) disparity between the documented interface and the real one. I've even had Microsoft ship me a new version of an API with older docs than the ones I already had! If Microsoft wrote to their own published interfaces, their apps wouldn't compile let alone run, let alone run crash-free. Not that they've achieved the last, of course...
    7. Re:*rolls eyes* by SurfsUp · · Score: 2

      Nice troll.

      I really love it how Unix has 10000 text editors. But I'd prefer one that works

      Try Nedit if you want it to make an easy switch from Windows.

      And stability isn't an issue for many windows developers who use NT/2000.

      That's funny. I developed on NT 4 for a few weeks and I had processes lock up on at least a dozen occasions - other times, I had the system start doing strange things that only a reboot would fix, like displaying the mouse at a displacement from where the hits were actually occuring. ActiveX controls would crash constantly, and couldn't be restarted - also requiring a reboot. On a number of occasions the mouse cursor just froze, for periods up to 30 seconds. Maybe your experience was different, after all, as a Microsoft Troll perhaps you spend most of your time camping on a web browser and not actually developing?
      --

      --
      Life's a bitch but somebody's gotta do it.
    8. Re:*rolls eyes* by TummyX · · Score: 1


      Windows APIs are rarely consistant and always changing.


      What kind of aboslutely CRAP is that?

      Give an example please.

    9. Re:*rolls eyes* by TummyX · · Score: 1

      If you don't bother to give examples, don't bother at all.

    10. Re:*rolls eyes* by frantzdb · · Score: 2
      I see, I really love it how Unix has 10000 text editors. But I'd prefer one that works, and is easy to use. Does XEmacs support intellisense? No, I didn't think so. What's XEmac's goal? To demonstrate bad HCI by having the most deeply nested menus ever seen on the face of the earth.


      There is easy to use and easy to learn. MSVC++ is easy to learn. Emacs is easy to use. Seriously. There is a bit of a learning curve but once you understand the basics it becomes much more clear.

      Another poster in this discussion mentioned that yes, you can get ``intellisense'' in Emacs. Finally, if you are using the menus in Emacs then you clearly havn't tried to use it. IMHO you shouldn't have to use Emacs' menus. (M-x is your friend ;-)


      Finally, the best reason to use Emacs (which I use in windows too, btw) is that when coding, hiting tab, instead of inserting the tab character at the cursor, properly indents the current line. It's great :-)


      --Ben

    11. Re:*rolls eyes* by Old+Wolf · · Score: 2

      Windows gives me much more freedom (speaking as a programmer). I can actually achieve what I want to do quickly, than spending hours wading around in irrelevant details and reading source and trying to figure out if it is even possible to do whatever.

    12. Re:*rolls eyes* by Stonehand · · Score: 1

      Stability is an issue when you've got a build that takes *4 HOURS* of continuous swapping, on a P233 w/ 64MB (this was a couple o' years ago. Happily, I've not needed to run 'nmake.exe' since then...).

      And compared to hacking up an MFC application (hrm, ever extend an MFC widget? Not pleasant -- often the methods you want to override, aren't meant to be) with overkill, or using Xforms and getting it done *cleanly* and quickly...

      --
      Only the dead have seen the end of war.
    13. Re:*rolls eyes* by Hamshrew · · Score: 1

      Quick example sitting in front of me:

      From the MSDN: To test for the existence of a file, you must use the ios::nocreate flag

      From MSVC build window: "nocreate" is not a member of class basic_ios

      That's paraphrased to save typing, but just the example that's pissed me off the most lately.

      --
      - Free tabletop fantasy gaming! Grey Lotus
    14. Re:*rolls eyes* by nerdwarrior · · Score: 1

      You've confused "easy to use" with "easy to learn." Microsoft = easy to learn. Linux = easy to use. Which do you you think is more important in the long run?

    15. Re:*rolls eyes* by Palou · · Score: 1
      I see, so you've never looked at your project settings? All the compiler options, build options are explained there with controls AND with plain text.
      Whatever. If you bothered to read the dosumentation you would've realized that there are many more options that those available through the controls. The workspace/project stuff is absolutely unnecessary, and would be much better to kept in a makefile (I know you can generate those.) At least they are ASCII files, though!
    16. Re:*rolls eyes* by TummyX · · Score: 1

      Um, I'd suggest you update to the latest Platform SDK (June 2000 I think).

    17. Re:*rolls eyes* by Hamshrew · · Score: 1

      Oh, so the code I wrote that was correct in April isn't right in June, for no particular reason? Not to mention that this particular flag is part of the ANSI standard, and should therefore be supported no matter what SDK I'm using. Functions can be removed from a language, though it can be annoying, to further the advancement of the language. But how does removing an ANSI flag help C++?

      --
      - Free tabletop fantasy gaming! Grey Lotus
    18. Re:*rolls eyes* by esper · · Score: 1
      You certainly can't argue that it *hurts* you to be able to see how the calls you need are implemented.

      Not true.

      Knowing details of how an interface is implemented can lead some programmers to write code that is dependent upon the particular implementation. If the interface's implementation is later changed, such code may break.

      Of course, this is a problem with the calling code (and its programmer) and applies to anything that relies on undocumented features, not a problem with the source being visible per se.

    19. Re:*rolls eyes* by asciitxt · · Score: 1
      There's a good paper called "A Critique of the Windows Application Programming Interface" by Diomidis Spinellis, that gives plenty of examples.

      You can find it here

    20. Re:*rolls eyes* by asciitxt · · Score: 1
      Here's an excerpt, in case you don't want to read the whole paper:

      CreatePipe
      returns TRUE for success and FALSE on error.

      CreateFile
      returns a handle to the file object on success and the INVALID_HANDLE_VALUE constant on error.

      CreateFileMapping
      returns a handle to the mapping object on success and NULL on error.

      CreateTapePartition
      returns NO_ERROR on success and one of 15 constants (ERROR_BEGINNING_OF_MEDIA to ERROR_WRITE_PROTECT) on error.

      CreateHalftonePalette
      returns a handle to the palette object on success and zero on error.

    21. Re:*rolls eyes* by TummyX · · Score: 2

      Where did you get the april platform sdk from?

    22. Re:*rolls eyes* by periscope · · Score: 1

      Do not try to post answers to questions that you do not understand.

      --

      --
      http://www.jonmasters.org/
  24. The important thing is your comfort level by substrate · · Score: 2

    There are a lot of compelling reasons to develop under Linux in my opinion. It's important to note that disclaimer in that sentence however: In my opinion. My first experiences with programming were BASIC on a Commodore Pet. While in university I did a lot of programming under UNIX and became used to the pervasive way in which text and data could be handled and manipulated.

    I also realize that if it weren't for this sudden immersion I wouldn't find these reasons all that compelling. I've coded in MetroWerk's IDE under MacOS as well as with the shell-like IDE MPW (Macintosh Programmers Workship). If I had first used an IDE to program I'm not sure I'd ever have really felt as comfortable without one. Most of the reasons that I feel so comfortable programming in a shell environment under UNIX are due to the ability to manipulate data with PERL, sed, awk, sort, cut, paste and so on. I'm not sure that most people get data in alien formats (if you produce the data, you've got some control over the format, if you produce a format that you can't use then you didn't produce a very good format).

    I've toyed with IDE's under linux but haven't ever felt the need to change. Under MacOS I prefer an IDE. Under MacOS X I will probably prefer command line utilities.

    I think the important thing with anything is to be comfortable with what you are using regardless of whether somebody else feels that there is a better opinion or not.

  25. Better UI. by korpiq · · Score: 3


    For a software developer, the system environment is the UI.

    How handily can you find stuff in your log files?
    I use grep and perl for that.

    How often do you have to reboot an unstable system?
    I don't. (well, except for netscape)

    Starting any services required in production in your sandbox without stability or resource exhaustion issues. Oracle, Apache...

    Multiple desktops = almost unlimited number of windows, all neatly organized. This is /not/ the smallest reason. As well as the fact that you can configure your wm to respond in any way you want: kick windows behind each other, etc.

    --

    I think, therefore thoughts exist. Ego is just an impression.
    1. Re:Better UI. by gserre · · Score: 1

      Multiple desktops = almost unlimited number of windows, all neatly organized. This is /not/ the smallest reason. As well as the fact that you can configure your wm to respond in any way you want: kick windows behind each other, etc.

      This is why I like to use an IDE : only one window, everythink on the same desktop

  26. Linux is for developers by jcn · · Score: 1
    GNU/Linux was created by hackers, for hackers, mainly. So if you're a hacker, you're bound to like almost anything you encounter. The documentation doesn't assume you're (computer) ignorant. There is source code if you need more detailed, more accurate, or guaranteed up to date documentation. You'll find a GNU/Linux system to be deterministic, much unlike other systems where every other try may produce a different result.

    More so, if something seems broken, you find out what it is, and you can fix it once and for all, whatever it may be: you have the source code to everything. What developer would want to use a platform that restricts her freedom to do this? For more information see GNU.

    Jan.

    PS: What I really don't understand is, if you're a developer, why not simply give Linux a try (or, why haven't you still given it a try, for that matter)?

  27. On the contrary by FascDot+Killed+My+Pr · · Score: 3

    "Unix it is simply not documentated as much."

    I agree that it's easy to find references to Windows API calls. But it is easier to find documentation on Unix system calls. Just take a system call and do a search on Google. You'll get back 5 tutorials, 4 online man pages (from 3 different implementations) and several mailing list discussions.

    As for expensive books: *shrug* Which would you rather have? One expensive comprehensive book (like Stevens) or 15 "Windows Development Bibles" at $10 each?
    --
    Less money, less admin, less machine--more power

    --
    Linux MAPI Server!
    http://www.openone.com/software/MailOne/
    (Exchange Migration HOWTO coming soon)
    1. Re:On the contrary by warmi · · Score: 1

      Nope. one Petzold book is pretty much all you need.

  28. One Word by LaNMaN2000 · · Score: 1

    Cygwin

    It is a lot easier to port Linux programs to Windows than it is to port Windows programs to Linux. Also, I am just starting to learn GUI programming in C++ and I find some of the graphical toolkits for Linux much easier to use than MFC and the Win32 API. For the functional part of the program, the code (assuming C++) is primarily the same on both platforms.

    --

    ByteMyCode.com: A Web 2.0 code sharing community.
  29. Everything's a file by Stiletto · · Score: 5

    When I moved from Windows and started coding for Linux (and unix in general), what really impressed me was how easy it was to do I/O. You open a file, read/write, and close it. There's none of that IDirectSound2->QueryDeviceAndPrayToGod() crap. It's SIMPLE.

    Need information from about the system? Just read a few files from /proc. You don't have to go find the undocumented hidden Win32 call that only works on Service Pack 3.

    Linux has another advantage in that it ships with vi, emacs, the standard development toolchain, bash, perl, etc., which once you get used to, totally blows Visual C++ out of the water as far as ease of use and customizability goes.

  30. PC does not necessarily imply IDE by alanhunt · · Score: 1

    I recently switched jobs, and went from developing in a Unix (Solaris) environment to a PC environment. What I've discovered is that, with a little effort, you can turn the PC into a development platform similar to *nix. NTEmacs, ActivePerl, A C/C++ compiler, a desktop pager, Apache, and the like are all freely available for the PC, and can be used to build a very open development environment even if you are forced to use a Microsoft OS. Of course, you have to convince the boss that your system is better than the slick packages...

  31. Stuck in bugheaven by Geir+Jakobsen · · Score: 1

    I am a fairly new programmer, and mainly develop for Windows. At work we chose to use Borland's CBuilder and Delphi, and I have had nothing but trouble. I have no real development experience on unix systems, but I do know this: I'd rather learn the tools of the trade for unix, than stand stuck in bugheaven, with nothing but trouble. Open Source rocks.

    --
    -- Geir Jakobsen, Developer, Norway
    1. Re:Stuck in bugheaven by Geir+Jakobsen · · Score: 1

      Oooooh, but I didn't you see. I work fulltime, and then you can be placed on different projects, but I guess you know nothing about THAT! Besides, it was decided by the Justice Department, and how many political figures do YOU influence?!? So go bite at someone else, you coward moron.

      --
      -- Geir Jakobsen, Developer, Norway
    2. Re:Stuck in bugheaven by Geir+Jakobsen · · Score: 1

      I just finished in a project where the all class hierarky was written in Delphi. It was even me who wrote it, and it worked alright, we had no problems at all. So now I am in another project, and not using any of them, well almost. Happy happy, joy joy. =) Linux must be nice to work with, but the brass at work will probably never use it.. Shit happends..

      --
      -- Geir Jakobsen, Developer, Norway
  32. He Should Develop on Linux if..... by quakeaddict · · Score: 1

    .....he likes arcane command line tools. .....doesn't care about productivity (intellisense, integrated debuggers, debugging a web page, its server side scripts, its client side scripts, and binary server side code simultaneously). .....wants to manually create his own MAKE files .....wants to be stuck in a world without a component architecture (i.e. libraries and code sharing vs. binary level object oriented reuse)
    Then by all means, develop under Linux.
    Some might consider this s troll, but what the Linux developer community doesn't get is that Microsoft goes out of its way to take the chore out of programming and allow you to concentrate on the problem you are trying to solve. In many ways you can trace Microsoft's success as a platform to the toolset that allows business developers to get their job done.
    I would also lke to point out that Id software used Visual Studio to create Q3. Here is a quote from Carmack as found in this slashdot article:
    There are plenty of reasons to have issues with MS, but to just make a blanket statement like "everything that comes from microsoft is crap" is just not rational. There are a lot of smart people at microsoft, and they sometimes produce some nice things. There are some damn useful features of MSDEV that I have not seen on any other platform - all the intellisense pop up information and edit-and-continue, for instance.


    --
    I'm still working on a clever footer.
    1. Re:He Should Develop on Linux if..... by -brazil- · · Score: 2
      .....he likes arcane command line tools.

      ... that can do whatever you need, when you need it, while the Windows user is lost when his narrow GUI doesn't offer a checkbox for what he needs.

      .....doesn't care about productivity

      What exactly is "productive" about rebooting because your beta app crashed the system or you're not sure whether the app might work after a reboot?

      (intellisense, integrated debuggers,

      emacs, emacs (if you need it), perhaps kdevelop

      debugging a web page, its server side scripts, its client side scripts, and binary server side code simultaneously).

      On Unix, you can do as many things simultaneously as your mind can handle, and that is the only barrier.

      .....wants to manually create his own MAKE files

      ... which he then understands and which he can fix if they're broken or recompile too much. The little time spent there is well worth the gain of reliable project management.

      ....wants to be stuck in a world without a component architecture

      What exactly have badly documented system calls to do with a "component architecture"?

      what the Linux developer community doesn't get is that Microsoft goes out of its way to take the chore out of programming and allow you to concentrate on the problem you are trying to solve.

      More like "allow you to concentrate on paying their license fees, their support contracts, suffering DLL hell and frequent reboots. In what way does Microsof "go out of their way" to do anything except squeeze more money out of their customers?

      --

      The illegal we do immediately. The unconstitutional takes a little longer.
      --Henry Kissinger

    2. Re:He Should Develop on Linux if..... by SomeOne2 · · Score: 1

      What exactly is "productive" about rebooting because your beta app crashed the system or you're not sure whether the app might work after a reboot?
      Don't be childish. To tell you a horrible truth: Windows does not crash every two seconds and also Linux crashes sometimes. Not that I would call Windows superior but your claim is plainly wrong.
      (I'm an OS agnostic, I use whatever available/suited, currently I develop under NT for Solaris but this changes often)

    3. Re:He Should Develop on Linux if..... by -brazil- · · Score: 1
      Windows does not crash every two seconds and also Linux crashes sometimes.

      In my experience, even Windows NT crashes about once a week, and I use it only about 5 hours per week, and not for development work. Linux has crashed on me once in the one and a half years I've been using it (and much more freuqently than NT). Well, I'm not counting the times when I did stuff that will crash any system, like playing with beta drivers. Even then, it would be fewer crashes than with NT.

      And even when Windows does not actually crash, too often a reboot is the only solution when something's wrong.

      --

      The illegal we do immediately. The unconstitutional takes a little longer.
      --Henry Kissinger

    4. Re:He Should Develop on Linux if..... by JonK · · Score: 1
      ... that can do whatever you need, when you need it, while the Windows user is lost when his narrow GUI doesn't offer a checkbox for what he needs.

      No, the Windows developer goes to the command line when he or she has to because what he or she is trying to do is done better under a command line that through a GUI. Unlike the Linux user who hasn't got the option due to the general level of nastiness in most Linux IDEs (and an IDE built on top of an unstable windowing system like X is an accident waiting to happen).

      What exactly is "productive" about rebooting because your beta app crashed the system or you're not sure whether the app might work after a reboot?

      Let's see: I last rebooted this box (NT4 on Intel) about three days ago because I managed to utterly munge the SCM. Unsuprisingly, it was my fault - I was hacking on some of my service (== daemon) installation code and I managed to break it sufficiently to make me reboot the box so I could run it again. I can't remember when I last crashed the system and since my event log's wrapped round, I can't look it up.

      debugging a web page, its server side scripts, its client side scripts, and binary server side code simultaneously).

      On Unix, you can do as many things simultaneously as your mind can handle, and that is the only barrier.

      What's being referred to here is the way in which I can step through an ASP and the browser page it generates, move seamlessly into stepping through a COM component written in VB, into another one written in C++, into another one written in <insert your favourite COM-authoring language here> and then onwards into a ISAPI DLL written in C. There is (to the best of my knowledge) no tools under Linux to allow me to do this: sure I can spawn a dozen copies of gdb or equivalent, but it isn't the same.

      What exactly have badly documented system calls to do with a "component architecture"?

      TRhe original question (it's up there in the title bar) was "Why Develop On Linux?". Comments about the utility of a language-neutral architecture-neutral OS-neutral binary-compatible component architecture vs. source-level code sharing are highly relevant.
      --
      Cheers

      --
      Cheers

      Jon
  33. My three answers. by tcdk · · Score: 4
    I've read through the first twenty comments and non of them has really answered the question.

    1. Open source libs. This is not a matter of OS.
    2. MFC sucks. This is not a matter of OS.
    3. It's stable. I've never lost a line of code due to a NT crash.
    4. Nice editors/tools. This is not a matter of OS.

    I can only see three answers to this question

    a) You program in and for Linux when your customers ask you to do it and pay you for it.

    b) You don't need more money and want to do your bit in the fight agains The Evil Empire.

    c) You need to run something on hardware that whon't run Windows.

    I know that some people dont like reason a) but this is the world that most of us live in.

    TC - SFBook.com
    --

    --
    TC - My Photos..
    1. Re:My three answers. by Vanders · · Score: 1

      I'm inclined to agree with you. When it comes down to it, the only diference between developing for Linux or developing for Win32 will be personal preference, and that in turn will most likly be determined by personal preference.

      Another possible reason is going to be the diference in API's, I.E POSIX v's Win32. Linux is also in the position of having multiple UI toolkits that a developer can choose from. Apart from that, there isn't going to be a compeling reason to change.

  34. Tip Sheet for those replying by Anonymous Coward · · Score: 5

    I use linux, and I can see where this is going....

    People will post lots of replies saying something like "linux offers lots of languages and open source libraries, and heaps of tools that are cool and don't crash, unlike certain other companies' software". This will be marked "Insightful", and leave the original query unanswered.

    1) Try to think of the person in question - someone who programs windows and *already knows* the above arguments about linux, but is not convinced. Try to imagine their mindset. What would your knee-jerk reaction be if someone told you that OS xyz is better than linux for dev?

    2) There are already lots of libraries in windows, and lots more tools with lots more features than in linux. The IDE envs, testing suites, database tools and utilities, libraries and packages available for Windows make a formidable lineup. It's not for nothing that Windows has such a strongly hooked developer base (check out your local newsstand for evidence). This is why companies and individuals are impressed by a rich development environment with lots of options. Don't expect people to be convinced by Glade and Gimp and a far smaller lineup of software tools - explain why linux would still be better, or other things that compensate for the weaknesses.

    3) Don't use ideology. If people wanted to program in linux because it's open source, they already would be doing so. Use a better approach. Not everyone finds ethics and the principles of open source a convincing reason (otherwise they would already be using linux, so you're preaching to the choir).

    4) Compare point by point. If you say something is good about linux, think about whether Windows has an equal or better choice. If so, it's a redundant argument - not likely to convince.

    5) Avoid zealotry. It turns off people. Really.

    1. Re:Tip Sheet for those replying by Mr+Z · · Score: 1

      Someone mod this up!


      --
    2. Re:Tip Sheet for those replying by Malcontent · · Score: 1

      Sorry I guess I find ethics a strong component of being a human being. A person who is unable to discern wrong from right will not be able to make a rational decision about dev tools either.

      If you want the stikn of evil on you go ahead and use VB if you want a clean concience use linux and sleep at night. Sooner or later the karma will catch up.

      --

      War is necrophilia.

    3. Re:Tip Sheet for those replying by KGBear · · Score: 2
      It's not for nothing that Windows has such a strongly hooked developer base (check out your local newsstand for evidence).

      Of course it's not for nothing. When you've spent big bucks for your certification, where you learned things by Microsoft made-up names that map one-by-one to the thing's real names, you discover you just don't know enough about computers to use any other platform - that's where the steep Unix/Linux learning curve comes from.

      Not just for developers - After 10 years setting up, running and managing TCP/IP networks, I look at the names MS gives to TCP/IP elements under NT and feel like I don't know TCP/IP at all. Really, I had to do a little one-to-one index just to be able to read the fscked NT TCP/IP configuration!

    4. Re:Tip Sheet for those replying by benwb · · Score: 1

      I agree completely. I just don't understand why everyone else just doesn't understand that they're wrong.

    5. Re:Tip Sheet for those replying by spectecjr · · Score: 2

      I agree completely. I just don't understand why everyone else just doesn't understand that they're wrong.

      Because you're a geek, you think in binary.

      When it comes to issues that are not black, and not white, but in fact are a shade of gray, you get confused and polarise to the nearest position, rather than being willing to spend some time in that fuzzy, analog space.

      Don't worry about it - in time you'll mature, and it'll get out of your system, and you'll be able to think in that gray space. But only if you question your thought processes on a regular basis.

      Simon

      --
      Coming soon - pyrogyra
    6. Re:Tip Sheet for those replying by Mr+Z · · Score: 1

      And for what reason? Obviously, someone else thought it was worth moderating up. When I posted, it was at a 1, now it's at a 5. What's wrong with that?

      --Joe
      --
    7. Re:Tip Sheet for those replying by Louis_Wu · · Score: 1
      Sorry I guess I find ethics a strong component of being a human being. A person who is unable to discern wrong from right will not be able to make a rational decision about dev tools either.

      I agree that ethics is a very large component of being human (not just homo sapien). However, while I don't like M$ either, I disagree strongly with the equation you created:

      disagreeing with you about M$==irrational
      An inability "to discern wrong from right" is not automatically an inability to make rational decisions. There is no causal relation between the two, which is what seems to be implied by the use of "will not be able to make a rational decision ..." instead of a more permissive wording like "will most likely be unable to make a rational decision ..." Some people know "wrong from right" and choose wrong for some reason (personal gain, they're just evil, whatever).

      Furthermore, choosing Micro$quish is NOT necessarily "wrong"! I have 'chosen' to use M$ operating systems for years because I am in the mechanical engineering field, and most engineering software is written for M$ alone (AutoCAD, Pro/E(I believe), Catia(I believe) ). My school bookstore, while it is a self-proclaimed "Mac-center", sells engineering software which is almost exclusively written for M$. (Correction: I haven't seen any engineering software for non-M$ other than Mathematica, but the Mathematica CD has installs for 3 OS's onboard. So they might be effectively all-M$.) I have installed and used Linux, and I really like it. But I don't have time to learn a new OS, find replacement programs, port my data, and still learn/get grades in school while sleeping more than four hours a night.

      When I graduate in a few months, Linux is going on my old 486, and I'll dual-boot my new machine OpenBSD/NT (I still have to use those M$ engineering programs). I'm not a saint, but I don't think that using M$ is indicitave of a lack of ethics on my part.

      Now, not paying for M$ programs, that becomes an interesting question. Should I be legal and pay, knowing that I'm supporting The Other Evil Empire, or should I illegally get software which I need for my job? Ah, ethics. It's fun because there are no answers everyone will agree on.

      Louis Wu

      Thinking is one of hardest types of work.

  35. One word: by Anonymous Coward · · Score: 1

    Free.

    The dev. tool under Linux are free. That's convincing as hell.

  36. Parallels between MS App Studio and "Titanic"... by pvcf · · Score: 1

    With app studio you get huge apps that take up lots of resources. Titanic was a huge ship that took a lot of resources. Did you see all the coal in the engine room?

    Apps on Windows are not properly protected from each other; any app can crash the whole system. Titanic's bulkheads were too short to keep the ship from sinking when one compartment got flooded.

    C programming under windows requires those near, far where are my variables stuff. Titanic... "...near, far, wherever you are...".

    More...???

    --
    F U NE X N M? Son: "Dad... How do you spell 'hourly'?" Dad: "0 * * * *"
  37. Money... by fluxrad · · Score: 2

    pure and simple.

    When you talk about anything, it pretty much comes down to cold hard cash. Everyone wants to know "What's in it for me?" Well, i'll tell ya. Money! If you look at the market share linux has gained in the past few years you see what's going on in the computer world. More and more people are switching to linux. Linux's market share has gone from almost nil, including servers and (especially) home users, to brawling for second with MacOS - that is one hell of an accomplishment. What does it mean. People are going to keep switching to linux and there's a veritable gold mine waiting to be dug in the software market. The same people that are installing default RedHat with GNOME or KDE and trying to figure out why linux is so "cool" are the same people that want Apps for linux.

    Well, it's not free....these people are coming from a closed source, pay-to-play environment. You give them good software, open-source or no, and they'll pay for it!! If your friend were to develop an audio app that rivaled something like Rebirth (i swear if someone mentions FreeBirth i'm going to flip my lid)....i would be willing to shell out the cash for that. And so would a LOT of other people that are looking for that type of software.

    Why develop on linux? Because there are a lot of gaps out there as far as linux software vs. windows is concerned. And as more and more people switch to linux from windows, the value of closing those gaps is going to increase exponentially. Develop for linux and make a BUNDLE! look at Loki, RedHat, VALinux, and all kinds of others. The way I see it...you either lead, follow, or continue to develop for Windows.


    FluX
    After 16 years, MTV has finally completed its deevolution into the shiny things network

    --
    "It is seldom that liberty of any kind is lost all at once." -David Hume
  38. Because... by oren · · Score: 2
    On Linux (or any UNIX, really), you get the benefits of tools written by programmers for programmers. With a choice between several high-quality competings tools. For free. And if the best one is just close to what you need, well, being a programmer and given the source, you can make it into exactly what you need.


    Take for example Aegis. Find me a tool like that for Windows which costs less then 1000$ per seat. Or compare the editing power of UNIX editors to the pitiful editor built into most IDEs - not to mention their brain dead build process (BTW, both Emacs and VI can and are commonly used as a UNIX "IDE" to great effect). It goes without saying that you can't replace your IDE's editor or build process, even if you are willing to pay.


    Sure, UNIX developement tools are harder to learn (they are not harder to use). But one can hardly claim to be a serious professional and dismiss the UNIX tools as too hard to use. These tools simply assume a power user - one willing to invesrt the extra effort to get the (large) additional benefits. That's what being a professional programmer is all about.

  39. HOW do you develop on linux? by Hynman · · Score: 1

    I've been using linux since 1994, and in that time I've only written text console apps, with a smattering of perl/tk. My job requires me to to MSVC++, but on a personal note, HOW THE HELL DO YOU MAKE 'windows' APPS on linux??? Is there an anology to MFC? Or does it depend on the IDE?Do KDE and GNOME have thier own libraries? Do I have to develop for each seperately?

    Please help me get started. I'm a VB programmer learning MFC and VC++.

    TIA!

    1. Re:HOW do you develop on linux? by Hynman · · Score: 1

      Right right. I've used perl/tk, and python is just another scripting language. But as for compiled programs in C++, how is that done?
      Let's say I don't want to deliver source code because it's going on an embeded device where space is a a premium, so comilation is nessasary.

      TIA

    2. Re:HOW do you develop on linux? by jtdubs · · Score: 1

      You normally use a windowing toolkit to develop X apps on linux. Take a look at GTK, it's one of the more popular windowing toolkits and is, duh, open source. :-)

      http://www.gtk.org/tutorial/gtk_tut.html#toc4

      There a nice tutorial on GTK v1.2 for you. Have a good time,

      Justin Dubs

    3. Re:HOW do you develop on linux? by Stonehand · · Score: 1

      I'm quite fond of a library called 'xforms' -- it's got a graphical layout tool, which means that you can put together a decent GUI utility in an afternoon. (GUI design NOT being something that I want to spend time on...). Lay out the widgets, let it generate stub code for callbacks (ANSI C), and then add your own. Quick and easy.

      It depends on X, however. If you're looking for something more portable, TK and Java's AWT are probably the main ways to go.

      --
      Only the dead have seen the end of war.
    4. Re:HOW do you develop on linux? by Huld · · Score: 1

      One answer is: Use Qt and KDElibs. They are pretty full-featured. I just got started on kdevelop, the KDE IDE. It's really nice, though I have to admit that I don't have much experience with other IDE's. One thing that is really nice about it is that it will automatically set you up with automake and autoconf to produce a configure file, so your code should be *very* portable. I don't know if you can use this for developing proprietary software. For Qt you would need to buy a license unless your code is free. I don't know about kdelibs. Thomas

    5. Re:HOW do you develop on linux? by codeguy007 · · Score: 1
      You don't. But you can develop Windows APPs by using vmware under linux and installing you windows and development tools and when it crashes your vmware virtual machine you will still have X-windows running.

      Tired of not getting your article posted visit ewaddle.

  40. Standards and Integration by LondonFish · · Score: 2

    I have seen the future, people, and in it there are a multitude of computing devices, not only PC's the way we see them now, but also PDA's, set tops, even computers in your goddamn fridge!

    Sucessful development in the future will be by people who understand standardization, integration and adherence to open protocols. From my linux box I can, using protocols like X, http, nfs and things like CORBA and Java, share data and apps with other linux machines, solaris, BDS, hell even Windoze if I want, and using this stuff is kind of natural when developing on linux as most open source software and libraries out there are based on open standards, making portability and interoperability much easier

    Contrast this with our poor friend who is stuck with such hideous and non stardard thinks like MFC (ugh) anc COM (double ugh!)

    Now excuse me while I port gcc to the toaster

  41. If you just want Windows code, develop on Windows by jht · · Score: 2

    The advantage of developing on Linux (or just about any Unix) is that it's a consistent, simple, and well-documented environment, with good portability to other platforms. If you develop on Windows as your primary platform, it's easy to get trapped into using hidden and undocumented API's that don't behave consistently from version to version, and it's real easy to wind up with Windows-only code.

    Windows-only code isn't automatically a Bad Thing, but it does reduce your options going forward, and it links you inextricably to the Beast. Should there be a strategic need to change platforms a some point, it's going to be a more difficult task to go from Windows to Unix (or whatever) than the other way around.

    That said, Visual Studio is a fairly slick IDE, though there are nice IDE's on Linux, as well. If you're developing for Windows, Visual Studio is really nice.

    - -Josh Turiel

    --
    -- Josh Turiel
    "2. Do not eat iPod Shuffle."
  42. One good reason: kill -9 by kjz · · Score: 1

    I have done a fair amount of commercial Windows development and can say that there are a number of advantages to working in a Unix environment, if not specifically Linux.

    The one advantage that stands out the most in my mind is the kill command. I have fought Windows NT countless times trying to get it to kill an errant process. I gave up completely under Windows 95/98, just rebooting the machine when needed. I have NEVER had to do something like this in a Unix environment. Even when I have faced a stubbornly hung Lotus Domino server (which leaves resources open all over the place), I could still force it to shut down and be removed from memory so I could restart it. No reboots necessary. This little trick alone has probably saved me hundreds of hours of grief waiting for a machine to reboot just so I can continue development. There is no doubt in my mind that I am therefore far more productive developing in a Unix environment when compared to Windows.

    Now, my preference of Linux over other Unix systems... well, that's another post. :-)

    1. Re:One good reason: kill -9 by TummyX · · Score: 1

      Download the Windows NT resource kit from micro soft's website, it has a kill utility that can force a process to die.

      I never have problems using task manager myself.

      Or you like write a windows script using WMI to do the same thing...
      Here's a nice script I just whipped up that'll kill all processes whose name contains a string.
      Works over networks (using WMI and DCOM too)...just supply the script a process name, and the server.

      var i, server, service, process, processname, processes;

      if (WScript.arguments.length > 0)
      {
      processname = WScript.arguments.Item(0);
      }
      else
      {
      WScript.Quit();
      }

      if (WScript.arguments.length > 1)
      {
      server = WScript.arguments.Item(1);
      }
      else
      {
      server = "localhost";
      }

      service = GetObject("winmgmts:{impersonationLevel=impersonat e}!//" + server + "/root/cimv2");

      processes = new Enumerator(service.InstancesOf("Win32_Process"));

      for (; !processes.atEnd(); processes.moveNext())
      {
      process = processes.item();

      if (process.Name.indexOf(processname) != -1)
      {
      process.terminate(0);
      }
      }

    2. Re:One good reason: kill -9 by warmi · · Score: 1

      I had X lock up so completely kill -9 woudn't help.
      Telneting from other box and issuing "reboot" woudn't help. Linux worked but X was completely dead.
      Happened only once during last 2.5 years.

  43. doing stuff with text files is simply better by jesterzog · · Score: 1

    I think text files are just better in general for any sort of development. Code is written in text files and using them to define how to work on the code makes things much easier.

    If a unix type of development environment doesn't support a wanted feature, it's usually quite simple to plug in a new utility that does exactly what is wanted. If anyone has done anything similar, that utility is probably freely available, provided completely independently by a third party. Alternatively you could write your own, or even just make a utility by piping generic text processing commands.

    This simply can't be done with most Windows environments because propriety methods of storing all the meta information about design and code make it so difficult for other people to expand on where the company left something out. (It's just a general open source advantage applied to the development of the developing environment.)

    Even if this freedom to expand the environment can be done in Windows, it usually would need some real understanding of the development environments attributes and how it works.

  44. You need the right tools for the job. by EnglishTim · · Score: 2

    If your friend the developer is developing software for Windows, then it surely makes sense for him to develop in Windows. For him, he needs to use the right tool for the job. MS Dev Studio isn't fantastic in all areas, but it's not bad, and most importantly, if he's developing Windows applications, it's probably going to be easier than cross compiling from a Linux platform. Also - Windows has all the other development tools you could want - CVS, RCS etc... and if you need to do lots of scripting stuff for maintainance, there are all the GNU tools - remember, they're avaliable for Windows as well. As Mr. Stallman would say - "It's GNU/Linux"...

  45. Financially it makes sense. by bendude · · Score: 1

    If we, as a programming community, dry up the source of windows programmers, it will force up the price on the w*nkers who have learned only M$ and they'll wind up to be exposed as the frauds (the ones who are frauds - they must know who they are.) they are.

    Meanwhile, IT managers will begin to understand that they need to move to non M$ platforms, or face getting left behind with outdated software and platforms.


    That's not in any way trying to suggest that I actually know what I'm talking about or have thought the idea through at all.

    --


    Get the Hell off my planet, you slimy mobster Bush!
  46. A Stallman story by Kaufmann · · Score: 2

    A young programmer once asked Stallman: "How can I do Rapid Application Development for Linux?" To which Stallman replied: "If you want to develop applications rapidly, I suggest looking into Scheme."

    Of course, what the novice really meant was "how can I cook up pretty-looking programs with the bare minimum of knowledge and effort and call myself a Linux programmer?" In this (poorly paraphrased) story, Stallman illustrates what I consider to be a fundamental difference between the school of thought that says "get it done the quick and easy way" and the school of thought that says "get it right".

    Whether this dichotomy is related to the Windows/Linux development dichotomy remains unanswered... just take a look at the source code for a typical "Open Source" Linux project. Ah well.

    --
    To the editors: your English is as bad as your Perl. Please go back to grade school.
    1. Re:A Stallman story by FigWig · · Score: 2

      young programmer once asked Stallman: "How can I do Rapid Application Development for Linux?" To which Stallman replied: "If you want to develop applications rapidly, I suggest looking into Scheme."

      I like scheme as much as the next guy, ok probably lots more. But are there any standard I/O and graphics libraries for it? There doesn't seem to be any consensus across different products and platforms and thus it is useless for real work. I'd like to be corrected if I'm wrong...

      --
      Scuttlemonkey is a troll
  47. All about tools ... by wesmills · · Score: 1
    I'm going to get flamed miserably for this, but so be it.

    For me, development has always come down to the best tools for the job or hobby or project or whatever. In Programming Holy Wars on my web site, someone roasts me for using ASP instead of PHP.

    99.89% of my development job involves writing applications that are designed for either in-house use or for technically savvy customers. They also needed this tool yesterday, before the huge clusterfuck that just occured. What will it most likely get written in? You guessed it ... Visual Basic. Instead of wading through VC++ code, assembing everything from the ground up, I write it the fastest way possible.

    It's all about getting the job done in a way that works and that you can still mess with in the end. There is no "right" answer to this Ask /. question, as the "right" answer will always depend on the individual situation.

    --------------------

  48. Virtual desktops and sweet code by Savant · · Score: 1

    Visual Studio, as IDEs go, is not altogether bad. Certainly a Windows coder hooked on some of its snazzier features will feel a bit disappointed when moving to Linux to develop. IntelliSense and relatively advanced debugging tools give Windows a big advantage in certain areas.

    Nonetheless, all my memories of developing using Visual Studio are horrible. This is because the actual Windows API is pretty ugly, and MFC... lets not even go there. Raw X programming is pretty nasty too, but using the Qt and GNOME toolkits development is much much easier than when using Windows, whereas the low-level stuff is just the way it should be.

    Besides, I'm often working with a large number of quite small code files, spread over multiple desktops; and I prefer nedit as a text editor to Visual Studio anyway; it's a bonus that it's lighter weight. Microsoft documentation is to my mind inferior to much of the core Linux documentation, though YMMV.

    I know that it is possible to get multiple virtual desktops for Windows (if you pay a fee) and nedit is probably also available. Qt is available for Windows, but you have to pay handsomely for the privilege. But Linux is well-nigh impossible to crash, and the command line beats any file manager into the ground. It's a totally different approach to development, and yes, there are disadvantages, but the sheer sweetness of the Linux APIs makes developing a pleasure, especially when you are convinced that the Un*x model is The One True Way to build an operating system.

    Savant

    1. Re:Virtual desktops and sweet code by JonK · · Score: 1
      I know that it is possible to get multiple virtual desktops for Windows (if you pay a fee)

      I, on the other hand, know it's possible to get multiple virtual desktops for Windows for free: just download the resource kit from Microsoft. FUD FUD FUD.

      I'd agree with you though: MFC's shocking, which is why I don't use it.
      --
      Cheers

      --
      Cheers

      Jon
  49. A Developers Wet Dream by OOPChugALug · · Score: 1

    Linux is a developer's wet dream.

    Linux includes or makes freely available industrial strength versions of c, c++, perl, fortran, lisp, scheme, python java etc.

    Compilation times and turn around is FAST when using the excellent (free) tools such as emacs, make, and bash (with all its wonderful command line tools) under a rock solid operating system.

    The degree of system stability, API stability, as well as customization and developer options simply is not available under windows.

    (If tools are available under windows, I have found them to be generally unstable, expensive, overhyped, highly gui-fied, and underperforming.)

    It's no wonder we have such a huge proliferation of programs, easily and freely downloadable and installable, under linux. From windowing systems to versions of Corba to webservers to databases, to all the neat software that comes out of research institutions to programs that enable distributed computing, Linux is at the forefront of software development. Just take a look at sites like sourceforge to see this grass roots movement blossoming.

    I developed under windows for years, and left it to go to Linux a few years ago. I have never looked back.

    Under windows, I had ever changing and unstable APIs, a single expensive development tool (visual c++) , and upgrade problems every time windows released new operating systems, APIs, and products. I gave up dll hell and blue screening terminals, rebooting, and re-installing. I am windows free and that decision has saved me thousands of hours of administering a shitty OS.

    All I want to do is program. Linux makes that possible. And most of all, fun.

  50. I prefer Linux/UNIX by Anonymous Coward · · Score: 2

    I use Visual Basic at Work :-( but now I have access to a UNIX account I'm using Perl to autogenerate most of my code (all the fluff thats needed to support the business logic which is what I really ought to be writing).

    My questions for Windows programmers: How many times have you been annoyed because VB's compiler gives up on the first thing it finds? Do you just shrug it off when the SourceSafe integration fails to integrate? What when VB saves your work in a completely different place to where the rest of the project is, and hides this detail from you (or have have you learned to work around that one)? "Wot No Layout Managers!?!". Would you like to be able to switch editors at will and still work?

    I think the last question is probably the most important. Under Linux I can switch tools as I need. I can use different tools to the rest of my team and we can all get on together. There are development environments for Linux that have things like Intellisense if you want to use them. I use Vim or Emacs depending on the job in hand. Because so much in Linux is text based I have a wealth of really powerfull text manipulation tools to work with. The perl example above shows this.

    A lot of work now is web based. If you want "Commerical Environments" then look at things like Enhydra, Java, JBuilder, ... A lot of web work uses the likes of Perl and PHP and Apache as the server. Linux is really strong for those languages. Also the ability to fully remotely administer a Linux (or any UNIX) Apache server really helps. People where I work are fighting NT at this moment because they can't remotely administer the IIS server.

    In terms of environment. Linux, in comparison to Windows IMHO is a really well designed logical platform. When you look at how the file structure is organised and why it really seems to make sense. I've explained things like why /bin, /usr/bin and /usr/local/bin to people and though "That is good". Also why PINE has /etc/pine.conf.fixed, /etc/pine/conf and most importantly ~/.pinerc. The UNIX/Linux world has already had to solve the problems of dealing with a multi user environment, problems which the Windows is now starting to see as Microsoft bolt multi user capabilities onto Windows. It seems that system/user preference handling in WinFrame is particulary "interesting"

  51. It's the hardware interaction silly by Hynman · · Score: 1

    Well, linux would be nice to program in because nearly everything is a file or filesystem, including processes.

    Secondly, lower system reqs make it better for embeded systems. No worry of is this NT function supported under CE and/or 98.

    Third, stability. I've crashed my windows machine 30 times in one day cause I had a pad pointer. It was fun running the program and guessing where the error was (even in the debugger).

  52. Why? Because it works. by Hamshrew · · Score: 1

    Personally, I prefer Linux to Windows bacause things work the way they're supposed to. I've seen some people refer to using GCC on Windows and non-MFC stuff, and that works much better. But the fact remains that a lot of other developers still use MFC, and the moment you're asked to do something related to that code, you'd BETTER use MFC as well.

    I'm using MSVC++ 6.0 at work, and I've already run into too many cases where the MSDN is not informative enough or, in some cases, just plain wrong. Combine that with a refusal to follow ANSI standards(I still can't use a nocreate flag, I have to substitute the hex value instead), and developing for MFC is a big pain in the ass. Although I like the Intellisense feature, I'd take emacs any day(or vi, if I'd bothered to learn it yet)

    Speaking of emacs, I tried using it an gcc for Windows, and its even harder to use MFC with that. Unfortunately, I'm forced to use MFC becuase of the file format of the project I'm on, which consists of a binary "snapshot" of all the classes in memory at the time of the save.

    Speaking of binary files, that's ANOTHER pet peeve of mine. Windows is the only platform I know of that forces C to distinguish between binary and text files, forcing the coder to use special calls and causing massive headaches. Linux is much "cleaner" in design in this respect, which makes my job easier when dealing with files. Some may argue that permissions add complexity, but after using attrib a number of times because the default file created is not writable, I don't see how it can be any more difficult under Linux than Windows

    I should probably stop now, but these are the problems I've run into in the last month or so alone. I could name quite a few more :)

    --
    - Free tabletop fantasy gaming! Grey Lotus
  53. my reasons by Capt.+Beyond · · Score: 1
    1- Because it's there.
    2- Because I can.
    3- Because it's hip and cool to write open source software for linux.
    4- Because all the software tools you need are free.
    5- Because linux needs more software.
    6- Because I am a free person, and have the choice to develop on a stable platform.

    Actually, I develop for M$ Windows, as well as linux. They are both viable OS's, if you can get through the FUD that both sides dish out.

    --
    -- "Perceptions create reality. By changing your perceptions you change your reality."
  54. Fluffy maintenance bits? by GrimJim · · Score: 1

    I've seen statistics that in the real world, programmers spend half their time maintaining code. I can still compile and play Unix programs written in the 80s and 90s on my current Linux installation (one gets used to the few porting issues that may arise), meanwhile even with the available source of a Windows app written in 95 (Chaco's Pueblo client) I can't even hope to get the thing to compile right since it seems to rely on some "system" files which have mutated greatly over time. (Anyone got a spare copy of VC++ 4? Hah.) Unix also has some great glueware (sh and perl for example) for knitting together disparate programs into a coherent whole. With a bit of programmer discipline one can achieve a fair amount of effective modularity and reuse.

  55. don't develop for one platform on the other by scotpurl · · Score: 1

    I know you can get cross portability, and use things like wish and tcl, but the key here is to do Windows apps under Windows, and *nix apps under Linux. If you can get it to behave under Linux, then you'll have little trouble porting it to the quirks of the other *nix flavors.

    I'm paid to support a commercial application under *nix. The first iteration of the *nix client was written under Windows NT, then "ported" to *nix using third-party code porting widgets. Gaack! That resulted in code that none of the developers could recognize, and the occasional "Windows" error message popping up on *nix.

    For the next iteration, they did parallel projects, and endeavoring to do the same things in the same way (as much as possible) on both platforms. Much improved, though there's still some issues with focus and pop-ups.

  56. My experience... by ph51pv · · Score: 1

    I worked for a while developing multi-threaded applications, both for SMP platforms and distributed environments. Apart from the aforementioned open-source and stability issues, I also found particular benefit in Linux's excellent process-control abilities.

    While it's true that, for example, NT has the "Task Manager" with some degree of process killing/control ability, I found even simple tools like "ps aux", kill and top to be quite invaluable.

    The ability to easily get a down-and-dirty view of low-level system activity saved me considerable frustration on more than one occasion, and several other members of the dev team migrated away from our original MS development environment for the same reason.

    Just my two [insert low denomination currency unit here].

  57. No reason.. by ekidder · · Score: 1

    No reason at all to develop under Linux unless you want to. I develop under both (and a bit of cross-platform work ..and VAX.. dear God, no more VAX..) and I've got all of the tools I could ever need or want on both systems. While there may be philosophical reasons for developing under Linux, I haven't run into any practical reasons. If the development is happy under Windows, then stick with Windows. If the Linux development brings unforeseen joy and peace, then be happy with Linux.

    Eric ze Kidder

  58. Bah! Counter-example by Anonymous Coward · · Score: 1
    Years ago, a friend of mine brought his new computer into work so we could download and install Linux on his new baby. After downloading the beast on another machine and installing it, we had a problem. The installation wouldn't detect his network card.

    After much tooling around and researching sites, we entered the source code. Evetnually, we found an obscure part of some very long functions where a word comparison was not taking into account the endian-nature of the byte being compared.

    We added a bit of code, recompiled, and lo-and-behold, it found his network card. From then on, it went smoothly.

    Now, how's that for an undocumented feature? Or does the plethora of Linux documentation somewhere say "designed to not detect certain network cards properly"? At least we could fix the code and recompile the thing. Can't do that with Microsoft!

    1. Re:Bah! Counter-example by luckykaa · · Score: 1

      True. A lot of Linux is undocumented. The point is that none of it is undocumented purely to hide the information. And this wasn't an API thing. (Plus ass you pointed out it was fixable)

      You could of course argue that this was documented in C.

    2. Re:Bah! Counter-example by FascDot+Killed+My+Pr · · Score: 2

      3) "But what happens when you want to distribute your code and it relies on the 'fixed' code?"

      Put a workaround in your own code but use a fixed kernel if it exists. Eventually you can remove the workaround. Are you saying it would be better if you COULDN'T fix (or even see) the kernel code?

      4) "Hey, some of us prefer a point-click-drag to 47 keystrokes."

      Please tell me how to use an IDE to do the following: "Mark all files currently tagged V31-BETA2 with V31, other mark the head of the tree V31, skip files in the ldap directory and anything that ends with .m". That's one (fairly simple) command under Linux (using RCS anyway).
      --
      Less money, less admin, less machine--more power

      --
      Linux MAPI Server!
      http://www.openone.com/software/MailOne/
      (Exchange Migration HOWTO coming soon)
    3. Re:Bah! Counter-example by RedShodan · · Score: 2

      >> 3) I too have had to fix the source code to Linux once -- for my own use. But what happens when you want to distribute your code and it relies on the 'fixed' code? Do you have to wait for your fix to be integrated into the mainstream? Furthermore, though, why should you even have to look into the source code? Ao good API should leave nothing questionable enough for the source code to be consulted.

      And you wish to wait on Microsoft to integrate fixes to the proprietary source? All the open source setups that I have seen have responded much faster verging on infinitely faster than any company on a bug fix. And I say 'inifinitely' because many times they simply never respond at all and never fix the problem. The beuaty of open source is that if you are inclined, you can go fix the bug yourself, send the patch with the fix to the maintainers and that saves them the time of figuring out the bug themselves.

      You miss the point of an API. An API is to abstract out everything that a person needs to know about how to use this 'black box'. Regardless of how well they did the abstraction, the black box may simply be functionaly broken. An API has nothing to do with that. Open source allows you to go fix that bug and continue on in your development.

      --
      RedShodan --------- Never underestimate the bandwidth of a station wagon full of tapes.
    4. Re:Bah! Counter-example by el_mex · · Score: 1
      I am sure all people out there are waiting to reompile something to get their network card to work!

      Try win2000 and have it work right the first time!

    5. Re:Bah! Counter-example by EvilJohn · · Score: 1

      "Try win2000 and have it work right the first time!"

      Horse Hockey.

      I'll remember this the next time the 3com nics in my office loose track of the DNS Server they've been told to look at via DHCP, and start resolving things with an external IP address.

      Annoying.... wouldn't mind looking in the drive source to see what is causing that.

      --

      Less Talk, More Beer.
    6. Re:Bah! Counter-example by Saidin · · Score: 1

      For me, often the point of having the source code isn't if I can incorporate the fix right now, but the fact that I can track the bug down! I was coding with a C++ class library once, and they had a bug in the library where they forgot to deallocate something in their destructor which they had allocated in their constructor. This caused my program to core dump. Luckily, we had a source code license for the library, because I never would have figured out what was going on otherwise. (There is also the point that it is easier to convince someone the problem is in their code when you can point out the source file and line number :) )

    7. Re:Bah! Counter-example by finkployd · · Score: 2

      You actually illustrated one of the best points to using linux over windows. Being able to fix stuff.

      It was documented, not in plain english, but in actual code. Since we are talking about developers here, there is no better documentation for an API than to see the code itself, and that is where the advantage is. Now, did you submit this patch back to the mantainer so all could benefit?

      Finkployd

    8. Re:Bah! Counter-example by finkployd · · Score: 2

      Try win2000 and have it work right the first time!

      Obviously you have never used Windows2000. Fortunatly, my workplace banned it's use over major security flaws we found, but not after some of us played with it and found it to be horrible horrible joke.

      Now go trolling back to ZDNet

      Finkployd

  59. except by kaisyain · · Score: 2

    You can do all of those things under Windows.

    Emacs, vim, gcc, python, perl, tcl, sed, awk, grep, tar. All available under windows. So you have all of that PLUS nice GUI IDEs.

    I haven't found writing console apps any more difficult under Windows than it is under Linux. Writing GUI apps is as difficult or as easy as the underlying toolkit makes it. You don't have use MFC under windows, anymore than you have to use raw xlib calls under linux.

    1. Re:except by Surazal · · Score: 2

      My (less than thourough) experience suggests that the tools under Wondows you just mentioned aren't as feature-rich or as stable under Redmond's OS than they are in Linux. Yes it's nice they exist, but they aren't the panacea we Linux and Unix developers have been looking for under Win32.

      --
      --- Journals are boring; Go to my web page instead
    2. Re:except by jguthrie · · Score: 4
      kaisyain wrote:
      I haven't found writing console apps any more difficult under Windows than it is under Linux. Writing GUI apps is as difficult or as easy as the underlying toolkit makes it. You don't have use MFC under windows, anymore than you have to use raw xlib calls under linux.

      Except that MFC calls are supposed to hide all the complexity of the Windows equivalent of Xlib (and Xaw) calls from the programmer. There are class libraries that are available for X (Qt vs GTK flamewar, anyone?) and they are all better done than MFC. (Well, I hope they are, anyway. While I can imagine someone setting out to make a worse class library than MFC, I'd like to think that nobody would.)

      Unfortunately, MFC is the standard for Windows programming. If you're doing Windows programming and you're not using MFC, then the suits complain. If you're strong enough to resist the suits, then you could already be running Linux.

      Windows GUI programming is not nearly as nasty without MFC (which I found entirely unpleasant with its arbitrary and arcane rules concerning things like the messages that need be handled) but for most shops Windows programming means MFC programming just like it means using Microsoft C++ or Visual BASIC

      As for the IDE's, well, back in the 1970's, an article titled "Real Programmers Don't Use Pascal" said that real programmers are happy with an 027 keypunch, a FORTRAN IV compiler, and a beer. The way I see it, XEmacs blows the heck out of a keypunch, C is at least as good ad FORTRAN IV, and I can afford plenty of beer. At least with makefiles and command-line compilers, I don't have to worry about my project files getting munged because somebody decided to update the IDE.

      One opinion, worth what you paid for it.

    3. Re:except by wcb4 · · Score: 1

      Have you tried Mortice kern Systems Toolkit under Windows. Open up a command prompt, type "sh" and your in the Korne shell, will be almost like home.

      --
      I reject your reality ... and substitute my own.
    4. Re:except by Surazal · · Score: 2

      Have you tried Mortice kern Systems Toolkit under Windows. Open up a command prompt, type "sh" and your in the Korne shell, will be almost like home.

      The key here being "almost". Windows with a pretty ksh face on it is still Windows. :^P

      In my opinion every operating system sucks in proportion to the amount of time you spend using it

      In my opinion every operating system sucks in proportion to the amount of time it spends using you

      --
      --- Journals are boring; Go to my web page instead
    5. Re:except by Blue+Lang · · Score: 1

      Now you are just rationalizing. cygwin might as well be unix. It's all built from the same source.

      That is functionally identical to claiming that WINE might as well be windows. They are not the same. I love cygwin, I use it when I'm forced into windows, but it's slow like death, and there are still many tools that no one has bothered porting to windows.

      --
      blue

      --
      i browse at -1 because they're funnier than you are.
    6. Re:except by Black+Parrot · · Score: 4

      > Emacs, vim, gcc, python, perl, tcl, sed, awk, grep, tar. All available under windows.

      If you're using "Linux" tools under Windows, the question changes from Why develop on Linux? to Why develop on Windows?

      --

      --
      Sheesh, evil *and* a jerk. -- Jade
    7. Re:except by warmi · · Score: 1

      GTK is nastier than MFC. GTK is more like slightly better Win32 API.
      With Qt you have a point. MFC doesn't even come close...

    8. Re:except by notdedyet · · Score: 1

      For most puposes you can use ATL instead of MFC. You get a much smaller more streamlined result and don't have to put up with the bulk of MFC. I think that you will find more people moving to ATL as time goes by. The main reason for using MFC now is that Visual Studio already generates most of your application for you in MFC.

    9. Re:except by nehril · · Score: 5
      Why code under Linux? Because you need to make a program that runs under Linux!! If you need to make a Windows program, develop it in Windows.

      The fact that this question focusses exclusively on the "what to develop in" aspect ignores the fact that computers are just a tool, and you use the right one for solving whatever problem you need fixed.

      So the question should really be, "For what kinds of problems is Linux a better solution that Windows?" Answer that, and you have also answered which system to develop under.

      Both systems have their strengths and weaknesses for development, and a competent coder can do a good job on either platform.

      Adding toolkits to make Linux more gooey or Windows more command-liney doesn't at all help you answer the "which is more appropriate for this task" question.

    10. Re:except by Zagadka · · Score: 1

      cygwin might as well be unix. It's all built from the same source.

      Tools don't work well in a vacuum. The cygwin tools, in an attempt to use Posix compliant pathnames, are mostly incompatible with any non-cygwin tool on Windows. For example, if I want to cat the file foo.txt in the bar directory of drive E:, I have to type:

      cat //e/bar/foo.txt

      But if I want to edit it in Vim, I have to type:

      vim e:/bar/foo.txt

      This becomes especially irritating if you try and do things like:

      find //e/snarf -type f -name 'pattern' | xargs winprg

      where winprg is some windows program. Cygwin's find will of course dump out a bunch of cygwin-style pathnames. It is occasionally possible to fool some of the cygwin tools into using a windows-style pathname. I shouldn't have to be constantly second-guessing my tools to use them though.

      Also, something I recently discovered is that you can't cat together binary files with the cygwin cat! cat is a text tool, so it doesn't work on binary files. I think it stops after the first ^Z. I have yet to see a version of cat on UNIX that didn't happliy concatenate binary files correctly.

      It's been a while since I downloaded the cygwin tools (I've got b20 installed), so it might have changed since then. I hope so.

      I've also used the MKS toolkit. The MKS Toolkit is a complete re-write of the standard "core tools" you'd expect to see on UNIX (rather than a recompile of UNIX tools using a special compiler an library, which is essentially what cygwin is). Unfortunately, the only shell included is ksh. (I think the newest version might also include csh or tcsh) I would much rather use bash than ksh (nicer keybindings overall). The MKS ksh also has some incredibly irritating bugs relating to filename completeion and mixed-case filenames. MKS Toolkit also costs a couple of hundred dollars... significantly more than an entire Linux distro, which would include an OS plus the tools.

      Another thing that drives me crazy about trying to develop under Windows is (believe it or not) the stupid "console" windows. It's a bit minor, but xterm, rxvt, and even gnome-terminal are all significantly better than the stupid Win32 console. Cutting and pasting is easier (and if you put the Win32 console in "Quickedit" mode, it acts stupid when you click on it to focus. It selects where you clicked, and won't let you type.) and you can actually resize without having to go into a "Properties" dialog.

      Plus there's the fact that "mapped drives" are flakey on Windows. If you ever try to build a large project on a Windows build machine, but you have the sources on some other server (yes, NT or UNIX) you'll start getting all sorts of weird compiler errors, seemingly at random. I'm not sure exactly what causes this flakiness. I thought NFS was bad, but SMB seems to be much worse.

    11. Re:except by Masked+Marauder · · Score: 1

      Hiding complexity is not always a good thing. Sometimes it is a problem, not a feature. Ever have one of your programs broken because somebody installs a new package with a quirky new version of a dll that your app is linked to?

      Within certain limits you can have a variety different versions of the same library around to accomodate old programs.

    12. Re:except by MadAhab · · Score: 1
      fact that this question focusses exclusively on the "what to develop in" aspect ignores the fact that computers are just a tool, and you use the right one for solving whatever problem you need fixed
      True, but truth isn't the issue here. Seriously, when it comes to people's professional tools, they often get very ... religious about them, with good reason; they depend on them, so their opinions go far deeper than truth...

      Boss of nothin. Big deal.
      Son, go get daddy's hard plastic eyes.
      --
      Expanding a vast wasteland since 1996.
    13. Re:except by Navarre · · Score: 1

      Not just that, but all of these wonderful tools were created on Unix, and then ported to windows. That's not like porting from one Unix to another. The Unix paradigm isn't even supported under windows, so I find that ported Unix tools often feel totally alien under windows. Best to leave them on their native platform and use them there.

      Besides, doesn't it say something when to work effectively on windows, so many developers are using ported Unix tools and languages?

    14. Re:except by J4 · · Score: 1

      Given a choice, people will use what they think is best.
      It's not impossible to support more than one platform.
      There is such a thing as a cross compiler, y'know.
      Actually, FlightGear is a good example. Some of the developers use MSVC on windows, some use various Unices and everybody runs the same code. There Mac binaries floating around too IIRC.

    15. Re:except by DunbarTheInept · · Score: 1
      What you say makes sense up to a point, but you ignore the fact that "What kinds of problems is OS foo better at?" includes the question, "What is it like to program for such-and-such a task on OS foo."

      You're acting like they were seperate issues. They aren't. One is a subset of the other.

      --

      Don't label something "offtopic" unless you know the topic well enough to tell what's on topic.

    16. Re:except by Keith+Russell · · Score: 1
      While I can imagine someone setting out to make a worse class library than MFC, I'd like to think that nobody would.
      Whatever Metacreations/Ghost Effects/Curious Labs/whoever used for Poser 4. Downright unfriendly. Turns a decent Mac app into an almost unusable Windows app.

      If you're doing Windows programming and you're not using MFC, then the suits complain. ...for most shops Windows programming means MFC programming just like it means using Microsoft C++ or Visual BASIC
      The suits probably don't care about the FC part, just the M. Nobody ever got fired for buying [insert monopolist here]. You can easily push for VB and win. Kids fresh out of college can produce MFC-quality apps in VB. In the hands of competent programmers, VB can produce better apps than MFC . If you can find a smart VB programmer, you probably won't even need C++.

      Oh, and if you can't win, get your CV in order, and quick; you are working for morons.

      Every day we're standing in a wind tunnel
      Facing down the future coming fast
      - Rush
      --
      This sig intentionally left blank.
    17. Re:except by cduffy · · Score: 2

      Why code on the target platform?
      While testing on a target makes plenty of sense, coding should be done where you have the best development tools. If I can get something done two weeks faster on a *nix, spend a day fixing stupid little portability issues and another week testing and fixing more obscure introduced bugs, I still saved almost a week and much of my sanity.

      Heck, not everyone even has a compiler that runs on their target. Developing for embedded systems (which I am just now), I don't.

    18. Re:except by cduffy · · Score: 1

      Waitamoment. That implies that MFC is better than the Win32 API.

      I don't think you'll find many people to agree with 'ya there, buddy.

      IMHO, GTK has a much, much better design than MFC (in those places where the two overlap). In any event, the source is much, much more concice(sp?) and readable.

    19. Re:except by FigWig · · Score: 2

      A few years ago I was a much less careful programmer. I had a number of sprintf calls writing outside the bounds of an array. Stupid, I know, but it happens. Under WinNT 4.0 the program would crash and just dissappear!! No core dump, no GPF, no nothing. Just gone. Under win9x it would at least throw up a GPF and a useless stack trace. Under a UNIX system I would at least get a core dump and the ubiquitous segfault message. It would also be easy to trap this by typing 'gdb a.out' then 'run'.

      While debugging with Visual Studio 5.0 I would have to restart after about 5 or 6 compile+executions of the program. I should never have to restart the OS because my program screws up. Especially if I am running this through a debugger. I have never gotten gdb to crash on a properly configured system (which is to say 99% of them).

      So now I do all of my non win32 development on a Linux box. Java development and pure C++ stuff.

      --
      Scuttlemonkey is a troll
    20. Re:except by orangesquid · · Score: 1

      It used to be, a "computer" was a very large, oversized, bulky piece of machinery which sprawled several racks, had numerous I/O devices, and was rather cryptic in its use' its operators had to be very skilled.

      As Microsoft has become synonymous with computer, people now picture a computer as a toy... this box which entertains them, like an interactive television.

      If I'm not mistaken, the last time I treated my parents' microwave as a toy, I got in lots of trouble.

      Computers are *tools* and shouldn't be played with... not to say you can't experiment with them, but mere 'playing' is solely for entertainment, whereas experimentation is designed to further knowledge.

      Being tools, computers should have interfaces which also give tools a very prominent place. Windows is the worst possible way to make a computer a tool, and encourages a lack of seriousness in environments. Do you picture someone writing their doctorate thesis with Paperclip Man in the corner of their screen?

      UNIX, in addition to having a far better way to show off the 'tool' power of computers, has countless years of experience with programmers. Advanced programmers can be *very* picky about what the OS and compiler do, and have been known to halt work on a project to write a new OS or compiler because the one they were using was annoying them.

      And do you want your machine crashing while you're concentrating on coding? UNIX systems rarely, if ever, go down on you unless you're doing something really stupid with the kernel, RAM, primary disk, or swap files/partitions.

      I do all my development under Linux and IRIX... I used to develop under Windows, but after having switched, I don't regret the change at all.

      --
      --TheOrangeSquid Is it any wonder things seem so awry? We swim in a sea of confusion and don't have to think to survive
    21. Re:except by warmi · · Score: 1

      Sure MFC is "better" in a sense that requires much less code to write and has quite a bit usefull new features. The class library itself is not the best out there ( Qt is much better )
      but still, better than writing dozens upon dozens of macros from WindowsX ( or even worse, huge switch() statements)
      GTK is quite good desing for C trying to be C++ but it suffers from the common problem. Ugly and unsafe code with tons of casts ( everything is possible, casting GTKText to GTKWidget etc ...)

    22. Re:except by wcb4 · · Score: 1

      open that command prompt up full screen and other than the driveletter and : at the beginning when I type pwd and I can hardly tell the difference

      Also, keep in mind, I am not talking about windows 95/98/or NT, I'm talking about using win2k, which, since most of you hate MS so much you will never admit, is actually quite nice. Other than during a few games, The lockups are gone.

      --
      I reject your reality ... and substitute my own.
    23. Re:except by Zagadka · · Score: 1
      The MKS Toolkit is a complete re-write of the standard "core tools" you'd expect to see on UNIX (rather than a recompile of UNIX tools using a special compiler an library, which is essentially what cygwin is).
      Say what? I considered that move by Microsoft to be 'innovative'...

      Neither cygwin nor MKS Toolkit are made by Microsoft, so I'm not sure what you're referring to. Cygwin is made by Cygnus (now part of Red Hat), and MKS Toolkit is made by Mortice Kern Systems.
    24. Re:except by Kvan · · Score: 1

      If you're using "Linux" tools under Windows, the question changes from Why develop on Linux? to Why develop on Windows?

      A lot of people I know are forced by management to run Outlook (so that they can schedule meetings and so on). This means that their choice boils down to either purchasing VMware (out of their own pocket) or using the supplied Windows. Many also need Windows in order to test their work under IE5 (for web work).

      That aside, however, I can't see any reason not to strive for the best of both worlds by installing Cygwin, Perl, Emacs etc. under Windows.


      "A *person* is smart. People are dumb, panicky, dangerous animals and you know it."

      --

      "A *person* is smart. People are dumb, panicky, dangerous animals and you know it."
      - 'K' in Men in Black.

    25. Re:except by JonK · · Score: 1
      Unsuprising, really: why bother porting the nasty Linux knockoffs of Windows/Mac software (c.f. Gimp and Photoshop) when you can get the original. It's like working on cygwin to make sure it runs under WINE :-)


      --
      Cheers

      --
      Cheers

      Jon
    26. Re:except by Keith+Russell · · Score: 1

      VB was slow back in the 2.0-3.0 days. But now, VB is fast enough for just about anything. Still not as fast as well written C++, but fast enough.

      And by "well written C++", I mean, well, "anything but MFC." Try MFC for a day, and you'll run screaming. It's awful. Truly awful. It adds far too much complexity and bloat to a project, and I'm pretty sure it alone is the cause of 90% of "DLL Hell" problems in Windows.

      Of course, straight Win32 API in C will win, unless you're unhinged enough to try Win32 API in assembler. But it will take longer. Much longer.

      Every day we're standing in a wind tunnel
      Facing down the future coming fast
      - Rush

      --
      This sig intentionally left blank.
  60. Develop on what your target customer base is... by CormacJ · · Score: 5

    I am a multi-platform developer. I write and maintain code on VMS, Windows, and Linux.

    I've used nearly every type of tool there is to develop on, so heres my 2 cents:

    General: All systems support whatever language you want to code in. C++, Pascal, Basic - these are all available. CVS is available on all systems. What differs is the user interface on the development tools on the systems, and the amount of learning time you have to spend before commencing coding.

    Windows: Developing on windows is a good way to get to know the closed source system. Documentation is hard, and is often expensive to come by. Mostly people develop code using Microsoft tools. These tools look pretty and work ok. They allow you to edit, compile and run code. As a development environment is good. Whatever you want it there within easy reach. To start developing seriously for windows you are best off buying the Microsoft developer tools. You need to be prepared to continue to upgrade everytime Microsoft release a new OS. This is very costly, and not something a teenager can easily get into. There are free tools for developing under windows, but the windowing system calls make it a nightmare to be productive. Learning time is almost zero - mostly if you draw up your screen and hit run, it will. This can be a drawback in a large app if you need to maintain it on a daily basis - it can be hard to get to module you want quickly.

    VMS: This is not something that is often done in someones bedroom. Alpha machines can be expensive, and follow the Apple style of making sure you use everything that Compaq can produce. The tools are good, and the documentation is excellent. The librarys are well documented, and do exactly what the docs say they will. Only in rare cases will these change radically enough to break your code. Developing under VMS is about the same as linux. You have good tools and good documentation, nothing too flash or pretty, but it's all very functional. Standards are so rigoursly enforced that as long as you obey the rules you'll never have to worry about your code crashing because of a conflict with some other piece of code. The drawback is that VMS developers are rare these days and good help is hard to get. Learning time is short, as the tools are basic enough to do exactly what everybody needs to do.

    Linux: Developing under linux is nice. There are a lot of tools and a lot of people available to help when something happens. Newbies are very welcome. The range of linux distros and linux ports make it hard to write code once and forget about it. You need to figure out tools such as autoconfigure if you plan on being multi-vendor/multi-platform. Linux isn't as easy to code for as windows is, but if you are developing under open source you will get excellent peer review if your code is something everyone wants. Many of the tools are similar to other systems, but many have been scaled up to support world-wide development. Learning time can be long if you have to start a project from scratch, but is simple enough if you just want to contribute.

    1. Re:Develop on what your target customer base is... by peterthomas · · Score: 1
      Just to counter the point you made about developing under Windows being too expensive for students or teenagers. I bought the whole of Visual Studio 6.0 Pro including MSDE (SQL Server)for £69 from Jungle on Microsoft's student scheme.

      I personally think this is a very good deal, and brings some really quite nice dev. tools within the grasp of most peoples pockets.

      As far as I know the Student Scheme is available to anyone in any kind of education establishment who is at least four years old (lecturers and teachers too!) and also the parents too. The only restriction they put upon you is that all work is non-commercial.

    2. Re:Develop on what your target customer base is... by Rhys+Dyfrgi · · Score: 1
      The only restriction they put upon you is that all work is non-commercial.

      It's my code, it'll be commercial if I want it to.
      ---

      --
      END OF LINE
  61. Depends on your project by harmonica · · Score: 3

    I think it's rare that you have to do a project that has to work under both Windows and Unix so that you'll have to make a choice on which of both to develop. If it's a pure Windows or Linux app, there's no reason to do it under the other OS. If complex tools are involved that must be used, again the choice has been made for you.

    If cross-platform development is important, use the OS with the best tools available. Personally, I need a shell, a compiler and a good text editor for the stuff I write (not that I'm doing really big projects). They are available for Windows *and* Unix, so I just follow my personal taste and pick the one I like better.

  62. Try Codewright by saider · · Score: 1

    Codewright is very customizeable. You can change your key binding and plug into external utilities like grep. You can even compose your own DLLs and link them into the Codewright API to enhance the program. Definitely worth a look.



    --


    Remember, You are unique...just like everyone else.
  63. Respect by THX113895 · · Score: 1

    I know this may sound trite, but i think a good reason to program under Linux is for respect. When you see a really good program run under linux it's pretty easy to find out who made it and send em' and e-mail er somthing giving them some props for their work. You look at windows programs and they are all made by faceless developers whose company name takes the credit. I don't know it just seems like Linux developers hold a lot more respect then Winblows developers.

    thx

  64. There is kill.exe for NT by Otis_INF · · Score: 1

    :) it's in the resourcekit. Or you can code it yourself with little amount of lines of code. It's very handy. Also, bringing the taskmanager up with cntrl-shift-esc saves some serious trouble.
    --

    --
    Never underestimate the relief of true separation of Religion and State.
    1. Re:There is kill.exe for NT by Microlith · · Score: 1

      Ever try to kill a service? Gotta go through service manager to do that, and if Explorer's dead, you can't get there without nt server or client based admin tools (which i believe are dependent on having nt server, AND require you to have a second computer running NT)

    2. Re:There is kill.exe for NT by Otis_INF · · Score: 1
      why should I use service manager? I telnet to the server, type pslist to get the pid, type kill pid and it's gone. I type net start servicename to start the service again. (I can also net stop servicename ofcourse ;)
      pslist is downloadable from sysinternals.com

      It takes some time to collect the handy tools you need, but then it's not hard to do whatever you want. :)
      --

      --
      Never underestimate the relief of true separation of Religion and State.
    3. Re:There is kill.exe for NT by JonK · · Score: 1
      Stopping a local service:
      net stop servicename
      or
      sc stop servicename

      Killing a local service (if it won't respond to the SCM):

      kill -f #pid

      Stopping a remote service:

      sc \\machinename stop servicename

      Killing a remote service:

      rclient machinename
      kill -f #pid

      Was it that difficult to read the documentation?
      --
      Cheers

      --
      Cheers

      Jon
  65. Showing my age? by YoungHack · · Score: 1

    Maybe I'm too old to even comment here, (my
    Windows programming is actually DOS). The best
    thing I found when moving to Unix was that when
    my programs crashed, I was left with a clean
    useful core-file which I could open up and see
    what happened. No hangs, no reboots, just a
    prompt, a core, and ready to check it out.

    I used to trace programs in DOS of course, but
    when you aren't tracing, or something happens
    in the 10,000th iteration, having that core file
    was just splendid.

    1. Re:Showing my age? by doctor_oktagon · · Score: 1

      You actually look at core dumps ?! That is almost as bad as my old boss making me program in Postscript ....



    2. Re:Showing my age? by Junta · · Score: 1

      If you don't use core dumps, you are missing out
      on a FANTASTIC debugging tool. If a crash occurs, it may be impossible to exactly reproduce it, load up a debugger with the program code and the core, and suddenly it exactly as if you had been running the program within a debugger the whole time!

      --
      XML is like violence. If it doesn't solve the problem, use more.
    3. Re:Showing my age? by harshaw · · Score: 1

      NT supports core dumps. Whenever you see that Dr. Watson message come up it is trapping the crash of the application and creating a debugging image. Of course, you can only use windbg do debug the crash :(

    4. Re:Showing my age? by doctor_oktagon · · Score: 1

      You try looking at a core dump on a Unisys 2200/500 mainframe .... probably gets dumped onto 17 tapes across 10 EMC Storage Silos ;-)



    5. Re:Showing my age? by YoungHack · · Score: 1

      I program in Postscript too!

    6. Re:Showing my age? by doctor_oktagon · · Score: 1

      It's been about 7 years since I went near Postscript .... and the only reason was to program flashy interfaces using the Hyperlook GUI developer, by the Turin Institute.
      Damn near broke my poor Scottish drink-soaked brain! I mean reverse-stack notation for gods sake?!
      It was enough to turn me into the l337 consultant I am today mind you ;-)



  66. Thats blind advocacy! by Anonymous Coward · · Score: 1

    Here are some comments I've read so far.

    > if one of them hangs (like Exchange) they ALL do

    This could have been an issue in Windows 3.1, but under NT this will never happen.

    > the difference between coding in VB and C++

    All those built in debugging tools can be helpful. If you don't want them, then don't use them! You can customise the IDE so they go away.

    > The API's you program against were mostly
    > written by creative people with taste

    MS does employ a lot of really really smart people. This is sounding more and more like Apple vs Windows.

    > Source code: In the course of just 7 months,
    > I've had to inspect the kernel code twice
    > (and change it once).

    So now that you've changed the code what happens to your app? It just doesn't run correctly on computers which haven't modified their kernal source the way you have?

    The only real advantages I see for doing development under Linux instead of win32 is the FSF philophy (freedom), the fact it is free (as in beer), and that Linux code is probably more portable than Win32 code.

    Personally I like coding on NT with Visual Studio the most and will stick with that. Last compiler comparison I saw said MSVC beat GCC for optimization. The tools are more advanced (IMHO) and just about any Linux tool that is useful if free to be ported to win32 if you want it (I'm sure all the good ones you'd want already have been).

    Maybe 9x isn't a good development platform, but NT certainly is.

    How many people here have lots of experience (over a year) of coding in NT with Visual Studio that think Linux is a better platform?

    Even if it is "better", how much better is it? NT&VS are a great combo. Linux is great too. If you only know win32 then I can't see Linux being so much "better" that it is worth switching too.

  67. Re:Give Emacs a Chance! by tjwhaynes · · Score: 3

    By far, my favorite feature is the popup Intellisense, when you're working with an object or struct and type "." or "->" you get a window with the details of the object at that level. You will quickly get hooked on this feature.

    Hmm. If you like that sort of thing, I can see that might be useful. That's a pretty trivial hack to make something like Emacs do that for you if you wanted it. Maybe forty minutes of thinking and coding to add a reasonable working version which scans all the included files to pick up the struct definitions. Better still, if you use Tags support under Emacs, you don't have to go search either - you can just look up the details.

    Plus, you can now edit and recompile c on the fly while debugging. That's a big timesaver for me (for correcting "freshman" mistakes like incorrect loop bounds without having to start all over).

    Not to decry this feature - it's extremely useful - but I do this all the time. With Emacs. Now why use Emacs? Mainly because once you have got over the initial speedbump of actually learning how to drive Emacs, you realise that anything you ever find repetitive or clumsy can be automated, speeded up or helped along with either a quick reconfigure, a new library, or in the worst case scenario, a few minutes of thinking and a few more of coding a new Emacs function. It's this extensibility that makes me realise that I shall never really pick up another editor for anything complex. For all you VI users who are gnashing (sic!) your teeth over this, I use vi as well, but more often than not for simpler editing tasks.

    Cheers,

    Toby Haynes

    --
    Anything I post is strictly my own thoughts and doesn't necessarily have anything to do with the opinions of IBM.
  68. It's pseudo-helpful IDEs, not msWin vs. Unix by Max+Hyre · · Score: 1

    I prefer to develop in a transparent environment---one where I know what code is being invoked, and by whom.

    I'm developing under Next/Openstep, and while the Project Builder can be nice in some ways, when things don't quite work, it can be a bear to follow layer after layer of makefile to determine what library or header file is missing.

    With standard Unix-like command-line developing, I know what I'm getting because I put it there, and if something's flaky, I can ask make (at least the FSF's version) to trace its ``thought'' processes for me to check. With the IDEs I've seen, too much is hidden, and if it doesn't work exactly as intended, or if you want it to do something that its designer hadn't provided for, you're in for quite a fight.

    True, you can develop from the command line under msWin, but for it to be as powerful and convenient as Unix, you need to augment the shell and utilities extensively. Cygwin gives you the missing capabilities, but I'd rather not retrofit---just go to the system whose shell scripting capabilities are a full programming language, that has a ton of Lego-like utilities to be fit together as you wish, and that lets you see what's happening every step of the way. After all, the bottom line of correct programming is knowing exactly what your code will do.

    --
    I refuse to believe corporations are people until Texas executes one. -- desert rain on http://www.dailykos.com/user/
  69. because by schloggie · · Score: 1

    the whole damn OS is intuitive,

    the file system is easy to understand and transparent,

    shell commands are fast and easy at the command line; i hate my mouse

    four cool desktops

    my k-task bar slides

    everything's free - i want it, i get it - my database, compilers, web server, lots of nice shell utilities and languages to choose from and suit any occassion, formal or informal

    the OS older, better tested, bug-free

    no memory leaks so i don't have to reboot (it would be a sin to bring my box down for any reason but an emergency)

    real multi-tasking

    it's cool


    - "If you tell the truth, you don't have to remember anything" -Mark Twain
    --
    - "If you tell the truth, you don't have to remember anything" -Mark Twain
  70. Yet another whish list by bockman · · Score: 2
    Important :

    Multi-file editing (and opening each file only once)

    Integrated editing/compiling/debugging

    Availability on both development and target platform

    Shall accept files written with other tools and shall generate files which can be modified with other tools

    Useful:

    Syntax highlighting

    Search by variable/function/classes

    Version control

    MMI visual editor

    Optional:

    Graph generation

    Project management

    Conclusions : I'm quite happy with Emacs, but I might taste somenting different from time to time.

    --
    Ciao

    ----

    FB

  71. Bah! Counter-example by Anonymous Coward · · Score: 1
    1) Run NT. I run NT, and keep it up for weeks at a time. If a program happens to crash, it crashes itself and only itself. I tend to run 15-25 applications at any one time (editors, browsers, IDEs, e-mail, news-readers, just as you've described).

    2) While I can't say that NT is immune from this, it is far more so than Windows 9x.

    3) I too have had to fix the source code to Linux once -- for my own use. But what happens when you want to distribute your code and it relies on the 'fixed' code? Do you have to wait for your fix to be integrated into the mainstream? Furthermore, though, why should you even have to look into the source code? Ao good API should leave nothing questionable enough for the source code to be consulted.

    4) Hey, some of us prefer a point-click-drag to 47 keystrokes. To each his own.

    Linux has nothing for my grandmother.

  72. CORE DUMPS by Anonymous Coward · · Score: 2

    Nuff said.

  73. Hopefully NT... by schwag-a-thon · · Score: 1

    I sincerely hope the alternative most are referring to using linux is Windows NT. Development in a windows 9x enviroment was really never meant to take place. If we're talking about reasons not to develop in in win9x, the answer is incredibly obvious: No kernel space. Oops, my programs has clobbered kernel32.dll's memory space, time for a reboot.

    Even in Windows NT however, the things that have bothered me most about MSVC++ are the way the IDE and compiler are really inseperable. In FreeBSD I can look at the makefile (which has nothing to do with the code to be compiled) and figure out why something's broken. In MSVC, I can think of at least one point where a linking error was traced to some obscure error in the MSVC itself, and to which the only solution was to build in Release mode instead of Debug mode. Great solution, Microsoft.

    --
    to e-mail: remove the (dot), rot13, 2's compliment the bits, XOR with pad 42b397f92109d9ca92, and remove head from ass.
  74. It's the freedom by botsie · · Score: 1
    On Linux it's trivial to write an application in which certain modules are written C, and others in Perl, Python or what have you.

    It's sheer hell to try to make different programming tools inter-operate in Windows, unless they're all parts of Visual Studio (and even then it's difficult)

    On linux you have the luxury of picking the tool for the job. On windows you have to fit the job to the tools that M$ gives you.

    Biju

    --
    "Rowe's Rule: The odds are five to six that the light at the end of the tunnel is the headlight of an oncoming train."
    1. Re:It's the freedom by ekidder · · Score: 1

      Never used Cygwin, I see.

      There's a plethora (God, I love that word) of tools available for both Windows and the various Unices (and Linux). I use both VS and Cygwin when in Windows and GCC (of course) under Linux. Strangely, there's quite a few bits of VS that I would give several limbs in order to have everywhere, but one cannot have everything.

      Tools aren't a real reason, since both system have things the other don't have and, for the most part, both systems have the same set of tools. As an idealogical reason, freedom is a good answer, but I don't really care for idealogy :)

      Eric ze Kidder

  75. Windows 95 Does Erase old BIOS by Mad+Geek · · Score: 1

    If you look at the hardware.txt from the original Windows 95, it states that Micronics motherboards, and Micron/Zeos systems would get their BIOS overwritten. It really helps when it tells you about it after the thing is installed...

    I remember reading that it still happens with Win98 and Win2k, but I'm too lazy to check the Microsoft knowledge-base now.

  76. Substandard C++ compiler, libraries, etc... by gtt · · Score: 3

    The compiler in MSVC++ doesn't support the latest C++ standard, especially in the area of templates. In addition, it doesn't support the Standard C++ Library as described in the latest version of Stroustroup.

    Also, having the full source for the system libraries and the operating system is important when debugging. I've been able to fix/extend things that I couldn't on Windows.

    Thread support in Linux is robust and follows the POSIX standard. If you have to write portable code, this can be important. Also, most textbooks and references on threading address the POSIX standard pthreads library.

    A rather big one: sockets and file descriptors are unified under Linux/Unix. This means that the system API's that apply to files also apply to sockets. Because TCP/IP was added to Windows later in the evolution of Windows, the socket descriptors are not interchangeable with other system objects, so WaitForMultipleObjects() in Windows cannot wait for a system object and a socket at the same time. This can complicate socket programming.

    Windows takes a huge performance hit because its DLL's are not relocateable code, and the runtime loader in Windows must patch each call and jump instruction in the code when the DLL loads. In addition to taking a huge amount of time when a DLL is loaded, it pollutes the swapfile with multiple copies of the DLL because of the patched instructions. Under Linux, shared libraries are position-independent, so they do not have to be patched at load time and they may be paged directly from the shared object file, thus not polluting the swap file.

    That's all I can think of off of the top of my head.

    1. Re:Substandard C++ compiler, libraries, etc... by shadrack · · Score: 1

      I think Borland C++ builder 5 supports the latest standards and features, plus gives you access to the Delphi VCL library, and is compatible with all the MS libraries. I'm looking forward to the Linux version.

    2. Re:Substandard C++ compiler, libraries, etc... by tree_frog · · Score: 1
      Re the Borland Compiler - does it still use the RogueWave STL libraries. OK, it was a year ago, but back then when I was using Borland C++builder and VC++6, we gave up on Borland because it wouldn't compile its own ANSI libraries (ie STL) as ANSI strict. Since we wanted to use the software we were developing (financial prediction and monitoring stuff) cross platform, we used VC++6, as it seemed much better.

      In fact, I actually think the MS compilers aren't bad. The libraries may be shite, but they obviously have thrown a lot of good bright people at the compilers.

      Let's face it, there are not that many really good programmers around, so thank God that MS has actually thrown its talent at something important. Which would you rather be a good piece of software; the compiler or Word?

      regards, treefrog

    3. Re:Substandard C++ compiler, libraries, etc... by sconeu · · Score: 1

      MSVC6/SP3 does not support exception specifications.

      i.e.

      int f(void) throw(x, y, z);

      --
      General Relativity: Space-time tells matter where to go; Matter tells space-time what shape to be.
    4. Re:Substandard C++ compiler, libraries, etc... by Dionysus · · Score: 2

      The latest gcc doesn't support the latest C++ standard either, so what's your point?

      Ever tried wstring? What about relying on namespace protection in the std library?

      AFAIK, the only truly std C++ compiler out there is WatCom (not tested it myself, but a friend has).

      --
      Je ne parle pas francais.
    5. Re:Substandard C++ compiler, libraries, etc... by steve9000 · · Score: 1


      >Thread support in Linux is robust and follows the POSIX standard.

      Heh, not really. They follow it closely, but deliberately not exactly. See the linux-kernel mailing list.

      As for the DLL issue, the way windows does it is quite a bit better if the DLL is only used once, since the code can be smaller (non PIC). UNIX wins if the DLL must be loaded several times.

      This is one of the reasons why windows mozilla components are smaller than their unix counterparts.

      Stephen.

    6. Re:Substandard C++ compiler, libraries, etc... by Broccolist · · Score: 2
      I've found coding C++ is much easier under Windows than Linux. GCC has its own share of incompatibilities with the standard: the most obvious is the complete lack of support for virtual base classes. Second, Linux theoretically has libraries that are more up-to-date that MSVC's; but in practice, since you must distribute your code in source form (unless you want to be crucified), you have to support older versions of the libraries to save your users the hassle of recompiling GCC.

      The biggest problem with developing under Linux, though, it that gdb's support for C++ is terrible. Yes, even the new 5.0. It crashes constantly, is confused by name mangling and object construction and destruction. Bugs that should've taken 5 minutes to find take 60. I always use MSVC's debugger unless I am debugging linux-specific problems.

      I'm not sure where you got the idea that Linux has better support for C++ than Windows. The few language features that MSVC is missing are minor inconveniences at worst.

  77. MDI -- SDI by N@ · · Score: 1

    Question: how can you take an existing MFC SDI project and convert it to an MDI project? Answer: In devstudio go to tools --> Options --> Environment --> General. Once there select SDI, if you would like SDI, or unselect SDI if you would like MDI. Now close your project and re-open it. You will now have your pre-existing project in either SDI or MDI depending on what you chose. It takes less than a minute and you can switch back and forth as you wish.

    1. Re:MDI -- SDI by sconeu · · Score: 1

      No no no. That swaps the DEVELOPMENT ENVIRONMENT between SDI and MDI. The question was, you are developing an SDI project and used MFC. Your requirements changed (again), and now your customer wants your project to be MDI. How do you change it?

      --
      General Relativity: Space-time tells matter where to go; Matter tells space-time what shape to be.
  78. Fluff?! by dkh2 · · Score: 2
    System stability is "fluff?"Coding and file manipulation tools are "fluff?"gcc is "fluff?"

    I beg to differ.

    What about the fact that you have access to a truly complete definition of the API? Does this guy realize that there things that MS does with their code that others can't because the API is less than fully documented in the public arena?

    Additionally, if you want to compile on a MS platform you pretty much have to shell out several hundred dollars for your tools. On Linux your tools are included with the distribution that you can acquire completely free from many places.

    Let's see here, Linux has:

    • Stable systems
    • Free OS
    • Lots of FREE tools, Woohoo!
    • Open API
    Whereas, Microsoft has:
    • Questionable stability
    • $200+ for the OS
    • Expensive tools
    • Only a SEMI-open API
    I think Linux wins 4-0!!
    --
    My office has been taken over by iPod people.
    1. Re:Fluff?! by MadKeithV · · Score: 1

      Let's see here, Linux has: -Stable systems -Free OS -Lots of FREE tools, Woohoo! -Open API Whereas, Microsoft has: -Questionable stability -$200+ for the OS -Expensive tools -Only a SEMI-open API Questionable stability? You have not used Win2k or WinNT apparently, its stability is very, very good. A few reboots per month perhaps, if you really stretch the system and write strange code. $200+ for the OS? It's usually included in the price of the PC you bought. The people that actually buy PCs with NO preinstalled OS are a minority. Getting the more advanced OS's of course is different, unless you're buying Dells you'll have to pay for WinNT or Win2k. But I develop using Win95 at home, and don't have too many problems with it. Expensive tools? For professional development, perhaps. Though you can get cheap student editions, or buy cheap older versions. Releasing commercial code with this is usually impossible though, definately negative. Only a semi-open API. I think it's less than Semi-open, but you're right, Linux wins there.

    2. Re:Fluff?! by tweek · · Score: 1

      A few reboots per month perhaps, if you really stretch the system and write strange code Okay maybe I'm the only one but explain to me why I should have to reboot my machine for anything OTHER than a new kernel or to add new hardware? People have become used to rebooting machines to fix problems. Reboot == downtime. It's that simple. Downtime means less productivity. Unless of course you like using a forced reboot to justify another smoke break or something. It's like our lab here. We have a lab full of win2k machines for some of the tests we do. I noticed at the new login screen it actually provides "HELP" for using ctrl-alt-delete. I would gather at this point most people know exactly what a ctrl-alt-delete is. They've been using Windows long enough now. This isn't intended to be an anti-MS post but I've had to deal with alot of MS bs since I got back from India and it really has me frustrated.

      --
      "Fighting the underpants gnomes since 1998!" "Bruce Schneier knows the state of schroedinger's cat"
    3. Re:Fluff?! by dkh2 · · Score: 1
      Actually, I do use Windows on a daily basis. I am sitting at a WinNT-SP6 station right now. I do not consider "a few reboots per month" to be stable. I know of Linux boxes have been running without reboots for upwards of 8 months and, they were only rebooted then because of new hardware installation. This NT box I'm sitting at now gets rebooted once a week whether I like it or not.

      As for Win2k, Until problems with the special Kerberos "extensions" are worked out our campus is being given a very strong caution against switching to it and the server edition is forbidden on the network.

      "Cheap student editions?" Yes, the price has been reduced for academic packaging but, for the same functionality I can still use the free tools that came bundled with my free OS.

      Why should I pay $139 for Win2k (upgrade, academic price) plus another $100 (academic price) for Visual C++ 6.0 Pro. or, $260 (academic) for Visual Studio 6.0 Pro. when I can have RedHat Linux 6.2 Deluxe for $79.95 (regular price) including all of the tools I need?

      --
      My office has been taken over by iPod people.
    4. Re:Fluff?! by Znork · · Score: 2

      Hmmm, a few reboots in a month? I had a Linux development machine up for 497 days and logged in and out of X maybe 4 times in that time (mostly because X leaks a bit when you do development stuff and dont free up allocated resources always, and a relog every few months frees up some memory).

      Actually, I had it up for more than 497 days, but discovered that the 1.2 kernel series still had a problem with ticks wrapping after that uptime so a few processes went haywire when they got a negative or zero elapsed time. The machine went on running tho, just the apps crashed out.

      A few reboots per month isnt even remotely close to 'stable' if you're just developing userspace applications. Maybe for kernel modules.

  79. It's all about the tools! by harshaw · · Score: 3



    Hey people,

    Read the subject. The whole point of using the Win32 platform at this stage in the game is the massive number of developer tools that Microsoft has been building for the last 15 years. Imaging the Microsoft environment as a pyramid: VB, ASP, ADO on top, COM, MTS, active directory, etc in the middle, and the Win32 API at the base. Of course this is grossly simplified but it exemplifies what is unique to the Windows development environment.

    Case in Point:

    1) The Win32 API is similar to Linux system calls; create files, threads, events, mutexes, etc. While you can argue that there are major architectural differences, they both provide the same level of support to the developer.

    2) COM, MTS. Now the differences start to show. Linux does not have a component model that is widely integrated or used across multiple projects. Of course, newer works like GNOME are very component driven and may end up driving the defacto component model for Linux. However, on Win32 almost anything can be done with COM using a bit of VB script (can you say Melissa virus?). MIS people can tie together a bunch of different packages using COM. In Linux you have to resort to a wide array of command line tools that have different syntax, different configuration file formats, etc. MTS provides easy to write transaction support that is almost too easy to use.

    3) VB, ASP. For anybody who has used these tools they are probably very familiar with their limitations. Is VB or ASP superior to other high level scripting languages? NO!! However, VB & ASP can access thousands of objects. You can create a fairly sophisticated UI in VB in a couple of hours. If you want a new control for your UI chances are someone has already written it.

    The moral of the story: The application developer has a whole suite of tools they can use to rapidly develop high level apps. It may be a stinking pile of crap but for the most part it works :)

    IMO, the java technologies are still the Windows killer for development internet apps. JSP and EJB sounds like it may be much better (and more fun to develop) than using VB and COM.

  80. Bah! I second this! by Anonymous Coward · · Score: 5
    My friend, a Linux lover, and I argue periodiacally about the philosophical differences between Linux and Windows (NT; 98 is a bomb).

    Many of the points brought up by TummyX are valid ones. Sure,they can be refuted, but he could then counter-refutre them.

    The key is its a philosophical difference. Linux lovers might say "Linux's command line is superior!" Superior to what? NT's command line? OK, yeah. You know why? Becuase the NT command line is an unimportant accessory in NT while the GUI tools are central to it. It's a philosophical difference.

    Like any philosophical difference, you will hardly be able to convince people to give up their current beliefs, morals and understandings to see your point-of-view. Why try?

    1. Re:Bah! I second this! by RedWizzard · · Score: 1
      Becuase the NT command line is an unimportant accessory in NT while the GUI tools are central to it.

      I wouldn't go that far. There are still things you must do through an MSDOS shell. Viewing routing tables for example. Sending winpopup messages. Sure, there are gui versions of these tools but they don't come with NT.

      My major problem with developing under windows is that MFC is badly designed. I haven't done enough development with gui toolkits under Linux to comment on them, but Java's Swing and AWT are both significantly better thought out than MFC.

  81. Why? (kind of long I guess) by SillyWiz · · Score: 5

    Well, I've done all sorts of stuff, I've done VB development, Access, Paradox and C++ for Windows. I've developed for the Mac, for embedded systems, for tons of flavours of UNIX, and the reason to use UNIX, for me, has to be the documentation. Mac has this advantage as well, with the proviso that you have to buy "Inside Mac". Once you've bought it, you've got a UNIX level of documentation.

    When you want to know what something does on UNIX, the documentation is there. In /excruciating/ detail it describes the API, and everything it can do and everything that can go wrong.

    Windows /has/ the documentation available, but it's somehow much less accessible. Firstly it carries a lot of layers about with it: there are multiple image formats, and multiple string types and layers of API and not all of what you can do in one layer is wrapped in another layer.

    Secondly, the documentation is scattered around. It's a lot harder to grep for things: you have to know exactly the right trigger phrases to get the info out of the help systems. (To be fair, it's hard to grep dead trees, but Inside Mac comes with an index volume bigger than the Bible to help on that front.)

    Thirdly, the documentation is often simply out of date. Windows chanegs API at a scary rate and it's hard to be sure what you're reading is applicable or useful.

    The fourth problem I found is that the API levels are incomplete. They lack details. Obvious example; loading images in MFC in a format to display them. It's horrible and code that gets repeated over and over. It needs an image class to handle that, and several dozen are available but are 3rd party and hence buggy or licenced or shareware or unfinished or unsupported or...

    There's no way to tell what will remain a supported interface: Will this DX5 call still work in DX8? Who knows. Macintosh has promises of support attached to the APIs.

    I found projects annoying on VC++ as well as other people here, but I didn't on Codewarrior so that might just be the way they're done. I dislike MFCs dialog accessing stuff: Delphi does it much more elegantly.

    On the final front, the whole concept of having stuff like running a window being so complicated that tools are needed to generate the boilerplate code to save people from the tedium, kind of indicates that that code is too complicated. On a personal front, I'd much rather have it take 3 lines of code to drive a window than have a tool to write the 300 lines for me.

    Microsoft is running with two huge conflicting goals: the first is to drive stuff forward creating new APIs, but the second is not to outdate anything ever. Coupled with their financial issues ("ship it quickly") means that they layer things but layer them badly - some of the layers have thin bits which expose lower level nastynesses, others parts are too thick to expose useful functionality.

    The solution to windows being complicated to develop for is to /make it simpler/, not to hide that complexity behind wizards. The problem there is that the minute you try and do something the wizard isn't expecting, you're dropped off into this ocean of complexity with little or no support. This leads to a development style where that which is "possible" is effectively determined by that which the wizards support - and that often there is one way of doing things, because any other way, no matter how obvious leads to complexities and incompatibilities and huge amounts of effort. The example given of switching an MDI to an SDI project is a perfect example of this: you aren't supposed to. You're supposed to make that decision on day 1 of the project and stick with it. Access never used to export new toolbars along with the database: toolbars have to be built on each user machine. Corrollary: Access is designed to be used in a fashion where the development machine is also the deployment machine... anything else requires a fight.

    MFC uses macros instead of virtual function calls to dispatch window messages. Why? Because using vfunc calls was too slow in early versions, given the volume of window messages generated. So now it has this history of macros and general untidiness dealing with that sort of thing.
    UNIX never had the problem in the first place. Why? Because X allows you to choose which messages are ever dispatched in the first place, rather than sending them all and letting the app sort out the wheat from the chaff. Manipulating the macros is complicated and error-prone, so now a wizard does it for you: a patch on the patch on the...

    UNIX concentrates on being small, layers appear only slowly and are more complete. And at almost all layers, there are interchangeable options. Different shells, X servers, editors, window managers.

    This smallness makes it easier for the layers to be complete, and uniform in shape and well understood.

    The downside is that it does take it longer to evolve higher layers - media players and so on.

    1. Re:Why? (kind of long I guess) by Anonymous Coward · · Score: 1
      Access is designed to be used in a fashion where the development machine is also the deployment machine... anything else requires a fight.

      My dad once had his entire patient database (he's a surgeon) in Access. The problem was that the database had to run on different PC's (and get sync'd), and be accessible from 2 PC's at the same time. So he had this very complex syncing and locking scheme, which took months to develop.
      In the end he just thought the better of it and switched to Delphi.

      From my pov (and I'm a developer myself) if you're going to do Windows dev work, and it's not supposed to be ported to other OS's (if you use Visual Studio, it _will not_ port easily, so ...) then you're better off with Delphi.
      Cleanly designed and documented framework (including the source). And it has almost all the features of c++.

      Although I must admit it's been awhile since I've written anything for Windows. I write unix stuff nowadays, and I'm not planning to switch back. (Although most of my apps should compile in cygwin/gcc)

    2. Re:Why? (kind of long I guess) by jhigham · · Score: 1
      Mac has this advantage as well, with the proviso that you have to buy "Inside Mac". Once you've bought it, you've got a UNIX level of documentation.

      Inside Mac is very nice, but you do not need to buy it. All the files are available as PDFs on the web (dev.apple.com is a good starting point, I believe). I had access to some real heavy duty printers, and would print out entire inside mac editions, double sided and drilled - still have them lying around.

  82. How Linux first improved my coding by Remote · · Score: 1

    I'm addressing the original poster here.

    It seems you were wise enough not to mention what language or environment you and your friend use!

    The reason is portability. Not in the sense that your code should run in different OS's. I'm talking about that commonsense rule that states that portable code tends to be cleaner and have less bugs. If you are writing code that has to be compiled in different environments you educate yourself a lot.

    When I first installed Linux I was in the middle of a project. I didn't install it to do my coding, but just to give it a try as a desktop. Well, I'm infected now. Eventually I decided to compile my C++ sources with gcc. It's still a console app, I'll add the UI layer later, so it should compile with gcc as it did with Borland tools. Man, what a shock! Not a single module survived without a warning. When things finally compiled, the program behaved all wrong.

    If you use one single development tool you tend to assume things such as all int's are signed or fopen() defaults to "binary" mode. These things stick to your knowledge of the language and you end up coding as if they are part of the specification, although you "officially" know they are not.

    I assume you code in a way that separates user and machine interface from the business rules (sorry for the cheesy expression). If you have a test framework to call the latter, you should compile it with different tools and compare the outputs. What I did was switch from Windows to Linux every other day. The first build of the day was pretty error prone in the beginning but as I became more careful I finally managed to get things right the first time around.

  83. what about java by olip · · Score: 1

    Developping for a good OS is a good idea. but... Developping for most OSes is even better ! A little Java advocacy : - really portable, event to OSes that do not exist yet, - efficient coding : 20 lines for a Web Server, - tons of free tools, - fast : 10ns for a for loop step well, the OO approach is a bit of a learning curve for C geeks, but it's worth the effort. No more OS advocacy : Application Development can take the best of the two worlds...

  84. Re:On the contrary (Slightly OT) by Tim+C · · Score: 3

    On the subject of Stevens, I have "Advanced Programming in the Unix Environment", and would thoroughly recomend it to anyone wanting to get into "serious" Unix-based programming.

    It is comprehensive, detailed and well written with clear examples; quite simply the best computer-related text I've ever read. It is pricey, but well worth the money.

    Cheers,

    Tim

  85. Friends don't let friends do MDI. by BrainBarker · · Score: 1
    Here's question I would like to ask of all the Developer's Studio users...how can you take an existing MFC SDI (single-window) project and convert it to an MDI (multi-window in a single pane) project?

    At home I use Linux. At work I use Windoze NT. If I had to pick just one thing about the Windoze GUI that really bugs me, it would be MDI. What a hideous thing to do to an otherwise useful application. IMNSHO, no multi-document application should ever use MDI.

    When I'm developing on a real OS (Linux now, OPENSTEP before), the ability to interleave windows from multiple applications is invaluable. When testing and debugging, I need to be able to manipulate the windows of the target application, use the debugger in a terminal window, watch the live outputs into various log files in other terminal windows, view the source in various editor windows, etc. On Windoze, if even one of these applications is MDI, then the others become almost useless.

    In an MDI world, you've basically reverted back to a single-tasking OS. Please don't go there.

    --
    "Dance like it hurts. Love like you need money. Work when people are watching." - Dogbert.
  86. Re:Bah! POSIX does exist! by Amphigory · · Score: 2
    Oh it doessss? Where is it? Posix requires that you have a number of programs, for example a borne compatible shell. Where is it? Posix requires certain library interfaces? Where are they?

    The answer for 3.51 was "buried on some cd somewhere, notincluded with the default NT install". The answer for 4.0 is, I assume, the same. I will challenge you, or any of the other MS apologists, to name one commercial program successfully using NT's POSIX module.

    --

    --
    -- Slashdot sucks.
  87. MS agrees with you by StrawberryFrog · · Score: 1

    > IMNSHO, no multi-document application should ever use MDI

    Microsoft agrees with that, and so do I.

    Ever since Windows 95, MS has been deprecating MDI. Word 2000 doesn't use it at all.

    --

    My Karma: ran over your Dogma
    StrawberryFrog

  88. VI man ! by bytesex · · Score: 1

    for the carpal tunnel syndrome, man ! Twelve terminal-emulations and cut and paste without ever using a mouse ! Is that better than feeling for your mouse, then looking for your window and then positioning your cursor in that window or what ?! I have to (cross-)compile an application I'm typing with vi on a linuxbox, on a windozebox every now and then (using lcc), but I'm only too carefull not to let anything linger there or make any changes, since I closed ie5 once on it and the thing just rebooted without warning; that's NT for you; the multitasking operating system on which the multitasking stops when you kick off 'edit' in a 'cmd' box. Give me stability, give me vi and let me get on with my work now !

    --
    Religion is what happens when nature strikes and groupthink goes wrong.
  89. JAVA baby!! by maitas · · Score: 1

    The best developement enviroment is JAVA, it runs best on UNIX, and you can get Forte Comunity edition for !!!!!free!!!!!! in the sun web site.

  90. Use the target OS as dev-OS by Otis_INF · · Score: 1
    It's simple. If you want to develop an application for the Linux market, use Linux. If you want to develop an application for the win32 market, use win32. Why is this so difficult? The last time I developed on Linux it was to port a geometry compiler to SGI from win32. Simple: Linux was a good intermediate platform because it's UNIX behaviour was the thing I needed to test the stuff.

    If you don't care which platform to choose and what your audience is using, it's up to your personal requirments. All other arguments are advocacy material. I can ramble along for hours what the advantages of development on win32 are above development on Linux. So can others about the advantages of linux development above win32 development. Hell, I think even some Mac user can join in and ramble with us :).
    --

    --
    Never underestimate the relief of true separation of Religion and State.
  91. Converting MFC SDI etc. by throx · · Score: 2

    Generally the biggest problem with converting an MFC program from SDI to MDI is that you've made all sorts of assumptions about your document being the only one in the application, and similar assumptions about your view. If you've been true to the Doc/View architecture, and assuming your MFC code is clean it really isn't that hard to change from one to the other. The easist thing to do is create 2 projects from scratch which are identical except one is SDI and one MDI. Do a diff and see which code is different. It's not a lot - mostly the Application initialisation.

    As for MSDev vs Emacs: I've seen both in use where I work and that's on Windows. When given the choice, I prefer to write my code using MSDev because I like the IDE. Even when coding for Linux, I prefer the layout and operation of the system. Then you switch windows and make (assuming you have Samba and share code dirs). Others use Emacs on NT for development.

    I've never crashed NT with Dev Studio. Developing on 9x is suicide - you learn to regret it really quickly. Personally I don't mind Win32 development. YMMV of course, but Microsoft really does go out of their way to make things easier for developers. With tools like MSDN on DVD (over 6G of indexed help), Linux's man pages really pale in shame. The only redeeming grace is the "ultimate" documentation - the kernel itself.

    I will say it again: YMMV.

    (Brace for flames - this is Slashdot).

    John Wiltshire

    --

    Fear: When you see B8 00 4C CD 21 and know what it means

  92. What about to code in Apple Enviroment? by bio2 · · Score: 1

    For me is a misterious apple... i never ask me.. in which language are code all apple software... i always think that are under assembler but is this right? i mean... Apple is more intuitive than windows to use daily... and more powerfull than windows.. i am a mac user since 1995 and is great to use than my actual pIII 550 128ram windows 2000 system... i am fighting with my bosses to have a Macintosh again... cause... i am a senior graphic designer but... now... i must use windows cause...

    In my project we use that crap of Visual Interdev, and of course the f* Visual Source Safe, wich the f* way.... i cant use a simple text editor cause my CTO tell me that i must use Visual Interdev to work great with all the team...

    i'm really f* up... so... i still in battle to have my kick ass 9600/300 =). and of course my linuxPPC box... =)

    --
    ---- EoF
    1. Re:What about to code in Apple Enviroment? by tao · · Score: 1

      Most of MacOS (except for the pieces that needs most optimisation) is written in C; using Apple's MPW (Macintosh Programmer's Workshop), freely downloadable from Apple's website
      ftp://ftp.appl e.com/developer/Tool_Chest/Core_Mac_OS_Tools/MPW_e tc./. I suspect most applications for MacOS are either developed using MPW or CodeWarrior.

      The GUI-parts and the programmer-interface (Aqua and Cocoa) for MacOS X are written in Objective C, while the kernel and the BSD-layer (Darwin) is C.

  93. Re:Multimedia by Stonehand · · Score: 1

    mpegs? Try freshmeat.net; ISTR that there's an entry for smpeg, and one for mtv. The former is SDL based, and therefore has... issues, if you've got an Aureal Vortex-based card.

    --
    Only the dead have seen the end of war.
  94. Why is the question "coding for Linux" by mr · · Score: 2

    The developer in question should be looking at making his/her code run across Unix, not Linux.

    Portable code is the key. If they write PORTABLE code they can run on Solaris, AIX, HP/UX, BSD, Mac OS X, etc.

    Now, why develop for OpenSource Unix *FIRST*? As another had said....you have FULL access to the source code. You can trace the flow from your code to theirs. And figure out if the error is in their code, the written docuemntation you used to produce the call, or the error is in your code.

    The only thing to watch out for is GPLed code if you don't want your code under the GPL. Odds are your firm makes its profit from intellectual property expressed in the source you compile and sell. *IF* someone makes a charge that you have GPLed code in your product, you will have to defend this charge. Such defense could be as simple as a statement "No we don't" to hiring a lawyer to explain to a judge why the lawsuit over the GPL needs to be decided in your firms favor via the presentation of your source code to a judge, paid experts, etc. How do you avoid the GPL? Just read the licences. Some are as simple as public domain. The licence on PostgreSQL is an example of a simple one that is not PD and specific to one program. Some are more verbose and complicated.

    If the code *HAS* to run on Windows, libraries exist for Unix to Windows portability. These cost $, and slow up operation, but somehow money and speed are not an issue with M$ software.

    --
    If it was said on slashdot, it MUST be true!
  95. Codewarrior by demaria · · Score: 1

    This post is neutral.

    CodeWarrior is available on Linux (they support RedHat and SuSE). I've used CW on the Mac, and rather like it. But anyways, the program is available on Mac, Win, Linux, and Solaris. Now, when I got mine it said the project could be shared across different platforms. This may make it easier to do cross development.

    So if you like CW under Windows, you could use it under Linux (hopefully they kept the user interface the same under linux, and that would make transitioning easier).

    -- Mike DeMaria

  96. Re:Bah! POSIX does exist! by ggeens · · Score: 1

    True, NT supports a POSIX personality for programs. There is one caveat: if you want a C2-certified system, you have to disable the POSIX subsystem.

    I'm not sure if the GNU tools actually use this POSIX system: they also work on Win9x, and AFAIK there is no POSIX for that OS.

    --
    WWTTD?
  97. Different culture by Casca · · Score: 1

    Has anyone noticed that there is an entirely different culture out there when comparing the folks that code for M$ vs. NIX? It is kinda tough to pinpoint, but one example that sticks in my head is the first time I checked out TUCOWS. I was used to Freshmeat, and man what a difference. It seemed like every program on TUCOWS was either shareware or crippleware, hardly any freeware, and almost no source code. Compare this to freshmeat where freeware and source code are the standard fare.

    I guess that is one of the things that turned me on to NIX coding. The people that I interact with either in IRC or usenet are just more friendly and willing to help (assuming RTFM) than their M$ counterparts in the same places.

    --
    Casca
  98. Soft mounts by FascDot+Killed+My+Pr · · Score: 2

    man mount:

    hard: The program accessing a file on a NFS mounted file system will hang when the server crashes. The process cannot be interrupted or killed unless you also specify intr. When the NFS server is back online the program will continue undisturbed from where it was. This is probably what you want.

    soft This option allows the kernel to time out if the nfs server is not responding for some time. The time can be specified with timeo=time. This option might be useful if your nfs server sometimes doesn't respond or will be rebooted while some process tries to get a file from the server. Usually it just causes lots of trouble.
    --
    Less money, less admin, less machine--more power

    --
    Linux MAPI Server!
    http://www.openone.com/software/MailOne/
    (Exchange Migration HOWTO coming soon)
  99. Market, Market, Market... by Slad · · Score: 2

    As a developer of multi-platform applications for almost a decade now, I can say that there aren't any significant advantages in the actual development of apps across different platforms. SOme asre better for some things, and others are better at other things. The one advantage, and the best advantage, is that you can break into different markets and/or make yourself more marketable. Here's what I mean... The chances that Windows will be where it is 10 years from now looks pretty slim. By learning and porting applications to other OSs, you create a user base in a growing market. If Linux takes off and grabs real market share, and/or Apple ports OSX to Intel machines, how pretty will you be sitting when businesses and consumers realize that your apps are available across all three; and can share data transparently? Answer: pretty damn sweet. If you are a developer for a business (not developing "shrink wrapped" apps), it is also a good idea to get your feet wet in developing for other OSs. Again, MS probably won't be the juggernaught it is today; and you will be a lot more marketable if you can develop on other platforms.

    --
    I am Slad.
  100. Microsoft Has No Clue ... by StormyMonday · · Score: 1

    about regular expressions, configuration management, build management, or testing. Try any of these in Visual C++ and you'll find yourself falling over your own feet. There's also the funky directory structure that VC++ keeps trying to force you into. (Basically, it's a rather deep strict tree, with everything you add as a subtree of whatever you did last.)

    Then there's the cost factor. Buy a copy of VC++ (not cheap!) and you're not done. Seems like every time you turn around, you need a new piece of software. The justification, of course, is that a programmer costs (mumble) thousand dollars per year, so a few thousand extra for "productivity tools" is negligible. Sweet deal for Microsoft and friends.

    Admittedly, the last big project I did with VC++ was for WinCE (doesn't anybody *look* at these acronyms??). That's guaranteed to leave a bad taste in anybody's mouth.

    --
    Welcome to the Turing Tarpit, where everything is possible but nothing interesting is easy.
  101. GUI Abstraction Layer by Grendel+Drago · · Score: 1

    Hmm... GTK does this, but you can get GTK-- or another wrapper (I think another exists, I just forget its name) to wrap the functions into nice, neat classes.

    Of course, QT is class-based from scratch, if you like that sort of thing.

    And my two biggest reasons for developing under Linux?

    * vim's syntax highlighting whups MSVC's five times a week and twice on sundays. Try to get MSVC to highlight 90% of the formats that vim supports. (e.g., .sql, .spec...)

    * rpm/dpkg beats InstallShield hands down.

    -Grendel Drago

    --
    Laws do not persuade just because they threaten. --Seneca
  102. Re:You should have used DICE by weisserw · · Score: 1

    Uhm...try gtk_widget_show_all()

    Shows a widget and all its children.

    Bub-bye

    -W.W.

    --
    "Well it should be obvious to even the most dim-witted individual who holds an advanced degree in hyperbolic topology...
  103. I know about locate by FascDot+Killed+My+Pr · · Score: 1

    Locate is great for finding files. Problem with it is threefold:

    1) Let's say I install something, like LessTif. The LessTif rpm doesn't modify my ld.so.conf so I have to put the path to libXm in there myself. Where did the RPM put it? Can't use locate because I haven't yet run updatedb.

    2) Not portable. Maybe there is a locate workalike on AIX or Tru64, but I haven't found it.

    3) find has some great options. Like -exec, -owner, etc.

    I generally use locate to find files (even if it means running updatedb manually first) and find to perform operations on them (grepping especially).
    --
    Less money, less admin, less machine--more power

    --
    Linux MAPI Server!
    http://www.openone.com/software/MailOne/
    (Exchange Migration HOWTO coming soon)
    1. Re:I know about locate by SurfsUp · · Score: 2

      Locate is great for finding files. Problem with it is threefold:

      1) Let's say I install something, like LessTif. The LessTif rpm doesn't modify my ld.so.conf so I have to put the path to libXm in there myself. Where did the RPM put it? Can't use locate because I haven't yet run updatedb.

      Yes, that's actually a very interesting problem that's worth solving. What is needed is some kind of event supported by VFS; a program like locate can register to receive it; the event says "I just changed such-and-such directory [and optionally] in such-and-such a way". It doesn't really have to be any more than a notification of change - locate could pick these up and automatically do an incremental re-index on your next locate or locate -u cron job.

      We're talking about a feature here that touches the system in a few different places and you'd want to be very careful in how you went about it. Right now we really don't have anything that handles system-wide events/messages. The current state of the art is a kind of hierarchy where program results get passed up and down a tree of execute and a pretty unsophisticated and often inconvenient way. We need a system-wise messaging facility that can handle messages that cross between components, asynchronously. Ultimately such a system will exist in Linux - it's a better way of doing things, so it will happen.

      2) Not portable. Maybe there is a locate workalike on AIX or Tru64, but I haven't found it.

      Ah, seriously, I don't really care about that. It's good, so other platforms will adopt it if they haven't already. Just don't use it in a script that's supposed to be cross-platform.
      --

      --
      Life's a bitch but somebody's gotta do it.
    2. Re:I know about locate by Znork · · Score: 2

      You can write a locate 'workalike-good-enough' on any unix in just a few lines :).

      updatedb:
      find / -type f -print > /var/spool/filedb

      locate:
      grep $1 /var/spool/filedb

    3. Re:I know about locate by robin · · Score: 1

      > Locate is great for finding files. Problem with > it is threefold:
      >
      > 1) Let's say I install something, > like LessTif. The LessTif rpm doesn't modify my > ld.so.conf so I
      > have to put the path to libXm in > there myself. Where did the RPM put it? Can't > use locate
      > because I haven't yet run > updatedb.

      1) rpm -qlp foo.rpm (RedHat)
      dpkg --listfiles foo (Debian)

      > 2) Not portable. Maybe there is a locate > workalike on AIX or Tru64, but I haven't found > it.

      2) GNU fileutils contains locate; portable up the wazoo. Why settle for a workalike when you can have the real thing?

      > 3) find has some great options. Like -exec, > -owner, etc.

      3) this is true

      4) have you seen rgrep? nifty

      5) don't try reimplementing locate as a shell script, use the full thing. It does quite a lot of compression, optimising, and has exclude lists and so forth.

      damn this text mode *sucks* for laying stuff out. The lines with all the > ini them are quotes....
      --
      W.A.S.T.E.

      --
      W.A.S.T.E.
    4. Re:I know about locate by Astastrafal · · Score: 1

      Let's say I install something, like LessTif. The LessTif rpm doesn't modify my ld.so.conf so I have to put the path to libXm in there myself. Where did the RPM put it? Can't use locate because I haven't yet run updatedb.

      For this particular case, it's better to query the RPM database or the RPM package itself to find out, because find will take far longer. Do "rpm -ql lesstif" and get a listing of all files that were installed. Pipe through "grep -i libxm" to find out the exact path.

  104. Laziness by slim · · Score: 2

    I find that laziness drives me to code on UNIX, because the UNIX little-tools-in-a-pipe philosophy usually means that I only have to write a tiny program to do what I want, and in general it only needs to handle input from STDIN and output from STDOUT, so I don't have to worry about

    In a Windows environment, it's likely I'd feel the need to write some sort of GUI. Windows would not provide me with the rich set of CLI tools I'd need to wrap around my quick and easy program to make it fully functional. It's possible I'd have to write that functionality into my own program instead. Sure, you *can* install GNU sort, cut, awk, sed, tr, etc. on Windows, but by the time you've done so you may as well have installed Linux or BSD.


    --

  105. I asked a Unix programmer the reverse question by martin · · Score: 1

    who was tasked with also coding for Windows and he replied..

    "The API documentation on Unix type systems is actually useful. The API's do what they say and you don't need to cover 30 different possible variants, one usually covers the lot"

    ie its all alot simpler.

  106. Don't program at low level by samael · · Score: 1

    I don't program at low level.

    And therefore I can get away with:

    Do Form X
    (or, if I wan't to get a result back from the form/dialog):

    do form X to Y

    Simple, easy and no low level code at all.

  107. Re:Your target audience? (now very [OT]) by darkith · · Score: 1
    Windows 95 (95A at least, possibly pre OSR2.5) has some known problems with corrupting BIOS during install, especially on Athlon motherboards. Personally, I don't think it's a case of an OS problem exactly, but a good demonstration of the "No matter how hard we try, we screw things up worse" principle.

    E.g. PCI is an improvement over ISA in many respects, and so is Plug-n-Play, but when Plug-n-Play decides to introduce conflicts (especially when combined with shared IRQ slots, and on-board PCI devices), it all turns to hell, and I get a serious itch for jumpers to hard code the damn things exactly where I want!

    Even though we managed to improve older problems like IO address management and the like, we've managed to introduce new problems like Bus-mastering slots vs non-bm, IRQ sharing drivers, Plug-n-Pray, etc. Sigh.

    PS. A bios update is usually the fix, make sure you use the latest bios.

  108. Control by Hard_Code · · Score: 2

    Why?

    Because since the code is open, as a coder, you are given entirely free reign to do what you want to do, how you want to do it, and are "empowered" to actually discover and remedy bugs.

    Because you are not at the mercy of a large, faceless, corporation which dictates the APIs and specifications to you, forces you to use certain tools, locks you in, and makes you pay through the nose.

    Because Linux, Unix, and open source *wants* and *needs* you. Microsoft couldn't care less. There are beanie weenies falling all over themselves to become l33t VB c0ders.

    Because it is the Right Thing.

    --

    It's 10 PM. Do you know if you're un-American?
  109. I hate Q-DOS clones because... by Voxol · · Score: 1

    I love saying stuff to my mates like,

    'I reboot my machine every week or so to clear up the swap space'

    or

    'what you cant find with grep aint there'

    on this point, Q-DOS clones like windows have problems:

    • no pipes! - v. important.
    • useless options
    • a tsr for history functions
    • the shell is not seperable.
    • I actually found the shell on the amiga more useable than DOS!!!!
    • All serious developers use Unices - ( I work at Bell labs)
    -----
    go to the website and suffer.
    1. Re:I hate Q-DOS clones because... by SomeOne2 · · Score: 1

      Not that I like DOS but your claims are wrong...

      no pipes! - v. important
      That's wrong. You can use pipes the same way as UNIX (at least under NT, I don't know the rest), redirect stdin/out/err etc., pipe between programs etc.
      useless options
      _That_ from a UNIX user! :) Most UNIX programs have a _lot_ of options, most of them used rarely... By the way, it's a stupid argument, that is not OS specific
      a tsr for history functions
      Come on, unter DOS/95 perhaps but not NT. Use a reasonable shell.
      the shell is not seperable
      That's wrong, you can replace it even under DOS (4DOS if I recall it correctly, never used it)
      I actually found the shell on the amiga more useable than DOS!!!!
      Don't know, I have never used an amiga but you can use the bash if you like. (available for Windows)
      All serious developers use Unices
      That's stupid. (reminds me of an old argument against democracy, but I can't quote it in english).

      I don't thinks the OS is that important for development; with reasonable efford you can develop under nearly any OS (including debugging) and deliver it for a complete different OS (after some (but few) additional debugging, of course :), I do it all the time.

    2. Re:I hate Q-DOS clones because... by Voxol · · Score: 1

      I was refering to DOS, my use of NT consists of the supposedly classic linux scenario:
      CD doesn't work

      either that or the blue screen at first startup, or the 5 minute wait when it finds I have left a zip disk in the drive and it decides to scandisk it!

      then theres the whole service pack fiasco, because of licences NT4 has (i think) 5 service packs not including developer library updates and intermediaries. You have to install thease after base installation meaning some hardware will crash a system on install if it happens to be not backwards compatible.

      I havent tried NT with pipes but I know that the dos version of grep is laughable.

      Unix options are used by scripts mostly and are derived from a temporary need or an itch for something better.

      In terms of the tsr thing again a dos comment. As far as NT goes the shell is still un appealing.

      I have used bash under NT and I found it unappealing, I dont like bash for a start (cant find the VI functions). but without the huge supporting shell programs, (join sed awk as examples) it was unwieldly.

      Here we write software to run SONET/SDH nodes imagine a windows box running an x terrabit/s add drop multiplexer with all the routing,etc. involved and think about how long before a memory leak would case a blue screen of worse. With 6+ of these involved in a simple phone call a crash could be fatal.

      Any OS:
      A challenge, Windows CE.

    3. Re:I hate Q-DOS clones because... by Old+Wolf · · Score: 1

      set -o vi

  110. Visual Studio by lscoughlin · · Score: 1

    If you are involved in the
    development of any of the new
    programming tools or IDE's,
    you'll notice that visual studio
    is closely studied. It is the
    benchmark for a development
    environment.

    Anyone who approaches working with
    visual studio with an open mind will
    find that it is the most flexible
    and powerful development environment
    out there. you can even use your
    makefiles and gnu tools with a
    custom build process if you so
    desire. Sure you have the
    limitations of the system you
    are programming on, however,
    don't use that to attack the tool.

    For a person who is used to
    working within visual studio,
    moving to a vi(m)/ or (x)emacs
    development environment is
    literally moving back into the
    stone age.

    As to changing an SDI app
    into an MDI app, no you don't
    have to create a new project,

    Add a CMainWin class which
    inherits from CMDIFrameWnd,
    Migrate all your toolbars and
    non-document specific menu's.

    Then change your other windows
    to inherit CMDIChildWnd make a
    few changes in theApp class
    and you have an MDI program.

    Thats won't give you a complete
    program though and the project
    will still require a lot of
    major hacking, mostly to deal with
    mutiple instances of child windows
    and what not.

    -T

    --
    Old truckers never die, they just get a new peterbilt
  111. A bunch of small tools beats 1 big one by magic · · Score: 1
    I've developed extensively under both. Developing under Linux means mastering a pile of little tools, then choosing the right subset to attack a project. Rather than having a single IDE or source control system, you have tons of little scripting languages, editors and utilities that can be brought to bear.

    This has a much steeper learning curve and to truly master it, you have to be a true hacker, thinking in terms of how you can recombine little pieces to make something new. Many developers are better off under a Windows IDE like DevStudio since it takes care of all of the little things. However, I really take advantage of being able to use the same editor (in my case, Emacs!) for everything, being able to extend my environment easily, and having such a large set of tools (perl, python, make, awk, sed, xargs, diff, rcs, cvs, etc.) that I can recombine easily. A lot of little things that are all really good at what they do is much better than one large framework that paralyzes you when it doesn't meet your needs.

    Yes, many of these tools are available for Windows. The environment isn't supportive of them, however. Forking under Win32 is extremely slow, so using a bunch of little tools is less efficient than using a single tool. We're talking orders of magnitude here. The Win32 port of Emacs has never quite gotten along with my environment; slashes go in an un-C/Java-friendly direction, the concept of "disks" vs. "mounts" isn't really supported, my configuration files don't make sense on Win32. None of this is Windows' "fault," or a serious argument that Windows is an inferior platform (I think it is a superior platform for most applications, just not development) it's just that the little tools approach doesn't work.

    magic

  112. Re:Your target audience? (now very [OT]) by Psiren · · Score: 1

    Thanks for the information. It's kind of a moot point now since I'm unable to flash the BIOS to the latest version because the board is dead. Besides, seeing as Linux runs like a dream on it I'm just going to remove Windows completely anyway.

    Now weary traveller, rest your head. For just like me, you're utterly dead.

  113. hello world in gtk-- :) (using showall btw) by |_uke · · Score: 1

    Note: This is kinda sloppy :)
    --- clip ---
    #include <iostream>
    #include <gtk--/button.h>
    #include <gtk--/main.h>
    #include <gtk--/window.h>

    using SigC::slot;

    void destroy_handler() {
    Gtk::Main::quit();
    }

    class HelloWorld : public Gtk::Window {
    Gtk::Button m_button;
    public:
    HelloWorld() :
    Gtk::Window(GTK_WINDOW_TOPLEVEL),
    m_button("Hello World")
    {
    destroy.connect(slot(&destroy_handler));
    m_button.clicked.connect(slot(this, &HelloWorld::hello));
    add(m_button);
    show_all();
    }

    void hello() {
    cout << "Hello World" << endl;
    }
    };

    int main (int argc, char *argv[]) {
    Gtk::Main kit(argc, argv);
    HelloWorld helloworld;
    kit.run();
    return 0;
    }
    --- clip ---

    --
    Luke
  114. VC++'s Autocomplete is needed under Linux by _xeno_ · · Score: 1
    As some one of the above comments mentioned, the auto-complete feature of Visual C++ is very, VERY nice. With classes, as soon as you type the . or the -> it lists all the possible variables and functions available in that class. Very nice, and quite a timesaver. Still some problems with it (like it works alphabetically, not by what you use most often, so if you need to call getAllElementsFromRight() often but don't care about calling getAllElementsFromLeft() it gets annoying, but beyond that...)

    On a side note, VC++ was "innovated" by some company that Microsoft bought out, so...

    --
    You are in a maze of twisty little relative jumps, all alike.
    1. Re:VC++'s Autocomplete is needed under Linux by divec · · Score: 2

      Autocompletion is possible with Cooledit. Doesn't automatically pick up your custom C++ classes, but that's a mixed blessing anyway. I know people that type the full word without the dot, then go back and put the dot in, so that the autocompletion doesn't freeze the machine for a couple of secs.

      --

      perl -e 'fork||print for split//,"hahahaha"'

    2. Re:VC++'s Autocomplete is needed under Linux by Ergo2000 · · Score: 1

      Visual C++ has been under Microsoft's umbrella for over 8 years, WAY before intellisense (indeed it was a VERY basic product in those days), and even then it was a derivative of MSC 7 or something of that nature.

      The lineage of a product doesn't claim credit for the current product if the lineage is far removed. SQL Server 7 owes extremely little to Sybase, for instance, yet that remains the rallying cry of the anti-M$ers.

    3. Re:VC++'s Autocomplete is needed under Linux by jeremy_d_peterson · · Score: 1

      Autocomplete is available with emacs. Look for context auto-complete. Sometimes it needs a little lovin' to get working but its certainly worth it.

  115. I did.. by Tom7 · · Score: 2

    Visual Studio was a lot better than I expected from Microsoft, but it's not that good. It has a damn lot of features, but many of them narrow your thinking so much that you tend to produce the Same Old Windows App every time.

    Here are some of the problems I've run into in Visual Studio:

    Project management is so complicated and "behind-the-scenese" that projects can easily get corrupted and unbuildable.

    BAD support for advanced features of C++, especially exceptions and templates (yes, worse than g++). One time we took a working, warning-free program from g++ to MSVC++ and it crashed the compiler. Another one couldn't compile because VC++ put a 255 character limit on the length of the names of instantiated templates.

    AND IT ASKS YOU "Are you sure you want to recompile?" when you PRESS COMPILE!!

    And of course, linux features unmached by windows:

    Availability of library/kernel source

    Awesome emacs features like smart syntax coloring, automatic indenting, regexp search/replace, keyboard macros

    Elegant, scriptable project management

    Not having to worry quite so much about compiler bugs.

    Of course, the forms designer is the best way to make windows in Windows, and some other tools are invaluable. But as much as I'd like to be able to make apps for the OS I use as my desktop, I've just given up on dealing with MSVC. (And I have no patience to learn the twisted API and compile with cygwin or something ;))

    1. Re:I did.. by benwb · · Score: 1
      Another one couldn't compile because VC++ put a 255 character limit on the length of the names of instantiated templates.

      The compiler doesn't actually put a limit here- the ms debugging format (whatever it is these days) limits type names to 255 characters. The compiler will emit a warning on code that exceeds this, which you can turn off, but it will compile the code and execute it correctly.

    2. Re:I did.. by Fyndo · · Score: 1
      Awesome emacs features like smart syntax coloring, automatic indenting, regexp search/replace, keyboard macros
      Really, visual studio does all these too. (and i'm an emacs bigot :)
    3. Re:I did.. by Tom7 · · Score: 1

      It does syntax coloring which you can't customize, AFAIK (I love love love those bright red FIXMEs).

      It does auto-indenting badly (also not customizable).

      But I never saw regexp search and replace or keyboard macros. Maybe I'm using an old version but... where?

  116. The experience is not the same by Dungeon+Dweller · · Score: 2

    I have written programs using these tools under windows. The experience is not the same. Windows just does not work like Linux/Unix does. Unix has been molded to fit the C language. Working with external programs, libraries, everything is a basic function call in C, whereas under windows, this is far from true.

    --
    Eh...
  117. There is more "open" on Linux than just its source by Pflipp · · Score: 1

    I think it is the complete idea behind UNIX that makes Linux a better development platform. UNIX has been designed to be a multiuser development platform in the first place.

    It is already said that everything is a file in Linux. Indeed, that makes it very open. If you want to know something, you can read it with your own eyes, no big mysteries here.

    Furthermore, every configuration is a textfile. Even less big mysteries.

    Off course you can read the code, and the headers.

    There is a lot of room in UNIX, GNU and Linux for documentation, it is simply seen as a necessity. Man pages, Info files, /usr/doc, ...etc!

    The file system structure also makes things logical; while in Windows the structure coming after "C:\Program Files" is completely random, in Linux programs are forced to be in logical places. This does ease development when your program cooperates with other programs (should be useful).

    The multiuser system and tools like CVS also make it very handy to work with more people, without making things more mysterious.

    The stability makes that in case of an error, you KNOW what caused it (which I almost never know with Windows - has been said before).

    You can work in good graphical environments and stuff, but this does not take away the underlying structure of commands, files, configuration textfiles, etc. Can be VERY handy (also for remote working, e.g. with SSH).

    You are encouraged to program in Linux. Not only the source, but also the fact that GCC and Perl (to name two) are considered standard parts. There is no hard difference between developers (who require headers and stuff) and normal folks, like with Windows. (Which doesn't mean you have to be a programmer and you can't leave out -devel packages.)

    ...etc. etc.

    While Linux presents itself structured from the ground up, even though the building blocks are "simple" things like files, Windows presents itself as some kind of magic book from which some selected people can learn some selected things.

    It's... It's...

    --
    "We can confirm that Debian does *not* ship the version with the trojan horse. Our version predates it." [CA-2002-28]
  118. Cross platform development by Dungeon+Dweller · · Score: 2

    There are several libraries that have ports for both environments. I suggest using one of these if you are developing cross platform, less code to modify. The only time that I would suggest not using them is when you need fast, optimized code.

    --
    Eh...
  119. crashio potato by sohp · · Score: 1

    I like developing on Linux and Unix (tm) in general because the following program will *NOT* result in a system crash:

    int main() {
    int *p;
    int i;

    p = rand();
    i = *p;
    }

    A segfault, yes, but in winDOS you're as likely to lock up the whole system as anything.

  120. If you only know how to use a hammer... by el_mex · · Score: 1
    Everything looks like a nail.

    Even if it is not the best tool at all for the job. MSVC gives you all that built right in, no need to "spend time getting over the speed bumps."

    1. Re:If you only know how to use a hammer... by esper · · Score: 1
      "You only know how to use that EMACS hammer, so you think it's great for everything. But this MSVC hammer is better - use it for everything instead!"

      (BTW, the "speed bumps" he was talking about were in learning EMACS, not using it.)

  121. 2 different arguments... by justin_saunders · · Score: 3
    Folks, there are two different arguments going on here.

    1) Windows itself is a buggy and unstable platform with bad API's.
    2) Programming tools on Linux are easy/harder/more productive than under Windows (with tools like Visual Studio)

    I agree with #1, however as user of Visual Studio for several years I'd say that Windows wins #2.

    I've never used a more helpful and intuitive coding environment. Once you use Intellisense its hard to remember how you worked without it. Just try coding without syntax highlighting and you kind of get the picture. "Edit and Continue" make it an absolute joy to debug.

    If you are a little careful it's easy to write portable code under Visual Studio, and Win2k is suprisingly stable.

    That said, there's something beautifully pure about using makefiles and debugging with GDB, and its good for your soul to take control on a low level now and then. For me, its kinda like camping in the woods for a few days. Some peope like camping a lot, others don't...

    Try both out and see what feels "right".

    Cheers,
    Justin.

    --

    "My cat's breath smells like cat food." - The Tao of Ralph Wiggum.
    1. Re:2 different arguments... by Inoshiro · · Score: 2

      Once you use Intellisense its hard to remember how you worked without it.

      I've used VC before and I know how useful Intellisense can be, but all my recent development has been under Linux. My solution to remembering structure members, etc, is to just open another gnome terminal, and have less showing the file. It's easy to search around in, and I can copy/paste easily between the two terminals. And unless you're working with a structure that is larger than 10 lines, it's not hard to remember it any.
      Btw: if you are using a structure > 10 lines, you probably need to rethink your structure.

      If that's not your cup of tea, I'm sure KDevelop or some other development product under Linux will recreate this feature for you.

      Regarding your arg #1:
      Another thing that Windows can't match is Glade. MFC requires C++, which I don't know very well. However, with Glade I can design a dialog or other resource quickly and easily, and load it and work with it via the libglade interface functions. No need to use its generated code (which, IMO, is the most horribly formatted code I've seen), and I save many lines of manually creating widgets for each dialog or view.
      ---

      --
      --
      Internet Explorer (n): Another bug -- that is, a feature that can't be turned off -- in Windows.
  122. Vi in Visual Studio by Drewcifer · · Score: 1

    I've read that GVIM can be used as the default editor in VisualStudio.

    Try looking here: http://www.vim.org/doc/if_ole.txt

  123. Windows programs never age, they just die. by MetalHead · · Score: 1


    In 10 years, how many of the programs you write for windows today will still work?

    The answer is almost certainly "zero".

    why would I develop for Windows when in just a few years, all my programs will be unusable?
    I have a bunch of useless Turbo Pascal programs
    I wrote in my misspent youth. What the hell can I do with them now?

    On the other hand?
    How old is "vi"?
    How old is "make"?
    How old is "cat"?
    How old is X11?
    How old is /bin/sh?
    How old is "awk"?

    All of these programs are well over 10 years old and they still work, and all signs indicate they will continue to work for the forseeable future. (Well, there might be some filesystem hiccups around 2038... :)

    Of course these reasons apply to any unix, not just linux.

    The GPL is another reason, though if you're aking "why develop for linux? I like windows", then baby-steps are in order, and the GPL might not be the place to start. :)

    --
    Bang the head that doesn't bang!
  124. Visual Studio / MFC - Bleeeaaaaach by pblanton · · Score: 1

    I did about 2 years at HP developing image processing/manufacturing software in WinNT. I had to use MS Visual Studio to communicate with the hardware so I developed that stuff as a DLL. Since it was all low level stuff built on my own class library, I didn't have to use MFC which was a real blessing. The only time I butted heads with MFC was when I would write a quick and dirty application to debug a piece of the DLL.

    Did you ever try to remove a button from an MFC application? If you're not careful it will chew up and spit out your project before you know what hit you.

    The rest of the application(s) I did in Borland's C++ Builder. Remember, Borland is releasing Kylix sometime this year, with the C++ Builder version to follow soon after. Kylix is is Delphi for Linux. It is a marriage of all of the stuff you like about programming in Linux, with the slick, integrated IDE.

    Delphi Rocks and it's going to be great on Linux. If you're careful with your code, deploying your application in Win32 will be as simple as recompiling it.

    Go to community.borland.com for more information on Kylix.

    With Regards,

    Phillip H. Blanton

  125. TummyX == Troll? by Spirilis · · Score: 1
    Sorry, I'll stick with my cozy Linux OS. Comparing the Registry to the Filesystem is dumber than hell; probably a tribute to your ignorance about Linux, actually. "Ease of use" is a red herring. It does provide a time barrier, since people have to learn it, but once someone has learned how to use Linux and understands it properly, the 'ease of use' barrier has been reached.

    Given that statement, Windows' ease of use is NO EXCUSE for its instability, difficulty to administrate, and general lack of room.

    By lack of room, I mean the fact that to do anything in Windows, you have to search through ungodly amounts of documentation, search through deep menus of the Start menu, or try to use what limited facilities are there for finding files. On Linux, if I forgot what the command was to run the GNOME Control Center, I can "ls --color=yes -C -p /opt/gnome/bin | less -r" and take a look at all the binaries there; and I usually suddenly remember what the command was once I see it. When sitting at a UNIX command line, I know that, even if there isn't much installed on the system, I can always get my kicks writing shell scripts. At least UNIX's command interpreters can take advantage of multitasking.

    --
    the real at&t mix
  126. One compelling reason by windex · · Score: 1

    This is more of a geekpinion, not so much a reason because well, unfortunatley, if your making a product to mass market for a company, they *will* want it done in linux.

    For a developer, the biggest noticeable change from Win32 DLL to Linux ELF Shared Libraries, is this: In windows 95, 98, NT, and 2000 (but not 3.11, which makes me beleive the 3.1x coders were superiour) DLL's get loaded once for each application. Why? In my eyes its to help stop severly sloppy code from crashing everything, which happens anyway, but *shrug*. Under linux, shared libraries only get run into memory once, if i remember correctly, and that's a big resoruce saver.

    --- 'dex

  127. Not just openness by TrixX · · Score: 1

    Most comments I've read here talk about open source.
    That's an advantage, but not the only one.

    You have:
    * flexibility: scripting, make, and that kind of tools allow you to easy recompile a project, tweak all the compile-time options comfortably and easily. Command line tools are MUCH more flexible than their GUI counterparts
    * stability: When coding, you have to usually test a program. It's quite possible that your program will have bugs on the first run, so it will hang. I prefer having a core dump instead of having to reboot my machine
    * language/compiler availability
    * codebase availability: It's quite usual to find some code that already does what you want, or part of it.
    * documentation: Documentation is usually much better in open source environments. And when that fails, RTFS....
    * portability: most linux libs are standard based, and much more easily portable to windows (or other unices) than windows libs...

  128. cygnus by perfecto · · Score: 1

    if you're a win32 programmer it doesn't really make sense to use linux unless you are programming in java, perl, php or using gcc to write code. but other advantages are the bash shell and all the text processing tools. if you're a command line compile kind of guy like i am, i'd suggest cygnus to get the hang of linux based development. i am currently using it but am planning a full transition to all linux since i currently code in java and perl most of the time.

    --
    J Perry Fecteau, 5-time Mr. Internet
    Ejercisio Perfecto: from Geek to GOD in WEEKS!

  129. The question has not been clearly answered. by Junks+Jerzey · · Score: 2

    Emacs in nice in some ways, but it's a dated dog in others. IDEs from Microsoft, Borland, and Metrowerks are annoying in different ways, but make so many things *sweet* (the Microsoft's being the worst of the three, because they insist that MDI programs are good). Similarly, Makefiles are nice sometimes, but once you've lived without them then you wonder why you went through all the trouble in the first place. Of course, you can use Makefiles with Windows compilers as well. The three big compiler companies all ship command line tools, so heck, you could even use Emacs under Windows if you want.

    There's no clear answer yet.

  130. Why develop for Linux? by Talonius · · Score: 1

    Why develop for any platform that could be considered "emerging?" (Note: I realize that Linux will qualify as past emerging for some of you, but bear with me.)

    The same question could be asked for BeOS, PalmOS, or even WindowsCE to be honest. And my opinion is basically this:

    1. You can do it for free.
    2. THE OPPORTUNITY IS THERE.
    3. See #2.
    4. See #2.
    5. See #2.

    Let me explain #2.

    Windows: wow, I'd like to really write a kick ass check book program. Let me see what my competition is like.

    *does search on Infoseek, Excite, or your favorite engine and pulls 1,517 hits on check book programs*

    You've got to stand out in *that* crowd.

    Now.. Linux.

    *does search on Infoseek, Excite, or your favorite engine and pulls 4 hits on check book programs*

    Primary program is gnuCash. Wow.
    You're going to stand out a *lot* better.

    Any emerging platform stands as a prime development platform simply because you have a greater chance of having your product recognized and used, and as any egomaniac can tell ya, isn't that the *real* reason you code?

    To help others? ;)

    (This maybe a sick twisted viewpoint but it *is* how I look at it.)

    B.

    --
    My reality check bounced.
  131. Too many assumptions by mwood · · Score: 1

    I think that this is confounding several issues.

    1) Uneven as Unix documentation is, it's more
    complete and better organized than MS'. Unix folk aren't trying to hide anything. I've lost more time hunting for documentation of some obscure but necessary datum on Windows than it would have taken to research, design, code, test, debug, and package the whole app. on Unix.

    2) It's not IDE vs. pile-of-tools, at least not exactly. I've also used DECset, a tightly integrated collection of editor/build manager/config. manager/test harness/static analysis tools. It accomplishes much the same things that MS' IDE does, but the interfaces between the different functions are exposed and documented. That made all the difference, for me. I could understand what the funcitional units were doing, and take command if I had to.

    3) Another complaint I have about MS' tools is the one-size-fits-all fallacy. I write mostly noninteractive stuff and small tools, but the whole VC++ package assumes that you're developing an object-oriented, document-centric, OLE-ized monstrosity. (Come to think of it, much of what I write for Windows is meant to overcome the same sort of thinking embodied in the OS.)

    Bottom line: to me, programming for Unix (or VMS, or even OS/360 and its descendants) is more like being part of a community, while programming for MS products is like being trapped in a Spy vs. Spy strip.

  132. merely some fluff... by UID30 · · Score: 1
    I find it interesting that the experienced Windows coder from the story describes the unix tools as
    "...it's merely some fluff beside that eases up maintenance a bit..."
    In my opinion, thats exactly how I would describe all the M$ IDE applications... give me vi and any functional C compiler ... I'll give ya a program.
    --
    "Glory is fleeting, but obscurity is forever." - Napoleon Bonaparte
  133. Re:Give Emacs a Chance! by still_nfi · · Score: 3

    Emacs is truly awesome.....I can't stand any other editor anymore.
    There are 2 features (out of the box) of emacs that I just can't live without.
    1. Dynamic expansion - start typing a word press alt-/ and if that word exists in any file you have open, it will complete it for you, cycling through the possibilities. Greatly improves my code readability since now I can have informative variable names :)
    2. Coding/indent styles - Once you set up your preferred indenting style, just have to hit tab to put that line in its rightful place. ctl-c ctl-q and the whole damn file is indented the way you want it!
    There are a million other reasons emacs is cool and if you don't have one, you can easily make it do what you want. Emacs does take some time to coax it to behave the way you like, but once you are there.......you shall never return to the dark side.

    --
    "I have been around the world and found that only stupid people are breeding" -- Harvey Danger
  134. I love Linux but....... by cyber-vandal · · Score: 1

    the whole damn OS is intuitive

    Linux is wonderful and I wish that I never had to use Windows, but intuitive is not the word I would use to describe it. How does 'grep' relate to a command that finds strings within files. Yes I know it stands for Get Regular Expression and Print, but that wouldn't help my dad find the command. I'm not knocking it in the slightest, just knocking the rather jargonified Unix syntax that it's based on (heretic!).

    1. Re:I love Linux but....... by Old+Wolf · · Score: 1

      Actually, it is Global / Regular Expression / Print

      (named after the ex syntax, of course
      :g/re/p

  135. Kdevelop by hSb.Melvin · · Score: 2

    I've recently found out about KDevelop and it's pretty much an IDE like MSVC. I'm not quite sure if it has the Intellisense option, can't check that right now. http://www.kdevelop.org

    --
    Karel Bemelmans, karel@narfum.org http://melvin.narfum.org
  136. Re:Bah! POSIX does exist! by JohnnyX · · Score: 1

    True, NT supports a POSIX personality for programs. There is one caveat: if you want a C2-certified system, you have to disable the POSIX subsystem.

    This is a common misconception, and not true. I know, because I read the NT C2 guidelines to do the security design and implementation for an Army logistics system being built under NT.

    The actual security guidelines for making NT C2 recommend disabling POSIX, but only because most people don't use it. The very next line says that there was nothing that they found in the POSIX subsystem that was a problem for C2 compliance.

    Basically, unless your application requires POSIX (multi-platform stuff, or a port from a legacy *nix), you should disable it, just like you would disable a network service that isn't being used.

    Less services -> less potential security holes.

    Yours truly,
    Mr. X

  137. A few reasons: by eyeball · · Score: 2

    • Emacs is actually so smart, there's lisp code built in that will write your program for you.
    • Tons of Opensource material to copy from. how's that expression go? Smart people create, geniuses plagerize?
    • Cause it's free (I'm not joking on this one -- that's originally why I got into unix dev)
    • To stick it to the man!
    --

    _______
    2B1ASK1
  138. code in java, be platform neutral by totierne · · Score: 1

    There is the old mantra: to the tune of 'Let it be', called write in C.

    Now I reckon the answer is write in Java.
    As it is platform neutral, including the graphic user interface apis shipped with the language.

    I use bash (diff find grep ..)[I know I should learn perl but you can't teach an old dog new tools when his old ones still work], netscape, oracle, make, grep, emacs, cvs, jdk on win32 and linux. (I prefer linux because I am used to unix, but it tends to be less user friendly (i.e. graphical, remember developers are users too) than windows, but it bites (blue screens) less.)

    Using java it is easy to shift to win32 or Linux, either now or in the future, depending which pays more (in money + career development).

    applepiesolutions Ltd.

  139. 2 reasons by Colin+Smith · · Score: 1


    Linux will be here in 30 years. Windows won't

    Linux developers will be able to get a job. Windows developers won't.

    --
    Deleted
  140. Ease of clean distribution by iabervon · · Score: 1

    The latest problem I'm seen with developing for windows is that it's easy to make your distribution destroy your users machines without meaning to. The broken way the windows handles dynamic libraries and updating them means that if you have a old or incompatible version of a library and distribute it with your program, users may install it and make their system unusable. This happened with a project I heard about recently, and really annoyed a lot of people who weren't expecting their friend's program to trash their system.

    With Linux either you just tell your users to get the libraries they need if they don't have them, or you use a package management system, which works far better than the windows scheme.

  141. even better yet.. by Vspirit · · Score: 1

    show him this discussion on /. and let him think on his own. If its not obvious to him now, it may be later. and if not, his loss.

  142. but that's *all* you get by bee · · Score: 1

    Of course, if all you ever want is what MSVC gives you, then by all means use it. If, like all good programmers, you find yourself wanting to do more, well then you'll find it after a point to be limiting. But if you'll never reach that point, then MS is fine for you.

    This is in a nutshell the basic philosophy difference between MS/Windows and Unix. MS tools try to give you everything you need, whereas Unix tools give you the power to build bigger and better tools.

    ---

    --
    At least mafia-owned pizzarias make excellent pizza. Compare to Bill Gates.
  143. Re:True, but... by Sydney+Weidman · · Score: 2
    not everybody uses C for development,

    True, I've often used it as a paperweight.

  144. Two words: Core Dump by multipartmixed · · Score: 2

    ...the single, most effective "tool" to debug applications quickly. Combined with RCS, you can fix a once-in-a-lifetime bug by checking a core dump from something that blew on a production version of an app that you built two years ago.

    I refuse to develop under a system where I can't examine the core space of a crashed program. It's stupid.


    --

    --

    Do daemons dream of electric sleep()?
  145. Re:where are the linux IDEs? good ones!? by ivan256 · · Score: 2

    Use emacs to edit and the 'ddd' frontend to gdb to debug.

    I spent over a year working on a large commercial product (Lotus Domino) with MSVisual Studio and was almost convinced that Visual Studio was a better place to develop then linux because of the debugger. THen I discovered ddd. First of all, it supports all that "IntelliSence" shit, and it has the <B>Best</B> data display capabilities i've seen anywhere. You have to try it to believe it.

    Emacs has more features that are better integrated then the Visual studio editor anyway.I wonder why such excelent solutions aren't more widely used.

  146. It's all about stability. by gblues · · Score: 1

    I've done both Linux and Windows development, and Linux wins by a mile.

    1) Stability. If your program crashes in Linux, the worse thing you get is a coredump. In Windows, you're lucky if your system remains stable, and you may or may not get an error when the program crashes. This means you have to either:

    a) run the binary to a "crash machine" or
    b) reboot after running the build

    both of which waste equal amounts of time.

    2) Debugging

    Long Live the Core Dump. It's a million times more useful than "This program has performed an illegal operation..." (which you don't get half the time, especially if you're using DX, which has a nasty tendency to just dump you to the desktop). Is it any wonder PC games are so incredibly buggy when the OS doesn't provide any facilities for fixing the bugs?

    Those are two main reasons that I abhor Windows development. The slickness of the IDE is not really an issue, in fact a MSDS-like IDE for linux would be tres cool. :)

    Nathan

  147. IDE's a convenient crutch today, a thorn tommorow by FreeUser · · Score: 2

    I really don't agree with this. I develop on WinNT using Visual C++ for a cross-platform project on Win32, Irix 6.5, SunOS, and Linux. We don't use cross compilers, but the IDE makes it worth it. Code completion and having the MSDN library is _MUCH_ easier than sifting through man pages.

    Your preference for MSDN and code completion over referencing the occasional man page aside, you haven't said anything that addresses the original concern of the post you replied to.

    Large projects developed using proprietary IDEs will be difficult if not impossible to manage in another 15 or 20 years (and, as Y2K showed us, the code will need to be managed many years hence). Using industry standard, human readable makefiles may not be as snazzy as running the latest glitzy IDE and project manager, but a developer in 2030 will have little trouble rebuilding the project from the source if need be. The same developer, confronted with a large project developed under Microsoft's IDE, for example (Microsoft isn't the only culprit, there are competing IDEs with the same problem), will find it nigh unto impossible to find a copy of a 20 or 30 year old IDE. Recompiling the project will be next to impossible and very expensive, possibly more expensive than the code is worth.

    Now, undoubtably someone will argue that this is doing the hypothetical company and developer a favor, that 30 year old code should be disgarded and rewritten anyway. In some cases perhaps, but in some cases perhaps not. "hello world" isn't going to be any better fundamentally if you retype the code 30 years from now or recompile code written today. In any event, the decision whether to discard or reuse code should be based upon the merits of the code, the time/cost required, etc., not upon the unavailability of some ancient, proprietary IDE needed to rebuild the damn thing.

    --
    The Future of Human Evolution: Autonomy
  148. Its the command line, silly . . . by werdna · · Score: 2

    Your co-worker is correct -- if you are building Windows apps, most tools are readily available under both systems (albeit much less expensive and more malleable under a free U*ix). I probably would agree that the IDE's available under Windows are somewhat better, particularly for developing Windows apps.

    But if we want to compare pound for pound, the bottom line for me is the command line.

    The real difference is that you have a serious, real, command line and shell that was made for doing serious, real, complicated things. The Dos-like approximation under Windows is virtually useless in comparison. Windows are simply a nice means to have plural consoles on the screen at the same time.

    Its hard to explain why this is so to someone who hasn't done it, really and seriously, both ways. The command line places massive power at your hands -- and the capacity to manipulate text, therefore manipulate programs, appears to have been highly underestimated by your colleague.

    Everything else is a wash, or in some cases only slightly favors one system over the other. At the end of the day, its the command line, silly.

    1. Re:Its the command line, silly . . . by peterthomas · · Score: 1
      Just to play devil's advocate with you...

      If you argue that the CLI is the only reason that UNIX is superior, why not install Cygnus Tools on NT? That way you've got all the advantages of Windows plus the advantages of UNIX (bash, grep, sed etc)

      This makes the most sense to me, and is the way I work.

    2. Re:Its the command line, silly . . . by CoughDropAddict · · Score: 2

      I agree completely.

      I worked for a web startup that ran IIS/MSSQL on NT. The instructions for setting up our system from scratch were 6+ pages long, and involved more than 8 reboots--the process took more than an hour to complete.

      The guy who wrote the instructions said that any variance from the instructions (ie. installing Service Pack 3 AFTER SQL Server instead of before) would prevent the system from working at all. The reason why was anybody's guess.

      In Linux, the entire process of building the system could have been reduced to a tarball and a shell script. The difference is unbelievable.

      Integrating the core functionality so tightly with the GUI provides ZERO flexibility in trying to automate ANYTHING.

  149. Re:Give Emacs a Chance! by |guillaume| · · Score: 1
    Woah, thanks for those two tips, emacs just got even better for me. I use it regularly, I find it easy to move around files with it, but I need more tips like those ones. Anyone knows where to get some more?

    ---
    guillaume

    --

    give me all your garmonbozia

  150. Advantages by jd · · Score: 3
    *G* This seems an opportunity to plug all the different benefits Linux has to offer:

    • Industry-Standard API (POSIX & UNIX98)
    • Near-transparent portability (see above)
    • Stable API (a MUST for developers)
    • Plethora of development tools
      • Autobook, Docbook, web, et al - integrate docs and code
      • RCS, CVS - platform & vendor independent version tracking
      • Sourceforge (and, eventually, Server51) - platform & vendor independent project management
      • Slashdot - platform & vendor independent gossip tracking
      • automake, autoconf, configure - resource scanners
      • gdb, xxgdb, ddd - graphical debuggers
    • Customise your environment to suit YOU, not vice versa
      • Many window managers & environments
      • KDE
      • Gnome
      • Open Look
      • Motif
      • Enlightenment
      • QVWM
      • and many more
    • Many GUI systems - X, GGI, Berlin, etc
    • Concentration Aids (eg: XRoach)
    • Transparent Windows (eg: OClock -transparent)
    • ANY resolution your monitor and card can display, not merely some random numbers someone thought up.
    • Virtual desktops
    • Focus control - no more pop-ups grabbing the mouse at random
    • NO MORE PAPERCLIPS!!!
    • NO MORE PAPERCLIPS!!! (Yes, I know I already said that, but it's so important, it's worth saying twice)

    Read/Write almost any disk format in existance

    Cross-platform testing, using WINE or IBCS, -without- rebooting or switching machines

    The Penguin logo is cooler than the flying window

    Ability to test out on multiple network configurations

    • Not everyone uses IPv4. Linux also supports IPv6 (a protocol Microsoft is struggling to write any driver at all for)
    • Then there's DecNet, Appletalk, Econet, IPX/SPX, PLIP, PPP/SLIP, wireless networks, Frame Relay, IR networks, etc

    Linux is gaining mindshare & market share in the server arena. Microsoft isn't.

    Linux is gaining mindshare & market share in the home network market. Microsoft isn't.

    Linux has a guaranteed future. Right now, Microsoft doesn't.

    Linux is future-proof, as it can migrate to a pure 64-bit OS. Microsoft 9x is DEAD, in 2032, and companies might not want another Y2K budget fiasco.

    CBQ, RED, ECN, RSVP are all supported, making Linux a powerful network machine and DDoS-proof. Windows is not.

    Linux supports a wider range of RAID configurations (so long as you don't use 2.3 or 2.4, just yet!)

    Linux has better swap-handling, making development quicker. (Faster compile times, less disk thrashing, etc.)

    Linux has -real- FS journalling. MS Windows does not.

    --
    It's a small world and it smells funny; I'd buy another if it wasn't for the money; Take back what I paid (SoM)
  151. Haiku by YASD · · Score: 1


    Create killer app
    Watch MS eat your market
    Penguins just eat fish


    ------

    --

    ------
    You are in a twisty little maze of open source licenses, all different.
    1. Re:Haiku by gwalla · · Score: 1

      This is the best haiku I've seen on Slashdot in a long time.


      ---
      Zardoz has spoken!

      --
      Oper on the Nightstar
  152. Confessions of an Ex-Windows Programmer by Doc+Technical · · Score: 2
    Confession time. From 1986 to 1994, I was a hardcore DOS/Windows programmer, moving through a progression of languages and tools on that platform: Microsoft Fortran, Turbo Pascal 3/4/5, Turbo Pascal for Windows, Borland C/C++, Visual Basic 2/3/4, Delphi. I knew the Windows API pretty well. I even had two books on Visual Basic programming published.

    Many of these were good tools, some bordered on great tools.

    It was while I was deeply involved in Visual Basic (VB) that I began to get an uneasy feeling. As new versions of VB were being designed and released, it seemed that I was spending more time learning the nuances of the tool, and less time honing my skills as a programmer. Even worse, MS would come out with a set of tools, then abandon or alter them a few months later. Gods help the early adopter.

    In 1994, I started working in a group that was almost exclusively Linux. The learning curve was somewhat steep, no doubt about it. But the unix toolset was so rich, and the tools built upon themselves in such a manner, that instead of a vicious cycle of adopt/upgrade/abandon/relearn, I found that all my unix learning built on itself.

    The unix command line, with its concurrent filters and pipes, makes it very easy to build and reuse tools. gcc and gdb, coupled with emacs, made for a very powerful programming environment.

    But the essential difference between programming under Linux and programming under Windows is that in the former you are using tools, and in the latter you are using products . When MS wanted to push the adoption of OLE (Object Linking and Embedding) in their OS, they spent a great amount of time adding OLE features to their languages. At the time, users may have been clamouring for better OOP constructs in VB, what they got was whatever was on the MS agenda.

    Who do you want building your tools?

  153. codewarrior by juzam · · Score: 1

    i first got started with turbo c++ at my high school (and i hated it). i had already used makefiles, but never to make my own stuff. right now, i've found that codewarrior is what i wanted. at least in macos it has a nice point and drool interface, and i've always shyed away from makefiles (i'm not sure why). unfortunatly, metrowerks has not made codewarrior available for linuxppc, so i guess i will have to learn how to use gcc....

    --
    --- Hey, Jesus is coming! Everyone look busy
  154. Copying and Pasting by mezzo · · Score: 1

    Actually I like using emacs, but I tend to use visual studios, not because of the intellisense.. but because of copying and pasting.

    I dislike the copying by double clicking (my fingers just won't synchronize) and using the mouse. And even though I use an emacs that knows how to copy and paste (it implements ctrl-enter and ctrl-shift-enter, dos-like copy/paste), sometimes when using different xterms, the copy/pasting gets confused.

    I guess, its not really that important to most people.. but I really like being able to copy and paste properly, specially when dealing with large amounts of code.

    Mez -- not good enough to dig into emacs lisp just yet.

  155. The exception to this: by pwhysall · · Score: 1

    If you get a service that failed to complete either starting or stopping, it goes into an uncontrollable state where you can neither start nor stop the service.

    You cannot control the process from the task manager at this point and the only cure is a reboot.

    It's way, WAY worse than zombie processes under *NIX - in fact, it's as bad as RWAST processes under VMS.
    --

    --
    Peter
    1. Re:The exception to this: by JonK · · Score: 1

      Bollocks: kill it (see my post above)
      --
      Cheers

      --
      Cheers

      Jon
  156. Where did this myth come from??? by dmayle · · Score: 1

    I keep running into this mythos taken for granted nowadays. C and Unix born together?? I don't think so. Unix was born, and then later, recoded to C, and has since become the standard. C was an AT&T internal programming language, and Unix just happened to have been written by an employee at Bell Labs who liked C enough to recode it in the language...

    1. Re:Where did this myth come from??? by DunbarTheInept · · Score: 3
      Unix just happened to have been written by an employee at Bell Labs who liked C enough to recode it in the language...
      ..Yeah, the same someone. The K&R of C fame are also the K&R of UNIX fame. C was designed specifically for the needs of systems development, where they wanted a language with some of the high-level syntax, but without the high-level masking of what's really happening. (the "icky" features of C that let you make all the same mistakes as in assembly language are actually intentional - It was meant to let people develop something as low-level as an OS in it.)

      You are right that the first experimental versions of UNIX predate C, but those versions were not the versions the public saw later when UNIX finally escaped from Bell Labs and saw the light of day. The switch to C happened very early in the development of UNIX, and C was designed explicitly with the needs of the UNIX developers in mind, so it meshed very well.

      --

      Don't label something "offtopic" unless you know the topic well enough to tell what's on topic.

  157. why develop for linux? by chegosaurus · · Score: 2

    i) so you can annoy users of other Unices when your "portable" code won't build for lack of linux/soundcard.h

    ii) so when your application hangs the X server you can shrug and say "well, what do you want for free?"

    Rob

  158. The advantage? by stripes · · Score: 3

    The big advantage is that your code will run under Linux (and other Unixish systems if you do your job right). That's a big deal, because you won't get bug reports about other programs crashing yours...and there are way fewer pain in the ass liberery bugs...and when there are it is far easyer to find them with the source to libc (or libcurses, or libfoo) and either fix them, or code around them. Way way way nicer. At least IMHO.

  159. What makes Linux easyer than Windows for dev by Felinoid · · Score: 1

    With Linux everything you need is free.
    Anything missing? Add your own code or talk with whomever is resposable for the libary.

    And thats the other advantage. Direct access to the develupers.

    Linux is know for stability under fire...
    Develupers don't need THAT they need minimal stability.
    Windows dose not deliver.
    Windows 3.11 had memory leaks and it's a good bet many apps writen for 3.11 had memory leaks as well.
    A programmer can not be expected to fix bugs when he can't be sure the bugs belong to his app and not the operating system.

    --
    I don't actually exist.
  160. Windows is for Windows by sdprenzl · · Score: 1

    Programming in the MS Windows environment is geared towards producing nice, pretty Windows apps, full stop. Everything else is much more difficult for all the stated reasons. I've used Visual Studio and Visual Cafe on Windows and in both cases there was no advantage to using those environments unless you were building a standard, user interface Windows app. However, in today's world so much of programming is either "systems" or Web. Sure, Microsoft has long stood for the "Cadillac" ride, while Unix/Linux is more like a Landrover, but you can go more places in a Landrover. That's why I think the "Where do you want to go today?" is so specious: Whatever your answer is it better fit into a Windows app on a Windows box. And I have to emphasize the Open Source mentality again. I've worked in MS environments where needed bugfixes or lacking functionality simply stopped the show--with no recourse to solving the problem other than to wait for MS to maybe fix it or expand it. When you have to back an entire development team out of Visual Basic 6 because VB6 suddenly can't handle your VB 5-written app, you'll stop complaining about the canvas seats and the hard suspension of that Landrover. Sure, the learning curve is steeper in the Linux/Unix environment, but there is no limit to what you can do--once you master the gnarly tools--whereas Windows programming always seems to have a stone wall just lurking around the corner.

    --
    --- WWSD? What Would Strider Do?
  161. VisualStudio + Linux... =) by phlake · · Score: 1
    I use VisualCafe (at home: VisualStudio) to code in, save to a Linux Samba share, compile with javac (at home: gcc). or compile for windows...

    ...but then, I'm using Java (at home: OpenGL)...or I might use CodeWarrior on my iMac.

    Some people may not be this lucky.

  162. Engineering & APIs by J.J. · · Score: 2

    I imagine that someone has already made this point, but I'm on the run, so I'll toss in my $0.02. This will probably get lost in all the noise that this story is sure to generate.

    I'm a Windows coder. Don't flame me, I've got my reasons, and it's irrelevant to my point. Just get in your head that I'm experienced with the Windows enviroment.

    I have written code in Linux. The networking class I took in college made us use Linux. While I'm not experienced in Linux, I know the basics.

    The single thing that really attracts me to Linux (*nix in general, really) is the elegance of the APIs. The beginnings of the API set was written with some very careful thought, to make the interaction between the APIs nearly seamless. I'm a big fan of tight, elegant code - and I continually get frustrated in Windows because the APIs almost force you to create bloated code. I recently rewrote a simple port listening project that I had done in that class - the 50 lines of code for Linux became 300 under Win32. Why so much? Multitude of reasons, but the inelegance of the API set is the basis.

    If your friend is a good developer, he'll appreciate the beauty and attraction of good, tight code.

    J.J.

  163. Re:Sniff sniff, I smell a Microsoftie... by geekopus · · Score: 1

    http://slashdot.org/users.pl?op=us erinfo&nick=CDanek

    So fucking what? This guy has just as much right to be here as you do.

    I really get tired of you bigoted Linux users.

    If you don't have anything constructive to say, just keep your mouth shut (and the noise level on /. down).

  164. Here's why *I* like developing on Linux by Anonymous Coward · · Score: 1
    Windoze doesn't have a "make" utility. But the Cygnus "CygWin" environment takes care of that. But isn't it significant that you have to add a *nix emulator to be able to do something as simple as make files?

    In win 95-98 the DOS window doesn't scroll so if an error (such as a Java Exception stack trace) prints out then you can't scroll back up to see what the error was. Very frustrating.

    Also, the memory management of the DOS window in 95-98 is different from the memory management in the rest of the OS. By this I mean you can easily get out of memory errors by doing something as simple as running "make" on a project a few times. That pretty much makes 95-98 useless for writting code.

    So that just leaves NT/2000 or Linux. I've never even seen Win2000 (I don't have a need) but I've done a lot of development on NT and Linux. I should say that I'm very much an anti IDE guy. I think tools like JBuilder (for example) insulate the programmer from the code (among other problems). So the coolness of certain tools desn't really effect me. I don't need JBuilder or Visual anything becasue I just use an editor and make files. Therefore, I'm not locked into an OS by the tools I must use.

    So, *I* prefer Linux because it easily supports make files, it has very stable memory management (I've crashed NT too many times) and I love the concept of multiple desktops in KDE and Gnome. I can put my CD player on Desktop 4, my browser on Desktop 3, and keep my editor and terminal window on desktop 1. Then I run the program I'm coding on desktop 2 and none of my screens are crowded. It helps keep my thought process clear and uncluttered (just like the desktop).

    Finally, my Linux desktop feels like *MY* desktop. It's so easy to customize the themes, the terminal window colors and so on that I just feel more "at home" when I'm on Linux. I know that I'm on *my* computer, instead of being forced to use yet another clone of Bill's vision of what an OS should be.

    Just my $0.02 YMMV

  165. You want a laugh? by pwhysall · · Score: 1

    Multiple versions of SourceSafe (because newer versions aren't compatible with older ones) and multiple databases.

    This is life in the real world, where you have to maintain stupid .ini files just to let the dumb client programs know where to find stuff. Don't tell me that this isn't necessary, I've spent two years administrating this shite product over two dozen databases and three versions. Which I suspect is a whole heap more experience than you have with it.

    Using the remote administration tool trashes the ini files, meaning you have to go back and reconstruct SRCSAFE.INI by hand for each version you're running. It's no fun at all.

    Source Safe Sucks. CVS Rules.
    --

    --
    Peter
  166. Its all about open vs closed by gram · · Score: 2

    The fundamental difference between developing under Windows and under UNIX and its derivatives (I use FreeBSD), is that under UNIX everything other than object files, executables, and libraries, is in flat text files. This includes your project files (i.e. makefiles), your version control files, your documentation (man pages, LaTeX, etc). The formats are well documented. Furthermore, you have all the tools you need to do whatever you like to these text files. And the upshot of this is that you can automate almost anything, to the point where typing `make' can check your latest sources out of various repositories around the 'net, compile them, run regression tests on them, and build and cut your release CD, and maybe even send out the mail saying a new release is available and what the changes are.

    Under Windows, you have some great tools - but they don't have this underlying simplicity, and that is where *true* power originates.

    When I develop under Windows (not very often anymore, I'm glad to say), I still use command line compilers, make, etc, to get as much of this benefit as I can. But it isn't quite the same...

    --
    Graham Wheeler Cequrux Technologies Internet Firewalls/VPN Routers/Encryption Software
    1. Re:Its all about open vs closed by gram · · Score: 1

      I should also mention: this isn't something you will be able to convince someone of just by telling them. You have to experience it for yourself. You will blow yourself away by what you can do...

      --
      Graham Wheeler Cequrux Technologies Internet Firewalls/VPN Routers/Encryption Software
  167. Autocompletion by Ronin+Developer · · Score: 2

    If Borland's Kylix is anything like Delphi, it will have all the Experts (Wizards to MS fans) and code completion that you speak of.

    BTW, Kylix will be Borland's Delphi/C++ Builder environment for Linux (now in beta).

    The only drawbacks I can think of going to Kylix are its dependencies on QT. But, supposedly, they will allow those libs to be distributed..and are encouraging inclusion on Linux distributions.

    The other drawback is that it is a commercial product. That won't stop me (I'm a corporate (and hobby) Delphi developer), but it may stop some people. Me, I just want my apps to port with the littlest amount of work and then to develop natively with the same interface I've come to enjoy.

    RD

  168. I've developed GUI apps under Win, Mac, UNIX, Amig by scum-o · · Score: 2

    I started as an Amiga guy, then switched to Windows, then to Linux. A few years ago, I had to write an app that I had to port to Windows and Mac, so I have programming experience in most "flavors" of the major OSs of today.

    In short, there are pros and cons to programming on any platform.

    * Windows has good commercial tools, but MFC, I/O and the memory problems associated with windows are enough to make one look for an alternative. The public domain tools available for Windows are either buggy as hell or don't even begin to understand the meaning of "robust".

    * Mac has an interesting (yet similar paradigm to Windows) philosophy when it comes to GUIs or graphical resources. They're still using the old development tools (with the exception of Code Warrior) of yesterday to write apps. In the Mac world, YOU USE CODE WARRIOR - there's just no other way around it, but in a way, this actually a good thing. If you grab some mac code off the web, you're almost guarenteed it'll compile and work! The legacy stuff makes IPC and GUI development very "hacky".

    * UNIX (in general) is interesting because you have several choices of APIs to use. Want to write a GUI? You can choose from a number of different GUI APIs! Motif, Tcl/tk, Gtk, Qt, and so on ... It's even possible to mix-up the APIs, so you can have one app that has both Motif, Gtk and Qt all used together and using the same event handler! UNIX has some really poor GUI-builders (none of the PD ones I'd recommend), but it's not that tough to throw together a GUI using vi and your own 10 digits.

    Some of the previous comments I also agree with, like the ability to treat devices as files under Linux - sound is simple, framebuffers are simple, tcp/ip is simple - it's all very low-level as opposed to the MFC where you have to instantiate a huge object and dig down inside of it to turn on the thing that you want. Unless you've done this for years, the MFC is a real pain in the ass to do anything very productive with.

    That's just my $0.02

    - Steve
    --
    Steven Webb
    System Administrator II - Juneau and TECOM projects
    NCAR - Research Applications Program

  169. Programming by Raistlin99 · · Score: 1

    Everyone is turning this discussion onto whether Linux or Windows is a better platform. The question was what was the benefits of developing of on Linux. I have programmed on Windows for about 3 years now. I learned how to program in MSVS but then I switched to Borland and a few other compilers including GCC. Borland was the worst. MSVS is about the best compiler I've ever seen. It is stable but then I use WinNT instead of Win9X becuase they are user OS instead of a developer platform. Now to be fair I have worked with Linux and FreeBSD and I think for developing they are great but I don't see any benefits to actually coding. The level of Coding comes from the coder and not the tools he/she uses.

    --
    I/O, I/O, its off to disk I go, with a read and a write, and a bit and a byte, I/O, I/O, I/O, I/O
  170. Re:Sniff sniff, I smell a Microsoftie... by MaxwellStreet · · Score: 1
    A dissenting view is automatically FUD?

    Actually, I find that an opposing view forces both sides to think harder - which I assume has -some- value here.

    Who gives a damn where he works? And why does being a Microserf (if he is one) make you persona non grata here?

    Such a narrow breadth of viewpoints reduces the relevance of any Slashdot discussion - makes me wonder sometimes why anyone with the obvious expertise that floats around here would continue to come here and wade through the trolls and partisan schlock.

    But the discussion is a valid one, with many intelligent answers. I don't happen to group this one in that number.

    Or maybe I just need my coffee this morning.

  171. Slashdotters - listen up! by suitcase · · Score: 1

    I usually 'lurk' on these comment trees, but I just noticed something that really interested me.

    This user, TummyX, is obviously a Windows user. VERY obviously. But what makes me wonder is why every single one of his posts is a powerful pro Windows statement. Every single one. Go ahead, check it out.

    Opinions and opposing viewpoints are what this place is all about, but the extent of this guys pro Windows rallying in every single thread he posts in is kinda weird. Almost as annoying as some of the Linux zealots here :)

    Anyone detect something strange with this dude? Like maybe his agenda is a little too specific?

    Reading Slashdot too long has got me beliving my own conspiracy theories :)

    1. Re:Slashdotters - listen up! by Raistlin99 · · Score: 1

      your right he does post in favor of windows but why don't you look for only Linux is great posters and then get back to me

      --
      I/O, I/O, its off to disk I go, with a read and a write, and a bit and a byte, I/O, I/O, I/O, I/O
    2. Re:Slashdotters - listen up! by suitcase · · Score: 1

      I did make a reference to the Linux nuts here. I am not talking about that.

    3. Re:Slashdotters - listen up! by M$+Mole · · Score: 1

      Well, if you're insinuating that he is some sort of Microsoft "spy", sent here to post pro-M$ comments...why not extend your conspiracy theory to say that anyone who consistantly defends some flavor of LINUX is a RedHat or Debian "spy" sent to make us want to use their distro...or say that someone who posts something pro-Mac is working for Apple. Technical people tend to feel very strongly about their platforms...it's almost religious. Saying that anyone who posts something about M$ in a positive light is a spy sent here to post FUD is ludicrous. There are those among us who like working on/with M$ products, and who obviously feel that they should have a voice in this forum as well as the people who prefer LINUX, UNIX, Mac, or whatever. I've defended M$ or their products in several posts, if that means I work for them, I need to call Bill and ask for my check and my stock options.

      --
      Karma: Non-existant. Due mostly to the fact that you smell funny and nobody likes you.
  172. no documentation on windows?! by Lord+Omlette · · Score: 1

    Why all the fuss about little documentation on Windows Programming? msdn.microsoft.com has just about everything you need if you're using Microsoft tools (a fast connection helps here btw)...

    Actually I've found less documentation when trying to do things in Linux, but that's because I honestly don't know where to look.

    The only reason I switch back and forth between OSes is because of demands by clients... If someone pays me to write DOS programs, then DOS it is...
    --
    Peace,
    Lord Omlette
    ICQ# 77863057

    --
    [o]_O
  173. It's about the tools at hand by B-Rad · · Score: 1

    It's not so much about which OS you want to develop on, it's about which tools are available on the OS. It's also about your target audience. I couldn't get away with developing database solutions under Linux for people who are going to be using NT.

    And for the people who said that virtual desktops are a necessity, and this is a reason to use Linux over Windows, check out VirtuaWin. I've used it under W98, NT4, and W2000. It's virtually foolproof, it's free (as in beer), and it's open source. People should -really- start checking out options before resorting to zealotry.

  174. Preach On! by T_Wit · · Score: 4
    I'm totally sick of Universities' attitudes toward computer science. I majored in CS at two universities - ETBU, & UT Dallas. ETBU we had to do everything in Windows, at UT Dallas, everything is in Windows and you're "highly encouraged" to use Visual Studio. VS is good for turning out windows stuff. Other than that, like everybody says, It Sucks! There's too much crap between the actual code of the program that I write and the pretty buttons you see on the screen.

    Now, for my personal rant - why are we learning this stuff backwards? At school they try to teach pretty interfaces and making your program user friendly... and then a year or so down the road learning assembly. Why don't we learn assembly first, then basic C, etc, and then by the time we're making those oh-so-spiffy interfaces we're turning out real-world aps that are actually useful. I can only code The Library Program so many times, ya know :) Doing The Library Program in first one language, then another, then another doesn't actually further my knowledge of programming. Give me a book of syntax and I can learn languages. I pay these people umpteen bux I don't have every semester to teach me programming, not pretty interfaces. Okay, end of my explosion about the status quo :)

    1. Re:Preach On! by gfxguy · · Score: 2
      And people made fun of me for going to UNLV...

      Where you learn structure (Pascal) in the first two semesters. Then go on to Assembly (at the time I went it was 8086 and Vax). Only then did you move on to C and start doing in depth analysis of data structures and algorithms.

      Not only that, but most of the technical staff are Unix gurus. Linux is highly advocated, and the systems in the "good" lab were DEC, Sparc, and Vax, and the "special" lab had SGI.

      I agree. "Hello World!" on a command line interface environment (a Unix shell, or DOS, but not Windows) is a couple of lines of code. How many lines of code is it for Windows? And what more does a beginner learn having to write it for Windows? Nothing! It's just harder and more complicated, and it only goes downhill from there.

      The UI and the core of the language should be two separate pieces. UI should be a library of ones choosing, and should come much later down the road, after basic data structures and so forth. It's icing on the cake. Windows is all icing and no cake.

      --END TRANS--
      ----------

      --
      Stupid sexy Flanders.
    2. Re:Preach On! by MaxGrant · · Score: 1

      //hello world written for a windows console:

      #include
      int main()
      {
      cout
      int main()
      {
      MessageBox(NULL, "Hello world", "Hello", MB_OK);
      return 0;
      }

      //It pays to know whereof you speak

    3. Re:Preach On! by MaxGrant · · Score: 1

      //whoops! I guess this thing ate some of my code
      //forgot to put it extrans

      //command-line hello world for windows
      #include <iostream.h>
      int main()
      {
      cout << "Hello World" << endl;
      return 0;
      }

      //and here is the graphical hello world for windows
      #include <windows.h>
      int main()
      {
      MessageBox(NULL, "Hello world", "Hello",MB_OK);
      return 0;
      }

      //A 'couple of lines'

    4. Re:Preach On! by agentsix · · Score: 1

      // hello.cpp: "Hello, world!" for a Unix console.

      #include

      main() { cout "Hello, world!" endl; } Hmmm...wonder how much faster mine will run...

      --
      To die, to code, perchance to sleep; aye, there's the rub. For in this code of grep what sleep may come?
    5. Re:Preach On! by tektsu · · Score: 1

      Well I can't see THAT compiling, even under windows!

      --
      kiku wa ittoki no haji kikanu wa matsudai no haji
    6. Re:Preach On! by Yohahn · · Score: 1

      You'd find my school interesting.

      Northern Illinois University starts you out with COBOL usually and then you learn System 360 Assembler. If you make it through that then you can learn data structures and other fun things (JCL, IMS, SQL, UNIX...).
      (given I've heard that they've lightened up on this.. but I still believe that COBOL is required)
      It sounds old.. but it's a very pragmatic kinda program. (believe me... after JCL, ANY scripting language is a GODSEND)

      Now, I'm a Linux person at home working in windows at work (although I've gotten some Linux stuff in here).

      I definately think we need more consistancy in CS Programs.

    7. Re:Preach On! by gfxguy · · Score: 1
      You may correct me for being wrong, however, I don't believe your code is correct.

      First of all, beginners should learn from the start to accept parameters to main. And don't windows GUI apps require "winmain"? And aren't there some ridiculous coversions, like "EXTERN PASCAL int winmain", or some such nonsense?

      Feel free to enlighten me, though, I am asking about a "technically correct" version.
      ----------

      --
      Stupid sexy Flanders.
    8. Re:Preach On! by dane23 · · Score: 3

      I'm not sure about ETBU but I'm not suprised about your unhappiness with UT Dallas. I wasn't impressed at all by UT Austin's Comp Sci program. My Comp Sci degree is from SWT in San Marcos, TX. It's a smaller school but the Comp Sci department actually taught the subject the right way. Assembly was a gateway class to the higher level courses, as was Data Structures and C. We didn't get into Human Factors, for GUI design, or Java until the senior level courses. The Linux Programming course alone was worth every late night study session.

      Which bring me to my question: Why do people give small schools a bad time? I've been to UT Austin and UT San Antonio and I still prefer my experience at SWT in San Marcos over these two "better" schools.

      --


      Warning! Keep Out of Eyes! Wash Out with Water! Don't Drink Soap! Dilute! Dilute!
    9. Re:Preach On! by Eponymous,+Showered · · Score: 1
      I definately think we need more consistancy in CS Programs.
      I would disagree. Your premise would assume a homogeneous computing environment out there, which there isn't. I think there's a place for the point-and-click VB programmer and for the assembler hack and for the Object-pure Smalltalk programmer and for the shove it out the dorm room gcc-user. Each CS program should determine it's own goals and needs, no?
    10. Re:Preach On! by Alan · · Score: 3

      Agreed.

      When I was in college my advanced pascal class (this was 94ish) introduced us to the concepts of pointers, memory allocation, constructors, destructors and object orientation.

      I was fscking lost. When did you dereference again? Do I have to allocate memory? Huh?

      The semester after I took assembler. Suddenly all these concepts came to life! Wow! I know what a string is now, I know what I'm actually doing when I allocate memory! Wow, suddenly I understand why I need a constructor and destructor! Null terminated string is not just a term but an idea I can visualize in my head!

      That's my personal experience with this anyway. YMMV. However, I gotta agree with anyone who says that it is the Right Thing to teach from the ground up. If people had to take an assembler class *before* they got to take their "become a high paid programmer by cranking out crap in VB in 6 weeks" class, I think we'd have better programmers out there.

      Now I don't begrudge people needing apps Now(tm). A friend of mine does VB programming and I admit that it has it's place. Being able to produce a program and worry about UI rather than worrying about HOW it's doing it is a good thing. But there *has* to be a nice melding of the two.

    11. Re:Preach On! by redhog · · Score: 1

      Where are you????
      I was (until this spring) studying CS in sweden. We was first introduced to LISP. Then ADA. Concurently, we had a course in discrete math. After that, we had some algorithm courses and a course in formal languages (proving syntactic properties), and one in programming theory (proving semantics). Learning how to program in VC++?? Give me a break!
      --The knowledge that you are an idiot, is what distinguishes you from one.

      --
      --The knowledge that you are an idiot, is what distinguishes you from one.
    12. Re:Preach On! by Alan · · Score: 1

      I was going to a college in the fraser valley in BC, Canada. It was a university-college, and the program was CIS (Computer Information Systems) which is a mix of business (bleah) and computing. Basically the thought was you get a good idea of all the things you need to survive out there, not just pure CS.

    13. Re:Preach On! by blaine · · Score: 2

      You picked the wrong school, I guess.

      My University's CS program is total UNIX, with Linux also starting to gain acceptance. We've even begun putting together a Linux lab.

      MS products are used in exactly TWO CS classes [unless I'm mistaken]:

      Machine Organization [Assembly]: MASM + DOS
      Human Computer Interaction: VB is used later on [for prototyping interfaces]

      HCI was a horrible class anyways, due to the teacher, and not due to the subject matter. They used DOS for asm mainly for MASM and DOS interrupts and shit like that. Wasn't that bad, excepting working on a lab computer with Win9x and getting memory errors for doing things Win9x didn't like at all in a DOS prompt :)

      Every other class in the CS department is UNIX. And dammit, I love it :)

      --

      -[Blaine]- "'Oh dear,' says God, 'I hadn't thought of that,' and promptly vanishes in a puff of logic."
    14. Re:Preach On! by Yohahn · · Score: 1

      True.. I didn't say each program needs to be the same... I'm saying that a bit more consistancy as to what is considered a CS program, especially with OMIS or MIS programs popping up, would be helpful.

      Balance is imporant in almost everything we do. Consistancy in CS is no exception. I think that as it stands CS programs are on the too heterogenious side.

    15. Re:Preach On! by DunbarTheInept · · Score: 1
      Have things really changed that much since I started college ('89)? Where I went was a very small sattelite college of the state system, in a small city, where most attendees were planning on taking the 4-years and out into a job path, rather than the acedemic grad-student path. Even at a place like that, the CS department was filled with UNIX people, teaching concepts on UNIX machines, with other systems taught only as a sidebar to broaden the student's base, and make sure they don't leave with an "all the world's a UNIX box" mentality.

      As PC's grew in power, they started using Windows stuff more, but I could tell they didn't like it and were only doing it for the cheap price and expediency (students could work on their own hardware at home if they liked). But once Linux became a big thing (as I was leaving), they went right back to being mostly UNIX again. They were only using PCs for the cheap hardware, not because they actually liked Windows. Once the chance came up to have the cheap hardware but also have UNIX on it, they went for it. (This is what I have learned from others at the school after I left. I have not witnessed it personally).

      I was under the impression that UNIX was still stronger in acedemic circles than in commercial ones. Has this changed?

      --

      Don't label something "offtopic" unless you know the topic well enough to tell what's on topic.

    16. Re:Preach On! by hopping+yak · · Score: 1
      This is really funny. At the schools I went to (University of Oregon, University of Texas Austin), we learned everything on Unix. They emphasized algorithms, data structures, and OO programming concepts foremost. Not too much assembly language unless you really wanted it though. Everything was unix based. Even the user interfaces course (optional) used Tcl/Tk.

      There was one professor who kept badgering the department to put in a windows machine, until during my senior year 3 sad looking NT boxes appeared in the back of a lab filled with sparc 5s. I remember thinking that while these NT machines are pretty crappy for writing software on, they do make very nice typewriters.

    17. Re:Preach On! by gradji · · Score: 1

      I found this post amusing (and reflective of the different paths of learning taken by programmers world-wide) as the two universities with which I am associated have CS departments which encourage (in some cases require) their students to learn programming fundamentals using LISP ... and I can't imagine too many languages that are more different from Visual Studio than LISP in a UNIX environment ...

      I guess they know what they are doing as both institutions crank out top programmers year in, year out.

      --

    18. Re:Preach On! by Trejus · · Score: 1

      I guess I really lucked out by going to emory university. Tho it's known as a pre med and pre business type school, they do have a pretty decent cs department. We do all of our development on solaris systems with VI. Thier attitude seems to be "you're fools if you need a gui for this stuff." I guess that's what happens when the department is run by a die hard unix geek.

      also, we do do assymbly early on, so i guess they do try to make sense here.

      --
      "To save the planet, I had to go to the worst spot on Earth, and that was Philadelphia." -- Sun Ra
    19. Re:Preach On! by emmons · · Score: 1

      perl -e "print \"Hello, World!\n\""

      or:
      perl -e "print 'Hello, World'"
      if you don't care about carriage returns...

      -----

      --
      Do you even know anything about perl? -- AC Replying to Tom Christiansen post.
    20. Re:Preach On! by JonK · · Score: 1
      Bzzt: WRONG!

      It should read int main()
      --
      Cheers

      --
      Cheers

      Jon
    21. Re:Preach On! by JonK · · Score: 1
      Parameters to main() are optional. From the standard (section 3.6.1 para.2)

      "An implementation shall not predefine the main function. This function shall not be overloaded. It shall have a return type of type int, but otherwise its type is implementation-defined. All implementations shall allow both of the following definitions of main:

      int main() { /* ... */ }

      and

      int main(int argc, char* argv[]) { /* ... */ }"

      After all, if you don't expect any parameters or want them, why have the startup stub handle them

      As for the use of modifiers, the declaration for WinMain is:

      int WINAPI WinMain(
      HINSTANCE hInstance, // handle to current instance
      HINSTANCE hPrevInstance, // handle to previous instance
      LPSTR lpCmdLine, // command line
      int nCmdShow // show state
      );

      where WINAPI is #define'd as __stdcall, which, in turn, is a compiler directive saying that the callee should clean the stack. This is the standard calling convention under Windows unless you've told your compiler to use __cdecl for all calls which haven't been made explicit, so in the vast majority of cases int WinMain is a legitimate construct.
      --
      Cheers

      --
      Cheers

      Jon
  175. Open Source does not equate to just Linux... by PantalonesVaqueros · · Score: 1

    While the majority of Open Source (or Free) projects are for Linux, there are plenty out there for Windows (maybe there should be more). You can look at the source code to a LOT of stuff on Unix (not just Linux). So, while it's an excellent point (and a definite bonus), this isn't something that is tied intrinsically to Linux (I'd like to see more large commercial closed-source products using Linux, as an affirmation of it's popularity).

  176. Source Code Access by timbu2 · · Score: 1

    If you your friend really is a Windows Developer than he or she must have run into a big Windows bug before.

    Now I know Linux has bugs as well. The only sure fired way to elimate software defects is to eliminate end users, right?

    Anyway, with Linux you have access to the source, and you can fix the bug or report it to someone for fixing or pay someone to fix it. With Microsoft you hope and wait.

    Plus, ever try to bring up NT in a debugger? With Linux you can do just that. Of course, you can do some debugging with NT, but without access to the source it just isn't the same.

  177. No "Brick Walls" and a level playing field by Anonymous Coward · · Score: 1

    Open source means that if you don't understand the documentation, or think there's a problem in the underlying API, you can look at the source underlying the API (be it X or the kernel or whatever). You can see what the developer intended, and why your interface doesn't work, or find a bug and fix it or change the API altogether.

    In Windoze, you thrash and hack trying to figure out why the API doesn't behave as documented. You hit a brick wall when trying to figure out what's going on underneath. You call for support, only to find someone who understands less about the system than you do... try to bring them up to speed... futile. In Windoze, you're trying to fix a car with the hood welded shut.

    Then, there's the level playing field:

    In Linux you won't be undermined by the OS manufacturer when they decide to make a competing product. Rather than using the same lame Microsoft API's you're stuck with, Microsoft makes their own secret special hooks into their OS, tailor made for their application (this is exactly how Visual C undermined Borland in the late '80s to gain compiler supremacy on the Windoze platform -- but there are hundreds of other examples, just read Judge Jackson's "Findings Of Fact").

    In Linux, anybody can make their own special hooks into the OS. You're never in competition with the OS vendor.

    In summary, this "really cool coworker here who's one of the best developers I've met" isn't as good as you think if he hasn't already figured this out.

  178. Re:If your hammer is a plastic toy... by 0xdeadbeef · · Score: 1

    it will only hammer plastic nails.

    MSVC is full of speed bumps. In my experience most of them have been resolved with the lines "Damn, it can't do that. I guess I'll have to write a makefile".

    That is the flaw in having everything "built in"; you are constrained by the expectations of the person building the tool. Deviate from those expectations, and using it is like pulling teeth.

  179. MSVC Plugins by Malc · · Score: 3

    It is possible to write plugins. Take a look at the Visemacs page: http://www.atnetsend.net/computing/Vis Emacs/. Visemacs integrates Emacs into MSVC (well, as best it can considering the constraints placed on the task by Emacs ;)). I've been using it for several years, and really like it. The source is available, so I'm sure it wouldn't be hard to do a plugin for Vi, Lemmy, etc. Of course, Emacs integration uses the gnuserv package.

  180. There are no advantages to either platform. by gwonk · · Score: 1

    There are no advantages to developing on either platform. I develop on both Linux and NT. I definately prefer working in Linux, the environment is better (multiple desktops, better stability etc). But when it comes to tools, they are both about equal. I use the same tools (emacs, vim, bash, perl) on both platforms so I don't see a real difference. It simply comes down to using what you are most productive with.

  181. Depends on business needs by revnix · · Score: 1

    Linux or Windows as Development platform. It all depends on your business needs. The current product I'm working on doesn't require to be platform independent at all, so why would I spent time in setting up my crew to learn a total new environment. Do you really think I can afford to loose a customer that is allready using an NT environment using backoffice etc, because I don't like how windows is working. Hmm grow up please. If a customer comes to me and says: " hey I got a sytem running here and your product needs to be integrated with ours". I will say:"oke no problem" and I will start coding it no matter what the platform might be. Also even if it would have to be platform independent, it's still perfectly possible to code it under any platform. Even now at work we use dedicated tools for the GUI side since it allows us to do the job in the shortest time, but we use plain C++ for the back bone (business objects etc) and another layer to abstract the OS side. And yeah I do like Visual Studio and its tools, its stable, well documented and nicely integrated. I know it's not for free, but it ain't that exspensive either. And finally for the stability part, I agree that win95 is a joke for developping stuff, but NT4 and Win2k provides me with all the stability I will ever need.

  182. Unix IS an IDE by webster · · Score: 1

    Unix (and, of course, Linux) is the best Integrated Development Environment ever built. Just add a GUI builder and what more could you want?


    Always and inevitably everyone underestimates the number of stupid individuals in circulation

    --

    Information is not Knowledge
  183. Windows is ok... by bmacy · · Score: 2

    Really... I did C++ Windows development for many years (most of this last decade). Still do sometimes... there are several issues though:

    - Compiler bugs are extremely slow in getting fixed... like years... you will have to work around the problem. Only recently has there been an open source C++ compiler worth a salt (g++ is awesome for ISO compliance these days but it has it's own issues... but they get fixed quickly). And Borland's C++ compliance with 5.5 is finally good... hadn't been able to use their compiler since 5.01a. MS VC++ is a joke and Watcom is good but way behind in C++ feature support.
    - Win9x simply isn't a host development platform... I will spend an average of an hour a day rebooting when I try (I tend to do fairly intensive multi-threaded and low-level devlopment so YMMV)
    - Win9x and Win NT behave *very* differently in various areas of the API
    - OS bugs just don't get fixed (has MS yet fixed the memory leak with in EnhancedMetafiles and Clipping Regions in Win9x... makes them useless even though I've seen MS state them as the recomended way to print)
    - Changes to the OS are not documented... I remember one entertaining time when an Outlook service pack had the side effect of initializing serial port DCB's differently.
    - The API documentation is highly inaccurate and contradictory/unclear... and it's not like you can just look at the code to see what it really does. I've spent enormous amounts of time playing with API calls just to see how they really behave... and on which fix level or which OS.

    I don't jump on the "open source is the answer for everything" bandwagon much. I think it has it's place and I definitely think that the OS and development tools are places for it. As you can see my complaints are centered mostly around lack of access to information on how things really work and the inability to get problems fixed.

    Brian Macy

  184. Assbackwards by Dungeon+Dweller · · Score: 2

    Windows does everything assbackwards. I've developed under both. I prefer Linux development. If you want to develop under windows, by all means do so. I like the programs that I've written under windows, I don't even really mind the windows development model, but it's not the same. The way that most people learned how to program in academia is the Unix way. I prefer that way, and I programmed under windows before I ever touched a line of Unix source. Don't call me biased, I run a dual boot. It's simply more natural to develop under Linux/Unix, and quicker, and a whole heck of a lot easier. These OS's were written with developers in mind. I do not get that warm fuzzy feeling when I am working under windows. It has gotten better, but it's still not there yet for developers. Perhaps when they break up, Microsoft will be forced to open the gates a little.

    --
    Eh...
    1. Re:Assbackwards by Old+Wolf · · Score: 1

      What the fuck are you talking about?
      I'd like to see your program if you didn't write it with function calls.

  185. MSVC is a VCR - you only get whats given. by tjwhaynes · · Score: 2

    Even if it is not the best tool at all for the job. MSVC gives you all that built right in, no need to "spend time getting over the speed bumps."

    I'd compare MSVC against Emacs like a Video Recorder vs a Computer. MSVC gives you a set of predefined tools to allow you to do what MSVC is designed to do. If at some point you need something which MSVC doesn't do, you have to either upgrade or switch platforms. However, because the options you have are limited, the amount of time you need to acquaint yourself with the MSVC environment is also limited.

    Emacs is daunting for the new user. Why? Because it is a programmable, flexible editing environment. You have a predefined range of tools (libraries) at the start, plus the underlying configuration variables (via Customize or Options for Emacs or XEmacs) plus the Emacs Lisp programming language for more specific customization. There is very little limit to what you can do with Emacs - but becoming familiar with it requires time and patience spent. This time is not wasted - far from it. Every time you learn a new trick or feature in Emacs, you build your knowledge further and next time you need some function, you have a better idea of how to find it or write it.

    People jokingly talk about EmacsOS. But it's not so far away from the truth - I know people who rarely step outside Emacs in their interaction with the system - maybe to adjust a window position or to switch to another desktop window. A system this powerful takes time to learn, but I doubt you regret the time taken to learn C? Or Unix?

    At the end of the day, it's all about being able to make the best of the tools available. I actually prefer having many specific tools which can be used together. Emacs would seem to contradict that, but the reality is that Emacs provides a framework which helps glue those small tools together in such a way that the sum of the parts is greater than the whole.

    Cheers,

    Toby Haynes

    --
    Anything I post is strictly my own thoughts and doesn't necessarily have anything to do with the opinions of IBM.
  186. General Comments by swamp+boy · · Score: 3

    Myths
    1) NT == IDE (can use CLI makes on NT)
    2) Linux == CLI (can use IDE on Linux/Unix)

    Advantages of *any* unix flavor:
    1) Client/Server nature of X (can sit at your workstation and work on any other unix box transparently. no need for pcAnywhere)
    2) Industrial strength "kill" (i can issue kill -9 [pid] and *know* that the process will die)
    3) More sophisticated shells (BASH, C shell, Korn shell, Bourne shell all leave cmd.exe in the dirt). Though one can get these equivalents on Windows, they're there on Unix.
    4) lsof (view which processes have files open -- very handy on occasion)

    Advantages of NT:
    1) Tightly integrated toolset for MS development tools.

    Tools/Utilities:
    1) The tools/utilities such as vi, emacs, sed, awk, etc. can all be obtained for Windows. However, the Unix versions typically are more full-featured.
    2) Editors are definitely a matter of personal preference. Personally, I'm no fan of emacs. There's a nice GUI editor called "CoolEdit" (http://cooledit.sourceforge.net/) that only requires Xlib. See above advantage of the client/server nature of X. Commercial editors like Visual Slickedit (my favorite) is available on Windows, most flavors of Unix, and other platforms (OS/390 even).
    3) I've come to the conclusion that it's often better to stick with scripting languages like Perl or Python (my favorite) instead of writing shell scripts or batch files. They're more powerful, usually more readable (at least in the case of Python), and definitely more portable.
    4) Using *multiple* compilers on your source is often advantageous since one compiler may catch some things that another will not (as well as giving a check on compiler dependencies).

  187. Most Universities by Dungeon+Dweller · · Score: 1

    Most Universities teach on a UNIX system by choice. Where the hell did you go to school that opted for windows? How many PhD's do you know that got there by pointing and clicking that paper clip under windows? Perhaps if you had any credentials, you would know a little bit better. C and Unix were developed for each other, it's a historical fact, you need references? Go to the CS section of ANY university book store and find their Unix textbooks. There are surely some historical references. My personal belief is that you don't know where you stand. The only reason that they even bother putting NT on high end boxen is to cater to users like you. If you didn't notice, the primary operating system of almost every computer other than intel based PC's is a Unix variant, ever wonder why? It's not because MS doesn't care enough about the server market.

    --
    Eh...
  188. Re:Multimedia by cameloid · · Score: 1

    How come Apple hasn't released QuickTime(tm) for Linux yet?

    --
    -- Cisk for the Cisk God
  189. Hold up by Dungeon+Dweller · · Score: 2

    C was written as a standard language under the Unix environment, and then Unix was rewritten in C to ease portability. Pretty much by the same people. Most Unix texts make references to the C language, and vice versa.

    --
    Eh...
  190. Re:Give Emacs a Chance! by Azog · · Score: 4

    No you could not add this to emacs as a "trivial hack". No way.

    Why? Well, the compiler and the IDE talk to each other in DevStudio. The only way you could really get the same level of functionality in Emacs would be to build the first few stages of the C++ compiler pipeline into it.

    If you type:

    "pMyDoc->m_pWindo[tab]" it fills in the rest of the member variable. When you get the m_pWindowList you can type "->Head(" and the little tip window pops up and shows you what the arguments are for the Head method of pMyDoc->m_pWindowList.

    Now, to do that in Emacs you would have to build code to:

    1. Keep track of all temporary variables, their scope, and their type or class

    2. Build tables of all classes and their methods and members, with the class or type of each.

    The problem is, that's essentially the first stage of a compiler. It is NOT a trivial hack. You can't just do it by piping together a bunch of text parsing functions: you have to keep all this stuff in memory for decent performance - and even DevStudio 6 is pretty slow sometimes for this stuff.

    On the other hand, under Windows you have to put up with MFC which has some good stuff but a lot of problems. You have to put up with all the different versions of Windows, which behave in different (undocumented!) ways and have different bugs. There are at least three occasions where I lost a night of sleep trying to fix things that worked perfectly under NT and blew up under Windows 95. (Microsoft fans who doubt me can get all the gory details by asking.) Without the source you often feel like you are working blindfolded.

    My background: One month ago I started my cool new job using OpenBSD, Java, PHP, and Apache. I have used Linux at home for years, but haven't done serious development under it until now. I use Emacs because it's better than vi, but I don't think emacs is very good either. I want an editor that uses Alt- keys, not "Ctrl-X Ctrl-that Meta-x foo" for everything.

    Simply put: I want Dev Studio 6 capabilities under a free operating system. That would be bliss. And if the IDE and compiler are all free software too.... ooohhh yeah baby.

    The problem is, I believe that most free software developers just put in the huge effort to get good at vi or emacs (which are very powerful) but then don't have any incentive to create something better. And it could be better.


    Torrey Hoffman (Azog)

    --
    Torrey Hoffman (Azog)
    "HTML needs a rant tag" - Alan Cox
  191. Well... by Greyfox · · Score: 4
    1) Stability: Unless you're doing kernel or driver level work, you can pretty much count on Linux never crashing on you.

    2) Development tools: GCC is one of the best implementations of ANSI C++ available. Possibly the best. With exceptions, namespaces, templates and STL, C++ now feels like a mature language. And you can get an assortment of ORBs and other goodies. And if you ever wonder, "How did they do that?" you can look at the source.

    3) Intuitive: I've always found the X paradigm of using callback functions to be much more intuitive than the Windows event driven big case statement offering.

    4) Stable APIs: OK, Microsoft hasn't really been playing the API of the week club game since they mercilessly slaughtered OS/2, but if the APIs ever do change, you don't have that nagging feeling that the people who made the change did it just to piss you off.

    5) Choice: You have your choice of toolkits, and many of those toolkits are portable to other operating systems.

    6) Total Cost of Ownership: All the necessary development tools in Linux are free. By the time you finish assembling everything you need on Windows, you could easily have shelled out more than your computer cost you. And you'll have to pay for updates on a regular basis.

    --

    I'm trying to teach myself to set people on fire with my mind... Is it hot in here?

    1. Re:Well... by KarmaHo · · Score: 1

      2) Development tools: GCC is one of the best implementations of ANSI C++ available. Possibly the best.

      Perhaps on the x86, but certainly not on the alpha or powerpc! As much as I love gcc, it's certainly not the all-singing all-dancing compiler that some make it out to be.

  192. The obvious answer... by TheGeek · · Score: 1

    ...is really that when you develop for Linux you don't have to deal with Microsoft bullshit licensing issues, Microsoft (lack of) support, HUGE costs for development packages (as opposed to a quick visit to Freshmeat).
    TheGeek

    --

    TheGeek
    http://www.geekrights.org
    Kill the monkey
  193. Several advantages! by BluedemonX · · Score: 1

    1) Open Source - you can see what the code is you're running with. So if you have problems (why doesn't this work in NT but it works in 98?) you can actually step through what the OS is doing.

    2) A purer environment - A lot of Windows programming is MFC twiddling. Yes you can end up messing with Win32 primitives directly, but a lot of the time a lot of the folks just want you to run the AppWizard and then tweak something undocumented like RectTracker.

    I would NEVER have gotten to know C++ and OO design as well as I have without experience outside of Windows.

    3) Your choice of development environments, windowing environments, et. al.

    4) When was the last time you could email someone to explain part of the Windows kernel source to you?

    --

    --- Jump!! Fire!! Bullet time!! - Lego version of the Matrix
  194. Book Recommendation: The Unix Philosophy by dsplat · · Score: 3
    Get a copy of The Unix Philosophy by Mike Gancarz. You can read more about it or buy from fatbrain.com . The first sentence of their description explains its relevance:

    Unlike so many books that focus on how to use UNIX, The UNIX Philosophy concentrates on answering the question, "Why use UNIX in the first place?"

    --
    The net will not be what we demand, but what we make it. Build it well.
  195. CygWin by gizz_butt · · Score: 1

    Sorry, but I can't see any real advantage of using Linux. It's just a kernel, what difference does it really make? What you're talking about here is the quality of tools available, and thanks to projects such as CygWin, just about everything your talking about can be used quite happily under Windows.

  196. Re:Your target audience? (now very [OT]) by MrBogus · · Score: 1

    How does it even boot into Linux if the board is dead? You're confusing me....

    Either Windows trashed the board, or it's just crashing on boot into Windows in a really spectacular manner.

    --

    When I hear the word 'innovation', I reach for my pistol.
  197. Linux Gaming by Noctavis · · Score: 1
    Being a webmaster at in the Bungie fan community, awhile ago I asked Loki Games about the prospects for porting more Bungie products - especially Halo - to Linux. I've just barely received a reply:
    Thank you for your interest, and apologies for the delay in responding to your inquiry.

    Our company line now that Bungie has been purchased by Microsoft is as follows...

    We are not aware of anything relating to Bungie's acquisition that would affect our rights to continue to sell and support the Linux version Myth II, and we fully intend to continue to do so.

    Whether or not we'll have access to future Bungie titles is an open question. We just don't have enough information right now, so any comment would be mere speculation.

    Sincerely,

    Kayt Sorhaindo

    Loki Entertainment Software
    Who here thinks it's likely now? Guess we'll have to see what the Supreme Court has to say on the matter.
    --

    -Noctavis

  198. My School by Dungeon+Dweller · · Score: 2

    My school is totally unix in the CS department, and sells the Burks CD's every semester. Almost every student, therefore, has a copy of redhat 5.2 laying in their room. Also, a lot of students burn CD's with various linux distros (go Slack) and hand them out in class. Any school that does not teach its freshmen actual coding, is not teaching them computer science, and is not doing them any favors. In 10 years, where will they be, and are they really computer scientists? I know graduate students who fail out because they don't have enough actual computer science background. I am tired of people in this forum who think that pointing and clicking = computer science. Go and get a degree, and then yell at me, ok?

    --
    Eh...
  199. Java Development by aleclee · · Score: 1

    I'm a Java developer so all the arguments about VC++ (which I've used in the past) and Win32 APIs are pretty non-compelling. Since my preferred IDE is written in Java (Forte), I can run it on pretty much anything that runs Java 2. Even so, I'd rather develop on Windoze because of the availability of non-development software.

    Let's face it, there's a lot more to being a professional software developer than just slinging code. Interfacing with "business" folks is as important as writing tight code. If you don't have the ability to do that efficiently, your product won't be successful.

    If you're not writing platform-neutral code, you should be working on the target platform. Regardless of how you feel about VC++, if you're writing something that runs on Win32, you should develop on Win32, not Linux, regardless of how you feel about the tools and environment.

    --
    This message composed using 100% recycled electrons.
  200. Oh yeah by Dungeon+Dweller · · Score: 2

    Oh yeah, the point being, I agree.

    --
    Eh...
  201. Re:VI man ! (carpal tunnel avoidance) by Ella+the+Cat · · Score: 1

    I've spent some time trying to avoid using the mouse under X 'cos it aggravates carpal tunnel. Using fvwm2 as my WM it lets me mimic the Alt-Tab behaviour of Windows but based upon expressions that let you (for example) cycle between just your xterms, just your netscape windows or just your XEmacs (sorry:) frames. The fvwm functions to RTFM are "prev" and "next". The aches and pains have improved noticeably since I did this.

  202. Re:Inside Mac by BrentN · · Score: 2

    I agree completely with you thoughts about documentation, however, you no longer have to pay money for the Inside Mac books (unless you have a thing against trees). All of the Inside Mac documentation is free via html or pdf from the Apple developer website. Microsoft's developer docs are nowhere near as complete and easy to use.

  203. Re:Multimedia -SMPEG by DrCode · · Score: 1

    Then try it with Loki's open-source SMPEG player; on my machine, it looks at least as nice as with the Windows player.

  204. to exist is not to be functional, or even usable by FreeUser · · Score: 2

    You wrongly assume I am a Microsoft Apologist. I am more of an outsider who is amused to see Linux lovers and Microsoft apologists fight the bloody fight to defend their ways.

    And I, an unashamed Linux, FreeBSD, and BeOS enthusiast, always find Linux, FreeBSD, Amiga, Mac, and BeOS enthusiasts to be quite amusing. ;-) Don't get me wrong, I respect your enthusiasm, and the enthusiasm of those who enjoy other alternative operating systems (including those which don't interest me personally). None of the alternative OSes is perfect, but all of them have one thing in common: they are better than Windows in nearly every technical respect, and none of them are guilty of having held back progress the computing industry for fifteen years.

    Apologists, astroturfers, and zealots supporting MS Window variants, on the other hand, are promoting a technically inferior platform and a parasitical company which has actively and severely harmed computing for as long as I've been in the field. Worse, they promote a culture which replaces technical diversity, individual knowhow and intellectual endeavor with a technical monoculture ("One World, One Web, One Program"[1]) mentality, canned solutions which barely work and often map poorly to the problems they purport to solve, and corporate marketing hype which is often criminally misrepresentative. I don't even want to begin discussing their criminally negligent attitude toward security; that is a topic for another discussion. Suffice it to say, that for all of this I can have absolutely no respect whatsoever.

    To the subject at hand: as another pointed out, POSIX is only available for Windows/NT, not 95 or 98 (which comprise the majority of installed systems), and even there it is hidden away (and not installed by default). Worse, it has more than once caused severe headaches after various service packs were applied, and had to be removed. This hardly qualifies as a function product in my opinion.

    Unlike Linux, code generated for one variant of windows will very often not work at all on another variant, whereas for Linux most code will work with a simple recompile, 64 vs. 32 bit architectures not withstanding (We do allot of work on both 32-bit Intel and 64-bit alpha Linux platforms where I work).

    Actually, I prefer BeOS as an OS. None of the programs for it crash the OS. 'course, there aren't too many programs either!

    I like BeOS, but Adamation Personal Studio crashes all the time when I try to make long video captures (from either analog or firewire sources). On occasion, it does take BeOS out with it, and a hard reboot is required. It is a very cool OS, but no where near perfect just yet. :-)

    [1]Microsoft Promotional Ad, bearing a striking resemblence to Hitler's "Ein Volk, ein Reich, ein Fuehrer" political slogan. Both show a completely malignant attitude toward diversity, be it technical, biological, or cultural.

    --
    The Future of Human Evolution: Autonomy
  205. Re:Your target audience? Moving a windows disk by Seeq · · Score: 1

    I haven't had it blow a motherboard, but I have tried this (moving a windows disk from one motherboard to a new one, a couple times) and it never works. The only solution was to wipe the disk and reinstall windows on the new platform. I have moved linux disks between 3 or 4 machines, and after playing with rdev to get the boot partition right and /etc/fstab, it always wooks. And I only had to do that because It used to boot from /dev/sda1 and now it is /dev/sdc1.

  206. a POSIX way to do it by MenTaLguY · · Score: 2

    Set up an interrupt handler for SIGCHLD that calls wait() or waitpid() to reap the child process.

    (and, btw, the SIGIGN thing is not specific to just Linux, it's mentioned in the HP-UX manpages too, and IIRC Solaris as well)

    --

    DNA just wants to be free...
    1. Re:a POSIX way to do it by psaltes · · Score: 1

      thanks - my inexperience with doing this sort of thing in c shows.

  207. Re:"Hello World" in Qt by warmi · · Score: 1
  208. a simple answer by jeff_bond · · Score: 1
    Why develop on Windows? Well maybe because the vast majority of potential customers will want windows programs, no matter how hard it sucks. If you write stuff for money, develop on Windows, if you do it for fun, it can only be *nix.

    Jeff

    --
    stty erase ^H
    1. Re:a simple answer by be-fan · · Score: 2

      You have fun developing database servers? (Just kidding) I do stuff for fun too, and graphics on *nix is no fun. Say what you will, but DirectX rocks hard as hell.

      --
      A deep unwavering belief is a sure sign you're missing something...
  209. Yay for hungarian! by Karmageddon · · Score: 1
    Yes, Windows is filled with cheesey modified hungarian notation, but real hungarian notation totally rocks! it fits C code like a glove, as closely as as the Unix/C matchup listed above.

    The hungarian inventor, Charles Simonyi, also created the first WYSIWYG word processor at Xerox PARC... unfortunately, he went over to the dark side and presided over MS Office... :(

  210. After reading for a bit.... by Wah · · Score: 2

    ...there seems to be only one solution. Whatever platform your are programming on or for, use LOTS of acronyms.

    --

    --
    +&x
  211. It's not Linux vs. Windows by dybdahl · · Score: 1

    I use Linux programming style on Windows, so it's not an answer we need, but a different question. Soon, Kylix will join us, making Windows and Linux apps development approx. the same for many people. The question will be answered very differently depending on which tools people use.

    The question should be: Why should you do open-source development instead of Windows Closed-Source development?

    I think the answers here are much more obvious, I don't need to list them.

  212. Linux doesn't crash by DarrinWest · · Score: 2

    I've programmed on a variety of Unix systems for almost 20 years. I've programmed on Windows (mainly NT, VisualC++) for about 3 years.

    The biggest benefit to switching to Linux (or some other Unix system) is that it doesn't crash. We all write bad code when we are developing. You allocate an infinite amount of memory (or leak it), you open an infinite number of windows, you open too many files, you chase wild pointers, you pass bad parameters to system calls, you lock up all your threads, etc. Under unix, you just kill the app (from a window that will not be hung), and start again. You have not corrupted the OS.

    Any number of times under Windows, the IDE goes down, or the browser crashes and the OS goes down or locks up. If I have to kill a process, the OS becomes unstable, and after a while I have to reboot.

    Yes, I've crashed the X server. But you just rlogin to the box, or switch to another login screen (cntrl-alt-F4 or whatever it is - BTW - God bless whoever built that!). You can kill the server, kill your shells, kill your hung emacs, whatever. Then you just login, and start again. Linux *doesn't* hang!

    This results in *way* faster development. In Linux, I don't have to be as careful, and consequently, I can move faster. In Windows, I'm always afraid to run outside the debugger, and even then it will lock up, sometimes.

    One thing I do like about Windows development. That is the microsoft knowledge base. Whenever you hit one of those wierdo, impossible errors with the useless unrelated error message, you can look it up, and they record the most likely causes, and patches. It would be nice if the same service were available for linux. Searching dejanews and the HOWTO's is OK, but not as efficient.

  213. Copying and Pasting is no good by Seb+C. · · Score: 1

    oh come on, copy/paste is the worst feature ever implemented for any developer...
    It duplicates code !!
    j/k

  214. Re:It doesn't crash 5 times a day by Raistlin99 · · Score: 1

    As far as Windows crashing I can only say that if you were using Win9x for your development you deserved it. WinNT is more stable and is what I use to do my Win32 programming. That way when you make a mistake everything doesn't crumble with bad program

    --
    I/O, I/O, its off to disk I go, with a read and a write, and a bit and a byte, I/O, I/O, I/O, I/O
  215. Development on Linux by Seajosh · · Score: 1
    Personally, I think developing on a Unix-based OS is easier than Windows. I don't want to start an editor war but using the GNU toolkit as an environment beats Visual Studio any day of the week. Emacs has everything Visual Studio has (color syntax support, compilaion, and integrated debugging via GDB, etc.). Gcc, perl, and other tools are also more directed to the development community.

    Also, the development community itself follows more of a traditional scientific community. Ideas and source code is released to the community for peer review; this is a critical element of the scientific process. The end result is that the developer and the consumer end up with better software. From my perspective, the Apache web server is the perfect example of what can happen when everybody works together. Since most Windows software is designed to generate revenue, the ideas and source code are closely guarded secrets and any errors in the software are regarded as hits against profit.

    At this point, you're probably asking, "So what? How does this make development on Linux easier?" A great toolkit combined with an active development community means your problem has probably been solved by someone else. Linux just happens to be the OS these ideas are implemented on. There is nothing intrinsic about Linux that makes it easier for development than, for example, Solaris. It's the people (in this case, the developers) that make a difference. The OS, toolkits, and development environments are (and should be) interchangeable. It's the people and processes that truelly make Linux development a much better platform than Windows. -- Josh

    1. Re:Development on Linux by be-fan · · Score: 2

      There is nothing about Windows that prevents people from sharing code. A Windows developed OSS program is just as free as one developed on Linux. A proprietory Linux program is just as proprietory as one on Windows. However, people who care about Open Source tend to have some religious differences with Bill, or are hard core UNIX nuts. As such, they tend to stay away from Windows.

      --
      A deep unwavering belief is a sure sign you're missing something...
    2. Re:Development on Linux by Seajosh · · Score: 1
      I completely agree - there is nothing that prevents Windows developers from sharing code. However, the current state of affiars is that a very small percentage of Windows software is released under Open Source, GNU Copyleft, or similar licensing models.

      For the record, I am a Windows developer that came from a strong UNIX background. I've seen both sides of the discussion and prefer to use UNIX-based OS's (preferably Solaris) whenever I can. I work on back-end services and I think writing those services is much easier under Solaris than Windows NT.

    3. Re:Development on Linux by be-fan · · Score: 2

      That's why I said that OSS people tend to stay away from Windows. I don't think that this is completely deserved, however. Yea, it's nice if the underlying OS shares your values, but I doubt it is the closed-ness of Windows that keeps OSS people from developing on it. I think it is a general resentment (okay, deep seated hate) of anything having to do with Bill or Microsoft. As for my preference, I can see why you like doing backend services on UNIX. The coordination it has between different programs, and all the glue tools available are quite impressive. I am writing a package manager for BeOS (which looks pretty UNIXish in the root FS layout, the userspace programs, and the POSIX API), and have barely written any custom code, just written glue code to bind stuff together. However, I tend to like doing front-end stuff a lot more (graphics and sound) and thus far Windows (actually DirectX) is unmatched for that.

      --
      A deep unwavering belief is a sure sign you're missing something...
  216. Re:Give Emacs a Chance! by tjwhaynes · · Score: 3

    No you could not add this to emacs as a "trivial hack". No way.

    OOOooo! A CHALLENGE! :-)

    Why? Well, the compiler and the IDE talk to each other in DevStudio. The only way you could really get the same level of functionality in Emacs would be to build the first few stages of the C++ compiler pipeline into it.

    I disagree, but do continue. I'll explain why later.

    If you type:

    "pMyDoc->m_pWindo[tab]" it fills in the rest of the member variable. When you get the m_pWindowList you can type "->Head(" and the little tip window pops up and shows you what the arguments are for the Head method of pMyDoc->m_pWindowList.

    Several options here for the budding Emacs hacker to get going on. For Emacs users already using Imenu and Speedbar, much of the functionality to chase those variables is in there. Spawning either inset windows or new frames in Emacs is not a difficult task. Dynamic or stati c abbreviation expansion can be used to fire up lisp functions as well as complete text, so having a hook run at buffer entry to set up the abbreviation tables is trivial.

    Now, to do that in Emacs you would have to build code to:

    1. Keep track of all temporary variables, their scope, and their type or class
    2. Build tables of all classes and their methods and members, with the class or type of each.

    That's why I noted that with TAGS support, most of the work to implement this hack is done. TAGS databases already include a complete list of structs, variables, functions and other such data. Therefore finding out what the definition contains is not difficult and neither is parsing it. Emacs is good with text :-)

    Cheers,

    Toby Haynes

    --
    Anything I post is strictly my own thoughts and doesn't necessarily have anything to do with the opinions of IBM.
  217. It's all about the APIs by Anonymous Coward · · Score: 1
    Simply put, the reason why I prefer to write apps for Linux than for Win32 is because I prefer GTK+ to the Win32 API.

    For one thing, I can't stand Hungarian notation. :-)

    Most importantly, though, if you don't like one widget set, you can try another. That's just not possible under Windows.

    1. Re:It's all about the APIs by be-fan · · Score: 2

      It is possible under Windows, there are toolkits that wrap the interface (You can even make it look like Motif!) Or you can use something like MFC or OWL instead of Win32. However, toolkits are rarely used because it is more convenient for the user to have all apps look the same. I think this is an important philosophy, because in all truth, the user is more important than the programmer. You only program it once, people have to use it everyday.

      --
      A deep unwavering belief is a sure sign you're missing something...
  218. I do both by DonkPunch · · Score: 2

    Reason 1 for me is portability.

    The GNU compiler is more compliant with standards than VC++ (yes it is, yes it is). I don't feel the constant pressure to use ATL, MFC, and a bunch of platform-specific stuff. I can get my Linux-written code to compile on Windows a lot easier than vice-versa.

    Yes, if you're doing GUI stuff, you're S.O.L. You're S.O.L. if you're doing GUIs on any platform, though. Abstract it from your logic and processing or you'll regret it later.

    Here's a suggestion: Go to Cygwin's site and get their Bash and compiler for Windows. Fire up your favorite text editor and go.

    I do this when I have to write code in Windows. When it comes time to pull the whole thing together, I load the code into VC++ and add the Windows-specific stuff. Works like a charm and I know that my core logic will be portable later.

    --

    Save the whales. Feed the hungry. Free the mallocs.
  219. What windows-comparable IDEs are out there? by illuin · · Score: 1

    Disclaimer: I have just recently started doing serious development for Linux; before that I was a Windows programmer with a distinct preference for Borland tools, such as Delphi and C++ Builder.

    Developing on/for Linux, I appreciate the open source, when there are bugs. I know I can go fix them if I must. But frankly, I would hope this is a rather rare experience, because as I am trying to meet a deadline for work, I don't want to be debugging other people's code! I understand that the situation would be worse if I discovered a closed source library to be broken, my point is just, while open source is definitely an advantange, it is an advantage that is only occasionally useful.

    On the other hand, the IDE is something I use every second I'm programming. I want it to be there, I want it to be powerful. I know it's not really the Linux/Unix way, since you wouldn't typically get to choose your own mix of tools for every step of the process. But it's just so nice to have all the tools you need to go from dev to debug right there. I'm thinking code completion, integrated debugging, context sensitive help, etc, etc.

    My question is: for those of you that prefer IDEs, what Linux IDEs do you use? Are there IDEs out there that are reasonably competitive with, say, C++ Builder?

    -----
    "I want my.... I want my.... I want my IDE"

  220. I actually prefer highly integrated ones. by be-fan · · Score: 2

    I much prefer the highly integrated IDEs for the type of programming that I do. Sure, text mode programming and all that can (at least some people believe that) be more efficiant than an IDE, but it has to be set up right, and switching between programming and debug incurs some overhead. For the graphics stuff (especially with DirectDraw) that I do, I tend to write a small module, then have it crash, fix the bug, recompile, have it crash again, etc. numerous times before it works correctly. For me, it is a tremendous advantage to be able to simply move my mouse to redo the build rather than to switch to a new terminal, hit up bring up the previous command, and then execute my program. Also, VisualStudio offers something that keeps me coming back for more: incremental compiling. If you make a reletivly small change (like one often does in debuging graphics code) it will just change that part and not recompile the whole file, which is much faster. Also, it tends to produce better optimization and support incremental linking (which isn't supported by default in most Linux distro's) which make file size smaller.

    --
    A deep unwavering belief is a sure sign you're missing something...
  221. Re:Give Emacs a Chance! by runswithd6s · · Score: 1
    Not to decry this feature - it's extremely useful - but I do this all the time. With Emacs. Now why use Emacs? ...[snip]...It's this extensibility that makes me realise that I shall never really pick up another editor for anything complex. For all you VI users who are gnashing (sic!) your teeth over this, I use vi as well, but more often than not for simpler editing tasks.

    Turn your browsers to http://www.vim.org if you want an extensible, programmable VI editor. VIM stands for "VI iMproved", and it certainly is. With syntax and keyword highlighting, smart indenting, macros, piping and shell escapes, you've got almost everything you could possibly need in an editor without the overhead of the EmacsOS.

    My personal preference reason for using VI is mode-based editing. It saves my poor pinky fingers from having to camp on the control keys. Even though I understand EmacsOS has a VI emulation mode (it really DOES do everything, including controlling your toaster and microwave), I'd rather use the Real Thing (tm). Since VIM gives me everything I desire from the Emacs programming environment, including a nice X/GTK front-end, I'll be able to avoid having to brush up on my Emacs knowledge for a little longer.

    --
    assert(expired(knowledge)); /* core dump */
  222. Ask the other question too! by Masked+Marauder · · Score: 1
    " Here's question I would like to ask of all the Developer's Studio users...how can you take an existing MFC SDI (single-window) project and convert it to an MDI (multi-window in a single pane) project? If it doesn't involve creating a new project from scratch, I'd be highly surprised. "

    What happens if you want to develop an app that doesn't use a window? One to the thing that bugged me about Windows (3.1, I don't write for Windows any more) is that everthing had to have instances of Windows to work. It was impossible to write a small, lightweight application to do a simple, single task.

  223. Potential resources for development migration by ph51pv · · Score: 1

    There are some useful articles about getting started with development under Linux, as well as useful downloads, at:

    http://www.redhat.com/devnet/

  224. Porting! by bellis · · Score: 1

    - develop on Unix, then porting to other *nixes
    is a breeze. porting to Windows is reasonable.

    - develop on Windows, and porting to anything
    else is major major headache, and usually means
    rewriting from scratch.

    in other words, kill two birds with one stone,
    and develop on a Unix environment first.

  225. I have had the same problem with my KA7 by Anonymous Coward · · Score: 1

    I have had exactly the same problem with my KA7. It is the BIOS boot block that gets corrupted. I took the BIOS chip out and programmed it in another motherboard by hot swapping the chips. To stop this from happening, you can try bending pin 27 (Write Enable) of the BIOS chip so that it does not make contact with the socket, therefore preventing the BIOS chip from receiving an erase command.

  226. Me and my Penguin by connorbd · · Score: 2

    My personal experience, before having read any of the four hundred or so responses already under this thread...

    I learned to program on a Commodore 128, in MSBASIC 7.0, one manifestation of the prototypical policy=implementation environment. It wasn't all that bad (structured programming constructs had been backhacked into the language, but that didn't mean much to a twelve-year-old trying to figure out how to write an operating system in BASIC), but to learn to code on such an environment is very limiting. There is no hand-holding outside the manual, but you can't get lost easily (short of a rogue POKE) so it doesn't matter. It wasn't for a very long time that I understood the benefits of keeping the implementation separate from the environment. This is what has made Unix more successful than many other environments of its generation.

    The beauty of Unix is that implementation doesn't matter -- you have your choice of tools, and you're free to use whatever you're comfortable with. You don't have to write every last piece of code in bash or jump through hoops to do otherwise. Linux goes traditional Unix one better by traditionally offering a far richer development environment than any other system on the market. Not only do you have a solid, time-tested C compiler (gcc), you have any number of other languages like Perl (my personal language of choice), Python, Fortran, etc...

    Another aspect of GUI systems is the IDE. I used to think IDEs were the greatest idea until I switched my Mac environment from Think to CodeWarrior. Now CodeWarrior is pretty damn good, and AppleScripting gives you every bit as much flexibility as shell scripting and then some, but to me it's not particularly obvious how to construct a tool chain in a project build -- there is a learning curve that simply doesn't exist in a traditional shell environment.

    I don't like make(1) very much, I'll admit, but there's a certain simplicity to using componentized tools that just isn't there when you're using modulomonoliths like CodeWarrior or Visual Studio. Fast turnaround tools are much more easily managed under Unix, as well; I don't think I could meet the demands of the constant fine-tuning my current language project requires if I wasn't writing it in Perl (or maybe Python), and as good a tool as MacPerl might be it's still a GUI app.

    So what's so great about Linux? The flexibility. Yes, there's a learning curve. But it's worth it just to not have to worry about the complications involved in managing a full-up project file for a simple program.

    /Brian

  227. Re:Give Emacs a Chance! by Azog · · Score: 2

    Hmmm. Well, I didn't know about TAGS. It sounds like the hard part (equivalent to the first stage of the compiler) is done by TAGS. So maybe with TAGS it would be easy.

    Where can I find out more about TAGS? Does it support Java? (My employer's language of choice)
    Do TAGS automatically update whenever you add or modify members or methods in a class?

    The other thing that is missing (or, maybe not?) from emacs is the good integrated debugger that DevStudio has. Can you do an edit and continue on a running C++ or Java program from inside emacs?

    I hope the answer is yes, but I suspect no. But I was wrong before...

    I suppose I will just have to take the plunge, get a good emacs book, and go from being an emacs user to an emacs expert. Then I'll be able to fix the keyboard commands too. (Ctrl-X, Ctrl-C, Ctrl-V should be cut, copy, paste, dammit! And Ctrl-Z for undo!)

    Anyway, thanks for the info.

    Torrey Hoffman (Azog)

    --
    Torrey Hoffman (Azog)
    "HTML needs a rant tag" - Alan Cox
  228. Advantages developing on Unix/Linux by antv · · Score: 4
    General advantages of Unix are:
    • huge number of free (open-source) software floating around. You don't even need to borrow any code, you could just see how feature X is implemented (for example I remember looking at some Perl code and implementing smth similar in C)
    • open standarts. Practically all kinds of Unix are compatible on source level because of that (POSIX, X libs and everything on top of them, i.e. GTK/QT, etc, is the same on every Unix). You don't have huge number of undocumented (or in most cases in Windows half-documented) APIs
    • Practically all other advantages depends on language you use. Unix have incredibly good set of tools (gcc,make,cvs,gprof,etc). Most of them had been ported to windows as well, I don't have much experience with those ports. However, there are some advantages of Unix system itself:

      • For scripting languages one big advantage is that kernel automatically runs interpreter specified after magic '#!' . That could be a quite helpful if you have a system with many scripts running each other. For example if 25 programs call script X, and you decided to rewrite it, say, in Phyton istead of Perl, you don't need to modify those 25 programs to run Phyton interpreter - you just modify the script.

      • For most shell scripts stuff like /proc filesystem is very useful too - you could extract a lot of information from it.
        Also, windows still lacks many shell utils. Last time I checked, pipes support was horriple - maybe it's changed in W2K, thought

    For C/C++ programmer Unix have even more advantages:

    Unix memory protection mechanisms - superior to anything I've seen. Most problems I have with C/C++ programs (especially raw C) are memory-related. Unix approach is very flexible: when program tries to access wrong address in memory it receives SIGSEGV or SIGBUS and could either intercept it and handle situation by itself or it could just create core dump (I usually trap SIGSEGV to output values of internal vars at the time of crash). Libraries like Electric Fence take advantage of this mechanism too.
    Also, under Unix, application couldn't write in system memory. Under windows it's not supposed to - and as you could easily see none of microsoft's absolutely bug-free applications never ever crash windows, right ?

    Support for debugging, like core dumps and ptrace(). Core dump allows you to save program state at any point, so that you could open it in debugger later. ptrace() allows you to trace process execution - in windows there are mechanisms to do this but all the debuggers I've seen (from SoftIce to TD) use their own functions, which means windows' default interface is almost useless. Also, you could attach your debugger to already running process, this is very usefull when debugging something like server process (in my case Squid proxy 2.3DEVEL3)

    Much better development tools, like gdb and ddd. gdb, for example, is scriptable, you could easily program it to watch when variable changes to a specific value, when it does set temporary breakpoint in a specific function, trace that function until exit, and then if another variable has specific value set another breakpoint. I don't claim to be VC++ guru, but the only way to do it that I know is to press "next" and "step" buttons around 700 times. I tried. VC++ crashed somewhere at 500th.

    DDD (Data Display Debugger) is really just a shell on top of gdb (or dbx or perl debugger). It's tread if you have complex data structures in your program and would like to examine them. DDD allows you to run gdb remotely, for example I ssh'ed to server (SunOS SPARC) from my workstation couple of times to debug a running cache proxy.

    Some of these things could be implemented under windows, but things like watchpoints would require debugger to rewrite parts of OS.

    Tools like gcc and emacs.
    Emacs Is The Olny One True Editor, period !
    Seriously, I never seen any other sools able to do everything emacs can, i.e.:

    • Syntax hiliting, auto ident, parens balancing, and other basic features is of course a requirement, not an optional feature. Unfortunately, I haven't seen any editor yet that has it all in one place, i.e. expression auto-hiliting, identing, coloring, all the advanced search/replace, etc.
    • code navigation, i.e. search any identifier in the whole source tree using tags table, speedbar (tree-like browser of functions, structures, etc) bookmark support, etc.
    • Support for diffs, CVS/RCS, Makefile modes
      Please note that all the features above are supported at least for C/C++, Perl and Java, function navigation also works with List, etc
    • Macros: emacs main advantage. To put it simply, emacs have macros system based on Lisp, powerfull enough to write mailer, news reader, web browser, games like tetris, AIM/ICQ/IRC support, telnet/FTP/ssh support, browsing thru compressed archives, etc

    I've tried windows version of emacs, but they have very limited number of features compared to Unix versions

    As for gcc, it's simply a C/C++/Objective C compiler with support for, if I remember correctly, at least 29 platforms, one of the best optimisers I've ever seen (egcs beats VC++ and Borland on every project I've seen), very powerfull error-detection mechanisms (I always use -Wall -pedantic options, it's way much more picky than either VC++ or Borland CppBuilder, but I never ever seen it bark on something that was not an error)
    gcc is ported to windows, slow, but it's working

    Last, but certainly not the least, user interfaces are better designed. For example, in Unix once you open socket you could use file IO functions like write() to write into it. When I tried to do it on NT I had 2 different results: General Protection Fault and BSOD. Unix system supports some very advanced functions, like for example, locking only certain parts of file (you could lock bytes 30 to 56 in a file, rest of the file is writable). X has very powerful API. One thing I really like is window being able to swallow (capture) another window. That, for instance, allows you to run any X application inside Netscape, provided you have plugin called xswallow. X does more than just windowing, it allows you to create atoms and properties - basically something like windows registry, only transparent thru network. Unix Netscape uses this mechanism to send "remote" commands to it's instance runnings, even if that instance is running on another machine. Similarly, XEmacs uses this interface to to connect to remote emacs process.
    Unix has wide array of GUI toolkits, like Motif/GTK/QT/Tk. Some of them are much easier (for me) to use than MFC. For example GTK's event handling scheme is much better.
    GUI development tools that Unix has look much more appealing to me than their windowsa counterparts. For example Glade - tool that creates GUI interfaces visually. There is a library called libglade that allows you to load Glage project on runtime. That way you could have "pluggable" user interfaces. I have yet to see anything like that for windows.
    Component architecture upon which GNOME is build (CORBA) also seems to be better for me than COM. I'm not a COM expert, but parts of COM design I'm familiar with (for example the "proxy" components needed to marshall request over network) look like a kludge on top of badly designed protocol for me. CORBA is available for windows, but unlike GNOME, which is all based on CORBA, windows is based on COM, so practically you have CORBA and no components for it

    Bottom line: learn every OS you can. Code for Unix - more fun ;-)

    --
    Obama 2012: our incompetent asshole is slightly less of an incompetent asshole than the other incompetent asshole !
  229. Read the source Luke... by Alan · · Score: 1

    Why develop under linux? Or rather, why is it better to develop under?

    Source code.

    Let me steal a story from a co-worker of mine for a few minutes....

    He was a rabid NT developer and had developed an extremely cool SNMP application using some hidden API stuff in windows. This was all done with available debugging tools from MS. Basically MS came to his boss and said "stop this now or we'll sue you". His boss folded and made my co-worker stop coding.

    Now remember, no reverse engineering was done. No kernels were hacked, and no dlls were harmed. He, being a very smart guy, did brilliant code.

    The hidden API in question was available from MS however, and for free. All you had to do was sign up to one of their developer programs, for only $50K/year (or some similar outragious amount), and you get access to all their hidden little things.

    Not long after this he checked out linux. Not only was the entire inards of the system available, but you were *encouraged* to look at it, fix it, comment on it, etc.

    At the Linux World Expo Last February, Linus Torvalds asked the crowd "how many of you have contributed to the Linux kernel?" Quite a few hands were raised. "Now how many of you have contributed to the Windows kernel?" 2 hands were (gingerly) raised. "And that," he said, "is the difference between Windows and Linux." (paraphrased, my appologies Linus.

    So to end my rant, I'd say that the tools in windows are the same, and lets be honest, probably better or more mature (yes, I know, I do my coding with vi and gcc too...) than those in Linux, but the availability of information from the innards of Linux, and the whole open source movement for that matter, is what makes the difference.

  230. one word: money by klingenhoffer · · Score: 1

    As a developer for a decent sized company, I can tell you that we looked into the Linux market but decided against it because it's just plain unprofitable. The fact is, there's no money to be made for companies such as ours on the Linux platform. However, with so many users on the Windows side, if only 5% of our users pay for our software, we've made our money back! Even if it's easier to develop for Linux or BeOS or whatever, it's just not worth the effort.

  231. One non-technical reason... by StevenMaurer · · Score: 1

    A pretty obvious reason for developing on Linux that hasn't been stated yet...

    With M$, you only have a matter of years before they decide your app is
    good enough to plagarize. If your customers still prefer your APP to theirs,
    you can expect the standard application of FUD, marketing muscle, intimidation
    applied to your investors, inhibiting your distribution channels, special
    undocumented OS hooks designed for their latest APP's features, and if you
    still dare to sell a product that is superior to theirs, bundling their
    APP into their OS distribution.

    What I don't understand is why any ISV would EVER design a product for Windows.
    It's like investors have no intelligence whatsoever.

  232. This isn't meant as a troll... by MrScience · · Score: 1

    But I develop in Visual Basic for my full time job. It is increadibly fast to develop, intuitive, and compiles using the C++ 4.0 engine, so it's comparably fast to run as well.

    The reason why I bring this up is, well, moving from SDI to MDI is a matter of two seconds work. Flip MDIChild to True, and add an MDIParent form to your project.

    Why Visual Basic is continuously discounted as a good environment is beyond me. With IntelliSense available, development time is vastly reduced. The only two things I have never been able to do in VB are subclassing external process windows (either by creating a system-wide message hook, or injecting code using remote memory calls), and device drivers.

    Heck, I've even created a multi-threaded owner-drawn ActiveX control without too much trouble. As for the dependancy of a Registry for ActiveX controls... Well... ActiveX runs in Windoze... and Windoze has a registry... so what's your point?


    You should never, never doubt what nobody is sure about.

    --

    You quitting proves that the karma kap worked. The most annoying of the whores shut up. --CmdrTaco

  233. If you have two machines (or vmware), use both. by lostguy · · Score: 1

    I am in the (enviable?) position of designing and developing Java server applications. Because of the nature of Java, I can use whatever platform has the best tool for a particular task, without having to do cross-compilation to another architecture. (Apart from the JVM.)

    For front-end work with a modeller (Together/J) or IDE (VisualAge for Java), I use NT. Both of these products are available for Linux, but the freely available JVMs are either too slow or too flaky for constant use. In addition, the Linux version sometimes lags behind the NT version. (There is no VA/Java for Java 2.) For database interaction, I use TOAD, which is not available on Linux.

    However, I use a Linux box (display exported to the NT box) for all of my debugging. I can tile 12 or more visible xterms in one screen, so I can watch the server output, all of the logfiles (application, servlet engine, web server), system activity (top), test harnesses, and still have screens to do rapid searches through code. Since I host all of the source and class files on a filesystem exported via Samba, all of my data is synchronised.

    Basically, I draw the line as follows: if it uses a GUI, use Windows; if it uses a CLI, use Linux. I duplicate some tools on both environments (EMACS, perl, cygwin on NT; VA/Java, Together/J on Linux), but only for occasional use.

  234. Re:Give Emacs a Chance! by Paul+Komarek · · Score: 1

    I'd like to add:

    1) you can hit tab from anywhere on the line, so you don't have to hop back to the beginning to get proper indentation.

    2) incremental search (ctrl-s). Why isn't this feature in every viewing and editing program in existance? I hate regular search, where you open a new interface, guess at how much of a substring you need, and then hit some wacky key-combo to differentiate between find and 'find next'.

    Just hit ctrl-s to start the search, and start typing. If you make a typo, hit delete and the search will back up to the previous match. Once you've typed in as much as you care to type, if you aren't already at your desired location, hit ctrl-s until you arrive. If you need to search on the same thing again after you've done some editing, hit ctrl-s once to enter the incremental search, and then ctrl-s again to search for the last match.

    3) esc-%, although a pretty bizarre combo, is search-and-replace. It has history for the search and replace terms, which is why I wanted to mention it.

    -Paul Komarek

  235. Re:IDE's a convenient crutch today, a thorn tommor by asciitxt · · Score: 1

    Amen.

    > Now, undoubtably someone will argue that this
    > is doing the hypothetical company and developer
    > a favor, that 30 year old code should be
    > disgarded and rewritten anyway.

    Let me address this. I've had the misfortune of
    having to support old code (around ten years old)
    in many settings for many companies, as have many
    developers at large companies.

    The fact is, managers are often idiots. They will
    not allow a rewrite because deadlines have to be
    met (they never are, because of the vicious cycle
    of fixing crappy code, but that's beside the
    point).

    The result is that poor maintenance developers
    like me have to pay a huge price for the shortcuts
    and laziness of the original developers.

    I have often been forced to modify *generated*
    code, which is in source control, because the
    IDE's are gone or no longer work with the
    generated code. Horrible, I know. Welcome to
    my world.

    The ironic part is that the supposed time savings
    of using wizards, etc., actually leads to massive
    time and productivity losses over the long run.

    The point is that MFC, ATL, and all that other
    auto-generated/wizard-driven junk from Microsoft
    will, in the long run, make even the most simple
    bug fixes a nightmarish headache.

  236. anecdotal story by toaster13 · · Score: 1

    I was under a deadline last year to finish a relatively simple little C program for my business class, so i figured borland C under windows would do just fine. It was to read situations and outcomes from a file and allow someone to make descisions and see what the results were. I wrote a good segment of code (i was hot that day) and ran it with a sample file with only one answer. Oops, forgot to save it. Oh well it'll be fine. Bam! GPF!. Ok, no big deal it just took down my program right? Wrong! There goes a good 30 minutes of quality code right down the drain with the rest of windows. I gave my console the 3 finger salute and waited for the system to come back up. thats when it occured to me to try doing this under linux. I booted into linux, fired up emacs and typed out essentially the same code that I just wrote. I saved it (not like I had a choice to get back to the command line). I compiled it and then ran it. Bamn! Segfault! Oh whats this? My work is still saved? I went right back to the shell? I can just open the file and try again without rebooting? AMAZING!! I saved myself a lot of time by using linux for developing that program. I would have had to reboot windows about 15 times before I found the nasty little pointer that was causing problems. 15 boot ups for windows is about 45 minutes on my computer. 45 minutes would have been wasted. Instead it only wasted about 5 minutes while i played with the code and kept trying it out.

    Thats my 2 cents about linux development

    1. Re:anecdotal story by Ergo2000 · · Score: 1

      There is zero (0) % chance that you were developing under Windows NT, otherwise the stated situation is impossible. Why in the world were you developing under Windows 95/98? Those aren't, nor have they ever been proposed as such, developer operating systems.

      The point is that no developer in their right mind would develop in the fundamentally unstable 16/32 operating systems, so using that as an argument against Windows isn't very credible.

    2. Re:anecdotal story by doobie · · Score: 1

      sounds more like user stupidity, who the hell does something on windows, then doesn't save?!?

  237. Do you want users? by Anonymous Coward · · Score: 1

    It depends on whether you are developing software on your own (in your spare time or in your own business) or in a shop where you work for someone else. Assuming that you are referring to developing your own software for whatever reason, the next question becomes: Do you want users for your software? Let's also assume that you want to develop desktop software, which may or may not involve client/server compontents but which has a nice user interface as well.

    If you want users, stick with Windows. I don't know anybody except geeks who uses Linux for anything but servers. Developing for Linux, you will have a market only of other programmers, sysadmins and IT students. Developing for Windows you will have 90% of the world's computer users as your target audience.

    Developing for Linux, it is very unlikely that your code will get noticed by anybody no matter how good it is or how useful your programs may be for real users. Because most people who use Linux are also programemrs, they will be competing with you and won't be inclined to use yours. Further, the fragmentation of Linux applications on the basis of political correctness regarding various toolkits (Gtk vs. Qt for example) will further reduce your market to those of the appropriate camp. Everything in the Linux world is divided along political lines, from the database you use to the scripting language. With Windows, a consistent user interface and a consistent component model (COM), even with several toolkits available, insures better cooperation between programs, and Windows users don't care what toolkit you use so long as your applications work.

    Non-technical people don't want to use Linix. Even if all major retailers were forbidden from preloading an operating system on new computers and were required to offer customers a choice of operating systems to install and use, 95% of people would still choose Windows, even though they have to pay the Microsoft tax.

    Of course, there will also be an increase in internet appliancs and portable devices. While these will use Linux as the base OS, that won't mean anything to you personally as a developer because Linux will just be used to bootstrap Java, the real OS for such devices. You can develop for Java just as easily with Windows and the toolkits for Java development are much nicer under Windows.

    Where does developing for Linux get you? It might get you name recognition in certain elitist circles which might in turn lead to a good job offer, but I have a feeling many if not most of these Linux startups will collapse and these developers they have been sponsoring will return to systems people want to use. There is little or no chance that the Linux community will change. Elitists have difficulty understanding ordinary users and their needs, and are almost incapapable of developing for such users. If you are being productive with Windows development right now, why give that up? The Linux fad will soon pass but your investment in Windows skills will remain useful in the coming years.

  238. Re:Give Emacs a Chance! by QZS4 · · Score: 1

    ...go from being an emacs user to an emacs expert. Then I'll be able to fix the keyboard commands too. (Ctrl-X, Ctrl-C, Ctrl-V should be cut, copy, paste, dammit! And Ctrl-Z for undo!

    (global-set-key \C-x 'kill-region)
    (global-set-key \C-c 'kill-ring-save)
    (global-set-key \C-v 'yank)
    (global-set-key \C-z 'undo)

    But I find the default keybindings good enough for me (\C-w, \M-w, \C-y, \C-_). Remapping Ctrl-C and Ctrl-X breaks lots of other commands, so I don't recommend doing it.

    OTOH, I always end up remapping Ctrl-A and Ctrl-E in Win apps (where I can), I'm just too used to them.

  239. TextPad by GuardianLion · · Score: 1

    I like TextPad too. I'm writing Perl scripts in Windows and need to know line numbers sometimes. Beats hell out of counting lines in Notepad or trying to wean myself off c and v, which Edit doesn't support.

    CodeWright was nice too, though it liked to crash now and then.

    Doesn't it make you wonder what the MS folks use in-house to edit text? I doubt they're limping along with notepad..

  240. Lot easier to make client/server models with Unix by SOMMS · · Score: 1

    I'm a senior level developer who's done a fair amount of network development in both Windows and Unix environments. I can say first hand that when it comes to building complex client/server (or worse...n-tier) models Unix is much more efficient.

    Bringing up multiple instances (read 64 Meg) of Visual Studio each with its own project or workspace brings the poor little Windows box to its knees. With VS 5 and above you can bring up multiple workspaces with a single instance of VS. In my experience this hampers the development cycle more than helps it as the 'multi-workspace' Visual Studio environment A)gets cluttered B) is hard to debug C) behaves extremly buggy.

    In Unix it's no sweat. Just pull up multiple X terms each with an editor of your choice (nedit, emacs, vi, whatever). You can have one virtual terminal for your clients, one for your servers and your ready to rock. Hang a process? NO PROBLEMO. CTRL-C or KILL -9 (if you background some executabes) and your in the clear. God forbid you should hang a process in VS AND you have multiple workspaces 'alive' within it.

  241. Thanks for the tip...any more? by Filter · · Score: 1

    I love using emacs but there is so much to learn. Does anyone know of a great web site for learning emacs? I think a well built web site that was newbie oriented would do emacs well. I used emacs in school, started working with MS IDE and have forgotten so much of what I knew...

    --

    "better ways of doing things eventually just replace the inferior things" - Linus Torvalds 09-08-07

    1. Re:Thanks for the tip...any more? by tjwhaynes · · Score: 2

      I love using emacs but there is so much to learn. Does anyone know of a great web site for learning emacs? I think a well built web site that was newbie oriented would do emacs well. I used emacs in school, started working with MS IDE and have forgotten so much of what I knew...

      To be honest the best places to pick up hints and tips are the various Emacs newsgroups. There are several experienced Emacs hackers on there who know their stuff and who post lucid and useful answers. Try gnu.emacs.help and comp.emacs for general enquiries, and gnu.emacs.sources is a very useful place to pick up new elisp hot off the press.

      Cheers,

      Toby Haynes

      --
      Anything I post is strictly my own thoughts and doesn't necessarily have anything to do with the opinions of IBM.
  242. Re:Give Emacs a Chance! by tjwhaynes · · Score: 2

    Where can I find out more about TAGS? Does it support Java? (My employer's language of choice).

    TAGS is pretty wide ranging in it's abilities and Java support is somewhere. Ah. Here it is. To create tags for Java, and for Java development under Emacs, take a look at JDE. I've not used it, but it looks pretty wide-ranging. It also features automatic completion of class fields and methods :-)

    Do TAGS automatically update whenever you add or modify members or methods in a class?

    No - they are updated when you run the TAGS utility. If you update the methods/members, it's best to rerun TAGS to tidy up the database. It's often a good idea to run TAGS as part of your makefile so that whatever changes are put into the binary are reflected in the TAGS database.

    The other thing that is missing (or, maybe not?) from emacs is the good integrated debugger that DevStudio has. Can you do an edit and continue on a running C++ or Java program from inside emacs?

    Yes - with GUD (Grand Unified Debugger) under Emacs, you can interface with whatever debugger you feel like, from gdb, xdb, etc.. You can mark lines in the code as breakpoints, view variables, step, next, and so forth inside Emacs, plus issue compile and connect to process calls. I note that JDE also features automatic jump-to-offending-line with compilation issues too.

    After a brief amount of searching, I discovered QuickPeek for Emacs, which works as follows:

    QuickPeek

    Quick peek is a tool that uses a second frame to display context sensitive information about where the cursor is. It wants to be the superior copy of "Intellisense".

    There is a reason that one of the more popular icons for Emacs is a kitchen sink :-)

    Cheers,

    Toby Haynes

    --
    Anything I post is strictly my own thoughts and doesn't necessarily have anything to do with the opinions of IBM.
  243. Hello. Microsoft Tech Support. Can I Scare You? by CyberLife · · Score: 2

    Here is a little story that happened to me a few years back which made me rethink my decision to develop for Windows.

    I was having trouble developing an MFC application. I forget what the actual issue was, but when I called Microsoft's tech support for assistance, I was asked a number of questions about the configuration of my project. One of the things they wanted to know was what options I had chosen in the AppWizard. I told them I didn't use AppWizard because I preferred to code everything by hand. There was a long silence, then the MS representative said, "You can do that?"

    Up until this point I had always believed Microsoft's claims that they put wizards in Developer Studio to remove the tedium of repetitive programming tasks. This incident got me thinking. Why is MS so adamant that people use the wizards that even their tech support doesn't know there's another way?

    Wizards are supposed to be helpers. If you don't feel you need the help and would rather do it yourself, why use them? I learned more about MFC's internals while coding by hand than I'm sure these tech support people even knew.

  244. Re:Borland's VCL IS the way to go... by RobertAG · · Score: 4

    A few years ago I decided to try C++ as a programming language for Windows. Until that point, I had been using Visual Basic to develop in the windows environment (mostly database stuff). Because certain things in VB can only be done by accessing the WinAPI, I decided to investigate the possibility of using C++. Since VB and Visual C++ came from the same company, I thought, their IDEs were probably similiar. I had learned C++ in some college classes on a Solaris Box, so I wasn't too concerned with being overwhelmed.

    Surprise. Surprise. The VC++ IDE was/is NOTHING like VB's. Windows development in VC++ was more primitive. You actually had to define the main window, create it and create the message loop for the program. In all, in order to bring up "Hello World" in a single window you needed several lines of code and about 30 minutes. Over the next few days, I learned a few other things, but was always astonished that it took so much to do so little. Needless to say, I looked to explore other options.

    About this time, Borland released the trial version of C++ Builder. They said that it used the Delphi VCL and IDE. Since my current job at the university included a T3 connection to my computer, it took only a few minutes to download and install.>

    For those of you who've never used C++ Builder, think Visual Basic IDE with C++ syntax. In was able to make that same "Hello World" app in 5 minutes, including compile time. This, I thought to myself, was what M$ should have done. Since that time, I've used C++ builder as much as I could. It's stable and does NOT MARRY ITSELF TO THE OPERATING SYSTEM like all other MS products. If Borland/Inprise ever developed a BASIC version of VCL, I would push my company to switch in a heartbeat.

    Microsoft's products seem to exist to promote themselves, rather than to encourage the programmer. Their documentation in Visual Studio is almost total garbage. I find myself using 3rd party books and tools just so I won't have to deal with it. I've even used the HLP file on Visual Basic version 4 to look up syntax after a similiar MSDN query on Visual Studio kept giving me the wrong answer consistently.

    Regarding programming tools and options for Linux, J++ Builder Foundation a very good tool to use to learn JAVA. Borland/Inprise has a very good history of designing IDEs/GUIs and that much is apparent. The only downside is the sheer size of the APP. You'll need 128MB RAM to run the thing without pounding your disk cache constantly. If you want a good, powerful text editor, use EMACS. If you want a good, simple text editor, use Pico. If you are doing web development and need a server side language, there is a Java plug-in for Apache called JServ. PHP is also a good language, I've recently discovered. Also check out shell scripting. Unlike DOS, The command interpreter in Linux is very sophisticated.

    As a coding environment, Linux offers the best choices and widest variety. Once you start, the thought of going back to Windows will make you ill.

  245. Distributed documentation by _iris · · Score: 1

    I've found over the past 2-3 years (coding under Win 9x/BSD/Linux) that due to the open nature of Unix-like systems, there is more widely available comprehensive help available for these systems.

    Take the World Wide Web for example. When you browse the web for Windows coding help, you run into a lot of stuff like "Making your program minimize to the system tray". Where as browsing for Unix-like coding help, you usually find many organized, simple (ie: all info, no frills), and comprehensive papers. Many of which are FAQs, but are still written almost like a manual. Also, web sites with Windows coding help don't usually talk about what is portable and to what. With Unix-like coding help pages, they almost always site sources and tell where a certain approach is portable and safe.

  246. Development OS is a non-issue by Trollusk · · Score: 1
    The kind of development tools you use are almoost entirely platform-independent. I've developed under Windows using a CVS repository (with command-line client) for version-control, with command-line makefiles, and using vi and emacs for editing. It's perfectly possible to use the MS IDE and compiler, while telling Source Unsafe and the "project" part of the IDE to go fuck off. Especially with some of the very nice third-party editing environments out there (or a well-customized emacs), the experience developing under Windows can approximate that of developing under Unix, if not perfectly, than at least reasonably well.

    MFC? A nightmare on some levels, sure. But if you use the brain-dead Visual Studio wizards to create your MFC project, you deserve the lossage you get. If you actually do that stuff manually, well, you still have to live with MFC, but that takes a lot of the horrible hair off of the development process. Of course, the better way is just to throw MFC away entirely -- nobody holds a gun to your head and forces you to use MFC just because Windows is your development platform. That's a choice made during the design process, and there are plenty of alternatives.

    The Linux development "environment" isn't one single thing, either. There are all sorts of tools and options -- if you don't like some piece of software, you're hardly stuck using it. With the degree of customization available, you can have as Windows-y or as un-Windows-y an experience as you want.

    Most of the posts here are about Linux and Windows as development targets, not development platforms. These are separate issues.

  247. runtime edit and recompile by kip3f · · Score: 1

    Nobody in this thread seems to understand what this poster is saying about VC++. You can edit your C code while debugging, and recompile it, and continue execution. Thats insanely cool. I use emacs myself, but I am in awe of this feature.

    --
    ****Gfx Scrollbar Special case hit!!*****
  248. yes! by Uberminky · · Score: 1

    That very fact (that everything is represented as a file) is the one thing I love the most about Unix programming. I won't pretend to be some crazy hardcore y3wn1X h4X0r or any crap like that. In fact I haven't written any code in Unix in a while. But that is something that I just *love*. You just have to learn the basic read() and write() crap, and you're immediately set to go. You can write sound generation programs, write network software... heck, you can do just about anything!

    --

    The streets shall flow with the blood of the Guberminky.

  249. What CAN'T you do on Windows though? by TimTr · · Score: 1

    I agree that there are many things about the Linux (Unix) style development process that is very appealing compared to Windows. However, I sit at my Windows box with most of these tools working just fine for me. I have the MKS toolkit for instance (and now MSDN members get a nearly equivilant toolkit as part of their CD subscription.) I get bash, gmake, grep and alot of the other necessary tools. First: lets get over the complexities of MFC. Yes, it sucks. Lets move on. Not everyone wrights graphical code and lets be honest here - Unix isn't exactly the best programming envinronment for GUI coding etc. Saying "hey, great, look at all these GUI toolkits you can choose from" seem to imply this has no drawback. Code for one and go somewhere else on the same apaprent platform and you get to learn a new API again. I don't do much GUI coding (mostly CORBA, XML, database, scalability etc) so I won't claim superior knowledge in this but ignoring the complexities involved in the flexibility is to see the day without the night. Next, the issue of Microsoft selling products and inherently making a moving target. I can't believe someone would say this is a negative toward MS. I hate it when MS does this as much as anyone but HELLO! How many times have people in Linux development been asked to DL all the newest libraries, do builds of them, figure out the order and then retest their own build process? Geez, this is BETTER than installing a patch to Visual Studio (which by the way is not a fast moving platform by any stretch for C++ and since Linux doesn't even have VB why complain about VB? - you don't HAVE to use it.) Suffices to say that yes, the Unix tools available on Linux or more consistently maintained, more source is available and the low level API's are better than Microsoft's. But there are significany prices to pay for that too and starting a workspace, copying my projects to work on a new one in VC is kinda nice. And tracking down tabs vs. spaces in a makefile are hell on earth while still trying to make your files look readable. I do both programming frequently as I work for a cross platforms tools company but Windows is pleasant at times after debugging a build process on Linux for a day. ~Tim Triemstra

    --
    Tim T. ... Cupertino, CA
  250. advantages of dev in linux by ormoru · · Score: 1

    Oh.. hang on a sec - you mean.. OTHER than having the source code to everything your working on? hrmm.. as others pointed out: sharing resources, furthering the entire OS through dev work..

  251. Sources too numerous to mention, here are a couple by FreeUser · · Score: 2
    • Security
      • Peer review of code yields more pro-active identification of problems
      • Source availability allows users to create fixes to identified critical security bugs in a more timely manner -- hours rather than days or weeks.
      • A security paradigm which accounts for multiple users and a network connection from the ground up, rather than a kludge tacked on later as an afterthought
      • Well behaved user applications which do not open themselves up to trivial attack by default a la' MS Exchange.
      • User permissions, preventing a user from doing damange to anyone other than themselves should they launch a destructive trojan, or simply run amok deleting everything they can.
      • Kerberos implimentation which doesn't suffer from deliberate attempts to limit interoperability with other systems
      • etc.
    • Robustness (uptimes measurable in years, as opposed to days)
    • Memory management - when programs write to memory which doesn't belong to them they receive faults and are killed, they do not take the entire OS down. This is not true of windows 95 or 98, or NT when running in compatability mode.
    • etc. etc. etc.


    I refer you to an internal Microsoft memo.

    For additional information (there is no shortage on-line, and no reason to belabor the obvious any more here) may I suggest numerous introductory Linux websites, some of which you'll find linked to here and here.
    --
    The Future of Human Evolution: Autonomy
  252. The true reasons to love Linux by PureFiction · · Score: 2

    autoconf automake aclocal gcc beowulf/clustering portable tools (for unix) CORBA - ACE+TAO, ORBit, MICO DB's - PostgreSQL, mySQL, Oracle, ... Apache Modules + LibGimp bash make i could go on.. but its time to go back to work..

  253. Space allocation by redhog · · Score: 2

    There is one thing that all the GUI libraries for UNIX (Gtk, Qt, Xt, Fltk, etc) do better than the windows GUI for the coder - all space allocation for widgets (Sizing and positioning) is done automatically. In windows, you can only place widgets (buttons, text inputs etc) on coordinates. If you want resizable windows, you must code the resizing/moving of the widgets in the window by yourself (At least, so it was in VB. And I can't imagine why they would have it like that in VB if it's not because of the underlaying GUI tookit). This is one reason programming GUI apps under UNIX is much easier, even if you don't use a GUI-drawing tool (Like GLADE).

    All together, what makes UNIX more apreciating as a programmer is that a lot of things are abstracted away. You have device files to manipulate devices. Thus, you don't have to learn how each device or device API works. They are all the same.
    --The knowledge that you are an idiot, is what distinguishes you from one.

    --
    --The knowledge that you are an idiot, is what distinguishes you from one.
  254. Re:Give Emacs a Chance! by Nagash · · Score: 2

    TAGS does not take into account local variables and scope. It also does not give help on function definitions and has limited functionality, however search and replace across multiple files is very nice. Also, C mode (I think) uses regular expressions to skip forward and back statements so it makes mistakes and can be annoying. It does block traversing quite well.

    I'm working on an extension to C mode to fix this. TAGS is pretty good, but it misses some potentially important things. Of course,it is quite fast, which is advantageous but it is not something that Emacs itself runs. It is a shell command. Anyway, I finished most of the parser this morning, so I'll be testing it later.

    However, some of the features you mentioned have the real potential to be intrusive. Popping up new frames can be very distracting. However, the echo area is quite restrictive, so ehn, whaddya gonna do? =)

    Woz

  255. In defense of Windows by Ergo2000 · · Score: 2
    Just a couple of 'quick' notes regarding developing under Windows (notably Windows NT and 2000 : NO ONE would develop under the 16/32 OS' unless they were idiotic or insane) lest the tide get a little unbalanced based on misunderstandings or outright lies:

    • Windows has excellent source control products. Visual SourceSafe for instance will hold ground against any UNIX competitor, yet most UNIX competitors are also available for Windows with comparable feature sets. As a sidenote SS 2000 should be a great improvement as it'll be a true C/S database architecture rather than the current file based database which does have scalability limits.
    • Many Windows compilers (i.e. VC++) produce optimal code that is second to none
    • Windows has a wide variety of extremely good editors (the Visual C++ IDE stands out as exemplary. It is by no means perfect but it proves a very good companion), and simultaneously has all of the editors of the UNIX/Linux world. Emacs, vi, if you want it you can get it, and the command line is just the same when running these tools. Open source is still open source if you want to use it to make a Windows binary and plenty have done just that. All of the utilities (find, grep) etc are easily found and have been available (for free) for years.
    • Windows has excellent stability, contrary to claims otherwise here. Unless you're running with crappy video drivers and are exploiting GUI features that bring out the worst, you're likely to never have to reboot your PC. I go weeks between reboots and I work my machine as hard or harder than anyone else.
    • YOU DON'T HAVE TO PROGRAM USING THE MFC TO PROGRAM FOR WINDOWS! Indeed you can use the Standard C library and use streams and printfs in a console app if you really want! Comparisons that claim that they went from the MFC to console standard library calls in Linux and love the newfound simplicity are ABSURD and represent pure ignorance. Even if you want a GUI you don't have to use the MFC : Use the ATL, or better yet stick to the Win32 API and your own code. I continue to do this to great effect with all my own message handling and class hierarchies and it works great. People who can't get a grasp of the MFC and use this against Windows programming are idiots, to put it mildly.
    • Windows APIs have extremely good documentation. The MSDN is an unparalleled piece of documentation, and anything you'll want to do, in the vast majority of cases, is covered in the documentation. People who like to "Scratch their itch" by looking at the OS source code don't understand the concept of black box programming and that whole theory should be understood a little better ("here's my new program, oh and here's my modified distro of Linux to be able to run my program"). It's also dubious that people can just take a peek at the OS source code, hundreds of thousands of lines of highly related and counterbalanced code, and quickly see the fault. That is absurd.

    I have no doubt that a lot of developers love Linux and for good reason, however the absurd and misdirected claims that I've seen in here, particularly claims of a nature that make it obvious that the person has no professional development knowledge (i.e. probably jump into vi and spit out a hello world app every couple of months and call themselves a programmer), have no purpose in factual discussions. That sort of nonsense serves no one except for their myopic, cultish obsessives who feel that a lie is acceptable if it follows what they consider to be moral.

  256. Not much there by alacrityfitzhugh · · Score: 1

    No File access comparable to ADO (OLE DB). No built in sound support. No built in MAPI libraries. No built-in IP libraries. No Built in Networking libraries. No built-in graphics libraries. In short, if you are coding for Linux you have to buy a lot of code libraries from a lot of third parties.(If you don't know, let me tell you, that can mean nightmares.) In Windows you them all free. Built-in.

  257. oops... by Malc · · Score: 2

    That should have just been M-/ (C-M-/ is a pain IMHO)

  258. But can you SELL anything you write for Linux? by muymalogato · · Score: 1

    OK, I buy the argument that if you're developing for Windows, use Windows, and if you're developing for Linux, use Linux. So you're an ISV - you have decided that your organization will write programs and sell them. NOW why would you develop on Linux? Correct me if I've suddenly gone all loony, but is there anyone on the planet that's actually MAKING any MONEY by SELLING applications or even tools that work on Linux? The early adopters (Corel, Oracle) aren't making any money SELLING software for Linux. Is anyone? Can anyone? Or is Linux all about "write everything yourself that you can't get for free"? Because if it is, isn't it doomed to financial failure as a platform, regardless of how "cool" it is?

    --
    - i got yer sig *raht heah* -
  259. What I like about Linux/UNIX development... by kill+-9+$$ · · Score: 1

    First off it just seems to be a natural fit as many have said. Whenever I develop in UNIX/Linux, I can't help but feel that it built with the developer in mind.

    Second the system comes with compliers and vast assortments of libraries at my disposal at install time. I don't need to install/configure anything else to get my development environment up and running...

    Third, the tools. awk, sed, grep, perl, cut, etc. and regular expressions in general are great for quickly modifying existing source, test, configuration, data, etc. files. Also, tools like truss (Solaris) or strace (Linux) are extremely useful in a pinch where one might not have a debuggable executable to work with in an IDE to figure out what went wrong. Also, when a production piece of software goes awry, you might not be able to recreate the bug, but these utilities (at least truss, only used strace a couple times) will tell you what your process is doing at that moment. I'm sure there are other's I have yet to discover.

    Fourth, I like the notion that crashing my application won't necessarilly take out my entire OS. I've crashed Win32 OS's with program bugs a lot easier than I've ever crashed a UNIX box. (which to date is never, but I know it can be done)

    Fifth, Linux and some other UNIX systems are open source. If you are trying to mimic part of the behavior of a program its nice to be able to see the source. Two examples, the other day I was trying to find out where the ps command got some data... I could look at the source. Today, I want write a utility to retrieve my corporate Outlook e-mail by mimicing Outlook. (due to configuration stuff, fetchmail with NTLM support doesn't cut it) Guess how far I got on that quest.

    I mean its always going to be different strokes for different folks, but I'd been searching for a better development environment for years because Windows and DOS just never really felt right. After using Linux for a week, it fit like a glove and haven't really continued my quest since.

    --

    -- A computer without COBOL and Fortran is like a piece of chocolate cake without ketchup and mustard
  260. Yay! DLL hell truly is a hell, even for J.Office by Bake · · Score: 1

    in our office we installed the latest and greatest anti-virus suite on our machines and after that ms office decided to stop working. This even happened with w2k (which as we all know according to microcrap should be immune to dll hell;)

    But.. this meant 1/2 day's worth of work down the drain.

  261. SDI to MDI is easy under MFC! by NaughtyEddie · · Score: 1
    Try reading some of the excellent MFC books out there; "Programming Windows 95 using MFC" springs to mind. If your SDI program is properly written, it is a 2-line change to make it an MDI application. Trust me, I have done it. You just have to know MFC : most people who moan about MFC being hard are just lazy fuckers who think MFC means the Wizard writes the program for you. If you don't take the time to understand the Wizard's code, you're asking for trouble.

    But, really, this is like asking how do you change a single-threaded program into a multi-threaded program. If you designed it with multi-threading as a possible future, it's zero work : just add locks where your dummy locks are. If you slacked and never considered the need to lock your data, you've got a ton of work ahead.

    --

    --
    It's a .88 magnum -- it goes through schools.
    -- Danny Vermin
  262. Does it matter? by Troy2000 · · Score: 1

    I do all of my programming in Win32. The only reason I *ever* would be interested in programming under linux is because it doesn't crash and I would save a fair amount of rebooting and waiting time. Advantage: linux.

    Source Control? I don't care, I work by myself. Advantage: none.

    IDE? I have MSVC absolutely memorized. I never touch the mouse, and moving to something like.. well.. anything else.. would be a waste of time because there is nothing I feel like I need my IDE to do that MSVC doesnt. Advantage: MSVC.

    Debugger? This has always been a joke of an issue. There is no debugger/ide combo on linux (that I'm aware of) that works as well as MSVC. Honestly, I'd say the MSVC debugger is the most impressive piece of software Microsoft has ever done. Advantage: MSVC.

    Libraries/Support? I make it a point to use as few libraries/outside code as possible. And when I do, I put an abstraction layer between it and my code so that when it comes time to port to another platform, I'm not left staring at 10,000 TreeView_Message() calls that need to be rewritten. Advantage: none.

    There *IS* more free code available on linux - but if I just want to look at it I can do that in windows. If I want to use it, well then I'm screwed - but I tend not to use other people's code anyway so its not a big issue. Advantage: none.

    MSVC is the right environment for me - but whats best for me isn't best for everyone, obviously.

    If someone is comfortable developing on something other than linux, and their job or their interests don't direct them to switch over - they shouldn't. By the same token if someone IS comfortable developing on linux, and their job or their interests don't direct them to switch to something else, they shouldn't switch either. I guess my point is: We don't all have to use the same development environment - so why be concerned about it? Because its fun to get into Emacs debates? =)

    1. Re:Does it matter? by Ergo2000 · · Score: 1

      Source Control? I don't care, I work by myself. Advantage: none.

      Source control is only partly about working with other people. It's mostly about maintaining a history of your code to easily determine what changed between versions and to back up screwups. I check in code several times a day (including textual descriptions of the changes I have made/are making) and it is absolutely invaluable. It's definitely far superior to maintaining a directory structure of 500 variants of a project's source.

    2. Re:Does it matter? by Troy2000 · · Score: 1

      Something about using a source control system when you're the only person on the project seems.. really freaking weird.

      I maked zipped archives of my source tree every few weeks for backup purposes, and on *very* rare occasions I go back in to look at some code that I'd gotten rid of. I don't have multiple versions of my software so managing source tree versions isn't important. oh well =)

  263. Re:Give Emacs a Chance! by ckaminski · · Score: 1

    http://www.identicalsoftware.com/xwpe/

    Not exactly an MSVS replacement, but not all that bad of a tool.

  264. Stability. by skabb · · Score: 1

    Being able to come back to the same setup of xterms, emacs-windows, day after day, month after month, have all the code in the editor's buffer, knowing that the only thing that will destroy the setup is a failure in my company's UPS's just makes it worth it... No blue screen and booting..., it just works, no interrupts in the workflow, no illegal operation that forces me to wait for the disks to spin up again, ... how many of your windows coders know exactly the checksum of your bios that is printed each time your box is rebooted?, my last uptime before upgrading the kernel was about 120 days... it takes time to set up those terms exactly where I'm used to, but I know they will be standing there the next day, and the next day, and the next day... I can consentrate on coding, not reinstall windows every time it begins to be unstable for unknown reasons... no need to reboot because I installed some new software... IMHO.

  265. Application? by Adam+Wiggins · · Score: 2

    There are different tools available for each platform. Many are available for just one but not the other; in most cases I think that the UNIX tools are more powerful and more flexible in the long run, but it takes at least a year or two of using them before that becomes clear. So I won't bother to cover these, because it's not going to convince anyone except those already "in the know".

    Instead I'm going to ask what your application is. I have used both Windows and Linux to develop commercial games for many years. In this area, Linux has a clear superiority, largely because games are such unstable beasts. One can develop a 'typical' user app on Windows without needing to reboot but perhaps once or twice a day, which is perfectly workable. Doing games, I have found that up to 50 (yes, really, I have counted) reboots a day are necessary. At one place I worked I had two computers so that I could work while the other one rebooted, just so that I wouldn't loose so much productivity. (A lot of the blame here lies with DirectX - if you are developing OpenGL on NT 3.5 or 4.0 this is much less of an issue. I have heard that Windows 2000 is similarly usable.) FWIW, writing cross-platform game code is quite easy these days. Most of the games I have worked on in the last three years have run, and been developed, on both Windows and Linux, but have a completely different release target (including Dreamcast, PSX2, and an arcade game).

    Another application I have tackled professionaly is enterprise-level servers. Here is an area where UNIX development is a clear win; there are thousands of small server-oriented tools at your disposal that cut your workload by an order of magnitude. TCP wrappers are absolutely *wonderful*, for example - I spent over a week writing code for NT that is entirely handled by TCP wrappers on UNIX. Other major headaches on NT, such as the poor multiprocessor support (running lots of threads pegs CPU #1 at 100%, while CPU #2 hovers just below 30%) and the slow filesystem (perhaps it's the SCSI drivers that are slow, I dunno) make it almost unusable not only as a *target* for high-end servers, but also as a development platform.

    When it comes to 'typical' end-user apps, like ICQ clients, word processors, or spreadsheets - I think the difference between the two platforms comes down to personal preference. The tools available on both are perfectly sufficient for this kind of development work, although each developer is likely to have their own preferences.
    UI stuff is about the same - writing down-to-the-metal WIN32 code is just as horrible as writing down-to-the-metal X (or even Motif) code. All sane developers use encaspulation (either their own company's classes, or a 3rd party library such as Qt) to hide the ugly implemention details anyways. So in this case, any convincing that you do will be purely an "expand your geek power!" type of argument, rather than a practical double-your-productivity kind of argument.

  266. OO design... Rake's progress by BluedemonX · · Score: 1

    Keep in mind, while we're bashing MFC and talking about object orientation, that MFC is NOT properly OO designed.

    Microsoft actually inform its inner circle that yes, the proper thing to do in its framework design would have been to use inheritance and virtual functions, etc... but instead, it found that its code was faster when using MESSAGE MAPS and MACROS instead.

    So guess what - the novice programmer, having been lured in by the gateway drug of Visual Basic (the "Lego" of Windows programming - just drag the BUTTON onto the FORM and double click on it to get the "Button Click" function) just sees MFC "classes" as the equivalent to those little thingies you drag and drop on Forms, only you use the ClassWizard instead of the GUI to do it.

    MFC courses and books teach you just enough C++ to know that you use the class name as a type

    CMFCClass theClass;

    and dot notation to use functions therein

    theClass.doSomething();

    And here endeth the C++ lesson.

    The tools are good to get people productive when doing repetitive tasks, but when used instead of understanding of how things work, trouble's a brewin.

    --

    --- Jump!! Fire!! Bullet time!! - Lego version of the Matrix
  267. I prefer to make money by Anonymous Coward · · Score: 1

    For me the question isn't which I enjoy more or less. I enjoy not working at all. So, its about getting the most money with the least effort. As I see the salary offers NT development is clearly where the most money is for the least effort (for me anyway). I know NT. I understand the way MS works. If you understand MS and pay attention to their white papers you can avoid some of the "surprises" I hear devs complain about. But Linux is owned by who? Who decides to change things? That bothers me. But again it really just comes down to $.

  268. *code generators* are bad for code maintainance by BeerBaron · · Score: 2

    I think too many people are confusing IDEs with code generators. An "Integrated Development Environment" does not necessarily mean visual programming or code generation. Emacs, with proper modes turned on, is an IDE. Used simply for placing editing/compiling/debugging into one frame, IDEs can be wonderful time savers. I loved MSVC++ for this..who can argue with a debugger that visually allows you to step backwards in code!

    The BeerBaron

  269. Re:Give Emacs a Chance! by 10am-bedtime · · Score: 1

    silly emacser, check out the semantic bovinator by eric ludlum.

  270. GNU locate's plenty portable. by cduffy · · Score: 1

    You can compile the GNU fileutils, including locate, pretty much wherever you want.

  271. Re:Give Emacs a Chance! by Tiny+Elvis · · Score: 2

    >I want an editor that uses Alt- keys, not "Ctrl-X Ctrl-that Meta-x foo" for everything. Not sure I understand this; how is Alt-f (for example) better than Ctrl-f? Sure emacs has a lot of ctrl key commands, but I don't see any way around this. You can either map all the commands to mouse clicks or keystrokes (or both) ; and since there are only so many keys available, some key sequences tend to get lengthy. Emacs is my favorite editor -- I don't think you can give it a fair evaluation after a single month of use. I have had 30 files open in emacs for monthes at a time before; I can't remember the last time I had emacs crash on me. I used to get multiple Visual Studio crashes PER DAY back when I used it a few years ago. Sucks ass when the program I am debugging crashes the debugger and the whole OS too! BTW Most Windows programs I use require several Alt keystrokes in a row to do menu functions, too.

  272. Java? by skozee · · Score: 1

    I agree that it might be good for C and C++, but when you start using Java, the Windows tools aren't matched yet. Even with C and C++, the Microsoft candy might make it more enjoyable.

    --
    http://www.logient.com
  273. Yup -- intentionally. by cduffy · · Score: 1

    But not because MS's GUI is considered to be the be-all and end-all.

    Rather, because the lead developer of GNOME (at least) has publicly acknowledged that he's no good at GUI design and would rather spend his time putting together a high quality, well-designed system underneath.
    (Say, who was that that said something 'bout this stuff being "hacks"?

  274. Development environments by Yohimbe · · Score: 1
    Cushy integrated devel enviroments like Visual Studio and the like encourage lazy thinking, burying functionality behind buttons.

    The whole unix mindset of small tools strung together with pipes encourages modular functionality oriented thinking. If your software has to work right command line, reading from a pipe, you have to have the base functionality correct. So its very difficult to get lazy and forget to make the real functions of the system robust, while you play with user interface.

    By far the most stable user mode software I have ever used always seems to come from a command line style core and a gui or admin interface built on top of it. Instead of gui first and function second. There's a reason why the visual programming CASE tools never really caught on.

    --
    -- Perl Hack, Web Hack, SQL Hack, Guitar Hack
  275. GDB! by warrior · · Score: 1

    While MS VS is nice, I find that I can be much more productive using the command line debugger, gdb, no pointing and clicking and waiting for the UI to reconfigure itself into "debug" mode. Once you know the commands, you can become extremely efficient at debugging your code (Of course, the best method would be to not write buggy code to begin with, but it happens). I should also mention at this point that my favorite editor is vim. To me, the 1-2 punch of gcc and gdb make development under linux ideal. Also, vim is a very elegant text editor that makes creating/modifying code very easy/quick to do.

    Mike

    Note: no vi/emacs wars, here, please, they are both excellent editors, I think preference is based on whichever one you learned first =)

    --
    Intel transfer the difficult from Hadware to software, for get more power, programmer need more technology. -- chinaitn
  276. Re:Ack MSVC. Terrible proggy by spectecjr · · Score: 2

    . Example:- MSVC server cgi dll = 115k (prints hello world) apache server cgi exec. = 5k (prints hello world) Need I say any more...

    Try cracking your project file open and taking OUT all the DLLs - like winspool, GDI, etc etc. Only link to msvcrt.dll - and change linker alignment to /ALIGN:16

    You'll find - lo and behold - that all of a sudden, your HELLO WORLD becomes about 2K long (give or take).

    Simon

    --
    Coming soon - pyrogyra
  277. Small schools all the way! by rhinoX · · Score: 1


    I know exactly what you mean. I attended a couple of classes at UH, and was not at all impressed. I've since transferred to SFA (Nacogdoches, TX) and have been much more satisfied the the curriculum, and quality of education.

    I think that a lot of the larger schools take the easy route because there are just too many students for them to keep up with, whereas SFA has less than 200 CS students - which means if you have questions, a professor will be available.

    That, and I got a sweet job with Iomega here.

    --
    The copper bosses killed you, Joe. 'I never died', said he.
  278. Re:Parallels between MS App Studio and "Titanic".. by spectecjr · · Score: 2

    With app studio you get huge apps that take up lots of resources. Titanic was a huge ship that took a lot of resources. Did you see all the coal in the engine room?

    Apps on Windows are not properly protected from each other; any app can crash the whole system. Titanic's bulkheads were too short to keep the ship from sinking when one compartment got flooded.

    C programming under windows requires those near, far where are my variables stuff. Titanic... "...near, far, wherever you are...".

    More...???


    Well, given that apparently the last time you touched Windows you were programming it under Windows 3.1, no thanks.

    NEAR/FAR - went with Win3.1 & DOS. GONE. FINITO.

    Windows app protection : across the board in 95/98, and NT/2000 unless it crashes the 98/95 kernel or uses 16bit drivers. In NT/2000, all apps are protected from one another.

    App studio creates "huge apps with lots of resources". Only if you use the default settings, in which case, it's YOUR fault. Change them. Don't be afraid - it works just like under UNIX.

    Switch to a frickin' MAKEFILE if you have to.

    Simon

    --
    Coming soon - pyrogyra
  279. Re:love them structs/hate callbacks by spectecjr · · Score: 2

    Functions are functions and you call them directly - after you fill out a few strucs - if you want to do something. MFC seems less a part of the c standard - too many callbacks (yech! c was not meant for this!) and levels of abstraction.

    If C wasn't meant for callbacks, why did they bother putting function pointers in the language?

    Clue: Sometimes a function pointer can be orders of magnitude more efficient than a switch statement. And when you have to do direct binding, nothing else will do.

    Simon

    --
    Coming soon - pyrogyra
  280. Re:Sources too numerous to mention, here are a cou by spectecjr · · Score: 1

    Gee, I guess you've not used NT have you?

    Simon

    --
    Coming soon - pyrogyra
  281. The Art of Coding by AfroNinja · · Score: 1

    Yes, Vriginia, there is an art to coding. Yes, it is possible to produce beautiful code under Windows (Quake 3 anyone?), but the crucial difference, I think, lies in the availability of the IDE, language, and supporting bells and whistles used to develop programs.

    Windows Programming
    It is pretty easy to write a program. You can attach bits of code to shiny little buttons that say "Hello World!" a thousand different ways. However, Microsoft's desire to generate computers that trained monkeys can operate means that their development tools, regrettably best-suited to working on the Win32 platform, are similarly dumbed-down.
    This doesn't mean that one has to create sloppy code or bug-filled programs, but Visual Studio and its ilk just make it easier to do so.

    Linux
    For the programming novice, Linux is a nightmare. There's no real way to read the "user's manual" and jump right into coding. Yes, the manuals are all there, and there's plenty of reference information, but for the trained-monkey set, they are too difficult to find. Coding in Linux conforms to standards (such as they are) and forces that programmers learn to effectively use those standards in writing their programs. The lazy programmer cannot function in the same way in a Linux environment without being forced to evolve and learn how to code like a real programmer.

    In short ... Windows caters to lazy programmers and psuedo-programmers who wish to learn as they go, while Linux requires that one learn how to do things by the book.
    I'll take Linux any day.
    AfroNinja

    --
    AfroNinja
  282. I wish this were true . . . by White+Shadow · · Score: 1

    Pretty much, coding in Linux is coding just like you learned it in school.

    Well, unfortunately many schools (like my school) are moving away from this and teaching people how to program in Visual Studio. All the labs here run Visual Studio on Windows NT and as students, you are either expected to purchase Visual Studio or do all your work in the labs. While many assignments can be done just as well on linux machines (MFC has finally been completely removed from the required core classes), when turning in assignments, professors expect a project/workspace file.

    (what's the real point of this comment? don't go to Miami of Ohio for a CS degree)

  283. Ya see , that is the problem .... by squireson · · Score: 1

    That is the problem with most CS programs now , they fail to register a basic truth about programming : Once you learn to program ( really OOP ) then it's easy to tack on any additional language later . Programming is a skill , a way of thinking and creating that is ( mostly )independent of indiviual language syntax . My father ( like many father's do ) had a great thing to say on this subject . He has forgotten 75% of the details that he learned in Vet school ( they dont' come up often enough ) but he recognizes that there is a detail he needs to chase down and he remembers where to look when he needs them . What Vet school was invaluable at was drilling into him the methods and practices that he uses every day without thinking about it . The 'understanding' and familiarity with medicine/phisiology is what sets him above technicians . Similarly there is a big difference in the understanding of programming from someone who is allowed to peruse the libraries that are being used and someone who just let's a developement tool create binaries for them . Note: there is a big difference in the way I thought when I did F77 and the way I think while programming OOP . But once inside of Object oriented thinking differences between languages are just so many details . I have the refernce manuals and they speed me up .

  284. One reason and one question by null_session · · Score: 1

    First, the reason: Quality of the compiled app. For a quick test, I compiled the following in both Linux and NT, using the most common tools (VC++ 6.0 and gcc)

    #include stdio.h
    int main()
    {
    printf("Hello World!\n");
    return 0;
    }

    Under gcc/linux, this compiled to roughly 11k

    Under VC++6/NT, this compiled to roughly 115k
    I don't think I need to add much more to that.


    Now for my question: What's wrong with middleware? I don't like MS either, but personally I'd rather develop in PureJava and allow people to make their own OS choice. I'm not going to start ramming an OS down anyone's throat, I'd rather see people free to make their own decision.

  285. The key word is portability ... by srealm · · Score: 1

    I am even currently working on a project that has to work on Windows, and various UNIX flavours, not to mention any other OS I can compile the damn thing on. I say give me linux any day.

    First, the standard automake/autoconf tools make compiler options, compatability, and essentially, making the code portable under different environments a breeze, AS WELL as checking for dependancies, which MSVCPP has no way of doing until after you've started the compile process, and assuming you dont include any extra 'library includes', it wont warn you about the missing sections until the link phase, quite annoying.

    Second, All the code is plane text, plane C or C++, no ombufscated visual C++ code to essentially make the code unreadable and unmaintainable. Its clear to see what it does.

    Third, GCC is a hell of alot more robust than MSVCPP. Granted, i've only used 5.0, but my project has already surpassed the point where MSVCPP cant handle it anymore, and gets an internal compiler error, when borland C++ and gcc have absolutely no problems with it and compile it happily.

    Fourth, UNIX C and C++ tends to be very standard, and even when they expand on standards, they usually leave the standard calls alone. MSVCPP tends to want to create their own standard, and only actually compile in a standardized fassion kicking and screaming.

    Personally, I dont need a fancy IDE to do my development, its, as the programmer in question called, 'fluff, scenery', and not nessicary to program with. MFC is more trouble than its worth, and encourages bad coding styles, and the UNIX OS's are much more stable any day. As other people have mentioned, more often than not, when coding, it was the instability of the OS than the code that caused a problem. Not to mention that I can recover from my code crashing on UNIX a HELL of alot easier than windows -- can we say 'General Protection Fault'?

  286. Re:IDE's a convenient crutch today, a thorn tommor by fleagal · · Score: 1

    In our source tree we have all of MSVC 6.0. It's not the most elegant solution, but if you've got the source, you've got the IDE. Of course... We don't use the IDE for building daily builds...

  287. Funny you should ask... by Phil+Goetz · · Score: 1

    I've spent the last week cursing Windows as I
    try to get a Solaris (Unix) Java/C program to
    work properly on Windows NT 4.

    The program needs a 300M datafile. I ftp that
    over, unzip it, and run the program. The
    computer thrashes. There is no "renice" command
    to lower the priority of the backgrounded program
    to, say, something low enough that I could type a
    letter and have it appear on the screen less
    than a minute later.

    The code was written to work on a Pentium I
    with around 32M RAM; I have a Pentium II with
    256M. I check the system RAM. I have 60M
    in use, 270M being swapped to disk, and 200M
    of empty RAM. 24M out of the system kernel's
    29M is paged out to disk. I can hear the
    disk drive churning continuously as it swaps,
    and I have 200M of free RAM.

    The program crashes. I try to figure out how
    to tell Windows to use my RAM. I know! I reduce
    the size of my swap file, from 272M to 10M.
    I reboot Windows. I open up a couple of
    apps, and it refuses to open any more.
    I get an error message: I have run out of
    swap space. I have 220M of unused RAM,
    but Windows would rather use swap.

    Postmortem shows one byte somewhere in my
    300M file is garbled. I ftp it over again,
    unzip, and diff with previous version. Identical.
    Bug is in ftp or WinZip.

    No problem. I can edit by hand.
    I make a big swap file again and reboot.
    I try loading the text file, and discover that
    Notepad and Wordpad can't open a file larger
    than the physical memory.
    I try with Word. It opens! I try searching for
    the bad line. The machine thrashes.
    I check system memory. Word has devoted 5M
    of RAM to my 300M file, and is swapping
    everything beyond that to and from disk as it
    searches through the file. I have 200M of
    empty RAM. I download Uuedit. Same problem.

    I think of splitting the big file up into
    pieces, editing, and rejoining.
    On Unix this would take one command each for
    splitting and rejoining.
    Under Windows I need to write my own C programs
    to do it. I don't.

    I go to a more powerful computer that sits empty
    in a neighboring office with the idea that I
    will run the program on it. When working with
    SGI boxes, I would often log in to a more
    powerful machine, from my desk, and then
    change directory to my home directory (NFS
    mounted) and run a CPU-sucking program.
    But Windows NT does not have remote login.
    Environment variables are hidden somewhere in
    the OS and in my project files, which will work
    only on my machine, so I can't log on to the
    other machine, run my .login shell script
    to initialize any environment variables not
    already on the command line, and run the program.
    I can't even read my email from another
    machine on the same network, which I don't
    understand, since there is filesharing.
    I briefly study the problem of
    moving everything over to this computer,
    changing the Windows environment settings,
    and decide not to do that either.

    Other things I have done today:
    - Try to find line of source code somewhere in
    a project using both C and Java. With Linux
    this would look something like:
    grep "line of text" *.java *.c *.h
    With Windows I open the "find" program,
    and click and click and click and click
    until I find the right directory (the one
    I would be IN if I had a command line).
    There is no way to specify both C files and
    Java files, so I must search all files under
    directory, including the 300M text file.
    Which I know better than to try.
    Instead must do separate searches for *.c,
    *.c++, *.h. *.java files. Many many clicks.
    My wrist hurts.

    - Look up documentation on "fopen". Under
    Unix: man fopen, instantaneous response.
    Under Windows: Pay Microsoft $1000 or so.
    Click on MSDev Library. Wait about 20 seconds
    while Windows swaps things out of RAM to avoid
    having to touch any of my free 200M. Do a
    search of fopen. Wait another 20 seconds while
    it does a search (why is it searching? why
    doesn't it have a database? I asked it to make
    one when I installed it!). Finally see docs
    for fopen.

    - Tried organizing my Java files sensibly,
    which means putting the Java source all under
    one directory. But the GUI editor I am using,
    JBuilder, sets the default directory to be that
    in which the source code for your main function
    is. I have to move everything back because it
    is impossible to tell the GUI environment that
    I want my data in one directory and my Java source
    in another. This is a JBuilder problem, but it
    is typical of what you have to do to keep GUI
    tools happy. I am just lucky that JBuilder
    stores its project files as text; otherwise I
    would have had to scrap them.

    - Tried to find an important email that I knew
    I had received within the last week. On Unix,
    would be: forall ~/Mail grep "ATMSDI" (forall
    being a shell script I wrote using find to
    iterate over files below a directory).
    On Windows: Spend half an hour clicking through
    my Outlook Express folders looking for it.
    Click through every single folder, searching
    by username (nice feature, I admit). Search
    deleted messages too. Never find it. It has vanished.

    - Rebooted Windows several times
    because the system started acting weird and
    I wanted a fresh start.

    I reread the above and saw it doesn't explain
    what bugs me most about Windows. It's
    because there are so many times when I want to
    1) specify a simple operation, like grep or ls, and
    2) specify a set of files I want to apply that
    operation to.
    You can't do either in Windows in a general way.

    Phil

    1. Re:Funny you should ask... by soda · · Score: 1
      The program needs a 300M datafile. I ftp that over, unzip it, and run the program. The computer thrashes. There is no "renice" command to lower the priority of the backgrounded program to, say, something low enough that I could type a letter and have it appear on the screen less than a minute later.

      What you can use is start /low <program> to start a program on low priority or use the task manager to set the priority of a process already running (If the machine responds, that is... ;)

      Other things I have done today:
      - Try to find line of source code somewhere in a project using both C and Java. With Linux this would look something like: grep "line of text" *.java *.c *.h With Windows I open the "find" program, and click and click and click and click until I find the right directory (the one I would be IN if I had a command line). There is no way to specify both C files and Java files, so I must search all files under directory, including the 300M text file. Which I know better than to try. Instead must do separate searches for *.c, *.c++, *.h. *.java files. Many many clicks. My wrist hurts.

      Ah.. Use semicolon. Try searching for *.jpg;*.mp3...

      On Windows: Spend half an hour clicking through my Outlook Express folders looking for it. Click through every single folder, searching by username (nice feature, I admit)

      Hm. I dunno about Outlook Express, but Outlook has an advanced search. You can try <ctrl-shift-f>, but I doubt it's implemented in Express...

      --

  288. Re:Give Emacs a Chance! by zozie · · Score: 1

    The following in ~/.emacs made emacs nicer for me (I was a bit used to the Borland Pascal 7 IDE):

    Basically the keys on the bottom-left corner of the keyboard don't change. A hard-core emacs user only uses these anyway ;-).

    However, shift+arrow-keys select, home,end,del "work" as expected. shift+del, shift+ins, ctrl+ins: cut/paste/copy. ctrl+arrows move words, etc.

    It's also nice to have the "windows" key between Ctrl and Alt as "Meta" key. Debian is like that out of the box if you specify that you have a 105-key keyboard to X; other distro's might do it differently.

    (pc-selection-mode)
    (display-time)
    (global-font-lock-mode)
    (setq kill-whole-line t
    view-scroll-auto-exit nil
    scroll-step 1
    lazy-lock-defer-on-the-fly nil
    pc-select-meta-moves-sexps t
    pc-select-override-scroll-error t
    column-number-mode t
    frame-background-mode 'light
    visible-bell t
    display-time-24hr-format t
    display-time-day-and-date t
    scroll-preserve-screen-position t)
    (custom-set-variables
    '(scroll-bar-mode 'right))

  289. Wrong question by Rares+Marian · · Score: 1

    Look if you don't know, stop filling in the blanks. Windows does not need to be used to develop for Windows. Please stop guessing. Windows is not a programming environment. Visual Basic is. Unix isn't a programming environment. XEmacs is. Computers are not just tools. Yes, and my car is just for driving to work. Adding toolkits makes it much easier to get the coding done. Some toolkits are tuned toward a piecemeal approach while others are tuned for a holistic approach. One is superficially easy to code in, the other isn't bloated. In the last 30 years ppl should have learned that you can't just stick a program in a microwave oven and let it cook. Coding is only 10%-20% of a project. And when you get to repetitive parts of the project the microwave tools just fall apart. The fact that this question focusses exclusively on the "what to develop in" aspect ignores the fact that computers are just a tool, and you use the right one for solving whatever problem you need fixed. Programming is not just a repair job. A computer is not just a tool. It's an environment to create in. And creativity is not just images and words. So the question should really be, "For what kinds of problems is Linux a better solution that Windows?" Answer that, and you have also answered which system to develop under. They're not dev environments. The culture that revolves around them produce vastly different tools. Decide on where the tools tuned to your planning style (which affects software quality) are more likely to be available. Software is a tool. A computer is a refrigerator for software. Both systems have their strengths and weaknesses for development, and a competent coder can do a good job on either platform. And out of a coin toss I get heads or tails. Fluff. Please it's really depressing to read an argument like this.

    --
    The message on the other side of this sig is false.
  290. U_N_I_X==P_O_W_E_R by Zurk · · Score: 1

    the network IS the computer. nuf sed.

  291. All the arguments in the world will not help. by Gwarlak · · Score: 1
    I have found that there are many Windows users out there that have never used anything other than Windows. Many of these people are very closed minded about what OS they use (remember that they have only used one OS).

    It is very hard to explain to some one who has never used a Unix system why grep, sed, perl, awk, make, find, *sh, etc. etc. etc. are so great.

    I think the best approach is

    • Spend a little time explaining how these tools exist and make programming more efficient and less troublesome. Most people will not listen or understand.
    • Suggest they install a Unix and try to write some programs and learn these tools. Remind them that this will take time and will not be easy. Remind them also that most people who do this are rewarded greatly with a suite of powerful free tools at their finger tips (am I right fellow Slashdotters? Cry forth with your support!!!)
    • Let them decide for themselves.

    For the Unix person that is trying to convince someone of the greatness of Unix remember this...

    You can not convince a blind man to undergo surgery that will give him sight by telling him how great it is to see. But if enough people around him are talking about the greatness of vision he will want to see.


    --
    May the source be with you!

    --


    --
    May the source be with you!
    Jason Zwolak
  292. guilt aspect? by small_dick · · Score: 2

    i always felt dirty (and not in a good way!) when i use MS products.

    this will be long winded, but here goes. when i was in college, my gf came up to me all tearful, etc. her aunt had passed away, and the family had agreed to meet at the aunt's house, and go through her things, and decide who would get what. they were supposed to meet at something like 8:30am, as i recall.

    anyway, her part of the family shows up at like 8:15, and some other family members already had gone in the house and were loading things up in a truck -- get this, they said "you snooze, you lose"!!!

    so, she was upset because she wanted a couple pieces of jewelry that she liked, but the relatives took her aunt's whole jewel case.

    okay, i was angry and upset too. i was raised that things like that just shouldn't happen, fair is fair, wrong is wrong.

    but as i get older, i realize that many people in our society don't feel that way. it really is "you snooze, you lose". whatever they can grab, between birth and death, well -- that's competition -- you lose if you're on the losing end. go cry about it or something.

    case in point: whenever developers yap about MS innovation, thay always get on Visual Studio and "Intellisense".

    I'm always glad to see it, cuz i know who (by name, anyway) made visual studio -- something like "Anders Helsjborg". he was with borland, made delphi (which was killing vb) and was targeted by bill gates for recruitment. the final offer? something like $6M to leave borland for MS.

    that, in itself, was not so bad. certainly not illegal. but what came next was stunning -- MS rented the top floor of a hotel nearby borland, and called borland's top engineers and invited them over for a "technology expo".

    when the enginners arrived, it was not a tech expo, but a recruiting center. several of borland's top employees accepted offers and left for redmond. this move, "Brain Draining" a competitor, is illegal in california. a lawsuit ensued, and MS settled out of court late in the trial (as usual -- another MS tactic -- keep the expensive lawsuit going til the end, then settle).

    in the meantime, borland struggled to bring the less senior people up to speed, while MS developed visual studio.

    bill gates, like the people who took the jewelry case, may honesty believe that what they are doing is somehow "acceptable". a lot of people agree with him -- that, somehow, "morality and fairness is for losers".

    myself? i've found that most microsoft people are intolerable little wretches, enjoying life on the winning side, at any cost. harsh, but true. i've only met a couple microsofties that i though were decent folks -- the rest? watch your back.

    --


    Treatment, not tyranny. End the drug war and free our American POWs.
    See my user info for links.
  293. Why the -larger- Hard Disk req'ts (Linux v. Win)? by ivi · · Score: 1
    Perhaps off-topic, but at least related to the general question of development of Linux targets...

    What explains the difference in hard disk requirements - with Linux targets needing more than Windows - for large, comparable applications?

    By way of example (from the StarOffice 5.2 datasheet):

    "Disk Space

    Solaris and Linux: Minimum 180 Mbytes; 240 Mbytes for full installation

    Microsoft Windows: Minimum 110 Mbytes; 170 Mbytes for full installation"

    Why should a Linux app. (in this case) need an additional 70 Mbytes on the Linux target system?

    While, as hard disk sizes grow, a difference of less than 100 Mb begins to approach 0, but more code can still mean more places for errors to hide (assuming - a priori - that the extra 70 Mbytes holds code, mostly)...

  294. Develop on them all by rootmon · · Score: 1

    I personally develop on Linux, SCO Unix, Dos, Win95/98/NT/2K, and anything can get my hands on. We all know an open source platform is better (and if you don't you should know better) but you must consider that a programmer is not developing for himself - he is developing for the user. If the user does not run *nix and needs to run a win-32 platform then break out Borland C++ Builder, MS Developer Studio, Cygwin, or GCC for Win32 and write them the best program you can. If the user runs Linux or another *nix or the program can run on the server side, by all means develop on Linux. Compare the programmer to a DJ. You don't play just the music you want to listen to, you play what your listeners want. Some of them are listening to the Linux tune and some to Windows. Play them both. It's about freedom man. Don't limit yourself to one platform, language, toolkit, or audience. A true guru can develop for them all, depending on what the user needs.

    --
    "As flies to the wanton boys are we to the gods; they kill us for sport." - William Shakespeare, King Lear
  295. why? by freddevice · · Score: 1

    The reason is not long, it does not need many words.

    Linux doesn't try and lock you in.

    QED.

  296. Configuration Management by Cryptic2Me · · Score: 1

    I regularly develop on Win NT/98 and Linux. For development CM I use CVS, but rely on ClearCase for Binary and higher level CM like managing documentation, release notes, packing documentation, QA, test metrics, etc for a release to a customer. There is absolutely no difference in the tools. I still type the same thing from the command line. On the few occasions that I use a visual interface I become disturb by how hard it is to do something that I can alias or script from the command line.

  297. Preferences by zysus · · Score: 1

    Basically, what everyone seems to be saying is that: "I like this or that better." There is no reason to bash M$ because you don't like their products, so don't use them. You are entitled to use what products you like to get the job done. (provided you can convice your boss...)

  298. Linux Advantage by HalB · · Score: 1

    Multiple desktops out of the box. 'nuff said.

  299. Then you must not have a preferance by The-Pheon · · Score: 1

    "I prefer makefiles and source code..."

    In visual studio, you can have makefiles just like those of GNU make.

  300. develop _for_ linux vs. develop _on_ Linux by afarhan · · Score: 1

    The question is why should i develop on Linux. I use linux but for development, i prefer the Visual Studio. the day i get something close to that on linux i will gladly switch. Make no mistake that I like Linux. I like the clean implementation the simple api (i will keep all the mess of ioctl() aside for the time being). the idea is to develop with as much help as you can from the development system. and visual studio does that better than others. those who take pride in doing it the hard way should have stuck to programming with toggle switches on altair systems (something i still do). we are NOT discussing MFC or Windows API vs. Linux (somthing that this discussion has rapidly degenerated to). we are discussing whether visual studio is better than emacs + man + gcc + gdb. i program on visual studio. i very rarely dip into windows specific code. i get by with standard c a fair distance. and i am not talking about any silly stuff - i am right now implementing an edge to edge telephony solution using extensive networking calls. i develop on windows and deploy on linux. all my kingdom for an ide where i can select with shift held down, cut copy paste with control-x,c,v, see the stacks of various threads, place break points with a click. point and see variable values and get help on F1. this is something even turbo c did in 1992.

    --
    The purpose of all philosophers was to impress women
  301. false revisionist history and innovation by Jan · · Score: 1
    "On a side note, VC++ was "innovated" by some company that Microsoft bought out, so..."

    There's little point asking you to support your claim with evidence because it is Totally False.

    You mustn't believe everything you read in those pamphlets the true believers hand out at supermarkets and airports nor in 'excellent briefs' handed out by big trade organizations with big anti-Microsoft agendas...

    Before you protest that sometime in the mid-80s Microsoft C 3.0 was OEM'ing Lattice C, or something like that, note that (to my knowledge) there has not been any Lattice C code in MSC since MSC3. (Indeed, a more plausible argument is that all Borland C++ innovation came from its purchase of Wizard C. And all that Symantec C++ innovatation came from Zortech C++ or rather, its precursor, Datalight C.)

    (That's the problem with "Microsoft didn't innovate it, they bought it" whining -- it doesn't reflect that a product is 10-15 years evolved with respect to a purhased or OEM'd starter/interim technology, 0% of which lives on in the current product.)

    I was there. I wrote a chunk of the MS C++ compiler and other tools. C/C++ 7.0 was a death march and it was a great, great experience. That shipped 4/92. Visual C++ 1.0 followed (2/93). I was there when Scott and Brad and Greg and Dean et al invented ClassWizard and its tight integration with the code editor and the resource editor and MFC.

    Bought indeed! Those were the days. The fun we had. Too bad you missed it.

    "There was a white glow, overpowering, sublime, running over our island from end to end." -- Churchill

  302. Watcom is not std by TimoT · · Score: 1

    I have Watcom C++ v11.0b and the scope of for loop variables is implemented as described in the C++ ARM (i.e. for loop variables are visible outside the loop). I've also had a number of problems with namespaces causing faulty code generation and internal compiler errors. It also doesn't ship with the STL, although it works (a special version is needed though). Besides Watcom C/C++ is not developed anymore and may be opensourced (this is what I got from a developer when they said they were discontinuing WC++). It's a solid compiler though, very quick compilation compared to GCC. (Can't really say about VC++).

  303. Pricey? (Extremely OT) by Nexx · · Score: 1

    It's pricey

    Around here, based on the going rate for a *junior* unix programmer/analyst (boils down to a guy who's read Stevens and played with the file io chapter), the book pays for itself in less than two hours' work. I dunno, I don't think it's pricy.

  304. Making Linux hang through silliness (OT) by Nexx · · Score: 1
    I just remember back in '97 or thereabouts, I used to work for a firm who had their labs wide-open to the world, including the Network Appliances box. Through a 28.8kbps ppp modem connection, I nfs-mounted one of the volumes. With the kernel version 1.2.x (or maybe 2.0.x, don't remember), doing a simple ls on the nfs-mounted volume made the bloody thing *hang*.

    Of course, that was all my fault, but hey, it had to be done in the name of silliness :-). Although, it also gave me a good glimpse of how much network overhead nfs has.

  305. semantic bovinator: moderate w-a-a-y up by djarum72 · · Score: 1
    That link is *useful* moderate it up! I'm going to try emacs again now, those elisp programs files are shtompin.

    -a happy joe user

  306. Re:except What happened to OWL by __aanonl8035 · · Score: 1

    Your post got me thinking back to my first IDE and grappling with windows code. At the time, it seemed as though everyone was using Borland C++ 4.5 to make their applications in windows. Borland used OWL. I never got into enough to know if it was done well. I have read that Microsoft felt threatened and came up with MFC and totally destroyed Borland. I was wondering if there were any old timers out there who could provide some insite into the capabilities of OWL. Was it better or worse than MFC?

  307. Re:Borland's VCL IS the way to go... by Old+Wolf · · Score: 1

    Don't insult VCL by comparing them to that quichy mess that is BASIC. It is a million times better. Visual Basic's IDE sucks, not to mention the language being tripe.

    And the 'Hello World' program actually takes about 25 seconds, not five minutes.

    Windows has much more variety than Linux too. All those things you mentioned are available on Windows (note that most people don't use them because the default tools are good enough; but they are there).

  308. Re:Your target audience? (now very [OT]) by Psiren · · Score: 2

    Sorry, I meant Linux *did* run like a dream on it. And hopefully will again when I get the replacement through.

    Now weary traveller, rest your head. For just like me, you're utterly dead.

  309. Kill VB - Do it, Do it Now ! by datadictator · · Score: 1
    {My appologies for the daffy duck quote, naah scratch that, I ain't sorry}

    Don't you find it crude that microsoft's prime programming language would be a language created 30 years ago as a means of teaching computer illitterate people how to code. The B in Visual Basic stands for "beginner's"

    VB Developers are a a lot more like professional level editors for quake than they are like Programmers.!!!!
    And it took me just 3 minutes to not only force a former VB Dev that I could outcode him with one hand using vi and tk, but also make him want to learn Linux coding, he is still learning

    I stick to my opinion, nothing can influence coding time except:
    • Competence of the coder
    • Strength of the language

    RAD Tools cut development time but multiply debugging time exponentially, because half the code is not actually written by the programmer.


    Oh, and to the guy who quoted "real programmers don't use pascal"
    PASCAL Is the most structured, syntactically simple (case Insensitive) Language ever created. Nicolas Wirth is a Human god on a near Torvalds Level, and I love it. On Linux a good pascal compiler KIXXASS.


  310. Re:Give Emacs a Chance! by Melvin · · Score: 1

    I'm VIMmer myself, yet I seem to be more and more compelled towards starting on the long leaning curve to start figuring emacs out. I just keep hearing about all the features, and I want to try it. (How come no one complains about feature creep in Emacs?)

    Anyway, how do you do compiling/debugging windows with vim, like you can do with emacs? Or do you just use different xterms?

  311. Re:Sources too numerous to mention, here are a cou by FreeUser · · Score: 2

    Gee, I guess you didn't read my post.

    Yes, I have used NT you blithering idiot.

    What I say still stands, NT's security model is an abomination. 95 and 98 don't have a security model to speak of. Etc. etc. etc. with references provided.

    I am through feeding the trolls, forage elsewhere.

    --
    The Future of Human Evolution: Autonomy
  312. Re:Sniff sniff, I smell a Microsoftie... by CDanek · · Score: 1

    Yes, yes, troll poster alert. If you actually took time to read through any of his posts or even look at the titles of any of his previous articles it would be clear that he's obviously pushing for Microsoft in a very clear and very determined manner. True, he might be a genuine (vocal and prolific) Microsoft admirer. But knowing the financial strength of MS, the tactics of MS, and their recent legal irks with /., it would seem more than helpful to have a bit of the Linux crowd turn on itself.

    And unfortunately, I don't have linux installed, nor am I personally a linux groupie/follower/guru, I'm just another guy. But I have been watching MS, and I _do_ think they are much more sneaky than most people give them credit for.

  313. The obvious reasson by jglynn · · Score: 1

    I can earn 6 figures writing Windows software. Nuff said!

  314. hello, world by SparkMan · · Score: 1

    I'm a Linux and C/C++ programmer, but I've (tried to) program for Windows a little.

    IMO, any development arena which does not allow the simple "hello, world" program to be written in less than ten lines of code is BROKEN, at least for mainstream use.

    For C-based Win32 it took me several dozen lines of code to do "hello, world". It also took many hours of frustrating trial and error just to learn how to do this. The code was complicated enough that I cannot remember how to do it off the top of my head, I would have to re-read the book to do it again.

    For C++-based MFC, I gave up after several very confusing hours.

    For MFC code generated by Visual Studio, I was up and running in less than an hour with a sample program out of the book, but I couldn't modify the program to do anything interesting because I didn't understand what I had done.

    As a comparison, I recently taught myself PERL from a book. In PERL, writing "hello, world" took less than five minutes after opening the book. I still prefer C++ over PERL for most things, but you gotta love anything that powerful.

    (Yes, I just said that simplicity is power).

    And of course, in text-based C it takes a mere three statements which I've had memorized for years.

    --

    -- laws are the opinions of politicians --

    1. Re:hello, world by be-fan · · Score: 2

      Here you go, hello world in less than 5 lines.
      //Start helloworld.cpp
      #include

      int WINAPI WinMain(HINSTANCE h, HINSTANCE t, LPSTR cmds, int nCmds)
      {
      MessageBox(NULL, "Hello", "World", MB_OK);
      return 1;
      }
      Okay, fine, that was 6 lines. Sure it's one line in Perl, but considering that C has a minimum requirement of 4 lines, this is not that bad. Also, your perl program is a console mode app, while this is a full-fledged windows application. Yes, it takes about 50 lines of code to create a window, but it takes that much in most procedure-based APIs. Programming Win32 is no harder than programming for X for example. It may be even easier, because it is unified, so once you get the mindset, you can use a lot of stuff like networking without having to learn a different API like in Linux. Of course, you can't compare Win32 to GTK+ or Qt, because those are OO APIs and inherently have less setup code. I do agree, though, that MFC is a bitch and only a fool would try to hand code it, but in reality, MFC was designed to be hand coded, it was designed to be computer generated.

      --
      A deep unwavering belief is a sure sign you're missing something...
    2. Re:hello, world by SparkMan · · Score: 1

      Interesting, I wasn't aware of the MessageBox shortcut. Not that it really helps that much.

      When I program Hello World in C, it's a tiny step away from being a useful application. I could for example change the code slightly to be:

      #include

      int main()
      {
      int i;
      printf("hello, world, give me a number\n");
      scanf("%d",&i);
      printf("%d squared is %d\n",i,i * i);
      }

      Thus in C, Hello World is useful, it's an actual program that does bascially everything required to interact with a user in a meaningful way.

      Your 6-line Win32 Hello World (actually I would have counted it as being 3 or 4 significant lines) is perhaps useful for notifying the user that a single, non-interactive event has occured.

      But it's not even close to being useful for much else. If you want to actually interact with the user (and most programs need to do this) you must open a real window and you are suddenly stuck with the ugly fifty line win32 Hello World.

      This in my opinion is unacceptable for a general-purpose programming environment.

      BTW I totally agree with you that this is not significantly worse than X under Linux. X under Linux is about as crappy as Win32 under Windows.

      Nobody in their right mind should be expected to program either for X or for Win32. Computers exist to make our lives easier, not more difficult. It shouldn't take me fifty lines and hours of study to express the raw concept of "show a written message to a user and read a string of keypresses or mouse clicks".

      --

      -- laws are the opinions of politicians --

  315. Re:Sources too numerous to mention, here are a cou by spectecjr · · Score: 2

    What I say still stands, NT's security model is an abomination.

    It's actually better than the one used in Linux.

    Better control. Finer grained. The only difference is that on most installations, it's turned off by default.

    On Windows 2000, however, it's not.

    Simon

    --
    Coming soon - pyrogyra
  316. Re:Give Emacs a Chance! by Azul · · Score: 1

    I just wanted to point out both of this things are possible and easy to do under Vim. I used Emacs for a year or two and really liked it. Then I found Vim and started to use it more and more and more until I realized I wasn't using Emacs anymore so I just removed it.

    1. Dynamic Expansion - You can use tags for that. Just build your tags file (Vim comes with scripts to build tags files for many languages) and then, while in insert mode, start typing your variable/method/symbol and hit C-p or C-n. It will autocomplete. If you want to use <Tab> for that, do `:imap <Tab> <C-P>'.

    2. Coding/indent styles - Vim does this too. If you don't like the default settings, it is completely configurable. Just set your cinoptions variable (see :help cinoptions; I set it to `>4{2n-2:2=2p5e-2(0f0}0^-2g0h0t0+4c3u2)20*30').

    3. For the incremental searches someone mentioned (ctrl-s in Emacs) you can set the variable `incsearch' in Vim. Your searches will then be incremental.

    And I'll add a few more hints:

    4. You can have Vim start looking at the beginning of your file for the first occurence of a given word. If it finds #include lines (you define the regexp used for #include lines so you can support other languages too), it will start looking at the included file and only come back once it's done. This is a nice way to find the place where a given struct/function/something is defined. See :help include-search.

    5. The :grep command is very nice. Type, for example, :grep symbol *.c. It will run the grep command and parse its output, allowing you to jump from each occurence to the next using :cn and :cp.

    6. Vim has :make too. It parses the compiler output too, allowing you to jump from one error to the next using :cn, :cp and :cc.

    7. When I switched from Emacs to Vim, I found it annoying not to have it show me where I opened a given `{}' like Emacs did. I mean, in Emacs, when you type `}' editing a C source file, it moves the cursor for a second to the opening `{' (if it is visible). You can do that under Vim to: :set showmatch. You can set the number of tenths of second using :set matchtime.

    8. Add the following lines to your ~/.vimrc:
    noremap <F8> :so `vimspell.sh %`<CR><CR>
    noremap <F7> :syntax clear SpellErrors<CR>
    IIRC, the vimspell.sh script is distributed with Vim. It depends on the `spell' command. Then, when you save your file and hit F8, Vim will find your spelling errors and highlight them.

    Ok, I guess I don't have any other tips for now.

    Check out Vim at <http://www.vim.org/>.

    Alejo.

  317. That doesn't work by pwhysall · · Score: 1

    for services which "cannot respond to the control function", to quote the error message...
    --

    --
    Peter
  318. Re:Ack MSVC. Terrible proggy by Omnifarious · · Score: 1

    With sufficient munging, you can make anything do almost anything.