DrDiettrich wrote:
My main gripes with Delphi/pascal is its additional verbosity and somewhat tedious coding practices which seem superfluous in some cases. Now I dont mind typing a bit extra to make code cleaner and more legible but I have a few ideas which would reduce needless typing and improve clarity at the same time.
IMO the best solution for (almost) all of your problems were garbage collection. GC is part of Oberon, and it would fit into .NET/DotGNU as well.
GC is very inefficient with memory and current implementations tend to cost a lot performance wise too.
GC gets a lot slower with the more objects you create.
Mixing unmanaged with managed code cause severe performance issues (marshalling penalties calling ummanaged c functions)
Interoperability with C gets increasingly difficult. Writing bindings becomes much more complicated and time consuming.
GC is therefore a poor choice for a high performance language IMHO.
1. Memory management. Delphi is quite incosistent here by allowing component classes to be auto managed (via their owner) whilst non-component class have to be manually managed.
In a GUI a management overhead is acceptable, in other classes IMO it's not a good idea: the management costs time and requires rigid design rules, what makes it not very convenient and safe to use.
no longer be a need for having loads of try..finally statements
GC ;-)
It might be better to do this in an IDE and get it to add the try..finally crap.
EG if I say use the @ symbol to indicate a variable should be auto created and destroyed then I could have :
var st@, st2@ : tstringlist; begin st.add('some text'); st2.add('some more text'); end;
which the IDE would translate behind the scenes to :
var st, st2 : tstringlist; begin st := tstringlist.create; try st2 := tstringlist.create; try st .add('some text'); st2.add('some more text'); finally st2.free; end; finally st.free; end; end;
I do need an IDE anyhow for container based GTK2/Gnome2/Glade apps so maybe I ought to start writing one that implements this.
jamie.
_______________________________________________ fpc-devel maillist - fpc-devel@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-devel