« first day (2151 days earlier)      last day (2987 days later) » 

00:00
@quartata uhhh no? Lemme find the quote
By purity I mean no side effects
Anyways if your complaint is about access modifiers you're gonna have to take down a lot of other OO languages with Python
No I'm not talking about access modifiers
No language is truly a pure OO language -- those that are suck.
I'd say Java is pretty true OO.
Java isn't pure (just close) for instance and it definitely follows under the suck dichotomy for most
00:04
Python's classes are just about as much "classes" as C's "struct"s maybe even less. Where are fields? How come super is defined implicitly but not self
Why is self an argument???
So that you can call it statically? So that you can refer to it as a funcrion without scoping being annoying? etc
This isn't unique to Python either.
@Downgoat abtract base classes, docstrings, static typing, class methods, multiple inheritance
Go yell at Perl if it bugs you.
99% of the time you do not know how to OO if you're using multiple inheritance imo
00:07
giggles
@ATaco still has primitives
Do you know what a mixin is
@Downgoat fields?
abstract classes are import... metaclass wat... just... sigh....
I said close...
00:07
@noɥʇʎPʎzɐɹC case in point
@Downgoat do you know a fast way of getting permutations in javascript?
@Downgoat Or you can just throw an exception in the constructor??
@Downgoat It's so OO that you can implement ABCs through native code
C++ doesn't have abstract classes in the sense you're describing either
00:08
@quartata Yes, and multiple inheritance is not necessarily optimal solution
ABCs aren't used all that often
Lua technically doesn't have primitives.
@Downgoat Multiple inheritance is how mixins work
You can even do static typing, with runtime type checking
@ConorO'Brien I mean you could use generators, other than that I'm not sure how you could speed up really
00:09
Just like in Java, you have to override all abstract methods to make a non-abstract class
@quartata You should mixin w/ your base class
That's often not possible and/or not a good idea.
@Downgoat rip
> Explicit is better than implicit - Zen of Python
@ConorO'Brien If your algorithm requires looking through all perms, you should probably work speeding up algorithm :P
00:10
@Downgoat it's just in general, trying to make it faster
@quartata This is why you design code and all, instead of going doing super-procedural code with a class and call it OO
even classes are objects! They just have the metaclass of type. Metaclasses are objects too. And they have metaclasses...
@Downgoat ...but Python doesn't do that?
What message are you responding too?
Hover over
I have to say a lot of your assumptions about Python seem to come from looking at small pieces of code.
00:13
Python let's you natively 8 == 9!
Yay!
Pytek's internals for instance is super super OO
Python has a standard library function for destroying the whole universe!**†
polymorphism all over the place
wait you're writing Pytek in python?
Cython. But yes of course.
00:14
@quartata super agree
We have been for almost a year
@quartata idk, I've dug around cpython source code to add braces
But that's C
Very bad C I might add
no but lots of it is python too
00:16
@Downgoat cpython code is like using the C++ STL after a run through the preprocessor and the inliner as a style guide
It's optimized for super speed, tiny tweaks for tiny boosts
Wait, so are you disagreeing python is super-procedural?
Do you mean cpython or cython? I didn't think cpython was particularly optimised
@Downgoat Yes.
Actually the standard library code (the only Python in CPython) is fairly decent
@trichoplax It is, very.
00:17
Python is like the definition of super-procedural language
That isn't even a bad thing....
@Downgoat No language is one paradigm
no one said that
@noɥʇʎPʎzɐɹC I had no idea. It's so much slower than PyPy though
check out mypy, it's static typing with type checks in python; and it's a python implemenetation
If I had to call Python one paradigm however I would call it OO since all the language primitives and standard library bits are object oriented usually with a few exceptions
00:19
@trichoplax that's b/c JIT, and PyPy is written in RPython, a subset where all types can be assumed
I'm not saying that's its strength
@Downgoat name one OO feature python doesn't have, except for final
I would also call JS OO by the same standard even though it sucks at it
This is not even opinion, it is objective fact python is procedural
@noɥʇʎPʎzɐɹC Ah I see. So cpython is optimised but without sacrificing any of pythons characteristics?
00:20
@trichoplax Yes.
@noɥʇʎPʎzɐɹC I can name 5. Not the point.
@Downgoat Give evidence. #DontBeTrump
@noɥʇʎPʎzɐɹC fields? Overloading? Static abilities? Enumerations? Interfaces? Etc.
@noɥʇʎPʎzɐɹC lmao your entire argument is based on whether or not my argument insults python
I think python has overloading
00:21
@Downgoat @staticmethod Overloading is used Enum yes; interface is just an abstract class
Fields?
Google "python paradigm"
@Downgoat The only one of those you named that Python does not have is overloading. But that is not the point
> multi-paradigm: object-oriented, imperative, functional, procedural, reflective
OO before procedural
@quartata Python has overloading
@noɥʇʎPʎzɐɹC if you want to go to that extent then JS's functions make it OO
Even if you've worked with Python for five minutes you'd know that everything is an object
Same goes for JS
00:22
I've sure I've used overloading in Python. Unless there's some other type than operator overloading
@noɥʇʎPʎzɐɹC yes and also functional
everything in python is an object. no primitives. types are objects.
There's no way to tag a language as one paradigm if it's practical
@Downgoat Which one is first?
> Multi-paradigm: scripting, object-oriented (prototype-based), imperative, functional, event-driven[1]
^ js
Seriously, claiming python is true OO is pointless
00:23
JS is not functional in any way
where did JS come into this
@Downgoat then why does wikipedia as it's first?
@quartata sure it is, just not in the pedantic sense
@Downgoat Sorry, but I have no idea what you mean. What is optional/implicit here?
00:23
Because both are similar in terms of their OO
@noɥʇʎPʎzɐɹC I wouldn't trust wikipedia.
Everything in Python is an object. Everything. That's reason enough to call it OO
pineapples are quite pleasant
@ConorO'Brien Ignore him i have no idea what he's doing
@quartata okay if Python is OO, JS is Functional?
00:24
cool
@Downgoat No. The only sense of the word functional is the pedantic one which JS does not meet
Orly
OO simply implies that the language uses objects a lot really. It's vague on purpose
Super cool idea: babel plugin which adds functional ops to JS
@Downgoat Functional means functions with no side effects, period.
With some exceptions
00:26
@quartata like never?
@quartata True functional programming, anyway. Functional is often used as a synonym for function-level
Function level is a whole different can of worms
But no. Almost all languages are value level
I think I used the wrong term one sec
I can count function level languages on one hand
00:28
It really depends on how struct your interpretation of "side-effects" is
Not really.
There's a pretty obvious line.
to an extent, yes
Play with prolog for an hour and you'll see what I mean
you can't even return values only unify
@El'endiaStarman aha! what if I don't have a c.se account? You can't 11 my profile name permentantly now!
I tried prolog a while ago but then my head exploded
00:30
(Then again Prolog isn't functional but it fits for the example since it's declatative with no side effects)
@EᴀsᴛᴇʀʟʏIʀᴋ He could ask me in private.
@ConorO'Brien Prolog is a lot of fun and super powerful when you learn it
@quartata actually I thought that functional programming avoided side effects not completely banned it
@quartata I'll have to look into it again
The only exception I know of in a functonal language is Scheme's set!
Not counting I/O although haskell handles that with monads
00:32
I think the separation of Functional and OO is fairly pointless with the lack of any useful true OO langauge.
@quartata Side-effects appear to be a goal not, exactly a strict reauirment
@quartata oh yeah did you know that J has classes?
@Downgoat Defintely not a goal that JS tries to achieve, at any rate.
@ConorO'Brien I did not. Yikes
00:35
OOP in Lua is mostly just abusing functions and the fact that you can really abuse tables.
@quartata I mean it may not consiously attempt it but it definetly achieves it
Like every function in JS doesn't do side effects
except mayve object.assign
But those are exception
@Downgoat existence of window alone violates side effects
All objects are mutable too
there is a thing in my codes that could be solved with a global variable. I'm not sure what to do, because the immediate other option is to iterate through a list of lists, which could be really large, and have bad big-o complexity. What do?
Like I said work with haskell or erlang or prolog for a bit and you'll get a sense of what side effects are pretty fast. Tough to get from a Wikipedia article
Global variable. They're only bad if you don't pay attention.
00:40
@Dennis thanks
specifically, it's a koth, and the game ends when the two teams artifacts are destroyed
and the global variable will hold the number of artifacts left
If your board is a class it could just be a field in it
No problem with that
As long as decrements are atomic, that shouldn't be a problem.
@Dennis wat does mean?
One operation i.e no chance of interruption
Do you use multi-threading? If not, don't worry about it.
@quartata that is JavaScript not ECMAScript
@Downgoat What is the definition of var per ECMAScript then?
If it's global it's bad
@quartata define variable in currect scope
It's why clear(this) don't cause segfault
Wait that's not helping
So mutable global state
Yea kinda sorta
00:48
Yeah no -1
it's frowned upon to have a name that's hard to ping because it's in another language or something?
Yes
Well unless your name actually is in that language
if you're doing it because you think it's cool, or something, no.
it makes it easier to ping if you have english letters at the start
Ello ello
Clojure is annoying in that it doesn't have classes :(
00:57
70
Q: Why does Clojure have 5 ways to define a class instead of just one?

SalilClojure has gen-class, reify, proxy and also deftype and defrecord to define new class-like datatypes. For a language that values syntactic simplicity and abhors unnecessary complexity, it seems like an aberration. Could someone explain why it is so? Could Common Lisp-style defclass have sufficed?

OMG WINTER BASH IS HERE :D
6
@ConorO'Brien Hooray!!!!!!!!
Wait what is winter bash
01:01
@ConorO'Brien yesyesyesyeyes
What is the best way to make a koth controller in python. Is it subprocess.Popen, or is there a way to import bots like java does?
winter zsh
Winter ksh ftw
Can someone like just send me svg of hats so i can photoshop into avatar
*votes on Meta answers* GIMME MY HAT
6
refresh please
> post a message in chat within ±12 hours of the UTC New Year’s begin that gets starred
01:11
We're so having a star fest at that time.
Too lazy to Winterbash this year. I'll probably just get the one I like the best
I can't really top last year anyways
hats aren't showing on my profile?
01:19
@EᴀsᴛᴇʀʟʏIʀᴋ you have to login to winterbash2016.stackexchange.com
I did, it just took a loong time
woot number one on the site rn
@ConorO'Brien w/ 2 hats :P
which ones?
vote by mobile and meta vote?
01:22
So did they do equip regions?
CLOSE TEH SANDBOX; GIMME MA HAT
don't do that
@mods sandbox user should wear a hat
so should the other bots
@quartata I dont' think so
boooooo
@noɥʇʎPʎzɐɹC We'd have to get Phi to draw us some pixel art hats for the feed bots
(they can't actually wear hats since they don't have profiles)
01:26
@quartata sandbox can, at least
Community can wear hats though.
I heard the hat discussion was fierce in these parts
13
Q: Should PPCG have an official, objective, list of rules?

ais523This is something that's been bothering me for a while, and is really impairing my use of the site. Any competition needs rules in order to be fair, and this has been established repeatedly in Meta posts (e.g. this post talks about the need for objective winning criteria). It needs to be complet...

's score rose by 6
b/c hats
@NᴏᴠɪᴄᴇIɴDɪsɢᴜɪsᴇ not especially
but once you're here you're here forever so
AAAAAA
Just finished reinstalling Win10
Currently using the MS browser
The thing won't list my actual monitor resolution as an option
01:44
Everything's blurry and stretched out horizontally
For the sake of hatzs
An image on wikipedia has a cat for scale
@EᴀsᴛᴇʀʟʏIʀᴋ thx m8
01:46
it actually says in the description "with a cat for scale"
wonder if it was a joke
page refreshing intensifies
@ConorO'Brien heyyy thanks you have immediate-delete privs?
@EᴀsᴛᴇʀʟʏIʀᴋ idts, why?
01:48
when I voted to delete it said like "6 votes remaining", then was nuked with 3
DJ voted a while ago
Just got Firefox installed, but the resolution's still borked
who cares about FF we have hats man
system settings or a bad driver
Great, now the resolution option is grayed out
Ima try to reboot
Rebooted, now it's giving the proper 2048x1152
@EᴀsᴛᴇʀʟʏIʀᴋ Wait, hats?
How do I hat the hat hat
01:57
by asking the hat nicely if he will hat for you
BREAKING NEWS: Programmer productivity & US economy shrinks as Winter Bash starts.
12
lol
ps should be BREAKING NEWS:
This is a subject of national security! The USSR has more hats than us!
how 2 get hat plz

« first day (2151 days earlier)      last day (2987 days later) »