Java
- difficult to compile. you usually end up writing a custom batch file to compile each program.
- hard to distribute to other people because you don't usually end up with executables. no .EXE unless you use a special program off the internet.
- they must have the java runtime installed to run your programs.
+ NICE programming library of classes to choose from (not teaching classes, data types)!
+ includes windows stuff
+ GUI oriented
+ windows stuff (swing) requires a book to program
- no low-level system access (that I know of) - all access is provided through JRE
- Java Virtual Machine is somewhat slow to load
- not as fast as C++
+ windows vista/7 compatibility handled by people installing latest JRE (Java from Java.com).
C++
+ has reasonably nice library of functions+ may include windows stuff
- windows stuff is hard to program, even with a good book
- can be somewhat clunky at times to do a job (so use the STL)
+ multiple inheritance, if you think you need it.
- command-line program oriented
+ system and low-level access (access to UNIX Kernel/Darwin/Win32)
+ optional assembler instructions inclusion
+ make/access drivers
+ make/access DLL's (shared libraries)
+ make/access ActiveX/OLE controls
+ fast
+ if GUI, good candidate for writing NSIS installer so people can use the program
- windows vista/7 compatibility must be specially handled
Visual Basic
+ based on Microsoft BASIC (always a nice implementation)
+ access/create ActiveX/OLE controls easily
+ access .Net
+ easy to generate a setup installer (with commercial version)
+ easy to create windows "forms" and draw in windows controls and use them
+ ODBC for accessing databases, great for making database clients
- requires a book or instructor or mentor to learn it
- code not as fast as C++
+ crystal reports plugs in nicely
PHP
+ powerful comprehensive language
- lots of functions that do all kinds of things
+ mysql and posrgewsql functions
+ sqlite functions
+ C file I/O functions
+ includes many C functions
+ XML processing functions
+ http and ftp functions
+ md5, date & time, array functions
+ supports classes & objects
- sometimes hard to write
+ regular expressions
+ looks like C
+ really decent manual with commments and examples available
Auto-it3
- very diffifult to make anything other than a dialog
+ great shell-out for wrapping around command-line executables and turning them into GUIs.
+ BASIC-like
+ can make sub-dialogs using a function
+ concept of local and global variables
+ can generate 64-bit code
+ very small, tight, standalone executable code
+ lots of GUI functions and OS functions
+ includes SQLite database
- ability to call Win32 DLLs like the kernel are not working properly yet
+ code editor and compiler, ability to test-run script from windows explorer.
- fine for small programs, but I wouldn't use it for big projects
+ generally made for automating things
+ regular expressions
take a moment and decide what you would like to do. you will need the JDK to write programs for Java, and a C++ compiler to write programs for C++, and a programmer's editor in all cases (try Notepad++).
I still write in C/C++ and PHP and a few other languages.