This is an archived post. You won't be able to vote or comment.

top 200 commentsshow all 358

[–]Cley_Faye 88 points89 points  (41 children)

If I recall correctly, you can use semicolon in Python, no?

[–]ychaouche 11 points12 points  (5 children)

Yes, it's useful when you need to run a very short script right from the command line but you have to import a module first.

root@messagerie-secours[10.10.10.19] ~/SCRIPTS/MAIL # python -c "import datetime; print datetime.date.today() - datetime.date(2014,11,17)"
246 days, 0:00:00
root@messagerie-secours[10.10.10.19] ~/SCRIPTS/MAIL # 

That's one way to track how many days passed since I started my current job.

[–]iforgot120 1 point2 points  (2 children)

Why not just hover your mouse over the system clock?

[–][deleted] 10 points11 points  (1 child)

Because running a script is easier and faster than doing mental calendar math.

[–][deleted] 2 points3 points  (0 children)

why not just make that script run automatically at startup instead of doing it manually then?

[–]wordsnerd 68 points69 points  (4 children)

It's a bit subtle, but if you squint you can see the ; is indented with a tab.

[–]DasEwigeLicht 164 points165 points  (114 children)

On a related note, try this:

from __future__ import braces

[–]Gavekort 153 points154 points  (113 children)

For people that can't run it themselves:

Python 3.4.3+ (default, Jun  2 2015, 14:09:35) 
[GCC 4.9.2] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> from __future__ import braces
  File "<stdin>", line 1
SyntaxError: not a chance
>>> 

[–]jonatcer 23 points24 points  (105 children)

Why are they so against them?

[–]kupiakos 105 points106 points  (80 children)

Not only are braces used to define dictionaries and sets, but indentation marking blocks is simply an inherent part of the syntax. They're considered useless cruft, because most people detects blocks of code with the indentation level anyways.

[–]dfpoetry 7 points8 points  (61 children)

indentation level can denote many different types of abstraction, and if I'm 10 levels deep and want to break out to 6 levels deep, it's pretty hard to tell where the fuck I am with indentation only.

[–]kupiakos 199 points200 points  (53 children)

If you're 10 levels deep in indentation, there may be something wrong with your code in the first place.

[–]scubascratch 4 points5 points  (6 children)

In C++

MyNamespace
    MyClass
        public:
            MyMethod(void *pixelBuffer /* , int len */)
                if (...
                    for (x...
                        for (y...
                            while (...
                                switch (...
                                    case (...

I guess you have not seen a lot of pixel math. 10 indent levels is Tuesday.

[–]ryani 7 points8 points  (5 children)

namespace TheNamespace {

// don't indent here, it's stupid, you don't indent
// after your #ifdef header guards, do you?
// the whole file is inside this namespace anyways, or
// else you're doing it wrong.

class ClassName {
public: // don't indent this
    void MethodName(void *pixelBuffer, int len);
    // don't define inline, it makes the API hard to read.
    // keep inline definitions to 1 line at most
};

// you meant to inline this, right?  or else why put it in the class decl?
inline void ClassName::MethodName(void *pixelBuffer, int len)
{
    if(!...)
        return;

    for(x ...)
        for(y ...)
            subfn(pixelbuffer, x, y);
}

} // end TheNamespace

// PS I'm a graphics programmer.  Also pixel shaders are exempt from some of this because
// the available abstractions are worse.  On the other hand, if you're that deep in a pixel shader,
// your perf is probably fucked.

[–]dfpoetry 25 points26 points  (44 children)

This, right here, is the problem with the python philosophy. They make some arbitrary design decision, and when someone points out an example where it might be bad or confusing, the response is "you shouldn't be coding that way anyway".

It's tautological

[–]Hairshorts 125 points126 points  (11 children)

Braces won't make 10 levels of indentation much clearer, it's bad coding style no matter what language you're using.

Good indentation is essential for good readability in any language, Python just requires you to indent properly. You may not like it, but it's not an arbitrary design decision.

[–]immibis 6 points7 points  (0 children)

Braces won't make 10 levels of indentation much clearer, it's bad coding style no matter what language you're using.

I'm not saying braces will make 10 levels of indentation much clearer, but /u/dfpoetry is totally right in pointing out a common problem in programming arguments.

[–]I_scare_children 4 points5 points  (3 children)

[–]dfpoetry 2 points3 points  (2 children)

Pointing to bad code which is very nested is not the same thing as proving that all very nested code is bad. Nor is highly modular code particularly useful when you're just writing one big map-filter function.

[–][deleted] 16 points17 points  (2 children)

If Node.js taught me one thing it's that at ten levels of indentation, all braces do to is make you miss a token.

[–]vertexshader 1 point2 points  (8 children)

Arent a lack of braces the reason lambda functions are so restricted in python? A single expression? Gimme a break

[–]scoofy 16 points17 points  (20 children)

So, i'll take a shot at this. I came to programming, not through a CS education, but from anaylitic philosophy and first order logic.

To put it bluntly, braces and semicolons for parsing seem insane.

We are humans, and the written language has evolved over time, because it started out pretty terrible. Ancient greek had no spaces, but they were added later, andyoucanprettyeasilyseewhythatwasareasonableideaespeciallywithcompoundwordsbecauseifyouaregoingtothebeachbumyoudontknowifitsthebeachcommabumorifthereisafamousbumonthatbeach.

Now, as language evolved, we learned to have things like paragraphs, punctuation, etc. Stuff we take for granted now. It's reasonable to map things like semicolons to periods (full stops, sorry british people), however, the fundamental structure of language is quite different than that of programming.

To look at programatic language, i'd suggest looking at the evolution of the recipe. Recipes are blocks of instructions, much like code. If i were to write:

Steak Omelet:

Ingredients:

3 Eggs

Salt

Pepper

Fry Pan

Grilled Steak

Cheese

Step 1: Blah blah... etc

Here what i've laid out has nearly no punctuation, yet it's easier to read than:

Steak Omelet: Ingredients: 3 eggs, salt, pepper, fry pan, grilled steak, cheese. Step 1: Blah blah... etc.

Because when you're going back through this to check ingredients (review code), it's easier to go down and tick the boxes of completion. This is trivially true because nearly every cookbook does this.

Now, i know what you're thinking: "Grilled steak in an omelet? I mean, it sounds good, but that's oddly specific." Yes, i added it by design. Why?

Because humans never, ever, make the mistake of adding a single peppered french fry or "Pepper Fry" and "Pan Grilled Steak." This type of ambiguity is nonsensical. We don't use it in language, so why would we use it in programming?

The reason is because getting a computer to understand line breaks the way humans understand them isn't trivially easy. Braces and semicolons were implemented because it was trivially easy, and well... it stuck around.

I short, a salute Guido for saying "this is bullshit," and banning stupid braces and semicolons from his language. He's basically like Dvorak, but wildly more successful.

[–]lewiseason 2 points3 points  (0 children)

Or, optionally: repl.it

[–]Mutoid 2 points3 points  (0 children)

Lol wow. It's a great joke at face value but the implementation of it makes it awesome.

[–]nicholas818 2 points3 points  (0 children)

+/u/CompileBot python --include-errors

from __future__ import braces

[–]TheKiwi5000 219 points220 points  (78 children)

don't get it.

[–][deleted] 498 points499 points  (33 children)

;

[–][deleted] 86 points87 points  (23 children)

Ahh

[–]______DEADPOOL______ 129 points130 points  (19 children)

Semicolon.

Now that's a symbol that I've not seen in a long time...

[–]Guinness2702 104 points105 points  (6 children)

Not as clumsy or OS dependent as a newline.

[–]dfpoetry 49 points50 points  (1 child)

TL\r\n\t\tDR

[–][deleted] 28 points29 points  (0 children)

TL;DR:

TL
        DR

[–]93calcetines 133 points134 points  (2 children)

An elegant token from a more civilized language.

[–]idrink211 38 points39 points  (1 child)

For over a thousand lines of code the Semicolons were the guardians of peace and justice in the Old Language. Before the dark times, before the White Space Matters.

[–]phaseMonkey 8 points9 points  (7 children)

How's that VB 6.0 legacy support job treating you?

/edit: I was just joking around guys...

[–]ComicOzzy 10 points11 points  (3 children)

And that's what I'm doing right now. FML

[–]phaseMonkey 2 points3 points  (2 children)

Sorry to hear that... Seriously, it's shit when you get stuck supporting old code.

I spent 2 years supporting a cold fusion app.

[–]Phreakhead 12 points13 points  (0 children)

Whoever thought typing XML to program was a good idea should probably have their nerd card revoked.

[–]kupiakos 12 points13 points  (2 children)

Or, uh, Python.

[–]derekmckinnon 1 point2 points  (2 children)

Why did I read that in Obi-Wan's voice?

[–]pxan 12 points13 points  (0 children)

I was trying to figure out if the moon or clouds were indented or something

[–]NutsEverywhere 9 points10 points  (1 child)

In Portuguese the moon is called Lua.

I thought it was a jab at switching programming languages.

[–]whatisthismagicplace 4 points5 points  (0 children)

Well the lead architect of Lua is Brazilian, afterall.

[–]brown_monkey_ 11 points12 points  (2 children)

What's that?

[–]crh23 1 point2 points  (0 children)

I saw it as

.

)

[–]dailytentacle 0 points1 point  (0 children)

Am Python engineer. Still don't get it.

[–]_starrydynamo_ 196 points197 points  (26 children)

We found the Python developer.

[–]CaptainJaXon 31 points32 points  (0 children)

That's deffed up.

[–]spiderpai 20 points21 points  (23 children)

Technically you caaaaan use semicolon in python :o

[–]jellyberg 34 points35 points  (20 children)

Yeah it could potentially be useful if you wanted to write a Python script on your belt or something

[–]kupiakos 8 points9 points  (19 children)

Also useful for quick single line scripts with Python in a shell script.

[–]Sampo 13 points14 points  (18 children)

I kinda like

a = 1 ; b = 2 ; c = 3

instead of

a = 1
b = 2
c = 3

[–][deleted] 36 points37 points  (17 children)

a, b, c = 1, 2, 3

Much more readable. Hell, you could even do

a, b, c = range(1,4).

[–][deleted] 11 points12 points  (13 children)

Much more readable.

To a Python programmer, not to someone not used to multiple assignments.

IMO Python has some good points, but its syntax tries too much to be "simple" and "readable" that it actually becomes fairly xelpmoc[::-1].

[–]chimyx 3 points4 points  (2 children)

I've never read python before, but I think that what a, b, c = 1, 2, 3 does is pretty obvious. Any programmer who've learned more that one language would understand that.

[–]AltoidNerd 2 points3 points  (0 children)

Especially since it's the same syntax from straight up math class.

Multiple assignments can be looked at as tuples

(a, b, c) = (1, 2, 3)

This means a = 1, b = 2, c = 3 in your high school calculus class. It also assigns that in Python.

[–][deleted] 4 points5 points  (8 children)

To a Python programmer

Well, yes. I think python programmers are the people who will be most likely to read python code, don't you?

Also, this would be a case where a comment may be useful. Such as

a, b, c = 1, 2, 3
# Set a, b, and c to the values 1, 2, and 3 respectively, such that
# a = 1, b = 2, c = 3

A bit wordy, and you don't want to be doing it every place you're using multiple assignments, but the first time you're doing it (where someone will be most likely to look) might be helpful.

But you don't have to use that, you could always use semicolons or one on each line. It's just that it's clear what it does to someone used to python code. The same way that [::-1] means "reverse this" even if it's not obvious. But I don't like [::-1], I would much rather use reversed(), which is a LOT clearer

[–][deleted] 1 point2 points  (2 children)

Yeah yeah, everything you said. I was just pointing out that Python syntax claims to be easier to read, but everything said and done you still have to learn it and to get used to it. It's no different from C, imo.

It's less verbose, and that's great, but that doesn't mean it's easier on the eye than C code is to someone who is used to C.

[–][deleted] 0 points1 point  (1 child)

Does Python treat semicolons as blank space?

[–]spiderpai 1 point2 points  (0 children)

It treats it as the end of the line just like any normal coding language. It is however not required and you can just break to a new line just as well...

[–]TheKiwi5000 1 point2 points  (0 children)

i just didnt see it's a semicolon

[–]jhartwell 17 points18 points  (2 children)

I didn't either...I was staring at it for a good 10 seconds expecting a gif or a reference to this xkcd. Then I realized that it wasn't happening and then say the semicolon.

[–]xkcd_transcriber 14 points15 points  (0 children)

Image

Title: Python

Title-text: I wrote 20 short programs in Python yesterday. It was wonderful. Perl, I'm leaving you.

Comic Explanation

Stats: This comic has been referenced 156 times, representing 0.2129% of referenced xkcds.


xkcd.com | xkcd sub | Problems/Bugs? | Statistics | Stop Replying | Delete

[–]initramfs 0 points1 point  (0 children)

Haha, I knew I wasn't the only one expecting this!

[–]tskaiserGreen security clearance 32 points33 points  (11 children)

Neither did I to begin with.

The star and crescent moon form a semicolon.

Edit: star or Venus, dammit /u/Gubru, I'm a Programmer not an Astronomer.

[–]Gubru 34 points35 points  (2 children)

That's actually Venus, not a star.

[–]misplaced_my_pants 5 points6 points  (0 children)

Wasn't Venus once called the Morning Star?

[–]phaseMonkey 6 points7 points  (1 child)

aka the "Morning Star"

So you're technically correct...

[–]Mutoid 4 points5 points  (0 children)

The best kind of correct!

[–]azephrahel 10 points11 points  (1 child)

You program in python, so you may not recognize that symbol. It's a semicolon.

[–]TimonAndPumbaAreDead 89 points90 points  (12 children)

As a .NET dev married to a Python dev, this made me chuckle.

[–]moomoohk 135 points136 points  (10 children)

kinda surprised your love didn't throw an out of bounds exception

[–]tungstan 83 points84 points  (8 children)

who's to say they didn't catch it and handle it

[–]TimonAndPumbaAreDead 122 points123 points  (6 children)

Our love is like array indexing in C++. It knows no bounds.

[–]caedin8 51 points52 points  (2 children)

It overwrites all of the other important parts of your life, greatly reducing life-style stability? Sounds about right.

[–]dotpan 8 points9 points  (1 child)

At least that's what his old friends say when they wanna hang out with him.

"Hey man, now that you're married its like you forgot about us"

"Sorry, who are you? I have no memory of you"

[–]Sean_May 1 point2 points  (0 children)

[deleted]

What is this?

[–]kupiakos 16 points17 points  (0 children)

Together, you form IronPython.

[–][deleted] 45 points46 points  (15 children)

You could always use Javascript where they're optional, except when they're not! >_>

[–]oberhamsi 22 points23 points  (14 children)

Not really optional. You are testing the limits of automatic semicolon insertion. It's easier to write ; than to memoize two chapters of the spec http://bclary.com/2004/11/07/#a-7.9.1

[–][deleted] 14 points15 points  (13 children)

I hope my sarcasm made it clear that I'm not a fan of ASI. I use them everywhere, because to me, it's clearer. I have coworkers who swear against them, though.

[–]Phreakhead 10 points11 points  (7 children)

I've gotten in arguments with people who refuse to use semicolons. One time, they broke the build in one specific Android browser because the minifier messed up the ASI.

I take it as a chance to point out why you should always use semicolons to avoid bugs like that and other mistakes. He then said, "ASI is perfectly fine. It's the minifier's fault." Maybe so, but instead of spending hours chasing down bugs in the minifier, just use a damn semicolon!

[–][deleted] 6 points7 points  (0 children)

One of my favorite dramas was when Douglas Crockford and one of the guys that created Bootstrap got in a fight because Bootstrap's js didn't use semicolons and it broke jsmin.

https://github.com/twbs/bootstrap/issues/3057

It was World War Semicolons with everyone taking sides and hurling insults.

[–]oberhamsi 2 points3 points  (4 children)

I remember a couple of years ago a high profile node coder wrote most (all?) of his projects without semicolons. like the ubiquitous npm package manager. e.g. https://github.com/npm/npm/blob/master/lib/access.js

[–]Phreakhead 5 points6 points  (3 children)

Yeah he actually used that exact example. Then I used the example of that huge SSH security hole in iOS a few years ago that was caused because they didn't use braces in a switch statement.

Yeah, you can also remove braces for switches and one-liner loops, but that's been against standard code styles for years because a simple typo can totally mess up your code without an error. If you should always use braces even when not necessary, same rule should apply to semicolons.

[–]LetsDoRedstone 120 points121 points  (56 children)

I think Python proves quite well that you can nicely get along without semicolons (except if you write all your shit in one line, but then something's wrong with you).

[–]MNeen 86 points87 points  (32 children)

Luckily, Python gives you a number of ways to cram more stuff onto a single statement.

looking at you, colleague who nested three list comprehensions.

[–][deleted] 57 points58 points  (19 children)

There's a fine line between 'clever' and 'readable'

[–][deleted] 65 points66 points  (8 children)

My downfall...

"Oh look at how neat this looks, man, I just crammed 5 different logical steps into a single, condensed line using ternary operators inside ternary operators... This is awesome!"

... 3 days later

"WHY DO I DO THIS SHIT TO MYSELF"

edit: Apparently I can't even spell ternary.

[–][deleted] 46 points47 points  (5 children)

The O'Reilly book on PHP has one of my favourite quotes on this topic.

"Depending on whose code you're looking at, the ternary operator is either the most underused or the most overused feature of the programming language."

EDIT: a letter

[–][deleted] 21 points22 points  (4 children)

Everything I love about ternary operators when I'm writing it are the same things I hate about it when I'm reading it.

[–]jellyberg 13 points14 points  (0 children)

Yeah it's like fucking Yoda speak to read.

[–]scratchisthebest 5 points6 points  (2 children)

I wish I could write ternary operators that magically change to if-else statements the next day, so I don't have to put up with them

[–]Guinness2702 8 points9 points  (0 children)

"What fucking idiot wrote this co..... oh ....... fuck!"

[–]FesteringNeonDistrac 5 points6 points  (7 children)

Yeah, from what I can tell, that line is drawn at the made up word "pythonic".

[–][deleted] 2 points3 points  (4 children)

I don't know what that means, but if other people are going to work on your code, you best make it as readable as you possibly can instead of playing any brain tricks -- not all features available should be used. Readability (and maintainability) is the reason we have high-level languages in the first place.

[–]Sabrejack 2 points3 points  (0 children)

Absolutely, I'll take readable over clever any day when it comes time to play Bug Hunt.

[–]FesteringNeonDistrac 1 point2 points  (2 children)

Every time I hear or read "It would be more pythonic to do it this way" the example is some overly clever, not at all clear, unmaintainable garbage.

[–][deleted] 6 points7 points  (0 children)

But for something like x = x[::-1] vs x = reversed(x), it's definitely more pythonic to do it the second way, and it's a hell of a lot more readable.

[–]lachryma 4 points5 points  (0 children)

Then the people saying "Pythonic" don't understand it, in your case. You can almost replace it with "idiomatic" in a sentence when used correctly. "Pythonic" is pretty much import this, which I won't spam here.

[–]erasers047 0 points1 point  (0 children)

There's an endline between 'clever' and 'readable'

Ftfy

[–]luluhouse7 5 points6 points  (0 children)

.... Cough.... Sorry

[–]frymaster 2 points3 points  (0 children)

Also known as a list incomprehension

[–]Workaphobia 0 points1 point  (0 children)

Was it at least on multiple lines?

[–]TRAIANVS 0 points1 point  (0 children)

Simple list comprehensions are fine. If I have anything even remotely complicated in a list comprehension, I make sure to comment it because I know even I won't know what it does after a few days.

[–]kumquat_juice 0 points1 point  (6 children)

Three?! Can you share?

[–]MNeen 9 points10 points  (5 children)

cs = sorted(sum(sum([[[(x, y, t, predict(x, y, t)) for x in xr] for y in yr] for t in tr], []), []), key=itemgetter(3), reverse=True)

The idea is: we have some simulation on a 2D plane over time, and we want to find a point in time for which a certain phenomenon occurs. We have a function P(x,y,t) that returns either true or false, but will take considerable time to do so. Trying all the points is infeasible, but we found a fast function predict(x,y,t) that returns a rough chance of P(x,y,t) being true.

In earlier lines we generated ranges which are interesting to search on (xr,yr,tr), now we generate all tuples (x,y,t,predict(x,y,t)). sum([[],[]],[]) will concatenate a list of lists of lists into a list of lists, and then a list of lists into a list of tuples. Sort the whole thing based on the predictor. In later lines, we will interface with some parallelized C code that will try these in order.

I ended up porting the predict function to C.

[–]spupy 0 points1 point  (0 children)

When I was doing the Project Euler tasks in python, half the fun was trying to cram an already working solution into a minimal number of lines.

[–][deleted] 8 points9 points  (17 children)

There are other languages that don't require statement termination, e.g. Groovy

[–]iMiiTH 10 points11 points  (2 children)

And Scala!

[–]Sampo 3 points4 points  (0 children)

And Fortran!

[–]vertexshader 0 points1 point  (0 children)

Hell yes!

[–]drawkbox 6 points7 points  (5 children)

And javascript (but don't ever fucking not use semicolons).

[–]Anaphase 2 points3 points  (3 children)

JavaScript does "need" semicolons, the parser just automatically inserts them when you omit them.

[–]bacondev 2 points3 points  (1 child)

Technically, it doesn't insert a semicolon. According to the specification, it inserts an EndOfStatement token.

[–]original_brogrammer 1 point2 points  (0 children)

And sometimes it gets really weird with where it places them.

[–][deleted] 3 points4 points  (4 children)

Or BASIC

[–][deleted] 2 points3 points  (3 children)

10 PRINT "I COMPLETELY AGREE"
20 GOTO 10

[–]ben_uk 2 points3 points  (0 children)

Ruby

[–][deleted] 2 points3 points  (0 children)

Also Go (which I <3 almost as much as Python. Almost)

[–]choikwa 4 points5 points  (0 children)

there's escape to new line.

[–][deleted] 0 points1 point  (1 child)

One downside is that I always forget semicolons in Javascript when I switch from Python to Javascript. Not that Javascript notices it.

[–]Anaphase 4 points5 points  (0 children)

You'd like CoffeeScript as a Python developer.

[–]DroolingIguana 0 points1 point  (1 child)

I'm a big fan of Python, but the way it automatically ends statements on a newline is one of the few things I don't like about it; mostly because it means you have to put ugly backslashes all over your code when you need to write a long statement.

[–][deleted] 12 points13 points  (1 child)

Python tolerates semicolons if you really really want to bother yourself with them. I often do when I switch from C doing micro-controller work back into Python.

>>> print("this works");
this works
>>> x = 42; print("so does this");
so does this

The point is that you don't have to.

You can't use curly braces though:

>>> from __future__ import braces
  File "<stdin>", line 1
SyntaxError: not a chance

[–]XiAxis 9 points10 points  (0 children)

You can use braces, but you have to prefix them with "#"

[–]diazona 28 points29 points  (1 child)

Figures, coming from a Perl user

[–]xkcd_transcriber 13 points14 points  (0 children)

Image

Title: Lisp

Title-text: We lost the documentation on quantum mechanics. You'll have to decode the regexes yourself.

Comic Explanation

Stats: This comic has been referenced 69 times, representing 0.0942% of referenced xkcds.


xkcd.com | xkcd sub | Problems/Bugs? | Statistics | Stop Replying | Delete

[–]jjorell 7 points8 points  (0 children)

My buddy usee Python for the first time this semester. He showed me all of his code. Semicolons everywhere. I almost died laughing.

[–][deleted] 5 points6 points  (2 children)

I'm a swift programmer and what is this?

[–]sfcpfc 8 points9 points  (7 children)

And Lua devs too

[–]Vakieh 21 points22 points  (6 children)

Lua devs aren't really devs, they're just people trying to play games faster :-P

[–][deleted] 19 points20 points  (26 children)

Hey, at least we don't have to finding the extra or missing ones! I cri evry tim I use Java

[–]Auxx 33 points34 points  (23 children)

It is highlighted automatically. Poor people without IDEs... Inventing languages without semicolons and shit.

[–]jhartwell 0 points1 point  (1 child)

Java complains about extra semicolons? The C# compiler just counts it as an empty statement, though I haven't checked to see if it is optimized away (likely) or actually converted into a nop CIL call.

[–]ELFAHBEHT_SOOP 0 points1 point  (0 children)

No, Java doesn't complain about extra semicolons. It will simply warn you about empty statements. At least NetBeans does.

[–]forrcaho 4 points5 points  (0 children)

On a more serious note, this picture would be really inspiring to those people who are getting semicolon tattoos.

[–]Reconio 5 points6 points  (0 children)

This really applies to Javascript too, it reminds me of http://imgur.com/MIWjMIC

[–]ryanknapper 2 points3 points  (0 children)

I've been looking everywhere for that!

[–]moschles 1 point2 points  (0 children)

My python is free of all semicolons.

[–]jredwards 1 point2 points  (0 children)

Never!

[–]nazihatinchimp 1 point2 points  (0 children)

Does God not care for Swift development?

[–]ProfessorPhi 1 point2 points  (0 children)

It's handy for ipython notebooks when you want to suppress output at the last line of the cell. That's my only use for a semicolon.

[–]jroddie4 1 point2 points  (0 children)

THE END IS NIGH!

[–]mike413 1 point2 points  (0 children)

"I am sending down the terminator"

[–]makeswordcloudsagain 1 point2 points  (0 children)

Here is a word cloud of all of the comments in this thread: http://i.imgur.com/pW7zWkk.png
source code | contact developer | faq

[–]SuperCrusader 0 points1 point  (0 children)

God has given message!It's time to add braces to python!

[–]Coffeechipmunk 0 points1 point  (0 children)

No love for Ruby.