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.
Yes.
python -c "x='python -c %sx=%s; print x%%(chr(34),repr(x),chr(34))%s'; print x%(chr(34),repr(x),chr(34))"
Anyone find out where they are redistributing the source code?
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.
Except I thought the designers of C determined that assignment is used more often in the average program than comparison?
As for begin and end, thanks for making me type 6 more characters for every block. That makes my fingers happy in 80-hour weeks.
Amazingly enough, C and C++ will check if your function arguments are missing as well!
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.
I have read that one good thing about Java is that it does not rely on pointers for memory management. Is that true?
:) -- the VERY FIRST THING I wanted to try to do was to "dereference" this NULL pointer.
Also, I recently have begun a C++ class and on the subject of pointers, the textbook says this:
Never dereference the "NULL" pointer.
Well, after reading that, I decided that -- being a total programming geek after all
Unfortunately, the textbook did not go into detail about how this could be accomplished -- no surprise there.
So can someone tell me what the probably outcomes of dereferncing &NULL would be? Is it really as dangerous as the book's author suggests?
(It occurred to me that it might have a similar effect to something that I read about a while, back -- "Tao of Windows Buffer Overflow" -- this article. )
So does anyone here know how to "dereference the NULL pointer"?
I would appreciate some detailed sample code.
You forget perl! LOL
> 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
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
Without the embarrassing emphasis on ADA.
What do you really do in this 80-hour week? If you only type code then don't be surprised if your week reduces to 40 hours when switching from C to Ada. And also your programs will most likely be much less error-prone. You will save several hours of debugging time. I have almost not used a debugger after starting to use Ada95 in stead of C/C++.
Other than that if you don't use a editor that is capable of macros, then you should look for a new.
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.
"There's something very important I forgot to tell you."
"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