ACT Release GTK Based Development Environment
aidan skinner writes: "ACT have a new GTK based IDE out for Ada, C and C++, called GPS. There's a Press
Release, Quick Tour(pdf) and Detailed Tour. It's also apparently editor neutral, so I don't have to give up my beloved emacs... Sweet!"
I wish more IDEs allowed for plugin editors. When I am forced to use MSDev, I use the Vim plugin, but it doesn't seem to support all of the *good* features of MSDev.
Ada is actually a pretty darn clean language compared to C++ and Ada95 added a lot of object-oriented (gotta have those buzzwords to survive) features without really making the code uglier.
Then again, it's pretty hard to be uglier than C++.
Plus it has support for tasks (think threads) which have been in the spec since '83. Ahem, as long as the *cough* compiler *cough* works.
Ada uses (a = b) instead of (a==b) (worst idea ever). Assignment is ":=". It has "and then" and "or else" for explicit short circuiting.
It uses "begin" and "end" instead of "{" and "}", but the "end" supports an optional additional argument which must be the name of the function or loop (you can label loops). You can call a function like this:
blah(a=>1, b=>2, c=>3) where a, b, and c are presumably the names of the arguments in the function's spec. They can be in a different order. But this way, the compiler will check if you have any arguments missing.
It's strongly typed, so it's very helpful at finding bugs at compile time. And Ada has a powerful package system to support data encapsulation. And I love the way Ada's syntax works for generics (templates).
Probably it's bane is the fact that it is case-insensitive. Which is really a shame, but that's probably the reason why it will die.
Look no further than Anjuta ( http://anjuta.sourceforge.net ). It integrates the build system, gdb, glade and Scintilla into one neat and consistent package.
/Janne
Trust the Computer. The Computer is your friend.
> Ada, eh? I sincerly thought that this language was dead, along with Lisp, Fortran
and Cobol, the other dead dinosaurs-era "programming" languages.
I suppose you're trolling, but in case you aren't...
The current Ada standard is Ada 95, 7 years old. A standard for Ada 0x is under development right now.
There's a surprising lot of stuff going on in the Ada world right now. An Ada compiler will be integrated with GCC starting with version 3.1 (as an optional component, actually, as with Fortran). Also, the new GNU Visual Debugger is written in Ada; it supports languages on a plug-in basis, with plugins currently available for C, C++, and (of course) Ada.
Part of what's driving things like GPS and GVD is the maturation of GtkAda, a "thick" Ada binding of GTK+. This is a very polished free {beer,speech} product: it comes with 475 pages of PostScript documentation. (The bindings are also fully OO.)
I won't bother commenting on the pros and cons of Ada as a language, since everyone knows "My language is best!" -- regardless of who the speaker is.
Sheesh, evil *and* a jerk. -- Jade
You shouldn't dereference NULL because the kernel owns that memory and you'll get a segmentation fault (memory protection error):
// This will crash here with a SEGFAULT
int main(int argc, char *argv[])
{
unsigned char *pointer;
pointer = 0;
*pointer = 1;
return 0;
}
Don't Panic...
Actually, it sounds like Ada has a mixture of Pascal syntax, Visual Basic (ugh!) parameter passing possibilities, easy threading as in Java, generic features as C++ and object-oriented features like - well - lots of languages. In fact, from your description it sounds a LOT like Borland Delphi on steroids :-)
Maybe I'm just pulling this out of my a**, but wasn't Ada also designed to make it less difficult to PROVE the correctness of programs? This would be the reason why the US DOD uses Ada a lot in mission-critical systems, and sometimes mandates the use of Ada.
I think the reason for it's lack of popularity is based on a historical lack of platform bindings, and - as you correctly state - bad compilers. Ada *IS* a clean and useful language, but when you can't *DO* much with it, it stops being a viable option.
Black holes are where God divided by zero
Well, although the warning seems right along the lines of "Don't touch the positive and negative leads a car battery", the results are somewhat less cool. You just get a a run time error (depends on your platform as to what you get, a Segmentation Fault from *nix, a GPF from windows, ect) that crashes a program, no fireworks, no fires, not even a puff of smoke. As far as how you do this //everything that would be before, such as main, skipped for brevity
int *a;
a = NULL;
*a = 5; //The star denotes a dereference, this will crash right here..
Along the same lines, youd encounter a dereference situation more common in something like this...
int *a = new int [5]; //dynamic array of ints.. //some code to work with array here ...
delete [] a; //OK were done with out dynamic array, clear it
a = NULL; //assigned to NULL for ease //some more code so you forget that you cleared a and assigned it NULL for housekeeping purposes
*a = 4; //whoops.....
things like that happen more often than youd think, the warning was there so it sticks out in your mind so you can remember little things like that, a very basic mistake, just be weary of it.
Its also common in function calls that use pointers as paramters.
Well if you look at the other products from GNAT you will see that they are publically available. Their Ada95 compiler GNAT is also released publickly and is now being integrated with gcc 3.1! Also check out the debugger frontend GVD which you can find here: http://libre.act-europe.fr/gvd/
It is very good and much faster than DDD.
So we will see in Q4 if it will be released to the public or not.
Preben
--
For me, Ada95 puts back the joy in programming.
Your comment about Ada shows only how sadly ignorant you are.
I am curious what you think Ada is? Possibilities include the American Dental Association, Americans with Disabilities Act, and Armadillos for Driver Awareness. In fact, Ada is a programming language named after Augusta Ada Byron, Countess of Lovelace. Ada was an assistant to Babbage in the creation of his Difference Engine. Her specialty was mathematics. Her work on the Difference Engine has earned her the honor of being recognized as the world's first computer programmer. I wonder if you would be upset if you saw a product was written in C++ or Java. I suspect not since Eclipse was written in Java. Does a language named after a woman scare you?