2010-11-22 9 views
10

Il y a une partie de la syntaxe java qui me dérange: ce sont des accolades et des points-virgules. Existe-t-il une sorte de traducteur qui me permettra d'utiliser toute la syntaxe Java à l'exception de celle-ci? Je veux faire quelque chose comme ceci:Java et espace-comme-syntaxe (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") 

Il est le Python comme des espaces modèle de syntaxe, je l'ai appris à l'aimer. Je crois que c'est plus propre et plus facile pour les yeux. Si ce n'est pas le cas, j'envisage sérieusement d'investir du temps pour écrire un analyseur qui ferait cela pour moi. (Idéalement, il va l'ouvrir, le formater avec des espaces, et une fois sauvegardé, enregistrer uniquement comme la syntaxe java avec des accolades et tous)

Cela causerait des problèmes ailleurs dans la langue? Quel genre de hoquet puis-je espérer rencontrer? Je veux utiliser tout le reste de la syntaxe Java exactement comme il est autrement, je veux juste modifier ce petit niggle.

Je peux déjà écrire et lire le code très bien dans Eclipse. Et oui, je sais déjà comment utiliser les outils de formatage du code et toutes les options d'auto-complétion qui s'offrent à moi, c'est simplement une préférence dans le style de codage, donc ne répondez pas "Vous devez apprendre à vous y habituer" ou " Vous devriez utiliser un IDE qui fait des accolades pour vous "... non. Je ne veux pas ça.

+3

Il y a un projet sur google code qui vous permet de faire cela avec C. Je ne trouve pas de lien vers le bon maintenant mais il pourrait être utile de chercher. Si vous finissez par l'appliquer vous-même, cela pourrait constituer un bon point de départ. – aaronasterling

+1

Je comprends tout à fait d'où vous venez, mais en toute honnêteté, vous devriez juste vous y habituer. Pensez-vous que cela vaut vraiment la peine d'écrire votre propre analyseur, juste pour vous débarrasser des accolades et des points-virgules? –

+2

Je pense que c'est bien d'avoir une quête. Vous devrez faire attention aux boucles 'for' et aux chaînes entre guillemets, aussi foreaches et' switch's car ils peuvent tous utiliser les caractères que vous avez besoin de traduire. Array initialiseurs et blocs statiques aussi ... eeep, vous avez votre travail à vous couper. – CurtainDog

Répondre

0

Vous pourriez envisager de consacrer du temps à apprendre à utiliser eclipse et le formateur de code.

Le modèle de Python est génial en ce sens qu'il force (plus ou moins) tous les développeurs dans le même format de style de code. Les entreprises de logiciels modernes ont des directives de style de code et utilisent des IDE avec des formateurs pour faciliter l'application du style de codage. Même si vos collègues ont (subjectivement) des styles atroces (pour vous), vous pouvez rapidement reformater ce code en quelque chose que vous trouvez lisible.

+0

Je peux déjà écrire du code et lire le code avec les accolades et les points-virgules, c'est simplement une préférence. J'utilise déjà Eclipse et je peux gérer facilement le formateur de code.Il ne s'agit pas de taper moins ou quelque chose comme ça. Idéalement, ce serait un outil pour mon usage qui permettrait de convertir les deux façons. Il prendrait un fichier source et le formaterait de la manière que je préfère, puis lors de la sauvegarde, exporterait comme java, accolades et tout le reste; Cela n'affecterait absolument pas le code. (du moins c'est comme ça que je l'imagine.) – ThantiK

2

Pouvez-vous passer à Jython? La syntaxe de Python, l'environnement d'exécution de Java.

+0

Malheureusement non, je travaille principalement sur Android pour le moment, Jython ne compile rien de compatible. Cependant, je ne cherche pas vraiment la syntaxe entière de Python; Juste la syntaxe basée sur l'indentation. J'utilise déjà Jython pour certains de mes projets personnels. Il y avait un projet "Jythonroid", mais il a été remplacé par SL4A (précédemment ASE) mais SL4A n'a pas accès à SurfaceFlinger ni à aucun des sous-systèmes GUI/layout. – ThantiK

0

Vous pouvez utiliser Jython ou Scala, ce qui supprime la plupart des accolades et des points-virgules (en ce qui concerne les points et les parenthèses). Leur syntaxe est beaucoup plus lisible, et vous avez encore toute la puissance de la JVM. Cependant, si vous avez besoin d'un traducteur précis (pour l'enregistrer sous forme de code Java), vous pouvez facilement écrire un tel traducteur par vous-même. Lit le fichier d'entrée ligne par ligne, en comptant les retraits, et chaque fois qu'il change, supprime les deux points à la fin de la chaîne (si nécessaire) et insère l'accolade: accolade ouvrante pour plus grand retrait et fermeture pour plus petit. (Il ne tient pas compte de plusieurs cas possibles, mais la plupart d'entre eux sont considérés comme mauvais style.)

+0

J'ai remarqué votre commentaire sur Android, s'il vous plaît, ignorez le premier paragraphe. EDIT: [ou non] (http://stackoverflow.com/questions/476111/scala-programming-for-android) – ffriend

Questions connexes