Why the hardest part of coding is getting started
First you need to choose what language you want to program in. Okay so what are your options.
- Java (Not trendy)
- C# (Still Not trendy)
- Python (Kinda trendy, but not trendy enough)
- Ruby (Now were getting trendy)
- Javascript (Now thats trendy because of node)
- GoLang/ Rust (Now thats just hipster, but will be trendy soon enough)
So you’ve finally settled on a language, and for the sake of this article lets say you chose javascript and node.js
Great, now lets get to coding. Hold on, not so fast, well now you need a framework, well that shouldn't be too hard, what are the options.
- Express, well thats great, but is it just me or does it not really do anything, or does it do just the right amount.
- Meteor, its reactive, yup reactive, you gotta do something reactive.
- Hapi, Big Business uses it, you wanna be a big business right?!?!
- Sails.js, Ruby on rails without the ruby, soooooo…. javascript on rails?!?
- Mojito, made by yahoo, enough said
Okay so we’ve decided to use Express, great so now we can start developing our backend, but what about our database options.
Basically it comes down to two things, noSQl or SQL. conventional wisdom is going to say, use a standard sql server, and honestly for the most part, I agree with them. More often that not, data can be represented through relationships, and thus relational databases are the way to go. However if you go with the current hype, you gotta go with a nosql database, or so called schemaless databases. These databases, such as mongodb, are all the new rage, and while they can offer benefits if you have highly unstructured flows of data, and if you have massive scalability problems that need to be solved, but lets be honest, your not likely to have Facebook or Google levels of data. So a good database schema with a relational database is more than likely to get the job done.
So we’ve chosen a SQL database, so now what are our options for a sql database.
- MySQL, tried and true
- MSSQL, an enterprise favorite.
- Microsoft Access, just kidding
- PostgresSQL, an open source darling, with exceptional performance, and some of the key-value magic of mongodb.
- A million others, that I honestly don’t know enough about.
Okay so now we have a database, and a backend, well now comes the real headache, the front-end (you’ve made your duck swim like a duck, quack like a duck, now its time to make it look like a duck)
Front end frameworks, oh so many front-end frameworks, well here are a few.
- Angular 1, Googles tried and true javascript MVC framework, perhaps the most widely used.
- React.js, Facebook’s framework, and the darling of the front end world, however React in reality is actually just a library, and represents the view in MVC (model, view, controller), but typically react is used in tandem with other libraries that make it a full on mvc javascript framework. Though technically, react can be used in tandem with any of these other frameworks.
- Angular 2, the latest version of googles framework, but……. its not backwards compatible with angular 1, but it is built with typescript, a Microsoft subset of ecmascript 6 that adds types to javascript, yup you read that right, Google is using a Microsoft subset of javascript, hell has never been colder.
- Backbone, a full on mvc framework like angular, but more light weight and less opinionated than angular, great for smaller applications.
- Jquery, the grandaddy to all of these frameworks, you might make your evaluations, and realize that you don’t even need a javascript framework, and that it just adds to much unnecessary complexity. Well if you find that to be your situation, well Jquery by itself is your answer for your javascript needs.
Okay so you’ve picked your language, your backend, the framework for your backend, the type of database, the actual implementation of a database, and the front end framework you want to use. Thats a lot of things to consider before you ever start coding, and in reality there alot more considerations that need to go into your stack, especially in your front end framework. What build process are you going to use, gulp vs webpack vs make vs etc. What version of javascript are you going to use, ecmascript 5 or are you going to use ecmascript 6 and use babel to transpile your code down to 5 since browsers don’t have full compatibility with ecmascript 6. All in all there so many things to consider, and honestly it so very easy to get paralysis of analysis, there are so many options, and quite honestly a lot of the options are pretty damn good. So do your research but don’t get lost in it, and start Coding!
I hope all you join me tomorrow, as I disregard half of this article and document my journey of setting up an asp.net server on azure.