Register a SA Forums Account here!
JOINING THE SA FORUMS WILL REMOVE THIS BIG AD, THE ANNOYING UNDERLINED ADS, AND STUPID INTERSTITIAL ADS!!!

You can: log in, read the tech support FAQ, or request your lost password. This dumb message (and those ads) will appear on every screen until you register! Get rid of this crap by registering your own SA Forums Account and joining roughly 150,000 Goons, for the one-time price of $9.95! We charge money because it costs us money per month for bills, and since we don't believe in showing ads to our users, we try to make the money back through forum registrations.
 
  • Post
  • Reply
Malcolm XML
Aug 8, 2009

I always knew it would end like this.

SpaceClown posted:

i dont mean learn x86 at all. imo i think x86 needs to be retired, cisc architectures are such an outdated doctrine and its embarrassing that it's been allowed to exist this long.

Hello I am code instruction density

The only problem with x86 is that it's patented out the wazoo so only AMD and Intel can make competitive chips


The cores already decompose it into RISC microops anyway

Adbot
ADBOT LOVES YOU

Asymmetrikon
Oct 30, 2009

I believe you're a big dork!

Malcolm XML posted:

The only problem with x86

i'm the variable length facilitating rop/gadgets

Sapozhnik
Jan 2, 2005

Nap Ghost

SpaceClown posted:

imo assembly is the best beginner programming language for several reasons that i dont feel like posting but in your heart of hearts you know im right.

this but unironically

(not x86 though lol)

SpaceClown posted:

i dont mean learn x86 at all. imo i think x86 needs to be retired, cisc architectures are such an outdated doctrine and its embarrassing that it's been allowed to exist this long.

risc and cisc are marketing terms but x86 is just a festering poo poo heap and not even a representative example of a cisc architecture

mystes
May 31, 2006

SpaceClown posted:

is it bad of me to not like python because it relies so heavily community libraries that are almost universally terrible?

it always seems like theres a huge hassle trying to get things to work and i just really dont see how this is a good language for rapid prototyping. I mean the actual coding itself is fast as gently caress, but wrangling libraries ends up eating up all the time that i save. am i just supposed to become jaded to dealing with all this bullshit?
I don't think this is a python problem, really. As far as I'm aware, Python has had the philosophy of trying to move key libraries into the standard library, but it seems like people are less interested in this, and in 2017 it seems to be universally accepted that installing everything from the internet every time for every program is the right way to do things. Even languages like .net are rapidly moving in this direction, and Java will probably end up the same way eventually.

At this point I think it's going to take some sort of major security problem where tons of data is compromised by a malicious package for things to move back in the other direction.

Malcolm XML
Aug 8, 2009

I always knew it would end like this.

Asymmetrikon posted:

i'm the variable length facilitating rop/gadgets

Defensible in software via RAP.

But yeah its not great but its not like fixed width instruction sets are immune to rops

Wheany
Mar 17, 2006

Spinyahahahahahahahahahahahaha!

Doctor Rope

Gazpacho posted:

no its "u"

:newlol:

Corla Plankun
May 8, 2007

improve the lives of everyone

SpaceClown posted:

is it bad of me to not like python because it relies so heavily community libraries that are almost universally terrible?

it always seems like theres a huge hassle trying to get things to work and i just really dont see how this is a good language for rapid prototyping. I mean the actual coding itself is fast as gently caress, but wrangling libraries ends up eating up all the time that i save. am i just supposed to become jaded to dealing with all this bullshit?

what library are you trying to use?

i like python a lot and havent run into any really really bad libraries, although some have been inscrutable at first

FormatAmerica
Jun 3, 2005
Grimey Drawer

FamDav posted:

wait so did you really think the network works 100% of the time.

lol no but that's not my biggest concern by far, just a thing i now realize i should have gotten out of the way earlier while fighting with this other team to find & fix issues internal to the services.

redleader
Aug 18, 2005

Engage according to operational parameters
i wrote a trivial script in python and ran into multiple type errors that i actually had to think about (ew!). in a proper language the compiler would have complained with a decent and obvious error

tef
May 30, 2004

-> some l-system crap ->

FormatAmerica posted:

can i get the room's feelings on putting retry logic in client apps just because your loving microservices are so goddamn unreliable they constantly throw weird errors?

i'm very much against it because i've written microservices that loving work reliably, but idk how to fight this awful fuckshit team who's so insistent on me changing my apps!

the network is reliable

kitten emergency
Jan 13, 2008

get meow this wack-ass crystal prison

tef posted:

the network is reliable

thinking face emoji

AWWNAW
Dec 30, 2008

let that poo poo fail

kitten emergency
Jan 13, 2008

get meow this wack-ass crystal prison
just write software that doesn't accept inputs or produce output bing bong so simple

JewKiller 3000
Nov 28, 2006

by Lowtax

tef posted:

i mean static type systems are "technically correct" and are just as friendly and nice to work with as "technically correct" people

while on the other hand, dynamic typing advocates are full of this disgraceful trump-like attitude you're exemplifying now. "yeah you're right but i don't care, and in fact i'm better BECAUSE i don't care, HEH"

FamDav
Mar 29, 2008

FormatAmerica posted:

lol no but that's not my biggest concern by far, just a thing i now realize i should have gotten out of the way earlier while fighting with this other team to find & fix issues internal to the services.

does your company have a history of SOA, or senior leadership that does? there is a cultural aspect to SOA which is necessary if you want to not have teams hating each other, stability tanking, and feature releases stall.

comedyblissoption
Mar 15, 2006

netcat posted:

I worked with a python library where all function arguments were kwargs so I had to look up the docs for every single function rather than having the IDE tell me what to expect and that sucks but that's not really dynamic typings fault I guess.
poe's law, but this is a problem with using a library with every dynamically typed language in existence

this problem is typically solved with various forms of static typing via hard-coding what types a common library has, deriving type information from documentation, gradual/optional typing, or hungarian notation of function parameters

comedyblissoption
Mar 15, 2006

mystes posted:

I don't think this is a python problem, really. As far as I'm aware, Python has had the philosophy of trying to move key libraries into the standard library, but it seems like people are less interested in this, and in 2017 it seems to be universally accepted that installing everything from the internet every time for every program is the right way to do things. Even languages like .net are rapidly moving in this direction, and Java will probably end up the same way eventually.

At this point I think it's going to take some sort of major security problem where tons of data is compromised by a malicious package for things to move back in the other direction.
trying to put everything in the standard library is a bad idea. you want to be able to easily create and get libraries outside the standard library ecosystem because this improves productivity. people are more likely to create libraries for other people to use and people are more likely to re-use code through those libraries.

you have the problem of malicious code no matter what you do whenever you try to use an external library whether or not you grab it automagically from the internet or not.

JawnV6
Jul 4, 2004

So hot ...

SpaceClown posted:

cisc architectures are such an outdated doctrine and its embarrassing that it's been allowed to exist this long.
lol

Malcolm XML posted:

The cores already decompose it into RISC microops anyway
not really though

they have to go 5mm, width/conciseness isn't a concern

comedyblissoption
Mar 15, 2006

MononcQc posted:

No you don't. 95%+ of the time you just shove all the poo poo in a dictionary and go to town on it. You look at the docs for the keys you want, put the keys you have, and then turn it to JSON through serialization or some poo poo that just translates everything for you. A language like python even lets you turn a dictionary directly into named arguments of a function call if you want.

You think about types all the time because that's how you should build systems in a statically typed language with a decent type system; types first. You just happen to carry that baggage into the dynamic langs you use.
do you care that the dictionary you are using requires a key of "foo" and an array of numeric values otherwise things won't work? congrats, you are thinking about types! shoving poo poo in a dictionary in a specific way is absolutely thinking about types.

the bad thing about this "shove everything in a dictionary" approach is that people can abuse the dynamic type system in such a way that it hurts locality of reasoning about code. to figure out what's in the dictionary might require evaluating very large sections of the program instead of just looking within the scope of a single function. yes, this has practically bitten me in production code.

comedyblissoption
Mar 15, 2006

type is a very vague word. I think the best definition I've heard is something to prove some property of your program.

using types to constrain what data has and the shape of the data is generally very important. you think about what constraints and shape that your data has all the time whether or not you use a dynamically typed or statically typed language.

also keep in mind I think you can absolutely be productive and do great things in a dynamically typed language. I just think dynamic typing has a lot of problems compared to static typing. one of those things being what brought up this entire discussion where someone was complaining about how much of a pain it was to use a library in python.

comedyblissoption fucked around with this message at 03:46 on Feb 26, 2017

comedyblissoption
Mar 15, 2006

edit: double post

Axel Rhodes Scholar
May 12, 2001

Courage Reactor

comedyblissoption posted:

imo, the bottleneck in programming, even for prototyping code, is not the slowdown of having to type that your parameter is of type int.

it could be. objective-c block syntax is so terrible that the slowdown of having to figure out how to write out the type (probably visiting fuckingblocksyntax.com on the way) is significant enough that i've seen it influence people's design choices.

comedyblissoption
Mar 15, 2006

I think that some statically typed languages are abominable and less productive than some dynamically typed languages. I also think that OOP-mania in statically typed langs is really awful and most dynamically typed langs have thankfully shied away from that. so yah just simply using some static typing isn't a panacea, but a good static type system or staying away from the OOP-mania bits is probably a great boon to productivity.

MononcQc
May 29, 2007

comedyblissoption posted:

do you care that the dictionary you are using requires a key of "foo" and an array of numeric values otherwise things won't work? congrats, you are thinking about types! shoving poo poo in a dictionary in a specific way is absolutely thinking about types.

It depends. For example, you could care that "foo" is mapped to an integer, but then the key "bar" could map to a dictionary. Hell, you could use another dictionary as a key. The thought of thinking in types the way you do it in a good statically typed language does not really happen to the same extent.


comedyblissoption posted:

the bad thing about this "shove everything in a dictionary" approach is that people can abuse the dynamic type system in such a way that it hurts locality of reasoning about code. to figure out what's in the dictionary might require evaluating very large sections of the program instead of just looking within the scope of a single function. yes, this has practically bitten me in production code.

I don't disagree about that. It can hurt a lot of things. I'm just saying it's a different way of thinking.

comedyblissoption posted:

type is a very vague word. I think the best definition I've heard is something to prove some property of your program.

using types to constrain what data has and the shape of the data is generally very important. you think about what constraints and shape that your data has all the time whether or not you use a dynamically typed or statically typed language.

also keep in mind I think you can absolutely be productive and do great things in a dynamically typed language. I just think dynamic typing has a lot of problems compared to static typing. one of those things being what brought up this entire discussion where someone was complaining about how much of a pain it was to use a library in python.

I agree with all of the positive properties of static typing. I'm just saying that when you're used to the properties of static languages and all the niceties it affords you, it's far easier to get into a panicky state about dynamic programming than when you mostly just do dynamic programming and that mode of thought doesn't happen.

The same kind of phenomenon happens when you're someone who has done functional programming and care a lot about segregating pure from impure code. It changes how you approach programming and think about your program structure, in a way that possibly never concerned you before.

It's experience, and experience brings new concerns and approaches to the table. Some of it is also habit; if you have spent the last 4 weeks in a given paradigm, it becomes easier to focus in the currently productive mode of thought and to forget some of the other things.

comedyblissoption
Mar 15, 2006

I've had multiple years of experience in large dynamically typed codebases written in javascript. I used to be more open to dynamic typing, but after that experience I am solidly on the static typing fence. Python or lisp (ignoring gradual typing) would not solve the problems I experienced.

AggressivelyStupid
Jan 9, 2012

redleader posted:

i wrote a trivial script in python and ran into multiple type errors that i actually had to think about (ew!). in a proper language the compiler would have complained with a decent and obvious error

Or don't be bad

Asymmetrikon
Oct 30, 2009

I believe you're a big dork!
this is YOSPOS, none of us can be not bad

Brain Candy
May 18, 2006

comedyblissoption posted:

I've had multiple years of experience in large dynamically typed codebases written in javascript. I used to be more open to dynamic typing, but after that experience I am solidly on the static typing fence. Python or lisp (ignoring gradual typing) would not solve the problems I experienced.

right, but not working with whomevver decided javascript was appropriate might

comedyblissoption
Mar 15, 2006

I am convinced if you use javascript in a functional programming style it would be better than most C# or java codebases in the large. Luckily you can do a functional programming style in mainstream statically typed programming languages (or non mainstream ones) and get the benefits of both that style and static typing.

Note that the vast majority of javascript codebases do not use a functional programming style.

Symbolic Butt
Mar 22, 2009

(_!_)
Buglord

comedyblissoption posted:

I've had multiple years of experience in large dynamically typed codebases written in javascript. I used to be more open to dynamic typing, but after that experience I am solidly on the static typing fence. Python or lisp (ignoring gradual typing) would not solve the problems I experienced.

I doubt this, I work with python for years and every time I need to do some javascript it kills me. There's absolutely no comparison, I sincerely feel like that even PHP (for god's sake) is a better designed language than javascript.


edit: oh it also puts a lot of perspective on what you're complaining about, I see it way more clear now the thing that you're talking about "shoving everything into a dictionary" being a very prevalent javascript thing: the "shove everything on a (javascript) object" pattern.

Symbolic Butt fucked around with this message at 04:50 on Feb 26, 2017

comedyblissoption
Mar 15, 2006

In theory you can be disciplined in javascript and never add a new property to an existing object in potentially later unmaintainable ways kind of like how python puts some brakes there. In practice people just huck whatever at their objects and you potentially have to have the entire working program in your head to derive the potential states of the data. So yes, javascript is a special kind (bad) of permissive dynamically typed.

Malcolm XML
Aug 8, 2009

I always knew it would end like this.

JawnV6 posted:

lol

not really though

they have to go 5mm, width/conciseness isn't a concern

Isn't there a micro op cache limit tho

Symbolic Butt
Mar 22, 2009

(_!_)
Buglord

SpaceClown posted:

is it bad of me to not like python because it relies so heavily community libraries that are almost universally terrible?

it always seems like theres a huge hassle trying to get things to work and i just really dont see how this is a good language for rapid prototyping. I mean the actual coding itself is fast as gently caress, but wrangling libraries ends up eating up all the time that i save. am i just supposed to become jaded to dealing with all this bullshit?

I don't know, I agree that python has a lot of bad community libraries but I don't think python relies on them? at least not for "rapid prototyping", if you're doing something very domain specific that you need a specialized library outside the standard library then well...

or maybe you're hitting on one of python's weak points. for example, I needed a task queue and decided to use celery. celery is pretty bad. this is the exact point where I should have challenged my comfort zone and jumped out of python.

"python is a general purpose language" is a kind of a bullshit notion (pretend I made a car analogy here)

Maluco Marinero
Jan 18, 2001

Damn that's a
fine elephant.

comedyblissoption posted:

In theory you can be disciplined in javascript and never add a new property to an existing object in potentially later unmaintainable ways kind of like how python puts some brakes there. In practice people just huck whatever at their objects and you potentially have to have the entire working program in your head to derive the potential states of the data. So yes, javascript is a special kind (bad) of permissive dynamically typed.

while I definitely feel for this, JavaScript is as good or as bad as you decide to make it. you can even bolt on Typescript if you like.

the fact that JavaScript lets you do this doesn't mean you, the programmer, can't just decide not to. strictly static types don't let you be that programmer, but they also don't give you a flexible escape hatch at times. depending on the program type this may be a problem.

MononcQc
May 29, 2007

there's a risk in conflating dynamic typedness of the languages with all of the other poo poo a language like javascript lets you do that may have to do as much with other properties often intertwined like monkey patching, type juggling, and strong dependencies on evaluating pieces of script to make dependencies work. There's more possible, but nothing forces a given dynamic language to give into these features.

comedyblissoption
Mar 15, 2006

Maluco Marinero posted:

while I definitely feel for this, JavaScript is as good or as bad as you decide to make it. you can even bolt on Typescript if you like.

the fact that JavaScript lets you do this doesn't mean you, the programmer, can't just decide not to. strictly static types don't let you be that programmer, but they also don't give you a flexible escape hatch at times. depending on the program type this may be a problem.
static typing languages can let you opt into dynamic typing for the rare circumstances that might make sense

tef
May 30, 2004

-> some l-system crap ->

JewKiller 3000 posted:

while on the other hand, dynamic typing advocates are full of this disgraceful trump-like attitude you're exemplifying now. "yeah you're right but i don't care, and in fact i'm better BECAUSE i don't care, HEH"

anyway what i was saying was that people who advocate static types are hostile to work with, much like the tools they advocate

tef
May 30, 2004

-> some l-system crap ->

comedyblissoption posted:

poe's law, but this is a problem with using a library with every dynamically typed language in existence

in particular python is awful for this when you're wrapping a function and passing through args

quote:

this problem is typically solved with various forms of static typing via hard-coding what types a common library has, deriving type information from documentation, gradual/optional typing

also not using kwargs, or using method chaining to make a builder

tef
May 30, 2004

-> some l-system crap ->

comedyblissoption posted:

static typing languages can let you opt into dynamic typing for the rare circumstances that might make sense

outside of c# this isn't that common as far as i am aware?

Adbot
ADBOT LOVES YOU

tef
May 30, 2004

-> some l-system crap ->

comedyblissoption posted:

I am convinced if you use javascript in a functional programming style it would be better than most C# or java codebases in the large.

this is what my typescript friends do, and they like it

  • 1
  • 2
  • 3
  • 4
  • 5
  • Post
  • Reply