ACT Release GTK Based Development Environment 33
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!"
IDEs and Editor plugins (Score:3, Interesting)
Re:IDEs and Editor plugins (Score:1)
Re:It still exists? (Score:5, Informative)
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.
Re:It still exists? (Score:1, Insightful)
Other than that if you don't use a editor that is capable of macros, then you should look for a new.
Re:It still exists? (Score:1)
Re:It still exists? (Score:2, Insightful)
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.
Re: It still exists? (Score:5, Informative)
> 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 [gnu.org] starting with version 3.1 (as an optional component, actually, as with Fortran). Also, the new GNU Visual Debugger [act-europe.fr] 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.
Re:GPL mandated download? (Score:1)
Re:GPL mandated download? (Score:2, Informative)
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.
For a good IDE (Score:2)
/Janne
Re:For a good IDE (Score:1)
Re:For a good IDE (Score:3, Informative)
I tried asking the developers for assistance as to why nothing would freakin' build. Or any clue as to how to use Glade with it - and received NO REPLY.
Any websites out there as to how to get Anjuta to actually WORK?
Re:For a good IDE (Score:1)
I tried asking the developers for assistance as to why nothing would freakin' build. Or any clue as to how to use Glade with it - and received NO REPLY.
Any websites out there as to how to get Anjuta to actually WORK?
Care to elaborate on your problem ? I assure you that we try to answer as many user queries as possible. Please join Anjuta-List and post your problem there. There is also a bug tracking mechanism available which is regularly monitored - you might file a bug there with full details.
You might also consider downloading the nightly CVS tarball available from the website [sf.net] and building it - to see if your problems have been addressed there. If you have the necessary libraries, it should be as simple as './configure && make && make install'.
Re:For a good IDE (Score:2)
Maybe I was talking to the wrong guy. I sent my emails to the guy who is listed as the prime developer, who said that gnomemm support was done by someone else, maybe it would be fixed in 1.9, maybe it's a Mandrake issue, etc. etc. etc.
The documentation assumes everything works right. Someone really should take the trouble to write up what's going on under the hood for debugging purposes. I'd do it, but I'm not conversant enough with the way Anjuta sets up its build.
RE: Please join Anjuta-List and post your problem there.
I'm not interested in joining a list and sifting through 300 mails a day just to get an answer to one question. Here's the downside to Open Source.
RE: There is also a bug tracking mechanism available which is regularly monitored - you might file a bug there with full details.
Real simple. Install Anjuta 1.9 on a Mandrake 8.1 machine. Run the wizard to generate anything but a simple console program. Compile. See tons of errors. Write the developers. Get no response. Realise based on one feedback that a version went out without any kind of error checking (hence fix in 1.9)
Eventually, have conversation on Slashdot about it not working, and be invited to submit a bug report to a list.
RE: You might also consider downloading the nightly CVS tarball available from the website [sf.net] and building it - to see if your problems have been addressed there.
Why not just try what I suggest and see why it doesn't work? Simple, really.
Re:For a good IDE (Score:2)
> If I try generating any other type of project
>
> It keeps complaining there is no configure.in
> Autogen doesn't work either.
>
> What gives?
You are using anjuta-0.1.6, That's a very bad bug in that release. Get
anjuta-0.1.7 which will work properly.
So I wrote him back after trying that. Even with 0.1.9
> I'm running Mandrake 8, and I can now generate projects. I cannot build
> them,
> because it keeps looking I assume for header files it can't find. I've
> installed
> glademm, gtkmm, gnomemm and the like...
>
> I assume that the makefile doesn't add the gnomemm, etc. bits into the
> configuration file
> it does gnome-config --cflags but doesn't add gnomemm etc. after it.
>
> Is there some issue with the way my configuration is set up?
Well, it seems that the c++ buld files for gnomemm and gtkmm is not
being generated properly. I have not done anything in gnomemm and gtkmm,
so, I am helpless here. The gnomemm and gtkmm support was added by
Johannes Schmid . I hope he is around to help us
resolve this.
Herr Schmid never answered. And three releases later, even the most basic project won't build.
I give up.
Re:NULL pointers in C++ (Score:3, Informative)
int main(int argc, char *argv[])
{
unsigned char *pointer;
pointer = 0;
*pointer = 1;
return 0;
}
Re:NULL pointers in C++ (Score:1, Informative)
// The following will throw a NullPointerException because m is null.
MyClass m;
m.doSomething();
// The following will work
MyClass m = new MyClass();
m.doSomething();
So, m is really a pointer, but the dereference syntax is the period rather than the '->'.
The other thing, of course, is garbage collection. I don't ever have to call 'delete m;' as I would in C++. Doing 'm = null;' is often useful to help keep the memory footprint down. It makes the memory used by m eligible for garbage collection (assuming noone else has a copy of the pointer).
Re:NULL pointers in C++ (Score:2, Informative)
I argue rings around (all of) you logically (Score:1)
Pay no attention to those other responses after I tell you this.
class foo
{
private:
double a;
public:
void Set_a(double a) {if (this != NULL) this->a = a;}
double Get_a() {if (this != NULL) return a; else return 0;}
}
declare
foo* my_foo = NULL;
and operate with
my_foo->Set_a() and my_foo_Get_a() to your heart's content. Sorry, this does not work with virtual methods, but otherwise, you Objective C guys with your default behavior on NULL objects, eat your hearts out.
Don't dereference the NULL pointer (Score:1)
"What?"
"Don't cross the streams."
"Why?"
"It would be bad."
"I'm fuzzy on the whole good-bad thing. Whattya mean 'bad?'"
"Try to imagine all life as you know it stopping instantaneously and every molecule in your body exploding at the speed of light."
"Total protonic reversal...."
"Right, that's bad...OK.. important safety tip. Thanks, Egon. "
./adam12
Re:Eclipse looks better (Score:2, Insightful)
Re:Eclipse looks better (Score:2, Insightful)