import java.applet.Applet; import java.awt.Graphics; public class HelloWorld extends Applet { public void paint(Graphics g) { g.drawString("Hello world!", 50, 25); } }Bu tahmin edeceğiniz üzere "merhaba dünya" java applet'imiz Derleme işlemimiz kısaca şöyle (Tabi Java SDK'sının kurulu olması gerekli).
$ javac HelloWorld.java
from java.applet import Applet class HelloWorld(Applet): def paint(self, g): g.drawString("Hello from Jython!", 20, 30)Bu da aynı uygulamanın python eşdeğeri, bir başka ifade ile jython eş değeri. jython'da derleme sonucu .jar arşivleri oluşturuyoruz. Çünkü gereken python dönüştürücüsünün (adapter) arşive eklenmesi gerekmekte.
$ jythonc --deep --core --jar HelloWorld.jar HelloWorld.pyEğer programımız applet değilde swing, awt veya console programı olsaydı
$ java HelloWorldŞeklinde çalıştırabilirdik. Fakat java bytecode'larına derlenen appletleri html içine gömüp çalıştırabiliriz.
<html> <head></head> <body> Java ile yazılıp javac ile derlenmiş applet:<br> <applet code="HelloWorld.class" width="200" height="50"></applet><br> Jython ile yazılıp jythonc ile derlenmiş applet:<br> <applet code="HelloWorld.class" archive="HelloWorld.jar" width="200" height="50"> </applet> </body> </html>Gömülü html dosyasını
$ appletviewer test.htmlŞeklinde veya doğrudan tarayıcınız ile test.html dosyasına erişerek deneyebilirsiniz. Ancak.... jython kullanıyorsanız kodu derlemeden de deneyebilirsiniz. Bütün python uygulamalarında olduğu gibi. jython tercümanı derlemeye gerek duymaz. Bu nedenle ufak bir kaç ek kod ile derlemeden de jython appletimizi görebiliriz.
from java.applet import Applet import sys class HelloDirect(Applet): def paint(self, g): g.drawString("Hello from Jython %s!" % sys.version, 20, 30) if __name__ == '__main__': import pawt pawt.test(HelloDirect())Burada __name__ değişkeni __main__ katarına eşitse yani jython betiği doğrudan çalıştırılıyorsa, betik kendi kendini test eder. Normal jython betiklerini çalıştırdığımız gibi betiği deneyebiliriz.
$ jython HelloWorld.pybol jython'lu günler :)
Uygulamanın kodlarını http://firat.kucuk.org/jython/ adresinden temin edebilirsiniz.
Orjinal makaleyi ise http://firat.kucuk.org/blog/index.php?p=5&more=1 adresinden temin edebilirsiniz.
Caiz olmadığını düşünmemin temelinde şu sebep var.
mesela gcc linux'un yegâne derlyicisi linux için üretliği koldara pek diyecek yok.
Ama windows'a geçtiğinde(PE takıldığında) dünyanın en rezil derleyicisi konumuna düşüyor. üretdiği kodlar tek kelime ile rezalet... hani linux'un tek gücü nerede ?
Sevgili yılanımızın başınada böyle bir olay gelebilir. üretdiği java kodları ne alemde ? SUN derleyicisi gibi mi ? yoksa windows'a geçmiş gcc tadındamı ?