pctechguide.com

  • Home
  • Guides
  • Tutorials
  • Articles
  • Reviews
  • Glossary
  • Contact

Guide to Learning Ruby in 2019

Ruby is currently one of the 10 most popular programming languages on the market. It is used in an estimated 2.7% of all websites, although this figure is growing year by year.

First of all, I want to clarify that the reason for this article is not to convince you that Ruby is a better language than others. The purpose is to illustrate some characteristics that might interest you if you want to learn the Ruby language.

Ruby is a language I work with every day, but I don’t consider myself an expert. I know some things I found interesting to share, if some Ruby expert wants to correct some of the code I write here, I would appreciate it. If you want to add things, that would be great too.

Ruby is a language that focuses more on the developer than the machine. This means two things:

  • The syntax is very friendly and reads almost like natural language.
  • The performance is not the same as in lower level languages.

This does not mean that Ruby is a poor performance language, since it is used in applications (especially web) that handle many requests per second (like Basecamp). But there is a difference between the execution time of Ruby and other languages such as C++, JAVA and not to mention C.

Ruby is very popular in web applications because there is Ruby on Rails a very popular framework to make web applications that one day used or continue to use sites like Twitter, Github, Airnbn and SoundCloud. Rails is the most popular web framework in the Ruby community, although there are also others like Sinatra. In Ruby you can also create desktop applications, as it is multi-platform, plus you can write mobile applications for different platforms with RubyMotion.

After a little introduction to the language, let’s talk code about Ruby.

EVERYTHING IS AN OBJECT (ALMOST)

Ruby is an object-oriented language, such as JAVA, C++, Python, etc. With the characteristic that Ruby takes very seriously its role on being object-oriented. In Ruby, for example, there are no primitives, like int, everything is an object, even operators like +, < are objects.

What is not an object in Ruby? Blocks, although they can be (what!), flow controls like if else while and some others, are not objects either, {and } they are not objects either.

Is this interesting? Personally it is, for example you can execute methods on what in other languages would be primitive, something like converting a number to string:

In Ruby

number = 1

number.to_s

In JAVA(for example)

int number = 1;

Integer.toString(number);

YOU CAN ABOUT WRITING THE LANGUAGE.

This is interesting, although in the real productive world I don’t know how much it is used, but here it goes. Imagine that for some strange reason you want to over write the method that converts integers to strings, you could do something like that:

class Fixnum

  def to_s

    self + 1

  end

end

1.      to_s # Returns 2 instead of “1”

If you used this syntax, you have overwritten a method of a language class to make it work the way you want. In this case, instead of converting the value to string, it adds a 1 😛

Note, this only applies to the execution of your program, so don’t be afraid to ruin your interpreter.

THE SYMBOLS

This section was added at the recommendation of @IvanChukitow on Twitter, so stop by and thank him for giving his feedback during my Twitter conversation with him!

In Ruby we have symbols, they are written like this :symbol_name and they are, chains not mutable, that is to say that the differences with a String are that they cannot change their value, unlike strings, which can.

Symbols are a very particular feature of Ruby and I don’t know if they are used in other languages as such. What are they for? In the first place they are used when you are declaring a string that is not going to change, in the second place they have a much higher performance than a normal String by… let’s see some code before we explain why:

:hello_wordo.object_id == :hello_wordo.object_id #True

“hello world”.object_id == “hello world”.object_id # False

Let’s analyze the code we just wrote. First of all, we are not comparing the strings as such, because in that case “hello world” == “hello_world” is true. We are instead comparing the object ID, an ID that Ruby uses to identify the object in memory.

Why does one give true and the other false? Because when Ruby sees 2 identical symbols he doesn’t create another object, if he didn’t refer to the one already created, while in chains, Ruby doesn’t know if 2 chains “say the same thing” so he keeps creating more objects in memory per string we create.

This translates into better language performance, basically executions with strings are slower than with symbols.

Share this:

  • Click to share on Twitter (Opens in new window)
  • Click to share on Facebook (Opens in new window)

Related

Filed Under: Articles

Latest Articles

V92 Technology

Announced in 2000, the ITU's V.92 analogue modem standard has the same download speed as the V.90 standard (56 Kbit/s) but increases the maximum upload speed from 33.6 Kbit/s to 48 Kbit/s. As well as this performance improvement - referred to as PCM … [Read More...]

CD-ROM Burn Proof Technology

Buffer underrun is one of the biggest problems encountered in CD recording. This can happen when attempting to burn a CD whilst performing other tasks, or when recording from a slow source to a fast target. Once the burning process starts, it is essential that the data to be recorded is available … [Read More...]

AMD Mobile K6 CPU Technology Guide

Just as the desktop version of its K6-2 processor with 3DNow! technology stole a march on Intel by reaching the market well before its Pentium III was able to offer similar 3D capability via its Katmai New Instructions, AMD's Mobile K6-2 … [Read More...]

The Impact of Modern Technology on Relationships

Technology has changed dating in tremendous ways. It has gradually become more immersed in the modern quest for intimacy. In 1995, only 2% of … [Read More...]

Benefits of Instagram as a Powerful Marketing Tool for B2B Brands

The ever-growing popularity of the social networking app Instagram makes it a popular channel for businesses to launch their services, advertising, … [Read More...]

6 Simple Ways to Improve Security of Windows Computers

Millions of Windows PC users experience some form of cybercrime every year. According to one study, there were 2,953 reported cyberattacks between … [Read More...]

2021 PC Hardware Releases to Bolster Your Gaming

If you are a PC gamer, then chances are you are looking to upgrade your kit over the coming year. However, a lot of money can go into building the … [Read More...]

New Transfer Feature in Dropbox Enable Sharing files with Third Parties

Dropbox has been a popular P2P sharing platform for many years. They don't announce new features as often as other applications, since they have a … [Read More...]

Ransomware Operators Find Data Theft Profitable

How valuable is your data? That’s not a question that organizations or individuals have to ask themselves all that often. You might know the market … [Read More...]

Guides

  • Computer Communications
  • Mobile Computing
  • PC Components
  • PC Data Storage
  • PC Input-Output
  • PC Multimedia
  • Processors (CPUs)

Recent Posts

Creating Colour in LCD Displays

In order to create the shades required for a full-colour display, there have to be some intermediate levels of brightness between all-light and … [Read More...]

RAID tutorial – maintaining the RAID array

Since the context of this tutorial is a new system build, the configuration of of the RAID array was performed via the RAID Controller's BIOS Setup … [Read More...]

Tape Storage Mammoth

Exabyte has been a leader in the tape storage industry for more than a decade, pioneering the use of 8mm tape for … [Read More...]

[footer_backtotop]

Copyright © 2021 About | Privacy | Contact Information | Wrtie For Us | Disclaimer | Copyright License | Authors