Jump to content

Why create your own Framework?


Ikadon

Recommended Posts

I was not trying to be rude..... I thought we were having a civil debate.

There are things I personally do not like in the frameworks you spread as gospel.

http://symfony.com/doc/current/book/doctrine.html

how many times must one run shell commands just to code your 'package'?

http://laravel.com/docs/routing#cli-route-testing

*every* acceptable request defined in the code? why? The file being present where it is supposed to be for the framework is not enough?

Most damning, global functions, the.... nasty stuff one has to put up with touching WordPress.

I would like to call your bluff however, how is coding a freely offered open-source framework a full-time job by any stretch?

Zend Framework, heavy as a brick..... being able to tailor it precisely with solid dev's at the helm is going to produce a better result.

Link to comment
Share on other sites

  • Replies 78
  • Created
  • Last Reply

"How many times"? Wow. I'm sorry I was even talking (and answering your questions) to you anymore, my glorious, superiour human. I've talked about hooks as you have, but as far as I see it you've worked with Laravel 4 and YII and Symfony 2 much longer than I did and thus have a far better understanding of all these frameworks than I do.

class a
{
public function do()
{
return '';
}
}
class b extends a
{
public function do()
{
return parent::do().'I';
}
}
class c extends b
{
public function do()
{
return parent::do().'t';
}
}

I Still did not actually find what I was looking for Ikadon... normal PHP class extension^. You would always need to ref the last subclass, and you would have to know the last previous extension by name.

IPB Hooks:

class a
{
public function do()
{
return '';
}
}
class ??? extends a
{
public function do()
{
return parent::do().'I';
}
}
class ??? extends a
{
public function do()
{
return parent::do().'t';
}
}
class myHook extends a
{
public function do()
{
return strtolower(parent::do());
}
}

In IPB Hooks, the dev doesn't need to know the last subclass, in fact needn't care, IPB handles it internally, and the user has full control of the execution order(which class extends which basically).

Simplistic example, but the difference in a nutshell.

Link to comment
Share on other sites

It's the same as saying "Oh, I won't use a framework because development and support could stop."


Yes there is always that chance when SOMEONE ELSE is developing something and you have no control over it. That's why they choose to develop it themselves....they have full control over what they are developing and if it does fail then it's their fault and nobody else can be blamed. But if a 3rd party is involved in which they have no control over and something does happen they are screwed. .

Link to comment
Share on other sites

We've already seen issues where the editor has issues that IPS has to wait for the CKEditor devs to fix. Farming more and more of the code out to different third-parties would make it so more and more of the bugs that get reported rely on someone else to fix them.

Nah, never mind, let's make the next version be a few hundred different third-party tools held together by some code which just loads them all. It'll give the devs a lot of time off if they don't need to fix bugs anymore.

Link to comment
Share on other sites

Nah, never mind, let's make the next version be a few hundred different third-party tools held together by some code which just loads them all. It'll give the devs a lot of time off if they don't need to fix bugs anymore.

Pass the buck. They'd probably jump up and down in excitement when a bug that got reported is actually for their code. :)

Link to comment
Share on other sites

PHP evolves, the IPS products evolve. Many of the applications IPS offers now weren't around when the original framework was written...

My interpretation is the new framework will create consistency across all IPS apps and make the framework easier to use.

Link to comment
Share on other sites

@Aiwa: "Security by Obscurity" is actually an argument against what you said. One should NEVER think that obscurity adds a layer of security. That's the very basics you learn at university, regarding security in IT.

Also I guess it's quite the opposite. If you look at the linux-kernel. It has vulnerabilities just like any other software, still it gets patched much faster than security problems with MacOS or Windows, because the larger community covers more aspects that a handful of developers can't find on their own.

Would you rename your admin directory? Would you change your SSH port?
How is being unique not giving you an added level of security? Please, cite examples.
Link to comment
Share on other sites

Simply put... To many cooks in the kitchen creates disaster.

Now with construction from an electricians point of view I have seen this many times where a General Contractor (Composer) will fail miserably causing issues lets say against the electrical code / building.

an example you cannot drill, cut or notch a product Micro-lam used for spanned headers this will make the product weak. Now if a general (And I've seen this many times) is not aware of its deficiencies and wants me to drill through

to get my wiring from point a to point be his way will be wrong and will not pass building nor electrical inspections... Time, Money and Material waste.

This is one point of view.

Another would be auto manufacturers.... Basic structure yes 4 tires and a body then they are off in their own framework.

When I built my server I was told time and time again Use Centos for a web server its reliable dependable and web friendly... Well so is Fedora... The only real problem I saw people who feel that Centos to be the best framework for web hosting are the same people that like the comfort zone of the little box they are allowed... Fedora always went outside of the box on the cutting edge. Reminds me of IPS always thinking outside of the box playing on the cutting edge, dependent on No One!... If all the Mod Developers and skin designers left today IPS would not fall....But add all together and Invision the Power!

There is nothing sad about the development team as some may think.... Unlike VB and the free forum software's, I have one last word to say here about IPS CONSISTENCY!

Link to comment
Share on other sites

In IPB Hooks, the dev doesn't need to know the last subclass, in fact needn't care, IPB handles it internally, and the user has full control of the execution order(which class extends which basically).

Simplistic example, but the difference in a nutshell.


In Laravel: http://four.laravel.com/docs/ioc

Other frameworks have other methods to achieve that. It's really nothing special anymore.

Regarding the rest of the answers:

First of, Charles. Yes, I still intend to leave, but I was asked some questions and wanted to be polite.

For the rest:

The development of these frameworks and composer is by far faster than anything that IPS has developed in the last couple of years.

You chose another way, I asked why, I got my answers, tried to discuss this but you still seem to have your reasons and I'm fine with that.

It's not like I'm crying because of your decision, it's just that I won't be able to use IPS-Software then because I wannt to put my work into the whole PHP-Community and not just one commercial software.

I'm glad you all (even those who have no idea of programming) had a great laugh and a new concept of an enemy for a few hours.

@Marcher: I'm sorry, this really is my last answer to you. The decision has been made, I see the reasons for it, can't with them and that's why I'll leave again. Enjoy your products and may IPS not fail to produce what you're searching for.

Link to comment
Share on other sites

They definetely have more power if they use their own framework but this has some downsides too:

1) They need to put work into the very basics such as security and stuff on a very low level, instead of, well, actually develop features that distinguish them from other software.
2) Third-Party-Developers create great plugins and addons that one can't easily combine with IPS-Software because they reinvented the wheel.

How are those downsides?

1) By doing their own framework, there is actually better security, because they put in what is needed vs having a ton of bloat. Think of it from a security guards point of view. It's easier to keep an eye on a modest sized house than a massive building. If you're in a good spot in the house, you can walk a short distance to check all the rooms, look out a few windows, the location is secure. In that massive building, you could spend an hour or more checking each floor for anything that might look suspicious and a few minutes later, something happens on a floor you already checked but you don't realize it until much later.

With custom framework, there aren't an excess of potential weak spots that could be compromised. So security is improved. Thus, the downside you listed is actually an upside.

2) I think the IPS framework makes it rather easy to make plugins/add-ons for the software. If you mean external products being merged in, then that's a whole other can of worms as you'll find many products aren't quite so easy to integrate with one another. You're living in a dream world if you think everything using the same framework will always work well together.



Also with custom framework is that it does exactly what you need it to do, rather than needing to tweak it because it does too much or not enough. Have you ever dealt with bash scripting? If not you should try it. Using available commands, in order to get certain tasks to run properly, you have to grab output and hope that it's in the expected format. If it was custom, you could have it broken into smaller functions and do certain things for you so that your scripts are much easier and reliable to write.

(Even forum-software. Beware IPS, free software is getting better and better while you stand here.)

Free software is a good way of getting a following so that you can start selling a paid product. Not saying it's always the case but it's a good way to build up a user base and then convert your product from free to paid. If you have a good product, people will buy it.

Now if IPS had only done something like that. I wonder if that would have worked.
:whistle:

Yes, because companies can't go bankrupt ... oh if life was that easy.

Okay let's go down the route of saying that you refuse to pay money towards a company because it could go under. How do you eat? Do you have a magical endless supply of food? You must because that local grocery store you go to could go out of business. That includes Wal-Mart, Target, etc. If you think Wal-Mart is too big to fail, then look at other big companies that failed.. Best Products, Circuit City, CompUSA and many other companies that have folded under that were once thought to be big enough and strong enough to always be around.

So back to the original point. If you're going to avoid spending money to a business that might go under, then you can't buy food to eat and you need that food to survive. So your options are to either live off of charity of others or to steal. However, if you're paying for food to eat, then you're going against your own philosophy already.
Link to comment
Share on other sites


In Laravel: http://four.laravel.com/docs/ioc

Other frameworks have other methods to achieve that. It's really nothing special anymore.

Regarding the rest of the answers:

First of, Charles. Yes, I still intend to leave, but I was asked some questions and wanted to be polite.

For the rest:

The development of these frameworks and composer is by far faster than anything that IPS has developed in the last couple of years.

You chose another way, I asked why, I got my answers, tried to discuss this but you still seem to have your reasons and I'm fine with that.

It's not like I'm crying because of your decision, it's just that I won't be able to use IPS-Software then because I wannt to put my work into the whole PHP-Community and not just one commercial software.

I'm glad you all (even those who have no idea of programming) had a great laugh and a new concept of an enemy for a few hours.

@Marcher: I'm sorry, this really is my last answer to you. The decision has been made, I see the reasons for it, can't with them and that's why I'll leave again. Enjoy your products and may IPS not fail to produce what you're searching for.

Explain, please, how precisely requesting dependencies ala 3.x IPSLib::loadLibrary-style calls is an improvement to namespaces and no boilerplate for that functionality in 4.x?

Seeking to improve what they have, not rely on some framework to provide the same existing functionality.

I think you have a bunch of libs, or packages you are familiar with in these frameworks, and rather than invest a bit of effort into actually learning the given framework(whatever that may be), you demand the framework existing move to your familiarity.

IPS is not to be left at that, and are making it more sane to code against with less boilerplate throughout, even compared to your frameworks.

Link to comment
Share on other sites

We've already seen issues where the editor has issues that IPS has to wait for the CKEditor devs to fix. Farming more and more of the code out to different third-parties would make it so more and more of the bugs that get reported rely on someone else to fix them.

Can you imagine if some of those bugs that get fixed had to wait for other bugs to get fixed before an update could be rolled out? Like if bugs from five different vendors had to be fixed and each of those products had to be updated at the same time in order to properly fix an issue.. Could end up waiting a few months when the bug to be fixed could take less than a few hours.

Nah, never mind, let's make the next version be a few hundred different third-party tools held together by some code which just loads them all. It'll give the devs a lot of time off if they don't need to fix bugs anymore.

Nah, all that free time would be spend getting the updates and installing them within the IPS products and making any necessary tweaks/changes to get them working right. If anything, would probably have less time than they do now.

Link to comment
Share on other sites

  • 2 weeks later...

Sorry if i'm a little late to the party here, (I didn't want to read the entire argument) but I think the reasoning behind IPS implementing their own framework is complete control. Imagine if Microsoft wrote windows on-top of linux, and charged a price for it. First off, people payed for the software so they're obligated to maintain it, and imagine trying to maintain the massive windows code-base AND the linux back-end while keeping it in sync with the community contributions. Say there's a bug in the mouse for Windows, and paying customers need that to use the product. Microsoft doesn't know where the code for the mouse is in Linux because it's a 3rd party's code, therefor they must study the Linux code AND their own which is terrible.

Main point: If there's a bug in the software, an IPS developer can walk down the hall and ask the guy who wrote that part of the framework. If it's a 3rd party framework, they're going to have to search through the massive code-base for what they think could be causing the problem.

Link to comment
Share on other sites

  • 1 year later...

Sorry if i'm a little late to the party here, (I didn't want to read the entire argument) but I think the reasoning behind IPS implementing their own framework is complete control. Imagine if Microsoft wrote windows on-top of linux, and charged a price for it. First off, people payed for the software so they're obligated to maintain it, and imagine trying to maintain the massive windows code-base AND the linux back-end while keeping it in sync with the community contributions. Say there's a bug in the mouse for Windows, and paying customers need that to use the product. Microsoft doesn't know where the code for the mouse is in Linux because it's a 3rd party's code, therefor they must study the Linux code AND their own which is terrible.

Main point: If there's a bug in the software, an IPS developer can walk down the hall and ask the guy who wrote that part of the framework. If it's a 3rd party framework, they're going to have to search through the massive code-base for what they think could be causing the problem.

If windows was written of top of Linux it would inherit a far superior architecture (yes, beat me to it, but the architecture of the "near to unix like-" linux _IS_ superior to Windows) and there is no reason they couldn't do this. You know "free software" doesn't mean it has to be free of charge, just that the source code is open source and you're free to do (basically) anything you want with the code.

I'd still say that everyone making his own cup of tea (or framework in that case) is a waste of resources :smile:

Link to comment
Share on other sites

I'd still say that everyone making his own cup of tea (or framework in that case) is a waste of resources :smile:

I beg to differ. Writing their own framework will most definitely help them develop their software further and further. Do you want to know why? Here's a few reasons. The first and foremost being that they are familiar with the code, they know where to go when something does go wrong. They will also not have to rely on a third party to provide support or wait for them to fix critical issues, should they arise. Being a developer myself I can totally understand why they'd write their own framework. Familiarizing yourself with someone else's code can be a real pain, especially if their code is a mess. Troubleshooting someone else's framework, now that would be a waste of resources.

Link to comment
Share on other sites

I don't think there's anything wrong with using quality frameworks for your projects. In terms of Operating Systems, Mac OS X was based off BSD, after all. Don't forget about Android either.

PHP Frameworks like Laravel are wonderful for independent developers. It saves us loads of time and tedious effort.

But for a company like IPS that has the resources and team capable of writing their own framework from scratch, this is also a perfectly viable and reasonable option for them.

But I'd like to respond to a few of your points still,

The first and foremost being that they are familiar with the code

Regardless of if you are using a framework or not, you should always be familiar with your code. If IPS would have opted to use a PHP framework for IPB 4.0, they surely would have done plenty of research on their options and spent time reviewing the code to ensure it was suitable for the project.

they know where to go when something does go wrong.

That's what error messages and stacktraces are for :smile:

They will also not have to rely on a third party to provide support or wait for them to fix critical issues, should they arise.

They would not have to rely on them to provide support for fixing critical issues unless they were using closed source software. Which would be awful. The point of OSS is that anyone capable enough can alter and contribute to its codebase. 75% of Linux's codebase and patches comes from paid developers, largely from the corporate world.

Link to comment
Share on other sites

So, first of all, let me clarify a few things:

I wasn't suggesting to use a closed source framework of any other company, I was merely suggesting building upon a well maintained base that is developed by hundreds or even thousands of developers around the globe and is completely open source and free to use in commercial products.

These frameworks are not only used by much bigger companies than IPS and maintained by a far bigger team than IPS has, but they are highly extensible, so forking and changing the core wouldn't be necessary in like 99% of all more or less possible cases.

Still, if against the odds there really would arise a problem where IPS would have to create a workaround, "hacking" the core they could simply fork the project and provide a patch for the entire php community to use (if they wanted to).

Creating your own code is absolutely okay, if it has more benefits. The thing is that, at least for me, my time is limited and I simply can't afford to learn 20 different frameworks for 20 different software products. It's just not gonna happen. Although I know the language and I know the concepts, really diving into a framework does take time.

Hence I would've loved if people using IPS-Software could've shared their products with the rest of us and vice versa. Like it is now, IPS is not composer-ready, so IPS is like an entire other world, while the rest of the PHP-world that uses composer can share their projects and save a lot of time and efforts.

While IPS could create their own framework, just look how long it took them to create it. They essentially had to create all the basics as well, instead of just being able to build upon a well maintained foundation and focus on the actual features and usability.

I don't think there's anything wrong with using quality frameworks for your projects. In terms of Operating Systems, Mac OS X was based off BSD, after all.

PHP Frameworks like Laravel are wonderful for independent developers. It saves us loads of time and tedious effort.

But for a company like IPS that has the resources and team capable of writing their own framework from scratch, this is also a perfectly viable and reasonable option for them.

But I'd like to respond to a few of your points still,

Regardless of if you are using a framework or not, you should always be familiar with your code. If IPS would have opted to use a PHP framework for IPB 4.0, they surely would have done plenty of research on their options and spent time reviewing the code to ensure it was suitable for the project.

That's what error messages and stacktraces are for :smile:

They would not have to rely on them to provide support for fixing critical issues unless they were using closed source software. Which would be awful. The point of OSS is that everyone contributes to it. 75% of Linux's codebase and patches comes from paid developers, largely from the corporate world.

Exactly. There is general misconception here. People assume that they would bind themselves to another company and be a at its mercy, which is absolutely not the case with open source software.

Link to comment
Share on other sites

Another thing, for example: The whole database-abstraction layer could've been used from another framework.

That way customers of IPB wouldn't be bound to MySQL but be able to use other relational DBMS and even some NoSQL-databases without much of a hassle.

Creating these kinds of things over and over again doesn't proof anything, it doesn't get better or more tested (I think that for a rather small company quite the opposite is the case - at least that's my experience when working for smaller companies, they simply can't afford as much [unit]testing as bigger ones or the open source scene), nor does it get easier or anything, it's just appears to be the good old "Not invented here"-syndrome :sad:

Well, personally I still hope that one day IPS will jump on the composer (or whatever is the old bull then) wagon, no matter their framework. :smile:

Link to comment
Share on other sites

We have a database abstraction layer - that's a moot point. The problem is in writing the queries themselves, because different engines support different SQL (certain commands or syntax in MySQL are not available in MSSQL and so on).

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

  • Recently Browsing   0 members

    • No registered users viewing this page.

×
×
  • Create New...