OK, so here are my thoughts on using CMake as a full scripting language. ...

I think it is feature/mission creep. When I started CMake, I was trying to make a tool that would make building software with native tools easy for non build system types of developers (mostly researchers). Usually on a team of developers there is one person that knows how to build software, and that person maintains complicated makefiles/autotools stuff, and maybe a windows developer on the team maintains some visual studio project files. CMake is meant to make the build system accessible to all the programmers on the team. The input should and can be simple for many projects. It should be easy to link in external libraries and to create libraries for others to use. I think CMake has meet those goals fairly well.

However, I never intended for the language to be used as a general purpose programming tool. There are much better languages out there for that type of thing. When compared to perl/python for text manipulation processing CMake is a poor choice. If on the other hand, you want to build a c/C++ project CMake is a good choice. I don't think it is a worth while effort to try and compete with perl/python. Use the right tool for the right thing. Scope creep is a common pitfall for software projects. Here are some wiki entries about the issue:

http://en.wikipedia.org/wiki/Creeping_featurism
http://en.wikipedia.org/wiki/Scope_creep

Scope creep is a more accurate term for what is going on with trying to make the CMake language a competitor to perl/python.

As to why I regret starting this thread, I think it is a waste of my time. Most likely 3 or 4 bugs from the CMake bug tracker were not closed because I have been reading/writing emails on this thread. As someone pointed out there are plenty of bugs in the tracker to fix!

From wiki featurism:
 software which over-emphasizes new features to the detriment
> of other design goals, such as simplicity, compactness,
> stability, or bug reduction.

Adding a whole new language would not help the build process at all, and would take away from all of the above. It would fork the project if we did not support the CMake language forever. It would be classic CMake, and lua CMake or something like that. Some projects would move over and others would keep using the old stuff. Less of the bugs and build features would get implemented. There are plenty of important build features that need to be added to CMake that have nothing to do with language. Those would get put on the back burner. And, it would all be done for what? So, the language was more elegant? There are some vocal complainers about the language, but I suspect there is a silent majority that really don't care, and are just happy to have the software build correctly the first time they build it. (I could have fixed at least one but instead of writing this email.... :) ).

-Bill

_______________________________________________
CMake mailing list
CMake@cmake.org
http://www.cmake.org/mailman/listinfo/cmake

Reply via email to