Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Разделить objectscript.cpp на модули и ядро #2

Closed
ghost opened this issue Sep 30, 2012 · 3 comments
Closed

Разделить objectscript.cpp на модули и ядро #2

ghost opened this issue Sep 30, 2012 · 3 comments

Comments

@ghost
Copy link

ghost commented Sep 30, 2012

Вынести init_Module() и init_Class(), токенайзер и т.д. Было бы очень здорово. Чтение кода и так достаточно удобное, но вынесение:

  1. упростило бы чтение и поиск;
  2. задало бы правило нейминга модулей.

Вообще, замечательнейший язык! Все три моих любимых ЯП в одном: луа, пышечка и JS. :)

И очень удобный синтаксис за счёт своей гибкости. На мой взгляд, встраиваемый язык и должен быть гибким.

P.S. *Class и *Module различны только тем, что *Class это часть языка. Имхо, градация излишня. Одна сущность *Module это гораздо круче. :)

@unitpoint
Copy link
Owner

Согласен, что надо бы упростить. Под классом я имел в виду прототип, т.е. можно сделать экземпляр данного типа. А модуль - это как бы статический класс, экземпляр от него делать бессмысленно. Например, модуль math. Можно конечно создать экземпляр данного типа через math(), но практического смысла мало.

@unitpoint unitpoint reopened this Oct 1, 2012
@ghost
Copy link
Author

ghost commented Oct 1, 2012

Да, я понял некоторые тонкости сегодня читая код. К сожалению, пока не всё мне открылось. Документации от разработчика не хватает. И не столько по функциям и методам, сколько по тонкостям языка. :)

Возможно я не заметил более глубокой зависимости *Class-функций в отличии от *Module, но пока и initGlobalFunctions выглядит так же просто и так же независимо (что круто, на мой взгляд), как обычный модуль.

И, по сути, каждая из трёх сущностей (initGlobalFunctions, init_Class, init_Module) является одной - модулем.

А в будущем можно раскидать их на файлы вроде StdString, StdNumber, StdMath, StdFunctions и т.д. каждый из которых будет нести тот или иной функционал и неважно насколько глубокий - зависимый для типов или нет, объёмный или маленький. Он всё равно останется простым для понимания модулем. Потому что всё - модули. :)

@unitpoint
Copy link
Owner

Сам язык находится в одном файл, расширения я размещаю в отдельных папках и файлах, например, ext-datetime, ext-odbo и т.д. Возможно в будущем вынесу и стандартные функции в отдельные расширения.

IngwiePhoenix pushed a commit to IngwiePhoenix/objectscript that referenced this issue Dec 21, 2014
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant