Linguistics
is the science of language. Language is the method of human
communication, either spoken or written. Most of the languages around
the world have more similarities among each other than dissimilarities.
This leads to the concept of a universal grammar, which is the basis of
all languages.
- Linguistics - study of language e.g. universal grammar, syntax, semantics
- Computational Linguistics (or NLP or Corpus Linguistics) - study of language through computational means with the help of machine-readable corpora; natural language processing e.g. automatic question-answering, text summary generator
- Cognitive Linguistics (CL, in short) - study of relation between language and cognitive processes e.g. child language acquisition
- Diachronic (or Historical) Linguistics - study of changes in language over time e.g. semantic drift
- Philology - study of language in historical texts
- Etymology - the study of origin of words
- Onomasiology - the branch of linguistics concerned with the question “how to express the idea X as a word?”
- Semasiology - the branch of linguistics concerned with the question “what does the word X mean?”
- Sociolinguistics - study of language in respect to various social factors such as gender bias, social status, patterns of migration, influence of colonialism
Sociolinguistics - How do social factors affect language?
- Multilingual society
- Code switching - switching from one language to another e.g Malayalam with wife, Marathi with shopkeeper, English with boss, Hindi with friends
- Code mixing - mix multiple languages e.g. Manglish, Hinglish
- Language shift - shift from language to another over a long period of time e.g. the common language shifted from Hindi to English in India
- Based on variety of language:
- Accent - variation in pronunciation e.g. Malayalam accents (Trivandrum accent, Palakkad accent, Kochi accent, Thrissur accent, Kasargod accent)
- Dialect - variation in pronunciation and vocabulary e.g. Hindi dialects (Bundeli, Awadhi, Kannauji), English dialects (British, Australian, African-American, American, Indian)
- Based on use of language in a multilingual society: I think a language can have many dialects but only some of them are considered the standard and other become vernacular.
- Standard - codified version of a language e.g. Standard English
- Vernacular - languages that are not official, non-standard version of a language e.g. African-American Vernacular English (AAVE)
- Lingua franca - e.g. English due to globalization, French by nobility, Latin by Catholic Church
- Based on official requirements:
- National language - e.g India (Hindi, Malayalam, Tamil, Kannada, Telugu, Marathi, Gujarati, Haryanvi, Punjabi, Oriya, Bengali)
- Official language - e.g. India (Hindi, English)
slang (informal), jargon (domain), pidgin (multilingual group), creole (second generation speakers), taboo (private)
2.a GNU LGPL e.g.
Open source software vs. Free software
Free software focuses on the freedom to run, copy, distribute, study, change, and improve a software. Think of free speech and not free beer. Their enemy is proprietary software released by companies such as Microsoft and Apple.
Open source focuses on the effective collaborative of software development. Remember the Cathedral vs. Bazaar analogy.
The underlying idea between the two terms is different. A neutral term is FOSS or FLOSS. e.g. Linux kernel.
GNU project has two licenses for its libraries. The important difference between the two is that using the Lesser GPL permits use of the library in proprietary programs; using the ordinary GPL for a library makes it available only for free programs.
So when is LGPL useful? LGPL is useful especially when the library's features are readily available for proprietary software through other libraries. With LPGL, such free library's get more users.
So when should LGPL not be used? However if the library's features are not readily available elsewhere, then LGPL should not be used because it goes against the principles of free software. GPL should be used in this case because it leads to the development of more free software, and encourages free software movement.