freenode/#lisp - IRC Chatlog
Search
21:49:42
akoana
Fare: may I ask, what are the (main) things you consider soul-sucking in python (just curious, if you like to share)?
21:52:04
Fare
people who deploy them in the wild are civilly liable for e.g. kids who jump in a empty swimming pool not protected by a fence.
21:52:32
Fare
People who publish python should be bankrupted and/or sent to jail. That includes Google developers and management who have promoted it.
21:53:32
Fare
The entire idea of "there are libraries for everything", but the actual quality of those libraries is appalling, and a maintenance disaster, and security liability.
21:54:50
Fare
even the standard library... full of horrors such as `l = [1,2]; m = l ; m += [3]` side-effecting the original
21:55:05
p_l
akoana: semantically important token in the form of 4 spaces. tantalizing you with "REPL" yet actually zero support for interactive programming, to the point that C is equally interactive. The libraries can be WTF, especially when you need to deal with deep exception chains, where sometimes your recovery attempts fail because somehow the library deleted the object and thus causing a totally different error....
21:55:15
stylewarning
the best thing about python is its dead simple, fun, and easy way of distributing your application to others
21:55:19
Fare
Happily, x = 2; y = x ; x +=1 doesn't side-effect all occurrences of the integer constant 2.
21:55:40
Fare
it LOOKS dead simple, but its semantics is actually quite horrible. Scoping rules? Oh my.
21:55:50
p_l
stylewarning: I honestly wanted to whack you with a shovel for a moment there, got PTSD from that line
21:56:14
Fare
basically, the syntax looks nice, but everything else is actually good... until it's actually terrible.
21:56:45
stylewarning
Fare: what is so difficult about getting a virtualenv and venv and downloading conda 4.6 and getting that to interact with your system pip (which you might as well override with conda's pip (but not the python.org pip)) and point things to the right python interpreter on a per project basis i really don't understand how you could be so confused
21:56:57
Fare
The idiot who designed Python had severe Dunning-Kruger and refused to delegate aspects of his languages to people who knew better, even when they were actually trying to help him.
21:57:15
stylewarning
Fare: you can make that Super Simple by putting all of that in a 7 GB docker image which you can give to me by making a totally free DockerHub account
21:57:38
Fare
give me ASDF any day in comparison; and I don't love ASDF *that* much in this respect.
21:58:23
akoana
Fare: (and all who responded) thank you. I understand, got similar feelings with python after trying to do some serious work with it. Confirming I'm not alone with my thoughts about it:)
21:58:43
p_l
Fare: I remember people laying into Ruby for Bundler. Except Python distribution tools make Ruby look like polished gem (pun intended)
21:59:10
Fare
but what do you expect in a language that doesn't have macros so you could write your own OOP
21:59:56
p_l
cause I haven't really worked in Python with classes since around beta releases of Py3k
22:00:08
stylewarning
i remember trying to write a function to tee a stream in python, like I wanted to do something like s = tee(stdout, logger) and write to s; it turns out you have to go copy paste some random stream class on stack overflow (lol duck typing) hoping it has the needed methods, because they're not clearly documented anywhere
22:00:27
Fare
and then the incompetent decisions made while it was a toy are baked into all production software.
22:00:53
Fare
right now I'm using my own object system in Gerbil, instead of Gerbil's builtin object system. No problem, thanks to macros.
22:01:29
Fare
And while it *is* a (nice) toy, there is no pretense and no need to cast it in stone as everyone's only allowed object system for decades to come when using the language.
22:02:18
Fare
paule32: what's wrong is you failed to describe your expectations and how the discrepancy between expectations and reality
22:04:45
drmeister
Anywho - I get a pass on using Python to write a gdb/lldb extension because I'm developing a Common Lisp implementation to avoid using Python in the rest of my life.
22:05:26
p_l
drmeister: you have my honest condolences that you had to deal with it, and well wishes for your work :)
22:06:32
drmeister
I wish I could convince my colleagues though. They think the height of scientific software development is to develop a Python bindings for Fortan code.
8:22:33
remexre
haven't found anything googling around, but figured I'd ask here before writing my own / deciding not to support unicode
8:35:12
remexre
uh, just assuming all characters are one column wide and leaving a comment, "stick to ascii or implement uax11"
9:14:21
pve
Good morning! A terminology question: is it correct to say that a cons is a "persistent data structure", whereas something like a hash table (at least in CL) is not?
9:16:26
flip214
or do you mean that the in-memory layout is fixed for a CONS cell, but a hash table can change in size?
9:17:09
phoe
if it's https://en.wikipedia.org/wiki/Persistent_data_structure then neither conses nor hash tables in CL are like that
9:18:53
phoe
you can treat both of them as functional data structures which means not mutating them; this means consing up new lists and sharing structure wherever possible, and making new hash tables instead of modifying old ones
9:18:56
pve
yeah, I was looking for a name to distinguish between those kinds of data structures, which at least to me, seem different in how they are usually used
9:21:34
phoe
in Lisp, it's more of a contextual question, especially since conses are CDTs and not ADTs
9:21:49
pve
ok, suppose we don't mutate conses, would "functional data structure" be the correct term?
9:26:46
pve
I'm looking at https://en.wikipedia.org/wiki/Persistent_data_structure and also https://en.wikipedia.org/wiki/Purely_functional_data_structure
9:28:33
phoe
a singly linked list is not such a structure because the result of (CDR '(1 2 3)) does not refer to (1 2 3) anywhere
9:33:51
phoe
OK, "preserve" means a different thing in this context; it doesn't mean explicitly refering to them, it means that the previous values are unchanged
9:38:59
phoe
every purely functional data structure is persistent, but is it true that every persistent data structure is also purely functional?
9:45:09
treflip
Persistent data structures may be implemented in imperative style. There is a great book "Purely Functional Data Structures" by Chris Okasaki, it has a clear explanation of these things in its first chapter IIRC.
9:45:27
sm2n
it's a bit odd because these categories kind of cut across both implementation/interface
9:46:33
sm2n
purely functional is a property of the interface, in that the interface doesn't mutate its arguments