This might be a minor nitpick, but it always bugs me when Ruby on Rails is listed as a language, particularly by people who should know better (developers). There's even a section for frameworks on the site. People searching for code snippets should be able to understand that Ruby is a language and Ruby on Rails is a framework.
Just because it modifies the standard library classes doesn't make it a separate language in its own right. If you used Java but with a different implementation for, say, linked lists than the standard one you'd still be using Java.
Absolutely! Rails is written in Ruby and is run by the Ruby interpreter. No doubt about it. But if you dig in you find that pretty much every Ruby class (including the low-level ones) has been modified for use in Rails. In addition, a lot of Rails code is written in a purpose-built DSL. Rails has built-in DSLs for web routing, email sending/receiving, database queries, &c. You can split hairs and say that these are APIs and not real DSLs, but I think the point about dynamic languages blurring the lines is totally fair. You could implement the core Java spec in Ruby by modifying the base classes, and at some point you aren't writing Ruby any more.
Their definition of "language" is pretty fuzzy. Node.js and Javascript are separate languages, and .NET is also included in the language section. The only actual programming languages under that tab right now are Javascript and PHP.
Thanks. Creating simple categories for the vast quantity of frameworks, languages, apis, etc out there is hard. We're hoping to get better at it as time progresses
I really like the idea, but holy hell the site design needs some work. There are a lot of areas that are overlapping, or rendered kind of funky. The mess of purple icons should just probably go. Also when you finally select a language, the list of projects is really hard to read.
Keep up the good work, it's a good idea, just need to push the design way more.
Absolutely - why o why do you have random purple icons taking up half the screen, pushing your content below the fold? Ditch em!
edit: Having browsed the rest of the thread I see this may be a bug. If it helps, I am using: Version 28.0.1500.71 Ubuntu 12.04 (28.0.1500.71-0ubuntu1.12.04.1)
Works great but the site design needs some work. Am I supposed to see three rows of big purple icons at the top of the home page? I tried multiple browsers, looks a bit awkward and takes up half of my screen.
The first time I brought it up in Firefox I didn't see the icons. But maybe it was just a loading delay though because I see them now. Sorry to be a downer!
Founder of Runnable here. We've got some reports that the site isn't loading properly in some browsers. We're working to fix this now, and ask you to retry in an hour :)
- Yash
Nice, but looking at the paperclip rails example I really didn't understand where to look. The only file visible was the application controller, and the application wouldn't run because the migrations hadn't been executed.
I think you need to gain some perspective. They just didn't respond to your email. It happens. Fwict, it was outside of the expected communication channels for proposals anyway. It would have been more respectful if they contacted you, I can understand your frustration waiting for the reply, but you've completely overreacted. IMO what's most unprofessional about the incident is you taking such a minor grievance to a public forum.
I don't see where they exploited you. I'm not familiar with how elance works but it sounds like you submitted a proposal and never heard back. That's pretty standard in my experience.
TL;DR - Runnable only solves the small-picture problem. The best solution to the bigger-picture problem would make Runnable obsolete, because it's an anti-pattern to begin with.
---
The small version of the problem is that it's hard to find these snippets spread out across the internet, and then figure out if they work, and then copy-paste them into your program. Runnable solves the finding problem.
But the bigger version of the problem is that you shouldn't be copy-pasting these snippets into your codebase all the time, no matter how small they are. If they are useful enough that you find yourself looking them up often, or they are useful enough that they merited being posted on someone's blog, then they are useful enough to make into a package and share them properly. The node.js module system with npm gets extremely close to this goal. And for client-side Javascript, component[1] does the same thing.
2. Then there are "plugins", which are pretty big in scope themselves. They have to be big enough to be "plugin-worthy", influenced mostly by how annoying it has been to install plugins in the jQuery days, via copy and pasting them into your /libs folder. These are things like:
- backbone marionette
- jQuery waypoints
- underscore string
- any jquery plugin
- any angular plugin
- etc.
Most package managers, with that kind of thinking in mind, stop there, at the "big library" and "plugins" level. Bower has this shortcoming. It's great for quickly grabbing a copy of jQuery and a few jQuery plugins, but it doesn't actively encourage making smaller modules, which is critical to solving the big-picture need Runnable is trying to solve.
3. The third type of package are tiny modules that at first glance you are tempted to just stick right into your /utils folder. These are so small that in old-school package managers it would be more hassle just to make them into packages. (This is why it's crucial for package managers to have as little beaurocracy as possible by the way, to avoid that line of thinking.) These are things like:
Those tiny modules are the kinds of things you find StackOverflow answers for all the time. People keep having the same problems over and over again, and eventually the answers get voted up. Things like, "how do I convert a camel case string into a snake case string?".
As soon as you take those simple tasks and package them up in a way that installing them is as easy as:
$ component install ianstormtaylor/to-snake-case
Then you start to see crazy gains in productivity and quality of your code. When you do that you aren't copy-pasting some shoddy StackOverflow answer into your codebase, so that the onus is now on you to maintain it. Instead, you're just dependning on an open-source component that is packaged along with tests to make sure it continues to work. It's visible by tons of others, can be improved when bugs crop up, and you don't need to maintain yourself if you don't want to.