Expand the OutSystems language with specialized List concepts like Queue and Stack
292
Views
6
Comments
New

The OutSystems List client and server actions are very useful.

But if one needs to have an in memory Stack (LIFO) or Queue (FIFO) you needs to do (some little) coding in OutSystems to implement these very commonly used concepts. If I try to imaging how many OutSystems coders have implemented these concepts themselves in OutSystems, that is just a waist of time.

Most high level languages support these concepts out of the box, and I think OutSystems should do this too, bot client as server side.

I do understand I could create it using Service Studio and publish it as Forge components, but this a sub-optional solution. 

Great Idea.

Would we need the concept of a Stack or Queue, or could this also been done by adding a couple of functions that interact with the default OutSystems List? If this is efficient depends off course on the data structure currently in use by the default OutSystems list.

Push, Pop  and maybe Peek, to interact with a list as a stack and enqueue and dequeue and maybe Head/Peek and Tail for queues. 

I'm not sure if it is really critical to have a separate Stack/Queue implementation that is implemented using a (singly) linked list or other appropriate data structure.


Hi Kilian,

I agree I can make it easily myself, I know I did. I was just thinking about how many more OutSystems developers tried to do the same, on some very common data structures, available in almost all languages. Why did those companies think it makes sense to have them part of the language, and OutSystems not. I like to solve business problems, not implement basic language concepts.

Regards,

Daniel

Fully agreed Daniel

More or less the same as this idea, "More system actions for manipulating lists: ListInsertHead(), ListRemoveHead(), ListRemoveTail()".

--Tiago Bernardo

I see in the Forge there is a FIFO Queue and a LIFO Queue (Stack) created by Emidio Correia.  (Compatable with OutSystems 11) Maybe this can help you.