I am Fabien Potencier, creator of Symfony (PHP Framework). Ask me anything!
- Creating Open source projects
- and more
I will be answering questions live on 4th Feb, 2019 at 2 PM ET (7 PM GMT / 11 AM PT).
I'm sure Symfony reached a broader audience after Taylor Otwell created Laravel based on it. From my standpoint it seems Laravel keeps tight bonds with Symfony, but simplifies for certain, but common, scenarios. What do you think about Laravel and do you have any influence on it?
Thanks for creating an amazing framework :-)
First of all, let me say that I'm very impressed by the technical work of Taylor. He does an amazing job with Laravel. Building a framework on top of existing building blocks is smart and allows him (and the community) to build higher level of abstractions more "easily". Unfortunately, the ecosystem was far from being mature when I started to work on Symfony in 2004. PHP 5 was not even stable yet.
Symfony started to get some attention early on as one of the very first PHP 5 framework. Yahoo! started to use Symfony early on, 2007 IIRC.
Regarding the audience, I don't think Laravel had a "big" influence on Symfony. The same goes for Drupal by the way. When Drupal started to adopt Symfony as its framework, we did not see a big change in terms of adoption of the framework, even after the release of Drupal 8. In any case, I'm very proud that so many large and successful Open-Source projects are built on top of Symfony. It validates the design decisions I made 10 years ago when I started to work on Symfony 2. Having a whole ecosystem based on Symfony makes PHP stronger IMO.
Thanks for a good answer. The influence must be related to myself then and assumptions it would apply to more than me, but it's an undocumented statement, so you are probably right. In fact I didn't know Drupal was built upon Symfony as well.
I am wondering what your part in PHPs existence today might be. A lot of people think that PHP is too loose, but these frameworks mentioned, in my opinion, really brings the missing structure in PHP lacked for years until v7.
The addition of the command line library is just amazing for maintenance :-)
How do you balance between life and your job as a greedy developer, you are developing more than 15 years and almost you wrote all the codes
what is the difference between good PHP developer and a perfect PHP developer?
are you expert as much as your PHP skills in other skills like a database?
what did you do wrong as PHP GURU, in your career?
Dont you think that the popularity among Php and php users decreases every year? What do you think about the future of PHP in general?
My first object-oriented programming language was PHP. It took a whole lot of time to wrap my head around a few things. Later I got into C++ in college. I started digging into mvc, mvcc patterns and into the source of Symphony and Slim. Although my stack no longer has PHP now. But It kinda kickstarted things for me. I just want to thank you for your wonderful work, dedication and time you have taken for all these years. Knowingly or unknowingly I believe you have helped many in this way.!!!
Question: Are you still completely into PHP? or exploring any new things? If so, what are you most intrigued about now?
What does it take to be proficient in PHP?
What is your mindset as a programmer that help you face adversity to keep thriving until you become soo good and make you believe strongly in this project?
Are you going to adopt Symfony in GO language?
What is your thought on the mental health issue side of programming?
And last but not least, what advice would you give to your younger self when you first started?
Being proficient is the same for all languages and technologies: you need to read a lot of code. Symfony was my first PHP projects. As such, I made a lot of mistakes. But I learned everything I know by reading other's code, in many different languages. I read Java Spring's code... even if I've never written a line of Java. I read Ruby on Rails code, and Django one. I got inspiration from a lot of great Open-Source projects.
Being proficient means coding. Coding a lot. For fun or for profit. It takes time. Project after project, try to learn something new.
My advice: be pragmatic. Don't listen to people advocating design patterns at all costs. Don't try to make your code perfect. Learn to love fixing other's code.
Do you build the user interfaces for your web applications? If so, do you use any CSS frameworks such as Boostrap, Bulma, Tailwind etc?
Do you also have any advice for back-end devs like myself to get better at UI design?
I also wanted to say thanks for all your amazing contributions to the PHP community! Keep on being awesome!! It really wouldn't be where it is today without you.
ORM, Laravel, Preloading and PHP Desktop.
First my congratulations for the incredible framework you have created together with your great team.
Why doesn't Symfony have its own ORM? Although Doctrine is very good, I think it sometimes falls short and limited.
You think that the arrival of Symfony 4 so late, has made Laravel have obtained that incredible big community.
Symfony is getting ready for wiki.php.net/rfc/preload
You think with the arrival of Symfony client, it is possible that you can also get PHP Desktop, to make software like Electron does. or doesn't it make sense?
sorry for my english and hugs for you and your team
- From your perspective what mind shift should one undergo to successfully switch from an employed web developer to the self-employed creator of a profitable SaaS product?
- Do you have any tips on how to effectively devour and retain new technical information?
What do you develop on (Mac / Linux / Windows) and do you use an IDE to code - such as PHPStorm?
Hello, Fabian Hope you're doing well.
1- Is it okay to learn more than 1 framework at the same time?
If yes, why? And what is the other framework can add to my development?
2- do you think sticking with only 1 framework is enough to get hired by big popular companies?
I see multiple popular companies require or prefer the programmer has a knowledge of more than 1 framework. Don't know why!!!
It is more than ok to learn more than 1 framework. We should be developers, not PHP developers, or Wordpress developers. A developer should always try to learn new things.
When I hire someone, I like curious people, with interesting and unusual backgrounds. If you know more than one framework and more than one language, you will adapt more easily. Learning a new language or a new framework is much easier when you know other ones. Adaptability is the key here I suppose.
Speed has become important factor for developers while choosing a framework. I can see Symfony 4 is scoring better than many other popular PHP frameworks.
- What is you plan to improve the speed further ?
- What is your top priority in next major version of Symfony?
- What tool sets do you recommend for developing the modern PHP application in 2019?
Thanks for the AMA
Why is Symfony so much based on "magic" in the sense of stuff you need to know/remember (config files, auto*, compilation, env, ...), instead of stuff you can just see (actual code, constants, ...)?
Related to this first question, why did you decide to abandon Silex, which was actually much more code than magic? it's quite different from what symfony 4 gives as replacement. Was it only because of few contributors? Would you be open to reconsider this decision?
I highly suggest to watch a video of Symfony 4 internals presented by Tobias Nyholm -> youtu.be/pz6VdH4_BSg It shows how Symfony become minimalist, even at a point where Sylex is not relevant anymore. It is true Symfony comes with some complexity you need to understand but the entry barier has been drastically reduced. It has never been easier to develop with this framework.
One of the tasks I find myself repeating with any PHP development is setting up base developer infrastructure. Sometimes this is trivial (finding a vagrant box or docker container on github is easy enough). Are there plans for symfony to offer an official solution (ala homestead)?
With the rise of microservices and the continuing rise of PHP as a dominant force in the web, I am happy with the way the language is evolving, and how Symfony has evolved over the years with it. Symfony is my framework of choice when doing development in PHP and I am glad that so many developers are willing to offer their time to keep improving it (Thank you!). That being said, newer technologies are constantly being developed, especially in the space of appservers (Check out appserver.io). I know symfony-cmf was a big official project that sensio undertook, is there plans to create an appserver based on symfony components? (Because this would be amazing).
Thanks again for your time, efforts and sharing your knowledge!
What's your opinion on the recent RFC addressing the topic of voting? There's mention of including all PHP FIG members to have the userland community's input.
Do you think the userland community should have a bigger voice in how PHP is shaped, and do you think the FIG is a good representation for that userland community?
For reference: wiki.php.net/rfc/voting2019
Why PHP? have you thought of switching to another language?
Why not? Seriously, I don't "like" PHP. But PHP is a fantastic platform. I wrote an article about that a while ago: fabien.potencier.org/php-is-much-better-tha..
Switching to another language? I'm not tied to PHP. I'm doing a lot of Go and I used to write projects with Python and Perl as well. Nobody should use only one language.
Popular JAVA framework Spring Boot comes with microservice support/structure built in. Do you plan to have similar support for microservices in Symfony in near future?
Microservices comes for free with PHP. No need to have some specific support. I've answered a similar question elsewhere. But basically, I don't like the current trend of making everything more difficult than it should be. Adding layers of abstractions makes your infrastructure exponentially more complex. Think twice before adding a new layer. I'm not saying it's not needed... sometimes. But for the vast majority of the projects out there, keep it simple :)
How do you handle the overwhelming negativity for PHP compared to Node.JS, Python, and (in my experience) even Java in a professional landscape? Do you think Symfony, or PHP at large has feasibility in the new "serverless" world?
PHP invented some kind of "serverless" before it was hype. Think about the PHP model for a minute. Share nothing. Each request is isolated from the previous ones. One script per endpoint. That's exactly what so called serverless platforms enable today. PHP had it in 1998! Last century. Simple, easy. Now, you need tens of layers to achieve the same. Not sure it's "better". I'm half-kidding here.
Don't want to use PHP just because some noisy people on Reddit/Twitter/... find it bad? Fine by me, I don't care. Business as usual.
Thanks for the AMA and everything you did for the PHP community in general, Fabien. We owe you, big time.
- What would you like to see added or changed in PHP itself?
- Was PHP your first programming language or do you come from another language? If so, do you still program in that other language?
I started to write code when PHP did not even exist :) It was in 1985. I started with languages that do not even exist anymore. My first computer was an Amstrad CPC 664. I was using mostly Basic back then. Then, I got an Atari ST 520; I developed games with STOS. I was also writing some assembler back then. And some Pascal. I was 12, but I was already using many different tools and languages. That didn't change.
Thanks for the AMA!
What does your average day at work look like? Do you even have them?
I don't know how to answer this one as I don't have an average day! They are all different. Sometimes, I don't feel like coding, so I don't code for days/weeks. And then, when I feel motivated to fix an issue, I can code for hours. But I'm always trying to find the right balance between work and family time.
You're doing a good job with Symfony 4.
Have you ever think about creating a tool based on Symfony to help people make websites ? Not necessarily a CMS but an administration generator or something similar.
Many members of our community take part in the discussions related to the lack of inclusion in our field and donate to the Symfony Diversity Initiative. But it seems like only a few people set up the actions and make sure the ideas and insights are heard. How do you see the Symfony Diversity Initiative evolve in the future ? What will be your role as the creator of Symfony ?
Thanks for the AMA.
We are at the very beginning of the Diversity initiative. Lukas is doing an amazing job, but we are still iterating on the best possible processes. Transparent processes is an important goal for us. I like that we now have a dedicated team working on such an important topic. There are so many things to do and still a lot to accomplish.
My role as the creator of Symfony is to ensure that everyone is welcome in the community. I don't want us to rest on our laurels just because we started to make some small (significant) changes.
Symfony is a community. And after so many years, code is becoming less important. Community is first. And diversity is probably the most important part of any community. It's challenging, but I like challenges!
Here are few of my questions.
What do you think of hate against PHP by people who preach trendy new languages like Rust, Dart, GO etc?
What do you recommend to the person who wishes to start startup with PHP based product? What are some suggestion you have for him?
Symfony demonstrated and taught many of us the power of design patterns.
DI is really powerful and became the norm in a modern framework like Angular.
My question will be broad so you can answer any way you like, but is there any new shinny design pattern you believe devs should pay attention to ?
I don't care that much about design patterns :) Especially new and shinny ones! I like to find solutions to problems. When I first learned about dependency injection in a book about Spring, I was very excited. Not because I learned a new design pattern, but because I found a solution to a problem I had: how to make decoupled components work together in a cohesive way.
I am wondering, why don't you become a billionaire like Facebook CEO , Amazon CEO , and other tech giants?
Is it because the framework is for free? What if you make it only available for paid users? Do you think that can make you a billionaire?
A framework is the low-level foundation for projects. And people don't pay for low-level and technical libraries. Linux is free. So, almost all frameworks are free. So, having a paid version of Symfony would not work IMHO. But to be honest, being a billionaire has never been one of my goals; as an entrepreneur, I make some good money and that's enough for me.
Problem in Symfony components I often see is readability in some places is really bad. This is being done for sake of performance, but I don't agree minor speed improvement always trumps readability. Often times this is done for too tiny performance improvements. Especially problematic are huge nested blocks with no comments. In my opinion your team members are doing job of zend compiler and this makes code hard to maintain, review, debug and contribute to. What's your take on this issue?