Syllable Forum Index Syllable
Syllable Forums
 
 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Syllable and Red

 
Post new topic   Reply to topic    Syllable Forum Index -> Off-topic
View previous topic :: View next topic  
Author Message
nos



Joined: 17 Sep 2007
Posts: 95

PostPosted: Sun Dec 07, 2014 6:52 am    Post subject: Syllable and Red Reply with quote

Hi Kaj,

How are things - I am still keeping an eye on Syllable. How is Red going, I keep an eye on it as well. https://trello.com/b/FlQ6pzdB/red-tasks-overview
I see Red just got full object support.

feel free to grab a coffee and write me a blog post while we are waiting for Red to be self hosting Very Happy (I know you don't like saying to much what your plans are but I don't my if you hint at a few things) Very Happy

nos
Back to top
View user's profile Send private message
Kaj
The Knights of Syllable


Joined: 14 Sep 2007
Posts: 2202
Location: Friesland

PostPosted: Sun Dec 07, 2014 5:17 pm    Post subject: Reply with quote

I appreciate you following the project. I've stopped writing news articles on the main sites because I felt they weren't very effective anymore, and I am between machines and between versions of my CMS engine, so it's currently hard for me to do.

Red and REBOL 3 are both progressing, but they're taking longer than promised. REBOL is still powering the CMS that the Syllable sites are built with, but I'm developing a new version that I'm currently writing in Red. The goal of the first CMS was to get as far as possible with static pages, so they can be hosted on any web server. That would include any web server ported to Syllable, and it enables us to host the Syllable sites on Amazon S3 with high scalability and uptime.

With the new CMS, I decided to support dynamic web sites and do that as well as possible. I already started that with the old engine for

http://try.rebol.nl

running on Syllable Server, REBOL 2 and the Cheyenne web server, and originally a third-party REBOL web framework, but it never felt very optimal to me. My new design fully goes for dynamic content. I'm mostly using the new chat site I made to drive the development:

http://chat.syllable.org

Web technology has a lot of problems, especially dynamic content. My progress is slow and often frustrating. With the first engine it was easy to support all browsers. With dynamic content in the new engine that's not possible anymore, but I'm making sure that the chat site and my other web apps work on Syllable Desktop, even though the Webster browser is fairly old now.

Over the past years, I went through several web servers to find the most suitable one. After Cheyenne I ran Nginx for a while, and the new CMS started out as a backend for Mongrel 2. However, all these servers disappointed me in the end, so I am currently writing my own web server. The above Syllable chat now runs on it. Ironically, my new system can serve the dynamic content, but not the static files yet. Smile They're still served by Mongrel, but I just implemented serving of text files and am about to implement serving of binary files (the Syllable icon and sound files in the case of the chat).

My guiding principle in all of this is reduction of complexity. Complexity is a big and growing problem everywhere, in software and in our societies in general. In open source, complexity is a big hurdle to porting third-party projects to Syllable Desktop, or even to Syllable Server. I'm always looking for the least bloated projects to potentially use on Syllable and to learn from them, but in many cases they're still too problematic to support and I'm eventually forced to replace those dependencies with something simpler of my own.

REBOL languages have a great potential to simplify software. Currently they also still lack a number of essential features. I wrote many bindings, libraries and example programs for Red (at the bottom of the page):

http://www.red-lang.org/p/contributions.html

The bindings to external libraries have the problem that the library needs to be ported to Syllable. For many of my bindings that's the case, but not for all, and it's problematic to get them on Syllable, even Syllable Server. So when I have learned about third-party subsystems, more and more I try to replace them with simpler code in Red.

I would also like bindings to be easier to create. The reason to want them in the first place, is that REBOL has sometimes been too simple, not supporting some methodologies that are in wide use. It may be a long shot to think about it this way, but in my mind, I use a lot of Syllable principles in my Red designs, for example to integrate existing open source projects, and to make my web server and chat app efficient and more responsive.
Back to top
View user's profile Send private message Visit poster's website
nos



Joined: 17 Sep 2007
Posts: 95

PostPosted: Mon Dec 08, 2014 3:10 am    Post subject: Reply with quote

Thanks Kaj,

That's great I knew you would be busy. One last question if I may - Do you think the Visual Interface Dialect from Red will be able to run on Syllable eventually or do you think it will be problematic as well and not really an option?

nos
Back to top
View user's profile Send private message
Kaj
The Knights of Syllable


Joined: 14 Sep 2007
Posts: 2202
Location: Friesland

PostPosted: Mon Dec 08, 2014 4:38 pm    Post subject: Reply with quote

That's a good question. Unfortunately because it is indeed problematic.

There are currently more or less three GUI dialects for Red. They're all in proof-of-concept state and very unfinished.

I made the first one a few years ago: a dialect based on my GTK+ binding for Red/System, later followed by a Red version. I ported all of GTK's dependencies to Syllable Desktop a few years ago, but I haven't been able to port the GUI itself yet, so it isn't usable on Syllable yet. Further, I made the dialect before PARSE and objects were implemented in Red, so it proves that it can be done, but it isn't how you would want a Red dialect to be implemented eventually. On the low level, as I said above, I would like the low-level bindings to be easier to create, because the GTK binding is also very incomplete and it's a lot of work to extend it.

I'm building my web framework with PARSE and objects now, so this is a more modern version, but it's very difficult to shoehorn web technology into a Red dialect, because it's such a mess. I have to fight on two fronts, too, because Red is very buggy, and especially in objects and PARSE, I had to hunt down many bugs in Red for my projects.

The GUI you may be referring to is the one that is planned to be a part of Red. It's supposed to be a bridge to all the native GUIs of all the operating systems. At the moment, only a small proof of concept exists for Android, and maybe for Windows. It will be a lot of work to implement one for each platform, and it will be hard to keep them compatible.

So to get that on Syllable Desktop, you'd have to implement a backend for the Syllable GUI. That's a big problem, because Syllable's GUI is implemented in C++ in LibSyllable, and C++ is notoriously hard to bind to other languages. The most logical way would be to add a C API to LibSyllable and bind that to Red, but then you'd be doing a lot of work in C and you'd have to maintain and extend that for any changes in the C++. Further, Syllable's C++ GUI and other sub-systems are also quite unfinished, so after all that work you'd still end up with an unfinished platform.

I have been considering several alternatives. One would be to bypass LibSyllable and write a Red/System binding to the kernel and send your own messages to the AppServer and MediaServer. This is still a problem because the messages are flattened C++ objects, but Rui has shown that it can be done by reverse engineering the serialised object format. It's a hack, though, and you would only get AppServer Windows and basic Views, so you'd have to implement a new widget toolkit on top of that.

We also have SDL, which is sort of Syllable's existing C interface, so you could also base a similar thing on my SDL binding for Red/System. You'd still end up with a different widget set than LibSyllable, either an existing one or again one you'd have to build anew. However, Syllable's SDL is SDL 1.2, which has the big problem that it's limited to one window. The new SDL 2 is finally out now, and it fixes this problem, but it would have to be ported all over again to Syllable Desktop. That could be done in the existing way on top of LibSyllable C++, or you could base a new port on the aforementioned Red/System binding to the Syllable kernel, if you would make that into a porting layer.

So it's already a lot of work to get Red interfacing with Syllable's native sub-systems. Then you need to do a lot of work on top of that to create a new GUI toolkit. Another interesting option is to use Enlightenment. The new version has finally been released, and a few years ago I managed to port most of it to Syllable Desktop, albeit on top of SDL. I haven't gotten the widget set to work yet, but it's a very layered framework in which the graphics and layout engines already work on Syllable. Writing Red bindings to that would make it relatively easy to create a new widget set on top of that. Later you could port the existing widget set, including a binding with WebKit, and you could write Syllable drivers for Enlightenment to get rid of SDL, or as above you could port SDL 2 to Syllable. Enlightenment provides a lot of functionality that you would otherwise have to implement yourself, but on the other hand, in Syllable terms it's a large system, and there's a lot of stuff in it that one would rather implement directly in Red.

Decisions, decisions...
Back to top
View user's profile Send private message Visit poster's website
nos



Joined: 17 Sep 2007
Posts: 95

PostPosted: Tue Dec 09, 2014 3:39 am    Post subject: Reply with quote

I have not minded Syllable being in hibernation for the moment, For me the landscape is still evolving, Some times it does not take much for a piece of the puzzle to just fall into place. Red and Red System seems to be one of the pieces and we are waiting for it to hit version 1.0 . Another example someone ported the GUI toolkit SDL-widgets to SDL2 - I am not mentioning it as a porting option but just how quickly the landscape can change sometimes. I saw you GTK web browser demo on video (really nice work) I think I remember you say c++ binding are much harder then C bindings which was one of the reason you ended up using GTK

GUI SDL 2 Screen shots
http://members.chello.nl/w.boeke/SDL-widgets/index.html

Original post
http://forums.libsdl.org/viewtopic.php?t=8695&sid=6af4bd827355cfaf4ea8863d313a9527

So for me in some ways Syllable was ahead of its time and we are waiting for the landscape to catch up. I must say because you have not compromise on the Syllable spirit of design that it is one of the reasons I still have a soft spot for Syllable.

I still have my 2 Syllable partitions on my computer that I did the Jazz community version with and thought something like a JazzRed version might be nice when the time is right.

Thanks for your time Very Happy
Back to top
View user's profile Send private message
Kaj
The Knights of Syllable


Joined: 14 Sep 2007
Posts: 2202
Location: Friesland

PostPosted: Tue Dec 09, 2014 2:48 pm    Post subject: Reply with quote

Agreed. And JazzRed would indeed be very nice. Smile
Back to top
View user's profile Send private message Visit poster's website
Display posts from previous:   
Post new topic   Reply to topic    Syllable Forum Index -> Off-topic All times are GMT - 6 Hours
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group