Jump to content

Prestashop 2 !


seb776

Recommended Posts

Hi,

 

I'm a freelance prestashop developer. I use it a lot, coding modules, making installation, migration and so on.

I also use php frameworks such as symfony, zend or laravel. I use/try lot of packages on github.

 

When I code for a prestashop (a module as example), there is lots of stuff I don't like, inconsistent api, impossibility to tests components, hard coupling, etc.

 

I have ideas, inspired from php frameworks, I'd like some design patterns to be used in Prestashop. Introducting this patterns  (repository, dependency injection, ...) and a new architecture (namespaces, use of composer, etc),  will make lots of breaking changes, so I this changes can not be introduced in prestashop 1.x . It deserve to be for the next major release of Prestashop.

This will be a lot of work (and maybe a full rewrite of Prestashop (?) ). So this can't be done in just one month, and there is developers' wishes, so they have to share needs, discuss about api, etc.

 

So I think the roadmap should have already be started. But there is none. I don't mean that Prestashop 2 release date should be planned, I mean discussion should began.

 

Don't you think we should start thinking about it ? Is it just an internal process ?
Edited by seb776 (see edit history)
  • Like 2
Link to comment
Share on other sites

Hello Seb,

 

That's some really good questions. The discussion about PrestaShop 2 has been around for a few years - but it's not that time yet. PrestaShop is always committed to open source and its community, so when -and if- this project should start, contributors will be the first to know and will be part of the discussion/conception.

 

But right now, we're focusing on PrestaShop 1.6 and our new Cloud offer. We'll announce more of our roadmap in the coming weeks/months. That being say, when it comes to new patterns or architecture, I'll let Jérôme give you a preview of what is to come and how you may help us.

 

Thanks

  • Like 2
Link to comment
Share on other sites

Hello Seb,

 

what you propose is going to be a completely new store... as nothing would be compatible to it. 

 

This would take far too long I believe, so it would remove resources from having the current store being developed further. 

 

Actually, what is really required is some really good developer documentation... new features and hooks etc. are introduced all the time, but nothing gets really documented, so it's there to be hacked into and not be used by a lot of others who don't hack in the core or don't have the time to do. 

 

Jerome, any chance better developer documentation to become part of that plan?

 

Best regards,

Dimi

  • Like 1
Link to comment
Share on other sites

Hi

 

Thanks Jérôme, Lucas, for providing this informations. 

It's good to know what mid terms goals are planned.

 

Introducing composer (and namespace) looks good :)

 

Do you plan to use stuff like 

use Prestashop\Prestashop\Module as Module;

to allow current code base to continue being interpreted correctly ? 

 

That question is a bit off topic. Do you plan to discuss that sort of technical questions somewhere ?

Link to comment
Share on other sites

Yes I agree innovacy, there should be a better documentation and it's good to know that this improvements are planned.

 

I suppose it's about documentation generated parsing the code.

 

The more I think about it, the more I feel like maybe that the main point...

 

Writing this documentation will help developers (how much hours do thousands of developpers spend reading code to guess what a function returns ? (Sure the guy who wrote the code has save a couple of milliseconds the first time he introducted a new variable!!)).

 

Further more It will point important design problems, SRP violations, function returning multiple type for example.

 

Finaly improving the current code by starting adding docbloc comments and tags looks like a good starting point.

Link to comment
Share on other sites

So we should wait before starting ps2.

Fixing bugs is a huge job and it is the prioritize over starting developing Prestashop 2.

I understand, you can't say anyone, "I'll fix this bug later, I'm working on Prestashop future version". You can't.

 

But what's next ? Will you fix all bugs before starting PS2 ? I think you can't , we can see that the number of opening issues is growing faster than the resolved issues ( see forge graph )  So we are not getting closer to a recode/rewrite as time pass but farther. I am wrong ?

 

So there is two options :

- first : There will be more closed bugs than new issues and then dev can start thinking about ps2.

- second : opening issues will still overtake closing issues

 

My feeling is that the second option is more liking to happen. Ps 1.x will still continue to have a growing number of issues. One reason is that new features are still implemented while old bugs are not fixed, dev can't do everything at the same time, furhtermore adding new feature can result in producing new issues !

Maybe we can expect the tendency to change if no new features are implemented. But that will be a long task.

What task will achieved first ? fixing all ps1 issues a rewrite a new base, prestashop 2 (with the now experienced coders) ?

 

Maybe fixing bugs is an infinite tasks (years).

My opinion is that rewriting prestashop will be faster.

On the other side, you can't let issues pending forever and stop support.

 

So my conclusion is you should not wait to start PS2, there is nothing to wait for. (new developers maybe?) 

 

 ---------

 

Yes you can read contradiction between this message and the previous one.

Maybe solution is to write the documentation and start ps2.

 

---------

 

My opinions are just thoughts and questions, to continue the conversation ...

 

What do you think ?

Link to comment
Share on other sites

Hello Seb,

 

Well, I wouldn't like PrestaShop 2 to be just about bug fixes, would you? :) And a new version developed from scratch comes with its own bugs ...

If you take a close look at what we're currently doing with PS 1.6, there hasn't been many new features for quite some time now, but we've started to implement tools for quality & stability (unit tests, functional tests and so on...). I'm confident this will help us change the current trend on the Forge.

 

That being said, PrestaShop is recruiting heavily again this year and we have exciting things to come. But we don't have anything to announce on a PrestaShop 2.

 

Best,

  • Like 1
Link to comment
Share on other sites

The fact that namespaces and composer will be introduced in the next PrestaShop versions is, indeed, a very good news :-)

 

Seb, it is not because the number of reported issues is growing that the number of bugs is growing too.

 

I will be happy too if PS was rewritted implementing a framework, however, we can't tell that this decision will solve all the current issues.

In fact, it will probably reopen old issues that was closed once ago. PrestaShop is a huge software, and look how much time it took just to stabilize the tax system (for example).

Since the developer of this system has left the PS team, I'm pretty sure that if someone would rewrite this part from scratch, he will face / create new issues. Not because he is not a good developer, but because the accumulated knowledge is mostly in the brain of the previous developer.

 

And I'm not even talking about the hundred of existing modules which won't work anymore if a PS2 was released.

Again, I would love to see a PS2 working on a framework such as Symfo2 (for example). But, I'm not sure it would be a wise decision for the future of this software.

Can you give me a lot of successfull softwares rewritted from scratch ? Someone asked me this question when I was asking if a PS2 version was on the way.

And I was not able to answer him :-p

 

I think that improving the current software step by step (introducing namespaces and composer for example) is not a bad idea at all.

I'm not saying I'm right, like you, my opinions are just thoughts to continue the conversation. Maybe someone will be able to make me think otherwise :-)

 

Fabien

Edited by Fabien Serny (see edit history)
  • Like 1
Link to comment
Share on other sites

In my opinion, adding namespaces without a serious rework of the architecture is pointless. And by serious rework I mean a complete rework (from scratch).

Can you transform a rundown building created by interns into a well designed, secured and norm compliants building just with patches ? And without the knowledge from people who designed the first building ? Good luck with that. Namespaces are only usefull with a concret architecture, otherwise it's only marketting.

 

I'm not sure it's time today for a V2 anymore (for reasons given by the old wise Fabien Serny), but I'm sure it was the perfect time years ago to prepare the future. Sadly bad decisions were made. You seem to be very motivated Jerome, it's nice to see and remember me good memories since we were in the same position as you now. But experiences taught me that when the root is rotten, good fruits never grows. And all recents news I heard (and from last month) confirm that.

 

Hope the best, but expect the worst.

Link to comment
Share on other sites

"Prestashop 2" sounds like that exciting thing that everyone is hoping to be the next great software.... the reality has shown often however, when big projects are thinking about a rewrite from scratch, they end up taking way too long and often falling behind new market needs or by faster competition. 

 

Even though I'm a developer, I believe such decisions need to be taken from a customers view, than from a developers view. In this case, the relevant question would be, how will someone benefit from Prestashop 2? 

 

I know, that my customers don't care about the shiny new thing that is going to come in an year from now or even longer... they want their current store to work, updates not introduce major bugs and old serious issues being taken care of. Than after these very basic needs, they focus on features that increases their sales and that allow them to utilize other platforms or techniques to achieve their goals. 

 

Focusing on v1 seems the right thing to do. And focusing on documentation will allow more developers to get involved with Prestashop, which will lead to more customers using it, which will lead to more opportunities for Prestashop to grow. 

 

Besides themes, I have written around 20 modules for my customers, some very complex. Limited or non-existent documentation was really the main issue in this regard, especially when there need to be done really advanced things, then there is literally nothing around. Diving into the core has been the only solution then... in the meanwhile I can say, I know the core in and out hehe.

 

The technology behind Prestashop wasn't really the issue. Like Raphael said, using something like namespaces needs to make sense... just for the sake of using namespaces, there's no benefit in it, it might only complicate things or cause new issues. The same for other technologies. 

 

Now, that makes me think, there's another reason speaking against a v2 at this time. Adoption. People won't adopt another new version easily, especially since we can expect such a v2 like mentioned to be maybe incompatible with current modules and themes, unless it would have layers over layers of backward compatibility. Just look how many still haven't upgraded to v1.6. Also, often it's difficult to find modules for the things my customers require, that are fullfilling all their needs, why I'm writing module after module for them. A v2 would make this worse and would not solve the main reasons for not enough modules on the market in some areas. Customers won't switch over to that version easily either. 

 

I believe, focusing on one version and introducing changes over time, is the better approach. And it worked very well so far. 

 

Btw, there is a book called "Prestashop Module Development" recently released from a past core developer. I bought it out of curiosity. For anyone looking for additional documentation, this might be a good choice for them. It didn't provide really something new for me, actually by my means it could have dived a bit deeper into everything (why I started writing 2 months ago my own book for Prestashop hehe). But it's a good start for the missing documentation and touches on many areas already. 

 

Dimitri

  • Like 3
Link to comment
Share on other sites

the old wise Fabien Serny

 

I'm not that old >_<

 

"Prestashop 2" sounds like that exciting thing that everyone is hoping to be the next great software.... the reality has shown often however, when big projects are thinking about a rewrite from scratch, they end up taking way too long and often falling behind new market needs or by faster competition. 

 

Even though I'm a developer, I believe such decisions need to be taken from a customers view, than from a developers view. In this case, the relevant question would be, how will someone benefit from Prestashop 2? 

 

[...]

 

I believe, focusing on one version and introducing changes over time, is the better approach. And it worked very well so far. 

 

Totally agree with you on this :-)

 

------

 

PS:

Btw, there is a book called "Prestashop Module Development" recently released from a past core developer. I bought it out of curiosity. For anyone looking for additional documentation, this might be a good choice for them. It didn't provide really something new for me, actually by my means it could have dived a bit deeper into everything.

 

Thanks for your feedback on this (I'm the author).

However, just by curiosity, I would be glad to have a full feedback if you're okay, what was missing for you in the book ? (since it's not the topic here, you can answer me by PM :-) )

Link to comment
Share on other sites

Hi Seb,

 

Let me introduce you what we will change in PrestaShop solution this year:

 

  • PHP min requirements up to 5.4
  • Introducing Namespace
  • Introducing Composer
  • Some changes on architecture design
  • Performance improvement

Best regards.

 

Really surprised that calculation refactoring is not part of this list.

 

Very surprised too that those are not the words from the CPO or commited during the 26th of february talk.

https://www.prestashop.com/forums/topic/429727-meeting-prestashop-on-february-the-26th-of-2015/

 

Even more astonished that it is possible to mention yet again a serie of changes without proper agenda.

Todo list has been expressed for ages - most not been more than buzz to date.

Edited by doekia (see edit history)
  • Like 2
Link to comment
Share on other sites

I believe, focusing on one version and introducing changes over time, is the better approach. And it worked very well so far.

In a near to perfect world yes. By perfect world I mean assuming we have a roadmap, have a good versionning system, with dependency - in that case it works.

We are not in such near to perfect world.

 

Big open source software project doing such are running on stable basis that are not perpetually evolving.

To my mind the I'm talking about Gentoo for instance, a rolling release distribution - still tied to Linux Kernel releases.

This distribution is considered reserved to geek and expert. The code is compiled on site and evolve perpetually.

 

For public release most distribution opt for the long process of pre-release, code freeze, rc, stable, LTS.

The most stable are the one with the slowest migration plan (Debian 24 months and strong policies).

 

This later scenario is IMHO the way to go with a e-commerce solution for the masse.

A strong, solid, bullet proof core once released never touch until the next big release.

 

I doubt that anyone here will not recognize that after 7years, the core need not a serious lifting not to say rewrite in many area.

If we continue day by day patch, the core will loose its stability - and AFAIK it really seems to be going that case in nowadays.

Quality/stabilty degradation is getting worst and worst - reported by more and more people - not only devs btw.

 

I vote for a full new release, with new thought on the light of new solution and acquired experience along those 7 years.

Edited by doekia (see edit history)
  • Like 1
Link to comment
Share on other sites

I doubt that anyone here will not recognize that after 7years, the core need a serious lifting not to say rewrite in many area.

You deserve an euphemism-award for that :P

 

 

If we continue day by day patch, the core will loose its stability - and AFAIK it really seems to be going the case in nowadays.

Quality/stabilty degradation is getting worst and worst - reported by more and more people - not only devs btw.

Each release of PrestaShop is a proof of your assertion : new bugs and regressions caused by side effects, incompatibilities for some modules or themes between minor versions, performances issues between minor versions, etc.. After 7 years of existence and a lot of developpers who worked on it, I'm still impressed by the number of bugs and the lack of stability / performance.

 

This is the consequence of a bad architecture, and I was already fighting for this cause years ago. Bruno, the CTO, really need to understand that. But we are talking about someone who told me once "There are 2 kinds of developpers : OOP-developpers, and old-fashioned developpers. I'm an old-fashioned developper."

 

A lot of work to improve the architecture in the long term was started in 2011-2012 with the 1.5 version, but sadly the seed was trampled for reasons I won't mention here. It's really worrying to see that absolutly nobody worked on the Collection (new name PrestaShopCollection lol) class during years (https://github.com/PrestaShop/PrestaShop/commits/1.6/classes/Collection.php), while I had no time to finish and optimize this feature. And this feature is still massively used in the code.

Edited by Raphaël Malié (see edit history)
  • Like 1
Link to comment
Share on other sites

Bruno, the CTO ... "There are 2 kinds of developpers : OOP-developpers, and old-fashioned developpers. I'm an old-fashioned developper."

I'm an old fashioned developper.

 

Old fashioned developpers use to have pain doing tests - only 2x2hours per week to compile an entire solution.

For old fashioned developpers, disaster/crash scenario were part of job using nothing but imagination.

Not to mention every micro-cycle were closely reviewed/enumerated due resource limitation.

Because they wanted not to read 5000 lines per function to maintain a code, they invented the OOP

That was the old day - RIP

 

Modern developpers have test-unit for almost every thing, they have access to pile of documentation,

unlimited number of valuable developper ready to help, argue, disagree, assist.

It take no time to try a scenario just to prove it is wrong.

Having this in hand, it is even more important to have proper roadmap, agenda so that all those enormous resources will go in the same direction.

 

A CTO is not a code developper, he/she is a CTO.

I read somewhere about OpenSource projet: large open source projects are all build around "charismatic leaders"

That is what we expect from the Prestashop CTO - leading, envision.

Edited by doekia (see edit history)
Link to comment
Share on other sites

Yep,

 

Interesting points of view (although some are tinged with resentments, maybe legitimate).

 

I hope one conclusion can emerge, maybe this : we (developers) need a road map, short and clear as possible, for short and middle term. 

Don't you think ?

 

I don't know who and how this kind of road map should be written and contributed,  

but I'm sure it must exist and be public, otherwise we can no trust/faith of where Prestashop is going.

 

  • Like 2
Link to comment
Share on other sites

Short road map with 3, 4 or 5 points, no more, I guess

 

As an example (I'm not leading the project development ;) )

 

Mid term goals : 

1 - improve code stability

2 - draft technical requirements for next major release (it should/can emerge form first goal)

 

Short term goal 1 - improve code stability

- Introduce testing, test all core components

- documentation for all functions

- respect some SOLID principles : as code is improved / debugged / tested,  try to respect some SOLID principles, at least single responsibility principle. When not possible : write something in the draft for next major release.

 

So both 1.x and 2.x projects runs at the same time. v2 being just a draft, to gain confidence for the future.

 

...

Link to comment
Share on other sites

On the 26th of February, some community member were invited in Paris for technical talk.

 

The agenda we wanted to be discussed is here: https://drive.google.com/open?id=1ZCGegE8Dxlh6buxxA8HJFth2fz48R4ouMllwk0hzEPY&authuser=0

The meeting minute authored by the community is there: https://drive.google.com/open?id=1ozIrwXu63CHv4otlLKNfBioEO2hc6ElV0XmKFoBUejs&authuser=0

Some topic to summarize this is there:  https://www.prestashop.com/forums/topic/429727-meeting-prestashop-on-february-the-26th-of-2015/ or here https://www.prestashop.com/forums/topic/429722-meeting-prestashop-le-26-f%C3%A9vrier-2015/

 

Since then no communication from Prestashop, the Chief Product Officer althought having agreed to start publishing some roadmap, hasn't done it to date.

Having send the draft specs regarding calculation mini-core and a projet plan, it get responded "we will look at it asap"

 

So yes a roadmap, must be claimed with great emphasis

  • Like 1
Link to comment
Share on other sites

I agree on the roadmap thing completely. It will surely make it easier to know where the focus is at. It was a help while 1.6 was still in development, knowing some things. Right now, nothing is known at all and things seem to come randomly. 

 

And I have noticed the problem too, that new releases introduce unnecessary bugs, for several reasons that might could have avoided. 

  • Like 1
Link to comment
Share on other sites

  • 3 weeks later...

Hi Seb,

 

Let me introduce you what we will change in PrestaShop solution this year:

 

  • PHP min requirements up to 5.4
  • Introducing Namespace
  • Introducing Composer
  • Some changes on architecture design
  • Performance improvement

Best regards.

 

Hi Jerome,

 

It's a very good idea!

 

If it's true, I'm back :)

 

Have nice day|nite|life.

  • Like 2
Link to comment
Share on other sites

Hi Seb,

 

Let me introduce you what we will change in PrestaShop solution this year:

 

  • PHP min requirements up to 5.4
  • Introducing Namespace
  • Introducing Composer
  • Some changes on architecture design
  • Performance improvement

Best regards.

As I understand this, there will be no new functionality until the end of the year. Instead the programmers will focus on purely technical stuff that - except for some performance improvement - will be meaningless for the average user.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...