Why does darwinports developers choose the tcl/tk for darwinports project?

Jordan K. Hubbard jkh at brierdr.com
Fri Dec 29 11:43:08 PST 2006


No offense, but I think it's "just you".  If MacPorts were written in  
Python, you'd have Python haters jumping up and down saying that if  
were only written in Ruby, they'd be happy to contribute to it.   If  
it were written in Ruby, you'd have Ruby haters saying the same  
thing.  If it were written in Perl, well, nobody at all would be able  
to read the code and even the maintainers wouldn't know what it  
did. :-)   [OK, sorry, I couldn't resist].

The only argument that really has demonstrable merit is that Tcl  
isn't as sexy or popular as, say, Ruby and if we'd gone with sex  
appeal over simplicity, we'd probably get more people willing to  
contribute for the sex appeal alone.   That's true enough.   However,  
if it had been written in Ruby (or even C), I think it's also fair to  
say that the Portfile syntax would look completely different since  
you wouldn't get the basic "key value" notation for free and the  
Portfiles would be some intermediate form with some sort of Fink-like  
"escape" syntax for diving into Ruby (or, in Fink's case, shell) and  
I think the Portfiles would be far more convoluted in exchange for a  
sexier implementation language.  But I'm just guessing here since  
nobody really knows what would have happened had a different  
evolutionary path been chosen.

What is clear is that the existing Tcl code definitely needs to be  
_refactored_ such that some of the data structures and routines for  
manipulating them are re-written in C (all the ditem handling stuff,  
for example) since nobody will argue that the current MacPorts  
implementation is SLOW in the extreme.  Tcl was never meant to do as  
much of the heavy lifting as it is in MacPorts - it was specifically  
designed to encourage the implementor to move performance-critical  
stuff into C and easily move back and forth between the two realms.   
Unfortunately, that "cleanup phase" hasn't happened yet.

- Jordan

On Dec 29, 2006, at 4:14 AM, Luc Heinrich wrote:

> On 28 déc. 06, at 00:13, Kevin Ballard wrote:
>
>> http://www.opendarwin.org/pipermail/darwinports/2002-October/ 
>> 015354.html
>
> In my very own and personal opinion, Tcl is the single reason why  
> MacPorts doesn't get as many external contributions as it should  
> and is therefore so awfully slow to evolve. I have tried to dive in  
> the MacPorts sources many times, read the Welch book, yadda yadda,  
> and I still can't get past 3 or 4 lines of Tcl without giving up in  
> disgust. Ok, maybe that's just me but still...
>
> -- 
> Luc Heinrich - luc at honk-honk.com - http://www.honk-honk.com
>
>
> _______________________________________________
> macports-dev mailing list
> macports-dev at lists.macosforge.org
> http://lists.macosforge.org/mailman/listinfo/macports-dev




More information about the macports-dev mailing list