3 ms·
> It's the hangover from those standards that leaves kids today thinking that Python or Ruby are simpler than Java. I would really love to hear how you could p
by walls 14y ago
> It's the hangover from those standards that leaves kids today thinking that Python or Ruby are simpler than Java.
I would really love to hear how you could possibly believe otherwise.
- jbooth 14y agoThe language Java is simpler than the language Python or Ruby. Fewer keywords, those keywords do fewer things. Ruby and Python seem simpler for most web work due to better frameworks and dynamic typing, which is less simple than static typing, but is easier to work with in most web situations. I guess I'm drawing a distinction between 'simple' and 'convenient'. Monkey patching in Ruby is not simple, but can be convenient and make rails possible.
- DanWaterworth 14y agoBrainF##k has even fewer keywords than Java, that doesn't make it simple. I understand your point. Ruby and Python both have dynamic behaviour which makes it difficult to predict ahead of time what will happen when a program is run. In practice, however, the full range of possibilities is never exercised. It's not enough to look only at the language specification when you make these generalizations. EDIT: TL;DR, essentially what matters is not the complexity of the language, but the complexity of programs written in the language.
- Ao7bei3s 14y agoThe keyword count thing is easily refutable: Python has 38 keywords, Ruby has 41, Java has 50. http://en.wikipedia.org/wiki/List_of_Java_keywords http://en.wikipedia.org/wiki/List_of_Java_keywords http://docs.python.org/3/reference/lexical_analysis.html#identifiers http://docs.python.org/3/reference/lexical_analysis.html#ide... https://github.com/ruby/ruby/blob/trunk/parse.y https://github.com/ruby/ruby/blob/trunk/parse.y (grep for reswords) I'm undecided whether Python/Ruby or Java are simpler. At least to me dynamic typing seems much simpler than static typing: from a very very pragmatic view that just means no compile-time checks (?), and I'm not that good with Ruby, but I'd consider Pythons type system much simpler than Javas (Python has none of: primitive types, null, arrays, interfaces, visibility (well, there is name mangling for __...), enums, final/abstract, the checked/unchecked mess (look up what the correct way to catch exactly: all checked exceptions is!), casting, generics and everything that comes with it: have a look at the index at the left side of http://docs.oracle.com/javase/tutorial/java/generics/index.html http://docs.oracle.com/javase/tutorial/java/generics/index.h... -- but to be fair Pythons type system has a couple of nontrivial features (metaclasses, multiple inheritance, ...) too) Python/Ruby have a lot of very useful language features which make the languages much less of a pain to use than Java (the language), but for any meaningful comparison of language complexity you'd surely also have to consider the intricacies of the underlying VMs. The Java VM is quite complex and also quite powerful. For simple programs that don't require high performance or efficient memory management or whatnot that might not matter much though. [Now, after having written this, I don't think its possible that any of the three languages is strictly simpler than any of the other ones.]
- jbooth 14y ago[Now, after having written this, I don't think its possible that any of the three languages is strictly simpler than any of the other ones.] Me too, great comment, thanks.