Hacker News new | past | comments | ask | show | jobs | submit login

I'm not aware of any other language that makes it so easy to write your code in either a functional or object oriented style. It doesn't do either perfectly, but it gets you a good 85% of the way there for both. Good enough that advocates of a particular style are able to write and enjoy writing JavaScript. I can't think of any other language that has that level of flexibility. Can you?



>I'm not aware of any other language that makes it so easy to write your code in either a functional or object oriented style

>I can't think of any other language that has that level of flexibility. Can you?

(Subjective opinion here)- I think Lua got it better; you can create a better object oriented program with it, as you can do it with functional style; Ending with a more elegant final source code down the road


Yeah, agree Lua did get it better. JavaScript is very much inspired by Lua, but has the disadvantage of having more "cooks in the kitchen" wanting to mess with it.


Ruby, Python, Clojure, Scheme, Lua, even Scala. All better than JavaScript in most ways.


Perl! How could you leave that out!


True. Regardless of how disturbing I find it, Perl does qualify.


I think it's inarguable that Ruby and especially Python are somewhat inhospitable to functional programming as compared to the rest of that list.


No less hospitable than JavaScript, which was my point.


I disagree strongly w.r.t. Python as anonymous lambdas are heavily restricted there. I disagree less strongly but also somewhat insistently about Ruby where the distinction between methods and functions is warranted but thus involves more overhead.


Having to use "def" isn't the end of the world. You often end up naming your lambdas in a let in scheme anyway.


JavaScript is hospitable enough that you see entire applications written in a functional style. Where is the Python and Ruby applications written mostly in a functional style? I've never seen any.


I've yet to see entire JavaScript applications written in a functional style. Just because "map" is used more often than Python doesn't make it functional.


I'd agree with this point. I don't think Python, Ruby, or Javascript are particularly "functional", whatever that means.


Better at being both a functional and object oriented language?


> Better at being both a functional and object oriented language?

Well that's both subjective and ambiguous (subjective in the evaluation of quality in each area, and ambiguous because the meaning of "better at a and b" can be interpreted in a number of ways, such as max by min(a,b), max by average(a,b), etc.

But, given that, I'd say that several of the listed languages are better at "being both a functional and object oriented language" than JavaScript, including Scala and Ruby.


So where's all the functional Ruby code? I've never seen any.


> So where's all the functional Ruby code?

All over. Various functional approaches are basic core Ruby programming techniques.

Its not a great FP language because it lacks functional purity (like most Lisps, and, more to the immediate point, like JS) and the main Ruby implementations lack TCO (as, again, do many Lisps and, again, JS.)

But there's certainly a lot Ruby code using functional style.


Better than JavaScript anyway, pretty much all of them.


I didn't ask which are "better", I asked which are better at being both functional and object oriented at the same time. I can accept Lua, but the others I really need a good argument for.


They are all better at both than JavaScript. There is no feature that JavaScript has that the other languages don't, often in very similar shapes. The reverse is mostly not true.


Javascript is reliably second or third place to all of those mentioned, so it trumps.

Worse is better, sorry.




Consider applying for YC's Spring batch! Applications are open till Feb 11.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: