

Ruby 2.1.1 is released and Ruby turns 21 - petercooper
https://www.ruby-lang.org/en/news/2014/02/24/ruby-2-1-1-is-released/

======
pflanze
I was a bit surprised about the age, and wondering where it fits into the
timeline, so I put together the following list (years corresponding to the
"appeared" indication taken from Wikipedia). (There will likely be nicer lists
elsewhere..)

    
    
      1957 (57) Fortran
      1958 (56) Lisp
      1958 (56) ALGOL
      1959 (55) COBOL
      1964 (50) APL
      1970 (44) Pascal
      1970s     Forth
      1972 (42) C
      1972 (42) Prolog
      1972 (42) Smalltalk
      1973 (41) ML
      1975 (39) Scheme
      1978 (36) TeX
      1982 (32) PostScript
      1983 (31) C++
      1983 (31) Objective-C
      1984 (30) Common Lisp
      1986 (28) Erlang
      1987 (27) Perl
      1990 (24) Haskell
      1991 (23) Python
      1993 (21) Ruby (according to article)
      1994 (20) ANSI Common Lisp
      Mid 1990s Dylan
      1995 (19) Java
      1995 (19) Ruby (according to Wikipedia)
      1995 (19) JavaScript
      1996 (18) Ocaml
      2000 (14) C#
      2003 (11) Scala
      2003 (11) Factor
      2005  (9) F#
      2007  (7) Clojure
      2008  (6) Nimrod (according to speedydeletion.wikia.com)
      2009  (5) CoffeeScript
      2009  (5) Go
      2012  (2) Rust
      2012  (2) Julia
    

(edit: added Clojure, of course) (edit 2: added ObjC, Dylan, Nimrod, Go, Rust,
Julia)

~~~
Argorak
Ruby was first released in 1995, development started in 1993. So, both numbers
are right. "Ruby's birthday" is traditionally the start of development. The
most interesting info is: Ruby and Python are both not influenced by Java.

An easy answer to the question: "Why didn't they just steal that from Java?"

~~~
skywhopper
I'm curious what features of Java would be worth stealing for Python or Ruby?

~~~
the8472
* Threads without GIL (which also requires an explicit memory model) * concurrency libraries * Garbage collectors that scale to hundreds of gigabytes worth heap, are parallel and concurrent * JIT that performs within a small factor of C code * Tooling support, especially profilers and debuggers are lousy and frequently break in my experience * bytecode weaving/AST transforms at runtime. The whole refinements thing could have been done more cleanly with callsite and method entry/exit hooking

Talking about MRI here. I know rubinius and JRuby exist and offer some of
those features

~~~
aaronblohowiak
The creation/creators of Java are not responsible for most of the things you
listed. They are attributable to HotSpot, built by the fine folks that brought
you the best-of-breed Smalltalk implementation half a decade after Java's
release.

HotSpot wasn't released until 1999. Prior to that Java did not have a JIT.
Java used to be very slow compared to compiled code and HotSpot was a BIG DEAL
when it was released in '99.

GC that scales to hundreds of gb? Do you mean Azul, the proprietary and
expensive JVM implementation?

~~~
the8472
G1GC for dozens of GB, Azul (for now) for hundreds and in the future there'll
be Shenandoah.

You're right that those features provided by hotspot. But it is the reference
implementation for the JVM after all.

The point remains that the java ecosystem - which includes tooling like
eclipse/netbeans/yourkit and JVM implementations - provides the things I've
listed that I find lacking in ruby.

~~~
djur
But by the same measure, JRuby is part of the Ruby ecosystem.

------
eik3_de
A quote from Ruby's author, Matz:

 _> For me the purpose of life is partly to have joy. Programmers often feel
joy when they can concentrate on the creative side of programming, So Ruby is
designed to make programmers happy._

Happy hacking!

~~~
gjjgjgjgjgj
Ruby code always makes us sad, as we have to spend all day deciphering the
abusive metamagic DSLs that some devs think are cool to use and abuse.
Creative is fine on a canvas, less so when you are having to debug some
special turd of an app from a Ruby only developer.

~~~
skywhopper
DSLs, APIs, design patterns... there are endless metalanguages to learn on top
of the programming languages we already know. Just because you can't wrap your
head around DSLs as a different kind of API doesn't mean there's "abuse" going
on. Ruby is pretty clearly designed to support DSLs, and being able to use a
full-fledged programming language within your DSL-based config files is an
incredibly powerful tool.

------
livando
Ruby 1.9.3-p545 was also released today with the following:

"This release is dedicated to the memory of our best comrade, Jim Weirich.
Thank you, Jim. Rest in peace."

------
cies
The article mentions:

> Ruby 2.1 has many improvements including speedup without severe
> incompatibilities. You can use this on Rails and some applications, and get
> more comfortable experience.

Since the changelog is very large I'm still interested in what speedups are
part of this release. Anyone?

~~~
stiff
There are huge performance improvements in Ruby 2.1.0 as compared to Ruby
2.0.0, I have seen as much as a 2x improvement in real world settings, and
they have to with Ruby now having a generational garbage collector:

[http://www.infoq.com/news/2013/12/ruby21](http://www.infoq.com/news/2013/12/ruby21)

I don't think this current patch release itself contains much performance
fixes.

~~~
cies
Ok.. I misread that, and assumed the 2.1.1 came with further perf
improvements.

------
dj-wonk
Speaking from my experience, learning Ruby made programming more fun, elegant,
and productive. Thanks Matz! Though sometimes overblown and even cultish at
times, the Ruby community transformed expectations about what a language can
be. The spill-over benefits have been tremendous to almost everyone. UPDATE: I
wanted to thank not just Matz but everyone who made the language easy to learn
and the community welcoming.

------
nixpulvis
Should have released tomorrow to be 21 and 1 day old. Looking forward to many
more years with Ruby as my primary language.

~~~
jmnicolas
> Looking forward to many more years with Ruby as my primary language.

Beware of complacency or you will find yourself unemployable when Ruby will be
old news.

I didn't learn any new language since I started C# 4 years ago and I mightily
regret it.

~~~
vinceguidry
When was the last time a popular non-"platform" language became "old news"?

~~~
jmnicolas
Do you really think a majority of the web will be powered by Ruby in 20 years
from now ?

~~~
grey-area
Is it really that hard to switch platforms/languages? Learning a new language
should not be so difficult, particularly once you've become familiar with a
few.

There are so many factors influencing language and API popularity that it's
silly to try to bet it all on one language/platform or vendor at any time in
your life. Why not just enjoy the ones you use, and when they are no longer of
use (for whatever political, technical or personal reasons), switch to
something else?

~~~
vinceguidry
In all fairness, if you don't anticipate a switch many years before you have
to make it, you could get caught flat-footed. I personally have taken jobs
where I didn't have any primary experience in the platform, but it was for,
essentially, pocket change. I would hate to get dependent on a six-figure
income predicated on knowing, say, enterprise Java, then suddenly find that
nobody's hiring enterprise Java guys anymore and having to take a huge pay
cut. Sure I could find a job. That doesn't mean it won't suck.

------
venus
Fantastic. This release has all the fixes I'd been waiting on before going to
production; I'll be deploying this week. Great work ruby-core and thank you as
always. Twenty-one years, wow, time flies!

~~~
boundlessdreamz
What are the fixes you were waiting for?

~~~
nixme
I'm guessing these
[https://gist.github.com/tmm1/8393897](https://gist.github.com/tmm1/8393897)

~~~
venus
Yep.

------
donpdonp
This update is important because of the BigDecimal division bug in the
bigdecimal gem that ships with 2.1.0 causes incorrect calculations when the
denominator is less than 1.

[https://bugs.ruby-lang.org/issues/9316](https://bugs.ruby-
lang.org/issues/9316)

------
krstck
Happy birthday Ruby - my native tongue. Also one of the most welcoming
programming communities out there.

------
kclay
Had no idea Ruby was THAT old. Congrats. The one language I need to pickup one
day.

~~~
skywhopper
It's definitely worth really digging into (get the PickAxe book--it's
incredible!). Even if you never use it for a real project, you'll learn new
ways of approaching problems that can be used in other languages.

------
blt
My first programming language. I haven't written a line of it in years, but it
made programming feel fun and made me want to learn more. Shout-out to Chris
Pine's "Learn to Program" tutorial.

------
pico303
Never fails. One day after I install the latest Ruby, they release the next
version.

~~~
Argorak
So, put in you calendar: Both February 24th and December 25th usually see Ruby
releases. Don't install on the 23rd or the 24th ;).

------
gerjomarty
Via Matz on Twitter - The History of Ruby

[https://gist.github.com/unak/3038095](https://gist.github.com/unak/3038095)

------
apetresc
Reading the changelog at that link made me realize that Ruby's core trunk is
still hosted on Subversion!

------
rilut
I don't know how get Ruby 2.1.1 in Windows. RubyInstaller/RailsInstaller seems
to be less updated

~~~
Argorak
RubyInstaller is usually a few days behind, but updated properly nevertheless.

~~~
rilut
I'm afraid that the latest release on RubyInstaller is 2.0.0-p353 (Nov 2013)

~~~
Argorak
Yes, see
[https://groups.google.com/forum/#!topic/rubyinstaller/8Je3OE...](https://groups.google.com/forum/#!topic/rubyinstaller/8Je3OEbtb3w)
for reasons.

------
theorique
MINASWAN 4 LYFE :)

