Автор Тема: Lua  (Прочитано 115028 раз)

DIzer

  • Гость
Re: Lua
« Ответ #225 : Ноябрь 30, 2012, 06:52:16 pm »
Это да. Согласен.

В Lua с ее областями видимости наколоться раз плюнуть.

Например забыл указать что переменная локальная в функции и все... приехали.
Мне вообще сначала умолчательная глобальность переменных казалась ересью.
Т.е. здравый смысл подсказывает, что неявно объявленная переменная должна быть локальной для функции. Но в Lua локальность нужно явно указывать...
Вроде логичнее было бы явно наоборот глобальность указывать, но потом я понял что в Lua сделали упор на удобство использования замыканий.
И оно вроде даже нормально если мыслить замыканиями. Но один хрен ощущается изъян в дизайне языка.
Борис, тут дело вот в чем многие  забывают, что Луа прежде всего проектировался как DSL - и надо очень осторожно относится к перспективам его использования за ее пределами -
а если он не подходит, то глупо винить в этом создателей (пример - Обезьянка)

ilovb

  • Hero Member
  • *****
  • Сообщений: 2538
  • just another nazi test
    • Просмотр профиля
    • Oberon systems
Re: Lua
« Ответ #226 : Ноябрь 30, 2012, 06:56:34 pm »
Lua просто меньшая из зол.  ;)

valexey_u

  • Hero Member
  • *****
  • Сообщений: 3013
    • Просмотр профиля
Re: Lua
« Ответ #227 : Ноябрь 30, 2012, 07:07:33 pm »
Это да. Согласен.

В Lua с ее областями видимости наколоться раз плюнуть.

Например забыл указать что переменная локальная в функции и все... приехали.
Мне вообще сначала умолчательная глобальность переменных казалась ересью.
Т.е. здравый смысл подсказывает, что неявно объявленная переменная должна быть локальной для функции. Но в Lua локальность нужно явно указывать...
Вроде логичнее было бы явно наоборот глобальность указывать, но потом я понял что в Lua сделали упор на удобство использования замыканий.
И оно вроде даже нормально если мыслить замыканиями. Но один хрен ощущается изъян в дизайне языка.

Не в замыканиях дело. Это (по умолчанию все глобальное) растет из древних скриптовых языков, где никаких лямбд не было. Глобальные переменные банально проще реализовывать, равно как и динамическую типизацию вместо статической. Поэтом вначале подобные скриптовыродки имеют только глобальные переменные, затем туда вкорячивают локальные и естественно для них дополнительное ключевое слово, чтобы не сломать обратную совместимость.
Y = λf.(λx.f (x x)) (λx.f (x x))

ilovb

  • Hero Member
  • *****
  • Сообщений: 2538
  • just another nazi test
    • Просмотр профиля
    • Oberon systems
Re: Lua
« Ответ #228 : Ноябрь 30, 2012, 07:12:37 pm »
У меня кстати давно в голове мысль крутится, что большинство неудобств оберона могла бы исключить хорошая IDE.

Например проблема с КАПСОМ элементарно решается специальным сочетанием клавиш.
Например после ключевых слов давить shift+space.
Думаю можно быстро привыкнуть. Я вот в 1С к ctrl+space (контекстная подсказка) быстро привык. Набираю код без напряга.

А в идеале IDE сама может делать капсом в зависимости от контекста.

Проблема с VAR тоже не проблема. Насколько я знаю в делфях есть сочетание клавиш для объявления переменной.

Ну и т.д.

valexey_u

  • Hero Member
  • *****
  • Сообщений: 3013
    • Просмотр профиля
Re: Lua
« Ответ #229 : Ноябрь 30, 2012, 07:16:36 pm »
У меня кстати давно в голове мысль крутится, что большинство неудобств оберона могла бы исключить хорошая IDE.

Например проблема с КАПСОМ элементарно решается специальным сочетанием клавиш.
Например после ключевых слов давить shift+space.
Цитировать
Уже решена в Astrobe. Без специальных сочетаний.

Я бы не занимался обероном если бы не видел у него потенциал для IDE :-)
Y = λf.(λx.f (x x)) (λx.f (x x))

DIzer

  • Гость
Re: Lua
« Ответ #230 : Ноябрь 30, 2012, 07:21:03 pm »

Я бы не занимался обероном если бы не видел у него потенциал для IDE :-)
  ;) разве.. помнится года три назад в коровнике вы мне говорили другое..

valexey_u

  • Hero Member
  • *****
  • Сообщений: 3013
    • Просмотр профиля
Re: Lua
« Ответ #231 : Ноябрь 30, 2012, 07:27:39 pm »

Я бы не занимался обероном если бы не видел у него потенциал для IDE :-)
  ;) разве.. помнится года три назад в коровнике вы мне говорили другое..
А что я говорил?
Y = λf.(λx.f (x x)) (λx.f (x x))

DIzer

  • Гость
Re: Lua
« Ответ #232 : Ноябрь 30, 2012, 07:36:37 pm »

Я бы не занимался обероном если бы не видел у него потенциал для IDE :-)
  ;) разве.. помнится года три назад в коровнике вы мне говорили другое..
А что я говорил?
что не вижу особых перспектив  для него в плане IDE... впрочем,  все меняется...

valexey_u

  • Hero Member
  • *****
  • Сообщений: 3013
    • Просмотр профиля
Re: Lua
« Ответ #233 : Ноябрь 30, 2012, 08:39:45 pm »

Я бы не занимался обероном если бы не видел у него потенциал для IDE :-)
  ;) разве.. помнится года три назад в коровнике вы мне говорили другое..
А что я говорил?
что не вижу особых перспектив  для него в плане IDE... впрочем,  все меняется...
Наверно ты меня не правильно понял (либо сейчас, либо тогда, либо и тогда и сейчас).

Сейчас я имел ввиду, что Оберон из за своего сочетания простоты и статической типизации является хорошим объектом для того, чтобы обкатать на нем всякие интересные идеи в плане построения окружения для разработки. То есть может получиться классическая связка - слабый язык + сильные тулзы для разработки. Ровно на этом, кстати, выехала java.

Оберон достаточно приятный подопытный кролик. Вот С++ - не приятный. Как и какой-нибудь D, или Ада. Про всякие динамически типизированные языки я вообще молчу.

PS. Тулзы/IDE вовсе не обязательно писать на самом Обероне.
Y = λf.(λx.f (x x)) (λx.f (x x))

DIzer

  • Гость
Re: Lua
« Ответ #234 : Ноябрь 30, 2012, 08:49:40 pm »
То есть может получиться классическая связка - слабый язык + сильные тулзы для разработки. Ровно на этом, кстати, выехала java.

....

Тулзы/IDE вовсе не обязательно писать на самом Обероне.
1. именно про это я и говорил... а Оберонцы в ответ свою шарманку - нафиг не нужно, если бы было нужно то уже сделали, многие делали но потом отказались в силу ненужности...
2. Это и ежу понятно

igor

  • Sr. Member
  • ****
  • Сообщений: 438
    • Просмотр профиля
Re: Lua
« Ответ #235 : Декабрь 01, 2012, 08:11:27 am »
Например проблема с КАПСОМ элементарно решается специальным сочетанием клавиш.
А какая проблема с КАПСОМ в Обероне?  :o
Можно поподробнее, я просто не в курсе.

ilovb

  • Hero Member
  • *****
  • Сообщений: 2538
  • just another nazi test
    • Просмотр профиля
    • Oberon systems
Re: Lua
« Ответ #236 : Декабрь 01, 2012, 09:40:44 am »
Например проблема с КАПСОМ элементарно решается специальным сочетанием клавиш.
А какая проблема с КАПСОМ в Обероне?  :o
Можно поподробнее, я просто не в курсе.
Вы прикалываетесь?
В ОБЕРОНЕ ж все КЛЮЧЕВЫЕ слова КАПСОМ нужно ПИСАТЬ

DIzer

  • Гость
Re: Lua
« Ответ #237 : Декабрь 01, 2012, 09:42:57 am »
Например проблема с КАПСОМ элементарно решается специальным сочетанием клавиш.
А какая проблема с КАПСОМ в Обероне?  :o
Можно поподробнее, я просто не в курсе.
Вы прикалываетесь?
В ОБЕРОНЕ ж все КЛЮЧЕВЫЕ слова КАПСОМ нужно ПИСАТЬ
  ;D  это не проблема.... проблема растяжение мизинца - профессиональная травма , однако - в  перспективе, ведущая к инвалидности..

ilovb

  • Hero Member
  • *****
  • Сообщений: 2538
  • just another nazi test
    • Просмотр профиля
    • Oberon systems
Re: Lua
« Ответ #238 : Декабрь 01, 2012, 09:51:26 am »
Во во  ;D

igor

  • Sr. Member
  • ****
  • Сообщений: 438
    • Просмотр профиля
Re: Lua
« Ответ #239 : Декабрь 01, 2012, 09:59:28 am »
В ОБЕРОНЕ ж все КЛЮЧЕВЫЕ слова КАПСОМ нужно ПИСАТЬ
Не вижу проблемы.