ZZZПотому что это служебные конструкции. Возможно, они оставили возможность вставлять их не только в начале. Потом прижилось только в начале и все стали делать начальные конструкции без каких-то специальных обозначений. Но если лисп рассматривать, там начальных нет, и provide (Erlang'овский export) можно вставлять где угодно.
Почему, блин, не просто “module” и “export”.
-module(test).
-export([f/1]).
f(X) ->
X * module() + export().
module() ->
5.
export() ->
7.
1> c(test).
{ok,test}
2> test:f(4).
27
3>
Смотри, как ясно и легко можно делать. Руки развязаны, ничто никуда не вылазит. Что объявлено, то торчит наружу, остальное по умолчанию скрыто.
ZZZНу, что пишут на Ruby? Он делает то же самое, что питон, только сложнее питона. Все пишут на питоне. Нигде такого не слышно, что кто-то, например, изучает arduino и на Ruby пишет что-то. Он берёт питон, потому что просто, быстро и всё то же самое.
на руби пишут
ZZZВот на SmallTalk'е писали и он сдох. А Erlang выжил, потому что простой и эффективный.
Я ещё не знал, что бывают компьютеры, а на эрланге уже писали.
ZZZУ него та же функция положена на строчную структуру кода. То есть понятие строки у него есть. Вот в C, например, нет понятия строки, поэтому там точка с запятой сильно участвует, так как там понятие оператора основное.
А как питон справляется без точек?
ZZZОн из Haskell'я вырос, там эти вопросы вообще не считают важными. Они там вообще на читаемость кладут. Понт с монадами дороже.
в Elm точек нет
ZerGДопотопный довольно таки. Для нормальной разработки не хватит средств. Не зря его используют как обычный скриптовый, что-нибудь быстро набросать простенькое.
Уж лутче Луа - но он тоже рахитоидный.