Skip to content

Instantly share code, notes, and snippets.

@scottgonzalez
Created April 16, 2012 18:02
Show Gist options
  • Star 12 You must be signed in to star a gist
  • Fork 4 You must be signed in to fork a gist
  • Save scottgonzalez/6d635e9001b92215266a to your computer and use it in GitHub Desktop.
Save scottgonzalez/6d635e9001b92215266a to your computer and use it in GitHub Desktop.
; var http = require('http')
; var fork = require('child_process').fork
; function fib(n) {
; ; if (n < 2) {
; ; ; return 1
; ; } else {
; ; ; return fib(n - 2) + fib(n - 1)
; ; }
; }
; if (process.argv[2] == 'fib') {
; ; var r = fib(40)
; ; process.send({ result: r })
; ; process.exit(0)
; } else {
; ; var server = http.createServer(function(req, res) {
; ; ; var child = fork(__filename, [ 'fib' ])
; ; ; child.on('message', function(m) {
; ; ; ; res.writeHead(200)
; ; ; ; res.end(m.result + "\n")
; ; ; })
; ; })
; ; server.listen(8000)
; ; console.log("server online at http://localhost:8000/")
; }
@jessbowers
Copy link

april fools, right?

@davidbitton
Copy link

Hazah!

@kswedberg
Copy link

A side benefit of this style is that on lines like #7 above, the code starts with a little wink: ; } Makes me feel warm and fuzzy.

@popthestack
Copy link

I don't know. I kind of feel like it needs more semicolons. Preferably at the end of each line.

@jeffa00
Copy link

jeffa00 commented Apr 16, 2012

My God. It's full of semi-colons.

@mikehostetler
Copy link

Sweet Sweet Semi-Colons

@adamdbradley
Copy link

I'm just going to start writing directly like uglify and cut the fat at step 1.

@idbentley
Copy link

The best part is how each line has a pre-semicolon. Now I don't have to worry about those extra pixels of whitespace on the right hand side of my screen!

@midu
Copy link

midu commented Apr 16, 2012

Unfortunately it doesn't make my multi-line JSON very happy:

; var cat = {
; ; say: function () {
; ; ; return 'hai'
; ; }
; }

; cat.say()
✗ node hai.js
~/dev/hai.js:2
; ; say: function () {
^

node.js:195
        throw e; // process.nextTick error, or 'error' event on first tick
              ^
SyntaxError: Unexpected token ;
    at Module._compile (module.js:414:25)
    at Object..js (module.js:459:10)
    at Module.load (module.js:335:31)
    at Function._load (module.js:294:12)
    at Array.<anonymous> (module.js:479:10)
    at EventEmitter._tickCallback (node.js:187:26)

@eliperelman
Copy link

@midu Scott said:

If you're thinking "what about multi-line arrays and objects?" then you're clearly just building your apps wrong.

And that is an object literal, not JSON.

@jakobo
Copy link

jakobo commented Apr 17, 2012

@midu I think you're approaching it wrong. Everyone knows it's best to build objects sequentially in semi-spaced notation...

; var cat = {};
; cat.say = function () {
; ; ; return 'hai'
; }

; cat.say()

all better.

@scottgonzalez
Copy link
Author

@jakobo The indentation is incorrect. You can tell because the semicolons look out of place on the return line. Also, you have a trailing semicolon on the first line ;-)

@benjick
Copy link

benjick commented Apr 17, 2012

Not only does it look fantastic because there are no pesky semicolons at the end of each line

This is the most stupid argument I've ever heard. Just use semicolon

@Qard
Copy link

Qard commented Apr 17, 2012

Urge to kill, rising.

@estelle
Copy link

estelle commented Apr 17, 2012

Awesome!

@anddoutoi
Copy link

Could this be built into vim? Maybe we could extend with something like semitabs instead of softtabs and have :retab insert this instead?

@wjcrowcroft
Copy link

Sorry man, you're a little late to the party on this one. I've had my IDE set up to do this for months already...

Any minifier automagically removes all the semicolons for production anyway. I don't know how... it just knows.

@nonken
Copy link

nonken commented Apr 17, 2012

WIN: I love how easy it is to read

; if (foo) {
; ; // do something
; ; if (bar) {
; ; }
; } else {
; ; // do something
; }

It's all becoming curly braces :)

@sovcn
Copy link

sovcn commented Apr 17, 2012

It seems to me that this could potentially make the code slower by making the interpreter think it has to parse additional expressions. Depends on how it was designed I think.

@kswedberg
Copy link

Hey folks, sorry to spoil the party, but this is a joke. In other words, it wasn't intended to be taken seriously.

@idbentley
Copy link

@sovcn - That's an implementation detail up to the browsers to fix. We should be writing idiomatic js, optimized for style, not performance.

@wayneashleyberry
Copy link

★★★★★

@midu
Copy link

midu commented Apr 17, 2012

@jakobo omg, you're so right! This is not only super readable but it brings syntax consistency to large teams!

@danheberden
Copy link

@kswedberg nice try trying to mislead us - this is totes for reals

@kswedberg
Copy link

@danheberden think of the children!

@eliperelman
Copy link

I'm currently in the process of writing a build tool that will help you convert your old code to this new convention. Don't worry, help is on the way!

@danheberden
Copy link

Thank god for the soldiers of the web such as yourself - may the spirit of the semicolon cause your cup of success to overflow.

@anddoutoi
Copy link

"The" semicolon is strong with this one.

@cowboy
Copy link

cowboy commented Apr 17, 2012

The best part is that it looks like the code I already write!! Because my text editor puts the vertical lines in for me already

see

awesome code example

this is from a new aplication im building called "process-content.php"

@alfeg
Copy link

alfeg commented Apr 18, 2012

@cowboy sweet line numbers ^_^

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment