4 ms·
>I've never quite understood the notion that languages like Python and Ruby are amenable to fast prototyping. I've thought about this for a while and I think t
by nemothekid 7y ago
>I've never quite understood the notion that languages like Python and Ruby are amenable to fast prototyping.
I've thought about this for a while and I think the "fast prototyping" reputation is an accidental feature that sticks because of history.
Python and Ruby were just better languages than Java 1.4, C++, Perl and PHP were at the time. They were so much better for not only prototyping, but writing - it was easier to get something working and iterate in Python than it was in Java. And not only were they better, they were better at the right time when the internet exploded.
Now, it largely feels like languages like Java and newer languages like Go have caught up, but Python and friends still enjoy the feature of "fast prototyping." Now I think this is because since they had gotten so popular, they now have a massive ecosystem of libraries and idioms that makes it so easy build applications.
- kyllo 7y agoJava and Go today are much better to work with than Java was in, say, the early 2000s, but to realize the productivity boost of a dynamic language within a statically typechecked language, you need type inference and a REPL. You still don't get this with Java or Go, but you certainly do with ML-like languages (Haskell, SML, OCaml, F# etc.) A lot of Haskell developers will tell you that writing Haskell feels a lot like a functional Python, and they use Haskell for scripting as well as application development.
- cutler 7y agoUntil Java gets data classes it will make you miserable. Lambdas are clunky in Java at best. "Much better to work with" than Java 1.3 is setting a pretty low bar.
- philwelch 7y ago> Until Java gets data classes it will make you miserable. https://projectlombok.org/features/Data https://projectlombok.org/features/Data
- pjmlp 7y agoJava has repl support since Java 9 and before that there were interactive sheets like Eclipse scratch pad, which alongside incremental compilation were already quite good. And while Java's type inference is not the same has having HM around, it is already q89te friendly.
- fouc 7y agoI think ruby has a reputation for "fast prototyping" for a few reasons 1) readable (somewhat english-like syntax) 2) terse (short and to the point, no extra setup code needed) 3) meta-programming/DSLs It still remains unbeatable for readability and terseness..
- nitrogen 7y agoDon't forget 4) no compilation/ultra fast test cycle and 5) REPL (IRB or Pry)
- cutler 7y agoYes, and it's for this reason that adding a type system will to it will alienate a lot of its users. You can say "optional" or "gradual" as much as you like but adding types will split the community which is the last thing Ruby needs right now. The trouble with tech is we just can't let something be and stop fiddling with it. Ruby is fine just as it is.
- bhaak 7y ago> Ruby is fine just as it is. Which Ruby do you mean? 1.8, 1.9, or a more current one?
- zapzupnz 7y agoThis response makes sense to me.