Part of the EllisLab Network
   
2 of 3
2
What’s the next step plan of CI
Posted: 06 June 2007 09:48 AM   [ Ignore ]   [ # 16 ]  
Summer Student
Total Posts:  10
Joined  03-12-2007

@Derek: It’s really a shame to see your response.  While I agree 100% with you, this happens every day with other projects.  You can definitely cover your own butt’s by saying what it will do and say “Do not depend on this for projects until it’s released”.

I’ve got a bunch of projects that will have HUGE user bases in the US (good publicity for CI), but I can’t push myself to use it.  I’m most likely going to use a spin off because

1) I can make changes to the core and not feel “bad” about it.
2) I know there’s a chance of getting any enhancements put in future versions.

While I love that this is a great open source project, it doesn’t really give the community any reason to enhance it.  I think what will happen (and be very sad) is that a spin off will evolve into the “next great framework”, and CI will just be known as what it was branched from.

Profile
 
 
Posted: 06 June 2007 12:33 PM   [ Ignore ]   [ # 17 ]  
Administrator
Avatar
RankRankRankRankRank
Total Posts:  2531
Joined  12-21-2001

Let’s see if I can address this without getting beat up too badly.  grin

About a year ago I decided to take most of the libraries that we had written for ExpressionEngine and put them into a open source framework.  Had all these libraries not already existed, CI would not have been possible.  The development time would have been too astronomic.

Once CI was released, however, I realized that it was inefficient for us to maintain two versions of our libraries;  the EE version and the CI version.  When I ported the EE libraries over to CI it was necessary to make some changes to them.  EE handles globals and a few other things different then CI, so each library required finessing to make it work.  This created two sets of libraries.  In an ideal world, however, we’d have exactly the same libraries in both applications.  This would make development more efficient, and it would permit libraries that were developed for CI to be used in EE.

Many of you know that we’re working on EE 2.0.  It’s a big release, so it’s still some time away.  One of our goals for 2.0 is to ditch the EE versions of the libraries and incorporate the CI versions.  We want to end up with one set of libraries that works for both apps.  In fact, we want to create generally tighter symbiosis between EE and CI.  It would also be great to use all the base classes (like the Router, Input, and Output class) in both EE and CI (it may not be possible, though. We’ll see…) 

We actually floated the idea of building EE on top of CI, but there are way too many daunting challenges that prevent this.  But we believe we can achieve much closer integration, even if they remain separate apps.  This biggest benefit to us of doing this is that it will create a much more streamlined development process for us since it blurs the line between EE and CI development.  Our EE team becomes our de-facto CI team. 

Here’s a concreted example of something we’re hoping to achieve for EE 2.0 that will cary over to CI.  Currently, EE runs only on MySQL.  We’d love, however, for EE to support other DB platforms.  To do this, though, will require that the 2000+ database queries that exist in EE be ported over to a more abstracted mechanism.  In essence, we need to rip the MySQL queries out of EE and replace them with an active record pattern. 

CI, however, already supports multiple databases via a much nicer DB library then EE and it has an active record system, it’s just not powerful enough in its current form to meet our goals.  But it’s a great starting point for our development, so as we move EE to this new database structure and rewrite the engine, it’s going to result in CI automatically getting much more kick-ass database classes.

The idea of EE development automatically driving CI development is a very exiting proposition to me.  Not only will it be very efficient developmentally, but it will ensure that CI gets updated more frequently.  I acknowledge that CI has stagnated a little in recent months.  We have a tiny dev team that is already slammed with work (three people including me… and most of my days get sucked up running the company). By creating tighter symbiosis between CI and EE we will solve the problem.

The only downside to my above proposition is that CI development will likely never become a true community based effort like some open source initiatives are.  That isn’t to say that the community will never have any input, or that feature requests and suggestions won’t be considered, but ultimately, CI will be a direct offshoot of EE.  CI will be an open source effort with more closed development.  Some people might not like this, even though the quality, consistency, and security of the code will be much more uniform.

Back to the original point of this thread:  Roadmaps.  I’ve never been a big proponent of roadmaps.  I know that some developers love them, but I’ve always found that the internet changes too quickly, and development cycles tend to be too short, to accurately forecast.  And in my experience, you never truly know what new feature your app will have in that release until you’re in the thick of development.  I can’t tell you how many times I’ve headed down one path only to discover an even better idea.  Or how many times I’ve thought a particular idea would be easy to code only to discover that it’s going to have to be put aside until a later date… and then something better comes along so the original idea never happens.

Maybe it’s my particular temperament, but I just don’t like to look very far ahead, and I never bother to look at roadmaps in other products.  I could care less, really.  I much prefer to deal with the reality of the application as it is now, and make my decision as a user based on that.  I acknowledge that a roadmap might be deal breaker for some people, but in six years of developing three major applications we’ve never used them.

 Signature 
Profile
MSG
 
 
Posted: 06 June 2007 01:02 PM   [ Ignore ]   [ # 18 ]  
Summer Student
Total Posts:  13
Joined  07-21-2002

Thank you Rick, this post was really what I was asking for. I’m not sure why people got upset, nor why all of a sudden the discussion (as well as much of your post) diverted on roadmaps. Neither the original poster nor myself even mentioned a roadmap… only yourself and Derek started talking about it, so it was hardly the original point of this thread. In fact I am not a great believer in fixed plans myself, but I’d like to see a direction in what I am doing.

This thread was about what your post finally clarified… a direction, a vision and a strategy: no one was asking for anything else. Like you, I run a small team of 5 and we are struggling to get things done in the most efficient and elegant way. Code Igniter helps us massively every day. My post - like some others, I believe - was just to try to understand if I’m investing in the right thing for us, or I should look elsewhere.

I do appreciate now that CI is and will remain your effort, oddly enough I’m happy with that. I’m not a great believer in open source or community building per se, as I also favour precision of vision and tight control on code.

Bottom line. Thanks for your work in CI and for giving it to us. I do believe we’ll keep working with it and on it and will try to post, in the WIKI, our contributions.

Best, Cristiano

Profile
 
 
Posted: 06 June 2007 03:21 PM   [ Ignore ]   [ # 19 ]  
Research Assistant
Avatar
RankRankRank
Total Posts:  565
Joined  09-30-2006

Thanks for chiming in Rick! I don’t think you’ll get beat up until this thread moves to page 3 in the forum. I recommend making it a sticky. grin

I’ve stayed away from the other ‘rant and fork’ discussions since I believe that they are counter productive and I have better things to do. But let me just say here that personally I think your approach is exactly right - for me at least.

The reason it works for me is that because [commercial] EE development drives CI development I have an open source solution that is much more likely to survive than many of the alternatives. It should also be pretty obvious that your effort in moving the EE and CI products and community closer together can only be good for everyone using either.

People: Rick’s post should make it plenty clear that EllisLabs has a direct interest in CI to grow and succeed. What more do you need? Need bugs fixed NOW? They’ve been discussed. Fix them yourself and move on with your project. Even if it can’t be done by extending the core and you must go into the system. You’re website isn’t just going to stop working because CI 2.0 comes out, right?

The ‘had I only known’ line of thinking is bogus. You need to solve a problem when it appears and not ignore until someone else provides a solution. I didn’t exactly ‘wait’ for CI to appear on the scene. I started using MVC with Mojavi. It made my code more structured and life became better. Then I came across CI and life became [a lot] better. I bet, the next CI release will improve my life again. I don’t need to know ‘when’ that happens, because at this time no other solution can even shake a stick at it anyway.

Since switching to CI, I handle more web-projects than ever before. This is only possible because CI has allowed me to be many times more efficient in building websites. The results are not only cleaner and more manageble/maintainable code. They are also improved quality across the board, because I now have more time to focus on the actual production issues.

So give it a rest and just USE and ENJOY the software provided to you. If you find something better - move on!

Cheers!

Profile
 
 
Posted: 06 June 2007 06:18 PM   [ Ignore ]   [ # 20 ]  
Grad Student
Rank
Total Posts:  43
Joined  05-29-2007

Despite its meandering off into far fields, this was a very helpful thread for me as a CI/EE newbie.

I have been developing software for a long time and I’ve used more environments and tools over the decades than most of the folks here have even heard of. I used to be a stickler: no roadmap, not for me. But then I had situation after situation after situation arise where I’d be ready to develop something in a given environment, the roadmap would suggest a change was in the offing that would benefit me if I’d wait, and I’d wait. And wait. And then my app didn’t get done, thereby eliminating the advantages of using a powerful, efficient tool in the first place.

So I reached a point where I have a new viewpoint on the subject. I take a tool, I take a snapshot of the tool, and I build using that. If a new version comes out, I look at it, see what I need to incorporate into my app if anything, upgrade if it’s useful and relatively painless, or continue with the old tool if it’s not. Nobody (as a rule, at least) forces you to upgrade.

In the world of Smalltalk, where I’ve done a lot of my work, this is pretty commonplace. I’ve come to understand it as no big deal. CI is so extensible that even core functionality that you don’t like or need to fix is open to you doing so. Who cares if your mods don’t get rolled into the next release? One of the things I love about CI is the clean break between core code and plugins, helpers and even hooks. As long as CI doesn’t allow the core to become bloated with features that are not always or generally useful, it will remain the kind of tool I’m going to prefer.

At least that’s how I feel about it. Keep CI lightweight. Make changes in modular ways using existing mechanisms for extensions. And don’t force me to upgrade. I’m a happy fire starter (aka Code Igniter).

 Signature 

In theory, there is no difference between theory and practice, but in practice, there is.

Profile
 
 
Posted: 07 June 2007 07:56 AM   [ Ignore ]   [ # 21 ]  
Summer Student
Total Posts:  10
Joined  03-12-2007

@Rick

That’s a great reply.  It definitely shows where you are coming from and where you are heading.  But it has forced me to drop my support (I’m vocal on forums about it) and advocating CI.  I will fully push for a branch, as the core code is great.  But I think the lack of “community” is not very forgiving in a type of project like this.

Good luck with your future endeavors and thanks for giving us a great base to work off!

Profile
 
 
Posted: 07 June 2007 02:07 PM   [ Ignore ]   [ # 22 ]  
Lab Assistant
RankRank
Total Posts:  201
Joined  08-28-2006

Thanks Rick. That’s what I meant. You made a clear statement.
Now everybody can make up his mind and we can prevent many of those discussions that were repeated over and over again. Please make this a sticky.

Profile
 
 
Posted: 07 June 2007 02:30 PM   [ Ignore ]   [ # 23 ]  
Research Assistant
Avatar
RankRankRank
Total Posts:  351
Joined  07-25-2006

That clears up a lot. However, it still means that CI is going to be “held back” by EE. Wouldn’t it be more “organic” to allow CI to go and to “backport” CI into EE? I see several benefits of doing it that way:

1. CI is tested before EE adopts - This keeps the “bleeding edge” stuff out of EE (where it doesn’t belong) and in CI (where it does belong).
2. CI can move at it’s own pace - EE needs stable releases, a stable API, etc. But CI is more flexible, and can grow where the community takes it.
3. The community can be CI - If CI is allowed to grow organically, then the community can have a much more direct effect on CI (which seems to be the main point of tension between EllisLab and CI)
4. Wide range testing - If EE follows CI, then CI can become the “testing ground” for what does and does not work well, in the long term. If EE is allowed to lag 1-2 months behind CI (in terms of source changes), than you will have 1-2 months of testing before you commit to changing something in EE.

In my very humble, outside, not-knowing-your-workflow opinion, you’re doing your development backwards. CI stagnates while EE is developed, then, in effect, EE is “re-tested” through CI. Hopefully that makes sense. I’m not trying to second guess your choices, just making observations from the other side of the fence.

 Signature 

me and some random code, hosted by dh. and a blog too! ++ dead bugs

Profile
 
 
Posted: 07 June 2007 02:57 PM   [ Ignore ]   [ # 24 ]  
Research Assistant
Avatar
RankRankRank
Total Posts:  565
Joined  09-30-2006

Shadowhand -

I can see your point, but I still think Rick’s got it right.

EE is what’s bringing in the money and therefore primary development focuses there. I also don’t see this as a completely uni-directional process. Obviously EE is being prepared to use db-abstraction which does come from CI. Rick also said that they’re aiming for a common library format that is closer to CI than EE’s current implementation.

So EE is being enhanced with features from CI if I got this right. In applying these transitions to a commercial product, bugs are found and newer/better tech and approaches are discovered which are then backported to CI [in some cases]. I forsee enhancements in the db layer. And perhaps a lightweight unified ACL/Auth system.

All in all, it means that CI and EE are moving closer together. To me that’s a very exciting prospect because it’ll enable me to use either product more interchangeably.

Cheers!

Profile
 
 
Posted: 07 June 2007 04:14 PM   [ Ignore ]   [ # 25 ]  
Research Assistant
Avatar
RankRankRank
Total Posts:  715
Joined  02-05-2007

Shadowhand - As you know, if not for EE CI would not be possible. EE drives CI. My concern is that if the community were to take over, the projects would diverge. EE goals/code would end up conflicting with CI, and therefore CI could no longer benefit from EE development. I have trouble arguing with the Ellislab business plan, since it has been so incredibly successful.

 Signature 

“I am the terror that flaps in the night”

Profile
 
 
Posted: 07 June 2007 06:16 PM   [ Ignore ]   [ # 26 ]  
Research Assistant
Avatar
RankRankRank
Total Posts:  351
Joined  07-25-2006
CI Mirage - 07 June 2007 02:57 PM
EE is what’s bringing in the money and therefore primary development focuses there.

Ah, but if EE follows CI, then CI doesn’t get ignored, and EE is still being developed (via CI). Again, just my outsiders perspective.

 Signature 

me and some random code, hosted by dh. and a blog too! ++ dead bugs

Profile
 
 
Posted: 07 June 2007 06:35 PM   [ Ignore ]   [ # 27 ]  
Lab Assistant
Avatar
RankRank
Total Posts:  206
Joined  02-14-2007

There are valid points on both sides of the fence.  One point for a more open CI and EE based on CI, is that EllisLab would be able to leverage some of the excellent developers within this community to assist with the primary EE code and extensions/plugins for EE.

Profile
 
 
Posted: 07 June 2007 08:34 PM   [ Ignore ]   [ # 28 ]  
Summer Student
Total Posts:  24
Joined  04-14-2007

I can everyone’s points. Here’s a perspective from someone using CI for about a year now.

CI in it’s current form works for me. It gets the job done for me, today. In fact, I made a decision to use CI for an upcoming web 2.0 project that uses ALOT of cutting-edge technologies. CI to me is about structure and easy of writing code more than anything else. While i’m sure the next version of CI will improve on those, CI is currently good enough for me and better than the alternatives i’ve looked at. Honestly, the decision wasn’t easy - I looked at cake as well and weighted the whole “roadmap” thing. CI in the end still won for me.

I think anyone who feels that CI won’t be improved upon needs to have their heads examined. And be patient. Or use another framework.

Profile
 
 
Posted: 08 June 2007 01:12 AM   [ Ignore ]   [ # 29 ]  
Research Assistant
RankRankRank
Total Posts:  549
Joined  06-17-2006

That wasn’t so difficult, was it.

I think Rick and Ellislab’s input into discussion recently (since the port, actually) is encouraging.

And guys, that’s what many were asking for: For the ability to discuss issues around the direction. Now we know that CI has a roadmap, if not a structured one. In reality we could not determine that, say, three months ago.

I totally support Rick and Ellislab’s vision and input on CI, but I repeat what I said earlier. Once you released CI into the community as a framework, the rules change. Community becomes important, and there should be a direct line between custodian and community.

I dare say that I think Ellislab dropped the ball for a moment, and while I expect (and support) the reasons behind the circumstances, I think the announcement of Gregs framework and later Kahona seems to have brought everyone round to the kickoff point again.

I grateful for Rick’s input as it demonstrates that the product does have a future, not just s forum. I’m also grateful to see that members of the Kahona port are still active in these forums, helping others and contributing to dicussion,

Thanks.

 Signature 

CodeCrafter - Open Source Code Generation for CI

Profile
 
 
Posted: 08 June 2007 02:29 AM   [ Ignore ]   [ # 30 ]  
Summer Student
Avatar
Total Posts:  17
Joined  06-01-2007

@crafter:
CodeCrafter looks cool, but I can not run that based on your documentation, windows’ reason?

 Signature 

Do not lose yourself for anyone is a special view.

Profile
 
 
   
2 of 3
2
 
Post Marker Legend
New Topic New posts Hot Topic Hot Topic with new posts New Poll New Poll Moved Topic Moved Topic Sticky Topic Sticky topic
Old Topic No new posts Hot Old Topic Hot Topic with no new posts Old Poll Old Poll Closed Topic Closed Topic Announcement Announcements
Theme
Change Theme
Visitor Statistics
The most visitors ever was 719, on June 06, 2008 10:16 AM
Total Registered Members: 62663 Total Logged-in Users: 37
Total Topics: 77201 Total Anonymous Users: 1
Total Replies: 416757 Total Guests: 258
Total Posts: 493958    
Members ( View Memberlist )