0% found this document useful (0 votes)
16 views

How To Pick A Programming Language - Framework - by Neya - Creative Foundry

Uploaded by

tapiwa
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
16 views

How To Pick A Programming Language - Framework - by Neya - Creative Foundry

Uploaded by

tapiwa
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 23

22/10/2024, 13:47 How to pick a programming language/framework | by Neya | Creative Foundry

How to pick a programming


language/framework
Neya · Follow
Published in Creative Foundry
11 min read · Jun 3, 2018

Listen Share

This is the second part in series of my journey of writing an E-Commerce engine from
scratch.

Now, that I’ve settled in on writing my own, the next step was to narrow down the tech
stack I was going to use for my own. In this post we will look at the backend
language/framework that I went with for my project.

“So many choices, so many languages, frameworks and what not. How do
I decide which one should I choose? “
This is a very common question, especially if you’re a beginner. I’ve been through this, as
well and so, fret not, I am going to share my choice of language and frameworks and most
importantly why I chose them.

My personal mantra
Before we select our stack, there’s one thing you need to understand — there are a lot of
people out there in the technology world. That means there’s going to be a LOT of
opinions. What one person recommends, another person would reject. But, what does
this all mean for you? That’s a lot of noise. How do you select the right one?

So, here’s the secret sauce:

“You choose based on what you believe in. And if the philosophy of the
language resonates with what you believe in, you simply choose it“
You start with what you think a good language should look like. And what do you
fundamentally believe in. When I say that, I mean, do you believe use of { } ; and ? are
https://blog.creativefoundry.ai/my-journey-of-writing-an-e-commerce-engine-from-scratch-part-2-dc9faba5bfd 1/23
22/10/2024, 13:47 How to pick a programming language/framework | by Neya | Creative Foundry

good for you? Do you think a good language should support proper OO (Object
Orientation) concepts? Or do you want something that deviates from traditional
language designs? Do you think programming languages should be as much human
friendly as possible, or do you think they should be computer friendly and as specialized
as possible, and that it should require significant effort to learn it properly? These are
questions you should ask yourself.

And, why is that? Because, remember, each one of us is different. And we believe in
different things. Sometimes, these things may contradict each other’s beliefs. That’s also
why instead of being another blog post about why my tech stack is important, this is
going to be about how I decided which is the one that’s best for me, for my application.
And of course, with explanation. Hopefully that will help you decide yours.
Other considerations
The other most important consideration is choosing a language that is to verify if the
language you want to use is actually designed to do what you’re after. I’ve seen people
waste a lot of time with languages that aren’t designed for the goals they’re trying to
achieve. For example, I think using R for writing web applications isn’t productive,
although it’s possible (and there are frameworks that exist to help you do that).

In general, this is what I normally teach my students:

https://blog.creativefoundry.ai/my-journey-of-writing-an-e-commerce-engine-from-scratch-part-2-dc9faba5bfd 2/23
22/10/2024, 13:47 How to pick a programming language/framework | by Neya | Creative Foundry

Open in app Sign up Sign in

Search

You start with the purpose of the language. Why was this language designed? If you read
the language’s documentation, it should have the answer. For example, for PHP, it’s
explicitly stated that it’s a general purpose programming language. For example, for R,
it’s stated that it’s a special language for dealing with data. So, it would be counter
productive to try to use it for something it’s not meant for.

Non considerations
One of the most heated arguments while discussing programming languages online is
the performance. If you’re just getting started and are worried about performance, don’t
be. It’s easy to fall trap for this. Any language can be used to do anything and any slow
language can be made to perform fast by throwing more hardware at it. Remember, we
live in an era where hardware is dead cheap.

PHP is slow? Facebook uses it. Ruby is slow? Basecamp uses it. So do millions of other
websites. The point is, don’t forget your bigger goal — You’re here to develop an
application to solve a real problem or rather, make money. Don’t let the choice of
language pull you back.

So, without further ado, let’s move on to selecting our stack.

https://blog.creativefoundry.ai/my-journey-of-writing-an-e-commerce-engine-from-scratch-part-2-dc9faba5bfd 3/23
22/10/2024, 13:47 How to pick a programming language/framework | by Neya | Creative Foundry

Evaluating the tech stacks


1. PHP

2. Node.js (Javascript)

3. Scala

4. GoLang

5. Python

6. Ruby

7. Elixir

1. PHP
Let’s start with PHP. It’s the most popular server-side programming language out there.
Most of the web is powered by PHP. Big companies use PHP (Eg. Facebook). I’ve been
an experienced PHP developer for over 8 years now and I still work on some client
projects in PHP every now and then. And yet, if you ask me, I wouldn’t use PHP for this
project. Why?

I don’t like PHP’s syntax. Based on my experience, I believe that it consumes more time
to write in PHP. Here’s an example of how a typical application in PHP looks like:

https://blog.creativefoundry.ai/my-journey-of-writing-an-e-commerce-engine-from-scratch-part-2-dc9faba5bfd 4/23
22/10/2024, 13:47 How to pick a programming language/framework | by Neya | Creative Foundry

PHP Example — Actual source code from Wordpress

Do you see all that ; ? I’m not really a fan of those. Even { } are understandable, but
not really a fan of those semicolons. It not only takes more time to write all those
symbols, it also makes the code look more complex than it actually is (opinion). In
addition, I don’t like the fact that in PHP there are specialized functions for a lot of
things and you’ll find yourself referring to them frequently and some of them aren’t
really very intuitive (Eg. MySQL).
When should you use PHP?

If you’re just starting and you want to get a feel for writing some basic server-side code,
PHP is a very good choice. If you were going to a real world application in PHP, I’d
recommend a good framework (preferably MVC) such as Cake, Symfony or Laravel.

https://blog.creativefoundry.ai/my-journey-of-writing-an-e-commerce-engine-from-scratch-part-2-dc9faba5bfd 5/23
22/10/2024, 13:47 How to pick a programming language/framework | by Neya | Creative Foundry

If you’re building something based off something popular that already exists, such as
Wordpress, or Drupal, then PHP is a good choice.

The thing about PHP is that it’s so easy to deploy PHP code onto a server. Especially, on
all those cheap shared hosts, which come with PHP out of the box. But, I would never
trust my code on any of those shared hosts anyway because most of them get hacked so
frequently and they’re shared between too many users.

2. Node.js
Let’s talk about Node.js. Node.js is basically Javascript (JS) on steroids. JS is one of the
languages that your web browser already understands, so some intelligent people
decided that it’d be a nice idea to be able to run the same language on the backend as well.
So, a single person who knows JS can now also write the server-side logic. Node has its
own concepts, dependency management (NPM) to understand before you can start
writing code. And JS is one of the most fragmented ecosystems out there. There is
ES20xx syntax, there’s module loaders, there’s packers, minifiers and even compilers
that will compile to JS from another language.

Either way, JS’s syntax is closest to PHP in the server-side world in my opinion. And
until recently, JS hasn’t had proper OO support like other languages.

JS is also one of the most polarized languages. People either love it or hate it. My
personal opinion? I really hate it. I don’t like the syntax, I don’t like the concepts. I hate it
passionately. It’s in the bottom of my list. The thing I hate about JS is the concept of
callbacks. This leads to a lot of nested code otherwise known as callback hell.
Understandably, bad code leads to callback hell, but it’s also difficult to write good code
in JS.

For example, the distinction between == and === in the context of comparisons have
different meanings (it’s also one of the most commonly asked interview questions) and
even, many experienced programmers make this mistake.

https://blog.creativefoundry.ai/my-journey-of-writing-an-e-commerce-engine-from-scratch-part-2-dc9faba5bfd 6/23
22/10/2024, 13:47 How to pick a programming language/framework | by Neya | Creative Foundry

Sample JS code:

https://blog.creativefoundry.ai/my-journey-of-writing-an-e-commerce-engine-from-scratch-part-2-dc9faba5bfd 7/23
22/10/2024, 13:47 How to pick a programming language/framework | by Neya | Creative Foundry

When should you use Node.js?


If you’re keen on learning only one language and/or are already comfortable coding in JS
and want to try out JS for server-side as well, Node.js is a good choice. Some of the
frameworks you can try — Express.js, Meteor.js, Sails.js.

3. Scala
Scala is easily one of my most favorite functional programming languages. If I hadn’t
chosen the language I’m working with now, I would have definitely switched to Scala.

For starters, it’s a functional programming language, which requires you to have a
different mindset altogether. In functional programming languages, you think in terms
of functions. Having said that, Scala also allows you to program like you would in any

https://blog.creativefoundry.ai/my-journey-of-writing-an-e-commerce-engine-from-scratch-part-2-dc9faba5bfd 8/23
22/10/2024, 13:47 How to pick a programming language/framework | by Neya | Creative Foundry

other regular language. That’s why I love Scala. Also, the man behind Scala is a very
smart man, Martin Odersky.

But, for beginners, I don’t recommend Scala. It’s not only easy to shoot yourself in the
foot, it’s also a little difficult to understand code by others, say on Github, if you’re
coming from a background like say, PHP. And, in general, the last good Scala book I read
was about 800 pages. This isn’t necessarily a bad thing — It means the language has a lot
of features and perhaps, too powerful. I wrote my own web framework on Scala to learn
the language deep. While I enjoyed most of it, I wished it was a little simpler for what I
was trying to do.

The other nice thing about Scala is that it runs on top of JVM (Java Virtual Machine).
Java is one of the most popular enterprise languages out there and due to its age and
popularity, there are a lot of libraries out there for even the most complex use-cases you
can imagine of. So, the nice thing about Scala is that since it’s on top of JVM, you can
actually use native Java libraries within your applications and that’s really powerful.
Sample Scala code:

https://blog.creativefoundry.ai/my-journey-of-writing-an-e-commerce-engine-from-scratch-part-2-dc9faba5bfd 9/23
22/10/2024, 13:47 How to pick a programming language/framework | by Neya | Creative Foundry

When should you use Scala?


You really want to master a powerful functional programming language. OR, you’re an
academic researcher. Scala has a lot of frameworks for you to play with (pun intended)
and of course, my favorite of them is Play! framework which is closest to Ruby land’s
Rails.

4. GoLang
Go programming language is a systems language that’s heavily used within Google.
YouTube runs on Go and so do many other services within Google’s infrastructure. My
experience in writing code with Go was very positive indeed. Having said that, at the
time of my experimentation with Go, there wasn’t a proper equivalent to Rails from
Ruby land. Hence, I eventually let go of it. Go is very simple, yet powerful and it can do a
lot. My take away at the time was if you’re a small sized development team, it’s better to
https://blog.creativefoundry.ai/my-journey-of-writing-an-e-commerce-engine-from-scratch-part-2-dc9faba5bfd 10/23
22/10/2024, 13:47 How to pick a programming language/framework | by Neya | Creative Foundry

go with something like Python or Ruby that not only has a larger community, but also
has lots of frameworks and tools that can help you develop software faster.
Sample GoLang code

When should you use Go?


Go has a very fast compile time and can compile to almost all the platforms out there. If
that’s one of your requirements, you could ‘Go’ with it. Go is also statically compiled, if
that’s also your cup of tea, you couldn’t go wrong with it. My favorite framework within
Go is the excellent Gorilla framework. You can build on top of it confidently and I
enjoyed the process.

4. Ruby and Python

https://blog.creativefoundry.ai/my-journey-of-writing-an-e-commerce-engine-from-scratch-part-2-dc9faba5bfd 11/23
22/10/2024, 13:47 How to pick a programming language/framework | by Neya | Creative Foundry

I’ve combined both Ruby and Python together because they’re very similar in many
aspects. They both are fun to code with, they have a large community, both of them have
mature frameworks for web development. Two of my favorite Python frameworks are
Flask and Django.

As for Ruby, we have the king of web development, Rails. I’ve been a web developer for
close to a decade now and I can tell you, if there’s a framework that’s almost 100% perfect,
Rails would be it. It gives you everything you need, out of the box and it even accounts
for frontend development, providing you with (opinionated) workflows and pipelines.

Although Ruby and Python are very similar syntactically, their philosophies are
different. Ruby is a language designed for humans. It was designed by a Japanese
engineer, Matsumoto, a.k.a Matz. Ruby is designed with the principle of least surprise in
mind. I love that philosophy.

However, Python is a different language. It’s a language that puts computers first. To me,
(my opinion) it’s not human friendly. You should read the rails doctrine that explains the
differences in philosophies better than me.

And there are a lot of things I don’t like in Python. Python is fragmented — Python 2
and Python 3. Some stuff that works with 2 won’t work in 3 and vice-versa. Having said
that, Python is still king when it comes to Data Science or anything in general to do with
Data Analysis and similar, which isn’t exactly Ruby’s strength.

Since our project isn’t going to involve that, we don’t need to worry about Python for
now.

But, I’m also not going with Ruby. I’ve been a Ruby developer for long enough to hit the
limits of the language and I needed to satisfy the itch to want something more than Ruby.
Sample Ruby code

https://blog.creativefoundry.ai/my-journey-of-writing-an-e-commerce-engine-from-scratch-part-2-dc9faba5bfd 12/23
22/10/2024, 13:47 How to pick a programming language/framework | by Neya | Creative Foundry

Sample Python code

https://blog.creativefoundry.ai/my-journey-of-writing-an-e-commerce-engine-from-scratch-part-2-dc9faba5bfd 13/23
22/10/2024, 13:47 How to pick a programming language/framework | by Neya | Creative Foundry

5. Elixir
Elixir a new language compared to the rest. It’s written on top of Erlang. Erlang is the
one that powers most of telecommunications around the world. What that means is that
it’s a language built (by Sony Ericsson) with reliability in mind. But, Erlang was still too
complex for new comers to pick it up. And so, one of the contributors of Ruby, José
Valim, decided to design his own language that shares many similarities with Ruby, based
on the Erlang VM. And so, Elixir was born.

What I really like about Elixir is it forces you to think in a new way of writing code,
because it’s functional. And also, you get to find bugs in your code during compile time,
so that there are no nasty surprises. I love Elixir a lot and have switched to it for most of

https://blog.creativefoundry.ai/my-journey-of-writing-an-e-commerce-engine-from-scratch-part-2-dc9faba5bfd 14/23
22/10/2024, 13:47 How to pick a programming language/framework | by Neya | Creative Foundry

my projects since early last year. In addition, my experience with Elixir has led me to
more readable, maintainable code, even more so than Ruby.

Being similar with Ruby and sharing many of its philosophies is a huge plus as well.
Elixir’s Rails equivalent is Phoenix and I think it’s the next best alternative one can really
go with at the time of this writing. It’s not 100% rails yet, but it doesn’t have to be. In
fact, Phoenix is a lot more simpler than Rails in many aspects, and it’s this simplicity that
makes it more attractive.

So, for my E-Commerce project, I went with Phoenix.


Sample Elixir code

Closing thoughts
https://blog.creativefoundry.ai/my-journey-of-writing-an-e-commerce-engine-from-scratch-part-2-dc9faba5bfd 15/23
22/10/2024, 13:47 How to pick a programming language/framework | by Neya | Creative Foundry

So, having discussed all the pros and cons, and my thought process around, I hope you
found this post useful. My key piece of advice is choose a language you like, not because
someone told you it’s better, performant, etc. If you already know a programming
language, it’s best to go with it. Unless you decide to start a project with a new
programming language (like I’m doing for this project), rather just go with something
you already know well than learn a new one simply because you think the new one is
“better”.

In the next part, I will get into how to setup a new Phoenix project, the things I did
differently and what I learned from them.

See you next week!

Cheers,

Neya

Programming Elixir Learning To Code Software Development

Mvc Frameworks

Follow

Written by Neya
90 Followers · Editor for Creative Foundry

Director/AI. Digital Nomad. Fashion Designer. DJ.

More from Neya and Creative Foundry

https://blog.creativefoundry.ai/my-journey-of-writing-an-e-commerce-engine-from-scratch-part-2-dc9faba5bfd 16/23
22/10/2024, 13:47 How to pick a programming language/framework | by Neya | Creative Foundry

Neya in Creative Foundry

What I learned as an artist writing my own blog engine — for 10+ years,
straight.
Or..why you shouldn’t use Wordpress and why you should write one too.

Apr 8 19 1

Neya in Creative Foundry

A gentle Introduction to Elixir + Phoenix — Part 4


This is the 4th part in the series of my journey of writing an E-Commerce software from scratch.
So much has changed since I started…

https://blog.creativefoundry.ai/my-journey-of-writing-an-e-commerce-engine-from-scratch-part-2-dc9faba5bfd 17/23
22/10/2024, 13:47 How to pick a programming language/framework | by Neya | Creative Foundry

May 25 52 1

Neya in Creative Foundry

In pursuit of a lost childhood — A DIY story of my bookshelf speakers + Hi-


Fi music system
Many years ago, in the late 90’s, when I was a child, there was a specific music system by a
popular audio manufacturer named “Aiwa”. A…

Jan 6, 2019 184 2

https://blog.creativefoundry.ai/my-journey-of-writing-an-e-commerce-engine-from-scratch-part-2-dc9faba5bfd 18/23
22/10/2024, 13:47 How to pick a programming language/framework | by Neya | Creative Foundry

Neya in Creative Foundry

My journey of writing an E-Commerce engine from scratch


What does it take to write a powerful E-Commerce engine similar to the ones powering all the
bad boys like Amazon, Shopify, Ali Baba…

May 22, 2018 109

See all from Neya

See all from Creative Foundry

Recommended from Medium

Neya in Creative Foundry

A gentle Introduction to Elixir + Phoenix — Part 4


This is the 4th part in the series of my journey of writing an E-Commerce software from scratch.
So much has changed since I started…

https://blog.creativefoundry.ai/my-journey-of-writing-an-e-commerce-engine-from-scratch-part-2-dc9faba5bfd 19/23
22/10/2024, 13:47 How to pick a programming language/framework | by Neya | Creative Foundry

May 25 52 1

Desiree Peralta in Publishous

OnlyFans is Finally Dead


And I’m happy about it.

Oct 8 15.5K 294

Lists

General Coding Knowledge


20 stories · 1663 saves

Coding & Development


11 stories · 858 saves

Stories to Help You Grow as a Software Developer


19 stories · 1436 saves

Leadership
61 stories · 467 saves

https://blog.creativefoundry.ai/my-journey-of-writing-an-e-commerce-engine-from-scratch-part-2-dc9faba5bfd 20/23
22/10/2024, 13:47 How to pick a programming language/framework | by Neya | Creative Foundry

Abhilash Krishnan

Go, Elixir and Rust Comparison


A comparison of Go, Elixir, and Rust in the context of building fast, scalable, highly available,
reliable, and resilient systems:

Jun 3 57

Rails to Rescue

Ruby on Rails 8: Big Changes, Big Benefits!


Photo by Joshua Fuller on Unsplash

https://blog.creativefoundry.ai/my-journey-of-writing-an-e-commerce-engine-from-scratch-part-2-dc9faba5bfd 21/23
22/10/2024, 13:47 How to pick a programming language/framework | by Neya | Creative Foundry

Sep 28 96 1

Lakhveer Singh Rajput in CodeX

Top 10 Trickiest Programming Questions for Experienced Developers 🚀


As you grow as a developer, you’re bound to face more complex coding challenges that test
your problem-solving skills. These tricky…

Sep 27 10

Ryan Deschamps

Actor-Model Systems in Rust with Abstraction!


https://blog.creativefoundry.ai/my-journey-of-writing-an-e-commerce-engine-from-scratch-part-2-dc9faba5bfd 22/23
22/10/2024, 13:47 How to pick a programming language/framework | by Neya | Creative Foundry

I am an educator first and foremost. Since they say “those who cannot do, teach” I sometimes
like to buck that trend and just do. Throw…

Sep 4 40

See more recommendations

https://blog.creativefoundry.ai/my-journey-of-writing-an-e-commerce-engine-from-scratch-part-2-dc9faba5bfd 23/23

You might also like