I'm excited about the upcoming Hackathon (Sept 23, 24), but this temporary burst can't make up for the fact that core dev contributions are down and have been for a long time.
This isn't anyone's fault. To an extent, this is normal cyclic behavior as people get busy with other things, but I rather think it's that Elgg is no longer exciting or fun enough to maintain developer interest.
Sure, we've made huge improvements in DX and performance, and 2.x provides a lot of value, but the product remains highly tethered to trends, technologies, and architectural decisions made 8 years ago. We have some loud voices in our community telling us that Elgg should change even more slowly (or not at all), and I've personally over-romanticized the idea of extreme backwards compatibility, but if we continue this path I think developer interest will keep dropping off.
Personally I really enjoy working with Elgg's contributors and don't want to stop, but for my career's sake I can't focus on reworking 2008-era APIs much longer. I considered quitting in 2014 and didn't out of inertia and because family health problems made it comforting work to bury myself in.
What can we do?
We could do nothing. This is just my perspective and I could be wrong or it could really not matter. There's nothing wrong with stable software that nudges along slowly. My prediction is that high maintenance chores will start to go by the wayside. Elgg 3.0.x will get dozens of releases and plugins will thrive as they did on 1.8. It's not a bad outcome for lots of people, but I'd be bummed.
In the short term, Ismayil and I should stop stalling new development in order to wait for a 3 member consensus. If a PR on 2.x/master gets a thumbs up and no one expresses concern or a desire to review for weeks, it goes in. Those branches give plenty of opportunity to revert or fix concerns that come up later. When reviewing involvement goes up, we can scale the need for consensus accordingly.
Businesses relying on Elgg could offer developer time. That won't help if devs really don't want to work on it though. And IMO business owners are under no moral obligation to contribute, but it would of course help.
We could seek out and destroy any low-return hassles that make working on Elgg less fun:
We should identify roadblocks that make more radical changes seem impossible. It was really disheartening to turn away a good 3rd party effort at moving to UTF8MB4 columns. Schema changes in general are almost unimaginable due to the expectation that Elgg run its own upgrades.
Personally I would love to--at least temporarily--set aside the requirements of upgrade paths and BC and start over.
In general I want Elgg to take a great leap forward to become something I'd be proud to put my name on, not filled with things I have to apologize about.
This discussion is closed and is not accepting new comments.
info@elgg.org
Security issues should be reported to security@elgg.org!
©2014 the Elgg Foundation
Elgg is a registered trademark of Thematic Networks.
Cover image by RaĆ¼l Utrera is used under Creative Commons license.
Icons by Flaticon and FontAwesome.
If someone wants to design/donate a new theme, put your graphic proposal on Github, let's take a vote and I will turn it into a theme. End of discussion.
I like the fact that there are more releases than ever before. It is good. Just hear me out:
I know there's a lot of work and effort with each release. Steve is right, I am only seeing the surface, but I am fully aware of the internal changes, which as of right now, elgg has become faster. It is not much of a problem, it is just... don't take it the wrong way, but from the outside we see constant releases but we don't see "surface features" such as real-time River (I know it has been accomplished with several plugins). So, it is more of a perception problem, and that perception can lead to the really bad "Why do I need to upgrade? It is not worth it" or the "You are releasing too fast, I don't have time for that"
We have bootstrapped themes, and several high quality themes and some themes that completely reworked the site menu. Yet, it all stays within the plugins. I'm not saying it is bad. I'm not saying "Let's pour every shiny thing I can think of". Just start adding small things, one thing at a time.
If we could come to an agreement and create a roadmap, what could possibly be the first goal for example?
Real Time River Stream? When is gonna be added? Whenever is ready. I do not want things now. Coding is hard and maintaining elgg is an exhausting task and I'm glad you put time and effort for that. That's just one example, not suggesting to do that now.
Personally, it's pure the way Elgg is written. It doesn't have any pattern whatsoever, it's built from scratch without sociability and flexibility in mind. Although, this is currently chancing, it'll only take so long before it reaches that point where developers will start contributing/using it again, without a reason. Currently, most of the people I see around here are from the old ages, where Elgg was still "the shit", which it isn't, anymore.
I would prefer to hop on a completely different path: get a framework (Laraval, CakePHP 3, Zend, Symfony) and start from scratch (although, with the current features in mind). This will have many benefits (a lot, and a lot, of plugins, if you choose the right framework, e.g. Laraval or CakePHP 3), event handling, job queues (Gearman? RabbitMQ?), notifications built-in, all kinds of mailing advantages and last but not least: a platform developers will built on. With ease. Oh, and the database structure normalized against the frameworks standards. ACL and denormalized metadata (and no metadata access levels).
I've been really struggling to get started with Elgg, and still am in some points, like the way all files are organized or how certain things are implemented. I'm trying to contribute as much as I can, but most of the PR's/issues are still left open, denied or merged at some point, which doesn't really motivate to contribute.
And the template, yeah. Same as above, adapt the modern tools, and developers will be more happy to contribute. The same for tests, way to important to skip those.
i think the issue goes further than just designing a new theme - although that would be good. there are probably already good enough themes in the community (although i don't know of any since i don't use them or review them often). the other issue is related to the upkeep of basic features. e.g. when i upgraded from 1.8/1.9 through to 2.1, there were many features that got lost due to plugins not being upgraded along with the core. it took me probably a month of solid coding to get them up to date (i use a lot of plugins), but since some of these plugins are for the kinds of features that are considered basic, core features for social software in 2016 (and since maybe 2013) i think we have some kind of agreement here already that the code would be ideally held within the elgg core. moving, say, galliComments (for ajaxed commenting) and hypeLists (for ajaxed lists) into core would tick several of the boxes this thread has raised:
hypeInteractions may also be suitable, i haven't used it though, so i'm not sure. having these in core would ensure that the base level of functionality in elgg is raised to a new standard/level and i think that is the aim here. if this were combined with a new theme to package with elgg and maybe to use in the elgg community here, all the better. n.b. i just went to scan through the themes but there are no screenshots available in the list view which makes navigating themes much more challenging.
I work on a hobby project, for 5 years now, originated in 1.8, running on 2.2 now. I still haven't launched. Because I have this urge to do as much as I can, alone and I want very specific things, but no budget.
I couldn't code one line when I started but I am making my own plugins for my project myself now.This was a very bumpy road, since there were so few people to help out, and Elgg had so few of my requests in core. So I had to rely on github, the help I got here, learning PHP myself and I read cash's 1.8 book.
I gave up multiple times, and took a restart multiple times. But although I don't post very often, I watch the discussions here every day.
What I do want to say is that since we have proper docs, starting with 1.9 I think, I really started to understand things better, and I can say I'm able to do most things , though slowly, on my own now.
If I may, I say a few things on what was written here and try to be constructive.
First:
My own contribution
I am really, really willing to do a lot of work for Elgg, wherever I can. I'm thankful of what I got from this community
The problem is that I am just beginning to feel comfortable in coding, for the first time I'm feeling that I can build a plugin from scratch and do most things myself. I use github a lot to see how core handles things.
But I'm very afraid of doing things 'not the best, or most efficient way'. It's a burden for me to do something because I feel that the dev reviewing my code will probably do it different and has to rewrite it. If you're up with that. I'll start contributing.
Community site
I do think this is a problem for arriving newcomers.
Although Aalborg was a big leap, it still looks a bit 'unfinished'. And I must say, adding the elgg.org topbar on top of the community topbar didn't do it good.
You'd be surpised what some subtle gradations of one colour + some boxshadow, and a modern font could do in a here.
I'l post a screenshot of the wall of my project. immature and unfinished, but this is basically Aalborg, but with a lot of small colour changes. But it's clean and looks more modern to me then the community.
http://www.daltonstudio.be/garbage/screenshot.png
If my help on this is wanted. I'd be glad to help, really.
Elgg.org
This is really not good, it looks like it's from the 90's. I can imagine people clicking away instantly when they see this and don't even bother to look how great the engine actually is.
I'm am certainly willing to work on this. I think we should really integrate this into the community site, instead of the half-half solution we have now
Instant notifications
Although I agree it's a must-have, this is a difficult one to achieve, don't we need a push server? Will this work for the numerous shared hosting people we have?
I would rather get rid of the site-notifications and use something like Juho's Notifier instead.
Leave the instant/push to plugin authors, like Juho is doing now with his notifier plugin.
This could be wonderfull if plugin authors could easily hook into the notifications and deliver them the way they want (like it is now, basically) There are multiple push services who have a very good API to build on.
Ajax
The team already did a great job here. But there are just small things that could easily be ajaxified
I'm trying to make every action in my project as ajaxified as I can with a normal action fallback.
Plugins
We should think this over, how and what. I love the way Wordpress handles this.
Commercial plugins
If the reason not to do this, is the hosting. We should host this shop somewhere different.
I am definitely willing to pay for a quality plugin if this means that it will be updated.
If Elgg could get a commission for every sale the hosting could be payed with this.
I agree this could attract developers to make plugins that could matter and where Elgg could benefit from.
Bundled plugins
If it's about sharing. We need a sharing mechanism, like facebook has. Just share an entity's link on the wall. That's it, could be a small lightbox where they could add a message and press submit ->action will post it on activity.
Plugins that should be bundled
or actually, be in core if you ask me
Theming
I'm pro moving to bootstrap. However, will this implicate that every elgg site will have to completely redesign their themes? If that's the case I don't know if I'm still pro.
Breaking things is ok, but this is breaking a lot, if not everything. I don't know how you guys see this.
Admin
We got all 2.0 with Aalborg, but we forgot the admin.
It makes you think you're working with 90's software, although it isn't.
I can work on that if you'd like.
I'll stop, don't think anyone is still reading anyway.
Thanks for all so far Elggers.
just a note: i use the bookmarks plugin because it allows lists of bookmarks to be saved per group (so per topic) and for that to be a reference for others in the community. i appreciate that sites that are heavy on the social and light on the 'information resource' aspects will not care about the bookmark plugin, but for information resource sites it is useful.
Internet in its true open and interconnected-network-of-multitude-of-sites form exist no more. To majority of the teens (as well as adults) net is FB and Apps. Just to think of it! Apps and apps - which are far from the spirit of net. Many open source php projects like Geeklog, e107 are dying a slow death. No longer there are any teens coming up with similar scripts like Drupal or WP in the last 5 or 10 years, simply because being online now means you are on FB, Apps, or Amazon. Its Apple, Google, FB all the way.
If you still want to look at the "small" number of people who download social net scripts like Elgg and have their own site, then think of the fact: they have better options like EasySocial, Peepso simply because of the fact their status box is alive and brings to center all activities OUT_OF_THE_BOX.
Elgg is still wonderful but with teens and folks on FB, many companies having only FB and whatsapp address as the only web address on billboards, and with no sopa-like movement against the fact that internet is being or has been fragmented into much-worse-than-Microsoft monopolies like FB and Apps, not just Elgg but opensource php scripts will suffer death or stagnation. So called Hobby users were actually MAJOR chunk of users of these scripts but if php 5.3x is not supported for eternity the net we knew will just slowly disappear.
PS and off-topic: can someone make the double top-bar atop elgg org into single, its an irritation to the eye (3 top bars if you are logged in!!), not uniform across all pages, and many links are repitative like Blog and Elgg blog, Community and activity. Also, I do not find why we cannot have less pagination for comments, almost all such sites have at least 50 comments per page.
http://learn.elgg.org/en/2.0/contribute/docs.html#testing-docs-locally
I'm closing this topic with some takeaways: