When I first started really programming in 2011, I thought it only took a single language to make your ideas become a reality. Personally, python was my language of choice. Every day, I would be excited to sit down at the computer, open up a new python instance, and just try something new.
For a first time programmer, this was an amazing feeling to actually see results as I typed. Years before, I had attempted to understand Java, and my word that did not make any sense. When you don’t understand compilation vs. interpretation, and have never even looked at programmatic syntax before, Java was a ton to take in at once. Python was different. It allowed me to try typing something in, and if it didn’t work, I could try again instantly.
The learning curve was more palatable for python. It felt like I was in a sandbox, and if I built a sand castle that was hideous and ugly, I could wipe it clean and try again at any time! Of course, other languages have this option too, but the way python displayed it to me was so simple to use and understand. However, python was not going to be my total solution for the projects that I wanted to build. After tons of trial and error, many crappy database designs, loads of non-functioning header errors in PHP scripts, and garbage Objects, I’ve found a great process that works for me.
Everything I build needs to work in the browser
I realized if anyone were to ever use the projects I was working on, I had to find a way to bring it into a web browser. As time went on, the simpler a user can access your work, the more likely they are to try it out! Being a diehard python fan, however, I knew I had to incorporate this language as the backbone to my automation. This led me to Flask.
This framework alone has inspired me more than you can imagine. The endless possibilities! The ease of python with the entire web at my fingertips. This leads me to the full stack I love to use today.
From the back-end functionality to the front-end
Server Hosting: Amazon EC2 or Namecheap Shared Hosting
Data Persistance: RethinkDB*
Server-side Processing: Python Flask
Front End: AngularJS, HTML, CSS
This stack is simple, quick, and boy how is it fast to set up. I practiced spinning up EC2 Instances and hacking around to create files, edit permissions, and try some cool Linux automations.
Python boto changes everything
Then, I realized there is an entire python library for working with Amazon AWS! It’s called Boto. This amazing library opens up the entire Application Program Interface (API)
Now is where modern technology can start disrupting markets. Bring old, client-bound, applications and migrate them to the cloud. I believe in a future society where all of our smart devices, or the internet of things are all connected into centralized cloud structures. Instead of having all of your items kept on your device, your entire operating system is cloud based. You can log on to any computer out there, with your credentials, and start right where you left off. You can remember any programs that were running. Companies can even take better details on customer behavior to continuously enhance the experience of the cloud operating system.
This is just one example of how this stack can penetrate the market in an exciting, new, and intuitive way. Another example of a future Software as a Service (SaaS) business is “Google Sheets”. This product completely disrupted the hold that Microsoft had with Microsoft Excel. This tremendous switch from client based compute to cloud sharing opened up spreadsheets to be accessible by the user, anywhere, and also enable collaboration among organizations. Something that Microsoft could only have dreamed of doing at that time.
The aforementioned development stack is by no means the only way to establish cloud-based products. This is simply the best way that I have found to quickly and effectively build a new working demo or new business idea. Many variations of this stack utilize SQL database, any hosting option, and any front-end programming language. PHP code running against a Windows 10 machine can work just as effectively.
Feel free to comment here or reach out to me to continue the conversation. Check out my twitter @mattmccullo or sign up for my mailing list just below!
Thanks for reading!