Slashdot Mirror


Is Wizard-Code a Derived Work?

worldcitizen asks: "Now, with all the noise from the SCO case regarding copyrights, what constitutes a derivative work and who owns what, a question started creeping up: What would happen if Microsoft starts claiming copyright infringement or other Intellectual Property claims in the wizard-inserted code that Visual C++ generates? Would it be possible that even the simplest 'Hello, world' is tainted? Copyrights don't even require uniform enforcement. Could they selectively enforce it on Free Software projects for Windows that have used VC++ for development? Could they license it in such a way that makes it illegal to use Visual C++ for Free Software? Should this be a wake-up call to never use Visual C++ unless you have a cross-licensing agreement with Microsoft (obviously not for Free Software projects)?"

75 comments

  1. Well by GigsVT · · Score: 0, Flamebait

    Honestly, anyone stupid enough to use MSVC deserves what they get. Dance with the devil, get burned.

    --
    I've had enough abrasive sigs. Kittens are cute and fuzzy.
    1. Re:Well by JessLeah · · Score: 1

      I agree with you 1000%. Sad to see how such a thing gets one modded down nowadays. It's no longer acceptable, even on SlashDot, to verbally and unambiguously disapprove of people who use MS technologies...

    2. Re:Well by Khyeron · · Score: 1

      No you aren't. Myself and DaedalusHKX are both only running windows when other people pay us to (actually daedalus has stopped working for anyone that uses windows (and I only do it when others pay me, otherwise there's just too little incentive to keep up with it other than to know what new security breaches are discovered and which ones (all of them) are still unfixed :)

      -Khye

  2. Dude, don't give them ammo! by TripleA · · Score: 1

    Now they know they can possibly do it, and I guess they think it's worth a couple of big ones to try it out.

    1. Re:Dude, don't give them ammo! by nocomment · · Score: 1

      Not that they'd actually try it, but they'd lose if they did. So what if the code was generated by the IDE? It was still you who was controlling it. That would be just as if Microsoft started asking for royalties on books written in word, because hey...they probably used the spellchecker to generate the correct words in it.

      --
      /* oops I accidentally made a comment, sorry */
      /* http://allyourbasearebelongto.us */
  3. Code Wizards suck anyway. by Dr.+Bent · · Score: 5, Insightful

    Code wizards are way more trouble than they're worth anyway. Especially with GUI designers, the code they generate is totally un-maintainable. I've had GUI designers barf on me just because I reformmated the comments in my code, and once that happens, you might as well throw all your GUI code out and start over.

    Sure, writing it from scratch takes longer. But it takes a whole lot less time than re-writing the entire user interface when your boss says "move that button over there".

    1. Re:Code Wizards suck anyway. by Anonymous Coward · · Score: 0

      Or use Cocoa... the GUI designer spits out serialized OBJECTS, not bizarre machine-written code that you can't touch. When I first used Forte (or whatever it's called these days) I was amazed that it just crapped a bunch of untouchable CODE. Why bother? Why not just spit out a compiled class??

      once again proving that the NeXT was the perfect machine.

    2. Re:Code Wizards suck anyway. by Electrum · · Score: 4, Informative

      Code wizards are way more trouble than they're worth anyway. Especially with GUI designers, the code they generate is totally un-maintainable.

      You've obviously never used Borland Delphi or C++Builder. Those products are an excellent example of a GUI builder / RAD done correctly. They don't screw up if you change the code and don't make the code unmaintainable. I can't imagine a more productive environment for GUI development.

    3. Re:Code Wizards suck anyway. by The+Clockwork+Troll · · Score: 1
      If I don't like to work with the code it generates, why would working with the objects it generates be any better?

      Applying your idea to the MSVC world, it would be like Visual C++ generating a generic application into which you could only plug-in message handling callback functions, subject to some generic application API.

      Oh wait, that's Windows. Ah, now I recognize you, Bill.

      --

      There are no karma whores, only moderation johns
    4. Re:Code Wizards suck anyway. by ConceptJunkie · · Score: 4, Insightful

      Actually writing from scratch is _faster_, once you know what you're doing. Microsoft's code generators are completely useless and I've never met anyone with any real experience that uses them. At best, they could be used as a tutorial, but even still, I doubt you could learn much and code it produces is unreadably ugly. I mean REALLY UGLY. No consistent indentation. Tons of garbage comments that it needs because writing something that can grok MFC is obviously too much trouble for them.

      Of course, MFC becomes a lead weight the moment you try to do anything outside of Microsoft's extremely narrow idea of writing Windows code, unless you spent a great deal of time filling out all the stuff Microsoft has been too lazy to do in a product that's only been around for almost 10 years.

      Fortunately I have spent a great deal of time doing so, so I can function effectively and prolifically with MFC _and_ the code I've added on to it over the years.

      Here's what I did. I ran the code generator once for an SDI app and once for a DLL app. Then I cleaned up the code, removed the goat-spew comments, formatted the code (how ironic that machine-generated code is not formatted) and removed all the dead-weight functionality. I can now take these stripped down plain-vanilla apps and go to town, with my own classes, which add a lot of java-inspired ideas to MFC and hide some of the nonsense that MS is too lazy or stupid to encapsulate. At the end of the day, it's a good environment to work in and I do like using Visual Studio (version 6, 7 has some nice features but it is bloated and builds about 3 times slower with the same code on the same machine). Of course, improvements I have made have essentially been by replacing aspects of MFC... collection classes, string class, database support, ActiveX support, TCP/IP support, etc. Some day, I hope to replace GUI support and break away from MFC altogther, at which point I will be able to write apps with about a third of the code needed to use MFC.

      Anyhow, I didn't mean to ramble so long, but my point is that anyone who has any real experience isn't going to be using code generators anyway, and if he or she was, it would be easy enough to avoid it for project whose IP might be imperiled.

      Of course, there's nothing to stop Microsoft from sticking their new MNU MPL license (MNU == "Microsoft's, Not Yours", MPL == "Monopolist's Private License") in a service pack and 0wNzOring half the software industry overnight.

      --
      You are in a maze of twisty little passages, all alike.
    5. Re:Code Wizards suck anyway. by ConceptJunkie · · Score: 3, Funny
      I can see it now, the MNU MPL:


      This License is a contract between the Microsoft Corporation (hereafter known as "Thy God") and you, the customer, (hereafter known and "worthless technoserf")...


      --
      You are in a maze of twisty little passages, all alike.
    6. Re:Code Wizards suck anyway. by Dr.+Bent · · Score: 1

      Actually, I've used both. A lot. And every time I got a new version I thought. OK...this is going to be the GUI designer that doesn't suck.

      And it sucked.

      Sure. If you never muck with the generated code, they work great. The problem is that you have to change the code in order to get some stuff to work, because the GUI designers are always one version behind the programming libraries. That's why those GUI designers generate code and not a resource file or a complied class. They know that you're going to have to tweak it from time to time.

    7. Re:Code Wizards suck anyway. by sebmol · · Score: 1

      Huh? Both Delphi and C++ Builder produce .dfm files that contain all the data for your objects. You can edit them or you don't. The source code files themselves hardly contain any generated code at all.

      --
      "Light is faster than sound." - "Is that why people tend to look bright until you hear them speak?"
    8. Re:Code Wizards suck anyway. by Anonymous Coward · · Score: 0

      Obviously, the "doctor" has never used these tools despite his claims. A lot of Slashdot posters are like that...

  4. subject by inerte · · Score: 5, Insightful

    What would happen if Microsoft starts claiming copyright infringement or other Intellectual Property claims in the wizard-inserted code that Visual C++ generates?

    Nothing yet, since they currently don't do this kind of limiting with the wizard-code.

    Would it be possible that even the simplest 'Hello, world' is tainted?

    Yes, if they prove that your Hello World came from a Wizard instead of other method. (highly unlikely)

    Copyrights don't even require uniform enforcement. Could they selectively enforce it on Free Software projects for Windows that have used VC++ for development?

    If they make a license which says "Forbidden to use with Free Software", and someone uses it, then yes.

    Could they license it in such a way that makes it illegal to use Visual C++ for Free Software?

    Yes.

    Should this be a wake-up call to never use Visual C++ unless you have a cross-licensing agreement with Microsoft (obviously not for Free Software projects)?

    No. They won't do this.

    1. Re:subject by Anonymous Coward · · Score: 0

      Agreed. Microsoft is most likely more concerned about making money than proprietary vs OSS doctrine. As such, they most likely wouldn't license Visual Studio in a manner that precludes using it for OSS development. Why? Doing so would cost them a sale they would have otherwise be able to make. Ironic eh?

    2. Re:subject by Otter · · Score: 3, Interesting
      Should this be a wake-up call to never use Visual C++ unless you have a cross-licensing agreement with Microsoft (obviously not for Free Software projects)?

      No. They won't do this.

      While a) you're most likely right and b) this is the sort of lazy question that gives Ask Slashdot a bad name (Hello! Read the license!):

      The fact is that Microsoft did prohibit the use of the Mobile Internet Tools SDK for making GPL-licensed apps.

    3. Re:subject by inerte · · Score: 1

      Yes, GPL. But not every Free Software license.

    4. Re:subject by dbrutus · · Score: 1

      If they can ban one license they can ban any other license by just creating a list. Admitting the ability of a toolmaker to how you legally license the code you create using that tool means that you no longer own how that code can be licensed.

    5. Re:subject by ray-auch · · Score: 2, Interesting

      Actually they don't need to explicitly prohibit GPL - if they just require you to use a binary redistributable component then GPL excludes itself.

      By my reckoning pretty much all GPL windows development is dodgy unless you use stuff like cygwin - because MS don't always ship C-runtime with windows OSes (even when they do it is typically several versions behind) and they only give you binary redistribution licence. That means you have a required library that you can't ship under gpl, or ship it's source, or treat it as system-exception library (since MS doesn't ship it with the OS) - so you can't write a GPLed app using MS C-runtime (or MFC or VB runtime or .NET runtime or...). But that's just IMHO and IANAL.

    6. Re:subject by sebmol · · Score: 1

      Sure, they could. But why would they? Microsoft has a strong interest in people writing software for its operating systems regardles of whether they are for commercial or non-commercial use. How are you going to get High School and college students interested in becoming Windows developers if you don't let them write free software?

      --
      "Light is faster than sound." - "Is that why people tend to look bright until you hear them speak?"
    7. Re:subject by dustman · · Score: 1

      That means you have a required library that you can't ship under gpl, or ship it's source, or treat it as system-exception library (since MS doesn't ship it with the OS) - so you can't write a GPLed app using MS C-runtime (or MFC or VB runtime or .NET runtime or...).

      This usage is explicitly addressed in the GPL FAQ: http://www.gnu.org/licenses/gpl-faq.html#CanIUseGP LToolsForNF

    8. Re:subject by ray-auch · · Score: 1

      Nope - that bit is talking about the article subject but not relevant to the part of my post which you quoted. The relevant section would be
      this one

    9. Re:subject by dbrutus · · Score: 1

      Michrosoft has a history of screwing developers. They lied about a lot of things along the way and have developed an ample record as a nasty customer. Depending on MS charity is a sucker's wager.

  5. Read the licensing terms by iangoldby · · Score: 3, Informative

    Usually, there are terms and conditions attached to the redistribution of code that came with the development environment, and that almost certainly includes code generated by wizards and so on.

    For example, the MSVC license tells you exactly which DLLs you can redistribute, and example code usually has a statement at the top. Wizard-generated code surely won't be any different.

  6. Read the license. by Tomun · · Score: 2, Informative

    Usually the software's license will exempt generated code but you will need to read it to check.
    In fact you should read the license before you pay for the software and certainly before you commit to using it.

    1. Re:Read the license. by Sloppy · · Score: 0
      That just begs the question of whether the license actually has the power (or the right) to exempt the generated code or not.

      Exemption or not: who wrote the code? Is it even a creative expression at all?

      --
      As copyright owner of this comment, I authorize everyone to defeat any technological measure which limits access to it.
    2. Re:Read the license. by orkysoft · · Score: 1

      Looks to me like the generated code is a derived work from your expression of ideas which you made by positioning the widgets on the window and editing their properties.

      And if it is indeed a derived work, there's no way the IDE publisher can claim copyright over it; it is your code, since it was made by the IDE using your creative direction.

      --

      I suffer from attention surplus disorder.
  7. April Fools? by Elwood+P+Dowd · · Score: 4, Insightful

    This reminds me of the April Fools Day ask Slashdot question:

    "Isn't it possible that Microsoft is using GPL code in Windows, and we could NEVER KNOW ABOUT IT?! Since we'd never know, they're probably doing it already. Has anyone notified the FSF? What are we going to do about this!?"

    The obvious place to look for answers to this sort of question is in the VS license. If you don't like the terms of that license, use Emacs, dude.

    Hehe. "I wrote my novel using MS Word. Now that I'm selling it, couldn't MS come after me for copyright infringement, since I used their pagination tools?"

    --

    There are no trails. There are no trees out here.
    1. Re:April Fools? by evalhalla · · Score: 2, Interesting
      Hehe. "I wrote my novel using MS Word. Now that I'm selling it, couldn't MS come after me for copyright infringement, since I used their pagination tools?"

      This is slighty a different matter: copyright law does not cover what you do with other's tools, while it does surely cover the pieces of other's code that you put in your software when using VS wizards. In the first case you would have the right to do whatever you want with your work, unless forbidden by some contract or license; in the second case you wouldn't have the right to use those code parts, unless allowed by a proper license.

      Of course they could put some "wicked" clausole in MS Word, but until now they seem to have brain enough not to do so. Maybe they would if they had really all of the wp market, right now it would be suicide.

      As for the license part you're right: the right place to get an answer is the VS license, but that could change and one could be put in such conditions where it's only choices could be to change the license of his software, rewrite it from scratch with some other tool, removing all VB wizard parts or stop updating it. This should be considered before choosing a tool for development, I believe.

    2. Re:April Fools? by Elm+Tree · · Score: 1

      How about if I used some Microsoft template included in Word for writting my novel? Would that be copyright infringment?

    3. Re:April Fools? by evalhalla · · Score: 1

      If they are text template and not layout template it wouldn't be copyright infringment as long as you respect their license. Being a template it would probably be quite permissive, but this does not mean that you will be able to do everything.

  8. No by Anonymous Coward · · Score: 0
    Could they selectively enforce it on Free Software projects for Windows that have used VC++ for development?

    No.

    Read your visual studio license... if you have one.

  9. Wizard Code by joshsnow · · Score: 2, Funny

    Is Wizard code a derived work?
    Is Harry Potter a Wizard?

  10. is it possible? by Anonymous Coward · · Score: 1, Interesting

    I've wondered about this. Not that Microsoft would do it, but maybe a smaller stupider company in a subtle way: claim copyright on the output of the program.

    if the program spits out code that's already written (i.e., it copies a template and replaces some variables) I'm sure you could say YES of course it's possible.

    But what if the program spits out, say, machine code? What about compilers? what if the code is generated from your input only.

    I remember reading an interview with electronic musicians Autechre. They use algorithmic generators for some of their music and they wanted to put out their next CD as a program instead of audio. But they didn't because they wouldn't be able to claim copyright on the output and folks would put out the output as their own compositions (Autechre is usually the one everybody copies for the cutting edge sound anyway).

    I was thinking, GOOD, imagine if Yamaha or Native Instruments copyrighted the output of their instruments/software. That would SUCK.

    Anybody know how the law works here??

  11. lex and yacc? by Sloppy · · Score: 2, Insightful
    People have probably been thinking about that since they started using tools like LEX and YACC to build compilers. (Probably even be older that that, I dunno.)

    In the few situations I've seen, the inputs to the tools are thought of as being the "real" source code, and the C output is conceptually treated as object code, as weird as that might seem.

    So, just copyright your stream of mouseclicks into the Microsoft IDE. They're your clicks; you invented them. And if someone else clicks on the pixel 51 down and 325 to the right of the upper left corner of their IDE's window, sue their ass off!

    --
    As copyright owner of this comment, I authorize everyone to defeat any technological measure which limits access to it.
    1. Re:lex and yacc? by Anonym0us+Cow+Herd · · Score: 1

      So, just copyright your stream of mouseclicks into the Microsoft IDE. They're your clicks; you invented them.

      There are an almost infinite number of mouse clicks and keystrokes that could lead to exactly the same result.

      First, you can re-order many steps.

      But secondly, many mouse clicks are to a sensitive rectangular area, like a button or drop down menu pad. Take the number of pixels of the first rectangular button, times the number of pixels in the second rectangular button, and this is the unique number of mouse clicks that have exactly the same effect of clicking button 1 followed by button 2.

      --
      The price of freedom is eternal litigation.
  12. What about the same question with a GPLed compiler by AdamBa · · Score: 3, Interesting
    If you used a Wizard produced by a compiler licensed under the GPL...where obviously the source code that the wizard generates for you is contained *somewhere* in the GPLed source of the compiler...is the resulting code a "work based on the Program" and therefore the whole thing is covered by the GPL?

    For example consider this from the GPL FAQ:

    Can I use GPL-covered editors such as GNU Emacs to develop non-free programs? Can I use PL-covered tools such as GCC to compile them?

    Yes, because the copyright on the editors and tools does not cover the code you write. Using them does not place any restrictions, legally, on the license you use for your code.

    Some programs copy parts of themselves into the output for technical reasons--for example, Bison copies a standard parser program into its output file. In such cases, the copied text in the output is covered by the same license that covers it in the source code. Meanwhile, the part of the output which is derived from the program's input inherits the copyright status of the input.

    As it happens, Bison can also be used to develop non-free programs. This is because we decided to explicitly permit the use of the Bison standard parser program in Bison output files without restriction. We made the decision because there were other tools comparable to Bison which already permitted use for non-free programs.

    This makes it pretty unclear. A Wizard is certainly "copy[ing] parts of themselves into the output for technical reasons". It sounds like Bison has an explicit exception for this case, but that's just pragmatism because other comparable tools existed.

    - adam

  13. no it doesn't by Anonymous Coward · · Score: 1, Informative

    http://alt-usage-english.org/excerpts/fxbegthe.htm l

  14. That wizards exist validates reverse engineering by Rares+Marian · · Score: 2, Interesting

    If a program can spit out code, notwithstanding code that does more than the minimum to complete the requested task, then the only creative element is the wizard user's decisions. Therefore it should belong to the user regardless what the license. Primarily because the wizard user has already paid for the creative elements of the development environment by purchasing the IDE.

    If the code does more or differently from what the wizard user asks (like efficient design, or using one piece of code, where the wizard doesn't actually do anything but give the wizard user a security blanket), then stick that in a library and charge for the library. Otherwise that wizard is a contradiction in itself.

    Stop trying to give users licensing heebie-jeebie, you can make your money otherwise (licensed libs), and quit trying to make creative people pay for their own creativity.

    I have no problem making a buck on Free Software. Neither does FSF

    I have a problem where someone tries to charge the developers. That's extortion.

    --
    The message on the other side of this sig is false.
  15. GPL standard C libraries by Anonymous Coward · · Score: 0

    Does linking to GPL standard C libraries force you to open source your code?

    Just about every commercial product released for linux links to that code and includes some GPL executable code in its binary executable image.

    Quoting the GPL won't help since your quoting a legal document which has not had this question decided by a court.

    1. Re:GPL standard C libraries by TephX · · Score: 1
      Does linking to GPL standard C libraries force you to open source your code?

      Umm... yes. The vast majority of libraries on Linux are LGPL for exactly that reason. Readline isn't, so closed-source (or even open-source non-GPL-compatible) software can't use it.

      Quoting the GPL won't help since your quoting a legal document which has not had this question decided by a court.

      If you say so, but the GPL seems to be very clear about it, to the point that a decision by the court is a foregone conclusion:

      The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language.
      ...
      You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions:
      ...
      You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License.

      Note that this appears to be more relevant to static than to dynamic linking, but IANAL.

      --
      I metamoderate all Redundant and Offtopic moderations as Unfair.
    2. Re:GPL standard C libraries by kableh · · Score: 1

      Um, arent there explicit exceptions in the comments of the GNU C libraries for exactly this reason? That was the way I understood it, from what a former coworker told me.

    3. Re:GPL standard C libraries by TephX · · Score: 1

      If by "explicit exceptions in the comments" you mean using the LGPL instead of the GPL, then yes, most GNU C libraries (including glibc) do have them. I pointed out one particular GNU C library (Readline) which doesn't.

      --
      I metamoderate all Redundant and Offtopic moderations as Unfair.
    4. Re:GPL standard C libraries by DGtlRift · · Score: 1

      Hypothetically speaking, what if you had written a commercial program that used functions in shared objects.. and linking to some function in that shared object which is LGPLed. You should be able to do that and preserve your own licensing.

      Then on the end users machine they decide to replace that shared object with one that has the same function sigs, but are GPLed versions. When executing the comercial app, does the application now become GPLed because it is using a GPL function even with out the knowledge of the original programmer?

      Could I make windows open source GPLed by writing some GPLed replacement DLL (like urlmon.dll or whatever) and using windows with it?

      --
      How about a spell checker for slashdot, or even more impressive, a spell checker for strings in C-Code? Use lint! -DG
    5. Re:GPL standard C libraries by TephX · · Score: 1

      No, you don't own the copyright to the closed-source program, so you don't have the right to do that. By linking it with a GPL library you're probably violating the license of the closed-source program, and you're definitely violating the GPL. If this weren't true then I could write a replacement for some Windows library with the license "you're free to use this software for whatever you want, provided that all profits from any program with which it's linked belong to me", get someone to use it, then sue Microsoft for all of the money they make off of Windows when they refused to just hand it over.

      --
      I metamoderate all Redundant and Offtopic moderations as Unfair.
    6. Re:GPL standard C libraries by Anonymous Coward · · Score: 0

      You can link GPL'd code to anything you care to for private use. The GPL's conditions only apply to redistribution.

    7. Re:GPL standard C libraries by TephX · · Score: 1

      Damn... you're right. You'd still probably be violating the closed-source software's license, though.

      --
      I metamoderate all Redundant and Offtopic moderations as Unfair.
  16. Stop Playing Amateur Lawyer by reallocate · · Score: 1

    Microsoft could write a license that says developers using their products must wear funny clothes and send all their money to Bill Gates, but it would be meaningless until tested in court.

    Open source developers would be better off coding better apps than Microsoft instead of playing amateur lawyers. Give users something they think is better than Microsot and the market will settle these "what if" questions.

    --
    -- Slashdot: When Public Access TV Says "No"
    1. Re:Stop Playing Amateur Lawyer by Jason+Earl · · Score: 1

      Actually, you have that backwards. You actually have to assume that Microsoft's licenses are valid until a court finds them to be invalid. After all, what happens if Microsoft decides to choose you to be the test case? Unless you can afford to go to war in the courts with Microsoft you can't really afford to pretend that their licenses are nonsense (even if they are).

      Like it or not, legal issues are becoming a large part of software development. You can hide your head in the sand if you want, but the question posed is actually a good one.

    2. Re:Stop Playing Amateur Lawyer by reallocate · · Score: 2, Interesting

      I don't see much reason to play endless "what if" games.

      Back in reality land, if someone wants to violate a Micrsoft license, or anyone's license, for that matter, they'd better be prepared to deal with the legal consequences. Contrary to the commonly held opinion around here, a firm moral conviction isn't enough to win in court. The other side might just think they're right.

      --
      -- Slashdot: When Public Access TV Says "No"
    3. Re:Stop Playing Amateur Lawyer by Jason+Earl · · Score: 1

      Uh, I think that we agree. Although it is possible that I wasn't clear in making my point.

      Most programmers have to assume that the licenses that they accept are legal. You might believe that a particular section of your software vendor's click-through license is invalid, but unless you are willing to accept the risk of an expensive legal struggle you had probably better do what the license says.

      Likewise, coders should assume that autogenerated code falls under someone else's copyright. The FSF believes that the code output from Bison is protected by copyright, code generated from a wizard could easily fall under the same category. My guess is that most code generating tools allow you to use the resulting code however you want, but that isn't necessarily the case.

      When in doubt read the license (and then ask your lawyer).

  17. Simple answer by muleboy · · Score: 1
    Should this be a wake-up call to never use Visual C++ unless you have a cross-licensing agreement with Microsoft (obviously not for Free Software projects)?
    How about just don't use proprietary tools if you can't be 100% sure that you're safe? Since you're asking, you're not sure, and no one here is going to be able to answer your question. If you want to know the real answer, spend the $200 to consult with a lawyer who specializes in copyright, or just use Free software.
  18. don't use the wizards by blackcoot · · Score: 1

    if this is a major sticking point for you, there's no reason to use wizard generated code. i know that a lot of people find it useful, but for me personally, i would rather write this stuff by hand. of course, i've never built anything with more than maybe four dialogs...

  19. not possible by sir_cello · · Score: 1

    this is entirely a contract law problem

    (1) read the license agreement that comes with the development tool in question, check what the terms are regarding this sort of code. if you don't like those terms, goto the next tool.

    (2) have accepted the license agreement (say, in 1), then also check to see whether either party is allowed to vary the terms of the agreement - i.e. is there a provision that allows for the terms to be altered without explicit agreement between the parties ? if there are problems here, go back to (1) above. if you choose to accept these sort of provisions, then you've chosen to accept the consequences. no manufacturer would exert such arbitrary provision because no development house would ever buy such a tool, it's simply not commercially viable.

    (3) now that you've agreed to the terms, you've entered a contract, and unless the provisions say otherwise, the contract is "fixed", and can only be altered by agreement between the parties (well, there are a few other issues, but not worth mentioning here).

  20. How? by HeyLaughingBoy · · Score: 1

    It's a programming tool. By design its output is expected to be distributed -- except in the case of the Educational versions that don't allow commercial use. For Microsoft (or any other toolmaker) to claim that after the fact is like Stanley Toolworks claiming that since you built a house using one of their hammers and sold it to someone, that means they can put a lien on that house. I'd like to see that stand up in court.

    That said, there are some DLLs that come with Visual Studio that can't be redistributed. I don't remember where the list is, but I do remember coming across it a long time ago.

    1. Re:How? by MisterFancypants · · Score: 3, Informative

      Generally the only DLLs you'd use with Visual Studio that you can't redistribute legally are the debug versions of all the libraries, and Microsoft prohibits distribution of those mainly to stop developers from shooting their own feet off.

    2. Re:How? by sonamchauhan · · Score: 1

      I bought VC++.NET Standard a few months ago and read the license. From what I recall, a developer can redistribute anything they create with no conditions. The only conditions were for "redistributable binaries" that have been created by MS (for eg: MSVCRT.DLL). For redistributing MS's binaries, the developer is required to include a EULA requiring the users of *his* software to only run MS's "redistributable binaries" on a licensed MS platform.

      I'm a newbie to VC++ but I think C++ code that uses MFC requires MSVCRT.DLL. So if you code with MFC, its possibly illegal to let users run your software under WINE in Linux.

      Its possible that earlier versions of MS VC didn't have this restriction.

  21. Banning more than one license by yerricde · · Score: 1

    Yes, GPL. But not every Free Software license.

    So what if "GNU General Public License and a couple others" of one version's EULA becomes "any license requiring publication of full or partial source code of derivative works" of the next, or worse yet "any license approved by the Open Source Initiative"?

    --
    Will I retire or break 10K?
  22. Depends on the EULA by yerricde · · Score: 1

    Primarily because the wizard user has already paid for the creative elements of the development environment by purchasing the IDE.

    The wizard will usually copy a library of boilerplate code into the generated program. This boilerplate code is copyrighted. The IDE's EULA specifies under what terms the boilerplate code is licensed for distribution.

    then stick that in a library and charge for the library.

    This is exactly what some IDE publishers are doing. The terms under which the wizard's library is licensed become more liberal as the customer pays the IDE publisher for more expensive versions of the IDE.

    --
    Will I retire or break 10K?
  23. Not likely... by Tom7 · · Score: 1

    The stuff that Visual C++ generates is probably not copyrightable because it is not very expressive. (Indeed, it is generated by a machine!)

    Also, you can use Visual Studio without it generating crap. That is how I always build my projects, because the wizards go wrong too often to be worth it.

    1. Re:Not likely... by Mammothrept · · Score: 1

      I think a EULA whereby a user of VC++ agreed to assign the copyright in code generated with the program might fly but there is a constitutional problem with a EULA that makes code generated by the program a derivative work. For something to be eligible for copyright protection, it has to be: an original work fixed in a medium of tangible expression. Leaving aside an, in, a and of, all the remaining words have highly specific meanings. If something is original, it has to have an author. Machines cannot be authors of original works because they aren't capable thinking (computing doesn't count as thinking). A derivative work will have at least two authors---the author of the original work and the author of the new work that adapts or transforms the original. Where is the original work that was adapted or transformed? The output of the code clearly has some originality but it isn't a new version of VC.

      This isn't a contract law issue. Rather, it is a fundamental requirement of copyright law. I can make a contract with you whereby you agree to become a slave in exchange for me paying money to your parents. At a minimum, the agreement would be unenforceable because the (U.S.) government won't allow private parties to contract around the constitutional prohibition on slavery. The originality requirement in copyright law also stems from a constitutional requirement (Art. I, Sec. 8) and private parties cannot contract around the requirement. Because the VC++ program cannot be an author, works created with it cannot be derivative works.

    2. Re:Not likely... by Mike+Hawk · · Score: 1

      I'd like to add here that under fair use you can use tiny bits of a copyrighted material. Would this qualify as unsubstantial?

      That would seem to easily cover any copyright portion of the question.

    3. Re:Not likely... by Tom7 · · Score: 1

      Well, the "work" in question would be the entirety of the inserted stubs. It's difficult (but not impossible) to claim fair use exemption if you copy the whole work. But, like I said, it's unlikely that those stubs are protectable under copyright.

  24. Re:not possible (possible anyways?) by MickLinux · · Score: 1

    But what about how EULAs can change, retroactively? As I understand it, Virginia has passed such a law, allowing this. So the EULAs in reality have no meaning, or rather are rendered meaningless because the law has no meaning.

    Gag, I read this and it sounds like babble, but I can't find a better way to say it.

    Virginia and some other states specifically allow the EULAs to float, which puts us in a specifically feudal situation. But Congress also periodically considers adding such a law, at the behest of the software companies (especially M$). Assuming that they eventually pass it, it is likely to become retroactively effective, ex-post-facto not withstanding.

    I understand that this is technically not legal under contract law (unilateral modification) -- but our current law is so far from legal contract law, it isn't funny.

    Nor do I really expect that our courts are going to have much sway any more. They've already abandoned their authority in too many ways, in this field: I don't think it's going to get better.

    In the end, my own analysis is "if the government is going to encourage theft, and there are some around who want to steal, then theft is going to happen, and there's not a lot you can do about it."

    Gotta remember: law isn't solid. Right and wrong, and natural law are solid. As a country goes bad, though, law gets spongiform.

    --
    Correct Horse Battery Staple: 72 bits of entropy. Enter "Correct H" into google. When it generates the phrase, that's
  25. Key word 50% (IANAL: Lawyers want to reply?) by MickLinux · · Score: 1

    You know, IANAL, but not long ago I read an IAAL slashdot comment (as opposed to IANAL), and he said that if you ask about your chances in any lawsuit, the lawyer will say "50%: it depends on how good I am vs. how good the other lawyer is, and what the judge is like."

    So any question you ask, still has to be answered in a court of law if you get sued, and at that point, your chances are 50%. Except against Microsoft, which is likely to have a much better lawyer than you. Or engage in barratry. Or sponsor another company to drive you out of business with barratry.

    Now, I rather suspect that in a country with a decent legal system, that "50%" answer would not be the case. But we seem to have a "50%" situation in law right now.

    That being the case, I wonder if the $200 isn't $200 wasted.

    Comments, anyone? (Especially lawyers?)

    --
    Correct Horse Battery Staple: 72 bits of entropy. Enter "Correct H" into google. When it generates the phrase, that's
  26. Derivative work of what? by Anonymous Coward · · Score: 0

    I don't think it is a derivative work, since I cannot see an original work except my own. The wizard is a tool that takes some input and creates, based on some rules, appropriate output. The C-preprocessor does similar work, so does a compiler, or even a printer driver that saves PostScript files.

  27. An Alternative by cavemanf16 · · Score: 1

    As I am generally adverse to Microsoft and every ultra-bloated software package that comes out of the unholy lair in Redmond, WA, I had to find myself a semi-useful, similar alternative to VC++ for my C++ programming class this semester. What I found is Dev-C++ from Bloodshed Software. From their website regarding Dev-C++'s features:

    Bloodshed Dev-C++ is a full-featured Integrated Development Environment (IDE) for the C/C++ programming language. It uses Mingw port of GCC (GNU Compiler Collection) as it's compiler. Dev-C++ can also be used in combination with Cygwin or any other GCC based compiler.

    Features are :

    - Support GCC-based compilers
    - Integrated debugging (using GDB)
    - Project Manager
    - Customizable syntax highlighting editor
    - Class Browser
    - Code Completion
    - Function listing
    - Profiling support
    - Quickly create Windows, console, static libraries and DLLs
    - Support of templates for creating your own project types
    - Makefile creation
    - Edit and compile Resource files
    - Tool Manager
    - Print support
    - Find and replace facilities
    - CVS support

    Source code : Delphi 6 Source code of Dev-C++ is available for free under the GNU General Public License (GPL)


    I've used it for two simple labs so far, and while it may not be as "full-featured" as VC++, it's also simple to set up and use without a fuss, AND it still looks and feels to this novice programmer, just like VC++. (minus the horror of "Microsoft" bloat as far as I can tell) In fact, using WinXP at the school computer labs with VC++ 6.0 has given me compile errors and random memory overflow problems (they have new computers, it's not bad hardware) whereas Dev-C++ has not given me any problems building, compiling, and executing my programs. (Yes, I had random errors with VC++ that were NOT related to my program as I restarted the school computer and it compiled just fine with 0 changes in my code - go figure)

  28. Linux is dying... by Anonymous Coward · · Score: 0

    Linux is dying! Thanks SCO!

  29. why use vc++ in the first place? by mzipay · · Score: 1

    to be honest, i don't understand the motivation for using vc++ in a non-professional (read: outside of work) capacity in the first place. i realize the $99-$129 "professional version" price tag that i've seen, and the even cheaper academic pricing, are not too shabby compared with "enterprise" pricing... but they're still more expensive than $0! there are more than several freely available alternative compilers for win32 machines - cygwin gcc, borland (debugger also), djgpp, open watcom, lcc, MinGW, and Digital Mars (nb: haven't examined the license in detail) to name a few. can anyone else shed some light on why a developer might prefer vc++, or under which circumstances vc++ might be considered a clear-cut better choice than one of the alternatives listed above?

  30. Oi! by jo42 · · Score: 1


    Read the EULA, Luke!

  31. Preach it brother. (nt) by DaedalusHKX · · Score: 1

    Mod me as you will, just thought you two were funny.

    And Khy, please stop advertising for me. I build my own hype machines you know =D

    Lata,
    ~Daedalus

    --
    " What luck for rulers that men do not think" - Adolf Hitler
  32. You are correct, sir! by Latent+Heat · · Score: 1
    In my best Phil Hartman as Ed McMahon to Dana Carvey's Johnny Carson, you are correct, sir!

    I find it interesting that Anders Hejlsberg reverted to wizard-generated code for Visual Studio .NET. I think it is more restrictive than the .DFM model, because with the .DFM model all the object properties are data in the .DFM file, and you (if you know what you are doing!) can override object methods in terms of how stuff is written and read from the .DFM file. If you want to do comparable fancy stuff with .NET (like composite widgets and setting properties of component widgets of composite widgets) you may have to start looking at overriding the classes that control the round trip from Form Designer to code and back (the code DOM classes) and things start to get ugly fast.

    Where things start to get code-wizardy is in using Delphi to generate ActiveX controls. You generate an ActiveX control by starting with a VCL control, and then a code wizard spews out tons of stuff. Their model is that they have base classes that handle all the ugly ActiveX stuff, and that you decorate a class derived from such a base class with your own interfaces. They are essentially using the Bridge Design pattern to have your ActiveX object forward all of your interface method calls to a contained VCL control. An ActiveX control is a bridge to a VCL control much as a VCL control is a bridge to a window-handle control.

    The wizard takes care of 1) the generation of the ActiveX bridge class code from the ActiveX control, 2) the necessary registration calls to go into your "library" app that compiles to a DLL, and 3) generating the "type library" that exposes your ActiveX control methods and properties to the outside world.

    Writing your own VCL control is strictly a matter of inheritance, and any properties you add to the "published" part of a class are exposed to the Form Designer. I think what gums up an ActiveX control is the requirement for maintaining a type library and the requirement that the ActiveX be a bridge to a VCL control. I find it really easy to make changes to a VCL control. Since I don't want to rewizard the ActiveX everytime, I find I have to edit the ActiveX control to keep it in synch with the VCL control. The best way is to use the Type Library Editor, because that allows you to change the ActiveX control interfaces in synch with the IDL code that generates the type library, and once you have updated the ActiveX control interfaces, you can easily write the forwarding code to the corresponding VCL methods.

    Can you ditch the wizard and just edit IDL and Delphi code. Good luck! Besides IDL (Interface Design Language -- the C-like code for specifying COM and ActiveX interfaces and properties) being a piece of work in its own right, Delphi imposes its own bizarre (undocumented) restrictions on IDL, and you may as well accept life as it is and make your interface changes through the Type Library Editor.

    With practice, I find that I can use the Delphi Type Library Editor to modify and maintain and ActiveX control, and it is reasonably easy to do, but it was far from obvious how this was all supposed to work when I started out, and the documentation or how-to books were far from completely helpful on this score. In other words, in addition to using the wizards to spit out an ActiveX from a VCL as a one-time operation, I can make changes to the VCL and keep the ActiveX in synch with the VCL, only it is a really good idea to make all the ActiveX interface changes through the Type Library Editor, which is a really clunky way of writing code sometimes, but it is the only way to keep the IDL and Delphi code in synch and Delphi happy at the same time.

  33. ActiveX control by Latent+Heat · · Score: 1

    Do you suppose you can write an ActiveX control without Wizard support? I think we all have read Petzold and understand enough of the inner workings of the Windows API to write our own class framework for it or to use your cleaned up version of MFC for it. But ActiveX takes the Baroque period of computer programming into the Roccoco. Most how-to books tell you about IUnknown and after that they are cookbooks into the wizards. Can you (easily) do an ActiveX control without wizard support?

    1. Re:ActiveX control by ConceptJunkie · · Score: 1

      To be honest, I've never written an ActiveX control. But I would bet that I could improve on the existing process.

      Of course talk is cheap.

      --
      You are in a maze of twisty little passages, all alike.