Slashdot Mirror


Compiling Under Wine

now3djp writes "Interesting article over on CodingStyle that demonstrates how I successfully eliminated wasted time maintaining an MS-Windows computer when I could build natively from my GNU computer! /. has followed other cross compilers in the past. This article is different because I used MS's own compiler! This allowed me to get on with real games porting; with only a proportional increase in compile time. Wine has really come a long way in supporting simple apps, let us hope it reaches a 1.0 soon."

38 of 322 comments (clear)

  1. Awesome by Anonymous Coward · · Score: 3, Insightful

    I can't wait til we have a fully functioning windows emulator. Even if it will kill the need for native apps (read games).

    1. Re:Awesome by EvilSporkMan · · Score: 3, Informative

      Well, it won't be WINE, since WINE Is Not an Emulator, as we all know. =P

      --
      -insert a witty something-
    2. Re:Awesome by SCHecklerX · · Score: 4, Interesting
      Be careful what you wish for. It's excellent handling of Windoze apps is part of what killed OS/2. Developers: "Why port it when it can run the windoze version?"

      Not exactly the same, but it would be much better to have native apps, as opposed to having to emulate/VM that other OS.

    3. Re:Awesome by harlows_monkeys · · Score: 5, Insightful
      Be careful what you wish for. It's excellent handling of Windoze apps is part of what killed OS/2. Developers: "Why port it when it can run the windoze version?"

      I don't believe that this is actually true. Win95 had excellent Win3.x compatibility, but developers nevertheless rushed to develop Win95 software. Why would Win3.x compatibility in OS/2 cause developers to forego native development, but not have the same effect on Win95?

      I believe that what really killed OS/2 was IBM's attitude toward developers. Microsoft made it trivial to get started in Win95 development. Hell, you could go into Egghead and buy an MSDN subscription and all the tools you needed.

      Compare to OS/2, where you had to apply to IBM for permission to develop, and buy an expensive development kit (at least, to officially develop).

      I believe it was Jerry Pournelle who wrote of his experiences at a trade show, where he went to the MS booth, and asked what he had to do to develop for the upcoming Win95, and they handed him, on the spot, a development kit. At the IBM booth, he asked what he had to do to develop for OS/2 (a system that was already for sale, unlike Win95, which was still in beta). Did they hand him a development kit? Nope. They handed an application. If they decided he was worthy, he'd be allowed to buy a development kit.

      I think that is the reason OS/2 development never took off.

      Note! I'm not saying for-pay developer programs necessarily kill a platform. Apple used to have a for-pay program, but it was a joy, because of the astounding support. You sent any question off to DTS, and they would quickly have a good engineer, with full access to the source and the developers, answer it. I was having trouble with interrupt handling in a device driver, and they send me the detailed comments from the ROM source code for the interrupt handler, which explained exactly what was going on.

      With Apple DTS, the feeling I had as a developer was that I was dealing with my peers at Apple, who wanted to cooperate with me to make something great. With IBM, I always felt like an insignificant pawn in whatever they were doing.

    4. Re:Awesome by flex0 · · Score: 3, Interesting
      a) windows is, and will always be further along than wine. chasing an API puts you in second place, from the moment you start.
      Sure. But developers don't use always the newest APIs with their untested buggy implementations.
      Otherwise their products wont run on old machines. There are still many win98 boxes out there.
      And MS still offers IE6 for win98.

      And the fact that their software runs fine in wine could aswell attract them to not use the newest apis in near future.

      b) vmware can run windows fine. it's not expensive, and it'll run most things better than wine ever will, if you want to actually get some work done (i used it for almost a year to do PCB design and circuit design using protel for uni, and this was on a celeron 366!)
      Yes but you actually need a windows copy. This might scare vendors from shipping desktop boxes with linux preinstalled.
      "Oh sure, you can run Windows apps, just buy it for $300"
      c) killing games is stupid. you're just going to make linux less attractive to developers (who won't give too hoots that we need to bend over backwards to use wine, let alone attempt to get a proper port), and what with added cheat detection, wine will probably get marked as a "cheat" more and more often.
      -> WineX?
      d) i doubt wine will ever be fully useful for newer games. you're better off just supporting openGL in the first place, simply because wine will need to provide an directx wrapper around openGL anyway.
      They already have one and it works. (WineX has got a better one tho)
      i just don't see what's right about it. wine won't save you anything, except from RSI, since you won't be using it to do anything but watch games crash and run slowly.
      Oh well, right now I'm down and uploading some stuff with eMule without any native dlls ... works flawless for me.

      And this "slowly" is a myth.
      Right now it might be a lil bit slower due to not optimized implementations but after all - Wine Is not aN Emulator.
    5. Re:Awesome by Losat · · Score: 5, Interesting

      I think you are refering to IBM's Developer Connection, which was a bit like MSDN. This was fee-based but may have been free if you met certain criteria. It seems like they also had a developer partner program, though I can't remember for sure.
      However, there were certainly compilers and development kits just anyone could buy and use (no application to fill out, just buy the box).
      Exmamples: IBM's own excellent C-Set/2 (C/C++ compiler) (later Visual Age C++); Watcom's excellent C/C++ compiler; Borland's C++ for OS/2; Two (yes two!) distributions of gcc (gcc2 and emx). There were also two "Turboish" Pascal compilers and three "Visual" Rexx packages (somewhat Visual Basic like but using the Rexx language).
      Still, I do agree that IBM could have been more friendly to developers, and IBM certainly did enough things wrong with the marketing.

      --
      I'm not a lawyer, but I play one on Slashdot.
    6. Re:Awesome by Qzukk · · Score: 3, Interesting

      Oddly enough, BSD still lives despite the Linux binary compatibility.

      --
      If I have been able to see further than others, it is because I bought a pair of binoculars.
    7. Re:Awesome by AvitarX · · Score: 4, Insightful

      Ummm, it has.

      Linux has far surpassed where OS/2 was, and is growing in use. Linux's total openness is a part of it's success (another part being it's freeness).

      Linux has a large share of web servers. A large share of new super computer instellations. A large share new renderfarm instellations. A large share of scientific workstation instalations. A growing share in educational desktop installations. And a growing share in governmental type settings.

      Linux is seriously taking off in a big way. It is HUGE and has far surpassed OS/2.

      --
      Wow, sent an e-mail as suggested when clicking on "use classic" banner, and got a fast response that addressed my msg
    8. Re:Awesome by rseuhs · · Score: 4, Insightful
      It's excellent handling of Windoze apps is part of what killed OS/2.

      Nonsense, OS/2 was killed because PC-makers didn't want to use an OS from a competitor.

      "Why port it when it can run the windoze version?"

      Great, so you would rather have them ask "Why port it at all when 100% of our customers use Windows?"

      Not exactly the same, but it would be much better to have native apps,

      Sure, but we have to get a significant amount of users first, then can we expect native apps.

      Wine helps building that userbase.

      Instead of developers asking "Why port it when it can run the windoze version?" we have to have users asking "Why use Windows when Linux can run Windows and Linux apps?".

    9. Re:Awesome by afidel · · Score: 3, Insightful

      Wrong. An API is by definition a fixed implementation that does not change at a later time.

      Try to tell that to the folks in Redmond. MS has done a great diservice to the idea of object re-use, they often fail to follow one of the most basic ideas of OO, that is you can extend but never change an interface. Almost every single service pack changes the interfaces to dozens and dozens of parts of the windows api. This is why we have "dll hell". If MS followed basic principals it wouldn't be a problem because rather than reworking the interface they would simply add new additions to the interface and depricate the old ones (leaving the origional interface and associated code so that programs would still get the behaviour they expect).

      --
      There are 4 boxes to use in the defense of liberty: soap, ballot, jury, ammo. Use in that order. Starting now.
  2. ads by ldspartan · · Score: 3, Funny

    I find it entertaining that when I went to read the comments, I got to see an article for Visual Studio .NET :).

    --
    lds

  3. It is not recommended by YellowSnow · · Score: 5, Funny

    that you compile under the influence of any type of alcahol

    1. Re:It is not recommended by eclectro · · Score: 5, Funny


      that you compile under the influence of any type of alcahol

      but it's ok to post on slashdot???

      --
      Take the cheese to sickbay, the doctor should see it as soon as possible - B'Elanna Torres, "Learning Curve"
    2. Re:It is not recommended by Pseudonym · · Score: 4, Funny

      Don't drink and derive?

      --
      sub f{($f)=@_;print"$f(q{$f});";}f(q{sub f{($f)=@_;print"$f(q{$f});";}f});
    3. Re:It is not recommended by powerlinekid · · Score: 3, Funny

      I don't know... I've written some good code while piss drunk. I think the key is that while sober you sometimes get bogged down in doing it The Right Way (tm) where a simple ugly block of code would be better. My code may not be readable the next day but it works :).

      --

      can't sleep slashdot will eat me
  4. compiling? by Anonymous Coward · · Score: 5, Insightful

    It's not so interesting to me that he managed to compile using VC++ under WINE. VC++ doesn't call any of the APIs you code, it just puts machine code into the file saying you can call them if you want. It's all well and good to have VC++ compile DX9_CreateSurface() (or whatever) into a bunch of PUSHs, POPs and a JMP instruction, but that doesn't help if WINE can't actually call that function when you're testing. It makes more sense to me to use Bochs or VMWare to test your application if you're developing on multiple platforms. Anything less would be short-changing your Windows clients.

  5. WRONG! by www.sorehands.com · · Score: 4, Insightful
    It may eliminate the need for a reasonably fast machine to develop on, but you always need a target machine for testing! But, the test machine should be slow so that one can find performance bottlenecks and see the program operate under non-optimal conditions.


    If the people are forced to test applications on slow machines, we may not have word processors that need 40MB of ram and a 933MHZ pentium III to run.

    1. Re:WRONG! by spinkham · · Score: 4, Informative

      He was testing on a seperate machine, just wanted to avoid the hassle of transfering all the sources every time he wanted to compile.
      Quote from article:

      The transfer of source to an MS-Windows machine and the correction of filenames and text format issues have been avoided. Therefore, I can build the game from one machine, then I only have to copy the final chaos.exe to my MS-Windows machine to test.

      --
      Blessed are the pessimists, for they have made backups.
    2. Re:WRONG! by Jah-Wren+Ryel · · Score: 4, Funny

      Duh! If it compiles it must be fine! What kind of newbie developer are you?

      --
      When information is power, privacy is freedom.
  6. Visual C++ under WINE by kruetz · · Score: 5, Interesting

    Wine has really come a long way to facilitate running major applications such as Visual C++. Features that "just work" often do not get mentioned because there is nothing to say. Wine has many excellent features like this. However, I have expressed the problems with Wine currently and I expect that in a potential follow up article many of these will be resolved. Wine has been in development for over a decade now. As it is finally nearing a 1.0 release, I see how much better it was than the 1.0 release of MS Windows.

    Using Visual C++ on GNU/Wine gives me all the benefits of being able to develop a 100% compatible MS-Windows version of the game, while saving me the time of maintaining another Win2k machine version of the source and moving to that machine to compile. It has been a great time saver for me and I strongly expect this information will be very useful to myself and others in the future.

    Okay, so you can use Visual C++ compiler under WINE. Is that terribly surprising when WINE can run MS-Office for the most part? The compiler takes the source files and libraries and produces an executable or library. I don't know for sure, but I wouldn't think that too much of this would involve heavy usage of the Win32API, much less the lesser-used and less-tested-under-WINE parts. For the most part, the compiler would be doing tokenising, parsing, translation and optimisation, which would in all likelihood use no external libraries or anything.

    I don't mean to rubbish this article, I'm just saying that I don't see it as being terribly surprising. On the other hand, I think this is a great use of WINE and is definitely more innovative that anythin I would use WINE for. And as he says in the article, there was a lot of fiddling around with command line arguments and environment variables. But if you're compiling from the command-line under Windows, it's just as bad (no, really).

    A much greater "victory" for WINE would be to have the whole VisualStudio ensemble running. But I'm not sure if this is feasible, especially in the short-term. By "victory" I don't mean something along the lines of "Linux now allows you to run a quality IDE", because KDevelop and Eclipse are great IDEs. Instead, VisualStudio and Office are probably the most complicated pieces of software written by MS (excluding Windows itself) and for WINE to be able to run them both as if they were running under Windows would be truly a fantastic achievement.

    --

    This sig intentionally left bla... dammit!
    Who's got the whiteout?
  7. Re:which begs the question by bstadil · · Score: 3, Informative
    Begging the question does not mean what you think it means.

    It means :

    "to assume something that hasn't been proven as a basis of one's argument,"

    "Wine is not good because it is open source", or "Microsoft's compilers are bad because it is closed source", are examples of Begging the question.

    --
    Help fight continental drift.
  8. Windows Compliant / Posix Compliant Drivers by PetoskeyGuy · · Score: 3, Interesting

    I'm a programmer for a Supplier of Software to the US Government and we are actively looking to port our products to Linux do to the strong interest from our clients. Specific Offices decide what products they want to implement and how to do it. We are investigating Emulating Windows as an one solution.

    I look forward to the days when any program that is Windows Compliant runs on any platform that supports the Windows API.

    That being said, the real problem I have is DRIVERS for my hardware working under Linux. If someone could emulate Windows enough to use standard Windows Drivers, there would be no more reason to use Windows at all. I truly commend those braves souls and companies who write drivers for Linux.

    Now if there was a Proxy that accepted Microsoft SQL requests and sent them to a PostgreSQL backend transparently we would be free of the beast and save the Tax Payers lots of money paying my paycheck, plus blow our competiters out of the water. :o)

  9. GNU! by Dunkalis · · Score: 3, Funny

    Wow! So RMS wants us to simply call it GNU now? Dropping the Linux part altogether? Sorta hypocritical to me ;).

    Or do you run Hurd? Which is technically the GNU OS.

    The above is meant to be funny.

    --
    Slashdot is a waste of time. I enjoy wasting time.
  10. CVS by YoJ · · Score: 5, Interesting

    The author describes the problem he originally solves as being the pain of moving code between Linux and Windows, losing attributes, case problems, etc. The approach I take is to keep all code in CVS on my file server. I do compiling and editing on my personal computer; both Linux and Windows can handle CVS. This way you have to reboot into Windows for the Windows compile, but never have to worry about copying files or case changes.

  11. I use Wine to compile but not for porting by Captain+Rotundo · · Score: 4, Insightful

    I use Microchip's pic assemler through wine, for a small piece of code I maintain that runs on a PIC that wasn't supported by any GNU/Linux assembler when I started. I also maintain a legacy version of a very specific proprietary MSDOS (actually we run DRDOS) program that was written with Borland C, hopefully I will be replacing the last running bit of that with a DJGPP compiled version soon, which of course can be cross compiled on GNU/Linux without the need for Wine and bcw.
    I know what your thinking, but when a piece of software has worked flawlessly (well almost!) for 15 or so years, and is 'mission critical' it is very hard to drop a platform and move on. I am hoping to try out a move to Linux some day in the near future so that I can take advantage of new features and things that just arent available for DOS. But unless I can convince everyone else of the benefits I may be supporting dos for quite some time (I am the only software person at this company).

  12. Re:which begs the question by fredrik70 · · Score: 5, Informative

    VC++ isn't a bad compiler at all, really. They got a quite shitty implementation of the STL lib though(might have changed now - I use VC++ 6). Also isn't properly following the C++ ANSI standard. for example the scope whenyou declare vars in for loops is broken. MS is aware but they can't really fix it easily now, since *lots* of old MFC code would break if they fix it. Yuo can set a flag though to enforce ANSI but it not on by default. Compiler makes quite good code though. If you want a more 'proper' closed source compiler go for Borland's - the command line version is even free on their website! (after a rather hefty registration proc though)

    --
    if (!signature) { throw std::runtime_error("No sig!"); }
  13. 1.0 ? by IanBevan · · Score: 4, Interesting

    I'm curious, what exactly will the "milestone" of version 1.0 of Wine actually mean ? I would doubt that it'll ever be 100% compatible with Windows 98/XP. So what feature list is the development team trying to complete before calling it 1.0 ?

    I think that pretty much any other product would have been deemed a failure if it had endured a 10 year development life and not reached version 1.0. Unless of course we're talking about Duke Nukem Forever...

    My experience of Wine is common to most people's I think; it looks like a great idea, but as soon as you try to run any non-trivial program, it simply locks up/doesn't work. I've looked at their website and looked at all the "passed" indicators on their test cases. That doesn't help me run my apps much though... do they need more test cases ? Are they simply too abstract ??

    Just my $0.02 worth

    1. Re:1.0 ? by Papineau · · Score: 4, Informative

      Before 1.0, let it reach 0.9 (0.8 was released circa 1994 or 1995). You can check the unofficial Wine 0.9 TODO for a list of features needed for the 0.9 milestone.

      About the long development life... don't forget it started with Windows 3.1 as it's first target. Then, Win95, Win NT 4.0, Win98, WinME, Win 2K, Win XP came out. We're talking 2 different architectures (for some kind of operations at least), and some new features to implement at each version.

      Also, the list of authors currently lists 557 different people (contributions vary from a one-liner to a complete architecture overhaul). The number of currently active developpers is of course way smaller, more along the lines of 30-50. Of those, the vast majority do it in their spare time. So a long development period is not an indication of a failure, since if it was nobody would work on it anymore.

      The test cases (called conformance tests) try to verify that what Wine implements reacts the same way in Windows. Depending on the purpose of a test, it can be trivial or not, implemented in Wine or not yet. A whole lot of dlls don't have any test written for them yet, so yes, we need more test cases.

  14. This is non-news. by Doomrat · · Score: 4, Insightful

    Visual C++ doesn't do anything weird regarding Windows API. The IDE is a normal affair, and the compiler could be run without a user interface. It's really not testing Wine to it's limitations and the irony of situation is barely worth commenting on. This is non-news, the only thing this article achieves is to make Slashdot look like the anti-MS geeks with limited social awareness. Some things just aren't worth giggling at.

    I don't even need to look at the poster to know that this is the work of micheal...

  15. Re:No! No! No! by njchick · · Score: 3, Informative
    There are bugs in Windows that VMWare may not duplicate.
    Care to give an example? I think if you run Windows under VMWare, you get all Windows bugs plus maybe some bugs from VMWare.

    That's quite different from Winelib, which is indeed a separate implementation of Win32 that may "lack" some Windows bugs.

  16. Bullshit by 0x0d0a · · Score: 3, Informative

    Use the Intel compilers, your code will be 50-300% faster.

    50-300%? You're nuts. I've used both, and performance definitely varies...and if I had to choose one or the other as "generally producing faster code", I'd probably point at gcc.

    Take a look at these benchmarks.

    Gcc produces fastest code on 26 of the tests, icc on 9.

    Furthermore, not all the optimization flags for gcc were being used (no idea why -fexpensive-optimizations wasn't used).

    1. Re:Bullshit by bm_luethke · · Score: 4, Interesting

      Not neccessarily the most fair test. First the test were ran on an athlon system. Intel compilers optimized mostly based on the Intel architecture.

      For example, we ran several benchmarks at work on three computers with gcc 3.1 and the intel compilers. Basically gcc and intel were fairly equal on the pIII xeons (intel had the edge). Gcc was somewhat faster on the athlon 700, and the intel compilers blew gcc away on our p4 2.4 ghz.

      So what conclusions can you make? neither intel or gcc are better than the other. As we expected it depends on several factors - one of the main is hardware (wow, who woulda thunk hardware affects optimization :) ). In fact on the P4's with multi-threaded floating point operations we saw well over 300%, none of the tests were worse than 100% faster. On the athlon Gcc was slightly better except in one case were it was signifigantly faster. Eventually we found that gcc 2.x or 3.x does not have good p4 optimization yet (we asked on the devel lists trying to get better numbers as we didn't want to pay for the intel compilers). Of course this was about 6-10 months ago so they could have gotten optimizations in by now.

      If I had to choose one or the other as "generally producing faster code" I would ask "what hardware are we talking about". And that GREATLY influences the answer.

      --
      ------- Sorry about the spelling, I suffer from two problems. Dyslexia makes it difficult to spell well, lazy makes it
  17. Even a man who's pure of heart by YellowSnow · · Score: 5, Funny

    and uses the preview right
    can turn to a troll
    when the typos roll
    and the bottle is empty and light

  18. Or if your using Gecko by bogie · · Score: 3, Informative

    usercontent.css

    *[src*='ads.'],
    *[src*='/ad/'] ,
    *[src*='/ads/'],
    *[src*='/Ads/'],
    *[src*='dou bleclick'],
    *[src*='us.a1.yimg.com'],
    *[src*='ad vertis'],
    img[src^='http://images.slashdot.org/ba nner/'] {
    display: none !important;
    }

    You can add whatever else you want there as well. Things like

    /* this hides the usual 468x60 Flash banner ads */
    embed[type="application/x-shockwave-flash"][wi dth="468"][height="60"] {
    display: none !important;
    visibility: hidden !important;
    }
    /* this hides the not so usual but very annoying 728x90 Flash banner ads */
    embed[type="application/x-shockwave-flash"][wi dth="728"][height="90"] {
    display: none !important;
    visibility: hidden !important;
    }

    --
    If you wanna get rich, you know that payback is a bitch
  19. weird... by dolson · · Score: 5, Funny
    You don't need Wine if you know what you're doing...
    dana@digory:battlepong$ make
    g++ `sdl-config --cflags` -c sound.cpp
    g++ `sdl-config --cflags` -c collide.cpp
    g++ `sdl-config --cflags` -c ball.cpp
    g++ `sdl-config --cflags` -c game.cpp
    g++ `sdl-config --cflags` -c menu.cpp
    g++ `sdl-config --cflags` -c player.cpp
    g++ `sdl-config --cflags` -c randgen.cpp
    g++ `sdl-config --cflags` -c init.cpp
    g++ `sdl-config --cflags` -c main.cpp
    g++ `sdl-config --cflags` sound.o collide.o ball.o game.o menu.o player.o randgen.o init.o main.o -o bpong -lm `sdl-config --libs` -lSDL_image -lSDL_ttf -lSDL_mixer
    dana@digory:battlepong$ file bpong
    bpong: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), for GNU/Linux 2.2.0, dynamically linked (uses shared libs), not stripped
    dana@digory:battlepong$ make clean
    rm -rf *.o bpong
    dana@digory:battlepong$ sh cross-make.sh
    g++ `sdl-config --cflags` -c sound.cpp
    g++ `sdl-config --cflags` -c collide.cpp
    g++ `sdl-config --cflags` -c ball.cpp
    g++ `sdl-config --cflags` -c game.cpp
    g++ `sdl-config --cflags` -c menu.cpp
    g++ `sdl-config --cflags` -c player.cpp
    g++ `sdl-config --cflags` -c randgen.cpp
    g++ `sdl-config --cflags` -c init.cpp
    g++ `sdl-config --cflags` -c main.cpp
    g++ `sdl-config --cflags` sound.o collide.o ball.o game.o menu.o player.o randgen.o init.o main.o -o bpong -lm `sdl-config --libs` -lSDL_image -lSDL_ttf -lSDL_mixer
    dana@digory:battlepong$ file bpong
    bpong: MS Windows PE Intel 80386 GUI executable not relocatable
    It's MAGIC.
  20. Re:So you're saying my vi clone. . . by bofkentucky · · Score: 4, Funny

    what is your project's name...emacs *ducks for asbestos-lined safe room*

    --
    09f911029d74e35bd84156c5635688c0
  21. Re:I hope you PAID for the VC++ compiler by cdn-programmer · · Score: 3, Interesting

    I paid for lots of operating systems too. I have 2 versions of OS/2, 2 versions of DOS, windows 95 and 98, 3 copies of NT 4.0 and a copy of 3.51 and a copy of w2k that I got stuck with because it didn't work and I had to refund the client's money. Microsoft would not refund what I paid them. Microsoft would not allow me to either return or exchange the unopened copies of Windows NT 4.0 either. I was a Microsoft dealer at the time and bought a 3 pack - which was about a month before w2k was announced. So I got stuck... then stuck again with w2k.

    I have only one computer that runs windows NT so only one of these operating systems is in use.

    I have red hat linux 6.1 server edition, OpenBSD 3.0 and Mandrake 8.1. I paid for all these too even though they are free.

    Now, my desktop runs Debian and it is just great and I did a net install. Guess what, I don't know how to upgrade that RH 6.1 machine. Sure I can reformat the hard drive - but it contains a LOT of my work and I don't want to lose it. With Debian, an upgrade is easy.

    In addition to this I bought 2 copies of Brief and I can't use it even though it is my favorite editor. I did a trial d/l of CRiSP and it is a wonderful editor, fully Brief compatible. I contacted them about licencing. I run 8 machines in my home and am a member of the local Unix users group and do consulting work. The CRiSP people told me I would need a "Licence Manager"! I decided to learn Emacs. It has a CRiSP mode and is looking better every day.

    I bought 3 versions of M$ FTN and copies of M$ C as well. The last version of M$ FTN was such a botch that I could not use it. I have the Borland OS/2 C/C++ compiler. It was so broken I didn't use it.... but I paid for it. I have Borland C++ professional builder 4. I want to do C/C++ cross platform development.

    I phoned Borland. I think they told me that I can buy Delphi for Linux. I think they told me that the language is supported on both platforms but that the API is different. The person on the other end of the phone didn't seem too knowledgable. So I am going into wxWIndows or gtk because these people actually SAY they are cross platform. Thus, I do not have any C++ builder code and didn't get my money's worth.

    I have 4 versions of Oracle - paid for by the taxpayer (because I am one of their developers). The DOS versions were so bad we couldn't use them on that platform. The OS/2 versions were better but still not good enouf. It is not possible to install 8i for red hat 6.1 (even though that is the version oracle says 8I is for) unless you CAN STAND ON YOUR HEAD and read the paper What you need to knwo before you even THINK of installing oracle 8i . Imagine having to backdate the glibC and install an old version of Java from blackstrap just so you can get the installer to work. Why couldn't Oracle have put their developers into a room with 2 cd sets. One set - an off the shelf shrink wrapped copy of Red Hat 6.1, and the other set - a copy of the 8i source tree. And then make sure they don't have INTERNET access so they can't cheat and create a version that you can't install. Leave them there until they solve the problem or rot to death trying!!! Damit. I have lost MONTHS of my life solving other people's problems.

    Guess what, I am porting the client's apps over to PostgreSQL. See ya Oracle!!! Goodbye!

    So, of all the software I bought most of it did the job for a precious short time or didn't do the job at all - with the exception of Brief - which was just excellent. And what happened to Brief? Borland bought the rights, put it on the shelf and AFAIK I can't buy it any more.

    So frankly I really don't care if that copy of VB ++ was paid for. Even if it wasn't, I do not feel M$ was ripped off . I feel I was ripped off.

    I have been ripped off Over and Over and Over because I bought these products in good faith and paid for them with my hard earned money. Now I can't use them. Some never did what they were advertised to do. Others were discontinued and I lost out.

    Let me tell you about the 2nd last copy of M$ FTN that I purchased. I found a bug where the conpiler just eliminated an "IF" statement. No errors, no warnings, and no machine instructions either. I filed a bug report with M$ with sample code. Months went by. I re-filed the bug. Months went by. Finally I phoned them and sat on wait for like an hour - and paid for this too. The rep told me the bug was fixed in the new version. So I bought it.

    When the new version arrived I tried out the sample code from the bug report. The problem was still there. Oh, and the last version I bought couldn't be used it was so bad. The client dropped PC development ideas and switched to SUN.

    What the Open Source movment has done is a refreshing breath of fresh air and IMHO it is the ONLY way that the programmers of the future are going to stand any chance of avoiding the endentured servant trap that closed source software creates. Anyone questioning this should realise that in order to use closed source software they have to agree to the licence terms and these are arbitrary and non-negotiable. If you find the terms unacceptable then you can't be a programmer. That is unless you can find the tools and the infrastructure you need elsewhere.

    Well, we programmers are being attacked another way now.... patent law. If this gets too well established we won't be allowed to be independant. We'll have to work for a big company that has managed to negotiate cross licensing. Either that or pay the piper each time we want to go to the can.

    Water flows down hill and the infrasructure required to build some of the closed source tools, like Windows NT/2K/XP, or Oracle or JAVA or say a compiler suite like Visual C++ or Borland Professional Builder is so great that it looks like an ocean. Oceans are hard to move. Oceans are also hard to re-create. There is no way that any company could recreate from scratch an operating system like XP. The environment that XP grew out of no longer exists. IBM tried and failed.

    Over the years all computer companies with the exception of perhaps IBM,HP,M$ have failed. Who here thinks Microsoft will survive into the year 2050? Gates won't be in charge then. Who here thinks that another company is going to loom up that can invest the BILLIONS in infrastructure required to create an alternative?

    The future of software has to be opensource because that is the only way for us programmers to ensure that we will have the tools we need and the right to use them.

    If I add up the THOUSANDS I have spent on software over the years it illustrates to me that I should have been looking for better solutions a long time ago.

  22. Re:wow by crath · · Score: 4, Interesting

    Now this is impressive. Things like this are what WINE should be all about. Amazing.

    I disagree, it's depressing not impressive:

    • The author first asserts that the process of moving files between the systems causes the upper/lower caseness of the filenames to be munged; however, the text later talks about how his personal preference for file casenames is all lower and so he changes them. There is nothing in his "transfer between Linux & Windows" scenario that causes the case names to be wrong. The real issue is simply that his personal preference for filenames differs from that of the original author of the source code.
    • The author displays no knowledge of the network mounting of filesystems using SAMBA (CIFS) or NFS. This would have been a far better method and while it too would have slowed down compiles on the machine mounting the filesystem he states that he is not unhappy with such a slowdown.
    • Why isn't the source code checked into a configuration management tool, like CVS? What the article should have been describing was the process he followed checking the application into CVS, making his personal preference changes, checking in those updates, and then checking it back out onto both platforms and performing the compiles there---with no compile slowdowns.
    • As others have already noted elsewhere, he will still have to test on the target platform. Those who argue that VMWare is as good as a native boot-up for testing are simply displaying their ignorance and inexperience: display and network problems are often induced by a change in hardware platform, and VMWare is a distinct hardware platform from a testing perspective. While testing on VMWare is useful, it is not sufficient: a Windows application should be tested on several different hardware platforms as part of its formal QA.

    In summary, while the article probably accurately describes the author's actions, there is nothing in his account that others should be emulating. More experienced developers should be consulted in the search for best practices.

    I write this as someone who has done software development for almost 20 years; more than 20 if you count my high school years as a computer hobbiest.