They way you'd build large systems in dynamic languages is to break it up into many smaller pieces that work together. This frees you to change parts without worrying about the rest. To me, this type of development is much more natural and sane than the "one big clusterfuck" type of projects I've seen in Java et.al. Edit: Also, dynamic languages let you make the tradeof between safety and speed. Sometimes you go slow…
Confessions of a Ruby Developer Whose Heart was Stolen by Scala
61–70 of 74 posts
Re: Confessions of a Ruby Developer Whose Heart was Stolen by Scala
#62I just wonder when someone will build a tool to annotate Ruby, Python source code with var types gathered during run-time. If C has Valgrind then dynamic typed languages should get something for the types.
http://blog.jetbrains.com/pycharm/2013/02/dynamic-runtime-ty...
Re: Confessions of a Ruby Developer Whose Heart was Stolen by Scala
#63For those interested in learning Scala I'd recommend the free chapters from Scala for the Impatient: http://logic.cse.unt.edu/tarau/teaching/SCALA_DOCS/scala-for...
Also, _Functional Programming Principles in Scala_ course on Coursera by Martin Odersky (Scala's designer) is very good. https://www.coursera.org/course/progfun
And take the "in Scala" part of the course title with a grain of salt. You're only taught enough to complete the exercises.
Re: Confessions of a Ruby Developer Whose Heart was Stolen by Scala
#64As a Ruby developer, I can't get through these sorts of slides. My other languages are C, Go and JavaScript, and the Scala syntax is totally inscrutable to me. Isn't the point of slides presenting something that can be easily absorbed? And I can't just quickly look up these declarations either — Scala is too complex for that given my experience level. Is there a gentle introduction talk for Scala around so I can eval…
I'm a Python developer and find a lot of the Ruby criticism in those slides weird. For example you can also monkey patch in Python, but I only recall using it once in the last several years to fix a bug in one method in the standard library. Similarly it isn't a Python pattern to want to write 2.gigabytes. Are the Ruby complaints in the slides real - do people do those sort of things often and expect other languages…
Re: Confessions of a Ruby Developer Whose Heart was Stolen by Scala
#65Earlier quoted context omitted.
Because they allow us to put very useful limits on the degree to which changes in a large and evolving codebase will violate the expectations of developers. When adding and changing code in large collaborative projects, the primary question in every developer's mind is "OK, what else depends on this, i.e., what is possibly going to break?" This goes back to the old wisdom of separating interface from implementation.…
> But programs in languages which enable, if not encourage, developers to add new methods to the integer '5' can quickly become very difficult to reason about. Can you give me an example of a single ruby developer who thinks this is a good idea when writing new code/a library?
Re: Confessions of a Ruby Developer Whose Heart was Stolen by Scala
#66Earlier quoted context omitted.
Do not forget, however, that (for development) you can easily skip the Proguard step if you install the scala libraries on your device directly. Also, setting SBT up is pretty much a one-time thing. Afterwards, you only need to do a few tweaks when starting a new project. I've used Scala for a couple Android apps in the past... it was great fun to do so! Still, AndroidAnnotations not working with Scala code requires…
Thanks, I forgot about loading the libraries directly onto my phone for testing. When you say Android Annotations, are you referring to the ones built into java/android (like @TargetApi) or your own custom ones? Just wondering, since I'm about to add ActionBarSherlock to a Scala project and it includes quite a few I'll have to rewrite. Edit: seems it doesn't like ActionBarSherlock most likely due to that. I get "Erro…
Regarding AndroidAnnotations: https://github.com/excilys/androidannotations/wiki
Re: Confessions of a Ruby Developer Whose Heart was Stolen by Scala
#67Earlier quoted context omitted.
Because they allow us to put very useful limits on the degree to which changes in a large and evolving codebase will violate the expectations of developers. When adding and changing code in large collaborative projects, the primary question in every developer's mind is "OK, what else depends on this, i.e., what is possibly going to break?" This goes back to the old wisdom of separating interface from implementation.…
> But programs in languages which enable, if not encourage, developers to add new methods to the integer '5' can quickly become very difficult to reason about. Can you give me an example of a single ruby developer who thinks this is a good idea when writing new code/a library?
It only takes one, but here are a few thousand to start with: https://github.com/search?l=Ruby&q=%22class+Integer%22&ref=a...
Do your projects use any Gems that are pulling in any of this code?
Could they change to do so in the future?
Most importantly: how much effort is it for you to definitively answer this question?
Our task is that of proving a negative (which as we all know is very difficult). Namely that there is no other code that is relying upon the behavior that you are changing. When there are reasonably well-defined interfaces between components it dramatically reduces the possibility space for implicit dependencies and interactions. So this is a slam-dunk case where tools can make our job much easier.
Without tools, we're basically reduced to "verbal lore" and "honor system". Programmers have to rely upon the shared understanding and behavior of other humans in order to reason about their own code.
Re: Confessions of a Ruby Developer Whose Heart was Stolen by Scala
#68Earlier quoted context omitted.
Thanks, I forgot about loading the libraries directly onto my phone for testing. When you say Android Annotations, are you referring to the ones built into java/android (like @TargetApi) or your own custom ones? Just wondering, since I'm about to add ActionBarSherlock to a Scala project and it includes quite a few I'll have to rewrite. Edit: seems it doesn't like ActionBarSherlock most likely due to that. I get "Erro…
I don't believe I've used ABS with Scala before. Shouldn't integrating ABS as an apklib solve this issue though? Regarding AndroidAnnotations: https://github.com/excilys/androidannotations/wiki
Ahh, I know of that project. Like it quite a bit. Was just confused over the ambiguity of the term "annotations." Thanks for the followup though.
Re: Confessions of a Ruby Developer Whose Heart was Stolen by Scala
#69Earlier quoted context omitted.
Because they allow us to put very useful limits on the degree to which changes in a large and evolving codebase will violate the expectations of developers. When adding and changing code in large collaborative projects, the primary question in every developer's mind is "OK, what else depends on this, i.e., what is possibly going to break?" This goes back to the old wisdom of separating interface from implementation.…
programs in languages which enable, if not encourage, developers to add new methods to the integer '5' can quickly become very difficult to reason about. You do know that Scala allows just that, right?
Do you happen to know of any coding standards documents for large projects using Scala?
Re: Confessions of a Ruby Developer Whose Heart was Stolen by Scala
#70Earlier quoted context omitted.
programs in languages which enable, if not encourage, developers to add new methods to the integer '5' can quickly become very difficult to reason about. You do know that Scala allows just that, right?
If I knew it at one point, I've forgotten it. Do you happen to know of any coding standards documents for large projects using Scala?