Es gibt wahrscheinlich keinen professionellen Programmierer, der nicht im Laufe der Zeit oder auch gleichzeitig mit mehreren ProgrammierSprachen arbeitet. Die Einarbeitung in eine neue Sprache gehört zum täglichen Brot. Dabei läuft das Lernen einer neuen Sprache ein wenig anders ab, als bei einem Programmierneuling. |
Wahrscheinlich hat jeder professionelle Programmierer einmal im Laufe der Zeit eine zusätzliche Sprache erlernt oder auch gleichzeitig mit mehreren ProgrammierSprachen gearbeitet. Die Einarbeitung in eine neue Sprache gehört zum täglichen Brot. Dabei läuft das Lernen einer neuen Sprache ein wenig anders ab, als bei einem Programmierneuling. |
Der Professional dagegen diagonalisiert möglichst schnell die Standards (z.B. eine Einführung und eine Bibel) und verschafft sich Zugang zu den wichtigen Referenzen. Dann geht er aber sofort zur eigenen Produktion über: Wie mach ich das, was ich bisher gemacht habe, optimal in der neuen Sprache X: * Wie hole ich mir die Programmparameter? * Wie lese/schreibe ich einen File zeilenweise/als Ganzes? * Wie komme ich zu dynamische Tabellen? * Wie arbeite ich effizient mit String und StringBuffer? (wie immmer sie in der Sprache X heißen mögen)? * Wie arbeite ich mit RandomAccessFiles?? * Wie modularisiere ich meine Programme? * Wie komme ich zu präzisen Zeit-Informationen? (etwa, um einen BenchMark zu programmieren) * Wie greife ich auf UmgebungsVariablen? zu? * Wie komme ich zu normalen Zeit-Informationen? |
Der erfahrene Programmierer dagegen diagonalisiert möglichst schnell die Standards (z.B. eine Einführung und eine Bibel) und verschafft sich Zugang zu den wichtigen Referenzen. Dann geht er aber sofort zur eigenen Produktion über: Wie mach ich das, was ich bisher gemacht habe, zum Beispiel typische Automatisierungsaufgaben ("Scripting") optimal in der neuen Sprache X: * Wie hole ich mir die Programmparameter? * Wie greife ich auf UmgebungsVariablen? zu? * Wie lese/schreibe ich eine Datei zeilenweise/als Ganzes? * Wie arbeite ich mit Dateien, in denen man hin- und herspringen kann (RandomAccessFiles?)? * Wie komme ich zu dynamische Tabellen? * Wie arbeite ich effizient mit Texten (wie immmer sie in der Sprache X heißen mögen)? * Wie modularisiere ich meine Programme? * Wie komme ich zu normalen Zeitinformationen? * Wie komme ich zu präzisen Zeitinformationen? (etwa, um einen Geschwindigkeitstest (BenchMark) zu programmieren) |
Die Gefahr, die vermieden werden muss, ist, dass man in der neuen Sprache so programmiert, wie in der alten Sprache ("Ein guter FORTRAN-Programmierer kann in jeder Sprache in FORTRAN programmieren"). |
Leicht läuft man Gefahr, dass man in der neuen Sprache so programmiert, wie in der alten Sprache ("Ein guter FORTRAN-Programmierer kann in jeder Sprache in FORTRAN programmieren"). |
* HaskellIdioms?: http://www.haskell.org/hawiki/CommonHaskellIdioms |
Die besonderen Fähigkeiten einer Sprache haben sich auf diesem Weg meist automatisch ins Blickfeld gedrängt.
Leicht läuft man Gefahr, dass man in der neuen Sprache so programmiert, wie in der alten Sprache ("Ein guter FORTRAN-Programmierer kann in jeder Sprache in FORTRAN programmieren").
Die folgenden Seiten könnten WiederkehrendeBedürfnisse in den verschiedenen Sprachen sammeln und uns allen eine Menge Zeit beim Einsteigen oder Umsteigen sparen: