4 ms·
I'm a huge Python fan (90% of my code is Python, work and private), but I don't think any more it's still the language to push. I have not much experience but i
by erikb 12y ago
I'm a huge Python fan (90% of my code is Python, work and private), but I don't think any more it's still the language to push. I have not much experience but it seems Go, Ruby, and Scratch seem to be the one's people should be heading towards (which one depends on the level of skill required). But it's really just my feeling, I have no data to proof it.
- GuiA 12y agoInteresting examples you mentioned. Go, I can understand. But why Ruby? It is just as old as Python, behaves very similarly, and its ecosystem for non-web related tasks pales in comparison. And why Scratch? I really enjoy it (I've taught many workshops to kids 6-14 yo with it) but I would absolutely not use it in anything else but introductory classes.
- erikb 12y agoThe reason for Ruby is that more playful things seem to happen in that ecosystem. If you want to push something you want to be at the edge right? And although I believe Python and Ruby are equal in many qualities, Ruby is closer to the edge of where the next development happens. That was the reason behind my decision to add that.
- anko 12y agoThis. I don't know why more creativity seems to happen in the ruby ecosystem, but it really does. My preference of ruby over python comes down to elegance and string interpolation operators (ie. not much). But ruby attracts people trying to do interesting things. Some examples; Puppet, Chef, Vagrant, github, Jekyll. I'm noticing similar cutting edge infrastructure/service stuff being written in go by default.
- bjt 12y agoI think Ruby hit its peak at the same time as people were deciding what language to write Puppet, Chef, Vagrant, Jekyll, and Github in, but it's more a coincidence than something inherent in the language that led to those choices. Salt and Ansible, successors to Puppet and Chef, are written in Python. The author of Vagrant is writing his new tools in Go. The buzz and constant churn of new shiny things that I saw in the Ruby community a few years ago seems to have moved more to the node.js community these days.
- anko 12y agoI know I'm late to reply, but i'm interested. What cool stuff is happening in the node.js community. The only thing I can think of that is really cool is meteor. I think the thing that sucks about node is that javascript sucks. It's really a horrible language, it's just that it's everywhere. It's not the most horrible, but the type coercion, scoping and standard libraries really suck. When you say salt and ansible are successors to puppet and chef, it sounds like you are saying they are inherently better, but really they just came later. Out of interest are you saying you don't believe in Paul Graham's language spectrum? Blub paradox and that?
- pwang 12y ago> If you want to push something you want to be at the edge right? Wrong. You need to be at the core. In many areas that I've looked at, most of the activity happening at the edge is just churn from an ignorance of history and a naive blindness or lack of understanding of root problems. And there is plenty of interesting stuff happening in Python: compilers, visualization systems, devops orchestration, you name it. Don't mistake the noise on HN for reality.
- Igglyboo 12y agoI'd have to agree, Go is suited to more intermediate level students and Scratch for extreme beginners and younger children, but Ruby? Ruby is like a harder to read, slower, less used python. Once rails falls(and it is falling) ruby will become a niche language.
- im3w1l 12y agoI haven't been following the ruby/rails community much. In what way is rails falling?
- Pacabel 12y agoRuby on Rails apps have started causing a lot of problems for a lot of people. Any small initial gains obtained by getting Ruby on Rails web apps put together and deployed rapidly have time and time again been lost many times over due to performance problems, severe maintenance headaches, security flaws, and other issues such as those. In short, it hasn't managed to live up to the immense amount of hype that once surrounded it. Those issues, combined with many other languages now offering web frameworks that are far better than Rails, have caused a lot of developers and organizations to completely abandon it and apps written using it. Few people and organizations have time and other resources to dedicate toward something that is a liability, especially when the alternatives are so plentiful and better these days.
- rahimnathwani 12y agoWhich frameworks are far better than Rails? I've used Flask and Django, and like Python due to the large ecosystem of general packages available via pip. However, I've heard that Rails developers can be super-productive due to the much much larger ecosystem of web-related gems. If a Rails developer were to move to another framework, which ones would you recommend and why?
- bayesianhorse 12y agoI think Go isn't particularly suited for students at any level. It is a language built for applications that aim to scale extremely well in the cloud, and usually it is being used to replace small parts of a larger infrastructure. Go does not look as inviting for general web development (when runtime speed is not as essential as features) or general programming outside the web/cloud.
- Daishiman 12y agoGo is a highly specialized language made for very specific use cases and mind, and still missing features that are essential in many programming domains (dynamic linking and real generics come to mind). Ruby has no real reason to be if you're already using Python. Nothing wrong with that language (although I consider its programming culture to be inferior in many aspects) but it doesn't really do anything that Python doesn't do, even if it has a few more syntax tricks, which are at best a nice but superficial advantage, at worst another point of confusion and bugs. Scratch is impractical, and a toy language. Whatever ease of use it has is very quickly surpassed by the need to be productive.
- erikb 12y agoI appreciate your effort to explain in more detail how it actually might be. +1 for that.
- csense 12y ago> Go Requires curly braces and type declarations. These are easy for beginners to screw up. > Ruby Ruby's syntax makes me want to gouge my eyes out -- it's every bit as bad as Perl. I'm an expert and I hate Ruby. I wouldn't dream of exposing beginning CS students to that crap unless I wanted to convince them to change their major. > Scratch This is a toy language in a toy environment. I don't know the language well enough to judge its syntax, but the author's goal is "...rather swiftly bringing [students] to a level of skill where they can use computing in their other courses: to analyze data for those lab reports, to learn linear algebra, to solve problems in particle mechanics, problems involving differential equations, maybe even to write a program to control a robot." Scratch doesn't seem well-suited to this role, but there's enough language and library support for Python to be used in all these roles and many more.
- jeorgun 12y agoI feel like you're placing way too much emphasis on syntax here. From a non-superficial standpoint, you haven't brought up a single thing wrong with Ruby— or Go, aside from explicit typing. The thing about syntax is that, to some extent, it's subjective. You say Ruby syntax is awful? OK. Personally, when I first started programming, I hated Python syntax¹ so much that I called it quits. It wasn't until later, when I started learning Ruby and its "eye-gouging" syntax, that I could get past that hurdle. So I wouldn't exactly describe its syntax as an argument against using Ruby as a teaching instrument. ¹I've since grown to love it, but as a beginner this was very much not the case.
- freyrs3 12y agoYes, it's pretty universal that people find it uncomfortable to force themselves to think in a language they don't fully understand yet. Whether that's Ruby, Haskell, or Japanese. There are plenty of valid things to compare languages on ( semantics, types, runtimes, etc ) but arguments about lexical syntax are really not that interesting since they're usually just throwing opinions back and forth about which lexical construct is more "readable", as if this term had some objective cross-language meaning.
- csense 12y ago