4 ms·
Thank you for sharing this article. Speaking personally, it comes at a great time. I've been toying with the idea of getting involved in open source, and was pa
by ZenoArrow 9y ago
Thank you for sharing this article. Speaking personally, it comes at a great time. I've been toying with the idea of getting involved in open source, and was particularly interested in pushing forward open source office suites.
Something that I'm particularly interested in with LibreOffice is helping the core being decoupled from the UI, to both help with portability and to speed up the rate of UI innovation. I had thought that I may have to start by myself, but based on this article it seems that the current LibreOffice developers are thinking along similar lines.
If any LibreOffice developers are reading this, are there any sub teams setup that may be a good fit? To give some idea of my background, I would describe myself as a tester that knows how to code (not in C++ alas, but I'm familiar enough with debugging at a low level).
- buovjaga 9y agoRegarding the UI, there are certainly some... curiosities. To give you a random anecdote from the trenches: https://bugs.documentfoundation.org/show_bug.cgi?id=107087#c16 https://bugs.documentfoundation.org/show_bug.cgi?id=107087#c... "It's challenging to fix as one needs to tunnel certain data through 20 layers of abstraction, but hey, that's improved UX for you!" If you want to get into triaging bugs, I welcome you with open arms. I am desperate to get us more helping hands as after nearly 10000 analysed reports I am anxious to diversify. Here is the index of our QA tech articles: https://wiki.documentfoundation.org/QA https://wiki.documentfoundation.org/QA Basic debugging info for triagers: https://wiki.documentfoundation.org/QA/BugReport/Debug_Information https://wiki.documentfoundation.org/QA/BugReport/Debug_Infor... Debugging for devs: https://wiki.documentfoundation.org/Development/How_to_debug https://wiki.documentfoundation.org/Development/How_to_debug Binary bisecting: https://wiki.documentfoundation.org/QA/Bibisect https://wiki.documentfoundation.org/QA/Bibisect If you were thinking of working on the UI, please get in touch with the design team, which includes some devs (but could really use 10 more!): https://wiki.documentfoundation.org/Design https://wiki.documentfoundation.org/Design You will find me in the QA IRC channel (and most others): https://wiki.documentfoundation.org/QA/IRC https://wiki.documentfoundation.org/QA/IRC I'm heading to sleep now, though, but I hope to see you around!
- ZenoArrow 9y agoThank you very much for the overview! I'll check out the QA IRC this weekend, and look through the links you've shared. Hope to see you around too. :-)
- jancsika 9y ago> "It's challenging to fix as one needs to tunnel certain data through 20 layers of abstraction, but hey, that's improved UX for you!" It it's truly 20 layers of abstraction, I'd love to read a blog that spelunks into all those layers and elucidates what they do.
- chris_wot 9y agoStarted in 1988, but since around 2012 we have started to streamline it. The layers work like this: 1. Old cross platform layer for both operating system specific functionality (OSL) and runtime specific functionality like string handling and bootstrapping (RTL). 2. UI code base is the Visual Components Library (VCL) - Window handling, event loop, controls (e.g. buttons, etc), etc.. This is divided into a platform specific part and a non-platform specific part (allows for easier porting). 3. “Starview Library” (svl) and toolkit Library with extra widgets, etc. 4. SFX2 (Starview Framework v2) dies things like dispatches messages, creates a “shell” for each program. After that I get a bit lost, it it’s mostly app specific stuff. There’s also a component model baked in called UNO (Universal Network Objects) which is a network transparent component hosting environment - it’s what allows the use of Python and Java, with obviously a C++ specific purpose environment. It’s kind of cool, but also many folks don’t want to use it any more than necessary. I think it helps to understand that it was a German company who created StarView, they really though in terms of layering :-)
- gmueckl 9y agoI vaguely remember that StarDivision (the original company) offered separate licenses for the VCL as a cross-platform UI library in the 90s. If memory serves, it was available for DOS, Windows, OS/2 and Solaris back then.
- chris_wot 9y agoYou need to study the VCL (Visual Component Library). This is actually divided into a sal (system abstraction layer) which is the bit we can port so we can use it on different platforms (Windows, GTK+, KDE, OS X). Then there is the "stable" (I say that advisedly) bit, which is based on the OutputDevice class, which spawns the Printer, Windows and VirtualDevice classes. The best thing that could happen at the moment is for OutputDevice to be gotten rid entirely - it's a leaky abstraction.
- ZenoArrow 9y agoThank you for the advice, gives me a good idea of where I should start.