Let Us Give Thanks

In a recent discussion about the PHP ecosystem, I was told that most Open Source maintainers and contributors are paid for the OS work that they do. Nothing could be further from the truth! While a very few contributors are paid for their work, a few are able to build businesses around consultancy for their projects, and some accept the occasional donation toward their work. But the vast majority of maintainers and contributors work on these projects in their own time, and don’t receive any form of recompense for all the hours that OS takes up in their lives.

The discussion itself was all about the pace of change of PHP, and the extra work that deprecations and backward-compatible breaks (documented or otherwise) create for OS maintainers that want to keep their projects working with the latest versions of PHP. Maintainers are pressured to ensure that their projects work without issue with every new release of PHP, sometimes even before the official release date, while being pressured by other users to maintain backward-compatibility with older versions of the language. It’s a situation that can create a lot of stress, and a lot of extra work for them as they try to find a balance between the two demands, even without the general maintenance work of support and bugfixes, and the requests to add new features to a library. And there are so many Open Source tools and libraries that we use every day in our work that are maintained by unpaid, unthanked individuals.

At the end of last month (and long overdue) the PHP Foundation was announced, a non-profit organization whose mission is to ensure the long life and prosperity of the PHP language. Backed by funding from some of the biggest companies involved within the PHP ecosystem, and from individual donations and pledges, it plans to pay developers who contribute to the PHP core for their work. It’s a very positive step to ensure that the language continues to evolve and improve; but the core of the PHP language is just one of the many Open Source project that we rely on in our daily work. But the PHP language itself isn’t the only Open Source project that we use every day in our work.

We use tools like XDebug for debugging. Our CI pipelines might include PHPUnit or Pest for testing, PHPStan or Psalm for static analysis, PHP CodeSniffer for ensuring that our work conforms with coding standards. We build our applications on frameworks like Symfony or Laravel or CakePHP. If we’re doing an upgrade, then we could use Rector. We use libraries such as Doctrine or Monolog. And many of these tools and libraries are dependent on others that we might not even realise we’re using. Just take a look in your composer.lock file to see all the libraries and tools that we’re dependent on for our work.

But even behind all those, there are also the tools that make up our development ecosystem. We run composer (and connect to packagist) for managing our dependencies. If we have a CI pipeline, we’re probably using Shivam Mathur’s setups to prepare PHP for that pipeline; while others like Remi Collet maintain RPM libraries for PHP. If we want to test small snippets of PHP code against different versions of PHP (or even a new RFC branch), then we might use a site like 3v4l.org.

And don’t forget the PHP documentation. Even outside of the software tools that we use, there are also blogs posts and tutorials that we read, podcasts that we listen to, or streaming events that help us learn how to work with those tools, or to improve the way that we work.

All of these make up the PHP ecosystem that allows us to make our living as developers. So this December, when we’re celebrating the holiday season and the turning of the year, it can be good to remember all those individuals that look after the tools and libraries that we use in our working lives, and perhaps to give them some show of appreciation for all their efforts. Just spend some time thinking about all the work that Open Source contributors do each year to ensure that this ecosystem runs smoothly, and perhaps (if you’re feeling generous) make a small donation toward some of these projects; or hunt down a contributors wishlist, and send them a little “thank you” for their efforts.

Thankful

Given that I don’t live in a US-centric country, but I’ve watched enough US television over the years, I know about the concept of thanksgiving. In South Africa, Christmas day is usually a time to share gifts, spend time with family, and be thankful for all the good things in the year that has passed.

This year, I am thankful that my family has made it through another year of living with the pandemic.

I am thankful that the career I stumbled into 16 years ago continues to grow and thrive and present new opportunities.

I am thankful that I have a job that allows me the ability to work from wherever, whenever, and schedule my work so that it suits my life, and not the other way around.

I am thankful that 26 years ago a Danish gentleman created a scripting language for the web, and then spent the next few years putting work into the server stack around that scripting language, a key piece in making it the dominant platform of the web still to this day.

And I am thankful for all of you, my extended PHPamily, some of who I’ve met in person, some who I only interact with on social media or in chat channels. Every day I learn from you and I’m challenged by you to become a better programmer, writer, and person.

If the last two years have taught me anything, it’s that we need those connections, especially when working in remote environments, with little social interaction.

Without the love and support of my IRL family and the interactions with my PHPamily, I probably wouldn’t be here today to be thankful.

Once upon a time

Once upon a time, the web was a space where only the geeks could play, but because of the geeks choosing to share, PHP has created an environment that gives almost everyone the ability to share stories and information, regardless of our technical ability.

Once upon a time, to create a website folks needed to understand HTML and hosting and a lot of technical bits (which are wonderful and important and shouldn’t be trivialized) but what we have now is the ability to put our thoughts onto a screen and share them across the world without having to consider the infrastructure that makes it possible.

And that is something that fills me with joy and gratitude.

And so, to all who have done anything with this language that began as a way to program a personal home page, well done, and thank you.

What are you waiting for?

December is a time of waiting for many people. Children await the arrival of Santa Claus and gifts. The world waits for the arrival of winter and a return to the daylight we all crave. We’re anticipating the beginning of a new year. For me and my family personally, we’re awaiting the arrival of a new baby. December brings about anticipation, and with it comes waiting.

Software developers are used to waiting. We’re often asking for time to improve the code our employer charges us to maintain, only to hear, “we need to wait on that.” We beg desperately for upgrades to systems, servers, and technology, only to be told, “that’s not in the budget this year.” We seek to upgrade to a newer version of PHP, only to be told, “that will have to wait.”

Even the most energetic and positive software developer can look at the wait as a time of distress, where waiting ticks off the seconds, days, and months of useful life our software still has. We know that waiting to upgrade will only push us farther behind until upgrading may no longer be an option.

What is a developer to do?

The answer is to embrace the wait. So many things about software development fall outside our control: when we’ll have time to refactor our code, when we can upgrade our servers, when we can buy new technology. But that doesn’t stop us from doing the tasks necessary to prepare for the day when those things are possible.

Children do not sit idly by and wait for Santa Claus. They write letters, bake cookies, and decorate their homes. We do not sit idly by waiting for winter to come; we prepare for festivals and parties and spend time with loved ones. We prepare for a new year with new year’s resolutions. My wife and I are preparing for our new arrival by buying clothes and setting up a nursery.

Just because you are waiting does not mean you are powerless. Waiting gives you the time you need to prepare: bringing your code up to modern standards slowly over time and anticipating the arrival of new technology or new hardware. You need no one’s permission to upgrade your development environment, to stand up Docker, or to write tests. These things are part of your job and well within the realm of your responsibility and power.

As we enter this time of waiting and anticipation, I ask you: what are you waiting for? And as a companion to that question, how will you prepare while you wait? Will you be ready when the time comes? Will you be prepared to act?

Elephpants, elephpants everywhere …

Sometimes people wonder how I got into PHP. Well … it was almost by accident as I never really learned PHP. It has already been three years… !

Not everyone loves this language, but I quickly realized that PHP is much more than a language, it is a community.

Like many languages, PHP has a mascot, the elephpant, and there is a culture around it. People buy them, win them in contests or conferences, exchange them, import them from the other side of the planet … There is even a register of all known elephpants

Part of [Pascal Martin's](https://twitter.com/pascal_martin) collection

I have to admit that it is not a cheap collection, but a very funny one.

In my case, as I love handicrafts, the elephpant has been a source of inspiration.

Some years ago I made my first elephpants in crochet which I am giving away this Christmas. It is a way for me to share what I love doing and get in touch with other developers of this beautiful community.

https://twitter.com/SofLesc/status/1464585590628925443

In France, we are lucky to have the AFUP (french PHP users association) that brings together PHP developers to share experiences. Last year, we did our first secret santa, and the idea was to offer a gift that was blue or had an elephant, in tribute to the mascot, and I did this lovely multicolor elephpant in cross stitch

At Forum PHP, the biggest event organized by the AFUP, I had the opportunity to talk about the need to combine features and technical vision. In the two days I’ve been in Paris, I’ve seen many elephpant exchanges ! Conferences are also the moments where the community comes together.

On this occasion, I even won a huge collector elephpant by doing some improvisation on the Karaoke Slideshow.

Elephpants come from all over the world and give visibility to versions, frameworks, companies, events, and even women ! A PHP women elephpant was given to me recently which has an especial meaning for me as there are not many women in tech.

And you, when will you start your elephpant collection ? Feel free to make your own creations, imagination is the only limit !

How I Found PHP

In the early 2000s, I was studying at the University of Cape Town. My undergraduate degree was initially computer science, then information systems, and during that time I learned multiple programming languages, Java and C++ were the main ones. While I enjoyed the structured nature of C and the libraries of Java, to me it was a frustrating experience, in particular, the (at the time) long compile times on KDE, and the endless debugging after compile time. While I enjoyed creating something from nothing in code, I didn’t find it by any means to be “fun”.

Eventually, I moved over to C# during my postgraduate degree on advice from one of my lecturers, and there I found that C# balanced fun and structure really well, and to this day it’s still my favourite language – but it’s not the most fun I’ve had 🙂

Towards the end of my postgraduate degree, I encountered PHP. A few classmates were developing their year-end project in PHP and they showed me how quickly you could get up and running, and with NO COMPILE TIME, I was sold.

PHP quickly became my choice of language, and while some folks mock it for not being a “real” language – whatever that means – it can be strongly typed and structured if you choose – but more importantly, PHP has enabled the innovation and explosion of the web, largely through projects like WordPress, CakePHP, CodeIgniter, and Laravel. These projects all had a low barrier to entry and made writing software accessible to the masses.

Hacking away through a PHP file, mixing classes and inline code, functional and object orientation, and discovering the joys of MVC frameworks – you could really move fast and break things.

I still love PHP, it’s going to be around for a long long time 🙂 It’s just so.much.fun!

“Stay a while and listen”

Yesterday Jetbrains announced the formation of the PHP Foundation, “a non-profit organization whose mission is to ensure the long life and prosperity of the PHP language.” Last year, PHP celebrated its 25th anniversary, with the language currently powering 78.2% of the open web.

And yet every year at this time I am reminded of the fact that PHP is not just a language. PHP is a group of people, a community of developers who build things for the web. The PHPamily spans the globe, and while we might not always agree or get along, we have one thing in common, we’re passionate about what we do.

This site is the place to share that passion. Each year we reach out and ask for contributions. Each year it’s often a scramble to get those contributions in, but we do it because we want to share your thoughts with the rest of the PHPamily, and have open discussions about the things that matter to all of us most.

This will be the 6th edition of 24 Days in December, and as always we’d like to invite you to share your stories with us. If you’ve had a thought or idea in your head you’d like to share with the PHP community, this is your chance.

I thought this might be a good time to cover some of the more common questions:

What should I write about?

In all honesty, your contribution is whatever you want it to be about. Did you learn something recently you’d like to share in a guide or a tutorial? Do you have an opinion about the current state of PHP core development? Have you been working on something cool you’d like to share with the community? Do you want to share something less technical you learned this past year? The content is entirely up to you.

How much time do I have?

There are no hard and fast deadlines, except that we try to post at least one new article every day for the 24 days leading up to the 25th of December. If we have more contributions we keep going, but that’s our goal. Given that the 1st is a week away if you choose to contribute today, you’ll have at least a week.

How long should it be?

There are no guidelines here. It could be a few short paragraphs or an entire deposition. We don’t mind.

What format should I send it to you in?

Markdown is preferable, but plain text is also acceptable. You can send it in an email, as a text attachment, via Google Doc, tied to the leg of a carrier pigeon, we honestly don’t mind, as long as we can get it.

We hope to hear from you soon. If you would like to contribute to this year’s edition, please email us at info AT 24daysindecember DOT net, or contact us via Twitter at @24DaysInDec.

One thing that you are looking forward to in 2021?

Part two of our “What is the one thing that you are looking forward to in 2021” question we asked our 2020 authors.

I am incredibly? strangely? naively? optimistic for 2021. 2020 for the WordPress project ended with a bang: a release made entirely of people identifying as women and non-binary. I look forward to supporting and mentoring contributors to the project.

Francesca Marano

I’m looking forward to seeing what new things the community can do with PHP 8. On a more personal level, I’m looking forward to seeing my friends and colleagues in person when possible.

Oscar Merida

My mother, the retired school teacher, used to tell her students that “you’re not losers, you’re choosers” when they would complain about their lot in life. Sometimes the options we are able to choose from are terrible ones, but you can get back some control of your circumstances by realizing that they are still just choices and in the future you can work to make sure your options to choose from are better.

Chris Hartjes

One thing that gives me hope for 2021, that I am most looking forward to, is “Change”. Change can be scary when we don’t know where that change is taking us. We’re stepping out of our comfort zone, our established routines, facing the uncertainties in life without a safety net. But change can also be an opportunity to learn, to improve, to grow; not just as developers, but as individuals.

Mark Baker

I hope in 2021 that this isolation reminds people of the greatness of their communities (no matter how they define them). And, when we can get together again, I look forward to a renewed sense of gratitude and compassion for those we have been missing for so long.

Josepha Haden Chomphosy

Hugs! Lots and lots of hugs.
Seeing people again without having to do the weird but necessary “we have to stay 6 feet apart”-dance.
Being able to have a beverage of choice in a relaxed atmosphere to discuss the world in general, PHP, pet projects and pet peeves with old and new friends.
Meeting people again from around the globe to share ideas, to agree and disagree, to enrich our own views with views we never even considered.
Being able to loose the constant watchfulness for keeping distance, face-masks etc.
But more than anything: HUGS!

Juliette Reinders Folmer

For 2021, I am looking forward to enjoying free time to do what I like besides programming: walking, reading and walking. Thus, I hope to refresh my mind to be able to enjoy programming in PHP even more.

Rubén Rubio Barrera

I look forward to the opportunities that are ahead in the new year, when the vaccinations will permit more freedom and certainly for people and companies to make bigger decisions. Since PHP is still one of the driving forces of online communication and e-commerce, we as PHP developers will have a lot of interesting challenges to look forward to in the new year.

Stefan Koopmanschap

For 2021, I’m looking forward to a return to normalcy. I eagerly await the restoration of normal life – dancing, live music, attending baseball games, and large social events; With Biden and Harris taking the reins in late January, I’m hopeful we’ll be back on track soon. Having someone at the top, who cares about the people, who’s willing and able to lead the country, is more important than ever.

Andrew Woods

One thing that you are looking forward to in 2021?

For the last two posts of this years edition, we asked our 2020 contributors “What is the one thing that you are looking forward to in 2021”

In 2021 I am looking forward to conferences. Not because I learn a lot from them (I do) but because I connect on a real level with my friends in the community. 2020 has taught me that there are limits to virtual. As humans, we need to connect in real life and conferences give the World Wide Herd the chance to do that.

I urge every PHP developer to make it a goal to attend one in-person conference in 2021. Get out there reconnect with old friends and connect with new ones.

The hope of conferences is what keeps me going. I hope to see you at one in 2021.

Cal Evans

2020 had shown us how resilient we are as a species. We’ve been through hell, and we’ve found ways to deal with it. We’ve learnt so much and I’m looking forward to us all using those learnings in 2021. Whether it’s to be more open about our mental health, knowing that you don’t need to be tied to a desk from 9am – 5pm, or simply creating a new exercise routine. The year of hell has forced us onto what I hope to be a better path for us all

Daniel Shaw

I’m looking forward to seeing friends again. All my friends are remote where I live, so being able to meet up for a chat and a cup of tea sometime next year will be wonderful!

Rob Allen

For 2021 I’m looking forward to creating more content in the form of e-books and video courses. My goal is to help as many junior PHP devs level up as I can 😉

Mauro Chojrin

I’m looking forward to seeing what new things the community can do with PHP 8. On a more personal level, I’m looking forward to seeing my friends and colleagues in person when possible.

Oscar Merida

Growing in the community

At the start of 2014, I knew very little about software development. I was only a couple of weeks into learning PHP in order to build a project for a friend and I had no idea where this project would take me. I certainly didn’t think I’d end up changing my career at age 30 (for the second time) and making a living as a software developer.

One of the first things I noticed pretty quickly about the PHP community and developer communities, in general, is that they liked to get together at local meetups and also at conferences. I could tell that these were a great way to learn from other developers and also a great way to network. As an introvert, I was very apprehensive at the thought of attending a meetup group or a conference but I also really wanted to connect with other developers directly. The problem here, was at the time I lived in Abu Dhabi and there were no meetup groups for PHP in Abu Dhabi or Dubai. I joined the virtual user group Nomad PHP but knew it wasn’t quite the same as having a local user group to attend. When I moved back to Ireland in 2015 I immediately got involved with PHPDublin in order to get connected to a local community.

It was through spending time in the community that I started to get involved with Open Source projects, namely Joind.in which I contributed to and then helped to run, as well as a couple of my own projects. I feel that this community involvement has led to me progressing quicker in my new career than I would have if I did not get so involved. The biggest gain I have found from this fantastic community is the network of like-minded people whom I can reach out to for assistance with issues.

Whilst I most definitely class myself as an introvert, through attending conferences and meetup groups, I’ve learned a wealth of knowledge that I otherwise would have struggled to understand. I feel that I can honestly say that without the support of the PHP and wider software development communities, I would not have grown into the developer that I am today.

Recently, a student in a coding Bootcamp asked me why I love contributing to open source and doing what I can to help others learn. The simple answer is that through others contributing before me, I have managed to learn and grow as a developer and now have a career where I feel I can really make a difference, and giving back is the absolute least I can do.

To those involved in helping others learn in the community, thank you!