What Programming Language Should I Learn to Create Web Apps / Sites / SaaS Software?

Apex

To the top
Joined
Jul 8, 2017
Messages
100
Likes
71
Degree
0
I want to learn a programming language that allows me to create web apps and web pages of the SAAS type. Mainly, I would like it to be an easy language to learn and that allows me to do things in the short term.

After several hours of searching, I've reduced my options to Ruby and Python, which look like good languages and the frameworks Rails and Django also seem very good. What do you think is the best option?
 
@Apex, Python is older. They're both easy to read and type, with Ruby trying to kick that up a notch. When I tried to learn Ruby I kept getting disappointed by it's inability to do certain things (like create a self-packaged app) and how little documentation there was out, including finding answers on Stack Exchange and all that. Python seems to have a much larger base of users at this point with much more help already available.

That may have changed in the 7+ years or whatever it's been since I messed with Ruby. It was pretty hipsterish and new at that point.

There's a lot of Javascript options out there these days. @turbin3 talks about them, like ReactJS and other frameworks.

There's still PHP too.
 
What do you think is the best option?

Years ago, I would have told you to learn Ruby/Rails. The documentation for Rails was massive and you could pretty much do just about anything you needed to do on the back-end with it. Ruby as a language is very straightforward and beautiful to work with. I made a living using Ruby/Rails for Web Apps and C# for desktop apps for about a decade. The main problem with Ruby is it's a slow language in comparison to just about any other scripting language out there. There have been recent improvements that are going to change this dramatically but currently Ruby/Rails just doesn't do well in the performance/scaling dept which can cause you to have to solve a lot of the problems with better hardware to make up for the lack of performance of the lang itself.

Since you've limited your choices to two, to answer your question my choice would be to go with Python and Django. You really can't go wrong with that combo. You'll also need to learn JavaScript because that's unavoidable for web apps.

For me personally, I love the Elixir language (https://elixir-lang.org/) and Phoenix Framework (http://phoenixframework.org/). I've made quite a few small apps for clients in just the past 2 years and I have nothing but good things to say about the performance and fault tolerance. It's a different breed and in a class of it's own, handles multiple processor cores by default and scales with almost zero effort. I would like to give thanks to the alien lizard people that created it because it's making me money and a very happy dev.

At the end of the day, don't limit yourself to one language. Learn to program, not to "program in Language X", you'll be happier :smile:
 
What do you think is the best option?

I'm curious. Are there specific factors that made those seem the most attractive for something you're looking to achieve? The exact languages and frameworks are less important in most cases. You can build things and make money with just about any language. It's usually most effective matching those choices based on fundamental needs and constraints.

I have almost no experience with Ruby (save for SASS usage) or Rails, so I can't really comment on those.

Python > Django
For me, I use Python frequently for web-scraping purposes, processing files and manipulating data. So, in my case, Django has made a lot of sense to use on the backend. It has its cool value props, but it has plenty of downsides as well.

For example, the standard template/view system is getting a bit antiquated these days, with sites needing much heavier JS framework usage on the front-end. These days, the front-end is just as complicated as the back-end. For an MVP, though, Django can still work well. Sometimes just being able to quickly add custom functionality is well worth it.

Also, Python has its own weirdness, just like any other language. For example, forced whitespace. Also, managing Python versions (learn to love the virtualenv!). I've still found, if you use simple logic with Python, and don't try to get too creative, it can be easy to learn and reason about.

PHP > Wordpress
For those that use PHP as their go-to solution, Wordpress is the natural choice. People hate on Wordpress all day long. I'm usually one of them, though I still use it for a few sites.

Whenever the subject of WP comes up, I've started making an effort to remember a specific question about marketing.
What's the ROI?
For some, the ROI of Wordpress is barely worth their $5/mth shared hosting cost. Maybe a static site might be better for them.

For The Wirecutter, the ROI of Wordpress was $30M.

If a WP site can sell for thirty million dollars, the tech ain't exactly the limiting factor. :wink:

If speed to market is a critical factor, and you don't have any highly custom needs, I'd still have to say WP is one of the most effective options.

Narrowing Down Fundamental Needs
Based on what you said, these seem to be a few of the fundamental needs you've mentioned:
  • Easy to learn
  • Productive to use
Other questions I'd ask are:
  • Would you be using these skills for anything else?
  • Think you'll freelance in the future?
  • Think you'll look for jobs with those programming skills?
Knowing those things will help make your choices easier. For example, say you'll definitely look to find a full time job programming in the language/framework of your choice. You'll find far more opportunities with PHP and Wordpress than just about anything else.

Even if not Wordpress, PHP has a bunch of other great opportunities for work. Laravel has become the framework to use in that world. Also, there a number of other CMS', both flat file or database-driven, built with PHP (Grav, Pyro, October).

There's still plenty of opportunities for Ruby and Rails, though it's popularity has been declining considerably.

Python and Django seem to have picked up in popularity over the past couple years at least. Still, the opportunities for finding work with Django are a fraction of the percentage of Wordpress.
 
There's a lot of Javascript options out there these days. @turbin3 talks about them, like ReactJS and other frameworks.

Javascript is also an option that I've thought about, but I've read that the available frameworks are mostly quite young, although I don't think it's a very negative factor either.

At the end of the day, don't limit yourself to one language. Learn to program, not to "program in Language X", you'll be happier :smile:

I don't want to limit myself to one language, but I've to start somewhere, and I would like to do it on the right foot :D

I'm curious. Are there specific factors that made those seem the most attractive for something you're looking to achieve?

From what I've read, they're easy to learn languages, they are not complicated to read, they've enough frameworks and they're also options that are not new or fruit of the "hype".

Other questions I'd ask are:
  • Would you be using these skills for anything else?
  • Think you'll freelance in the future?
  • Think you'll look for jobs with those programming skills?

  • The only thing that interests me now is everything related to web apps. I don't need to program desktop applications, for example.
  • For now it's not in my plans.
  • For now it is not in my plans.
 
I want to learn a programming language that allows me to create web apps and web pages of the SAAS type. Mainly, I would like it to be an easy language to learn and that allows me to do things in the short term.

After several hours of searching, I've reduced my options to Ruby and Python, which look like good languages and the frameworks Rails and Django also seem very good. What do you think is the best option?

I've been doing web development professionally for several years now, and I've touched most of the languages out there. I've worked on many projects in PHP, Python, Javascript, and Go.

The first thing you need to know is, there is a lot to learn no matter what way you go, and all languages have up and down sides. That being said, every language mention can get the job done one way or the other.

In terms of ease of use PHP or Python would be great picks. Both have large communities of developers and any question you could think of asking has an answer. If I had to give an edge to someone starting out it would have to be PHP, because frankly it's just easier to get out and get deployed when you first get started. There are a lot of cheap PHP hosts where you can just throw stuff and and go. Python isn't harder to deploy once you know what you are doing, but there aren't many hosts that just have Python environments set up ready to go. If you use something like Docker the point is moot.

If you are dead set on Ruby or Python, then I'd say Python. Django and Flask are both great frameworks that can get a lot of stuff done. If you ever got interested in doing things like machine learning then there is lots of Python stuff around that too. Python is used for all kinds of stuff so it strikes me and the more broad language.
 
Go with what you know.
Failing that, go with what's popular and well documented.

Given your situation I would go with laravel (PHP). The framework is comprehensive, very popular, has great documentation and tutorials (look at the free ones on laracasts**), and despite some valid bad points, PHP is a decent language for web stuff. Since v7 it's also pretty fast as far as scripting languages go. The laravel framework promotes producer worker queues for long running tasks, which fits well with many SAAS designs, and should you need to do a bunch of heavy tasks that PHP can't handle fast enough, it's pretty simple to rewrite you workers in something blazing fast like golang.

**This site alone could sway the argument if you are a complete beginner. Even if you don't want to use laravel, give it a look. Very well done tutorials, all the beginner ones are free.
 
Last edited:
I'm not at a level of being able to make advanced web apps in any language, but I can write tools for myself and set up basic web apps in say Django.

From that perspective, as a recent noob who learned without compsci training, I'd give a plus to Python and PHP.

The plus with Python is the pletora of excellent beginner tutorials which, along with a minimalistic and 'pretty' syntax, makes it easy to grasp coding basics like loops and objects. One thing lacking imo with Python is the intermediate practical examples. There's a lot of basic stuff and then a lot of advanced compsci lingo advanced stuff. Not so much in between. What I mean is, there isn't that many tutorials or inspiration for making practical small web apps. It's like you go from handholding in beginning to hardcore technical lingo and implied knowledge from experts. That was my experience. I also honestly found much of the MVC object stuff in Django to be overkill for simple webapps of the type I am talking about. Flask can get around some of this for sure.

Compared to PHP which reallt has a lot of simplish practical web app stuff which is relevant to us as online marketers. If you want to make some practical tool for linkbait or calculators etc for example, then you will probably find it quicker and easier with PHP. I'd also say that to me, there's really no need to reinvent the wheel if you're not in the wheel business or car business. If you're in the transportation business, maybe it's better to invent an app like Uber, instead of building a car which can track customer orders, if you get the analogy. I find PHP and Wordpress to deliver a lot here with all of the building blocks, not only ready (like Django), but already assembled. With custom posts, I can do pretty much everything I want contentwise, no need to build from the ground up.

If I look at my objectives, it's content delivery plus extra functionality like faceted search, calculators, quizzes, maybe some kind of community. All this you can do with both plugins or php/jquery in Wordpress with little trouble. Particularly if you get a simple css/jquery theme that won't give you lots of conflicts.

I am sort of stuck in the "advanced beginner" stage and that's fine for now. I use coding to make tools and save lots of money there and to add some extra functionality to Wordpress sites. For those two purposes, Python and PHP serves me perfectly. I can't comment on actual software development or customer targeted apps.
 
Back