Ruby on Rails vs PHP: Which one’s right for your needs?

Ruby On Rails vs PHP

Write sites and apps in any language and they’ll be versatile enough to fit the complicated requirements of most businesses. But for custom app builds, the extra effort’s time-consuming. So shorten deployment time of web services, apps, and APIs by using frameworks. You’ll be able to reuse code and simplify common tasks like database access and session management.

Rasmus Lerdorf, PHP creator, never would have thought in 1994 that his scripting language would go on to be the most widely used server-side worldwide. Same for David Heinemeier Hansson, author of the Ruby on Rails framework that began in 2005. Both languages have become well-known programmer options. But now the question arises: Ruby on Rails vs PHP, which wins?

Ruby on Rails vs PHP – What’s the difference?

PHP has evolved over the years, thanks to the ongoing input of an active community. This explains why it’s now become the most popular server-side language, having built over 80% of current websites. You can embed it straight into HTML code or execute it through different web frameworks as a time-saving measure.

Not to be confused with the Ruby language it’s in, Ruby on Rails is an equally popular web framework. So holding a Ruby on Rails vs PHP contest may seem like comparing chalk and cheese. But it’s important to explore their differences if you’re a serious web developer.

Back-end Programming Language

Backend Programming Language - Ruby on Rails vs PHP

As of moment of writing, PHP reigns supreme as a server-side programming language. PHP applications are versatile enough to work on the most prominent platforms. Like Windows, Linux, and Mac OS.

You can directly embed PHP code into HTML markup, and clients can view this in their web browsers. The web server understands this too – thanks to an interpretation module. It’s now common for programmers to accelerate creating custom web apps by using PHP in various web frameworks.

Ruby On Rails or PHP – The Power of Frameworks

Frameworks - Ruby on Rails vs PHP

Web app development is a time-consuming task. And frameworks exist to give PHP programmers tools to speed it up. Many open-source web frameworks exist, with Laravel, Codeigniter, CakePHP, Yii, Symfony, Zend and Slim being amongst the most well-known. However, features vary from framework to framework.

Ruby on Rails is a widely-used web framework, owing its popularity to the fact that it’s written in the robust Ruby language.

PHP vs Ruby on Rails – Performance

Optimizing Speed and Performance - Ruby on Rails vs PHP

PHP 7.0 has built-in web development capabilities and has been configured to perform better, without gobbling up more memory. But despite this, PHP frameworks still vary in the actual performance they deliver.

In contrast, Ruby on Rails is good at speeding through a great many requests each second. But at the expense of greater memory consumption – which effectively holds the brakes on web apps. Developers have to compensate for this slowdown by changing the runtimes.

So here, with pluses and minuses on both sides, the question of PHP vs Ruby on Rails seems unclear.

Ruby on Rails vs PHP – Development Speed

Development speed - Ruby on Rails vs PHP

Programmers can embed PHP scripts directly into HTML, which means they can execute without the need of a web framework. Although, unfortunately, web developers can’t get their custom web applications up and running quick enough, without using PHP frameworks.

Customers often ask for demanding features that require longer lines of code. And on top of writing this code, programmers also need time to review and debug it.

You can develop web applications quicker when you write in Ruby. Ruby on Rails has handy gems and plug-ins to speed up the whole process and also simplify database operations. It offers robust ORM and allows for unit testing via PUnit integration.

PHP vs Ruby on Rails – Tools for Developers

Tools for developers - Ruby on Rails vs PHP

Ruby on Rails may be a mature Ruby web framework that continually evolves with emerging trends in web app development. But its benefits are obviously limited to that language. Meanwhile, many web frameworks, CRMs, libraries, and tools exist for PHP.

These days, it’s names like WordPress, Joomla, and Magento that have become common knowledge. And they gained their considerable popularity because of their ease-of-use. Which drove it to be adopted worldwide, quite rapidly.

PHP also lets developers select from a broad palette of testing and development tools to fit the needs of each project. So, PHP is popular among web application programmers because it allows them to create custom web applications with ease.

Ruby on Rails vs PHP – Peer Support

Peer support - Ruby on Rails vs PHP

Both PHP and Ruby on Rails enjoy strong ongoing support from their widespread and enthusiastic communities. But those who champion PHP are by far the more vocal and active group. Within that community, there are equally lively advocates and supporters of each discrete PHP framework too. Meaning, from a programmer’s perspective, there’s almost always someone ready to answer any technical questions you may have.

The importance of this extra informal layer of support cannot be overemphasized. Because it’s allowed PHP to become the more favorable server-side technology. Programmers know that they’ll never be stuck for long. Because there will be a horde of minds ready to help them overcome any problem. And that really is a blessing when time has left your side.

Regarding support, PHP vs Ruby on Rails has one winner – PHP.

PHP vs Ruby on Rails – Learning Curve

Learning curve - Ruby on Rails vs PHP

PHP is simple for beginners to pick up compared to other programming languages. Moreover, the web has plenty of free videos and step-by-step programs to help neophytes get up to speed. With Ruby on Rails it’s a different picture, because this language is much more complicated. So it’s considerably more difficult to become fluent in this one that PHP.

Both PHP and Ruby on Rails have their own strengths and weaknesses. Developers need to speed up the development of the web apps they produce, and they need a strong PHP framework to do it. Ruby on Rails developers code in Ruby, so Ruby on Rails vs PHP is not a straightforward comparison. But perhaps in terms of learning, PHP wins by way of its simplicity.

Ruby on Rails, PHP – and Plesk Onyx Hosting Platform

ruby on rails, php and plesk onyx hosting platform

Ruby on Rails

Because it’s a popular programming language among web developers, Plesk Onyx fully supports Ruby on Rails as an extension. This lets users deploy Ruby apps on their domains quickly and easily. It supports both Ruby on Rails and Sinatra frameworks. This extension allows you to:

  • Facilitate Ruby support on virtual hosts.
  • Select which version of Ruby to use on a domain. Both UI and CLI calls use the rbenv utility to facilitate the highest level of conformity.
  • Install gem file dependencies using the Bundler tool in the UI.
  • Stipulate custom environment variables.
  • Manage configuration files.

We strongly advise you to install the tools you need to build the Ruby gems component. This should significantly enhance the process of installing Ruby gem. This component handles most dependencies automatically. So it’s the pill to cure dependency headaches and to ensure mercifully swift gem file installation.

PHP

Plesk offers comprehensive, built-in, ready-to-go support for multiple PHP versions and handler types. Not to mention, it lets you select which versions you want to setup during installation. The usual PHP handler types for whichever PHP versions you install are automatically configured.

Plesk lets you choose which PHP version you want to combine with which PHP handler type, as customer preference dictates. Plus, you can individually configure settings for each PHP version.

The final verdict on PHP vs Ruby on Rails

The PHP vs Ruby On Rails comparison has a lot of subjective moments to take into consideration including the future scope of tasks to solve and initial professional experience. Each has its strong and weak sides, but Ruby On Rails continues to gain popularity for business-critical and e-commerce applications because of its scalability, versatility and upgradability.

PHP Ruby On Rails
  • Open-Source
  • Easy learning process for beginners
  • Wide support across multiple web servers like Apache, Nginx, Microsoft IIS
  • PHP is extremely popular and accepted widely in the industry compared to the other programming languages.
  • Large developer pool
  • PHP is fully about OOP nowadays
  • Many frameworks available
  • PHP7 is extremely fast
  • Problems in maintaining legacy applications
  • Open-source
  • Great language design
  • Ruby was always 100% object oriented language
  • Gem libraries of Ruby make it easier for a programmer to develop a project by borrowing from the libraries.
  • Runtime speed could be faster

Python vs PHP: Which One Is Better?

Python vs Php

Python vs PHP sounds like the latest Marvel action flick where Python is the bad guy, but in fact, it’s a battle between two different adversaries. They’re both contenders for the crown of Top Backend Programming Language (which isn’t a real competition, but we wish it was), which is becoming a very hotly contested space. Backend development is now a very in-demand discipline, partly because almost all new businesses with an online presence are looking for a website and mobile app, and they both rely on server-side development to accomplish those ends. Here’s a few names that you may be familiar with:

  • Python: is a high-level object-oriented programming language, with built-in data structures, dynamic typing and binding. It’s a great choice for rapid application development.
  • PHP: stands for Hypertext Pre-Processor. Its popularity stems from the fact that it’s been around for a while, it’s free and it’s pretty efficient when you stand alongside rivals like Microsoft’s ASP. Users who are on particularly technical appreciate the fact that it makes their webpages easier to manage.
  • JavaScript: often abbreviated to JS and hugely popular. It’s one of the Web’s core technologies.
  • Ruby on Rails: is an object-oriented development tool written in Ruby which is used to create web applications. It’s good for simplifying common repetitive tasks and has many other appealing attributes.
  • Dot NET: is a software framework developed by Microsoft.

There are more names than these out there of course, is anyone starting out in development will know. In fact, one of the things that hits beginners is the wide variety of languages for both front and back-end applications. There are so many out there offering so many different features that it can be hard to know when to start, so, we’ve written PHP vs Python as a way of narrowing the choice down a bit for you. These two stand out from the rest and both have enthusiastic fanbases that sing their praises. Fans are all very well, but objectively, which of them should you invest your time and energy into learning, and what criteria will help you choose? Let’s take a look:

  • Ease of Learning: Time is money, and you’ll have to invest a lot of time to become proficient in any new language. So, the question here is, “PHP vs Python, which lets you get up and running sooner?”
  • Community: every application has its own crowd of cheerleaders, and many of them offer free help and advice to everyone else in the community. That’s why it’s important to know that the software you’re learning is popular. Someone will know how to fix your bugs much faster if it is.
  • Documentation: the programming language or framework needs to be well documented. Otherwise learning will be more difficult.
  • Costs: you do have to pay for some these languages and how much you pay is bound to affect your choice.
  • Libraries: a popular language will be popular partly because it has plenty of library support, which makes your job as a developer that much easier.
  • Performance Server-side apps have a lot thrown at them, so they need to be highly efficient.
  • Choice of web frameworks: a good selection of web development frameworks is absolutely essential if you want to build the best.
  • Debugging: a greater availability of debugging tools is an advantage. More time spent weeding out problems means less time spent on building.

PHP vs Python – let’s compare

Ease of Learning

Python is the simpler of the two to learn. It’s an all-round programming language and you can become proficient at it quite quickly. In fact, Python is such a quick learn that it’s the favoured choice for most entry-level programming courses. You can write a Python program with less code than other languages, so it’s no wonder that professionals have two it. It uses simpler syntax and you don’t need a degree in Martian in order to read it. Which is to say that it’s easily understandable compared to many other languages.

PHP struggles in comparison because it was created with web applications in mind, and these tend to have a higher level of complexity than programs that only have to run on one device. That’s why PHP is more complicated and so more difficult to learn.

Programmers don’t want to take too much time away from their day-to-day work while they pick up a new language. Python is more beginner friendly than PHP, which has a pretty steep learning curve. The PHP developer community does all it can to make life easier for new programmers, but that’s never going to be enough to close the gap with Python. So it’s the winner here in the battle of Python vs PHP.

Community support

Python and PHP both offer great community support. PHP has been around longer in the web application arena, so there are now loads of seasoned developers ready and waiting to offer their advice and insights.

Python may be newer, but it also has a very engaged and knowledgeable community of developers, so new Python applications are being developed by them all the time. This means that the question of Python vs PHP sees them fairly evenly matched here.

Big-name users like YouTube, Instagram and Pinterest use Python-based web apps, but Facebook’s back-end was built on PHP, so it’s clear to see that both are equally capable of delivering world-class results.

Documentation

Both languages benefit from comprehensive documentation, which means you can find tutorials in a whole host of different locations on the web. The Python vs PHP battle ends in a draw once again on the question of documentation. Both languages are equally well served by a lot of great resources.

Prices

“Python or Php” debate also sees them evenly matched on the question of cost. Both are open source and free, and the only question about competition is how far ahead of their paid competitors they are.

Library support

Where Python vs PHP does have a winner is with library support. Python has much better-developed library support for almost all app types. PHP is behind in this regard but it does benefit from a really good repository called Packagist.

This is an important consideration because an increasing number of new and established businesses want web applications backed by Machine Learning. Python offers some great Machine Learning libraries such as TensorFlow, Keras, Theano, Scikit Learn, and more. They are fast, using them is intuitive and they offer fantastic integration with the web framework. This means that on this question, the Python vs PHP has a clear winner in Python.

Performance

PHP 5.x versions tended to drag their heels, but PHP 7.x is a real flyer in comparison to the average Python program, chewing through tasks up to 3 times as quickly. Speed often becomes an important factor in performance-critical applications, and any differences can add up to a huge difference in performance when you’re processing millions of hits a day for a bank, for example. Dealing with that much information only 33% as fast as your rival is just not tenable. The PHP vs Python result in this case goes to PHP. (But of course, it’s worth remembering that for simpler situations, that latency difference between the two would be much less noticeable.)

Selection of Web Frameworks

The likes of Django, Flask, Pylons, and Pyramid are some of the most commonly used Python web frameworks, while Codeigniter, Zend, Laravel, and Symfony are the equivalent PHP-based ones.

Django has a well-deserved reputation for speed, scalability, security, and ease-of-use. It’s popular because of its robustness and power, and a lot of applications depend upon it.  Codeigniter and Laravel are the equivalent frameworks for PHP applications.

The Python vs PHP question results in another tie situation here, as both offer similarly impressive options. But it has to be said that rookie developers prefer Django for its ease of setup and because coding is quicker.

Tracking down bugs

PDB is the name of Python’s debugger, and it’s very good at its job. PDB is fairly simple to use, even for programmers who are just starting out. XDebug is the name of the equivalent for PHP. Both take a similar approach to debugging with breakpoints, stacks, path mapping, and so on. So, in the Python vs PHP race, both are neck and neck when it comes to debugging.

Python or PHP – Summary

So, in conclusion, these two languages offer similar performance and features, but Python looks to be the better choice overall. Which doesn’t mean that every veteran PHP programmer should convert to Python, but for those who haven’t been using it for as long, or those who are just starting out, it might be worth your while moving over to Python. Its ease-of-use and efficiency means that it looks set to eventually become the dominant force in back-end development, and that means employers are going to be expecting it. Anyone looking for longevity in their development career should consider learning Python.

PHP vs Node.js: Which is better?

Php vs Node.js

JavaScript has been around a long time and has always been at the forefront of making things happen. That is, on the front-end – handling everything browser-side. For back-end, doing the heavy server-side stuff, we used PHP. Even on some of the most popular websites worldwide. Meanwhile, Node.js has really overturned the old way of doing things. So now it’s PHP vs Node.js – who wins?

The story of Node.js and PHP

Many wonder why JavaScript was trapped in just front-end. It led to Node.js and the framework which allows JavaScript to not just run client-side, but everywhere. In this ideal world, developers could use a single language, both when programming client-side and server-side. In fact, Node.js has really taken off for a variety of reasons. And if you develop, you have an enormous amount of choices of platforms including the ultra-popular Angular JS.

PHP has also seen a huge amount of development with speed being one of the greatest benefits. At version 7, PHP has come a long way with JIT compiling a particularly popular feature of the later versions of PHP. Basically, PHP can now deliver just as quickly as Node.js and there’s also HHVM with hash which supports really cutting-edge programming techniques.

As always in technology, it’s not easy to decide what will lead the future. Sometimes there is a place for both competing technologies, sometimes it’s Betamax vs. VHS: only one will survive. But right now, we take a look at the situations where PHP serves you better, and point out the use cases where Node.js is a better choice.

Pro of PHP: Code and content together

As much as projects have different requirements for efficiency of code, logic and planning, it stays true that splitting the logic layer from the content layer is a wise choice. But do you want to spend time doing so? A PHP advantage is that it makes it easy to quickly add logic in the middle of HTML content. You can just trigger some logic by picking out a few markers in the URL, and tweak your content accordingly. Job done. And with some websites, that’s all you need.

Pro of Node.js: Everlasting power of MVC

A complex site with lots of logic snippet dispersed across pages can be difficult to manage. With Node.js you need to act in a more structured way (Model-View-Controller model). But with a complex application, structure is better for everyone. Node.js prompts you to lay code out in a way that is easy for you to maintain. And easy for a new project team member to understand. Yet, planning always takes time, and this structured approach might not be ideal under all scenarios.

PHP vs Node.js: Having variety against being up-to-date

Experienced programmers will know that an established code base is both a blessing and a curse. On the one hand, PHP provides you with a wide selection of libraries and frameworks, so you don’t have to write thousands of lines from scratch: almost every imaginable necessity has its implementation in code. However, this huge code base is not necessarily fresh or relevant. In the world of fast-moving web apps, this can be a liability.

Node.js, in contrast, offers a code base which is aware of the latest developments in web architecture. Though you may find fewer completed code chunks those which you do find will be more relevant. Besides, with Node.js you’ll find coding from fresh easy and quick because of its design. It fits into current development models, including the push for clients to do the heavy-lifting.

PHP vs Node.js: Simplicity but also flexibility

Though we’re currently on PHP 7.0, the initial purpose of PHP was simply to serve as a connector between HTTP requests and a server database. Considering how capable a database can be, this simple layer of basic functions and a couple of variables is often all that you needed. In fact, for a lot of use cases, all you need is that thin layer of PHP, and that’s it.

JavaScript, however, gives you more flexibility and the opportunity to pull in libraries by means of jQuery. It’s so powerful that you can shift functions around as if they were objects. Besides, Node.js is a modern language and despite some frustrating aspects also offer some really useful features, including the much-loved closures. So still PHP vs Node.js, but let’s keep going.

PHP vs Node.js: Growing code or multiple languages?

PHP code is expanding, but Node.js opens the doors to many languages. Many PHP developers have yearned to be able to do more with PHP than simply pull content from a database and present it in a tidy way. In a way their wish has been granted: you can now use HHVM (open-source virtual machine) to do much more than you could before, including the use of annotations and lambda expressions. Even if you are restricted to using HHVM for your code this is not so much of a problem as HHVM is actually very fast.

But why restrict yourself to HHVM when Node.js gives you what is literally dozens of options. With Node.js you can cross-compile so many languages that it really opens a world of opportunities. Whether you prefer C#, Lisp or other languages that could even include BASIC or, if you must, Pascal – there’s no arguing, you have choices. The fact that so many languages can be cross-compiled to run in Javascript is a huge advantage in many situations.

Client-side code using Node.js

Downside

It’s true that some websites don’t need to execute any code on the client side. They simply use PHP to generate HTML from a database and get done with it. This is especially important when pages are rendered by mobile phones with small brains. Because you don’t want a code-heavy client side that gets bogged down with a slow mobile processor. Besides, simple HTML is less likely to lead to glitches.

Upside

Yet there are advantages to keeping some of the workload on the client side. And Node.js is simply more efficient, especially in terms of server usage. You send less data over the internet because there is less HTML mark-up. And you don’t need to submit a huge chunk of HTML code every time a little bit of data changes. AJAX takes care of all of this. This way of coding is ultimately  useful if your website is very data-driven, and requires more interaction from the user.

Database Queries: Advantages for both PHP and Node.js

If you’re familiar with and love SQL, PHP could be the best option for you. PHP was built closely to MySQL and databases similar to it such as Percona or Drizzle. Besides, you can easily connect to other SQL database from Oracle or even MS. Simply by making some basic changes to the code you use. Because SQL and the SQL code is so universal, it makes it really easy to work with databases and PHP.

JSON is not a bad alternative, however, as this too has a wide spread of databases it is compatible with. If you’re thinking of non-SQL databases for your application JSON can turn out to be quite a good solution. Though you can match JSON with PHP too, the similarity between JSON and JavaScript makes it great in a JavaScript environment.

It’s all about speed – but which?

Often there is a trade-off between the speed of writing the code, and the speed of an application executing. This is definitely the case with PHP and Node.js, with PHP being incredibly quick to put together. With PHP you don’t need a compiler or any JAR files. And PHP is an excellent choice if you need a working project really quickly.

On the flipside, PHP code doesn’t execute that quickly. In contrast, Node.js is code that executes smoothly and quickly reducing the load requirement on your server. You also get access to callbacks, which wastes less time when you try to deal with multiple different threads. You’ll spend more time coding and compiling with Node.js. But your code will be more optimized in the end.

PHP and Node.js Ecosystems

Finally, one distinction between Node.js and PHP that is worth keeping in mind is this: Node.js has a single code base. While there was a split in Node.js a while back, the group behind it has, for the most part, stuck to its guns and provided developers with the consistency they need.

However, the ongoing activity around PHP has benefits. Competing spur frameworks and libraries of the different teams want to add more useful features and improve performance. Zend and HHVM are both excellent projects. But there is a risk that, in the long-run, you’ll end up developing code on a code base that is relegated to the ash heap.

PHP and NodeJS – Supported Technologies

Node.JS PHP
Content Management Systems Apostrophe2, PencilBlue, Enduro.Js, Ghost WordPress, Opencart, Drupal, Magento, Joomla, ModX
Model-View-Controller frameworks Express JS, Sails JS, Koa JS Zend, Laravel, CodeIgniter, CakePhp, Symfony
HTML templates Mustache, EJS, Jade, Embedded JS Smarty, Twig, Blade, Volt
QA Jasmine, Protractor, Casper JS, Phantom.JS PHPUnit, Dusk, Codeception, Selenium
Caching Redis, Node-Cache Memcache, Redis
Rest API Restify, Loopback RestClient, Guzzle
Horizontal Scaling Amazon Elastic Beanstalk Varnish, Amazon Elastic Beanstalk
Profiling Internal profiler XDebug, Blackfire, XHProf

What’s great for both Node.js and PHP?

Plesk Onyx Hosting Platform

We realize that there are advantages to both languages. So we offer you the ability to host code in both PHP and Node.js, with hosting features tailored to each. Let’s have a look.

Node.js

Node.js has really gained enormous popularity within a short period of time, and with good reason. JavaScript itself is so widely-used and well-understood, making it an excellent way to start building a new code base. Node.js is a great way to build lightning-fast web applications. We can help you run Node.js applications easily and with high speed, offering the following hosting capabilities:

  • You can add Node.js to an application by just a click or two.
  • Plesk lets you easily manage your live Node.js applications, including starting and stopping (or restarting) and also editing config files and installing NPM packages. Our Onyx hosting platform really offers it all.
  • Plesk Onyx for Linux also allows you to install different live versions of Node.js in the same instance, for additional flexibility.

Find out more about how Node.js works on Plesk Onyx

PHP

Plesk has always offered support for PHP. This reliable language has been around for a very long time and is the basic building block for millions of web applications. We offer a top PHP hosting solution, including the following features.

  • Onyx supports multiple PHP versions out of the box, just pick your preferred PHP version when you install.
  • Standard PHP handlers are automatically configured for you.
  • Alternatively, pick your choice of PHP version and handler, making available to your customers only the versions you choose.

Plesk now supports PHP 7.1.x

We’re pleased to announce that Plesk Onyx now supports the latest PHP version 7.1.1.

The update to PHP 7.1.0 brought developers a bunch of cool new improvements such as Catching multiple exceptions types or Nullable Types. For the full list of new features, head over to the official PHP release announcement.

In version 7.1.1, more bugs were fixed to make the PHP 7.1.x branch even more stable.

Planning to update?

Check your CMS version before updating Plesk PHP to 7.1!

Because there are several incompatibilities with the last version of PHP.  If you’re working with the three most used Open Source CMSs, the compatible versions are:

  • WordPress >= 4.7
  • Joomla! >= 3.6.4
  • Drupal >= 8.2.3

Plugins and modules are not all operational on PHP 7.1.0 so if you’re planning to migrate from 7.0 (or an earlier version) to 7.1, proceed with caution. You might want to try making a copy of your sites to try out PHP version 7.1 before taking it live if all goes well.

TIP: If you are using the WordPress Toolkit on Plesk Onyx, you will be able to easily duplicate your website and test the new version on the copy first in the next major version of the toolkit!

Check your version of PHP

On your Plesk control panel, go to Tools & SettingsPHP Settings.

PHP 7.1.1 - Plesk PHP Settings

Install PHP 7.1 in Plesk

Go to Tools & Settings – Updates and UpgradesAdd / Remove components. Select PHP 7.1 and click on the “Continue” button.

Plesk Php 7

After the installation process, you must activate the new version for your domains. Go to Websites & Domains, select your domain and click on the PHP Settings icon. On the next page, you’ll define the PHP version and other parameters, such as the memory limit or the execution time.

Plesk - Activate PHP version 7.1

Select the new version, set your preferred performance and common settings, and click “Save. If you’ve successfully updated your Plesk PHP version, you’ll see 7.1.1 under the PHP Settings icon.

Plesk PHP - version 7.1 activated

Note: As mentioned above, not all applications or plugins support the latest PHP version. If an application or plugin is vital to your website, be prepared to switch back to the last PHP version.

Now go forth and try the newest version of PHP, and enjoy the improved performance and decreased memory usage!