int

Report 3 Downloads 277 Views
Модерни езици за програмира за JVM JRuby, Groovy, Scala и Clojure.

Що е Java?

Програмен език Виртуална машина Стандартна библиотека

The beating heart of Java is not the Java programming language - it is the JVM and the entire infrastructure built around it... Maximus Decimus Meridius, Roman General & Java Programmer

Езикът Java Създаден да замени С++ Интегрира някои добри идеи от Lisp Характеризира се с консервативен, но практичен дизайн

Проблемите на езикът Java Не е чист обектно-ориентиран език Няма никаква поддръжка за функционален стил на програмиране Не е особено експресивен Развитието му е ограничено от изискванията за обратна съвместимост

Че то алтернативи има ли? 1996 - Java 1.0 1997 - 40 езика вече имат версия за JVM 2004 - 169 са JVM compatible 2011 - приблизително 300 езика се целят в JVM

Причината? The JVM is rock solid and heart touching at the same time. Отлична производителност и прекрасен optimizer Огромна база съществуващ Java код Купища страхотни иструменти

Не всичко е ток и жица Java (< 7) нямаше поддръжка за динамичен метод dispatching JVM не е оптимизиран за функционален стил на програмиране JVM пали относително бавно JVM имплементациите на някои езици (като Python) не са съвсем съвместими с native (C) имплементациите им

Двете страни на Силата Езици портнати към JVM Езици създадени специално за JVM

Претендентите JRuby Jython Fantom Groovy Scala Clojure

Ruby динамичен език за програмиране компактен и елегантен синтаксис създаден да направи програмистите щастливи made in Japan

Преди Ruby

Сега (като Ruby програмист)

Hello, Ruby # Output "I love Ruby" say = "I love Ruby" puts say   # Output "I *LOVE* RUBY" say['love'] = "*love*" puts say.upcase   # Output "I *love* Ruby" # five times 5.times { puts say }

JRuby - Java & Ruby sitting in a tree Ruby е елегантен език с бавен runtime JVM е много бърз runtime JRuby дава възможност на Java програмистите да използват технологии като Rails JRuby дава възможност на Ruby програмистите да ползват Java библиотеки

Загрявка в jirb jruby-1.6.1 :001 > puts "Hello, JRuby" Hello, JRuby => nil jruby-1.6.1 :002 > arr = ["Chuck", "Sarah", "Morgan", "Casey"] => ["Chuck", "Sarah", "Morgan", "Casey"] jruby-1.6.1 :003 > arr.length => 4 jruby-1.6.1 :004 > arr.size => 4 jruby-1.6.1 :005 > arr.size() => 4 jruby-1.6.1 :006 > arr.each { |name| puts name } Chuck Sarah Morgan Casey => ["Chuck", "Sarah", "Morgan", "Casey"] jruby-1.6.1 :007 > arr.each_with_index { |name, index| puts "##{index}: #{name}"} 0: Chuck 1: Sarah 2: Morgan 3: Casey => ["Chuck", "Sarah", "Morgan", "Casey"]

Ако прилича на патица... class Duck def walk puts "The duck walks" end

def quack puts "The duck quacks" end end class Dog def walk puts "The dog walks" end def quack puts "The dog quacks" end end def test_animal(animal) animal.walk animal.quack end test_animal(Duck.new) test_animal(Dog.new)

Java от Ruby require 'java' java_import 'java.lang.System' java_import 'java.util.ArrayList' java_import 'javax.swing.JOptionPane' System.out.println("Feel the power of JRuby") ## using snake_names for Java method names puts System.current_time_millis ## regular names work as well puts System.currentTimeMillis array_list = ArrayList.new ## the array list supports some common Ruby idioms array_list