Dynamically Typed vs Statically Typed

Dynamically Typed

  • Type information is associated with values.
  • Variables can refer to different types.
# python is a Dynamically Typed language, hence the following is allowed:
x = 5
x = "koraytugay"

Statically Typed

  • Type information is associated with variables.
  • Variables cannot refer to different types.
// Java is a Statically Typed language, hence the following is not allowed:
class _{
    int x = 5;
    // x = "koraytugay"; Not allowed!    


Strongly Typed vs Weakly Typed

  • No consensus on this matter.


First Class Citizens vs Second Class Citizens

First Class Citizens

.. note that the whole point of a programming language is to manipulate values, which, following historical programming-language tradition, are therefore called first-class values (or citizens)

Second Class Citizens

.. other structures in programming languages, which are used for expressing the structure of values but which can't be passed around during program execution, are second-class citizens


Internationalization vs Localization

Internationalization is the process of designing your program so it can be adapted. This involves placing strings in a property file and using classes like DateFormat so that the right format is used based on user preferences.

Localization means actually supporting multiple locales. Localization includes translating strings to different languages. It also includes outputting dates and numbers in the correct format for that locale. You can go through the localization process many times in the same application as you add more languages and countries.

Since internationalization and localization are such long words, they are often abbreviated as i18n and l10n. The number refers to the number of characters between the first and last characters, in other words, the number of characters that are replaced with a number.