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
tinaun
Jun 9, 2011

                  tell me...

comedyblissoption posted:

does a C book even exist that properly tells you about all the UB and memory corruption horrors inherent in the language or are such lessons only learned by banging your head over decades from an initial naivete of thinking C was simple and you were smart enough not to make mistakes

the fish book (aka “expert c programming”) is pretty interesting, even the straight out of 1995 chapter on oop

Suspicious Dish posted:

at some point i should finish this but i had way too much fun writing the code editor hoping that by the time i wrote that i'd figure out what to use it for

i was wrong

https://magcius.github.io/xplain/article/rast2.html

:yeah:

tinaun fucked around with this message at 01:23 on Nov 25, 2017

Adbot
ADBOT LOVES YOU

tef
May 30, 2004

-> some l-system crap ->
zed shaw

tef
May 30, 2004

-> some l-system crap ->
first he was a rubyist

and then ruby was a ghetto, etc, because the rails server just restarted rather than fixing ruby's memory leaks

then he did python

but his condition was that he parachute his work untouched into the stdlib iirc

anyway he then went on a timecube-esque rant which boiled down to

"why aren't the python devs doing what is convenient for me"

i mean py3 was a shitshow

but zed's a jerk

Notorious b.s.d.
Jan 25, 2003

by Reene

tef posted:

zed's a jerk

Malcolm XML
Aug 8, 2009

I always knew it would end like this.
Zed's dead baby, Zed's dead

eschaton
Mar 7, 2007

Don't you just hate when you wind up in a store with people who are in a socioeconomic class that is pretty obviously about two levels lower than your own?

carry on then posted:

another "programming education should start with logic gates" vs "programming education should start with SICP' argument's a-brewin

if you start with SICP you should be to designing your own CPU in a Scheme-flavored HDL and targeting a Scheme compiler to it by the end of the semester

eschaton
Mar 7, 2007

Don't you just hate when you wind up in a store with people who are in a socioeconomic class that is pretty obviously about two levels lower than your own?

Suspicious Dish posted:

at some point i should finish this but i had way too much fun writing the code editor hoping that by the time i wrote that i'd figure out what to use it for

i was wrong

https://magcius.github.io/xplain/article/rast2.html

I didn’t see a mention that canvas was a way of exposing the CoreGraphics API to HTML5/JavaScript so it could be used by Dashboard widgets, and that’s why there’s a 1:1 translation of PostScript to JavaScript possible…

I seem to recall Dave Winer having a tantrum, because he’d wanted QuickDraw for HTML for years, and the PostScript imaging model was just too hard for him to deal with

eschaton
Mar 7, 2007

Don't you just hate when you wind up in a store with people who are in a socioeconomic class that is pretty obviously about two levels lower than your own?

tef posted:

anyway he then went on a timecube-esque rant which boiled down to

"why aren't the python devs doing what is convenient for me"

i mean py3 was a shitshow

but zed's a jerk

his py3 rant is what a lot of the complaints about Swift strings over the years have reminded me of

Swift strings didn’t let developers do “simple and obvious” things that were only actually valid in US-ASCII encoding because, guess what, US-ASCII encoding is insufficient for the real world

also virtually everything developers wanted to do was already handled by the standard library or by Foundation already (e.g. get or elide path extension, match prefix/suffix, check whether string contains, extract path components, etc.)

multiple generations of programmers have been misled into believing strings are easy, they’re not and getting mad at more correct implementations just makes one look ignorant

Doom Mathematic
Sep 2, 2008
The fact that the term "string" alternately means "array of bytes" and "piece of text" is a huge part of that problem.

Cybernetic Vermin
Apr 18, 2005

the real problem with python3 remains that it demonstrated that the maintainers valued their own desires higher than those of the people who made large investments in the platform. the value inherent in python itself, and the brain power applied in creating it, is a miniscule fraction compared to the value in, and smarts invested in, all software that ran (and, often, still runs) on python2

one thing to mess about with things for very young languages (like early versions of rust and swift), but a clear commitment to keeping your users code running, and easy to iterate on for future requirements (even if this means that not everything in the implementation is pretty), is almost implicit in how fundamental a requirement it is for a useable programming language and platform

gonadic io
Feb 16, 2011

>>=

Doom Mathematic posted:

The fact that the term "string" alternately means "array of bytes" and "piece of text" is a huge part of that problem.

Agreed.

carry on then
Jul 10, 2010

by VideoGames

(and can't post for 10 years!)

eschaton posted:

if you start with SICP you should be to designing your own CPU in a Scheme-flavored HDL and targeting a Scheme compiler to it by the end of the semester

oh, the "you should already be an experienced programmer by the time you graduate high school or you aren't passionate enough" argument. heard that one too

raminasi
Jan 25, 2005

a last drink with no ice

carry on then posted:

oh, the "you should already be an experienced programmer by the time you graduate high school or you aren't passionate enough" argument. heard that one too

i interpreted it as “if you’re going to do SICP you should do all of it”

MononcQc
May 29, 2007

If you just do the first 2-3 chapters of SICP with exercises you're already in a good spot. You don't necessarily need to do all of 4 and 5 (more related to language implementations) even if it would be a good experience.

cinci zoo sniper
Mar 15, 2013




whats the role of scala in "big data science" and why

Malcolm XML
Aug 8, 2009

I always knew it would end like this.

cinci zoo sniper posted:

whats the role of scala in "big data science" and why

it's the language of the technology du jour spark

cinci zoo sniper
Mar 15, 2013




Malcolm XML posted:

it's the language of the technology du jour spark

that i think ive heard, but did it happen by chance or are there specific reasons that make scala better for it than, say, java or c#

ComradeCosmobot
Dec 4, 2004

USPOL July

cinci zoo sniper posted:

that i think ive heard, but did it happen by chance or are there specific reasons that make scala better for it than, say, java or c#

basically spark was being developed while java was in the long limbo between 7 and 8, so the spark guys went with the only language on the jre that supported lambdas at that time

cinci zoo sniper
Mar 15, 2013




ComradeCosmobot posted:

basically spark was being developed while java was in the long limbo between 7 and 8, so the spark guys went with the only language on the jre that supported lambdas at that time

oic, ty

eschaton
Mar 7, 2007

Don't you just hate when you wind up in a store with people who are in a socioeconomic class that is pretty obviously about two levels lower than your own?

carry on then posted:

oh, the "you should already be an experienced programmer by the time you graduate high school or you aren't passionate enough" argument. heard that one too

raminasi posted:

i interpreted it as “if you’re going to do SICP you should do all of it”

it was the latter

also SICP assumes you’re starting from scratch with programming

carry on then
Jul 10, 2010

by VideoGames

(and can't post for 10 years!)

eschaton posted:

it was the latter

also SICP assumes you’re starting from scratch with programming

i know it's from mit but a fully working cpu AND compiler designed and debugged seems a bit hard for even an expert to do in a semester

but my bs cs was unranked so maybe i'm just extremely dumb and bad :shrug:

eschaton
Mar 7, 2007

Don't you just hate when you wind up in a store with people who are in a socioeconomic class that is pretty obviously about two levels lower than your own?

carry on then posted:

i know it's from mit but a fully working cpu AND compiler designed and debugged seems a bit hard for even an expert to do in a semester

but my bs cs was unranked so maybe i'm just extremely dumb and bad :shrug:

even MIT didn’t get through the book in a semester :ssh:

aardvaard
Mar 4, 2013

you belong in the bog of eternal stench

carry on then posted:

i know it's from mit but a fully working cpu AND compiler designed and debugged seems a bit hard for even an expert to do in a semester

but my bs cs was unranked so maybe i'm just extremely dumb and bad :shrug:

perhaps it was some kind of "joke"

tef
May 30, 2004

-> some l-system crap ->

Cybernetic Vermin posted:

the real problem with python3 remains that it demonstrated that the maintainers

why aren't these people doing free work that benefits me???

Suspicious Dish
Sep 24, 2011

2020 is the year of linux on the desktop, bro
Fun Shoe

tef posted:

why aren't these people doing free work that benefits me???

lots of other people stepped up to do free work that benefitted them, but the maintainers pushed the community away since they had their own plans for python3.

tef
May 30, 2004

-> some l-system crap ->
python's mistake was breaking the ABI and the language at the same time

which meant library authors would not port until users moved

and users would not port until libraries were there

they also made a huge mistake on 2to3, meanwhile things like 'ok strings can have u"" at the front in 3 too' and the six library took forever

3.3 was the first usable version, and it wasn't until 3.5 that it made a difference


python two, on the other hand, has been supported for way way longer than contemporaries


although, looking at ruby, maybe the mistake wasn't breaking stuff quickly enough, because the userbase is far more entitled

cinci zoo sniper
Mar 15, 2013




tef posted:

python's mistake was breaking the ABI and the language at the same time

which meant library authors would not port until users moved

and users would not port until libraries were there

they also made a huge mistake on 2to3, meanwhile things like 'ok strings can have u"" at the front in 3 too' and the six library took forever

3.3 was the first usable version, and it wasn't until 3.5 that it made a difference


python two, on the other hand, has been supported for way way longer than contemporaries


although, looking at ruby, maybe the mistake wasn't breaking stuff quickly enough, because the userbase is far more entitled

whats the 2on3 mistake

Suspicious Dish
Sep 24, 2011

2020 is the year of linux on the desktop, bro
Fun Shoe
i still think the unicode thing was badly planned, badly designed, and too hastily implemented. and just like microsoft and their utf16 unicode, by the time that python3 was released people realized that codepoints are a bad unit to split text into, and a better option is grapheme clusters

whoops

Cybernetic Vermin
Apr 18, 2005

tef posted:

why aren't these people doing free work that benefits me???

this remains the worst argument in the world (while annoyingly also being one of the most common whenever any sort of argument an open source project being poo poo comes up). unless, of course, you *actually* want to make the point that open source volunteer software is fundamentally not a trustworthy basis for any kind of serious system. i have not myself found that to be a general truth, rather it just happens that the python crowd specifically turned out to be either really bad at what they are trying to do, or possibly have some very weird vision of what they want to achieve which i think i would need some much more in-depth explanation of before i can really judge

tef
May 30, 2004

-> some l-system crap ->

Cybernetic Vermin posted:

this remains the worst argument in the world

i know it upsets you because it's true and you're a petulant baby, but eh

tef
May 30, 2004

-> some l-system crap ->

Suspicious Dish posted:

i still think the unicode thing was badly planned, badly designed, and too hastily implemented. and just like microsoft and their utf16 unicode, by the time that python3 was released people realized that codepoints are a bad unit to split text into, and a better option is grapheme clusters

whoops

like splitting text up into characters to preserve array like access is the mistake

Thermopyle
Jul 1, 2003

...the stupid are cocksure while the intelligent are full of doubt. —Bertrand Russell

the problem with a lot of these types of discussion is that a lot of it is built on expectations.

we expected a lot out of python 3, and there were a lot of missed opportunities and it fell short of what could have been.

but, in the meantime, people are still building stuff with python 3 and are enjoying using it and it's not like 99% of people are spending vast portions of time working around the atrocities py3k hath wrought

i always find myself in this weird spot where I find myself completely agreeing with most people's criticisms while at the same time barely even caring

cinci zoo sniper
Mar 15, 2013




Thermopyle posted:

i always find myself in this weird spot where I find myself completely agreeing with most people's criticisms while at the same time barely even caring

kinda same. i didnt care for python 3 until last year or so, but now the adoption for everything i need is there so im using it and preferring it over python 2 even if we disregard all the support circumstances

Cybernetic Vermin
Apr 18, 2005

seriously though, can you imagine if java 5 would have launched with a 4to5 which crudely attempted to replace non-generic uses of collections with generic versions to facilitate changing the bytecode because the developers were too fragile snowflakes to tolerate the ugliness of having the disconnect between the compiler view of the types and the bytecodes?

the loving billions of dollars poured into reengineering and revalidating software, combing over it all to migrate it forwards, and backwards, trying to bridge the gap between 4 and 5. the vast swathes of the landscape which would, entirely rationally, forever be stuck on 4. over what basically amounted to a handful of autists figuring this was all their own special adventure, with no need to have any regard for anyone elses realities in the context

luckily the broader industry was suspicious towards relying on open-source and volunteer-driven software to that extent, so python was not quite where java was at, but i personally sure would have preferred to not have them so thoroughly legitimize stereotypes about vendor reliance

Suspicious Dish
Sep 24, 2011

2020 is the year of linux on the desktop, bro
Fun Shoe
as someone that does a lot of reverse engineering, network protocols, and in a lot of cases, deals with completely hosed filenames, python3 is a lot worse of a language for me. i understand that people implementing database skins love it and it probably works much better for their use case, but it's a much worse language for me, and i feel disappointed by the lack of a language that fills the same niche that python 2 filled.

Suspicious Dish
Sep 24, 2011

2020 is the year of linux on the desktop, bro
Fun Shoe

cinci zoo sniper posted:

whats the 2on3 mistake

since nobody said this yet, they released a tool called "2to3" which claimed to port your code from python 2 to python 3, but was ultimately useless. people kept complaining about it and the core python team basically did gently caress all to help them until python 3.3.

most libraries remain both python2 and python3 compatible which means you can't use any of the cool new features of python3 and have to deal with the maniacal incompatible syntax things between them.

cinci zoo sniper
Mar 15, 2013




Suspicious Dish posted:

since nobody said this yet, they released a tool called "2to3" which claimed to port your code from python 2 to python 3, but was ultimately useless. people kept complaining about it and the core python team basically did gently caress all to help them until python 3.3.

most libraries remain both python2 and python3 compatible which means you can't use any of the cool new features of python3 and have to deal with the maniacal incompatible syntax things between them.

i see. i was aware of the tool but never had to use it. sounds like a really stupid think to gently caress up if it was a first party thing, which i assume it is

re: your other post, what problems do you face with filenames in py3 that weren't there in py2?

rjmccall
Sep 7, 2007

no worries friend
Fun Shoe
so, the analogies with statically-typed
languages are weak here because part of what makes dynamically-typed languages work is never having incompatible types for the same kind of data. e.g. either there is one basic number type or the different number types implicitly promote when you add them, for a sort of duck-typing effect. that is what drives some people crazy about python3 strings, they think of byte-strings and text-strings as basically the same kind of data and so they don’t have a good mental model of when something ought to expect one or the other, so they have dynamic type errors all the time because there’s a good reason those aren’t compatible types. in a statically-typed system this isn’t a problem because the type system very naturally lets you know when you missed a conversion, which is why both java and c# were able to redesign their collections without massively breaking the world

cinci zoo sniper
Mar 15, 2013




i completely dont get the byte-string and text-string difference, or its implications even if its my naive assumption that one is array of bytes, and other is array of chars

but that shouldnt be news to anyone who has seen me post over in tp thread, and doesnt affect the stuff i "code" either, since it's number crunching all the way donw

Adbot
ADBOT LOVES YOU

Fiedler
Jun 29, 2002

I, for one, welcome our new mouse overlords.

rjmccall posted:

part of what makes dynamically-typed languages work bad is never having incompatible types for the same kind of data

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