Blog

Pruning for Growth (Less is More)

Nathaniel Francis January 26, 2015

Spread the word

Nathaniel Francis

January 26, 2015

Spread the word


Share your thoughts

ColdBox 4.0 is the most significant change in the framework since it was first introduced. Go ahead - let that soak in a bit.

Now, what do I mean by that? Lots. Too much for a single blog post to do justice without becoming tl;dr. That's just how big these changes are.

Pruning

One of the key aspects to ColdBox 4.0 is what is not actually in ColdBox 4.0. You read that right, ColdBox 4.0 is missing some stuff. Don't worry, it's for a good cause. What we've done is kept all the key elements, the framework core components intact (WireBox, CacheBox, LogBox), but we've pruned out the stuff that not everyone will use. This is better for ColdBox and the ColdBox community in a lot of ways:

  1. It makes what ColdBox is, at its core, very clear
  2. It allows the developer to add to it the parts they need for their project
  3. It keeps the footprint small
  4. It speeds up the framework
  5. It makes ColdBox more approachable to newer developers
  6. It makes the framework very flexible

Less is More

Let me give a few examples:

  1. Do we really need that? Removing ColdBox components that are optional (as in not everyone will use them) has streamlined the framework to a mere 4-6ms execution time for normal requests. That's fast!
  2. Let's lose some weight! Pruning out these optional elements has made the core much smaller - roughly 80% size reduction. That's very nice!
  3. We got a module for that! ColdBox's modular architecture allows developers to add the functionality that they want or need through the many available ColdBox modules - making ColdBox 4.0 both extensible and flexible. That is super nice!

You see? By pulling out some of the vast wealth of options ColdBox has to offer and making them available through modularity, we've been able to make ColdBox 4.0 the slimmest, slickest, most extensible, and most flexible ColdBox to date. Truly less is more for ColdBox 4.0.

2 Key Areas

There are 2 key areas of this pruning for growth that are worth mentioning.

One is the modeling aspect. Among other things, the core ORM aspects have been removed. This means that ColdBox 4.0 is open to many different types of modeling:

  • Hibernate/SQL/ORM styles that are very common in the ColdFusion community
  • No-SQL types of modeling that are rising in popularity

Of course, the ORM aspects are still available with a simple CommandBox box install cborm command - so don't worry, we're still in the ORM business! But the point is, that's not all ColdBox 4.0 does. Many of the team members are using a variety of modeling styles in their own projects and want to open doors to harnessing the variety of modeling aspects alive in programming today.

The second thing is a short list of what we've actually pruned from what was standard up until ColdBox 3.8:

  • ColdBox Debugger
  • Storages
  • Feeds
  • Commons
  • il8n
  • ORM
  • ioc
  • JavaLoader
  • AntiSamy
  • MailServices
  • MessageBox
  • Soap
  • Security
  • Validation

have all been pruned out of the core framework. That's quite a diet!

For Growth!

These changes make ColdBox 4.0 not only relevant for today, but also give it a bright future. By keeping the core clear and concise, opening up app architectural styles, and improving extensibility through modularity, ColdBox 4.0 is poised for growth.

We've pruned ColdBox 4.0 for growth, now let's help it grow!

Add Your Comment

Recent Entries

Ortus June 2024 Newsletter!

Ortus June 2024 Newsletter!

Welcome to the latest edition of the Ortus Newsletter! This month, we're excited to bring you highlights from our sessions at CFCamp and Open South Code, as well as a sneak peek into our upcoming events. Discover the latest developments in BoxLang, our dynamic new JVM language, and catch up on all the insightful presentations by our expert team. Let's dive in!

Maria Jose Herrera
Maria Jose Herrera
June 28, 2024
BoxLang June 2024 Newsletter!

BoxLang June 2024 Newsletter!

We're thrilled to bring you the latest updates and exciting developments from the world of BoxLang. This month, we're diving into the newest beta release, introducing a new podcast series, showcasing innovative integrations, and sharing insights from recent events. Whether you're a seasoned developer or just getting started, there's something here for everyone to explore and enjoy.

Maria Jose Herrera
Maria Jose Herrera
June 28, 2024
BoxLang 1.0.0 Beta 3 Launched

BoxLang 1.0.0 Beta 3 Launched

We are thrilled to announce the release of BoxLang 1.0.0-Beta 3! This latest beta version is packed with exciting new features and essential bug fixes, including robust encryption functionality, enhanced Java interoperability, and more efficient event handling. Key highlights include the introduction of query caching capabilities, seamless coercion of Java Single Abstract Method (SAM) interfaces from BoxLang functions, and support for virtual thread executors. So, let’s dive into the details of what’s new in BoxLang 1.0.0-Beta 3 and how you can start leveraging these updates today!

Luis Majano
Luis Majano
June 28, 2024