Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
A large, bloated JS framework with an unintuitive syntax and very few features (github.com/facebook)
141 points by gbog on July 6, 2012 | hide | past | favorite | 68 comments


Find the self-deprecating humor quite amusing, but even better is the actual description:

"Because Javelin's design focuses heavily on solving scalability challenges, it isn't appropriate for everyone. The design implies tradeoffs, and the cost of some of these tradeoffs is increased complexity, reduced ease of development, or less flexibility"

This is really refreshingly honest, especially compared to some of the newer nosql sites we've seen lately.

Edit:

  - "We designed for x, y & z to fulfill these requirements: .."
  - "These are tradeoffs though, so if your needs a different,
     this may not be the best approach"


It is refreshing to see something not pretending to be all things to all people whose drawbacks are only widely known after the Hype Curve starts the downwards portion..


Ummm... when you goto the website in the top right corner it has what I think might be a chinese flag and says 'hacked' http://www.javelinjs.com/

But otherwise looks like a good effort.


Evan is a special soul, with the heart of a poet and the spleen of a troll.


I have found your sentence to be so succinct but explains a lot.




Maybe it's just me, but if I wanted someone to use my software I wouldn't have 'lulz' on the main page that could scare people off.

The tests link doesn't work either so I thought it was somehow related.


"This snakeskin jacket is a symbol of my individuality and my belief in personal freedom." - from Wild@Heart.

For some people expressing individuality is more important than "wanting someone to use their software".


You'd want to 'lulz' and be rude to avoid the hipsters. You may wish to have a little community with a better noise signal ratio, and you may use your README to scare the «serious» programmers that rely more about BS told on a website than on reading the code.

Still, I am not the targeted audience for their framework. I do not like their syntax.


This seems like some kind of bizarre/opposite logic to me. You think you'd get a better signal-to-noise ratio from the lulz crowd, and that non-'lulzy' programmers are more into (marketing?) BS than reading code? I am fascinated by this point of view.


Well, since CS due to good wages has attracted the hipsters that confuses their IQ with the price of their gadget, and that are in average better at communicating (with their so hype websites) than the average hectic programmers, you may want to filter them out, and make fun of them.

These self called geeks and gurus are best avoided in projects. I guess the hacked by China joke is like a filter.

Real programmers do it for fun. And they not only do it in few words, they also do it with 'finger'.

I guess, they are just doing a cultural handshake they try to filter out the morons by sending irrelevant information on one hand (the official website), and another one on the other hand (the doc is concise and clear).

For me it is a new divide in programming community: the infatuated hipsters self called geeks vs the mocking nerds.

For me it is the sense of the zed shaw's rant on rails, and of the readme and sites of javelin.

PS : I belong to the mocking nerds.


It sounds like you mean to imply that iOS developers and Ruby programmers are the hipsters, no? I'm not really familiar with the battle between "hipsters" and "real nerds" in the programming world. My experience has been the opposite of yours in that the lulz crowd is usually the more inexperienced group.

There are more dimensions here than just two. The two groups you've described co-exist with many other kinds of programmers. For example, Linus Torvalds is not a mocking nerd or a hipster. I would imagine that many programmers do not identify with the two groups you've described. There are groups of 'serious' and talented programmers, lulzy talented programmers, lulzy hipster programmers, and every combination in between. Shades of gray, as they say.


> Linus Torvalds is not a mocking nerd

Really? I thought he notorious for abrasive replies telling people they're idiots for using C++, etc.


Linus cuts through the crap and no longer sugarcoats his responses. After having to deal with so many idiots day in and day out he just doesn't waste his time with it. I'd say that's different from the 'lulzy mocking nerd' that the parent commenter describes.


Well: http://quotes.cat-v.org/programming/

Choose your mockin nerd.

You can rephrase most of these sometimes 20 years old+ quotes for each technical news we have seen recently.

A lulz is just another caricature of a nerd. Mimicking a trait like a monkey is not capturing the essence of the thing.

Science is the belief in the ignorance of the expert -- Feynman



Are you sure Linus Torvalds is not a mocking nerd or a hipster? He lives in Portland and tells Nvidia to fuck off.


(shades of different colors, actually.) well put.


The divide in CS is about imagination.

Some have it, some don't.

Some see shades of gray, some sees a rainbow of colours and even the ones that are not in the visible spectrum, I'd say.


Could you elaborate on this? Seems like an interesting point.


Yes, it is about ideas not words. You can learn the word, it does not forcibly tell you about the ideas. Especially the new one.

If a software has been done, buy it! It will be almost always less expensive than building it. If it has not been done yet, no book or knowledge can tell you how to do it.

And if an idea you can code is new, you'll hardly have the word for it. It is easier to brag about «well (re)known ideas» than doing new stuff.

Colours you can't see are ideas we have not yet the word to describe them to those who can't see them.


By placing prejudicial emphasis on factors other than ability, you're acting like what you criticize.


What the fuck did I just read... the programming world is not defined by some childishly perceived game of US vs. THEM. Can you take this drivel elsewhere please?

Hipsters? Nerds? Geeks? These pointless monikers don't say anything about someone's true programming aptitude. You're doing yourself and everyone else a disservice by acting like that these stereotypes exist.


So it's okay to pretend these stereotypes exist as long as we're talking about brogrammers and women, but not when it concerns hipsters and nerds?


I don't suppose you could define your usage of the word "hipster" for me? Because I can't see how it fits with my understanding of the word. It looks to me like you're just using it as a generic insult meaning "people who like what I don't like".


I think in this context (and usually) hipster means "someone who pretends to like something new or unusual in order to broadcast their superiority." That's why everyone thinks someone else is a hipster -- it's a claim about sincerity. As in "I've always enjoyed Pabst Blue Ribbon because I like the taste, but that guy over there is just a hipster."

That's also why it's a pretty jerk thing to call someone on the internet. Hipster-slingers: you have no frickin idea why people like the things they like. But try assuming it's because they actually like them. It makes the conversation a lot more fun.


Yeah, okay, I can see how that would fit.

I guess I just got confused as I would never use the term that way myself -- as you say, "you have no idea why people like the things they like".

As such, if I were to say "hipster", I'd be referring to the subculture - the skinny-jeans/chunky-glasses/retro-t-shirt/coffee-shop crowd. Being a trait I can actually consistently identify in a person, rather than a trait I can merely assert the presence of without evidence.


+1 JackC // very nice definition. With a tinge of truth :)

I only visualize the people with their crappy and expensive earplugs and ipod telling how much they love music. And they seems to ignore how much their sound is distorded.

Hispters love the words and attitude and despise the knowledge. That's my definition.


You're doing exactly what JackC is talking about. You're deciding your way of enjoying and loving music is the only way and anybody who does it in a different way is an imposter. Ironically, by my definition, that makes you a hipster :))


That's why I like your definition. It also frames me. It is witty. ^_^


hey, that's an excellent definition!


I'll buy for minute that it makes sense to scare off everyone who relies on bullshit bingo websites. But then, why maintain a lulzy website at all? Wouldn't a non-hipster, however you define them, spend that effort coding instead?


You realize that writing an ironic page like that is very "hipster", right?


What part of

>A large, bloated JS framework with an unintuitive syntax and very few features

didn't your browser display?

It's mostly designed for performance anyway.



http://phabricator.org I plan on using this, the site was part of the deciding factor.


you mean this: "Facebook engineers rave about Phabricator, describing it with glowing terms like "okay" and "mandatory"

? :)

Edit: Thanks for the link, that project looks awesome! I'm convinced already. Wonder if it was just the language that did the trick..


This is the part that got me: Written in PHP, so literally anyone can contribute, even if they have no idea how to program. Even babies and dogs can contribute


"Written in PHP, so literally anyone can contribute, even if they have no idea how to program"

I am loving the humor.




I'm getting a kick out of those comments! I'm glad that they find humor in the little things. It's a nice reminder that people still have fun programming. Reminds me of some of the stuff the Github guys release.


Also the "Hacked" ribbon on the homepage. http://www.javelinjs.com


Great site and self-deprecating humor. It's funny, but I don't Normally think "great JS" when I think of Facebook's Strengths...its backed and scalability seem quite impressive, but its frontend doesn't stand out in terms of performance (or consistency), but I'm likely not paying enough attention to all the factors that FB's interface has to deal with.

Ironically, this counterintuitive, lets-make-fun-of-other-JS-frameworks-overhyping-themselvs approach has already seeded into my mind, "FB must have awesome JS, remember how they could get away with parodying other JS frameworks?"


I really hate it when I'm browsing through images (in the pop-up) on a slow connection...

If I move to the next image before the current one finishes loading, the next one will be replaced by the old one when it finishes loading. Really annoying, a very simple thing to fix, but I guess that FB engineers never view their sites on slow connections...


Facebook's client is one of the most buggy pieces of web software I have ever seen, whether on mobile (iOS) or desktop (Windows - Chrome/IE/Firefox):

* pages frequently don't refresh correctly (content is missing)

* changes to your profile take hours to reflect or reflect inconsistently

* stale notifications persist despite reloading (CTRL+F5) a page

* notifications made within the space of 12 hours are listed as a combined notification

* image uploads fail with no way to recover (dialog just sits there) or often take me to an error page (with the album created)

* the timeline places items in weird locations with no way to fix it (changing the date doesn't work consistently)

* chat windows show inconsistent messages between two tabs on the same browser

That's just off the top of my head. Some of these seem to have been fixed, but I'm always running into new problems. (Note: I'm not suggesting it's easy building a site like Facebook.)


I guess you should pay more attention to the software you use. Gmails or Docs have similar problems. They are not so visible though because most people's mailboxes don't exceed 1 GB and Docs is rarely used.

Comparing that to the variety of gadgets and clickables on Facebook's website, the complexity of other Webapps looks like a joke.

Most stuff you mention are issues you see in a lot of heavy-load AJAX-Apps.

"chat windows show inconsistent messages between two tabs on the same browser" That's XMPP, mate.


I'm not sure what you're trying to say. I said it's one of the most buggy web applications I've ever seen. Maybe your experience differs, but I cannot see how that invalidates my experience.

I don't really understand your point about complexity. It seems contradictory. You're saying other sites have most of these issues but you're also saying Facebook is much more complex without having much more issues. That doesn't make sense, especially since you're also saying you think these issues are common to what you say is a fragile technology stack under these loads (AJAX) and suggesting that it's okay to then add extra "gadgets and clickables" to an already fragile stack.

With respect to your claims about Gmail, my 2 year old Gmail account currently consumes 815MB of storage across ~6K emails. I use Google Docs regularly. I have never seen the issues I listed w.r.t. Facebook on Google services. GTalk works perfectly across multiple platforms simultaneously. I even find www.gmail.com (mobile & desktop) to work better and more reliably than Apple's Mail application on my iPhone. I have never failed to attach a file to a Gmail email; I've also never failed to upload an image to Docs. Facebook's application - mobile iOS, under Safari on iOS, and on Windows - is consistently buggy.

You seem pretty heavily invested in defending Facebook in such a way that you take my observations as personal attacks. Are you currently employed there or have you been employed there by any chance? Or are you a non-native English speaker?


I'm not affiliated to Facebook in any way and non-native English speaker. Sorry if this sounds so offensive, I'm just becoming tired of people complaining about Web-Apps. Probably your problems solve by getting a better computer and a better network connection, or by removing some of your Facebook friends and deactivating Facebook Apps.

When using Gmail at work often, I frequently failed to sent attachments or I had issues with the mail client to load. Others had the same issue. It's always a question how you use applications.


* comments sometimes are posted, then disappear, then reappear a short time later.


What makes you think those are client problems and not back-end problems.. Especially things like "changes to your profile take hours to reflect or reflect inconsistently" sounds like back end to me..


A fair point but (a) my observations are still accurate (just scratch 'client') and (b) going off-topic, it makes me question the management structure at Facebook (re: recent post on HN) where they end up building a complicated set of features but can't build the back-end to support it.


If I understood it correctly, this framework is only used for the mobile site.

I can hardly think of any other well-known website that is more complex than Facebook. Every little screen space is used, you can click anywhere and it has hundreds of millions of users.

Compare the Facebook interface to the Google Interfaces and you know what I mean.


Because google wasn't able to build anything complex with JS, like say, a document editor that synchronises changes across multiple clients.


Technically, Writely built that editor, and Google acquired Writely.


Google Spreadsheets predates the Writely purchase and in any case, that purchase was in 2006, 6 years ago, so almost certainly Google Docs is 2-3 code rewrites past whatever the Writely team wrote.


Ha, fantastic! But if this was a Jeopardy questions, then I would have a tough time guessing which of the bigger client-side MV* frameworks this was targeted at.


What got me was clicking the 'Run Javelin Tests' link on the navigation bar at http://javelinjs.com/. :)


Best "Getting Started", EVER!

"GETTING STARTED

Eat a hearty breakfast. Breakfast is the most important meal of the day!"


Breakfast is even better when you eat it for dinner!


This doesn't look all that unwieldy. It looks like a concise library of choice front end utilities.


"Its primary design goal is performance; it is consequently well-suited to projects where performance is very important. It is not as good for smaller scale projects where other concerns (like features or ease of development) are more important."

That's Javascript for you - you can't have both performant and nice code at the same time.


You can have performant codes?


Half the development team seem to bee MooTools alumni


GETTING STARTED

Eat a hearty breakfast. Breakfast is the most important meal of the day!


I love the tone of the README..


Here is one more large, bloated JS framework with an unintuitive syntax and very few features

http://jquery.com/




Consider applying for YC's Winter 2026 batch! Applications are open till Nov 10

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

Search: