2010-11-22 11 views
10

Java sözdiziminin, saçımı bozan bir parçası var: bu, kaşlı ayraçlar ve noktalı virgüller. Bunun dışında tüm Java sözdizimini kullanmama izin verecek bir tür çevirmen var mı?Java ve whitespace-syntax (ala Python)?

public class Hello: 
    public static void main(String[] args): 
     System.out.println("I like turtles.") 

public class Another: 
    public static void somethingelse(): 
     System.out.println("And boobs") 

Bu sözdizimi modeli olarak Python'un boşluk var, bunu sevmeye ettik: Böyle bir şey yapmak istiyorum. Gözlerin daha temiz ve daha kolay olduğuna inanıyorum. Eğer mevcut değilse, aslında benim için bunu yapacak bir ayrıştırıcıyı yazmak için yoğun bir yatırım zamanı düşünmekteyim. (İdeal olarak açılacak, boşluk ile biçimlendirilecek ve kaydedildiğinde, sadece java sözdizimi olarak parantezler ile saklanacaktır.)

Bu, dilin başka yerlerinde sorunlara neden olur mu? Ne tür hıçkırıklar içine girmeyi bekleyebilirim? Tüm Java sözdiziminin geri kalanını tam olarak nasıl kullanacağını, sadece bu küçük niggle'ı değiştirmek istedim.

Zaten yapabilirim Eclipse'de kod yazıp okuyabilirsiniz. Ve evet, kod biçimlendirme araçlarını ve bana sunulan tüm otomatik tamamlama seçeneklerini nasıl kullanacağımı zaten biliyordum, bu sadece kodlama stilinde bir tercihtir, bu yüzden lütfen "buna alışmayı öğrenmelisiniz" veya " Senin için parantez yapan bir IDE kullanmalısın "... hayır. Bunu istemiyorum.

+3

Google kodunda, C ile bunu yapmanıza izin veren bir proje var. şimdi ama aramaya değer olabilir. Eğer bunu kendiniz uygulamak zorunda kalırsanız, o zaman iyi bir başlangıç ​​noktası sağlayabilir. – aaronasterling

+1

Tamamen geldiğiniz yere ulaşıyorum ama bütün dürüstlükte buna alışman gerekiyor. Sizce kendi ayrıştırıcınızı yazmakta zorluk çekmeye değer mi, sadece kaşlı ayraçlardan ve noktalı virgüllerden kurtulabiliyor musunuz? –

+2

Bence bir görev yapmak güzel. Döngüler ve alıntı dizeleri için dikkat etmeniz gerekecek, ayrıca çevirmenler için ihtiyaç duyduğunuz karakterleri kullanabildikleri için '' ve '' anahtarlar. Dizi başlatıcıları ve statik bloklar da ... eeep, işinizin sizin için kesildiğini görüyorsunuz. – CurtainDog

cevap

0

Eclipse ve kod biçimlendiricisini kullanmayı öğrenmeye zaman ayırmayı düşünebilirsiniz.

Python'un modeli, tüm geliştiricilerin aynı kod stili biçimine zorlanmasından (az ya da çok) büyüktür. Modern yazılım firmalarının kod tarzı yönergeleri vardır ve kodlama stilinin uygulanmasını kolaylaştırmak için formatlı IDE'leri kullanır. İş arkadaşlarınız (öznel olarak) iğrenç stilleri (sizin için) olsa bile, bu kodu, okunabilir bulduğunuz bir şeye hızlı bir şekilde yeniden biçimlendirebilirsiniz.

+0

Zaten kod yazabilir ve kodları parantez ve noktalı virgülle okuyabilirim, sadece bir tercih. Eclipse'i zaten kullanıyorum ve kod formatlayıcısını kolaylıkla kullanabiliyorum.Daha az yazmak ya da bunun gibi bir şeyle ilgili değil. Optimal olarak, her iki yolu da kullanacak olan kullanımım için bir araç olurdu. Bir kaynak dosya alır ve tercih ettiğim şekilde biçimlendirir ve sonra tasarruf edince, düzenli java, parantez ve tüm olarak ihraç ederdi; Hiç bir kodu etkilemez. (en azından bunu tahmin ediyorum.) – ThantiK

2

Jython'a geçebilir misin? Python'un sözdizimi, Java'nın çalışma zamanı ortamı.

+0

Maalesef, şu anda ağırlıklı olarak Android üzerinde çalışıyorum, Jython uyumlu bir şey derlemiyor. Gerçekten de tüm Python sözdizimini aramıyorum; Sadece girinti tabanlı sözdizimi. Kendi kişisel projelerim için Jython'u zaten kullanıyorum. Bir "Jythonroid" projesi vardı, ancak SL4A (daha önce ASE) tarafından tamamlandı ancak SL4A'nın SurfaceFlinger'a veya GUI/layout alt sistemlerinden herhangi birine erişimi yok. – ThantiK

0

Jython veya Scala veya kıvırcık parantez ve noktalı virgüllerin çoğunu (nokta ve parantezlere kadar) düşürebilen Scala kullanabilirsiniz. Onların sözdizimi çok daha okunabilir ve hala JVM'nin tüm gücü sizde.

Tam olarak çevirmene ihtiyacınız varsa (bunu basit bir Java kodu olarak kaydetmek için), bu tür çeviricileri kolayca kendiniz yazabilirsiniz. Giriş dosyası satırını satır, okuma girintilerini ve her değiştiğinde, dizenin sonundaki sütunu silin (gerekirse) ve daha büyük girinti için daha küçük girinti ve kapanış için küme ayracı ekleyin. (Birkaç olası durumu dikkate almaz, ancak bunların çoğu kötü bir stil olarak kabul edilmez.)

+0

Android hakkındaki yorumunuzu fark ettim, lütfen, ilk paragrafı dikkate almayın. DÜZENLEME: [veya değil] (http://stackoverflow.com/questions/476111/scala-programming-for-android) – ffriend