28 Stimmen

Ethik der Verwendung einer "Randsprache" für Ihre Arbeit?

Ich möchte hier nur um einige Meinungen bitten. Was halten Sie von der Verwendung einer Sprache (und/oder eines Frameworks), die an Ihrem Standort nicht weit verbreitet ist, um Software für ein Unternehmen zu schreiben? Ich lebe zum Beispiel in einem Gebiet, das von .NET dominiert wird, mit gelegentlichen Aufträgen für PHP. Nehmen wir an, ich lerne Python und beschließe, es zu verwenden, um Software für meine Arbeit zu schreiben (ich bin ein "Team of One", also kann ich so ziemlich alles verwenden, was ich will).

Jetzt ist ihre Software in einer Sprache geschrieben, die so gut wie niemand in der Gegend benutzt oder kennt; wenn ich das Unternehmen verlassen würde, hätten sie im Grunde niemanden, der sie pflegen/erweitern könnte, es sei denn, sie würden mich als Berater behalten. Das ist zwar wirklich gut für mich, kommt mir aber ein bisschen "schief" vor - zugegeben, so funktioniert die Geschäftswelt.

Was denken Sie darüber?

Ich sollte erwähnen, dass dies ein sehr kleines Unternehmen ist und ich die einzige IT-Person bin, so dass ich bei der Wahl unserer Entwicklungsplattform freie Hand habe. Ich verwende nicht speziell Python, sondern habe es als Beispiel gewählt, da mein Bereich fast vollständig auf .NET basiert; ich mag .NET allerdings nicht mehr, weshalb ich es nicht in Betracht ziehen möchte. Außerdem ist das Unternehmen... wie sollen wir sagen... äußerst sparsam und würde die erforderlichen Ressourcen für .NET (z. B. Serverlizenzen, SQL-Lizenzen, Visual Studio, Komponenten) nicht kaufen. Ich persönlich habe ein MSDN-Abonnement, aber das kann ich nicht für sie verwenden.

Auch FWIW dort son Leute in der Gegend, die die Sprache verwenden, die ich verwenden möchte (Ruby on Rails), aber bei weitem nicht so viele wie .NET-Entwickler. Es ist ja nicht so, dass ich etwas verwende, das nur ich kenne.

1 Stimmen

Btw, Python ist keine "Rand"-Sprache, selbst auf StackOverflow, das von .NET-Entwicklern dominiert wird.

0 Stimmen

Ja, ich persönlich würde mir keine Sorgen über einen Mangel an Entwicklern machen, wenn es um Ruby on Rails oder Python geht; das sind Mainstream-Sprachen, und ein Unternehmen sollte sich nicht darum bemühen müssen, Leute zu finden, die sie schreiben können.

1 Stimmen

Okay - ich habe diese Sprache als "Randsportart" bezeichnet, weil ich auf den üblichen Jobbörsen keine Stellenanzeigen für Rails/Python-Entwickler sehe.

27voto

Sam Meldrum Punkte 13529

Sie denken vielleicht, dass dieser Ansatz gut für Sie ist. Aber in Wirklichkeit werden Sie dadurch nur in eine Ecke gedrängt. Der beste Weg zu einer Beförderung - innerhalb einer Organisation - ist, sich in seiner derzeitigen Position überflüssig zu machen. Das mag wie Unsinn klingen, aber es ist tatsächlich wahr. Stellen Sie sich Folgendes vor: Wenn es für das Unternehmen wichtig ist, dass Sie den Python-Code, den Sie für das Unternehmen geschrieben haben, weiterhin pflegen, und sie diese Fähigkeit von niemandem sonst bekommen können, dann werden sie auch weiterhin (vielleicht etwas über dem Marktpreis) für die Pflege dieses Codes bezahlen.

Wenn Sie diesen Code jedoch in .net schreiben, wo es in Ihrer Region ein reichhaltiges Angebot gibt, dann können Sie, wenn das Unternehmen expandiert und der von Ihnen geschriebene Code sich als erfolgreich erweist, Leute einstellen, die diesen Code pflegen, und Sie können mit der Entwicklung anderer Systeme fortfahren. Oder Sie können ein Team von .net-Programmierern leiten - wenn Sie das wollen.

Selbst wenn Sie gehen wollen, ist es für Ihre Karriere am besten, wenn Sie das bestmögliche Arbeitszeugnis bekommen. Um das zu erreichen, schreiben Sie einen leicht zu wartenden Code. Helfen Sie ihnen, jemanden einzustellen, der Sie ersetzt, um ihn zu warten. Sie werden Ihnen dankbar sein und Sie als Berater an ihre Freunde weiterempfehlen.

Geben Sie etwas Esoterisches ein - für das es in Ihrem Gebiet wenig Unterstützung gibt - und sie werden zu ihren Freunden auf dem Golfplatz sagen: "Nein, stellt diesen Kerl nicht ein, er hat dieses System für uns geschrieben, das seine Aufgabe erfüllt, aber niemand sonst kann es warten. Wir sind für immer an ihn gebunden und jetzt ist er zu beschäftigt, um sich richtig um uns zu kümmern!"

Tun Sie das, was für das Unternehmen am besten ist, und nicht das, was Sie selbst am meisten interessiert - oder was auf den ersten Blick so aussieht. Langfristig werden Sie damit gewinnen.

1 Stimmen

+1 mehrmals für die Bemerkung "machen Sie sich überflüssig". Es gibt viel zu viele Informationssammler da draußen und das hilft wirklich niemandem.

0 Stimmen

Ein guter Rat, aber nicht wirklich anwendbar, da er das gesamte IT-Personal des Unternehmens ist. Wohin würde er befördert werden?

0 Stimmen

@joe_mucchiello - es geht nicht nur um die aktuellen Umstände. Hoffentlich wächst das Unternehmen und er wird Manager eines neuen Junioren und nicht umgekehrt. Oder er bekommt eine gute Referenz für seinen nächsten Job.

18voto

mqp Punkte 66863

Ich denke, es liegt in Ihrer Verantwortung, sich für die Sprache zu entscheiden, die für die Aufgabe am besten geeignet ist. Dazu gehört eine objektive Bewertung der Vorzüge der Sprache und des Frameworks, Ihre persönlichen Fähigkeiten mit der Sprache (da Sie die Arbeit machen) und die Wartbarkeit durch andere. Nur Sie und Ihr Unternehmen können entscheiden, wie viel Wert Sie auf jeden dieser Punkte legen.

8voto

HLGEM Punkte 91543

Für Ihre persönliche Entwicklung, wenn Ihr Bereich von .net dominiert wird, warum wollen Sie sich nicht in diesem Bereich auf den neuesten Stand bringen, anstatt in Python?

Vom ethischen Standpunkt aus würde ich nichts schreiben, was nicht auch von jemand anderem gepflegt werden könnte.

7voto

AlexCuse Punkte 17778

Ich denke, die Verwendung von Python wäre das Richtige, wenn es die Anforderungen des Kunden erfüllt und ihm gegenüber der Alternative Geld spart. Ob es eine große Auswahl an Charakteren gibt, die später an der Anwendung arbeiten können, ist irrelevant, es sei denn, sie haben dies als nicht-funktionale Anforderung angegeben.

Wie immer gilt: Das beste Werkzeug für die jeweilige Aufgabe ist das Beste.

0 Stimmen

Außerdem ist Python wirklich leicht zu erlernen.

0 Stimmen

Ich stimme dem zu... mein Beratungsunternehmen gibt einem Entwickler etwa 12 Stunden Zeit, um sich in Python einzuarbeiten, weil das alles ist, was jemand braucht, der eine andere Sprache kennt. Es wird leichter zu pflegen sein als .net, das steht fest.

0 Stimmen

Ich stimme zu, dass es leicht zu erlernen ist, obwohl ich stark widerspreche, dass es wartbarer als .net ist, einfach weil es Python ist. Schlechtes Design ist schlechtes Design.

7voto

Zak Punkte 1147

Viele Antworten scheinen nicht zu der Frage zu passen. Es geht hier nicht um die Verwendung einer nicht zugelassenen Sprache in einer Umgebung mit bestehenden Standards. Wir sprechen von einer Situation, in der der Poster die gesamte IT- und Entwicklungsabteilung seines Unternehmens ist.

Es ist sicherlich wichtig, die Verfügbarkeit von Talenten im Auge zu behalten, aber Ruby ist heutzutage kaum noch eine Randsportart. In einer Umgebung, in der es nur einen Entwickler gibt, ist auch die Produktivität ein sehr wichtiger Aspekt. Um Software auch ohne ein großes Team schnell und einfach erstellen und warten zu können, sind Werkzeuge erforderlich, die andere Eigenschaften haben als die, die ein großes Team benötigt.

Ich denke, wichtiger als die Frage, ob man Ruby oder (etwas anderes) verwendet, ist es, etwas so universell wie möglich zu wählen und es für alles zu verwenden, es sei denn, es gibt eine wirklich ein guter Grund, etwas anderes zu verwenden. Wenn Sie sich für Ruby entscheiden, bleiben Sie bei Ruby für Ihre Hilfsskripte, Cron-Jobs und die kleine GUI-Anwendung, die der Chef haben wollte, um dem Praktikanten automatisch eine SMS zu schicken, wenn er mehr als fünf Minuten braucht, um ihm seinen Kaffee zu bringen.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X