I found that doing UML or Booch diagrams with Rational Rose worked well for complex C++ code.
My favorite diagrams were class diagrams and sequence diagrams.
Design in diagrams before you write the code. Then writing the code goes so fast, the code seems to write itself.
Before I left my previous job, they were getting into Use Case Diagrams. I think these are usefull for business analysts and quality assurance folks but they were not as usefull to me as a programmer.
I was once working on passive monitoring software for ISPs. One application we discussed was to prepare reports (for a fee) for parents as to all the web sites accessed from their ISP account.
This could get around the filter problem, as the parent could double-check any sites that they were unsure of.
I work at a Delphi/Visual C++ shop. We noticed recently a big shift away from development tools and toward CORBA ORBs and application servers. Too bad we are using neither.
I have used C++ now for about 5 years. I also have 5 years of FORTRAN experience (distant past).
There are million line FORTRAN programs. And it has advantages for numerical calculation. When converting numerical calculation programs from BASIC or FORTRAN to C/C++, I frequently get bitten by automatic promotion of types in expressions and precision being lopping off in the process. The only way to fix some of this stuff is to add explicit type casting in strategic parts of the expression.
If you were a scientist, why would you bother with this noise. FORTRAN (stands for Formula TRANslation) is the best tool for the job.
Also, the Compaq compiler is likely to descend from the old VAX/VMS FORTRAN compiler. This compiler had many man-years of optimization put into it and was difficult to match in performance.
The reason we do not all use FORTRAN today is that unlike the old days, most computing is not floating point number crunching. Maybe that is why Digital Equipment Corp (formerly #2 in computers) no longer exists.
I agree. On our project, we were trying to allow flexible parameter specification.
One of our developers succested using a web browser control, getting the report-specific parameter screen from a network packet. After getting the report parameters from the user, they will in turn be sent back to our N-Tier system to be stored until report execution.
In Windows, you can tie GUI events generated in the HTML control to callbacks in your application.
I'm glad to see that some developers in Linux are pushing code in this direction. We need something more than 15-30 year old ideas in Linux.
I once worked at a company where this was the only way to get a promotion.
They never retailiated. They just bet that most people would be too scared to do this.
If you threaten to take another job, make sure you have another job to go to. You never know.
Re:Does Open Source *need* a COM-like standard???
on
KDE Looks Ahead
·
· Score: 1
I see this new direction as a good thing. You don't need to have GUI classes to lead you to a shared library object model. It is good for cross language object (or component) re-use.
At work I am working on a project to wrap in COM a large business object framework written in one language so we can write new applications in another language. So far, our COM objects are only "in-process servers" (this means DLL based).
At home I am using KDE and learning Qt/KDE programming. I gave up on GNOME for two reasons.
1) C++ is a second class language in the GNOME world but is my primary programming language.
2) I had lots of problems on startup with GNOME. Applications coulnd't find the session manager.
The world in which re-usable components are written in C++ and are used from applications written in other languages is growing.
I'm not interested in going back to lots of C programming.
I am using VC++ 6.0 (+ SP3) and I don't have the problems you refer to.
STL seems to work fine. It now supports default template arguments.
I even use it in thread code without trouble. Of course, you need to use a synchronization object when one thread inserts items into a list and another removes them. The synchronization objects I use (CCriticalSection) are not portable. But there are ways to create classes that hide the OS implementation. We just have no need to port the code to Unix/Linux at work.
I learned STL on G++ and started using it with MS VC++ 4.2 (using explicit allocator template args).
At work, we are getting ready to migrate the changes needed from VC++ 4.2 to VC++ 6.0. This mostly involves adding "using namespace std" in a lot of places.
Folks who argue that C is more portable seem to forget about things like configure, autoconf, automake, and the ever popular #ifdef, #else, #endif.
I was an FTE (full time employee) for 6 1/2 years at the same company. Then one day, they had a delayed followup contract and gave us all a 2 week layoff notice. Our star programmer's wife was 8 months pregnant. So by the time they got the follow-on contract (1 1/2 weeks later) he had already taken another job. This taught me that we are all temporary. Some just don't know it yet.
I stayed on three months and helped do the work he would have done. Then I became a contractor.
Companies like contractors because they can let them go immediately if they don't work out. But they can't have it both ways. If you turn out to be good, they want to reward you by making you an FTE and reducing your pay 30-40%.
If they get a bad employee, it can take years to get rid of them. I have worked at places where the bad employees kept the organization paralyzed.
An FTE manager where I work pointed out one other advantage of contractors. When they want to do something new, none of the FTEs have any experience with the new technology. Contractors have a tendency to move around and get exposed to more technology.
I am trying to use GTK-- with great difficulty. The "stable" version does not have enough examples. The CVS version has lots of examples but I can't get them to build.
Perhaps I will have to wait until I have time to build every thing from source (GTK+, gnome-everything, gtk--, glade,...).
I would highly recommend glade for using GNOME/GTK+ with C.
I don't think GNOME will ever support C++ very well. Linux people seem to think C++ is a bad thing.
I found that doing UML or Booch diagrams with Rational Rose worked well for complex C++ code.
My favorite diagrams were class diagrams and sequence diagrams.
Design in diagrams before you write the code.
Then writing the code goes so fast, the code seems to write itself.
Before I left my previous job, they were getting into Use Case Diagrams. I think these are usefull
for business analysts and quality assurance folks
but they were not as usefull to me as a programmer.
Or is it the silicon brain and the human slave.
How about the FORTRAN Coloring Book.
It was put out by MIT Press ages ago.
My favorite FORTRAN joke:
GOD is REAL but JESUS is an INTEGER.
I would have to whole heartedly agree with this one.
I have done both and prefer Qt to Motif. But I suspect that C++ programmers are a minority on Linux/FreeBSD/Unix.
Years ago, I worked with something called Trusted Xenix.
This was put out by a company called Trusted Information Systems.
Does anyone know if they have anything to do with this?
I was once working on passive monitoring software
for ISPs. One application we discussed was to prepare reports (for a fee) for parents as to all
the web sites accessed from their ISP account.
This could get around the filter problem, as the
parent could double-check any sites that they were
unsure of.
Try Visibroker.
I work at a Delphi/Visual C++ shop. We noticed
recently a big shift away from development tools
and toward CORBA ORBs and application servers.
Too bad we are using neither.
I like the fact that it is written in Perl/Tk.
I just learned how to do Perl/Tk myself.
Maybe I'll pick up the tax booklet and port it to
1999. It is only about 500 lines of perl and
is suspect very little would have to be changed.
Because it is Perl/Tk, it can run under Windows or Linux (or something else).
I have used C++ now for about 5 years. I also have 5 years of FORTRAN experience (distant past).
There are million line FORTRAN programs. And it has advantages for numerical calculation. When converting numerical calculation programs from BASIC or FORTRAN to C/C++, I frequently get bitten by automatic promotion of types in expressions and precision being lopping off in the process. The only way to fix some of this stuff is to add explicit type casting in strategic parts of the expression.
If you were a scientist, why would you bother with this noise. FORTRAN (stands for Formula TRANslation) is the best tool for the job.
Also, the Compaq compiler is likely to descend from the old VAX/VMS FORTRAN compiler. This compiler had many man-years of optimization put into it and was difficult to match in performance.
The reason we do not all use FORTRAN today is that unlike the old days, most computing is not floating point number crunching. Maybe that is why Digital Equipment Corp (formerly #2 in computers) no longer exists.
I agree. On our project, we were trying to
allow flexible parameter specification.
One of our developers succested using a web
browser control, getting the report-specific parameter screen from a network packet.
After getting the report parameters from the user, they will in turn be sent back to our
N-Tier system to be stored until report execution.
In Windows, you can tie GUI events generated in
the HTML control to callbacks in your application.
I'm glad to see that some developers in Linux are pushing code in this direction.
We need something more than 15-30 year old ideas in Linux.
I once worked at a company where this was the only way to get a promotion.
They never retailiated. They just bet that most people would be too scared to do this.
If you threaten to take another job, make sure you have another job to go to. You never know.
I see this new direction as a good thing. You don't need to have GUI classes to lead you to a shared library object model. It is good for cross language object (or component) re-use.
At work I am working on a project to wrap in COM a large business object framework written in one language so we can write new applications in another language. So far, our COM objects are only "in-process servers" (this means DLL based).
At home I am using KDE and learning Qt/KDE programming. I gave up on GNOME for two reasons.
1) C++ is a second class language in the GNOME world but is my primary programming language.
2) I had lots of problems on startup with GNOME. Applications coulnd't find the session manager.
The world in which re-usable components are written in C++ and are used from applications written in other languages is growing.
I'm not interested in going back to lots of C programming.
Singer does not propose this for the benefit of the species. He proposes this
for a minimization of suffering.
He also argues that the suffering of the most valuable animal should not be weighed less than the convenience of the least valuable human.
There was a very good article about him in the New Yorker magazine a few weeks ago.
I am using VC++ 6.0 (+ SP3) and I don't have the problems you refer to.
STL seems to work fine. It now supports default template arguments.
I even use it in thread code without trouble. Of course, you need to use a synchronization object
when one thread inserts items into a list and another removes them. The synchronization objects I use (CCriticalSection) are not portable. But there are ways to create classes that
hide the OS implementation.
We just have no need to port the code to Unix/Linux at work.
I learned STL on G++ and started using it with MS VC++ 4.2 (using explicit allocator template args).
At work, we are getting ready to migrate the changes needed from VC++ 4.2 to VC++ 6.0. This mostly involves adding "using namespace std" in
a lot of places.
Folks who argue that C is more portable seem to forget about things like configure, autoconf, automake, and the ever popular #ifdef, #else, #endif.
I was an FTE (full time employee) for 6 1/2 years at the same company.
Then one day, they had a delayed followup contract and gave us all a 2 week layoff notice.
Our star programmer's wife was 8 months pregnant. So by the time they got the follow-on contract
(1 1/2 weeks later) he had already taken another job. This taught me that we are all temporary. Some just don't know it yet.
I stayed on three months and helped do the work he would have done. Then I became a contractor.
Companies like contractors because they can let them go immediately if they don't work out.
But they can't have it both ways. If you turn out
to be good, they want to reward you by
making you an FTE and reducing your pay 30-40%.
If they get a bad employee, it can take years to get rid of them. I have worked at places where
the bad employees kept the organization paralyzed.
An FTE manager where I work pointed out one other advantage of contractors. When they want to do something new, none of the FTEs have any experience with the new technology.
Contractors have a tendency to move around and get exposed to more technology.
Look into glade.
It stores the resources in XML. It also generates all the component
initialization code and empty event handler functions for you.
I would also like such a book.
...).
I am trying to use GTK-- with great difficulty.
The "stable" version does not have enough examples. The CVS version has lots of examples but I can't get them to build.
Perhaps I will have to wait until I have time to build every thing from source (GTK+, gnome-everything, gtk--, glade,
I would highly recommend glade for using GNOME/GTK+ with C.
I don't think GNOME will ever support C++ very
well. Linux people seem to think C++ is a bad thing.