Je veux réfuter "Ce n'est pas cool en Ruby"

Quand je parle de programmation avec Pythonista au travail, je suis tout plongé dans le flux de Ruby Diss.

Pourquoi le détestez-vous autant?

TMTOWTDI est mauvais

TMTOWTDI est un acronyme pour "Il y a plus d'une façon de le faire." Et c'est la devise de Perl, qui signifie "il y a plus d'une façon".

Dans Ruby, je ne sais pas si c'est parce qu'il hérite de cette idée, mais de nombreuses méthodes de classes intégrées ont des alias définis.

Par exemple Enumerable#map,find,inject,select,include? Array#count Object#to_enum C'est un endroit comme ça.

Selon Pythonista, cela ne crée rien d'autre que de la confusion et des coûts d'apprentissage.

Ouaip ** Peut-être que tu as raison ... **

Je suis d'accord avec la variété des solutions,

python


### a-Génère une chaîne aléatoire de 8 caractères composée de z

# 1
str = ""
alphabet = ('a'..'z').to_a
8.times do
  str << alphabet.delete(alphabet.sample)
end

# 2
('a'..'z').to_a.shuffle.take(8).join

# 3
('a'..'z').sort_by{rand}[0..7].join

Fournir un alias pour une méthode avec la même fonction semble être un moyen d'augmenter les mauvais choix.

Il ne dit pas "Est-il possible d'obtenir la taille même avec Array # length?" Je me demande parfois: "Pourquoi n'y a-t-il pas de pli parce qu'Enumerable a injecté et réduit?"

L'appel proc # est bon

Vous devez appeler lorsque vous exécutez Proc. Par conséquent, il semble qu'il n'est pas possible de gérer la fonction de manière transparente comme un objet de première classe.

Si la syntaxe d'appel de Proc est alignée sur la méthode, la simplicité d'appeler la méthode sans () est perdue.

python


constant = proc{42}
constant #=>Est-ce que constant est un appel ou une référence à Proc?

Proc nécessite (), et un traitement spécial tel qu'il est également délicat, donc je pense que c'est bien.

exiger n'est pas cool

Selon Pythonista, je n'aime pas le fait que le nom soit étendu au niveau supérieur lorsque cela est nécessaire dans Ruby.

En Python, le nom de fichier devient un module lors de l'importation et l'espace de noms global n'est pas pollué. Vous pouvez également utiliser from pour spécifier le nom à charger au niveau supérieur.

Il n'y a aucun grondement à ce sujet.


Eh bien, je pense que je disais autre chose ...

Recommended Posts

Je veux réfuter "Ce n'est pas cool en Ruby"
Je veux dire qu'il y a un prétraitement des données ~
Je veux résoudre SUDOKU
Je veux initialiser si la valeur est vide (python)
Je veux comprendre à peu près systemd
Lorsque j'essaye d'utiliser pip, le module SSL n'est pas disponible.
Je veux gratter des images et les former
Je veux faire ○○ avec les Pandas
Je veux copier l'annotation de yolo
Je veux déboguer avec Python
Je souhaite spécifier un fichier qui n'est pas une certaine chaîne de caractères comme cible logrotate, mais est-ce impossible?
Je veux afficher le nombre de num_boost_round lorsque early_stopping est appliqué à l'aide du rappel XGBoost (non atteint)
Je veux me mettre en colère contre ma mère quand la mémoire est serrée
J'ai essayé de mettre en œuvre un apprentissage en profondeur qui n'est pas profond avec uniquement NumPy
J'ai fait une IA pour juger si c'est de l'alcool ou non!
Je veux épingler Spyder à la barre des tâches
Je veux détecter des objets avec OpenCV
Je veux sortir froidement sur la console
Je veux imprimer dans la notation d'inclusion
Je veux les gratter tous ensemble.
Je veux gérer la rime part1
Je veux écrire un blog avec Jupyter Notebook
Je veux gérer la rime part3
Je veux utiliser jar de python
Je veux créer un environnement Python
Je veux utiliser Linux sur mac
Je veux installer Python avec PythonAnywhere
Je veux analyser les journaux avec Python
Je veux jouer avec aws avec python
Je souhaite utiliser la console IPython Qt
Je veux afficher la barre de progression
Je veux faire un programme d'automatisation!
Je veux intégrer Matplotlib dans PySimpleGUI
Je veux gérer la rime part2
Je souhaite développer des applications Android sur Android
Je veux que CAPTCHA dise des mots HIWAI
Je veux gérer la rime part5
Je veux gérer la rime part4
Je veux obtenir le chemin du répertoire où le fichier en cours d'exécution est stocké.
[Linux] Vous ne disposez pas des privilèges root. Mais je veux yum installer.
Le programme Python est lent! Je veux accélérer! Dans ce cas ...
Je veux faire de matplotlib un thème sombre
Je souhaite me connecter à PostgreSQL à partir de plusieurs langues
Je veux pouvoir penser à la récurrence
Je souhaite créer facilement un modèle de bruit
Je veux utiliser MATLAB feval avec python
Je veux corriger Datetime.now dans le test de Django
Je veux INSÉRER un DataFrame dans MSSQL
Je veux mémoriser, y compris les arguments de mots clés de Python
Je veux créer une fenêtre avec Python
Quoi qu'il en soit, je veux vérifier facilement les données JSON
Je souhaite envoyer un e-mail depuis Gmail en utilisant Python.
[Python] Je veux gérer 7DaysToDie depuis Discord! 1/3
Je veux moquer datetime.datetime.now () même avec pytest!
Je souhaite afficher plusieurs images avec matplotlib.
Je veux frapper 100 sciences des données avec Colaboratory
Je veux faire un jeu avec Python
Je veux visualiser les fichiers csv en utilisant Vega-Lite!