I would, realistically say, that C++ and Java are not necessarily better than each other in the general sense. WHich language you are going into is your choice depending on the scenario.
C++ is good for raw hacking, and high-level languages like Java (proprietary) and PHP are good for quick apps.
In the middle you have things like nasty little Perl and ASP/VB .NET (it's not as bad as the Perl Lobby wants you to think), which allow you to fine tune your apps for security and performance which easing the process for n00bs and script kiddies.
I decided to analogize this to how a (language) programmer would use an ATM machine. I didn't want to do the toaster, toilet or airplane jokes, for OBVIOUS reasons.
Java:
Stick card in ATM. Enter PIN. Take money and card.
Perl:
Stick card in ATM, but pieces at a time. Pointer pointer pipe pipe balh blah. Move the PIN code from something to something else. ReDim PIN as a integer value... clobber cobber clobber. Module communication blah blah. Now enter the pin using some fancy API. Blah blah.
ASP/VB.NET:
Make sure you have the right ATM card, and the right PIN. Make sure this is an ATM machine. Declare the ATM machine and the PIN. FInd out the ATM's interface. Move the ATM card object and send it into the machine, keeping the channel open. Move the pin and send. Take card and money, and make sure it's your card and the right amount of money...
Hard Level:
EXCUSE the horrible syntax. I am making it easier to read.
Code: Select all
#Declare ATMCard AS Magnetic.Card.ATM.Access
#Declare PINcode AS Integer
#Include atm_io.h
#Include atm_pincode.h
#Include junkapi.c
var PINarray = for each char in MyBrain[PINcode] // Get's PINcode from memory
var integer PINlength = PINarray.length[] class _.Length
var int PINcode == for Each char in PINarray while i < PINlength { PINarray[i],i++, }
/* Check the PINcode to make sure */
for Each char(trim(PINcode)) in PINcode while i!=PINlength{ if char(trim(PINcode,i) != PINarray[i] then GOTO Oops! else next}
/* Give the ATM the Card! */
get ATM.CardSlot
obj CardSlot = use atm_io::ATM.CardSlot
CardSlot << ATMCard
/* Give the ATM the pin...
// Ensure that the buttons on ATM are in the right order
You don't want to see the rest.... it's just too silly