lua-users home
lua-l archive

[Date Prev][Date Next][Thread Prev][Thread Next] [Date Index] [Thread Index]


On Monday, April 23, 2018, W Kurapica <kurapica125@outlook.com> wrote:
> I'm happy to introduce another OOP library for Lua
> https://github.com/kurapica/PLoop, it provide a C# like syntax OOP system,
> overload method, aspect-oriented programming, full type validation and other
> features, it's a little heavy one compares to the others.
> Although this project started more than 8 years ago, but more like a toy
> until I decided to use it on my company's  project, I recode it from ash
> in the last year, and now it's almost production ready.  It could be
> helpful for enterprise projects.
> Any advice would be appreciated.
> --
> Best regards,
> k

--

I can definitely see the C# family resemblance.  :-)
How well does it interact with the regular Lua types?  E.g. what happens if I pass a plain string to a function expecting a System.String?

I have a couple of comments, although I didn't get time to read every detail yet:

* I like the idea of having an attribute system, I don't think I've seen that in a Lua object system before
* There are a few functions like Map, Filter, Range, ToList, Reduce, Each, Any, All, First, FirstOrDefault which I expected to be on Iterable rather than IList, why is that?  Do they produce lists rather than iterators?
* one thing I always thought C# could improve would be to have bitflags be a separate concept from enums (I think they just did it that way because C does so)
* about GetDefault(enum): another C#-ism I didn't like was that everything is defaultable.  Sometimes I have types for which there is no sensible default value, I expect the user must always provide something explicitly.
* I'm not clear on the difference between struct and class in your model
* I see that you have events in here, so that makes me happy!

--
GK