Forgot your password?
typodupeerror
Programming IT Technology

Cheap Software Languages for NT? 100

Posted by michael
from the free-as-in-free dept.
JeanBaptiste writes: "I work for a small company that refuses to spend the money on visual studio. I need this (or some other language) to do my job (which isn't programming), and for about a year now I have had to use borland C++ 3.0 for dos to do the things that need doing. I know C/pascal/basic from years ago, but have not had to write any programs for work until recently. My question: Are there any cheap/free programming languages that will make a stable winNT/2000 app?" Well, there's ActiveState, which has perl, python, and assorted other packages and tools.
This discussion has been archived. No new comments can be posted.

Cheap Software Languages for NT?

Comments Filter:
  • cygwin! (Score:4, Informative)

    by b-side.org (533194) <bside@nosPAm.b-side.org> on Sunday March 10, 2002 @01:57AM (#3136966) Homepage
    www.cygwin.com! free GCC compiler!

    click me! [cygwin.com] also, perl!

    python even has gui bindings for windows.. hell, so does java.
    • > python even has gui bindings for windows

      I'm not sure about native Win32 GUI stuff, but Ruby [ruby-lang.org] certainly has some pretty decent OLE [rubycentral.com] support.

      There's also support for native DLL API calls [rubycentral.com], and a free downloadable book [rubycentral.com] (Programming Ruby [amazon.co.uk]).

      The syntax is nice and clean and the object model is lovely. The C API is rather good too; C/ObjC/C++ extensions often end up looking rather like Ruby.

      You can grab Win32 binaries [pragmaticprogrammer.com] from http://www.pragmaticprogrammer.com/ [pragmaticprogrammer.com], which includes a nice selection of bundled modules.
    • I never got GCC to work on Cygwin.

      "Checking to see if GCC can produce executables...failed"

      no matter what I did. No installing apps for me.
  • Not only can you use Cygwin for the command line, but you have access to most of the things available under linux. For example, you can build X apps.
    • other options.... Java. Borland has a nice Java IDE for windows that's free for personal use.

      Lcc32 [virginia.edu] - a free win32 Compiler and IDE. The source for lcc [princeton.edu] (which lcc32 is based on) is also available, and it's a neat little cross-compiler (even if the authors are now MS employees)

  • My school [stanford.edu] sponsors a program that provides free legal advice to small businesses founded by graduates. We once worked with a client not unlike your own employer, who was concerned about wasting thousands of dollars on Cold Fusion licenses for his developers. We came upon the following solution, which is 100% legal because there is no way that it can be discovered unless your employer admits to it: make employees independent contractors who work from home and encourage them to "share" copies of Visual Studio. Some of the finer points of this are:
    • Independent contractors are responsible for their own payroll taxes and red tape. This eases the paperwork burden on your employer, and at the same time allows you to conceal a good deal of otherwise taxable income.
    • The BSA, SPA, and other assorted Software Nazis can not enter a private residence without a search warrant. It is nearly impossible to get a search warrant to look for pirated software. Thus there is no way to get caught doing this.
    • Your employer is absolutely not liable for your use of pirated software to do his work, as long as the software is not present on his own premises. You are absolutely not liable unless the pirated software is discovered, in which case the BSA must prove that you have never had a license for the software (hard) and must get into your house to do so (much harder). I have not been able to find a case in which a search warrant was obtained to investigate personal/business use of pirated software.
    • You will be entitled to unlimited free updates of Visual Studio, as long as Kazaa, Gnutella, and Freenet don't all collapse at once.
    • Your employer may partially subsidize your broadband connection.
    Another client of ours used a slightly different strategy: he used the Windows 2000 EFS (encrypted filesystem) to obscure the pirated copy of Office on each of the PCs in the workplace. His system administrator had a "remote panic button" which would lock down every system in the event of an audit. If the auditors can't break 3DES, they can't prove noncompliance and they would be forced to walk away empty-handed. Remember NOT to keep extra CD-R's of VS lying around if you use this technique.

    Whichever strategy you choose, I wish you the best of luck in exercising your fair use rights as a consumer.

    Fair Use of the Day:

    Gear v3.23 for Dos, OS/2 and Windows :s/n: G02632U89
    News Robot v3.3 32 bits :name/PhrozenCrew@Efnet.#PC96 code/shvppkmt
    Deepsky 98 1.03 :s/n: 082870
    F/A-18 Hornet (mac) :100-98-4298
    Adaptec EZ-SCSI v3.03 for DOS/Windows :s/n: 492848-01


    /fug
    • by dimator (71399) on Sunday March 10, 2002 @02:30AM (#3137016) Homepage Journal
      Wow, those are cool loopholes, but what it all boils down to is that you're still pirating software. I'm not sure a legit business would want to deal with the bad PR if someone did find out (through a disgruntled ex-employee perhaps?) that you only bought one copy of Office for N employees.

      If it was _my_ company, I would just look for alternative software like OpenOffice. Shafting the BSA and Big Software* is definitely a good goal though. ;)

      * I'm officially coining the term Big Software (same evil connotation as Big Tobacco), if it hasn't be coined already. ;)

    • No, this is not a flame. In fact, I'm duly impressed by how much thought you've put into this. And that's what I'm commenting on.

      I use pirated software all the time, and feel no guilt about it, just like most people. However, I would feel guilt for posting a comment like yours. Once you've planned a failsafe strategy to get a whole corporation involved in illegal matters, I think you go from theft to Theft.

      No, I don't really think theft capitalized differs from one with a little "t," in fact I worked for an ISP that just handed Microsoft, Cytrix and Solaris (etc.) software around like cookies and felt no qualm. We had no "strategy," in case we got caught. I know piracy is simply theft, even when I get my mp3s. But like most of us, I acknowlegde that I am a theif and that it is wrong (if only for the fact that it's illegal.)

      This is not a case of consumer rights. "We, the people" do not legislate directly in this country. If we break the laws and steal, let us admit it to ourselves. To use Kazaa is theft, to counsel these "strategies" is uber-theft. We have our open-source, let us use that and protect it --and at least respect the legal status of proprietaries even if we don't obey it.

      Sorry, and thank you.
    • This guy should have IANAL tatooed on his forehead and permenently put in his sig.!

      He calls this " 100% Legal"? I am as much an advocate for Fair Use as anyone you find on Slashdot, but if you listen to this guy you are asking for trouble. If you want ways to not get caught then maybe you should listen to this guy, but if you want "Legal" advise look in other posts.

      Also, from a technical standpoint you really only need a decent text editor and Cygwin or gcc for the compiler, as has already been pointed out in other posts.

    • If access to Microsoft's software products is that important to you, an MSDN subscription is both cheap AND legal, up to a certain (small) number of seats. Otherwise, Linux and StarOffice 5.x are close enough as far as your typical small office goes.

    • (* The BSA, SPA, and other assorted Software Nazis can not enter a private residence without a search warrant. It is nearly impossible to get a search warrant to look for pirated software. Thus there is no way to get caught doing this. *)

      Moral issues aside, don't newer MS products need to be e-registered with MS (who can detect duplic usage)? Or, are you talking about a hacker-altered version?

      (* We came upon the following solution, which is 100% legal .... *)

      No its not. Perhaps 100% non-prosecutable, but still not legal.
      • Nope, most of the older MSDN software requires either no registration key or a generic all-purpose key. It's generally known that all MSDN software that uses a 10-digit key will successfully install using the same generic key.
        The e-registration is only for newer versions of office applications - even VS.NET uses a generic key.

        -jerdenn

    • There is another basic little hole in this scheme (that may have worked 10 years ago.) Anymore, the IRS considers you an employee if you work more than something like 50% time at a given employer (why I stopped being an independent contractor by the way.) The only way around this that I'm aware of is to become a corporation. So you are talking about EACH employee becoming their own corporation.

      Lots of trouble just because you don't use something that is already free! Why not Perl/TK or something equivalent if you have to do gui work? Then as others have mentioned, there is cygwin. There are LOTS of options here from the opensource community. Lay-off the bad advice for how the company should re-form itself (the IRS is wise to this, and will still hold the company liable for lack of paying withholding, etc!)

      • I would be very wary of a company that forced me to be an independent contractor instead of a W2 employee, for a job that up until now had been done by an employee. It's basically a way for the company to save lots of money by having cheap employees and not have to provide benefits or (correct me if I'm wrong) pay payroll taxes.

        As a contractor, I would have to pay for my own health insurance, etc. without the benefit of being part of a group policy. I'd have to contribute my own money to the unemployment fund, or else I wouldn't be eligible for unemployment benefits if I got laid off.

        And all as a loophole to avoid paying for pirated software? Do I really want to work for a company like that? I wouldn't trust them for a minute.

        • "I would be very wary of a company that
          forced me to be an independent contractor
          instead of a W2 employee, for a job that
          up until now had been done by an employee."

          On the other hand, as a contractor,
          wouldn't you have the option of sell-
          ing your software to -other- companies
          as well as to the (current) employers?

          If you design the software to be a bit general
          you might do better as a contractor. ;-)
      • Actually, it isn't really a hard and fast rule about percentage of time spent at a specific site, but a more general list of "20 questions". [arterhadden.com]

        -jerdenn

    • Been disbarred long? (Score:3, Informative)

      by coyote-san (38515)
      That advice is a good way to get in trouble with the IRS in addition to the BSA.

      Here's a big clue - the IRS is well aware of this trick, and it has a bunch of questions is asks to determine whether these people are truly independent contractors or if they're de facto employees. If they're employees, you get hit with back (payroll) taxes and penalties and basically have a miserable life for a few years as the IRS investigates whether you're a tax cheat elsewhere.

      I don't remember the full list of 20 questions, but I do recall that many issues came down to independence, duration of employment, etc. Are your employees... independent consultants registered as a bona fide local business (LLC, DBA, etc?) Do they carry business liability insurance in addition to personal policies? Do they work for you exclusively?
    • Have you ever noticed that whenever someone says something in 100% legal, it never is? Just because you do not get caught does not make it illegal. Just because you are stealing from what you consider an immoral company does not make your actions moral. This ain't Sherwood Forest and the above is a really, really bad idea. Even if you have no morals against stealing software do you really want to put your own head on the chopping block to save the company you work for a few bucks?
    • Are you telling me that an actual lawyer or lawyers is responsible for advising a business to hide taxible income and break copyright law? I'm not a lawyer, but isn't that grounds for disbarment?

      I think this advice is disgusting. If you don't want to pay for software, don't use it -- particularly for business use. If you can't or won't pay the fees, use free or open source software or go without. I'm no fan of Microsoft, and I think that license fees are outrageous -- but one of the justifications that M$, Adobe and the rest use to excuse their huge license fees is "piracy." I suppose you'd advocate ways for businesses to avoid paying invoices for other services and products.

      BTW: your solution is not "100% legal." That implies that you're following the letter of the law, which you are not. Your solution may be 100% prosecution proof, but it is not 100% legal.

      Also: didn't the recent warez busts prove that it's not that difficult to get search warrants for private residences to search for "pirated" software? The BSA and SPA are not government agencies, so they can't get a warrant regardless -- the FBI or local law enforcement will be the ones breaking down your door and confiscating your equipment.
    • I think Stanford would throw you out of the programme and possibly also take legal action if they knew about the solutions you're suggesting. Software piracy is just as much stealing as robbing a bank or robbing little old ladies, no matter what you think of the victim. If you're not willing to pay for commercial applications, don't use them, or start a lobby group to lower prices... Do not encourage crime as a solution.
  • Perl
    Python
    C/C++ (with gcc)

    • I seem to remember bloodshed dev C/C++ being very useful in my previous job (where programming windows wasn't the main aim of the job)

      GCC would've been nice, but unfortunately it doesn't work in windows. ActivePerl is good, although GUIs are't the simplest things to create. Spreadsheets and VBA can get you a certain way, especially on simple tasks.

      The best feature of bloodshed C is the look your manager gives you when you mention the name.
  • .NET (Score:2, Interesting)

    by mustapha (709)
    You can download the .NET SDK for free. It comes with a C# compiler, debugger and documentation. Just use Emacs or anything else you like as your editor.
    • Or you can download sharpdevelop (sharpdevelop.sourceforge.net) and have a pretty slick, Visual Studio-like IDE.
  • by Mr. Uptime (545980) <gregp@NOSPAM.lucent.com> on Sunday March 10, 2002 @02:29AM (#3137015) Homepage
    I have been a software developer for the past 17 years. I have worked with DOS, Windows, UNIX, VMS, OS/390, and many other platforms. And I have to wonder whether you're really looking for a drop-in replacement for Visual Studio, or if you're looking to maximize developer and end-user productivity. And if the latter is the case, I have some recommendations for you.

    I am aware that commercial IDE environments for MS-Win32 development look nice and have many pleasing buttons, but where is the _real_ functionality?

    I have seen _nice_ development front-end tools. I submit that you have not seen the range of tools available, and that your area of development has not required the real, heavy-duty tools which UNIX offers. Or, I should say, you have not _percieved_ this requirement, and the benefit which such tools would offer you in your development arena.

    What you speak of (commercial Win32 IDE environments) offer:

    • IDE with color syntax highlighting
    • Online manuals for function calls and syntax elements at a button-press
    • Ability to arrange a GUI framework, and generate code for same, by dragging some things about in a GUI fashion
    • Compile and link projects with a button press
    • Run and inspect (or interpret and inspect) programs with a button press
    Development environments in the UNIX world offer _always_:

    Pipeline-capable tools

    A real scripting environment to put them together in powerful ways Said tools, used together as above, include:

    automate project regeneration, recompilation of course of arbitrary nature (make, GNU Make)

    automate project compilation/installation cross-platform, cross-OS (Imake, GNU autoconf)

    programatically generate parsers and lexers (lex/flex, yacc/bison)

    Check syntax/portability semantics (lint),

    Pretty-print source code in various languages,

    Find and print patterns (grep),

    Extract strings from binaries (strings),

    Index symbols in source code(ctags/etags),

    Perform powerful macro expansions (preprocessing) of arbitrary nature (m4, notably), (and remember where you got the _C_ preprocessor from)

    Create function libraries (of static/dynamically loaded nature, as supported by host OS) (ar, etc)

    Generate documentation in (plaintext, HTML, PostScript, {La}TeX, others) programatically from source code (many free and commercial, 3rd party tools, portable to any UNIX),

    High quality online documentation in the form of manpages, GNU texinfo/info documents, as well as any vendor-specific documentation in various formats.

    ...and others I or any other person familiar with the Unix environment could list Those were the basics, and available for _every_ UNIX. Notable higher-level environments worth noting include:

    • Emacs: at a _minimum_, Emacs can be considered to be an IDE of a very superior nature, with elisp programming primitives for editor macros of arbitrary complexity/sophistication/power. Emacss' ability to create and use "major modes" for editing of arbitrarily many different languages in a language-specific, nice way, with color syntax highlighting, etc, are not matched by any PC-based IDE I have ever seen, nor expect to.
    • GDB: a debugger of certainly adequate power, able to take advantage of UNIX environment concepts such as core files, as well as debugging of actively running programs (and work-in-progress for debugging running _kernals_, both locally and remotely). Correct me if I am wrong as to state-of-the- debugging-art outside of the UNIX world, but I don't recall any mature tools for debugging MS-Win32 (or Win16) device drivers, which are analogous in difficulty and usefullness to debug, and _very_nasty_ to get wrong...
    • GCC: an eminently capable compiler, capable of (K&R, ANSI) C, C++, and Objective C (plus the languages using C as backend, such as some Pascal compilers, etc) Granted, this compiler has significant faults, so do all MS-environment compilers I have heard of. The big advantage though, is the cross-OS, cross-platform compilation.
    • Emacs + GDB + GCC + other tools integrated: The GNU development environment is _very_ powerful, as an integrated system.
    • NEXTSTEP/OpenStep: Interface Builder/Project Builder a very powerful framework. Useful analogies can be made to DELPHI, which you may be familiar with, and which is based on Object Pascal rather than Objective C.
    I submit that, contrary to your assumption of MS-environment tool superiority, you are tool-starved outside the UNIX world, and many of your best tools (which are buried inside your comfy IDEs) are derived from UNIX tools.
    • You do not have enough tools.
    • They are not available to use separately, low-level.
    • You have no way to combine small, single-purpose, low-level tools into larger useful units.
    • Your tools are not mature by comparison (read: buggy, unpredictable, undocumented, proprietary)
    • Your higher-level tools are not built on a firm basis (excellent low-level tools), and if something breaks, it's REALLY REALLY BROKEN, and you are mostly screwed unless you are intimate with the vendor of the tool
    Linux is the most developer friendly environment I have ever used, and I can't see why any serious software engineers would even consider Windows a viable alternative at all. It may take a bit of pursuading on your part, but the reduced cost and ease of coding for Linux make the decision a no-brainer.

    Mr. Uptime

    • GDB: a debugger of certainly adequate power

      I'm sorry but I'll take Visual Studio's debugger _any day_ over gdb. I'm not a GUI weenie either. It's just way, way more useable and powerful.

      ...I can't see why any serious software engineers would even consider Windows a viable alternative at all. It may take a bit of pursuading on your part, but the reduced cost and ease of coding for Linux make the decision a no-brainer.

      Whoa, hold on there. You can't honestly recommend a complete platform change like that. The asker is looking for a windows IDE, which probably means he already has some hard-earned software he needs to support/maintain.

      • I'm sorry but I'll take Visual Studio's debugger _any day_ over gdb. I'm not a GUI weenie either. It's just way, way more useable and powerful.

        You've got to be kidding! Or maybe you just haven't RTFM'd the gdb manual. GDB has so many more options for memory tracking, accesses, data display than VS - you just need to be able to learn the commands. If you need a fancy GUI on top of your base-level debugger, run DDD on top of it and get graphs of variable values over time, charts of structure layouts and other goodies.

        Cheers,

        Toby Haynes

        • I'll second that. Unix people using gdb or dbx are capable of scripting out full debugging sessions, doing amazing things with it.

          Windows debuggers are pretty much limited to looking at variables, setting breakpoints, stepping into a function, or stepping over a statement. Good luck with that environment. I think it's a good match for the super-powerful DOS command line shell.
    • Note: This isn't intended as either a troll or flaimbait. I'm just trying to make a point.

      Emacs: at a _minimum_, Emacs can be considered to be an IDE of a very superior nature, with elisp programming primitives for editor macros of arbitrary complexity/sophistication/power. Emacss' ability to create and use "major modes" for editing of arbitrarily many different languages in a language-specific, nice way, with color syntax highlighting, etc, are not matched by any PC-based IDE I have ever seen, nor expect to.

      I'll give you good syntax highlighting over a wide variety of languages, but that's about all. Emacs's interface is awful. The design feels like it's been thrown together haphazardly over a long time--and quite frankly, it's in need of a major rewrite. For instance, whose idea was it to put color syntax highlighting in the help menu, and who decided to call it Global Font Lock?

      A good IDE needs to be intuitive and easy to use. Programmers can't afford to spend a long time learning how to use their IDE--that defeats an IDE's purpose. Quite frankly, IDEs like Netbeans, KDevelop, and (god forbid) Visual Developer Studio beat the tar out of Emacs in terms of intuitiveness and general useability.

      That said, I use Emacs for my coding at work. If you know how to use it, and you're writing programs that don't require a lot of seperate files to compile, it can be quite helpful. I just wouldn't want to trust it to manage a large project... and before you mention GNU make, I just want to point out that a lot of programmers are different from us, in that they don't really like configuring things with a text editor and a command line interface.

      Lendrick
      • For instance, whose idea was it to put color syntax highlighting in the help menu, and who decided to call it Global Font Lock?

        Which version of Emacs are you using? GNU Emacs 21 has it as the first choice under the Options menu, listed as "Syntax Highlighting (Global Font Lock mode)". Or am I misunderstanding you?
        • It might be version 20 or so. The menu I'm talking about is Help->Options. If they've moved that to a more intuitive place (just an Options menu) and called it Syntax Highlighting, then they're on the right track. I might just upgrade Emacs. :)
    • Quoth the poster:

      GDB: a debugger of certainly adequate power, able to take advantage of UNIX environment concepts such as core files, as well as debugging of actively running programs (and work-in-progress for debugging running _kernals_, both locally and remotely). Correct me if I am wrong as to state-of-the- debugging-art outside of the UNIX world, but I don't recall any mature tools for debugging MS-Win32 (or Win16) device drivers, which are analogous in difficulty and usefullness to debug, and _very_nasty_ to get wrong...

      There is a product called 'Soft-Ice' which is billed as a 'kernel mode debugger' which is marketed as able to help you debug device drivers you are writing.

      I've never written a device driver, in linux or windows, nor debuged either one using other than print statements, so I don't know how well stuff works on either side of the house, but it is there on both sides.

    • I'm not the first one to point this out to you here, but it bears emphasizing: nearly all of the tools you describe were born on Unix, but they are not confined to Unix. If you're the sort of sociopath that enjoys working with Emacs (kidding! :), then it is readily available for Win32. With Cygwin or the GNU for DOS book (et al) you can install pretty much all the standard Unix command line utilities you want, including the various command shells. So as nice as these tools are -- and I agree, they are great -- your point that this guy has to ditch everything and move to Linux to get it all falls a little flat.

      Moreover, the original poster said (which I found a little confusing) that he's not a programmer, but that he needs to be able to work with these kinds of development tools on Windows. Maybe he's involved in testing or documentation, I don't know. But the fact remains that he has explicitly said he's working in a Windows environment, so that's really what he needs to be looking at here. If the code he's doing needs to interact with COM, MFC, ActiveX, etc, then how productive is it going to be to switch to a platform where all of these things are available -- at best -- only in emulation though Wine? Yeech that sounds ugly. Wouldn't it make *a lot* more sense to work on the target platform if possible, especially if that's where he's starting from to begin with?

      This kind of axe-grinding, sneering, condescending advocacy is exactly what Linux doesn't need. Yes, it has a lot of nice properties, and is worthy on it's own merits. No, it isn't a drop-in replacement for different, properitary technologies, and in some cases that's a good thing. You seem so impressed by all these tools: hasn't anyone ever told you that you need to match the right tool to the right job?

    • Q: Are there any cheap/free programming languages that will make a stable winNT/2000 app?

      A: ... the reduced cost and ease of coding for Linux make the decision a no-brainer.

      How insightful.
    • I have been in programming for 15 years, with 5 years of commercial experience in development and software engineering. I work extensively on Windows and Solaris on a daily basis. And this is my 2c.

      you're looking to maximize developer and end-user productivity

      You have made a massive assumption in this statement and your recommendations regarding it: that developers are familiar and proficient with the "Unix" way of doing things. This is far from a foregone conclusion. Most developers I work with have no familiarity with Unix systems. Often their areas of expertise are not in coding (as the case of the poster of this article), but they use coding to achieve their real job function. In such cases, the easiest tool is often the best tool.

      • IDE with color syntax highlighting
        Of benefit because it makes reading source code easier while you are editting it. As you rightly point out, such editors exist for Unix too.
      • Online manuals for function calls and syntax elements at a button-press
        ... which is arguably easier than switching to another window and running man, which is also not hypertext enabled, so it takes longer to go back and forth to find exactly what you are looking for. You have also ignored between this point and the last the existing of syntax completing editors, which will pop up a list of available functions complete with parameters, etc, which often avoid the need to get help at all.
      • Ability to arrange a GUI framework, and generate code for same, by dragging some things about in a GUI fashion
        You're either a GUI guru, or you never do GUI work. I have worked with people who are dedicated to GUI coding, using Java, MFC, Gtk or one of many other toolkits. To make a stable, usable interface for even a minimal program can easily take a week. Or you can use C++ Builder (since Borland's tools are the best in this regard) and do it in an afternoon.

        The proof of the pudding is in the eating: until very recently we have not seen many attractive, easy to use applications on Unix. They are simply too difficult to implement.

        GUI development is often no recognised for the art/science that it is. Most developers don't even KNOW about tab order, accelerator keys, and the psychological principles of layout and choice. While GUI tools can't help you with all of these, they do make most much easier to access and manipulate.

      Now let's look at what Unix tools offer.

      • Pipeline-capable tools
        To an "everyday" developer, what benefit does this really offer? In an edit-compile-test-debug environment, where do pipes assist you?
      • automate project regeneration, recompilation of course of arbitrary nature (make, GNU Make)
        ...which requires a lot of knowledge to set up. Or you can (right-click) Add files to project, and they automatically compile, link and work. If you really need a more complex build process, you can specify custom build settings in a scripting language (not as powerful as 'sh', but you can call external programs ... say perl for win32).
      • programatically generate parsers and lexers (lex/flex, yacc/bison)
        More questionable benefit. I have worked on one project which required a parser/lexer, mostly because it was involved in source code analysis. Your average user application, including databases, accounting packages, scientific number crunching, etc, does not require a parser. Besides which, all of these tools have win32 ports, and there are good many win32-specific parser generating tools which allow interactive visual specification of the parser rules, which makes yacc grammar files look like tumbleweed on steroids.
      • Check syntax/portability semantics (lint)
        Lint is an exceptionally useful tool ... but the most reffered to implementation is PCLint, which runs on win32.
      • Pretty-print source code in various languages
        ...or you get this built into your editor on win32. Why an external tool?
      • Find and print patterns (grep)
        Both Visual Studio and Borland's IDEs support regular expression find/replace on all files in your project(s). Not many people know or use this functionality, because its simply too complex to learn unless it will make your life more efficient on a regular basis. And for most people, it doesn't.

        One of the biggest problems is that REs are hamstrung when dealing with program code because code is a context-free grammar not a non-deterministic finite automaton. Find/replace across multiple files (which is a lot easier with a dialog than with sed) is often sufficiently powerful.
      • Extract strings from binaries (strings)
        So ...? How many userland developers seriously use this sort of tool?
      • Create function libraries (of static/dynamically loaded nature, as supported by host OS) (ar, etc)
        Nothing that you can't do with any C/C++ compiler on win32. If you really want, you can use cl.exe and do it from the command line.
      • High quality online documentation in the form of manpages, GNU texinfo/info documents, as well as any vendor-specific documentation in various formats.
        We apparently have different definitions of "high quality". To me, "high quality" means accessible, readable, and understandable. It should include examples, and cross reference related documentation. It should be easy to navigate, indexed, searchable and categorised.

        Now I'm sure man provides most of those things, in your opinion. But in the opinion of most developers (as discovered from emperical research for an Honours project) it sucks.

      In case you weren't aware, Emacs, GCC and GDB are all available on win32, with or without Cygwin. In addition, you should probably be informed that GCC with maximum optimisations is likely to give you an application about 25% slower than VC (emperical observation based on a server-side non-database processing application with multiple clients, under load).

  • As others have already mentionned, Cygwin is a good choice.

    DJGPP [delorie.com] is another port of GCC for DOS. It uses the protected mode, so you're not limited to 64K segments. If you want an IDE, RHIDE (available at the same place) is very similar to Borland's.
  • If there for export into the Windows world at large I'd say bite the bullet and buy Visual C++ yourself, and hurry before you're forced to buy the .NET version.

    If you're writing things for internal company stuff Cygwin will probably make you happier. You get most of the wonderful posix development environment without dealing with Microsoft oddities.

    The reason for my duplicity is simple, you can write an app in Visual C++ that doesn't need a lot of extra redistibutables because it uses Microsoft's own DLL's. With cygwin you have to install cygwin on all the machines you want to run on unless you just stick with the basics, for which I'm sure the Borland compiler is fine anyway.

    I'm assuming your not writing code that needs to be really fast or I'd recommend the Intel compiler, but that would make life really complicated.
  • by Anonymous Coward
    • Dev-C++ [bloodshed.net].
    • Borland 5.5 [borland.com] (free command line version) + Emacs or V IDE [objectcentral.com]
  • Java (Score:4, Informative)

    by bwt (68845) on Sunday March 10, 2002 @03:13AM (#3137081) Homepage
    Java with IBM's Eclipse SWT should allow you to write pretty peppy stuff that uses native GUI widgets but is truly cross platform. You even have a choice between a good IDE (netbeans) and powerful text editor (jEdit) for your programming environment. Hell, you can even write your macros in Jython (or JRuby) if that floats your boat.

    Somebody here will no doubt whine that Java isn't open source. If the whining seems a bit abrupt, that's because these people no doubt are in a hurry to get back to tonights checkin to the GNU Classpath project (or was it gpj?)
    • by igrek (127205)
      Interesting. How many stable winNT/2000 apps are written in Java?
      Any examples, besides Java development tools/editors/UMLware consumed by Java community itself?
      Just curious.
    • Just to clarify the original post:

      Eclipse (www.eclipse.org) is a Java IDE, written in Java but using IBMs SWT, which is a cross platform GUI toolkit which uses native widgets.

      Because it uses native widgets, it works well on NT, less well on Linux, and not at all (I think) on Mac OS X.

      But it is a very nice, libre, IDE, and allows you to use Swing (which is *really* cross-platform) as well as SWT.

      Tom
  • Mingw32 or Dev-C++ (Score:4, Informative)

    by strangemoose (218632) <slashdot@NoSpAm.strangesoft.net> on Sunday March 10, 2002 @03:32AM (#3137098) Homepage
    Mingw32 [mingw.org] and (if you like IDEs) Dev-C++ [bloodshed.net] (devcpp comes with mingw32) will create native win32 programs/dlls that directly use the msvcrt dll.
  • Consider Tcl/Tk (Score:2, Interesting)

    by maetenloch (181291)
    Take a look at Visual Tcl [sourceforge.net]. It allows you to build gui-based applications based around Tcl/Tk scripts. The best part is that it's free and it's platform independent.

    Another solution is to look for a previous version of Visual Studio or Borland on Ebay. Also check on Yahoo, as sometimes Microsoft shuts down auctions of it's software on Ebay.

    Truthfully, if your company is too cheap to buy you the tools you need, you have to wonder how serious they are about succeeding.
  • Get LCC now!! (Score:2, Informative)

    by eggstasy (458692)
    I can't believe no one's mentioned this before.
    There is a great, free win32 C compiler with all the win32 libs and a few extras of its own, called LCC.
    It comes with an IDE that includes advanced debugging features and it's pretty easy to use.
    The page:
    www.cs.virginia.edu/~lcc-win32/
    • Problems with LCC:

      1) It has it's own bastardized version of C
      2) It's not ANSI C compliant at all
      3) The licensing scheme is all screwed up since it was Open Source and then went closed source.
      4) It doesn't produce executable code that's anywhere near comparable with GCC.
      5) It was originally written when GCC didn't exist for Windows, well, know it does :)

      If you need a C compiler, get GCC. Develop with Cygwin and compile with Mingw32 :)
  • by Kirruth (544020) on Sunday March 10, 2002 @08:44AM (#3137478) Homepage

    It's not clear what kinds of areas you are working on, so its not easy to recommend a tool.

    Personally, I use C/C++ for general purpose apps. Nevertheless, for text/scripts Perl is hard to beat, for objects/GUIs Python is amazing, and Haskell wipes the floor with all the other languages on numerical/functional work. (OK, I admit, I have no life).

    In terms of tools,

    DevC++ [bloodshed.net]and Cygwin [cygwin.com], work well for C/C++ development, and together form a nice little set of tools.

    Perl can be found at CPAN [cpan.org]which has links to various interpreters and IDEs. It is a language of crazed brilliance, and is wonderfully cross-platform.

    Python [python.org] is really great, comes with a very well-thought-out IDE (IDLE) and a very familiar syntax. It has standard modules which will link it to C++ and Windows.

    And finally, Haskell is at Haskell.org [haskell.org], and offers Hugs, which is probably the most advanced open-source IDE available for any language.

    With so many wondrous open source tools available, I feel pretty bad about saying this, but your best bet in a corporate environment might actually be Java. It's boring, it's a little slow, its overhyped. In short, it is the Devil and whenever I have used it, I have wanted to kill myself and my neighbours. Still, its free, popular and backed by a big old corporation, its very similar to C++ and you won't get fired for choosing it. Best go with Java.

    • Hugs, which is probably the most advanced open-source IDE available for any language.
      Huh? Last time I checked, Hugs offered a GUI wrapper for the console-style interpreter, but hardly anything near an IDE. Did I miss something?
  • well, 360 bucks may not be cheap, but it is compared to the retail price of 1200. check half.com for this price, i've acquired two so far for our company.
    • Save your $360, this is no more legal than pirating the software. The software industry has made itself exempt from the right of first sale, which basicly says "If you bought it, you can sell it." Almost any software you get has license provisions that say you can't resell your software license.

      I believe that there's currently "duck" legislation (If it looks like a sale and quacks like a sale...) on the horizon that would make software more like books in terms of what you can do with it, but I'm not very optimistic about it actually passing. I suspect that Microsoft, IBM, Oracle and the other heavyweights can buy enough politicos to nip it in the bud.
      • AFAIK the vendor(s) we are using are only different from retail chains like best buy in that they are buying in greater volume to sell cheaper, or are merely selling off last year's software in an attempt to get rid of it (i.e. like a clearance).
  • by autopr0n (534291) on Sunday March 10, 2002 @11:21AM (#3137724) Homepage Journal
    There's all kinds of good stuff out there.

    Java, with Borland Jbuilder is free(beer)

    Cgywin, with allmost all the stuff for linux for windows, and you can write windows apps.

    Ruby, python, etc.
    • Java, with Borland Jbuilder is free(beer)

      But just like many companies who don't let you drink beer, Borland won't let you (legally) use the free Jbuilder for comercial development.

      Part of the EULA for the free version of JBuilder is no comercial development. I'm not sure if you are permitted to use it for in-house developement either.
  • Well, Borland C++ 5.5 is free as in beer.
    Also there is mingw32 and cygwin32, but the
    latter is bad in sense of that programmes
    compiled with it must be GPL due to the linkage
    to cygwin1.dll (libc) which is GPL, whereas
    mingw32 produces native Win32 executables linked
    against msvcrt.dll which can be found on nearly
    any Win32 system (except for NT 3.1 and the very
    first version of Win95).

    Pascal might be also free, you can download Turbo
    Pascal from museum.borland.com, Kylix is IIRC free
    for Linux, maybe also for Win32, and there is
    FreePascal.

    Also you can install php4, either native or as
    a plugin for IIS or (better) apache.
    PHP4 runs quite stable, not as stable as e.g.
    Pascal, because it originally wasn't developed
    to support Win32, but it does work.
    If you aren't doing web stuff you should choose
    the native version over the webserver plugin.
  • I work for a small company that refuses to spend the money on visual studio.

    Gosh. Better dust up the old resume. Any company that won't fork over the cash to get you a development environment that you want might soon decide not to fork over the cash to pay your salary. As one other person recommended, you might want to plunk down the cash to get your own license -- it might not be worth the trouble trying to learn a whole new way of doing things if it's going to make you less productive. Plus, you can take it with you elsewhere, and it might even be tax deductible.

    That said, RHIDE & DJGPP is available. Textpad [textpad.com] has all sorts of nice IDE editor thingies and a way to compile java programs (not freeware, though). I've heard lukewarm reviews of LCC -- questionable quality of compiled code, at least at the time of my research.
  • Be careful when using cygwin! The cygwin library is GPL, not LGPL, so any software you write that uses the cygwin library must be GPL, unless you buy a cygwin contract [redhat.com]. If the software you write is for yourself or for internal use for your company, you should be alright. You may want to check out the actual GPL and faqs for it at GNU's [gnu.org] site. If your company has a lawyer team, you may want to consult them too.

    Seeing that you have to talk to the redhat sales team for a contract, I imagine it's pricey.

    • You can use cygwin to develop mingw apps which don't use any of the cygwin runtime (they use the MS runtime dlls which are on all windows systems), and are thus freely distributable as commercial binaries.
  • I work for a small company that refuses to spend the money on visual studio. I need this (or some other language) to do my job (which isn't programming),
    If a company isn't willing to supply the tools you need to do your job then whatever you're trying to do isn't your job.

    Full stop.

    Clearly your issue isn't what tool set you use but exactly what you are being paid to do. If your employer doesn't see value in making you more effective, productive, or whatever else your programming does for you then drop it. Either just do what they want, how they want, or move on.

    Trying to find work-arounds is pointless if it means you epend more time and energy on this and produce something that whomever someday replaces you won't be able to maintain or have a clue how to use. In short: Get "buy-in" or get out of coding, at least in this job.

    With that said it's quite remarkable what many office applications are capable of. I've seen quite sophisticated work done in word processors, spreadsheets and databases. You may already have all of the tools you need available for simply the time of reading the documentation. Scripting can work for good as well as ill in office applications.

    But really; if you can't make a business case for a tool then drop it or get out.

    • MS Office 97 and later come with VBA - Visual Basic for Applications. I have seen programs created within the confines of an Excel spreadsheet that are more complicated and functional than some sold on store shelves...Built-in help files have complete documentation on the use of the language, I think.
  • by spongman (182339) on Sunday March 10, 2002 @03:46PM (#3138730)
    The entire microsoft platform SDK toolset is freely available for download on their site [microsoft.com]. Even if you already have Visual Studio (which you don't need), I'd recommend getting this is it has the latest headers and tools. It comes complete with compilers, libraries, documentation, tools, debuggers, etc... All it's lacking is the nice UI.

    The .NET Framework is also freely available for download [microsoft.com]. Again, it comes with everything you need to build .NET applications, except the nice UI (use vim/emacs/sharpdevelop...)

    The root for the SDK downloads is here [microsoft.com]

  • Just download the .NET framework and command-line tools are you are all ready to go. They do the same thing as Visual Studio without the IDE.
  • Once again, an Ask Slashdot with too much missing context. You say you're currently using a DOS IDE because your company "refuses to spend the money on visual studio". You also imply that your programming experience is pretty limited.

    What do you imagine Visual Studio would do for you? It's not any easier to use than any other IDE. Exactly the opposite. What you get when you buy Visual Studio is a huge mass of compilers, interpreters, debuggers, libraries, code generators, "wizards", and god knows what else. Having this tool will not magically make up for your own limitations as a programmer.

    You need to sit down and carefully document what kind of programming you do and/or want to do. Then you'll be a position to ask around for a suitable IDE or other development environment. And also in a better position to convince your boss to spend a little money.

  • Binaries distributions of GNAT 3.14p, the free, open-souce GNU Ada compiler are available for Windows, Solaris, Linux, and OS/2 at ftp://ftp.cs.nyu.edu/pub/gnat/3.14p/ [nyu.edu] There are also different free bindings for doing Windows GUI apps. Look at the included Gnu Visual Debugger (GVD) as an example of a Windows app built using GTKAda.
  • Sounds like you write utility programs for system administration type tasks.

    You were a little vague but you did state it 'wasn't programming'. Well if you are manipulating files and writing batch files to execute your command line programs then I would highly recommend Python.

    The ActiveState Active Python is FREE and comes with the PythonWin IDE that performs code completion, color syntax highlighting, Windows COM interface (you can automate MS-Word, etc.), and a limited debugger.

    Python is simple, clean, elegant, and much more powerful than at first look. It's very object based but you are not forced to write classes. It's byte-compiled like Java but much faster. You simply execute a text .PY file and it auto-compiles into a .PYC file so fast you won't even notice it. You can distribute the .PYC file if you don't want to leave source code lying about.

    It comes with an interactive python interpreter that allows you to type code in to test or experiment.

    Python can hook into C/C++ libraries and use their API's. An example of this is the COM interface.

    It includes the TK GUI which is simple to code and you won't need a WYSIWYG RAD environment to create the windows. It can automatically align objects in the window. It's perfect for simple interfaces that are quick to create. There are several other GUI options available for multiple platforms as well.

    If you are looking for a more powerful IDE, ActiveState's Komodo is quite nice but the PythonWin IDE is not bad either. There is also an IDE written in Python called IDLE that is simpler than PythonWin but still effective. In order of power: IDLE, PythonWin, Komodo, and VisualPython (plugs into .Net Visual Studio).

    Obviously, you are trying to avoid buying .Net Visual Studio so VisualPython is not what you are looking for. Basically, VisualPython creates .Net executables written in Python rather than C# or VB.

    You can even get Jython and compile your Python code into Java Byte Code! Great for prototyping Java code or just doing small things quickly.

    To top it all off Python runs on many different platforms, is very easy to read, is very productive, includes the TK cross-platform GUI, and you'll like it's price; FREE.

    Ruby is another interesting language but since it's so very new, there are few books. Python has ton's of excellent books as well as many online tutorials and forums.

  • Many alternatives (Score:3, Informative)

    by Twylite (234238) <twylite@crypt[ ].za ['.co' in gap]> on Monday March 11, 2002 @10:45AM (#3142402) Homepage

    There are many alternatives for developing with free (as in beer) tools on Win32.

    • Cygwin/GCC (www.cygwin.com): Cygwin is a Posix-on-win32 emulation layer, and associated Unix-like environment. GPLed, and you can't redistribute your program under any other license for that reason. Good choice if you like a Unix-like environment.
    • Mingw32 (www.mingw.org): Unix tools and GCC compiler on Win32 without an emulation layer. Not as easy as Cygwin (IMHO) but your software is free of restrictions and doesn't require extra runtime DLLs (only win32 platform DLLs).
    • Java (java.sun.com): I think this has been largely underrated in the discussion so far. Java is a great language for writing applications and saves you from a lot of the tricks and traps of C/C++. OTOH if you're familiar with C/C++ and not with Java, or if you are aiming at CLI or scientific (number crunching) applications, Java isn't such a great choice.
    • more Java: There are a number of decent IDEs available, including Netbeans (www.netbeans.org) and Borland's JBuilder (www.borland.com, personal edition is free for non-commercial use).
    • Perl: Get it as part of Cygwin, or download ActiveState's Perl (www.activestate.com) which has a win32 GUI installer, better docs and better win32 support. Perl's GUI support can be a bit cryptic (IMHO) compared to other languages. As a scripting language you probably don't want to use this if you need to distribute binaries.
    • Tcl/Tk (www.scriptics.com): Excellent for GUI applications and prototypes, not so great for processing. Tcl/Tk is a glue language that interfaces well with a LOT of other languages. Brilliant GUI support, but can look a bit kludgy. Easy to use once you've got the hang of it, but as with Perl its a scripting language and you don't want to distribute it (although Scriptics does offer commercial tools to compile Tcl to binary code).
    • Python, Ruby, Basic, Fortran, Cobol, ... they all have free compilers and runtimes for win32, and may be what you are looking for.
  • Eclipse [eclipse.org] has already been mentioned as a Java IDE, but I thought I should add that Eclipse has plugins available for other languages. Initially starting with C and C++ [eclipse.org], the plans are to extend it to other languages.
  • Run these two programs:

    http://www.xemacs.org/Download/win32/setup.exe
    http://www.cygwin.com/setup.exe

    and you'll be all set! Seriously, evn though gcc has its quirks (as several posters have mentioned), it should be sufficient for any task that you're doing with Borland C for DOS. Additionally you get all the basic dev tools (cvs, make, etc.) if your programs ever get beyond the one-off stage. Cygwin also comes with Python and Perl; handy for those tasks for which C is just too tedious.
  • Check out SharpDevelop, found here [icsharpcode.net]. It's an open source (GPL'ed) app for editing both C# and VB.NET. All you need is to install the .NET frameworks [asp.net] first.
  • The original poster is unlikely to be interested, but some of the other readers might be... I would recommend PLT Scheme [plt-scheme.org]. It is a very complete, powerful, and polished environment for Scheme programming, which includes an interpreter, a compiler, an IDE with project management and a Scheme-specific intelligent editor, an interactive debugger, and lots of powerful libraries including multithreading, high and low level networking, cross-platform GUI-building based on WX, regexes, XML handling, etc. It runs on Windows, Mac, and several Unixes, and is both free and libre. Try it!
  • You can download the Java SDK [sun.com] for free. You can also use NetBeans [netbeans.org] which is a nice, open-source IDE.
  • I suggest you get the latest version of SUNs JAVA SDK, and grab a (free) IDE from Sun (Forte) or Eclipse from IBM

Men love to wonder, and that is the seed of science.

Working...