KBU Programlama Günleri III
27.02.2016
Serdar Doğruyol
Lead Developer - Protel
@sdogruyol
Ruby kadar kolay, C kadar hızlı, verimlilik ve sadelik üzerine odaklanmış, açık kaynak kodlu derlenen bir programlama dilidir.
Dünyanın en güzel programlama dili :)
“İnsanlar, özellikle bilgisayar mühendisleri, makineler üzerine yoğunlaşıyor. Makineler üzerine yoğunlaşıyorlar ama aslında biz insanlara ve onların nasıl programlama yaptığına odaklanmalıyız. Çünkü insanlar efendi ve makineler onların köleleridir.”
Yukihiro Matsumoto - Matz
Manastech
Ary Borenszweig @asterite
Juan Wajnerman @waj
class OlusturmakIstemedigimAmaJavaninZorlaOlusturttuguSinif {
public static void main() {
System.out.println("Hello World");
}
}
Java
Crystal
puts "Hello World"
Hadi 1,2,3,4,5,6 sayılarından çift olanları filtreleyip yeni bir liste oluşturalım.
public static int[] filterEven(int[] array) {
int[] aggregator = new int[array.length];
int aggregatorSize = 0;
for (int i : array) {
if (i % 2 == 0) {
aggregator[aggregatorSize] = i;
aggregatorSize += 1;
}
}
return aggregator;
}
int[] array = { 1, 2, 3, 4, 5, 6 };
filterEven(array); // => { 2, 4, 6, 0, 0, 0 }
Java
Hadi 1,2,3,4,5,6 sayılarından çift olanları filtreleyip yeni bir liste oluşturalım.
array = [1, 2, 3, 4, 5, 6]
array.select &.even? # => [2, 4, 6]
Crystal
2.days.ago
# 2016-02-23 22:10:05 +0200
WebSocket
Dil | CPU (%) | Kaynak (mb) |
---|---|---|
Crystal (Kemal) | 1.85 | 11.2 |
Node.js (ws) | 38.95 | 906.3 |
https://gist.github.com/sdogruyol/bdd400a6eac13e26228e
30x az CPU zamanı
80x az Memory
Threadring
Dil | Zaman (saniye) | Kaynak (mb) |
---|---|---|
Crystal | 0.59 | 3.3 |
Go | 1.43 | 2.3 |
Erlang | 1.89 | 17.1 |
Scala | 6.42 | 1.5 |
Ruby | 41.73 | 30.0 |
https://github.com/kostya/crystal-benchmarks-game
NBody
Dil | Zaman (saniye) | Kaynak (mb) |
---|---|---|
C | 1.59 | 0.4 |
Crystal | 1.74 | 1.3 |
Ruby | 91.01 | 7.3 |
https://github.com/kostya/crystal-benchmarks-game
Binary Trees
Dil | Zaman (saniye) | Kaynak (mb) |
---|---|---|
Java | 0.59 | 282.2 |
C | 5.08 | 32.4 |
Crystal | 6.14 | 107.6 |
Ruby | 27.95 | 115.5 |
https://github.com/kostya/crystal-benchmarks-game
Kendisiyle kendini yazmak???
=
RubyGems
http://kemalcr.com
require "kemal"
get "/" do
"Hello World!"
end
ws "/socket" do |socket|
socket.send "Hello from Kemal!"
end
https://play.crystal-lang.org
みなさん
Matz is nice so we are nice
http://www.crystalforrubyists.com/
http://crystal-lang.org/docs/
@sdogruyol
https://slides.com/sdogruyol/crystal-2