Disclaimer: this blog will not be about the talks given at the conference, but more about my experience at the conference with the goal to inspire others. This blog might become a part of a series which WILL include the content of some of the talks.
Last week, on the 21st and 22nd of November, I attended (as a Java developer), SymfonyCon Amsterdam 2019.
I didn't really expect much, simply enough I wasn't (and still am not 100%) open to the usage of the PHP language.
This is for one simple reason: I don't like working in PHP, I love working in Java, Python, (and maybe a little bit of) Go. But I never really see myself working in PHP.
Upon arrival, it seemed like any other conference.
It was busy, there were long lines for the coatroom and the halls were completely filled with people "reserving" multiple spots for their colleagues. All in all, a very normal looking conference.
Keep in mind, the conference was held in the infamous "Beurs van Berlage" , which had two big halls and one small hall completely filled with a stage and tons of rows of chairs.
So coming there, sitting down among the 1600 other participants, I waited for the first talk to start. And by surprise, it actually really caught my attention.
When the keynote started, the creator and main maintainer of Symfony (Fabian Potencier) deployed (yes, deployed) live on stage Symfony 5.0.0 and while doing this explained what he was doing and why he did it.
It was funny to see that despite the differences between Java and PHP, it all looked very familiar.
Basically it went as followed...
"He had some commands and webhooks that automated a lot of his work:
- A pull request was made which created a tagged commit...
- Which then triggered multiple webhooks to post a message to Twitter, the Symfony blog...
- And that most importantly.. split up and updated all the subtrees of Symfony (can be seen as submodules of the framework which you can use independent of the complete framework)...
He really just made it look so simple to deploy a release to a public Github with all automated changelogs, splits of subtrees, send messages to multiple platforms; all in just three commands."
After this, the actual keynote started.
The new release was explained and with this his new book about Symfony 5.
The most important thing to mention is that he completely automated checking this book and made it while working on Symfony 5.
Not only did he make changes to both his book and the framework while working on the framework, but he also found some pitfalls which he learned about himself.
He called this way of working, Book Driven Development (BDD), in general, a: "good presentation showing automation processes and integration tests while explaining a fun story of his journey to Symfony 5 and the book he wrote about it". Just a funny thing that I wanted to mention.
Well, then when the keynote was done, and all hell broke loose.
There was only one door per hall to go through and there was a 10-minute window between the sessions. This just shows that there was just not enough room or well enough management to get everyone from place to place.
I didn't really expect this as the conferences where I have been to before were managed on a whole higher better and you didn't have to wait in line for 5-10 minutes just to get out of the hall.
The one thing that I did notice, is that besides the main three conference halls, there was an "unconference hall". A hall where you, as an individual, could register to talk your talk. And this all for a potential huge crowd. I really loved this idea as you no longer had to have some sort of backup or some sort of representation in order to share your ideas!
Over a period of two days, I attended a total of 10 talks, each being 40 minutes.
None of the talks was really about just the framework: but more about the techniques behind it and how they implemented these techniques in their applications.
Day one was by far the most interesting day.
There were just way more talks that I felt connected to.
The one that I feel like mentioning the most was the talk about HTTP/3 QUIC given by Benoit Jacquemont; this talk was about the technique behind HTTP/1.0 through HTTP/3.0 and their history, upsides and downsides (and the future).
Over the rest of the day, I attended multiple talks that were about multiple components inside the Symfony Framework, how to design your application, how to use the cache, etc.. More about this in future topics.
All in all, a very fun day despite the long waiting lines.
Day two started very interestingly.
The creator of PHPUnit 5, Sebastian Bergmann, gave a talk about the usage of PHPUnit and the common pitfalls (and yes you guessed it, some of them are: "use a supported version of your software and always look at changelogs"). I will tell more about using a test framework in a future blog post!
After the opening keynote, the day was pretty much more about how certain companies approached certain problems with the use of the Symfony Framework. But nothing really about general techniques and how they are used.
This day was really "101 with Symfony".
So as expected this was the least favourite day for me out of the two. Even though there was a lot of information, nothing really spoke to me, but then...
The last talk, a talk given by Tobias Nyholm, was probably one of the most interesting talks I have attended yet.
Tobias gave a talk about building really fast applications, and one of the most interesting things (which I barely hear) was that frameworks do not make your code slower: more code does. His talk was about leaving away layers you don't need and to check what you are using.
- Do you really need everything?
- Are you just using it "because others use it"?
- Or are you just using it and "because you can"?
- Always profile your code, and I can really back this all up.
This all really spoke to me because I am really someone who stands behind all these statements. Frameworks are fun, but they sometimes add too much, and this means that you are working with components that contain more code than you need. Make your code more complex and makes your application so much harder to use and test than you actually needed to have.
When leaving the conference I realised that I learned way more than expected. Despite the bad crowd management and the only one lunch table that was available at the same time. I learned a lot, and a lot more than I actually dreamed I would at a PHP conference!
So for anyone that is thinking about attending a conference: look into conferences that are not in your first interest, and learn from these conferences. You might actually learn something!!
I hope this post was helpful or good nice to read, if you have any comments on the post itself or writing, please let me know! I am just starting to write posts.