Slashdot Mirror


Cheap Software Languages for NT?

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.

13 of 100 comments (clear)

  1. cygwin! by b-side.org · · Score: 4, Informative

    www.cygwin.com! free GCC compiler!

    click me! also, perl!

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

    --
    Indie rock lives! b-side!
  2. Are you asking the right question? by Mr.+Uptime · · Score: 5, Insightful
    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

  3. Re:Having your cake and eating it too by dimator · · Score: 4, Insightful

    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. ;)

    --
    python -c "x='python -c %sx=%s; print x%%(chr(34),repr(x),chr(34))%s'; print x%(chr(34),repr(x),chr(34))"
  4. Java by bwt · · Score: 4, Informative

    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?)

  5. Mingw32 or Dev-C++ by strangemoose · · Score: 4, Informative

    Mingw32 and (if you like IDEs) Dev-C++ (devcpp comes with mingw32) will create native win32 programs/dlls that directly use the msvcrt dll.

    --
    Sig? What sig?
  6. Re:Cheap, but not free (PowerBASIC) by Katravax · · Score: 3, Interesting

    I want to second this. PowerBASIC is fantastic. It's about $150 or so for the Win32 GUI-mode compiler if you shop around (check Provantage), and it makes the tiniest, fastest executables I've seen, short of raw assembly. The user forums on the PowerBASIC site are also excellent, and you can get help on just about anything, with commented source code even.

    It's got BASIC-like abstraction of dialogs, TCP/IP, file I/O, regex, and more. The source output is readable by pretty much any programmer. If you choose, you can also write your apps SDK-style rather than using the dialog-abstraction keywords.

    Don't mistake it for a VB-alike. It supports all native Windows datatypes as well as pointers. I've written fairly GUI-intensive apps that do quite a bit of work (regexing, FTPing, SMTPing, and more) where the output file was less than 80K. Also, the output executable is a normal PE Windows exe, and has zero external runtimes.

    It's the next best thing to raw assembly, with the ease of coding in BASIC. I'm also a faithful customer of PowerBASIC, and don't work for them.

  7. Depends on what you are programming by Kirruth · · Score: 3, Informative

    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++and Cygwin, work well for C/C++ development, and together form a nice little set of tools.

    Perl can be found at CPANwhich has links to various interpreters and IDEs. It is a language of crazed brilliance, and is wonderfully cross-platform.

    Python 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, 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.

    --
    "Well, put a stake in my heart and drag me into sunlight."
  8. well. if you were a good programmer you would know by autopr0n · · Score: 3, Informative

    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.

    --
    autopr0n is like, down and stuff.
  9. Re:Having your cake and eating it too by stevew · · Score: 3, Informative

    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!)

    --
    Have you compiled your kernel today??
  10. Re:Be careful when using cygwin by kevin42 · · Score: 3, Informative

    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.

  11. Microsoft's tools are FREE!! by spongman · · Score: 3, Informative
    The entire microsoft platform SDK toolset is freely available for download on their site. 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. 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

  12. Been disbarred long? by coyote-san · · Score: 3, Informative

    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?

    --
    For every complex problem there is an answer that is clear, simple, and wrong. -- H L Mencken
  13. Many alternatives by Twylite · · Score: 3, Informative

    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.
    --
    i-name =twylite [http://public.xdi.org/=twylite], see idcommons.net