Ich las Paul Grahams Aufsatz - Beating The Averages (2003) und hier ist, was er zu sagen hatte:
Je mehr IT-Flair die Stellenbeschreibungen hatten, desto weniger gefährlich war das Unternehmen. Die sichersten waren diejenigen, die Oracle-Erfahrung wollten. Sie mussten sich nie darum kümmern. Sie waren auch sicher, wenn sie sagten, sie wollten C ++ - oder Java-Entwickler. Wenn sie Perl- oder Python-Programmierer wollten, wäre das ein bisschen beängstigend - das klingt nach einer Firma, in der zumindest die technische Seite von echten Hackern betrieben wird
Nun, das ist ein datierter Aufsatz. Ich verstehe jedoch nicht, wie die Verwendung einer nicht alltäglichen Sprache (C / C ++ / Java, C #) weniger gefährlich wäre . Wenn die Programmierer einer Organisation die Entwicklungssprache sehr gut beherrschen, sollten sie auch in der Lage sein, Code in angemessenem Tempo zu entwickeln. In der Tat, wenn Sie eine nicht alltägliche Sprache verwenden, werden Sie keine Wartungs- / Verbesserungsprobleme im Gesicht haben, da auf lange Sicht nicht zu viele Programmierer zur Verfügung stehen würden?
Ich bin damit einverstanden, dass einige Sprachen es Ihnen ermöglichen, relativ früher als andere zu starten. Aber macht der Aufsatz / Kommentar von Paul Graham im Jahr 2012 und darüber hinaus Sinn? Wenn ein Startup typische IT- Sprachen für die Entwicklung verwenden sollte, warum sollte der Wettbewerb weniger besorgt sein?
Ich verstehe nicht, wie die Sprache selbst einen Unterschied macht. IMHO ist es die Erfahrung der Entwickler mit der Sprache, die zählt, und der Verfügbarkeit von Frameworks, so dass Sie DRY (wiederholen Sie sich nicht) nicht nur in einer bestimmten Sprache codieren.
Was fehlt mir? Bedeutet dies, dass Startups besser Sprachen ohne IT-Charakter auswählen (auch wenn die Entwickler mit diesen Sprachen möglicherweise sehr vertraut sind)? Was sind die (Programm-) Wirtschafts- / Marktkräfte hinter dieser Behauptung?
PS: 'lingua obscura' soll niemanden verletzen :)
Antworten:
Die Toolchain ist ein Symptom.
Wenn ein Unternehmen Oracle auswählt, ist dies ein Hinweis auf:
Wenn ein Unternehmen Python auswählt, ist dies ein Zeichen von:
Wenn sich diese beiden treffen, besteht die Strategie des Großunternehmens darin, Risiken zu vermeiden, ihre Dynamik zu nutzen und den Wettbewerber zu überbieten. Die Strategie der kleinen Konkurrenz besteht darin, zuerst die Konkurrenz auf dem Markt zu schlagen und dann das überlegene Produkt zu bleiben. Wenn das kleine Unternehmen die richtigen Schlachten wählt, kann es das große Unternehmen leicht übertreffen, indem es einfach schneller und reaktiver ist und die Tendenz des großen Unternehmens ausnutzt, Risiken zu vermeiden.
quelle
Die Wahl einer obskuren Sprache würde auf ungewöhnliches technisches Selbstvertrauen in einem Startup hinweisen. Ein Unternehmen, das gewillt ist, die allgemeine Weisheit aufzugeben, weiß möglicherweise etwas über Softwareentwicklung, was die meisten Unternehmen nicht wissen. Andererseits könnten sie nur Wichser sein.
quelle
Ich sehe die Kommentare von PG mehr über die Einstellung als über die Besonderheiten der Sprache. Menschen mit einer internen IT-Denkweise gehen auf Nummer sicher. Sie setzen risikoarme Technologien ein, verfügen über Prozesse zur Risikominimierung und verfolgen eine risikoarme Strategie. Sie sind zu beschäftigt, sich um ihr eigenes Mittagessen zu sorgen, um deins zu essen.
Menschen an der Blutungsgrenze (Python 2003) sind diejenigen, um die man sich Sorgen machen muss. Sie sind hungrig. Sie gehen Risiken ein. Sie sind intellektuell neugierig. Derselbe Typ, der lange wach bleibt und eine aufregende neue Sprache lernt, ist der Typ, der Ihre Branche möglicherweise auf den Kopf stellt, bevor Sie dies tun.
quelle
Graham bedeutet für ihn als Konkurrent weniger gefährlich, nicht nur weniger gefährlich. Sein Standpunkt ist nicht, dass Java (oder C ++ im Jahr 2003 oder COBOL im Jahr 1980) weniger gefährlich ist, sondern dass es normal ist und dass Unternehmen, die nach solchen Fähigkeiten suchen, mit hoher Wahrscheinlichkeit nur durchschnittliche Konkurrenten sind. Unternehmen, die nach starken Talenten für unbekannte (oder richtigerweise leistungsstärkere und weniger bekannte) Sprachen suchen, sollten sich diese jedoch ansehen.
Und ja, es macht heute vollkommen Sinn. Es machte Sinn, lange bevor Graham es schrieb, wir sprachen damals nur nicht über Java.
quelle
Mal sehen, welche Sprachen zuerst von erfolgreichen Startups verwendet wurden. Eine unwissenschaftliche Liste, von der Spitze meines Kopfes. Richtige randomisierte Forschung wäre besser, wenn jemand die Energie hätte.
Wir kommen daher zu dem Schluss, dass Facebook und Stackexchange keine Bedrohung für ihre Konkurrenten darstellten. Nicht sehr überzeugend.
Mal sehen, ob Paul Graham das heutzutage glaubt. Er war Mitbegründer von YCominator, das Startups finanziert. Die Homepage listet einige ihrer erfolgreichen Startups auf. Ich habe sie der Reihe nach durchgearbeitet und sehr schnell versucht, die Sprachen zu recherchieren, die sie in den frühen Tagen verwendeten.
Nun, es gibt Anzeichen für eine Präferenz für relativ dunkle und wohl mächtige Sprachen. Aber auch Flash, PHP und klassisches ASP werden aufgelistet.
Es ist ein Aufsatz . Es ist ein hyperbolischer Schub für eine relativ undurchsichtige Sprache, die er liebt, mit dem grundsätzlichen Rat, dass Startups ihre Technologie lieben und sich so schnell wie möglich bewegen sollten. Meinetwegen.
quelle
Ein durchschnittlicher Entwickler verwendet durchschnittliche Tools, da er den Wert leistungsfähigerer Tools nicht sieht:
(Betonung meiner.)
Je mächtiger die Sprache, desto weniger Entwickler werden sie verwenden und desto seltener wird sie. Die Popularität ist daher ein guter Maßstab dafür, wie weit die Macht einer Sprache vom Durchschnitt entfernt ist. Je undurchsichtiger die Sprache ist, desto besser ist die Chance, dass der Entwickler weiß, was er tut, und dass er sie aus gutem Grund gegenüber seinen gewöhnlichen Konkurrenten ausgewählt hat - und ein versierter Konkurrent ist gefährlich.
quelle
Die Wahl der Sprache fällt einem Startup schwer. Viele sehr gute Startups wählen "gemeinsame" Sprachen, um die Markteinführung zu beschleunigen, die Vertrautheit des Gründers zu gewährleisten und die Einstellung von Mitarbeitern für die Zukunft zu vereinfachen.
Die Wahl einer weniger verbreiteten Sprache ist ein gutes Zeichen. Sie sind bereit, die Entwicklung ernst zu nehmen und versuchen, spezialisierte Programmierer einzustellen. Dies sind jedoch nur Signale. Ein Startup ist mehr als nur eine Sprachauswahl.
Unterm Strich sollte Ihre Sprachwahl in Ihrem Kontext richtig bewertet werden. Facebook zum Beispiel hat mit PHP, das im Allgemeinen nicht als sehr skalierbare Sprache angesehen wird, gute Arbeit geleistet
quelle
Fragen Sie die besten und schlechtesten Programmierer, die Sie kennen, nach beliebigen Kriterien, welche anderen Sprachen sie kennen. Schreiben Sie jetzt eine Stellenanzeige, um die ersteren anzuziehen, und Sie haben Ihre Antwort. Selbst wenn Ihre App in C ++ ist, werden Sie eine bessere Klasse von Programmierern bekommen, wenn Sie diejenigen einstellen, die Sprachen beherrschen, die nicht in der Schule unterrichtet werden.
quelle
Es gibt zwei verschiedene Dinge, über die Sie sich Sorgen machen sollten, wenn ein Konkurrent eine ungewöhnliche Sprache verwendet:
Diese beiden Vorteile können in einer bestimmten Situation nicht zutreffen. Zum Beispiel könnte ein Startup leicht eine Sprache annehmen, "weil es cool ist", ohne wirklich zu überlegen, ob es die richtige Wahl ist. Sie können leicht Einstellungsfehler machen. Sie können sich leicht in den Fuß schießen, indem sie eine "mächtige" Sprache missbrauchen.
Aber wenn ein Konkurrent eine ungewöhnliche Sprache auswählt und sie gut verwendet , haben Sie möglicherweise eine erhebliche Bedrohung in den Händen.
Ich denke, dieses Prinzip ist ziemlich zeitlos und genauso wahr wie 2003 - spezifische Sprachen und Paradigmen mögen kommen und gehen, aber die Idee, eine leistungsfähige, ausdrucksstarke Sprache zu wählen, die zu Ihrer Problemdomäne passt, über eine allgemeine, sichere Sprache wird wahrscheinlich immer eine ernsthafte Überlegung verdienen.
quelle
Wenn Ihre Kunden nicht gesperrt sind, dann ja . Sie sollten sich Sorgen über Konkurrenten machen, die leistungsfähige Sprachen verwenden.
Java, C #, C ++ sind vergleichsweise ausführlich und weisen relativ langsame Bearbeitungs- / Testzyklen auf. Dies begrenzt die Geschwindigkeit, mit der selbst die schnellsten Entwickler Funktionen bereitstellen können. Ausdrucksstärkere Sprachen mit leistungsstarker integrierter Metaprogrammierung und null Kompilierungszeit ermöglichen es erfahrenen Entwicklern, Features so schnell wie möglich zu erstellen. Wenn Sie in einem Wettlauf um Marktanteile mit einer enormen Belohnung für den Gewinner sind, ist es sinnvoll, die allerbesten Entwickler einzustellen, die Sie finden können, und die Sprache zu verwenden, mit der sie am schnellsten arbeiten können. Sie können sich später um die Skalierbarkeit kümmern.
quelle