Прикольное сравнение того, как менялся язык описания интерфейса в языках программирования с годами:
https://www.arbinada.com/en/node/1628
(на русском: https://www.arbinada.com/ru/node/1472)
Страшно признавать, но в Делфи (1996 год) всё выглядит чисто и аккуратно, с минимумом повторений:
object Form1: TForm1
Left = 0
Top = 0
Caption = 'Test form'
ClientHeight = 131
ClientWidth = 292
Color = clBtnFace
object Label1: TLabel
Left = 16
Top = 24
Width = 257
Height = 13
Alignment = taCenter
Caption = 'Hello, User !'
end
object Button1: TButton
Left = 112
Top = 72
Width = 75
Height = 25
Caption = 'Push me'
TabOrder = 0
end
end
И вот такое чудовище в Андроиде (2010+ год):
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin"
tools:context=".MainActivity">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/hello_world"
android:id="@+id/textView"/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/Push me"
android:id="@+id/button"
android:layout_below="@+id/textView"
android:layout_centerHorizontal="true"
android:layout_marginTop="46dp"/>
</RelativeLayout>
— Сон разума порождает чудовищ
Франсиско Гойя