2008-09-10 5 views
5

Ich bin ein Java-Programmierer, und ich mag meinen Compiler, statische Analyse-Tools und Unit-Test-Frameworks als Werkzeuge, die mir helfen, schnell robusten und effizienten Code zu liefern. Die JRE ist so ziemlich überall, wo ich auch arbeiten würde.Soll ich Scripting oder kompilierten Code für kleine Aufgaben wählen?

Angesichts dieser Situation kann ich keinen Grund sehen, warum ich jemals Shell-Scripting, Vb-Scripting usw. verwenden würde, egal wie klein die Aufgabe ist, wenn ich einen meiner anderen Hüte wie meinen coolen schwarzen Systemadministrator fedora trage .

Ich trage nicht die anderen Hüte zu oft, unter welchen Umständen sollte ich Scripting über das Schreiben von kompiliertem Code wählen?

+0

Mmmm ... blub ..... – jrockway

Antwort

2

Was auch immer Sie denken, für Sie am effizientesten!

Ich hatte einen Kollegen, der für jede Aufgabe eine andere Sprache zu verwenden schien; Perl für die schnelle Textverarbeitung, PHP für kleine interne Webanwendungen, .NET für unser Hauptprodukt, cygwin für das Dateisystem. Er zog es vor, die Technologie zu verwenden, die für die vorliegende Aufgabe am spezifischsten war.

Ich persönlich finde, dass Kontextwechsel zwischen Technologien schmerzhaft ist. Meine tägliche Arbeit ist in .NET, das sind so ziemlich meine Begriffe.Für die meisten Aufgaben finde ich es effizienter, etwas in C# mit SnippetCompiler zu knacken, als wenn ich in PowerShell oder einer Skriptumgebung hacken würde.

1

Ich würde sagen, wo es Sinn macht. Wenn es länger dauert, Ihre IDE zu öffnen, kompilieren Sie das Skript usw., als es wäre, eine Skriptdatei zu bearbeiten und damit fertig zu sein, als Skriptdatei zu verwenden. Wenn Sie das Ding nicht oft ändern und Java-Code schneller haben, dann gehen Sie diesen Weg :)

2

Wenn Sie mit Java vertraut sind, und die JRE ist überall, wo Sie arbeiten, dann würde ich sagen, verwenden Sie es weiter . Es gibt jedoch Sprachen wie Perl und Python, die besonders geeignet sind, Probleme schnell zu lösen. Ich würde vorschlagen, entweder Perl oder Python zu lernen, und dann Ihr Urteilsvermögen zu verwenden, wenn Sie es verwenden.

1

Skripte können normalerweise schneller geschrieben werden als kompilierte Programme. Sie müssen sich nicht so sehr Gedanken über die Portabilität zwischen verschiedenen Plattformen und Umgebungen machen. Ein Shell-Skript wird fast überall auf den meisten Plattformen ausgeführt. Weil Sie ein Java-Entwickler sind und Sie erwähnen, dass Sie Java überall haben, können Sie sich groovy anschauen (http://groovy.codehaus.org/). Es ist eine Skriptsprache, die in Java geschrieben ist und Java-Bibliotheken verwenden kann.

1

So wie ich es sehe (andere nicht einverstanden), muss der gesamte Code gewartet werden. Die kleinste nützliche Sammlung von Code ist die, die eine einzelne Person unterhält. Auch das profitiert von der Sprache und den Tools, die Sie erwähnt haben.

Es kann jedoch offensichtlich Aufgaben geben, bei denen spezialisierte Sprachen vorteilhafter sind als eine einzige allgemeine Sprache.

2

Wenn ich ein kleines Problem habe, das ich gerne schnell lösen möchte, neige ich dazu, eine Skriptsprache zu verwenden. Die Code-Steuer ist kleiner, und für mich kommt das Ergebnis schneller.

1

Wenn Sie es in Java schneller schreiben können, dann gehen Sie dafür.

Probieren Sie einfach aus, was die verschiedenen Skriptsprachen können.

z.B. Erstellen Sie keine vollständige Java-App, wenn Sie dasselbe mit einem Bash-One-Liner machen können.

0

Wiegen Sie die Bedeutung des Werkzeugs gegenüber offen einen Texteditor vs. Öffnung IDE für eine schnelle Bearbeitung knallen, neu zu kompilieren, Umschichtung usw.

0

Natürlich sollte die primäre Richtlinie sein, "zu verwenden, was auch immer Sie sich wohl fühlen." Wenn Java die Aufgabe richtig und pünktlich erledigt, bleiben Sie dabei. Aber viele Skriptsprachen können Ihnen Zeit sparen, da sie auf verschiedene Probleme abgestimmt sind. Wenn Sie reguläre Ausdrücke verwenden, passen die Skriptsprachen gut. Wenn Sie in Shell-Befehle fallen, sind Skripte nett.

Ich neige dazu, Ruby-Skripte zu verwenden, wenn ich etwas schreibe, das klein ist, weil es schnell zu schreiben ist, einfach zu warten und (mit Gems) einfach zusätzliche Funktionalität zu aktivieren, ohne JARs oder irgendetwas zu benötigen. Ihre Kilometerzahl wird natürlich variieren.

0

Am Ende des Tages ist dies eine Frage, die nur Sie selbst beantworten können. Basierend auf der Tatsache, dass du gesagt hast "Ich kann keinen Grund sehen, warum ich jemals Shell-Scripting verwenden würde, ...", dann ist es wahrscheinlich der Fall, dass du es niemals sofort wählen solltest.

Aber wenn ich Sie wäre, würde ich eine Skriptsprache wie Python, Ruby oder Perl wählen und versuchen, einige dieser kleinen Probleme mit dieser Sprache zu lösen. Im Laufe der Zeit bekommen Sie ein Gefühl dafür, wann es besser ist, ein schnelles Skript zu schreiben, als eine vollständige Lösung zu erstellen.

0

Ich benutze Skriptsprachen zum Schreiben von Programmen, von denen nicht erwartet wird, dass sie über wenige Ausführungen hinaus beibehalten werden. Die meisten dieser Sprachen sind leicht auf der Kesselsyntax und haben eine REPL. Beide Funktionen ermöglichen Rapid Prototyping.

Da Sie Java bereits kennen, können Sie JVM-Sprachen wie Groovy, JRuby, BeanShell usw. ausprobieren. Scala hat eine viel leichtere Syntax als Java, hat eine REPL, ist statisch getippt und läuft auf der JVM - Sie könnten das ausprobieren auch.