ThelopWiki

Wards Wiki Pages / Thelop Language Faq

Frequently asked questions about THELOP are placed here.


What is TheLOP? and what is its purpose?

* THELOP is a language used for naming functions (methods). Thelop consists of a dictionary and rules. The dictionary gives the words and their meanings. The rules tell us how to build names from the words. The goals are consistent and complete APIs, readable programs, to ease learning, to ease reuse and to ease CodeHarvesting? especially in a multi library, multi project source pool situation. * BTW to write "TheLOP?" is IMO not quite ok. Although LOP and THELOP are tightly connected, THELOP stands for "THE Language Of Programming" and not for "THE LanguageOrientedProgramming". Any number of LOP languages might evolve, but it would make more sense to let Thelop grow and change according to a community consensus. The name implies the vision of a future standard strong enough to move the software world away fom proprietary APIs. It is a vision for simplicity and a vision against market dominance.

Is THELOP more than a naming convention?

* Yes. THELOP implements a very strict idea of consistency. You cannot just rename functions and variables, you will usually - unless the current API is very good - have to refactor the API. So there is a powerful feedback from THELOP and the ideas of LanguageOrientedProgramming to the design process. After getting used to the ThelopLanguage? it becomes second nature and you can DoItRightTheFirstTime?.

Why doesn't THELOP just use English grammar?

* English, as any natural language, has lots of possibilities to express one and the same thing. This is undesirable for engineering purposes. THELOP introduces a number of rules to reduce these possibilities to a minimum. In the ideal situation of only one possible name two independent programmers (one implementing, one looking for a function) would use the same function name automatically. No API documentation, no learning needed.

What's the difference between the terms THELOP and LOP? * THELOP is language, LOP is theory. THELOP is built from words and rules, LOP is built from ideas and principles. THELOP works as naming convention, LOP helps understanding and building naming conventions. Both are tightly connected, but may also be used separetely.

What's the intended scope of THELOP, project level or universal? * Both, because project THELOP is the first step to universal THELOP. Any word or rule is added first at the project level. It may stay at that level or may be reused and become a universal word or rule. Just as one may work for reusable code, one may also work for reusable language. Language is just a different level of abstraction.



You may also place questions here, if you think that no other LOP or THELOP page is appropriate. Look into CategoryThelop? to make sure. Questions added here may be moved to other pages. It may take them longer to be answered. Entries may be restructured to make them more typical and fitting to this FAQ. Signatures will be removed. (I hope this scared you off.)


It seems to me that a project would have to maintain a large "dictionary" that defines all the allowable "words" (acronyms seems the better description of the code I've seen so far) and their meanings. In any sizeable project in which there are a large number of concepts -- objects, methods, classes etc. -- this data dictionary will become huge and take a long time to learn. How can new programmers get up to speed with LOP code without constantly flipping through the project dictionary every time they want to create a new function? How can you be sure that multiple programmers do not use the same names for different concepts without bogging them down in beaurocracy? Basically, how does LOP scale beyond a single programmer? What is the largest team that you have worked on who used LOP? (Copied to ThelopProgramming?, will be deleted here sooner or later)


See also: LanguageOrientedProgramming, ThelopLanguage?, ThelopProgramming?
CategoryThelop? CategoryFaq?

 
© ThelopWiki Community zuletzt geändert am September 22, 2003