[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: gEDA: Yet more new code in CVS



On Sun, 26 Nov 2000, Ales Hvezda wrote:
> 	1) rewriting in C++  I won't do this if I feel there is too much
> 	   of a performance/portability tradeoff, but initial impressions
> are that all of my past views on C++ are no longer valid.   My
> current experiments are reinforcing this.  The are a lot of reasons
> to go this route, mainly having to do with easier code maintenance
> and much better extensibility.

There shouldn't be any performance loss at all.  By taking advantage 
of the extra features, STL, etc, performance should actually improve.

On portability .....  Mostly, it should not be a problem, but there 
are a few features of C++ that are still not implemented correctly 
everywhere.  For some, there are easy workarounds ("for" scope, 
template instantiation).  For others, it may be best to not use the 
feature yet.  (member templates).  In any case, don't bother with old 
compilers.

C has its share of portability problems, too.  The C subset of C++ is 
more portable than C is.  Even adding classes and operator 
overloading, it is still more portable than C is, if you don't count 
obsolete compilers.

I have found that moving to C++ was a very significant productivity 
improvement.  I should have made the move sooner.

> 	3) I'm trying to decide if I care about true cross platform
> 	   portability (mainly to other non-Unix platforms).  gschem and
> 	   friends already run under cygwin, but I am interested (maybe)
> 	   in a true native port (which is doable with wxWindows).
> 	   The only sticking point is guile which I don't think is an
> 	   easy port (without cygwin).	I don't know if I could give
> 	   up guile (scheme); I like it too much.  Needless to say,
> 	   my views (free software vs the unnamed big company) are in
> 	   slight conflict here.

> 	4) Punt on all this cross platform plan and just stick with
> 	   Unix. That's fine and dandy, except that if you have a good
> 	   port to win32 that might entice people over to the free
> 	   Unix world.  Or it might have the exact opposite view, keep
> 	   people on the win32 platform, but gEDA would gain popularity.

Cross platform is important.  One major market for Free EDA tools is 
academia.  As it stands, colleges use a variety of tools, often 
donated versions of commercial software, often crippled demos, like 
PSPICE.  The commercial EDA vendors will give copies to the schools, 
for the lab, but there is no way they would give every student their 
own copy of the full tools.

With Free EDA tools, every EE student can have a complete suite of 
tools at home, that can be ported as long as the compiler is 
available and you have the patience to deal with a few portability 
issues. This is a market that is not to be missed.  It is one that 
the Free tools can dominate.

But, most schools are stuck on Windows.  Some actually require all 
students to buy their own Windows PC.  Without the Windows versions, 
you may convince some students and win support from some professors 
that wish they could use Linux, but often it is the administration 
that makes these decisions.  The students and faculty must just go 
along.  After all, if I am teaching an introductory circuits course, 
and they all know Windows but only a few know Unix, I will build on 
what they know whether I like it or not.  I will give them 
executables.

If you make it a true native port, it will be a lot of work.  The 
best way is to do it in such a way that the same source builds either 
place, with the same procedure.

Then, on the PC, what is a true native port?  Microsoft?  Borland?  
Watcom?  Symantic?  It is not easy to port between them.  So, cygwin 
is just another of the many tools to choose from.  Is it really any 
less native than Watcom or Borland?

As to guile, gnome, kde, qt, mfc, or whatever ....   In doing any 
graphic program, you need to choose some model to build on.  Probably 
the best way is to define a portable interface layer, and always go 
through it.  This is a good idea anyway.  Any good application will 
outlive the libraries the original was built around.