Live data from Hacker News

Went Off The Rails: Why I'm Rebuilding Archaeopteryx In CoffeeScript

gilesbowkett.blogspot.in

131–140 of 143 posts

Re: Went Off The Rails: Why I'm Rebuilding Archaeopteryx In CoffeeScript

#131
post #61

Earlier quoted context omitted.

OK it's mad funny, but what's so hard about `alias bx 'bundle exec'` in your .(bash|zsh)rc file?

You shouldn't need an alias in the first place. "Convention over configuration."

Correct. The problem isn't the difficulty, it's the education.

In my own project (SproutCore), we've used Ruby-based buildtools since 2007, and there is unanimous support to move to Node, precisely because running a modern Ruby stack requires so much education.

We want to spend time in our IRC channel on SproutCore itself, not Ruby and it's myriad problems (all of which have "fixes" that "aren't so hard").

We're also moving to Node because the performance of the Ruby tools sucks, despite three rewrites (one by a member of the Rails core team, so not Ruby n00bs).

The Node tooling? It's so fast that we can literally rebuild the entire project from scratch every time we reload the app and still load everything into the browser in under a second. Oh, and it took about a day to write. :/

That, to me, is why Node is taking off. The "I can get shit done quickly" factor is very high, the resulting code runs very fast, and the community is large, energetic, and helpful. Plus, pretty much everyone has to use JavaScript today.

Re: Went Off The Rails: Why I'm Rebuilding Archaeopteryx In CoffeeScript

#132
post #61

Earlier quoted context omitted.

You shouldn't need an alias in the first place. "Convention over configuration."

Correct. The problem isn't the difficulty, it's the education. In my own project (SproutCore), we've used Ruby-based buildtools since 2007, and there is unanimous support to move to Node, precisely because running a modern Ruby stack requires so much education. We want to spend time in our IRC channel on SproutCore itself, not Ruby and it's myriad problems (all of which have "fixes" that "aren't so hard"). We're also…

> precisely because running a modern Ruby stack requires so much education

Education about what? Can you give some specifics here? I'm genuinely curious as my day-to-day ruby development is pretty smooth and I haven't been doing it very long.

Re: Went Off The Rails: Why I'm Rebuilding Archaeopteryx In CoffeeScript

#133
post #50

Earlier quoted context omitted.

OK it's mad funny, but what's so hard about `alias bx 'bundle exec'` in your .(bash|zsh)rc file?

I have that exact alias. But it still adds 3 seconds to the startup time of any command run under it Maybe my laptop is underpowered, but three seconds to do essentially nothing is still a long time

Just to satisfy my curiosity, have you upgraded to 1.9.3 yet?

Re: Went Off The Rails: Why I'm Rebuilding Archaeopteryx In CoffeeScript

#134
post #90
post #60

Earlier quoted context omitted.

> Not pursuing hotness is the new hotness IMHO. If you are like this, you'll probably like Knuth's "My advice to young people", http://www.webofstories.com/play/17152 . The relevant part: And I think one of the things that I would, that would sort of come first to me is this idea of, don't just believe that because something is trendy, that it's good. I'd probably go the other extreme where if something, if I find to…

Contrarianism is not an end in itself. If you deliberately take the polar opposite of what is popular, you're following fashion just as much as someone who always has to be using the new hot thing. How about we just use the tools that allow us to both do a good job and enjoy doing it. If part of your enjoyment comes from feeling that you're using the optimal modern configuration, that's great. If part of your enjoyme…

> The idea that "If my work had become too popular I'd probably think I'd have to change" is terribly cynical.

Not really. For some people, the goal is to do useful work that only you can do. When your work becomes mainstream, that means there are people willing to take it and run with it. At that point, you've made a great contribution. Leave it to the next generation and move onto the next project. It keeps you from being complacent, keeps you moving forward and creating new things.

Case in point - how many new things has Steve Jobs created since he re-joined Apple? How many new things has Linus made since he started Linux? Two very different approaches to projects and work, yet I wouldn't call either of them cynical.

Re: Went Off The Rails: Why I'm Rebuilding Archaeopteryx In CoffeeScript

#135

Earlier quoted context omitted.

Error handling isn't a problem if you understand MONADS

Could you give a brief code example how monads eliminates the problem of error handling? Do you mean to put try catch in the monad around every async step it takes in? Just the API for how this would even look would be great.

this is just a sketch to give you an idea of what I am talking about. right well you've probably used jquery before, so the api would look something like this. You start with a sequence of async actions you want to perform.

$(ctx).geturl("http://example.com).parseExample().renderTemplate().end();

Now this is a bit different from jQuery since all the methods here do is push method names and arguments onto a stack. it's the .end() method that reads in the stack and goes through and executes it. This means that each method along the way we've constructed a partial computation value- that is, the stack, which we can pass around as a value- just leave off the "end" method...

var scrapeHN = $(ctx).geturl("http://example.com).parseExample().renderTemplate();

now we can modify the computation by turning it into an error handling monad...

var ecm = ErrorCatchingMonad(scrapeHN, errorCallback);

this wraps each method in the monad with a try catch block, and calls the callback if an error gets thrown, and stops the chain from getting executed further. in fact this is how the origial monad was created

var $ = DeferringMonad(scrapingAPI);

which takes a normal jquery style plugin interface/chaining api and turns it into that deferring stack type api with an end(); method.

Re: Went Off The Rails: Why I'm Rebuilding Archaeopteryx In CoffeeScript

#136
post #18

Glad you published this Giles. I really think you hit the nail on the head in your criticism of rails, and not necessarily ruby. I think some of the framework decisions in the 3.0 release were kind "abstraction for abstraction's sake" moves. In other areas, I think the framework has pushed beyond what the language is capable of handling in a reasonable manner, from a performance perspective (I'm talking about develop…

You'll get no argument from me that sinatra is simpler, faster and elegant. However, I've often found that sinatra APIs end up re-implementing rails features one by one over time. Have you not seen a similar trend?

In some cases, definitely. However, I rarely find myself missing most of the features that you don't get.

Re: Went Off The Rails: Why I'm Rebuilding Archaeopteryx In CoffeeScript

#137
post #43

Earlier quoted context omitted.

OK it's mad funny, but what's so hard about `alias bx 'bundle exec'` in your .(bash|zsh)rc file?

or if that's too much use --binstubs to use "bin/rake balls" or if you are really, utterly crazy, use --binstubs AND set $PATH to contain './bin' and then use "rake balls".

whats the fuzz about bundle exec? that annoyed me for some time but it's sure gone for some time that I don't even remember it anymore..

Re: Went Off The Rails: Why I'm Rebuilding Archaeopteryx In CoffeeScript

#138
post #4

Earlier quoted context omitted.

How are things harder with these technologies?

Having to learn the ins and out of bundler `bundle exec, update, --without :darwin`.. just to use a package handler. I had growl_notify installed, and now we've forced our team to be mac only because we got tired of dealing with linux issues. Ruby Debug is impossible to get working in 1.9.3. The maintainer of ruby-debug has gone AWOL so we're forced to deal with solutions like this http://blog.wyeworks.com/2011/11/1/…

getting ruby-debug to work with 1.9.3 was one of the first things I done after trying 1.9.3.. it wasn't hard or time consuming, I don't even remember what was the fix.. so I don't get this complaints...

I don't have bundle exec issues...

time rake environment takes 4 seconds(1.9.3, 3.2)

I agree with a lot of things in the article, but I don't have the issues a lot of people are complaining here..

Re: Went Off The Rails: Why I'm Rebuilding Archaeopteryx In CoffeeScript

#139

Earlier quoted context omitted.

Funny, I've mentioned "ease of use" and "rails" to a few rails friends, and most have said something along the lines of "Rails was never pitched as easy to use - I've no idea where people get the idea that Rails was intended to be easy to use!". It may be just them, but I've heard it from more than a few Rails people (though not universally). Personally, it feels a bit revisionist, because I distinctly remember the R…

Rails was easy to use/learn in 2006/2007, and, coming from a background of 5 years of writing Java web apps, it was vastly easier than doing that mess.

I'm not saying it was or wasn't easy to use or learn, but I've had a few people tell me that it was never promoted as such by Rails proponents, only that it was a "better" way.

Again, my memory tells me that supporters at the time promoted it as easy as well, but I'm not finding much particular support material from 2006 on Rails (perhaps my google/archive-fu needs work).

Re: Went Off The Rails: Why I'm Rebuilding Archaeopteryx In CoffeeScript

#140
post #99

Earlier quoted context omitted.

Write your own? I'm sorry but if Bundler doesn't solve your problem (or introduces other problems) either try and fix those issues OR write your own dependency management lib.

And discussions like this, raising awareness and exchanging ideas, are a part of getting the problem fixed.

The correct place for these discussions is on the issue trackers & mailing lists of Bundler.
Post reply on HN