From dot.KDE.org: “Adam
Treat released the initial version of
Qt bindings for C#,
which consists of 476 Qt classes converted to C#.
The bindings work with the Mono
compiler, runtime environment and class libraries, enabling a fully Open Source implementation of C# for Qt. While not yet ready for
a real application, Adam has managed to write and execute a
Hello World! program
(screenshot).
KDE bindings are on the drawing board. Shortly thereafter,
Phil Thompson, Jim Bublitz and
theKompany.com
released KDE 2 and KDE
3 bindings for Python. Together with the Java, Objective C and C bindings in the
kdebindings
module, as well as the
Ruby
bindings, KDE is providing developers a broad gamut of application
development languages.”
Why no Ada bindings?
Why no Ada bindings?
Cause no-one has done them. You’re free to contribute though, if you miss it.
why is Ada so good?
No flame war intended. I find it interesting that Ada has been around since before C++, was designed for embedded use, thus its fast and makes small programs, and yet few people use it.
Why Ada is a good language is hard to explain.
I know the basic reason programmers don’t like Ada is that it is very verbose. Ada source code is meant to be human readable, not leet hacker readable.
Ada right now is the only standardised OOP language there is. Any compiler that claims to be an Ada compiler must be certified. There is NO variation allowed in Ada compilers. All Ada compilers MUST conform to the specification in the Ada documentation. Thus Ada is extremly portable. Ada compilers are very strict about errors. In C you write something and then run it throught the debugger and hope you catch all the errors. With Ada the compiler refuses to give you
a program that runs until you have fixed all the compile time errors.
Again most programmers don’t like a language that forces them to not screw up.
Ada has built in exception handeling. With C if you say, divide by zero the C program might just keep running generating crap output. With Ada when an exception is raised the program halts and says why it halted. Or you can handle the exceptions and run time errors within your program so the program does not do crazy things.
Ada forces strong typing onto your programs. Thus you don’t get weird program behavior from type mismatches.
Ada DOES NOT use pointer arithmetic.
A great quote
“There is an entire industry devoted to selling tools to repair the
defects in the C language (tools for finding memory leaks, type
errors, etc). Guys like Les Hatton have a vested interest in keeping
things exactly as they are, because their livelihood depends on
people using error-prone languages. Those people just aren’t going
to stand on the sidelines while you tell programmers that if they use
Ada, they can throw way all their other tools too.”
http://www.adapower.com/articles/popularity.html
Ada has tasking built into the language for multi-processing.
http://hiwaay.net/~crispen/ada/top_10.html
This is a great article.
http://www.cl.cam.ac.uk/~mgk25/ada.html
If you read all that an are interested in going further the go to
http://www.adapower.com/
And go to the learning Ada section. there are links to many good FREE pdf books online.
Two things:
1. Mono has been progressing so fast lately that it’s making me want to install Linux, and replace Mac OS X to run GNOME.NET. As a programmer, especially one who uses a language that’s not C, C++, or Java, I’m very interested in gaining the abiliy to use libs from other languages seamlessly. I’d do all of my work directly out of the Squeak Smalltalk GUI and environment, but sometimes I must resort to using a primitive OS like OS X or Linux. Mono promises to bring it a little closer to tolerable.
Has anyone played with it much? Does it compile on PPC, or does it only work on x86 Linux because of asm routines at this point?
2. Ada, a very fine language. I’m not sure why anyone bothers to write code in C or C++, frankly. Ada does it all, and does it safely, and generally looks cleaner, IMHO. But then again, I’m not the kind of guy who would use a language like C in the first place- Ada, C and C++ are all too static and dense. I’m a sucker for reflection. But if you want to do embedded, systems, or other low-level coding go for it, it’s awesome.
Corrections to the above poster- if you do a divide by zero in C, it might just coredump, killing the program entirely. You never know, and that’s one of the many reasons why C blows so hard.
Ada isn’t the only standardized OOP language. Where do you get this from? Common Lisp has an ANSI spec [1], ISLISP has an ISO spec [2], and Smalltalk has an ANSI spec [3]. All very good, useful, and powerful languages. However, CL, ISLISP, and St have somewhat different domains than Ada- application programming rather than embedded or systems programming.
1. Common Lisp HyperSpec, a hypertext-ized version of the ANSI spec: http://www.xanalys.com/software_tools/reference/HyperSpec/
2. Free implementation, OpenLisp: http://www.eligis.com
3. Info about ANSI spec: http://minnow.cc.gatech.edu/squeak/172
Well I said C MIGHT dump or it MIGHT not, as you said thats one big reason C/C++ blows. Ada on the other hand will raise and exception, Ada’s behavior is exactly predictable. We know what Ada will do, and thus exceptions can be handled correctly.
My comment about being standardized was not quite right.
Ada is the only internationally standardized OOP language.
I forgot the internationally.
look here.
http://www.sgi.com/developers/devtools/languages/ada95.html
“Ada95 is the only internationally standardized OOP language (International standard ANSI/ISO/IEC-8652:1995)”
Try here, the Ada Info reference page
http://www.adaic.org/standards/ada95.html
scroll to the bottom and you will see this
“An AdaIC article on Ada95, the world’s first and only internationally standardized OOP language.”
What is signifigant about having ANSI, ISO, and IEC specs? Having a standard is a good thing, but how is Ada any better for having all three? (honest question)
Well having all three is significant because they cover more than just the us.
ANSI is American National Standards Institute.
ISO is International Organization for Standardization
IEC is International Electromechanical Commission.
By being standards compliant with all three Ada is accepted everywhere.
If you use a language that is only ANSI it may or may not be accepted for use in the country that is your target. Think about a project thats going to be used outside the US, a government of company will set what standard they want followed, if you use Ada then you are covered regardless of which they chose to follow. By being covered by all of these standards Ada protects your investment in learning it as a language because you know that the language is not going to be changing constantly. By being covered by all three you know that the version of Ada95 used in Europe is the same as whats being used in Asia and the US. Take Java for example. Sun refuses to get Java standardized, they change parts of the language all the time. How can someone be confident in using or recomending Java when its a moving target controled by the whims of Sun?
they are not changing Java, they are adding to it, there is a huge difference! GTK changes, they add and remove api. j2se has always kept its deprecated api and added new api. just look at java.nio: it is high performance i/o added for java AND it has support for the old java.io package
Okay they are not changing thay are adding to it. Big deal, there is still no official standard for Java. This is causing all kinds of problems. Sun refuses to submit to get Java to be standardized.
They want a proprietary language. GTK is just a library its not the same as a language.
Which jvm do you choose for a project?
one from….
IBM?
Sun?
HP?
OSS clone?
What standard is Sun following? Why there is none just whatever the hell Sun wants to do with Java. What happens if Sun pulls Java next week? Or says that using Java now costs x dollars per seat per year. Well you say Sun would not do that because that would kill Java.
wether Sun would do this or not does not matter what does is that Sun could do this at any time, and any investment made in learning Java could be lost.
With Ada there is a written in stone standard. This is the language, this is what your compiler must do to be validated, these are the standard packages etc…………
Anyone can write their own Ada compiler, sell it or give it away.
If it passes the Ada validation tests then its an official Ada compiler.
If it passes those tests then you know that any code written to the standard will compile.
You know that the code will port to any supported system.
Try that with C++.
Standards and complying with those standards is what makes for a level playing field.
Think of the internet without tcp/ip . Well you can’t can you because without that open free standard the internet would have never happened.
Anony mouse, the fact that Ada has a set in stone standard is all well and good, but as long as any Ada compiler *allows* you to write code that isn’t standards compliant, all the standards in the world won’t help you. At work, I have spent the past week or so trying to port an Ada program from one standards-compliant Ada compiler to another with much dissatisfaction. And they both fully support Annex D, go figure.
But all else being equal, I think Ada has distinct advantages over C++ in several areas. My only real problem with it is that I didn’t understand how Ada does “OO” the first time I looked at it…
>Ada is the only internationally standardized OOP language.
C++ is ISO certified since 1998.
>[…] Ada’s behavior is exactly predictable.
Well Ada allows you to write code that shows unexpected behavior. Turn all checkings off and your program is not much safer than a C program. So claiming that “we know what Ada will do” is not always true. It depends on the programmer. At least most default settings are safe by default. Besides, C++ as exception handling as well.
There was an interesting article in Dr. Dobb’s once about how a NASA rocket with a guidance system written in Ada literally crashed and burned because of how “safe” the Ada language is.
Basically, the trajectory of the rocket in mid-flight caused some calculations to exceed the range of the variables declared to hold them (using an int to hold a long value, for example). The Ada program immediately errored out with an overflow error and stopped running.
The rocket did have a backup guidance system. Unfortunately for the rocket, the backup system was running the same Ada code that the main guidance system was, and also bombed from the same overflow error. The rocket then fell to Earth and “bombed” itself shortly after.
Now if the code had been written in C, the calculation would have overflowed just like the Ada software, but the code would have continued to execute. A byte of memory would have been overwritten, but chances are the rocket would have kept going without a problem.
The point of the story was not to reveal some sort of glaring flaw in the Ada language, but to illustrate that just because a language is billed as “safer”, it doesn’t mean you are necessarily better off, all things considered. (And also to run different code in a backup situation!
That’s poor programming. Ada can’t assure absolutely safety, it just makes it easier to achieve. In C, it’s a pain in the ass, relatively.
now if it was written in java, there would be an exception and the code would have been safer.
here goes the flamewar!
It does not matter, as long as it’s a Sun Certified Javac, it’ll be tandy, hows that really any diff. to ISO, ASCI etc ;P
The rocket example is daft, some silly plonker does not do some math and works out that a long int is need, well, [s]he should be fired.
As to it “working” in C, WTF, you now have access to a PART of a variable, next time you access it you are going to have a very different value to what had been put in.
Plus you could of just overritten the nice varaible which says what to aim at, bang goes not only the rocket, but te space station! (worst case I know).