The GUI of an ATM is only the very smallest part of it - There is special hardware for the card and the money dispensor to be run.
Resistance angainst any for of failure and exploits is more important. A python hacker would not have a clue about the complexity of the needed transaction security when one doshes our real money. No mistake neither in favour of the bank nor in favour of the customer is allowed.
Banks have own test teams - just to make shure that is works.
Don't get me wrong: You can use Wx/python to implement - but you need real software engeneers to do it - and not just 1 python guy with UI experience.
On a side note: I allways thought that in programming language comparison not the ability of the language is important but the ability, skill and experience of the average programmer using that language. The old saying holds true: Real programmers can programm Fortran in any language.
Well you can actualy change the speed with wich you travel to the future. Traveling faster within the first 3 dimentions makes you travel faster in the 4 dimentsion as well. Just as well as placing youself close to an object of significant mass.
All of corse reletive to the objects surrounding you.
But then again: You are right that traveling backward is the real problem.
Actualy REXX does not call a OS command - Rexx established a two way communication with the parent process and passes the command on. So it's not an OS command but a command to the shell used.
This is interesting if the Rexx interpreter is embedded inside an editor instead of an command line shell. In which case all un-recognised commands become editor instructions instead of shell commands.
Honestly, if your knowlege of a programming language is older then 12 month you should not write a comment any more since programming language evolve rather fast.
And the current version Rexx:
does have procedures. does have local variables. is object orientated.
Well, I remember that DB2 uses double quotes to denote id. With double qutoes you can use spaces inside id's, keywords as id and last not least id's become case sensitive (without double quotes they are converted to upper case).
So quoting id's is quite usefull. Only It should have been:
Karma: SELECT "karma" FROM "users" WHERE "userid"=138474;
Well they both beat FreePascal. But then on the list of Pascal/Algol style langages Ada beats them both - and by a good margin that is.
For those who are to lazy to follow links:...
4) Ada 95 GNAT 38.92 2
5) Eiffel SmartEiffel 25.14 10
6) Oberon-2 OO2C 21.98 11... 21) Pascal Free Pascal 11.04 17...
That's with default multipliers - which won't have object and object-method. Add them and GNAT moves to place 2.
Well, I am not a Fortran advocate but even I know that modern Fortran is not spelled all UPPER CASE.
Which leads me to belive that your informations are not up to date - a Fortran advocate can tell you when the move from FORTRAN to Fortran was done but it must be more then 10 years ago.
But what strikes me more: You as a C/C++ advocate should know that there is only one fully compiant C99 compiler available. Apart from that:
Maybe C/C++ could have evolved differently, if it wasn't so much a "commercial" software. All companies did incompatible improvements to C/C++ so their marketing people could say "ours is the best C/C++ in the market".
Only of corse they arn't - MS-C does not evern know about the keyword "restrict" which is an optimzing hint and the minimum implementation requironment is to ignore the keyword.
Fully working implementation of C99's VA arrays - no where to see - appart from just one compiler (http://www.comeaucomputing.com./
In Germany we have a saying: "Don't throw stones if you sit in glass house".
Well true, nothing of corse. Prehaps a bit complex since VM instructions are ver high level.
As for "sandboxing and privilege separation: if you think of the four privilege rings in the x386 architecture then it has allready been done. Only that most OS don't actualy use that feature of the x386 architecture. (i.E. only use ring 0 and 3).
Other posters pointed that out allready: the available savety feratures of the x386 arn't actualy used.
True, C# and Java would need a VM. However there are traditional (non VM) languages which have build in buffer protection. Fortran was mentioned by another poster - I would add Ada to the list.
Unlike common believe they are suitable for low level system programming. They are also not old and outdated - both Ada and Fortran have current (not older then 10 years) ISO standards and will get a new ISO standarts soon.
The only problem is that the names are not common buzz words.
Even if the Police keeps quite to local papers or your neigbours are blind and deaf the Germany Police will conficate your computer inclusive monitor, printer and every CD/DVD they can find - and they probably seach under the foorboards as well. There where times when they even took the electriciy sockets - there where connected to your computer after all.
And when the innocent - after at least 6 Month - get it all back there is no compensation - not even a "Sorry, we where wrong".
Sorry but I have a different opinion on "no harm done".
Well, I guess you nevel looked over you C fence - otherwise you would know better. Maybe you want to read a little about Ada (http://en.wikibooks.org/wiki/Programming:Ada:Tuto rials) before making false claims.
At least you should know it that the language is spelled Ada - after Augusta Ada King, Countess of Lovelace (http://en.wikipedia.org/wiki/Ada_Lovelace).
You see, Ada programers are different. When other programmers choose a cammel or a snake as there symbol we have choosen a woman:-).
Anyway, to answer/correct your statemens:
To 1)
Not all buffers are on the stack - there is heap memory and static memory as well. Besides "Denail of Service" attacks don't need executable memory - they just need to overwrite memory to make the programm crash.
And the new JPEC viruses use interger range overruns.
Not to forget: "Denail of Service" on a Airbus 380 means 500 coffins. Don't you think that Airbus checks twice before choose a programming language. Did they choose C? - No, they did not!
To 2)
You might want to read about Ada's Interfaces.C and System.Mashine_Code packages. Ada was designed to get rockets into space and keep planes in the air. Of corse it can do all the low level system progamming stuff. Actualy much better then C. I have done many years of C programming - I know.
It is quite feasible to write straight C/assembly and be totally secure,
as the Unix example shows us. Security has nothing to do with
programming languages.
But they are not. At least twice a week I get a security update from SuSE. Usualy a buffer overrun and sometimes an integer overrun.
Now if you think that Algol 60 (yep 1960!) has build in buffer overrun protection it make you wonder. All those update would not be needed when a language was used which provided basic security features.
And indeed the Boing 7E7 Dreamliner Software in witten in Ada - which has both build in buffer overrun and build in integer overrun protection. And guess what: The Airbus uses Ada as well.
True, Java is unlikely to be self hosted. But you should remember that compiler desiners are top programmers while majority of programmers are only average (its after all the definition of "average").
And here lies the fundametal problem of modern software development - C/C++ are to difficult for the average programmerer - still there are the most used languages.
You don't agree? I give you an example. A programming language for average programmers should not compile the following code:
int X [10]; X [10] = 1;
Or if it does compile a runtime exeption should be raised. You think everybody would spot that? Well how about:
int X [10]; int Y;//// 100 Lines code with lot's of if () and for () and an enourmous switch ()// Y = 10;//// 100 Lines futher code with more if () and for ()// and an another enourmous switch ()// X [Y] = 1;
The is a statistic that the average Ada programmer spends only 1/10th of its time with a debugger when compared to the average C programmer.
Yes, the "old time languages" have beein improved all the time and now almost all have OO and other interesting features. I think it is worth to have a look at them.
(http://en.wikibooks.org/wiki/Programming_langua ge s_bookshelf)
The money part: You need to track if the customer got his money and - in the event of a crash - decide on roll foreward or roll back is needed.
Ahh, and don't forget the special hardware needed to dosh out the money. And the one for the card.
All I want to make clear is that it is not a "1 python hacker" job. Which reminds me: when cash-money is involved then you need 4-eys anyway.
Shows the OP had no idea at all about how software developmend at banks is done.
The GUI of an ATM is only the very smallest part of it - There is special hardware for the card and the money dispensor to be run.
Resistance angainst any for of failure and exploits is more important. A python hacker would not have a clue about the complexity of the needed transaction security when one doshes our real money. No mistake neither in favour of the bank nor in favour of the customer is allowed.
Banks have own test teams - just to make shure that is works.
Don't get me wrong: You can use Wx/python to implement - but you need real software engeneers to do it - and not just 1 python guy with UI experience.
On a side note: I allways thought that in programming language comparison not the ability of the language is important but the ability, skill and experience of the average programmer using that language. The old saying holds true: Real programmers can programm Fortran in any language.
You are absolutly right - and yes Doubleclick was the first to be in my proxys block list.
Well you can actualy change the speed with wich you travel to the future. Traveling faster within the first 3 dimentions makes you travel faster in the 4 dimentsion as well. Just as well as placing youself close to an object of significant mass.
All of corse reletive to the objects surrounding you.
But then again: You are right that traveling backward is the real problem.
Actualy REXX does not call a OS command - Rexx established a two way communication with the parent process and passes the command on. So it's not an OS command but a command to the shell used.
This is interesting if the Rexx interpreter is embedded inside an editor instead of an command line shell. In which case all un-recognised commands become editor instructions instead of shell commands.
Martin
Honestly, if your knowlege of a programming language is older then 12 month you should not write a comment any more since programming language evolve rather fast.
And the current version Rexx:
does have procedures.
does have local variables.
is object orientated.
Martin
Well, I remember that DB2 uses double quotes to denote id. With double qutoes you can use spaces inside id's, keywords as id and last not least id's become case sensitive (without double quotes they are converted to upper case).
So quoting id's is quite usefull. Only It should have been:
Karma: SELECT "karma" FROM "users" WHERE "userid"=138474;
Well they both beat FreePascal. But then on the list of Pascal/Algol style langages Ada beats them both - and by a good margin that is.
... ... ...
For those who are to lazy to follow links:
4) Ada 95 GNAT 38.92 2
5) Eiffel SmartEiffel 25.14 10
6) Oberon-2 OO2C 21.98 11
21) Pascal Free Pascal 11.04 17
That's with default multipliers - which won't have object and object-method. Add them and GNAT moves to place 2.
Martin
Well, I am not a Fortran advocate but even I know that modern Fortran is not spelled all UPPER CASE.
Which leads me to belive that your informations are not up to date - a Fortran advocate can tell you when the move from FORTRAN to Fortran was done but it must be more then 10 years ago.
But what strikes me more: You as a C/C++ advocate should know that there is only one fully compiant C99 compiler available. Apart from that:
Maybe C/C++ could have evolved differently, if it wasn't so much a "commercial" software. All companies did incompatible improvements to C/C++ so their marketing people could say "ours is the best C/C++ in the market".
Only of corse they arn't - MS-C does not evern know about the keyword "restrict" which is an optimzing hint and the minimum implementation requironment is to ignore the keyword.
Fully working implementation of C99's VA arrays - no where to see - appart from just one compiler (http://www.comeaucomputing.com./
In Germany we have a saying: "Don't throw stones if you sit in glass house".
Martin
Well true, nothing of corse. Prehaps a bit complex since VM instructions are ver high level.
As for "sandboxing and privilege separation: if you think of the four privilege rings in the x386 architecture then it has allready been done. Only that most OS don't actualy use that feature of the x386 architecture. (i.E. only use ring 0 and 3).
Other posters pointed that out allready: the available savety feratures of the x386 arn't actualy used.
Martin
True, C# and Java would need a VM. However there are traditional (non VM) languages which have build in buffer protection. Fortran was mentioned by another poster - I would add Ada to the list.
Unlike common believe they are suitable for low level system programming. They are also not old and outdated - both Ada and Fortran have current (not older then 10 years) ISO standards and will get a new ISO standarts soon.
The only problem is that the names are not common buzz words.
Martin
REXX is open source since about 12.2004. Only the RexxLA haven't made a release yet
Everbody can download an early release from the cvs archive whenever he or she wants. As soon as 4.0.0 is released you can start downloading 4.0.1.
If if have been been found guilty and go bancrupt then it's called "punshment".
In a propper legal systen he should have the right and ability to defent himself to the end and then go bancrupt as he deserves!
Martin
... so the use of other language inside gcc is not forbidden as such.
Martin.
Crime or not is determined by where you currently are. Many people on holiday have painfully learned that.
Besides: The "age of consent" is not neccesary the right measurement. In Germany it is 16 - however on a profesional basis it's 18.
And if I remember right for "profesional" is 21 in the US (feel free to correct me).
Even if the Police keeps quite to local papers or your neigbours are blind and deaf the Germany Police will conficate your computer inclusive monitor, printer and every CD/DVD they can find - and they probably seach under the foorboards as well. There where times when they even took the electriciy sockets - there where connected to your computer after all.
And when the innocent - after at least 6 Month - get it all back there is no compensation - not even a "Sorry, we where wrong".
Sorry but I have a different opinion on "no harm done".
Well for C this is actualy right - C hasn't got reference types. However there are languages where this is not true. C++ and Ada spring to my mind:
// is false
C++:
int a;
int& b = a;
if (&a != &b)
Ada:
a : aliased Integer;
b : aliased Integer;
for b'Address use a'Address;
if a'Address != b'Address then -- false as well
And I am shure there are other languages which allow similar constructs.
Martin
Want a different radio? Go buy one, then.
If you don't like your radio in your car you can have it removed in about 30 sec.
Try removing Internet Explorer. Or Windows Media Player. etc. pp.
self-reliant
Stolen almost everything from the native americans....
distrust central authority
We call it "wild west manners" - and it isn't a compliment.
make use of available resources
Destroyed tall grass and buffalos in the process....
Well, I guess you nevel looked over you C fence - otherwise you would know better. Maybe you want to read a little about Ada (http://en.wikibooks.org/wiki/Programming:Ada:Tuto rials) before making false claims.
:-) .
At least you should know it that the language is spelled Ada - after Augusta Ada King, Countess of Lovelace (http://en.wikipedia.org/wiki/Ada_Lovelace).
You see, Ada programers are different. When other programmers choose a cammel or a snake as there symbol we have choosen a woman
Anyway, to answer/correct your statemens:
To 1)
Not all buffers are on the stack - there is heap memory and static memory as well. Besides "Denail of Service" attacks don't need executable memory - they just need to overwrite memory to make the programm crash.
And the new JPEC viruses use interger range overruns.
Not to forget: "Denail of Service" on a Airbus 380 means 500 coffins. Don't you think that Airbus checks twice before choose a programming language. Did they choose C? - No, they did not!
To 2)
You might want to read about Ada's Interfaces.C and System.Mashine_Code packages. Ada was designed to get rockets into space and keep planes in the air. Of corse it can do all the low level system progamming stuff. Actualy much better then C. I have done many years of C programming - I know.
Martin
It is quite feasible to write straight C/assembly and be totally secure,
as the Unix example shows us. Security has nothing to do with
programming languages.
But they are not. At least twice a week I get a security update from SuSE. Usualy a buffer overrun and sometimes an integer overrun.
Now if you think that Algol 60 (yep 1960!) has build in buffer overrun protection it make you wonder. All those update would not be needed when a language was used which provided basic security features.
And indeed the Boing 7E7 Dreamliner Software in witten in Ada - which has both build in buffer overrun and build in integer overrun protection. And guess what: The Airbus uses Ada as well.
Martin
True, Java is unlikely to be self hosted. But you should remember that compiler desiners are top programmers while majority of programmers are only average (its after all the definition of "average").
// // 100 Lines code with lot's of if () and for () and an enourmous switch () // // // 100 Lines futher code with more if () and for () // and an another enourmous switch () //
And here lies the fundametal problem of modern software development - C/C++ are to difficult for the average programmerer - still there are the most used languages.
You don't agree? I give you an example. A programming language for average programmers should not compile the following code:
int X [10];
X [10] = 1;
Or if it does compile a runtime exeption should be raised. You think everybody would spot that? Well how about:
int X [10];
int Y;
Y = 10;
X [Y] = 1;
The is a statistic that the average Ada programmer spends only 1/10th of its time with a debugger when compared to the average C programmer.
Martin
Actualy:
* requires a support contract for a fee
if you have the right product and customers:
See http://www.adacore.com
Dosn't look like OpenSource?
Then look here http://libre.act-europe.fr
Martin
Yes, the "old time languages" have beein improved all the time and now almost all have OO and other interesting features. I think it is worth to have a look at them.
a ge s_bookshelf)
(http://en.wikibooks.org/wiki/Programming_langu