Have you ever wondered what programming language is the worst one?
My anwers is: python!
Its stupid """notation""" for many of its attributes and methods makes me laugh when I hear it should be a great languague.
It's so poorly designed and inconsistent naming style that mixes upper and lower case names and abbreviations with full names makes me laugh even more.
The ridiculous The Zen of Python is like a religion. It has also the most stupid pseudo-polymorphism that is justified by the naive duck-typing. Its dumb static methods can behave either like static ones or instance methods depending on how you prefix them or try to use them in a pseudo-derived class. python is the new brainfuck.
Just take a look at the Built-in Functions. There is a place for any or compile or enumerate but there is no place for a string! apparently it's too long to write (lol) so they made it a str; there is also a place for classmethod but there is no place for rawinput - no, this would be too easy. They've decided to call it raw_input - to hell with consistency!!!
Thank you for the plethora of new information, I really didn't know and needed to.
Xavier Scott
The representations of languages in this image is extremely superficial. It seems like a wasted opportunity because there are so many relevant aspects of these languages' contrasting paradigms that could be artistically realized in imaginative ways.
Kevin Murphy
...
Hunter Williams
Make a new one
Jaxon Peterson
lmao kys
Ayden Hill
look, Python is what it is, use it as a tool if you need, or dont if you dont have to, no one forces anything
Jack King
fuck off newfag, 8ch used the same pattern in the past which you would know if you weren't such a cancerous newfag straight from reddit
Andrew Scott
Python's naming is generally good. There are some inconsistencies, mostly because of backward incompatibility, but there's a clear style. Read PEP 8, if you haven't, it outlines a convention. In the sense that it contains guidelines? Not sure what you're trying to say here. I don't understand what you're saying here. I don't know a way to make a static method behave like an instance method. Are you complaining that it's possible to call static methods on instances? object.some_static_method() is no different from object.class.static_method(), it's just easier to write. It's still static. Can you elaborate? I think that covers all of your post. You've managed to say very little.
Blake Bennett
lmao kid
Dylan Allen
ValueError is a class. Classes and built-in singletons use CamelCase. That's part of the convention. raw_input no longer exists.
Connor Campbell
ValueError is a class and therefore uses book case, while raw_input is a function. It probably should have been rawinput for consistency and was accordingly renamed to input in python 3.
Ethan Barnes
It still does, actually, but your image filename is clearly from 4chan.
Brayden Miller
$ date -d @1420761495Fri Jan 9 00:58:15 CET 2015 I think that's before the de-unixfication. Correct me if I'm wrong.
Dominic Walker
cool story bro. next time try something more sound than bitching about unimportant details, most of which are your own lack of understanding (I hope you're just trolling and not a real brainlet). for example about weird scoping rules making you add something like `x=x` to a lambda, or something interesting about PyPI
Who cares about the picture, all we care out here on doublechin is whether someone may plausibly have posted on 4chan - sorry, cuckchan - after 2014-09-18
Austin Parker
Fuck, for a moment I thought we were on a technology board or something. Turns out it's been /polb/ the whole time.
it's not cross-platform and it is somewhat tied to .NET which is M$ botnet
Tyler Smith
...
Luis Robinson
It is standing on an unenforceable promise of M$ to not sue for patent violations, etc.
James Cruz
Nah, I'll just wait for the EOMA68 to come out.
Justin Cooper
Is that the thing with 256 char limit on path length?
Asher Morris
...
Bentley Gutierrez
the names in pythong are consistent m8. i agree the duck typing is naive though languages are partially ordered and pretty much all of them are bottoms
Ayden Howard
yes (it's Windoze but PowerShell only really exists on it)
Leo Perry
...
Mason Richardson
they all are
Owen Kelly
PHP is cute. CUTE.
Aaron Anderson
I make this exact typo every time I type pythong.
Christopher Fisher
Until your local hackerman dumps your databases and you get charged with data protection lawsuits
Adrian Garcia
If you're collecting and storing private customer data at all you've already committed a crime against humanity.
Daniel Rivera
then what the fuck was Python 3 for
Nathaniel Roberts
Things that were worth losing compatibility for. Nobody cares if it's spelled "int" instead of "Int".
Logan Young
It's literally 99.9% print statements anyways.
Thomas Phillips
Passwords are private user data. how are you supposed to sign in if the server doesnt have a hashed copy of your password?
Tyler Hall
Why does your shitty botnet site require sign in?
Jaxson Murphy
Don't have accounts
Carter Hernandez
you don't know jack shit about python
Lucas Howard
because it's a shitty botnet site
Ryder Gutierrez
I would be willing to learn python except for that fact that doing arithmetic requires a TCP connection to be opened when you use numbers larger than 53323
Python programmers only ever know python, i'm sure you are actually the special snowflake exception tho.
Carson Perry
Wow, even on /tech I rarely see so much bullshit so closely packed together in a few consecutive replies. Are you trying to insult me? I've heard it's a swear word nowadays.
I don't know where exactly is your "back". I just checked the landing page, if I got what website you are talking about, and it's full of shit. Also stop bumping shit thread.
This inspired me to write better descriptions of PL girls, and this is the most fun I've had in weeks.
Charles Cook
You better post results.
Jose Gonzalez
We hear all about python 2 and 3 these days, but where is python 1?
Jace Reyes
Windows limitation. You can get around it in PowerShell with some fuckery. Robocopy comes packaged with Windows and you can pipe it through PowerShell, no such character limitation there.
For some reason there's a porn named "Python 2". hxxps://www.pornhub.com/view_video.php?viewkey=ph5a9c174b75ce4 I guess that's roughly how bad it is to convert your code from 2 to 3?
Joshua Hernandez
Java and Ruby are cute. CUTE.
John Nguyen
Prolog or LISP
Isaac Peterson
Python was going good until Guido decided not to make it homoiconic.
Zachary Barnes
Fucking awesome language for AI and rule-based automation.
Austin Long
Which is why all the modern AI tools are written in c++ and python.
Cameron Nguyen
We have a thread on this board of an user who parses JSON with his homemade C library. People use the wrong tools for the job because its what they know.
Juan Torres
What would be a better alternative for data serialization than JSON(that's what you're saying, right)? Curious because I am going to have to pick a format soon and I hear bad things about YAML(no idea if they're true).
Well AI is starting to go the JS route... it only gets worse
Jordan Cooper
Is this accurate? Should I pick my programming language of choice base on zodiac signs?
Joseph Hughes
only if you hate yourself
protobuf, or Bencode if you want to be special it's more complex, so you will make more errors if you do it yourself for some reason and it only makes sense for data which should be human readable in serialized form, otherwise it's a waste of power and space, just like JSON.
Jackson Foster
anyone know miniKanren? It's like prolog but purely relational; the DSL is very small. I dunno shit about AI, so maybe read a book before asking the internet. #lang racket; stream routines(define (lazy-flatmap p l) (cond [(null? l) '()] [(pair? l) (lazy-interleave (p (car l)) (lazy-flatmap p (cdr l)))] [(procedure? l) (lambda () (lazy-flatmap p (l)))] [else (error "invalid stream")]))(define (lazy-interleave s t) (cond [(null? s) t] [(null? t) s] [(pair? s) (cons (car s) (lazy-interleave (cdr s) t))] [(pair? t) (cons (car t) (lazy-interleave s (cdr t)))] [(and (procedure? s) (procedure? t)) (lambda () (lazy-interleave (s) t))] [else (error "invalid stream")]))(define (lazy-take l n) (cond [(or (null? l) (zero? n)) '()] [(pair? l) (cons (car l) (lazy-take (cdr l) (- n 1)))] [(procedure? l) (lazy-take (l) n)] [else (error "invalid stream")])); variables and unification(struct var ())(define empty (make-immutable-hasheq))(define (unify-subst x r) (if (and (var? x) (hash-has-key? r x)) (unify-subst (hash-ref r x) r) x))(define (unify-extend key val env) (hash-set env key val))(define (unify s t r) (let ([s (unify-subst s r)] [t (unify-subst t r)]) (cond [(equal? s t) r] [(var? s) (unify-extend s t r)] [(var? t) (unify-extend t s r)] [(pair? s) (and (pair? t) (let ([r (unify (car s) (car t) r)]) (and r (unify (cdr s) (cdr t) r))))] [else #f]))); kanren goal constructors(define (pass r) (list r))(define (fail r) '())(define (== s t) (lambda (r) (let ([r (unify s t r)]) (if r (list r) '()))))(define (conj g0 g1) (lambda (r) (lazy-flatmap g1 (g0 r))))(define (disj g0 g1) (lambda (r) (lazy-interleave (g0 r) (g1 r)))); instantiation(define (free-var n) (string->symbol (format "._~a" n))) (define (inst x r n) (cond [(var? x) (if (hash-has-key? r x) (inst (hash-ref r x) r n) (let ([sym (free-var n)]) (values sym (hash-set r x sym) (+ n 1))))] [(pair? x) (let*-values ([(s r n) (inst (car x) r n)] [(t r n) (inst (cdr x) r n)]) (values (cons s t) r n))] [else (values x r n)]))(define (instantiate x r) (let-values ([(x r n) (inst x r 0)]) x)); kanren syntax(define-syntax delay-goal (syntax-rules () [(_ x) (lambda (r) (x r))]))(define-syntax conj* (syntax-rules () [(_) pass] [(_ x) (delay-goal x)] [(_ x y ...) (conj (delay-goal x) (conj* y ...))]))(define-syntax disj* (syntax-rules () [(_) fail] [(_ x) (delay-goal x)] [(_ x y ...) (disj (delay-goal x) (disj* y ...))]))(define-syntax fresh (syntax-rules () [(_ (v* ...) r* ...) (let ([v* (var)] ...) (conj* r* ...))]))(define-syntax conde (syntax-rules () [(_ [r** ...] ...) (disj* (conj* r** ...) ...)])) (define-syntax run (syntax-rules () [(_ n (v* ...) r* ...) (let ([v* (var)] ...) (map (lambda (r) (instantiate (list v* ...) r)) (lazy-take ((conj* r* ...) empty) n)))]))(define-syntax run* (syntax-rules () [(_ (v* ...) r* ...) (run -1 (v* ...) r* ...)])); demo(define (appendo x y o) (conde [(== x '()) (== o y)] [(fresh (s t v) (== x (cons s t)) (== o (cons s v)) (appendo t y v))]))(define (inserto x l o) (fresh (lhs rhs tmp) (appendo lhs rhs l) (appendo lhs (list x) tmp) (appendo tmp rhs o)))(define (permo x o) (conde [(== x '()) (== o '())] [(fresh (s t p) (== x (cons s t)) (permo t p) (inserto s p o))]))(run* (q) (permo '(a b c d) q))
Don't mix up mini and micro kanren. They are not the same thing. One is wayyy smaller.
Alexander Green
ye I'm talking about microkanren mainly.
Lucas Campbell
python is not worse than bbc basic
Caleb Harris
I'd even take MBASIC or Palo Alto Tiny BASIC instead of Python tbh.
Juan Rodriguez
when you aren't going to get a job, you can choose whatever you want without any consequences, indeed.
Jayden Wilson
Nothing wrong with JSON (I recommend it, btw). My point was that he wrote his own parser in C, probably because he's familiar with string parsing in C and decided that was a good idea (it's not). Similarly, people use Python for AI because they're scientists and not engineers, and Python syntax is dead simple. Once that trend starts, its hard to reverse too, because then all the libraries are written in that language. It's a shame because languages which are a much better fit to the task at hand are not adopted and developer mindshare never reaches critical adoption mass.
Juan Collins
It's all bytes in the end, so why is C a poor choice? Too much work?
Joshua Murphy
this is not pozzoverflow, you aren't gonna troll us with your entry level question.
Lucas Flores
fuck forced indentation is all I have to say on this topic
I will indent however the fuck I want! Freedom!
Christopher Jones
Gotcha.
Kevin King
Can you give an example of code written in C or a similarly-syntaxed language that's indented in a way that's not accepted by Python but not hot garbage?
Sebastian Perry
Java - design-by-committee is gay, type generics all fucked up, two ways to do exceptions C++ - fucking templates, god forbid you need to debug a compiler error, basically C trying to be Java Pythod - whitespace, other retarded idiosyncrasies Ruby - too weaboo PHP - favored by retards C# - java done right, actually no major complaints JavaScript - event-based but lacks any synchronization primitives = lol, single threaded execution, no type checking Perl - write-only language, great tool for trolling other programmers/scripters C - breddy gud for intended purpose, falls behind modern languages (not sure if good or bad) VB - insanely utilitarian, not for real programmers tho R - specialized for data analysis, good at what it does, not an all purpose language Scala - relatively obscure, fewer resources available shell - has its place, but doesn't scale well to larger programs ActionScript - specialized version of javascript
For me it's a tossup between JS and Python for shittiest.
Jason Powell
Folks getting extra creative with C and whitespace (or lack thereof): ioccc.org/years.html