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

Re: TCL mapscript



On 2007.03.04 at 21:37:55 +0300, Pechnikov Alexey wrote:

> В сообщении от Воскресенье 04 марта 2007 21:25 Victor Wagner написал(a):
> > Подозреваю, что правильным способом решения проблемы будет потратить
> > неделю на дизайн и реализацию красивых и удобных биндингов Tcl к
> > нижележащей C-шной библиотеке. (Правда, до этого придется потратить
> > время на понимание того, а как вообще это следует делать).
> 
> Можно пояснить, что следует делать? Есть исходники для mapserver-cgi, нужно 
> сделать tcl-mapscript - следует ли копать сишный код на предмет написания 
> функций для вызова из tcl или нужно писать тиклевский код для вызова 
> немодифицированных сишных функций? В принципе, сишный код вобрал в себя 
> множество проектов, таких, как shapelib и другие, да еще вызывает функции из 
> GDAL, proj (ну уж не говорю про gd) - что делать со всем этим хозяйством? 
> Оставлять вызовы в сишном коде или реализовывать на уровне tcl? То есть тикль 
> сам умеет с графикой управляться, вероятно, можно не таскать привязки к 
> libtiff, libpng, gd и прочие, но я не знаю, как это должно выглядеть на 
> практике.
 
Начать надо с того, что представить себе, как бы должен был выглядеть
идеальный проблемно-ориентированный язык для работы с картами.
Естественно, опираясь при этом на синтаксис Tcl (рекомендую посматривать
в сторону Tk и встроенных команд вроде file), и возможности
вышеперечисленных библиотек.

Т.е. какие должны быть псевдообъекты (наподобие file handles  в Tcl и
Tk-шных widget-ов), какие команды и субкоманды.

Далее, посмотреть, к каким из вышеперечисленных библиотек уже есть
приличные Tcl-биндинги. Я точно знаю, например, что существует tclgd.
И что расширение Img умеет работать с tiff, png etc.

Далее следует решить какую функциональность мы можем написать на Tcl,
а какую лучше реализовывать на C. Крайне рекомендую оформлять написанные
на C команды Tcl, в стиле, характерном для встроенных команд Tcl, а не
делать их прямым мэппингом C-шных процедур. API Tcl предназначенный для
написания на C команд достаточно простой и удобный. Им стоит
пользоваться.



Reply to: