Warum verwenden Clojure-Bibliotheken häufig vorkommende Funktionsnamen, sodass Sie gezwungen sind, sie zu Namespace zu qualifizieren? Zum Beispiel verwendet clojure.zip next, ersetzt und entfernt , die bereits in clojure core existieren und "replace" existiert bereits in clojure.string.Warum Clojure-Bibliotheken nicht versuchen, eindeutige Namen für allgemeine Funktionsnamen zu verwenden
Jetzt wird der Entwickler wahrscheinlich eine Abkürzung für den clojure.zip-Namespace verwenden, so dass in einem Entwicklercode der clojure.zip/next als z/next im Code einer anderen Person als w/next, etc Dies wird Sie zwingen, zurück zu schauen, um zu sehen, was die Namensraumabkürzung tatsächlich ist, weil der Entwickler eine eigene Bibliothek erstellt haben könnte, die auch die Funktion "next" verwendet
Warum nicht zip-next, zip-replace, und zip-remove, str-ersetzen? Oder so ähnlich
Dann wird es eine konsistente "Namespace-Qualifikation" im Code der Leute geben und es wird klar sein, worauf sich diese Funktionen beziehen.
Es ist nicht wie es gibt Hunderte von Namen Zusammenstöße zwischen Bibliotheken. Normalerweise sehe ich nur zwei oder drei. Ist es so schwer, diese Namen für die Bibliothek explizit zu machen?
Ich mag die Tatsache, dass Sie einen kürzeren Alias für einen Namespace verwenden können. Gibt dir viel mehr Power, was ein häufiges Thema in Clojure ist. Dies kann jedoch ein Problem darstellen, wenn einige Programmierer unangemessene Aliase oder sogar längere Aliase als den ursprünglichen Namespace verwenden. – adamjmarkham
Ich verstehe Ihren CL-Kommentar nicht wirklich. Es gibt viele sehr kurze Namen in CL und die langen scheinen nicht mit Namensräumen zu tun zu haben. –
Ich muss zugeben, dass Kommentar kommt von meinem persönlichen Frust mit ein paar Bibliotheken. Sorry CL Leute, ich werde nett spielen :-( –