Cette question est extrêmement subjective et ouverte. Cela pourrait même ressembler à quelque chose que je devrais simplement rechercher par moi-même et prendre ma propre décision. Mais je voudrais le mettre là-bas et obtenir des réflexions des autres.
Pour faire court - j'ai épuisé la course aux rats et je suis en congé sabbatique autofinancé cette année. Une grande partie consiste à prendre une pause dans la vie de l'entreprise et à voyager, mais je veux aussi jouer avec les nouvelles technologies et faire des projets d'auto-apprentissage, pour rester au courant de la programmation, et bien - j'aime juste bricoler avec programmation, quand il n'y a pas de pression!
Voici la chose: je suis un programmeur C / C ++ / Java à vie. Je suis un peu snob avec des crochets depuis que je travaille avec cette famille de langues pour toute ma carrière de programmeur. Je voudrais donc apprendre une langue qui n'est pas si étroitement liée syntaxiquement à ce groupe. Ce que je recherche essentiellement, c'est un langage qui est relativement polyvalent, amusant à apprendre, qui a de nouveaux concepts différents de C ++ / Java et qui a une bonne communauté. Une considération secondaire est qu'il a de bons cadres de développement Web. Une considération tertiaire est que ce n'est pas totalement académique (lire: il existe des emplois dans le monde réel qui l'utilisent).
Je l'ai réduit à Ruby ou Python. Mon impression de Ruby est qu'il est extrêmement orienté Web - que la seule vraie application est un langage de script côté serveur pour faire des trucs Web (principalement Ruby on Rails). Je n'ai pas du tout une impression de Python, sauf qu'il semble avoir une base de fans passionnés et semble être un langage assez polyvalent.
TL; DR et pour le dire le plus succinctement possible: lequel serait le mieux pour un gars C ++ / Java pour apprendre à obtenir de nouvelles perspectives sur la programmation? Et lequel est plus ouvert et à usage général et applicable à un ensemble plus large d'applications? Je penche pour Ruby pour le moment, mais je crains à un point tel qu'il semble qu'il ne soit utilisé que comme un langage Web côté serveur.
Réponses:
Ne vous laissez pas tromper par le fait que le Ruby est passé dans le langage courant en grande partie à cause de Rails (le cadre d'application Web). C'est un langage de programmation à usage général, et vous pouvez l'utiliser pour tout ce que vous pouvez utiliser dans n'importe quel autre langage.
Jouez avec Ruby et voyez si vous en tombez amoureux. Soit vous le ferez, soit vous ne le ferez pas. C'est un peu comme la musique de Grateful Dead; vous l'aimez ou vous ne le supportez pas.
Ruby va étirer votre cerveau. À bien des égards, c'est aussi loin que possible de C ++ / Java. Je viens d'un milieu C et C #, et j'ai trouvé la dynamique et la puissance de méta-programmation de Ruby assez enivrantes.
Cela étant dit, Python est un langage absolument exceptionnel, et il vous fera sortir de votre parenthèse frisée.
Pourquoi ne pas apprendre les deux? J'utilise les deux régulièrement: Ruby pour la programmation avec Rails et Python pour travailler avec Google AppEngine.
la source
Je n'ai certes pas utilisé Ruby, mais voici mes impressions sur Python:
Ces deux choses me viennent à l'esprit.
la source
object
). En outre,len(obj)
est un raccourci pour appelerobj.__len__()
etfor i in range
résume également les détails opérationnels des objets générateurs de fonctionnement. Je pense que / équivalent mais différent / est plus précis.Si vous prenez une année sabbatique, je vous suggère de passer une semaine ou deux à apprendre chacun, puis de décider par vous-même de ce que vous préférez. J'ai de l'expérience avec les deux et à mon avis, ils sont tous deux si capables que vous avez vraiment besoin de décider lequel vous préférez.
la source
OMI, vous devriez aller avec Python. La raison en est qu'il est plus polyvalent, vous pouvez l'utiliser pour presque tout. Ruby est, comme vous l'avez remarqué, plus utilisé dans le développement web en raison de ses frameworks web. Contrairement à Python, Ruby n'est pas très bon pour le développement d'applications de bureau gui, de programmes de traitement numérique, statistique ou d'image.
la source
Ruby existe depuis bien plus longtemps que les rails, alors laissez-moi le dire dans le monde
Ruby != web
, même si cela fait très bien. Il y a une multitude de choses liées aux systèmes qu'il peut et qu'il fait. Il semble que tout le framework Rails ait englouti le reste du monde Ruby. Et oui, je suis fan de Ruby.Python, d'autre part, a beaucoup à faire et il a été intégré à presque tout sur Linux. Cela me dit qu'il est probablement assez facile à intégrer dans des programmes plus grands (par rapport à Ruby, Java, etc.). Il y a une bonne quantité d'infrastructure Ubuntu Linux écrite avec Python, ce qui me dit que Python a une application dans la programmation de systèmes. J'ai entendu que son framework web est vraiment sympa, je n'ai pas encore joué avec.
Cela dit, Ruby et Python sont tous deux des langages de même capacité, et vous les trouverez vous faciliter la vie beaucoup. Ruby a beaucoup plus de têtes Web dans sa communauté, mais ce n'est pas la totalité de la communauté. Je l'ai également utilisé sur un certain nombre de projets d'infrastructure.
la source
Il s'agit d'un cas spécial de « séquence d'apprentissage du langage de programmation idéal» et de questions similaires . Ce dont vous avez besoin n'est pas "la seule langue parfaite", vous avez besoin de plusieurs paradigmes linguistiques et de multiples expériences d'apprentissage pour vous ouvrir l'esprit.
Je sais que vous avez dit que vous l'aviez réduit à Ruby et Python, mais je vous suggère de commencer par Racket (un schéma populaire). Il est conçu pour l'apprentissage et il étirera bien votre cerveau vers la programmation fonctionnelle, la programmation interactive et la frappe dynamique. Il n'y a pas d'emplois (littéralement zéro), une communauté très petite et fragmentée, et aucun cadre Web majeur, c'est exactement pourquoi vous ne serez pas coincé dessus; faites frire votre cerveau pendant un certain temps, puis passez à autre chose.
Deuxièmement, vous voulez apprendre Ruby ou Python pour des travaux possibles. Je vous suggère d'apprendre les deux. Apprendre le second de ces deux sera beaucoup plus facile que le premier malgré leurs différences. En ce qui concerne les emplois possibles, mon instinct est qu'il y a plus de travail Ruby à cause de Rails, mais je sais qu'il y a aussi du travail Zope dans ce domaine. Investissez dans au moins l'un d'entre eux, mais vérifiez également l'autre au moins assez longtemps pour construire quelque chose de petit.
Honnêtement, vous en apprendrez probablement plus au cours de votre première semaine de travail avec l'un ou l'autre que vous n'en avez jamais appris par vous-même; ils ont tous deux de grands écosystèmes avec beaucoup d'outils, de culture et d'expressions idiomatiques.
tl; dr: Both et Scheme.
la source
Moi aussi, je viens du milieu Java / C ++ et j'ai programmé en Python avec le framework Django au cours des 4 derniers mois et c'est vraiment génial. Chaque fois que j'ai un problème ou une question, je peux trouver des explications sur les messages existants. Je ne peux pas garantir Ruby car je ne l'ai pas encore utilisé, mais je vais certainement l'essayer quand j'aurai du temps.
Personnellement, j'aime la façon dont vous pouvez faire des choses très rapidement avec Python car il dispose de nombreuses fonctions utiles intégrées.
la source
Je voterais pour Ruby. Je suis venu de l'arrière-plan .Net et C #, j'ai d'abord essayé Python, mais Ruby m'a juste charmé =)
J'y écris beaucoup de choses système, et certains Rails le font. Il est capable en tant que Python dans la programmation système et est génial sur le Web. Et ça me semble plus raffiné ..
la source