New alternatives for mainstream server-side programming

Aug 30, 2018 by Cristian

According to w3techs.com, in August 2018 the usage of server-side programming languages for websites was dominated by PHP with 83.5%, followed by ASP.NET with 13.1% and Java with 2.2%. The same statistics show that PHP kept growing for the past 3 years, while ASP.NET and Java had a downsizing trend.

However, over the past decade new technologies have emerged, such as Ruby & the Ruby on Rails framework and Node.js, and although their popularity is still moderate, their ascend seems promising. Ruby is used by 0.6% of websites, while Node.js powers 0.3% of them. So let's see what these technologies have to offer to a web developer. We'll also look at three more up and coming programming languages, namely Go, Scala, and Rust.

 

Ruby & Ruby on Rails

Ruby was released in 1995 by the Japanese Yukihiro "Matz" Matsumoto as a general-purpose programming language. It was designed to support more than one programming paradigm, including object-oriented, functional and imperative. The vision of Matsumoto was to create a programming language that would make the experience of writing code enjoyable (many agree that he achieved his goal), while also increasing developers’ productivity. Thanks to it being closer to a naturally spoken language, Ruby quickly became the first language of choice for many beginner developers.

Ruby on Rails appeared in 2005 as an open-source full-stack web application framework, which boosted Ruby's popularity, and since then it has been used by companies such as Twitter, Amazon, Airbnb, Cisco, and EA. Developed by David Heinemeier Hansson, Ruby on Rails employs useful software engineering patterns: convention over configuration, active record pattern, model-view-controller, and don’t repeat yourself.

Some of the advantages of Ruby on Rails are:

  • higher development speed (thanks to a modular design);
  • multi-platform support;
  • changes are easier to be performed after the website is launched.

My opinion is that web developers will find writing code in Ruby as “precious” as a gem :)

 

Node.js

Node.js was created by Ryan Dahl, and resulted from his desire to have a programming language that can create websites with push capabilities (the publisher initiates the request for a given transaction). Node.js is written in JavaScript and C++, which means that web developers who are familiar with JavaScript will find themselves at home.

It has a vibrant open-source community that constantly produces new modules that add increased capabilities to Node.js applications. This is also fueled by the fact that you only need to know the JavaScript language to produce front-end as well as back-end code.

Some of the great advantages of Node.js are:

  • performance - it does not create a thread for each incoming connection, but instead will allocate a small heap of memory;
  • the fact that it is event-oriented;
  • it has a single-threaded non-blocking approach for requests.

Node.js should not be seen as a new platform which is here to replace other platforms, but rather as a platform that fills some particular needs, especially one that solves the I/O scaling problems, and it is best used in server-side web applications, chat applications, queued inputs, and data streaming.

Node.js is used by companies such as LinkedIn, Microsoft, Yahoo!, and Walmart. Microsoft also integrated a Node.js tool into its Visual Studio IDE, recognizing the place that Node.js has amongst web developers.

 

Go

Go (also known as Golang) is a programming language designed by Robert Griesemer, Rob Pike, and Ken Thompson at Google. It is a statically typed, compiled language, with garbage collection, memory safety, concurrency, and structural typing. Its source code is free and open source – anybody can contribute to the language by making proposals for new features and fixing bugs.

The primary reason for designing Golang was to solve software engineering issues at Google. Its authors also mention that Go was actually developed as an alternative to C++. Being a systems programming language, Go is best used for things such as distributed systems (due to concurrency support), microservices, and cloud systems (web servers, caches).

Some of the advantages of the Go language are:

  • simplified C-like syntax that is easy to read and write;
  • goroutines – a lightweight thread managed by the Go runtime;
  • it compiles quickly, thanks to regular grammar and supporting modules properly.

Go is used by Google for many projects, as well as by other companies such as Netflix, Twitch.tv, Uber, and Dropbox.

 

Scala

Scala is a general-purpose programming language designed by Martin Odersky and released publicly in early 2004. An object-oriented programming language, Scala also provides support for functional programming and is designed to be concise. 

Many of Odersky’s design decisions aimed to address various criticisms of Java. Scala is designed to express common programming patterns in a concise, elegant, and type-safe way. It has a flexible syntax and type system that enable the construction of advanced libraries and new domain specific languages.

Some of the advantages of Scala are:

  • immutable values that make it perfect for working with concurrency;
  • type inference, which allows developers to focus on the code itself, rather than on updating type annotations;
  • solid parallelism and concurrency mechanisms.

Scala is used by companies such as Twitter, Foursquare, Coursera, SoundCloud, and Duolingo. Some notable online news publications also use Scala: The Guardian, The New York Times, and The Huffington Post.

 

Rust

Rust was originally designed by Graydon Hoare and first appeared in 2010, while the first stable version was released in 2015. Sponsored by Mozilla, it boasts a feature set that has an emphasis on safety, control of memory layout, and concurrency. Its syntax is similar to C and C++, with blocks of code delimited by curly brackets.

Some of the advantages of Rust are:

  • catching errors during compile time (since it’s statically typed);
  • built-in support for concurrency;
  • the fact that it compiles to machine code, allowing for extra efficiency.

In regards to web development, there are many approaches to creating web apps in Rust: you can compile Rust code to client-side JavaScript, or write a RESTful API, or even build an isomorphic web app.

Although it has a difficult syntax and a steep learning curve, Rust has been ranked as the most liked language by developers for three years running in StackOverflow surveys.

 

In many areas of software programming, new technologies are replacing the outdated ones, but in web development this is not the case, because new technologies are providing new ways for solving various issues. Web developers should not be overwhelmed by the number of programming languages and frameworks available out there, but instead they should choose the proper technology depending on their needs.


Tags: Go  Node.js  Ruby  Ruby on Rails  Rust  Scala 


Comments


packers and movers commented on 11/20/2019 11:55:58 AM

What a really awesome post this is. Truly, one of the best posts I've ever witnessed to see in my whole life. Wow, just keep it up.
     

How to buy more followers on Instagram commented on 11/20/2019 1:19:55 PM

I want you to thank for your time of this wonderful read!!! I definately enjoy every little bit of it and I have you bookmarked to check out new stuff of your blog a must read blog!
     

love co review commented on 11/21/2019 10:18:01 AM

I have read your article; it is very informative and helpful for me. I admire the valuable information you offer in your articles. Thanks for posting it.
     

ent specialist singapore commented on 11/27/2019 11:23:45 AM

I think this is an informative post and it is very useful and knowledgeable. therefore, I would like to thank you for the efforts you have made in writing this article. <a href="https://thegirl.co/sg/body/ent-specialist/">ent specialist singapore</a>
     

mails-guide commented on 11/27/2019 3:10:15 PM

Wow! Such an amazing and helpful post this is. I really really love it. It's so good and so awesome. I am just amazed. I hope that you continue to do your work like this in the future also.
     

investments commented on 11/29/2019 10:53:04 AM

They're produced by the very best degree developers who will be distinguished for your polo dress creating. You'll find polo Ron Lauren inside exclusive array which include particular classes for men, women.
     

Industrial Pollution Equipment Advisor commented on 11/30/2019 10:53:10 AM

Just pure brilliance from you here. I have never expected something less than this from you and you have not disappointed me at all. I suppose you will keep the quality work going on.
     

sportstoto commented on 11/30/2019 12:31:11 PM

Admiring the time and effort you put into your blog and detailed information you offer!..
     

best online product commented on 12/2/2019 10:42:40 AM

I have read all the comments and suggestions posted by the visitors for this article are very fine,We will wait for your next article so only.Thanks!
     

Ubezpieczenia Kalisz commented on 12/2/2019 10:54:23 AM

I see the greatest contents on your blog and I extremely love reading them.
     

Voyance Amour Eternel commented on 12/2/2019 11:11:35 AM

It is extremely nice to see the greatest details presented in an easy and understanding manner.
     

voyance au telephone commented on 12/4/2019 10:42:51 AM

I want to say thanks to you. I have bookmark your site for future updates.
     

physiotherapy in sharjah commented on 12/4/2019 10:45:48 AM

I read your post and I found it amazing! thank!
     

Custom Closets in Dubai commented on 12/4/2019 2:10:25 PM

Excellent effort to make this blog more wonderful and attractive
     

Study Loan Singapore commented on 12/5/2019 1:07:51 PM

Thanks for the informative and helpful post, obviously in your blog everything is good..
     

Pagesoutlook domain list commented on 12/7/2019 11:17:21 AM

I have been searching to find a comfort or effective procedure to complete this process and I think this is the most suitable way to do it effectively.
     

silbernes armband damen commented on 12/7/2019 2:05:13 PM

Thanks for the informative and helpful post, obviously in your blog everything is good..
     

Aged Care Flooring Brisbane commented on 12/7/2019 2:18:39 PM

Cool stuff you have and you keep overhaul every one of us
     

Cisco Exam Dumps commented on 12/8/2019 1:56:26 PM

Excellent effort to make this blog more wonderful and attractive
     

outsource photo editing services commented on 12/8/2019 2:29:56 PM

You completely match our expectation and the variety of our information.
     

calidad de trabajo commented on 12/9/2019 12:44:49 PM

Creo que nunca antes había visto esos blogs que tengan cosas completas con todos los detalles que quiero. Así que amablemente actualice esto para nosotros.
     

Zonnepanelen commented on 12/9/2019 6:16:45 PM

Great Information sharing .. I am very happy to read this article .. thanks for giving us go through info.Fantastic nice. I appreciate this post.
     

Zonnepanelen installateur commented on 12/9/2019 6:27:31 PM

Your music is amazing. You have some very talented artists. I wish you the best of success.
     

Chapewerken commented on 12/10/2019 1:57:17 PM

Superbly written article, if only all bloggers offered the same content as you, the internet would be a far better place..
     

Airco installatie commented on 12/10/2019 2:09:02 PM

I think it could be more general if you get a football sports activity
     

Your Comment:






Blog Home   SBP Home
RSS Feed       Contact




Archives




 Blog Archives  |  Terms of Use  |  Privacy Policy
© 2019 SBP Romania. All rights reserved.