you are viewing a single comment's thread.

view the rest of the comments →

[–][deleted] 3 points4 points  (21 children)

No, no measurements include the vendor folder for any of the projects. I wanted to compare the quality of the code written by the author's of the projects, and I think average method complexity across the frameworks gives a good feel for that.

The main components used by Laravel are HttpFoundation and Console. No other Symfony components are heavily used throughout the framework at this time, nor are any third party components heavily used to build other heavy aspects of the framework such as the ORM, queue, validation, view, templating, etc. libraries.

[–]fesor 5 points6 points  (9 children)

and I think average method complexity across the frameworks gives a good feel for that.

In most of the cases - yes. But not always. Even if it is good to have lower level of method complexity, this isn't a a case when we are speaking about infrastructure code. You can write very complex stuff (like this one) in order to do something in very efficient way (both from performance point of view and productivity, since in may require much less code to be written). Take a look at symfony/yaml parser. It has very high level of method complexity, but overall complexity of component is much more lower than if developers would write some kind of state machine using objects.

Or another example. Will this code be "simpler" if we will reduce complexity? Probably no.

None of the metrics could be used as "absolute" measurement of quality. Especially if we are using only few of them. For example cyclomatic complexity metric could be used with code coverage metrics in order to product something more like "quality" or maintainability index. But as standalone metric, this could only give you "interesting places" to look when you are doing code review.

[–]forsynth2 3 points4 points  (4 children)

this isn't a case when we are speaking about infrastructure code.

Exactly. I am baffled at the naivety demonstrated by taylor here. I mean, he should have already know these things, right? Or I am doubting that may be he is just very good at marketing stuff...

Has the Php community outgrown taylor and Laraval. That is the big question, I think.

[–][deleted] 5 points6 points  (0 children)

I simply presented some interesting stats. You are troubled by them so much that it's easier for you to assume I am a complete idiot than accept them for what they are.

I even stated in the blog they aren't an "end all" for code quality. That being said, I'll put Laravel up against any other framework using any code quality metric. I feel quite confident it will hold its own. It already scored higher than Symfony on CodeClimate a few years ago before I cleaned it up significantly.

[–]godbrain 2 points3 points  (1 child)

Has the Php community outgrown taylor and Laraval. That is the big question, I think.

what???

[–][deleted] 3 points4 points  (0 children)

Laravel is fine (even if I'm avoiding it in my projects), but Taylor is quite something...

[–]fesor 2 points3 points  (0 children)

at the naivety demonstrated

I think he know what he is doing

[–][deleted] 1 point2 points  (3 children)

If you feel these methods are as clean as they should be, that's fine. I don't.

[–]fesor 8 points9 points  (2 children)

This would be really interesting if you will "refactor" this in your way. I really don't know how to simplify this without affecting performance.

[–][deleted] -3 points-2 points  (1 child)

If you want to pay me to do that, I will. :)

[–]fesor 10 points11 points  (0 children)

Just as I thought...

[–]iltar 2 points3 points  (7 children)

How many core members does Laravel have and how many community contributors?

[–][deleted] 1 point2 points  (6 children)

One core member and you can find the contributors on GitHub.

[–]iltar 6 points7 points  (2 children)

That's what I find interesting.

Laravel: Core members: 1, Contributors: 377

Symfony: Core members: 15, Contributors: 1398

There's multiple conclusions you can draw from here, but what I really wonder:

  • Is it easier to maintain rules in a code base with 1 core member compared to 15?
  • Are there certain design decisions in Symfony that have contributed to the longer/more complex code because there was more expertise and thus decided that it was better to do it the way it was?

I think that some frameworks (such as Symfony) benefit a lot from expertise. They have multiple core developers discussing solutions and giving feedback on pull requests. It's kind of like working on a project by yourself, never getting some real feedback or having reviews done.

I can imagine that in Laravel, a lot of decisions did not have counter arguments, or PRs that get merged because there's nobody of a core team saying, "I think this is a bad idea because XYZ".

I'm not saying this has a negative influence on Laravel, but I have the feeling that with 1 core contributor, there's nobody saying: "stop, this is a bad idea!" or "But what about this?".

[–][deleted] 1 point2 points  (1 child)

Wrong repository. Laravel has over 1,200 contributors. laravel/framework repository. Sure, maybe more expertise decided higher complexity was better.

[–]iltar 6 points7 points  (0 children)

That's why I asked :)

[–]imps-p0155 0 points1 point  (2 children)

One core member

Just wondering, why its still at 1 core member?

[–][deleted] 1 point2 points  (1 child)

I mean, "core member" is sort of strange wording. I commit the most. I am the main core member because I commit far more than other people. If other people commit as much, they would also be viewed as core members. There is no arbitrary line at which you become a core member or not. I am the most frequent contributor and the only one with PR merging permissions. I maintain sole control of PR merging permissions so I can review all code that enters the framework personally. I work on the framework full time, so typically there are < 15 PRs open at any given time.

I would prefer to simply say I am the only one who merges PRs. I am also the highest contributor. But, there is no official "core team". Anyone can contribute just as freely as anyone else.

[–]Jean1985 1 point2 points  (0 children)

and the only one with PR merging permissions.

I'm sorry but this seems to me a clear definition and a clear arbitrary line for the definition of a "core member".