WHAT'S NEW?
Loading...
images (27)
Yukihiro Matsumoto is a Japanese computer scientist and software programmer best known as the chief designer of the Ruby programming language and its reference implementation, Matz’s Ruby Interpreter. Wikipedia
Born: April 14, 1965 (age 49), Osaka, Osaka Prefecture, Japan
Education: University of Tsukuba
Books: The Ruby Programming Language, Ruby in a Nutshell
Early life[edit]
Born in Osaka Prefecture, Japan, he was raised in Tottori Prefecture from the age of four. According to an interview conducted by Japan Inc., he was a self-taught programmer until the end of high school.[2] He graduated with an information science degree from University of Tsukuba, where he was a member of Ikuo Nakata’s research lab on programming languages and compilers.
Work[edit]
He worked for the Japanese open source company, netlab.jp. Matsumoto is also known as one of the open source evangelists in Japan. He’s released several open source products, including cmail, the Emacs-based mail user agent, written entirely in Emacs Lisp. Ruby is his first piece of software that has become known outside of Japan.[3]
Ruby[edit]
Matsumoto released the first version of the Ruby programming language on 21 December 1995.[4][5] He still leads the development of the language’s reference implementation, MRI (for Matz’s Ruby Interpreter).
MRuby[edit]
In April 2012, Matsumoto open-sourced his work on a new implementation of Ruby called mruby.[6][7] It’s a minimal implementation based on his virtual machine, called ritevm, and is designed to allow software developers to embed Ruby in other programs while keeping memory footprint small and performance optimised.
streem[edit]
In December 2014, Matsumoto open-sourced his work on a new scripting language called streem, a concurrent language based on a programming
About Ruby
Wondering why Ruby is so popular? Its fans call it a beautiful, artful language. And yet, they say it’s handy and practical. What gives?
The Ideals of Ruby’s Creator
Ruby is a language of careful balance. Its creator, Yukihiro “Matz” Matsumoto, blended parts of his favorite languages (Perl, Smalltalk, Eiffel, Ada, and Lisp) to form a new language that balanced functional programming with imperative programming.
He has often said that he is “trying to make Ruby natural, not simple,” in a way that mirrors life.
Building on this, he adds:
Ruby is simple in appearance, but is very complex inside, just like our human body1.
About Ruby’s Growth
Since its public release in 1995, Ruby has drawn devoted coders worldwide. In 2006, Ruby achieved mass acceptance. With active user groups formed in the world’s major cities and Ruby-related conferences filled to capacity.
Graph courtesy of
Gmane.
Ruby-Talk, the primary mailing list for discussion of the Ruby language, climbed to an average of 200 messages per day in 2006. It has dropped in recent years as the size of the community pushed discussion from one central list into many smaller groups.
Ruby is ranked among the top 10 on most of the indices that measure the growth and popularity of programming languages worldwide (such as the TIOBE index). Much of the growth is attributed to the popularity of software written in Ruby, particularly the Ruby on Rails web framework.
Ruby is also completely free. Not only free of charge, but also free to use, copy, modify, and distribute.
Seeing Everything as an Object
Initially, Matz looked at other languages to find an ideal syntax. Recalling his search, he said, “I wanted a scripting language that was more powerful than Perl, and more object-oriented than Python2.”
In Ruby, everything is an object. Every bit of information and code can be given their own properties and actions. Object-oriented programming calls properties by the name instance variables and actions are known as methods. Ruby’s pure object-oriented approach is most commonly demonstrated by a bit of code which applies an action to a number.
5.times { print “We love Ruby — it’s outrageous!” }
In many languages, numbers and other primitive types are not objects. Ruby follows the influence of the Smalltalk language by giving methods and instance variables to all of its types. This eases one’s use of Ruby, since rules applying to objects apply to all of Ruby.
Ruby’s Flexibility
Ruby is seen as a flexible language, since it allows its users to freely alter its parts. Essential parts of Ruby can be removed or redefined, at will. Existing parts can be added upon. Ruby tries not to restrict the coder.
For example, addition is performed with the plus (+) operator. But, if you’d rather use the readable word plus, you could add such a method to Ruby’s builtin Numeric class.
class Numeric
def plus(x)
self.+(x)
end
end
y = 5.plus 6

y is now equal to 11

Ruby’s operators are syntactic sugar for methods. You can redefine them as well.
Blocks: a Truly Expressive Feature
Ruby’s block are also seen as a source of great flexibility. A programmer can attach a closure to any method, describing how that method should act. The closure is called a block and has become one of the most popular features for newcomers to Ruby from other imperative languages like PHP or Visual Basic.
Blocks are inspired by functional languages. Matz said, “in Ruby closures, I wanted to respect the Lisp culture3.”
search_engines =
%w[Google Yahoo MSN].map do |engine|
http://www.” + engine.downcase + “.com”
end
In the above code, the block is described inside the do … end construct. The map method applies the block to the provided list of words. Many other methods in Ruby leave a hole open for a coder to write their own block to fill in the details of what that method should do.
Ruby and the Mixin
Unlike many object-oriented languages, Ruby features single inheritance only, on purpose. But Ruby knows the concept of modules (called Categories in Objective-C). Modules are collections of methods.
Classes can mixin a module and receive all its methods for free. For example, any class which implements the each method can mixin the Enumerable module, which adds a pile of methods that use each for looping.
class MyArray
include Enumerable
end
Generally, Rubyists see this as a much clearer way than multiple inheritance, which is complex and can be too restrictive.
Ruby’s Visual Appearance
While Ruby often uses very limited punctuation and usually prefers English keywords, some punctuation is used to decorate Ruby. Ruby needs no variable declarations. It uses simple naming conventions to denote the scope of variables.
var could be a local variable.download (14)
@var is an instance variable.
$var is a global variable.
These sigils enhance readability by allowing the programmer to easily identify the roles of each variable. It also becomes unnecessary to use a tiresome self. prepended to every instance member.
images (1)
Jean Bartik was born in Gentry County, Missouri, in 1924. She attended Northwest Missouri State Teachers College, receiving a B.S. in mathematics (1945), a GED (master’s) in English from the University of Pennsylvania (1967), and an honorary D. Sc. from Northwest Missouri State University (2002).
Upon graduating in 1945, she was hired to compute ballistic (gun) firing tables for the U.S. Army. She was one of hundreds of human “computers,” usually women, who calculated these tables by hand using mechanical desktop calculators. That same year, a novel electronic device to compute firing tables automatically was completed at the University of Pennsylvania.
Bartik was one of six human computers chosen to work on the new machine, called ENIAC. She and the team taught themselves ENIAC’s operation and became its (and, arguably, the world’s) first programmers.
In 1947, Bartik became part of a group that converted ENIAC into a stored-program computer, a major milestone that improved its efficiency and usefulness. She also made contributions to the early BINAC and UNIVAC 1 computers.
Bartik, who was recognized late in life, became a strong advocate for increased participation by women in science and technology. She passed away in 2011.
images (2)
images (4)
Education and career[edit]
In 1977, Gosling received a Bachelor of Science in Computer Science from the University of Calgary. In 1983, he earned a Ph.D in Computer Science from Carnegie Mellon University, supervised by Bob Sproull.[2][5][6] While working towards his doctorate, he wrote a version of Emacs called Gosling Emacs (Gosmacs), and before joining Sun Microsystems he built a multi-processor version of Unix[7] while at Carnegie Mellon University, as well as several compilers and mail systems.
Between 1984 and 2010, Gosling was with Sun Microsystems. He is known as the father of the Java programming language.[8][9]
On April 2, 2010, Gosling left Sun Microsystems which had recently been acquired by the Oracle Corporation.[8] Regarding why he left, Gosling cited reductions in pay, status, and decision-making ability, change of role, and ethical challenges.[10] He has since taken a very critical stance towards Oracle in interviews, noting that “During the integration meetings between Sun and Oracle, where we were being grilled about the patent situation between Sun and Google, we could see the Oracle lawyer’s eyes sparkle.”[9] Later, during the Oracle v. Google trial over Android, he clarified his position saying “Just because Sun didn’t have patent suits in our genetic code doesn’t mean we didn’t feel wronged. While I have differences with Oracle, in this case they are in the right. Google totally slimed Sun. We were all really disturbed, even Jonathan [Schwarz]: he just decided to put on a happy face and tried to turn lemons into lemonade, which annoyed a lot of folks at Sun.”
On March 28, 2011, James Gosling announced on his blog that he had been hired by Google. Five months later, he announced that he joined a startup called Liquid Robotics.
Gosling is listed as an adviser at the Scala company Typesafe Inc. and Strategic Advisor for Eucalyptus.
Contributions[edit]
Gosling is generally credited with having invented the Java programming language in 1994.[15][16][17] He created the original design of Java and implemented the language’s original compiler and virtual machine.[18] Gosling traces the origins of the approach to his early graduate-student days, when he created a pseudo-code (p-code) virtual machine for the lab’s DEC VAX computer, so that his professor could run programs written in UCSD Pascal. Pascal compiled into p-code to foster precisely this kind of portability. In the work leading to Java at Sun, he saw that architecture-neutral execution for widely distributed programs could be achieved by implementing a similar philosophy: always program for the same virtual machine.[19]
For his achievement the National Academy of Engineering in the United States elected him as a Foreign Associate member.[20] He has also made major contributions to several other software systems, such as NeWS and Gosling Emacs. He co-wrote the “bundle” program, a utility thoroughly detailed in Brian Kernighan and Rob Pike’s book The Unix Programming Environment.
Books[edit]
Ken Arnold, James Gosling, David Holmes, The Java Programming Language, Fourth Edition, Addison-Wesley Professional, 2005, ISBN 0-321-34980-6
James Gosling, Bill Joy, Guy L. Steele Jr., Gilad Bracha, The Java Language Specification, Third Edition, Addison-Wesley Professional, 2005, ISBN 0-321-24678-0
Ken Arnold, James Gosling, David Holmes, The Java Programming Language, Third Edition, Addison-Wesley Professional, 2000, ISBN 0-201-70433-1
James Gosling, Bill Joy, Guy L. Steele Jr., Gilad Bracha, The Java Language Specification, Second Edition, Addison-Wesley, 2000, ISBN 0-201-31008-2
Gregory Bollella (Editor), Benjamin Brosgol, James Gosling, Peter Dibble, Steve Furr, David Hardin, Mark Turnbull, The Real-Time Specification for Java, Addison Wesley Longman, 2000, ISBN 0-201-70323-8
Ken Arnold, James Gosling, The Java programming language Second Edition, Addison-Wesley, 1997, ISBN 0-201-31006-6
Ken Arnold, James Gosling, The Java programming language, Addison-Wesley, 1996, ISBN 0-201-63455-4
James Gosling, Bill Joy, Guy L. Steele Jr., The Java Language Specification, Addison Wesley Publishing Company, 1996, ISBN 0-201-63451-1
James Gosling, Frank Yellin, The Java Team, The Java Application Programming Interface, Volume 2: Window Toolkit and Applets, Addison-Wesley, 1996, ISBN 0-201-63459-7
James Gosling, Frank Yellin, The Java Team, The Java Application Programming Interface, Volume 1: Core Packages, Addison-Wesley, 1996, ISBN 0-201-63453-8
James Gosling, Henry McGilton, The Java language Environment: A white paper, Sun Microsystems, 1996
James Gosling, David S. H. Rosenthal, Michelle J. Arden, The NeWS Book : An Introduction to the Network/Extensible Window System (Sun Technical Reference Library), Springer, 1989, ISBN 0-387-96915-2
download (3)
Douglas Crockford is an American computer programmer and entrepreneur who is best known for his ongoing involvement in the development of the JavaScript language, for having popularized the data format JSON (JavaScript Object Notation), and for developing various JavaScript related tools such as JSLint and JSMin.[2] He is currently a senior JavaScript architect at PayPal, and is also a writer and speaker on JavaScript, JSON, and related web technologies such as the Yahoo.
Early years[edit]
Crockford earned a degree in Radio and Television from San Francisco State University[3] in 1975. He took classes in FORTRAN and worked with a university lab’s computer.[4]
Career[edit]
Crockford purchased an Atari 8-bit computer in 1980 and wrote the game Galahad and the Holy Grail for the Atari Program Exchange (APX), which resulted in Chris Crawford hiring him at Atari, Inc.. While at Atari, Crockford wrote another game, Burgers!, for APX[5] and a number of experimental audio/visual applications that were freely distributed.
After Warner Communications sold the company he joined National Semiconductor. In 1984 Crockford joined Lucasfilm,[4] and later Paramount Pictures. He became known on video game oriented listservs in the early 1990s after he posted his memoir “The Expurgation of Maniac Mansion” to a videogaming bulletin board. The memoir documented his efforts to censor the computer game Maniac Mansion to Nintendo’s satisfaction so that they could release it as a cartridge, and Crockford’s mounting frustrations as Nintendo’s demands became more obscure and confusing.[6]
Together with Randy Farmer and Chip Morningstar, Crockford founded Electric Communities and was its CEO from 1994 to 1995. He was involved in the development of the programming language E.
Crockford was also the founder of State Software (also known as Veil Networks) and its CTO from 2001 to 2002.
During his time at State Software, Crockford popularized the JSON data format, based upon existing JavaScript language constructs, as a lightweight alternative to XML. He obtained the domain name json.org in 2002, and put up his description of the format there.[7] In July 2006, he specified the format officially, as RFC 4627.[8]
“Good, not Evil”[edit]
In 2002, in reference to President George Bush’s war on “evildoers”, Crockford added the requirement “The Software shall be used for Good, not Evil” to the open source MIT License for his JSMin software. This clause was carried over to JSMin-PHP, a variation of JSMin by Ryan Grove. This software was hosted on Google Code until December 2009 when, due to the additional clause, Google determined that the license was not compliant with the definition of open source software, which does not permit any restriction on how software may be used.[9] JSMin-PHP was forced to migrate to a new hosting provider.[10][11]
Despite its humorous[12] intent, the “evil” clause has continued to cause problems for some open source software developers when they inadvertently use code based on Crockford’s version of the MIT License, and has inspired criticism of Crockford from affected open source developers as recently as January 2014.[13][14][15] Crockford has refused to change the license terms despite numerous requests,[16] with the notable exception of the permission to “IBM, its customers, partners, and minions, to use JSLint for evil.”[17]

download (1)
download (2)