ITHub

Figyelmet érdemlő modern nyelvek, II. rész: Ceylon, Go, Dart

Figyelmet érdemlő modern nyelvek, II. rész: Ceylon, Go, Dart
Kóbor Ádám
Kóbor Ádám
| ~3 perc olvasás

Folytatjuk korábban megkezdett sorozatunkat, melyben kevésbé ismert, de egyre népszerűbb nyelveket mutatunk be. Mai hármasunk a Ceylon, a Go, és a Dart.

Ceylon

A Ceylont az a Gavin King alkotta meg, aki a Hibernate atyja is egyben, így nem meglepő, hogy a Ceylon alapvetően egy Java-ra épülő statikus, erősen típusos nyelv. A fejlesztés során mindvégig szem előtt tartották a Java erősségeit, és gyengeségeit, valamint azt, hogy egy olyan nyelvet szeretnének alkotni, mellyel hatékonyabban, és könnyebben lehet majd strukturált adatokkal dolgozni, ezzel megszüntetve a Java XML-től való "függőségét". Így néz ki például a Ceylonban egy hierarchikus struktúra deklarálása, és értékadása:

Html page = Html {
    Head {
        title="Hello";
    };
    Body {
        P {
            css = "greeting";
            "Hello, World!"
        };
    };
}

Nagy hangsúlyt fektettek még arra is, hogy javítsanak a Java "bőbeszédűségén" (miközben megtartják a könnyen olvashatóságát), a szintaktika pedig az elődnél jobban támogassa a deklaratív, és a metaprogramozást, illetve a különböző keretrendszerek használatát.
A Ceylon Java bájtkódra fordul, így könnyedén futtatható JVM-mel, és elérhető hozzá egy - az Eclipsen alapuló - IDE is. Az érdeklődők a hivatalos honlapon megtalálnak minden infót.

Go (vagy Golang)

A Google által fejlesztett Go nyelv megalkotói Robert Griesemer, Rob Pike, és Ken Thompson voltak. Szintaktikájában a C-hez áll a legközelebb, de felfedezhetőek benne a Python nyomai is. Alapvetően objektumorientált, de nem úgy, ahogy azt egy a Java-hoz, vagy C#-hoz szokott fejlesztő gondolná (erről itt találtok egy remek írást). A Go kialakításakor az volt a fő cél, hogy egy olyan konkurens nyelvet hozzanak létre, mely alkalmazások, és rendszerek programozására egyaránt alkalmas, nem véletlen, hogy a Google-nél is előszeretettel alkalmazzák saját projektekben.

A Go további, gyakran emlegetett előnyei:

  • nagyon gyorsan fordul
  • támogatja a konkurens programozást
  • rendelkezik garbage collectorral

Egy kis ízelítő a Go szintaktikájából, a Fibonacci-sorozat első 5 tagjával:

package main

import "fmt"

// fib returns a function that returns
// successive Fibonacci numbers.
func fib() func() int {
	a, b := 0, 1
	return func() int {
		a, b = b, a+b
		return a
	}
}

func main() {
	f := fib()
	// Function calls are evaluated left-to-right.
	fmt.Println(f(), f(), f(), f(), f())
}

További információt, és egy online fordítót(!) a Go hivatalos honlapján találtok.

Dart

A 2011-ben bejelentett, és szintén a Google által fejlesztett Dart nem kevesebbett tűzött ki céljául, mint hogy idővel leváltja a JavaScriptet a böngészőkben. A nyelv maga leginkább a JavaScriptnek, és a Java-nak a keverékére hasonlít, természetesen igyekeztek a fejlesztők mindkét nyelvből a hasznos dolgokat átemelni, így ígéretük szerint a Dart jóval gyorsabb, és jobban skálázható, mint a JS. A Dart opcionálisan típusos, tehát megtehetjük azt, hogy a fejlesztés korai szakaszában a JavaScriptben megszokott módon írjuk a kódot, és csak később egészítjük ki a megfelelő típusmegszorításokkal:

// Ez egy típusok nélküli függvény
recalculate(origin, offset, estimate) {
  // ...
}

// Ez pedig már a típusos verziója, egy opcionális paraméterrel
num recalculate(Point origin, num offset, {bool estimate: false}) {
  // ...
}

Természetesen a Dart további hasznos funkciókkal is rendelkezik, ilyen például a setterek, és a getterek elhagyhatósága, vagy a kaszkádolt metódushívás. Aki többet szeretne tudni, az keresse fel a dartlang.org-ot.