Wenn Sie also die Sprache für ein Projekt auswählen, wird in einer idealen Welt die Sprache ausgewählt, weil sie das richtige Werkzeug für den Job ist. Oft bevorzuge ich jedoch die Verwendung einer Sprache, die ich fließend beherrsche, anstatt eine Sprache, die ich lernen müsste, oder die ich nur im Umgang mit anderen Sprachen beherrsche. Nur weil ich eine ziemlich universelle Sprache wie Java wirklich mag, heißt das nicht, dass ich sie immer verwenden sollte, aber gleichzeitig heißt das nicht, dass ich jedes Mal, wenn etwas Textverarbeitet werden muss, etwas wie Perl ausbrechen sollte. Wie findet man hier das Gleichgewicht?
quelle
Ich denke, Vertrautheit wird nicht genug gewürdigt. Ihre Vertrautheit beeinflusst sehr gut, welches Werkzeug das richtige ist. Sie müssen das Tool verwenden, um Ihr Projekt abzuschließen. Darüber hinaus kann die Verwendung von etwas, das Ihnen Spaß macht, ohne Zweifel die Nachteile seiner Fitness übertreffen, da Sie sich mehr auf die Arbeit freuen und bessere Ergebnisse erzielen.
http://headrush.typepad.com/creating_passionate_users/2006/08/when_the_best_t.html
quelle
Dies ist nur als Geschäftsfrage wirklich lösbar. Viele geschäftliche Fragen werden jedoch nur mit Blick auf kurzfristige Zahlen gestellt, was bei solchen Dingen ein Fehler ist.
Mein allgemeiner Ansatz:
Drei Dinge, die Sie beachten sollten, wenn Sie über Kosten und Nutzen nachdenken: Erstens: Menschen, die es eilig haben, können die Zukunft kurzfristig verändern. Zweitens machen die Wartungskosten den Löwenanteil der Kosten für ein erfolgreiches System aus. Drittens, gute Entwickler lernen gerne und Ihre Entwickler bei Laune zu halten, ist eine gute langfristige Investition.
quelle
Gute Frage! Wie der Name schon in seiner Antwort sagte: "Vertrautheit wird nicht genug gewürdigt." Ein anderes Tool, ein anderes Framework, eine andere Sprache könnten viel besser sein als das, was Sie gewohnt sind, und Sie wären immer noch viel weniger produktiv, wenn Sie das erste Mal die Seile erlernt hätten.
Ich arbeite seit einigen Jahren als ASP.NET-Entwickler in digitalen Agenturen, wo wir eine Mischung aus großen Projekten, kleinen Projekten, engen Projekten, gut gepolsterten Projekten usw. haben. Wir suchen nach "weichen Zielen", kleineren Projekten, für die es keine engen und harten Fristen gibt, und nutzen sie als Gelegenheit, neue Technologien einzusetzen, die möglicherweise überlegen sind. .NET 2.0, 3.5, 4.0, ASP.NET MVC, Linq to SQL, Entity Framework - all das habe ich zum ersten Mal in einem solchen Projekt verwendet.
Wenn Sie Ihre Chancen so nutzen können, haben Sie hoffentlich eine größere Auswahl an Optionen, um das richtige Werkzeug auszuwählen, ohne an Vertrautheit zu leiden. Genau wie in Julios Beispiel: Sie haben ein Ziel gefunden, auf dem sie Ruby in ihr Repertoire aufnehmen können, und jetzt können sie zwischen Java und Ruby wählen.
Aber wenn die Frist kurz und fest ist und das Projekt wichtig ist, empfehle ich Ihnen, sich an die vertrauten Werkzeuge zu halten. Etwas anderes ist vielleicht besser geeignet, aber in solchen Projekten dreht sich alles um das Risiko .
quelle
Das hängt von ein paar Dingen ab:
1. Wie gut lernst du neue Sprachen oder Werkzeuge?
Wenn Sie schnell lernen, ist die Hürde beim Erlernen neuer Sprachen oder Werkzeuge geringer. Auf diese Weise können Sie der Toolbox ein weiteres Tool hinzufügen.
2. Wie sprachen- / werkzeugunabhängig Sie Ihre Arbeitsumgebung gestalten.
Wenn Ihr Workflow stark vom Werkzeug abhängig ist, sind die Hindernisse für das Erlernen verschiedener Sprachen höher. Wenn Sie mit einer bestimmten IDE verbunden sind, bedeutet das Wechseln der Sprache wesentlich mehr als nur das Erlernen einer Sprache, da das Bearbeiten von Text Sie mit Sicherheit frustriert.
Jemand, der vim oder emacs verwendet, hat dieses Problem nicht. Sie müssen nur die neue Sprache lernen.
3. Geschäftliche Realität
Das Erlernen neuer Werkzeuge / Sprachen braucht Zeit. Diese Zeit hat Kosten. Diese Kosten können jedoch eine Investition sein, die sich mehr auszahlt als die anfänglichen Kosten. Außerdem dauert die Implementierung einer unhandlichen Lösung in der Regel länger und die Wartung ist schwieriger. Wenn es sich um etwas Größeres als ein kleines Projekt handelt und die Tools in meiner vorhandenen Toolbox nicht zum Problem passen, werde ich untersuchen, welche Tools zum Problem passen. Ich habe auch in eine Umgebung investiert, die einem allgemeinen Ansatz entspricht, und gelernt, vim als meinen gewählten Editor zu verwenden.
Noch etwas - was ist der kürzeste Abstand zwischen zwei Punkten? Wenn jemand anderes etwas geschrieben hat, das beinahe das tut, was ich tun möchte, ist es normalerweise am schnellsten, es einfach an meine Bedürfnisse anzupassen.
quelle
Wenn es eine neue Sprache gibt, auf die Sie neugierig sind und die Sie (und das Unternehmen) sich leisten können, warum sollten Sie sich nicht ein paar Wochen bis einen Monat Zeit nehmen, um sie zu erkunden?
So habe ich Rubin gelernt. Mein Coder-Partner hatte 7 Jahre Erfahrung mit Java. Ich hatte 11 Jahre Java-Erfahrung. Keiner von uns wusste etwas über Rubin, nur dass wir es versuchen wollten.
Ich überredete ihn und den Rest des Unternehmens, Ruby einen Monat lang auszuprobieren (dies sollte ein 6-8-monatiges Projekt sein). Im schlimmsten Fall würden wir in dieser Zeit mit Java anfangen.
Zum Glück waren wir nach einer Woche süchtig und es stellte sich heraus, dass alles in Ordnung war. Vielleicht kannst du etwas ähnliches probieren? Sehen Sie nach, ob Sie etwas von Grund auf in einer anderen Sprache erstellen können, machen Sie dem Unternehmen jedoch klar, warum Sie es tun und was Plan B für den Fall ist, dass das Experiment fehlschlägt.
quelle
Es gibt offensichtlich keine einheitliche Antwort auf diese Frage, die für alle Situationen gilt. Aber hier ist ein Aspekt, von dem ich glaube, dass er noch nicht erwähnt wurde. Wenn Sie ein Entwickler sind, sollten Sie auch Ihre eigene Marktfähigkeit berücksichtigen. Wenn für Ihr Projekt die Sprache X gewählt wurde, wie sieht das in Ihrem Lebenslauf aus? Es kann eine gute Idee sein, eine Sprache zu wählen, mit der Sie nicht vertraut sind, damit Sie einen Grund haben, sie zu lernen, Ihren intellektuellen Horizont zu erweitern und Ihre Fähigkeiten für zukünftige Arbeitgeber attraktiver zu machen.
quelle
Ich würde sagen, dass die Vertrautheit mit einer Sprache auch ein Aspekt davon ist, "das richtige Werkzeug für einen Job zu sein". Ich kann mir keine Situation vorstellen, in der zB Prolog für mich das richtige Werkzeug wäre, wenn ich die Sprache überhaupt nicht kenne.
quelle
Meine eigene Version besteht darin, "das richtige Werkzeug zu verwenden, das mir zur Verfügung steht". "Verfügbar" zu sein bedeutet, dass ich es benutzen kann, nicht nur, dass ich den Compiler und / oder die Laufzeit kaufen / bekommen kann.
In fast jedem realen Szenario haben Sie angesichts eines Problems nur sehr wenig Zeit, um es zu lösen. Ich glaube nicht, dass Sie in sehr kurzer Zeit wirklich eine neue Sprache lernen können . Eine Sprache zu lernen bedeutet, tatsächlich Bücher zu lesen, den Code anderer zu lesen und zu verstehen, wie es funktioniert und welche Philosophie dahinter steckt. Man könnte einfach ein Tutorial aus dem Internet lesen (was als Ausgangspunkt perfekt ist) und sich hacken lassen. Aber das würde zu furchtbarem Code führen, und Sie wären wahrscheinlich besser dran, besseren Code in einer Sprache zu schreiben, die Sie möglicherweise in viel kürzerer Zeit kennen.
Trotz der Vorzüge des Sprichworts "Das richtige Werkzeug für den Job" sind die meisten gängigen Sprachen eigentlich Allzwecksprachen. Sie mögen in bestimmten Bereichen Stärken haben und in anderen Bereichen nicht so gut sein wie andere, aber sie können die meisten Aufgaben erledigen. Wenn Sie praktisch keine Sprache kennen, steht Ihnen dieses Tool nicht zur Verfügung.
Ich sage nicht, nur eine (oder sogar zwei oder drei) Sprachen zu lernen und sie für alle Projekte zu verwenden und nichts anderes zu lernen. Es ist wichtig, andere Sprachen zu lernen, um mehr Werkzeuge zu erwerben, die Sie in Ihre Toolbox aufnehmen können. Angesichts eines Problems ist es jedoch besser, sich an die Tools zu halten, die Sie kennen, als Ihre Sorgen durch den Einsatz unbekannter Technologien zu vergrößern. Lernen Sie aber weiterhin andere Sprachen, damit Ihnen die Auswahl beim nächsten Mal leichter fällt.
quelle