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
gnatalie
Jul 1, 2003

blasting women into space

Subjunctive posted:

do you do birthday parties?

they're great for slumber parties

Adbot
ADBOT LOVES YOU

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?

Cybernetic Vermin posted:

literally preparing a presentation to argue the dept into switching from c to python for intro programming as we speak. rce of profit for security people in the future.

better Python than C but it’s still no Scheme

SICP and 6.001 are the gold standard and why do your students deserve any less?

MIT only stopped because they caved to pressure from industry not because it was better for learning computer science

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?

Plorkyeran posted:

i do not particularly understand why people act like lisp is still special

syntax-transforming macros and homoiconicity go hand in hand

you don’t strictly need homoiconicity for syntax-transforming macros, infix Dylan and Swift both have real macro systems, but they’re way easier to read,
write, and maintain when you don’t have to worry as
much about mapping between syntax and its representation

Cybernetic Vermin
Apr 18, 2005

eschaton posted:

better Python than C but it’s still no Scheme

SICP and 6.001 are the gold standard and why do your students deserve any less?

MIT only stopped because they caved to pressure from industry not because it was better for learning computer science

racket has been floated, it is for sure a harder sell though

FlapYoJacks
Feb 12, 2009

Cybernetic Vermin posted:

literally preparing a presentation to argue the dept into switching from c to python for intro programming as we speak. the c intro works real badly, the struggling students get stuck on esoteric detail, while among the stronger students a weird "low-level" macho culture develops where they nonetheless produce mostly garbage code, fail to climb in abstraction, and will no doubt be a source of profit for security people in the future.

Argue for Rust.

Athas
Aug 6, 2007

fuck that joker
Do not argue for Rust.

ynohtna
Feb 16, 2007

backwoods compatible
Illegal Hen
Show them Rust until they scream for Scheme.

Grum
May 7, 2007
they should make a teaching version of rust that checks borrows and variable name typos at run time

NihilCredo
Jun 6, 2011

iram omni possibili modo preme:
plus una illa te diffamabit, quam multæ virtutes commendabunt

ynohtna posted:

Show them Rust until they scream for Scheme.

basic negotiation skills

"$SCARY_LANG is obviously the only sensible choice and anybody who can't see it is a philistine.

...however, though it pains me greatly to admit it, $LESS_SCARY_LANG_THAT_I_ACTUALLY_WANT might perhaps have some qualities that make it not completely unsuitable..."

Internet Janitor
May 17, 2008

"That isn't the appropriate trash receptacle."
awk as an introductory programming language:

  • high performance
  • familiar, conventional c-like syntax
  • quality reference and tutorial materials are available
  • broadly used in professional environments
  • already installed on whatever posix os you're using

Subjunctive
Sep 12, 2006

✨sparkle and shine✨

just teach excel first, it’s like a logic programming language anyway, and it’ll be useful whatever regardless of what career someone ends in (even if it’s tracking finances and part orders as a tradesperson, or personal budgeting)

my kid has been asking what programming instruction to take if she wants to do programming as part of something else, like bioinformatics or planetary sciences or something rather than software qua software. it feels like the best bet is python there? maybe Java?

mystes
May 31, 2006

Subjunctive posted:

my kid has been asking what programming instruction to take if she wants to do programming as part of something else, like bioinformatics or planetary sciences or something rather than software qua software. it feels like the best bet is python there? maybe Java?
Definitely python based on what people are using right now, although who knows if that will still be the case in the future

bob dobbs is dead
Oct 8, 2017

I love peeps
Nap Ghost
the mass transition was from fortran, so actually scientific code is remarkably conservative in that regard

Subjunctive
Sep 12, 2006

✨sparkle and shine✨

mystes posted:

Definitely python based on what people are using right now, although who knows if that will still be the case in the future

yeah, she’s done high school next year so I figure there will still be some people on python out there by the time she gets to use it!

Subjunctive
Sep 12, 2006

✨sparkle and shine✨

bob dobbs is dead posted:

the mass transition was from fortran, so actually scientific code is remarkably conservative in that regard

AIUI part of the reason that the transition from Fortran took so long is that they didn’t always have source code for all the pieces like vendor-accelerated libraries. nobody wanted to have to rebuild them (and risk correctness and performance) so “have to support running this exact binaries with their hard-coded NFS paths for striped I/O and such” became a bid requirement

bob dobbs is dead
Oct 8, 2017

I love peeps
Nap Ghost
and llm's, as they snake through the education system, will destroy the ability of anyone to make new programming languages. i unironically think we might be using python a century hence

rjmccall
Sep 7, 2007

no worries friend
Fun Shoe
i think that code is still there. python is rear end slow, it’s acceptable for hpc because the python is mostly higher-level logic on top of library calls into fortran

bob dobbs is dead
Oct 8, 2017

I love peeps
Nap Ghost
yeah, there's no native python going on there, all ffi

Cybernetic Vermin
Apr 18, 2005

otoh i also think it is a welcome permanent shift to really high-level glue most detail work happens at coupled with computational cores suitable for the tasks.

python might be replaced, but i don't think it'll ever be replaced by something that is suitable for every level of an application, because once used to this setup there are some real big advantages to it.

Visions of Valerie
Jun 18, 2023

Come this autumn, we'll be miles away...

Internet Janitor posted:

awk as an introductory programming language:

  • high performance
  • familiar, conventional c-like syntax
  • quality reference and tutorial materials are available
  • broadly used in professional environments
  • already installed on whatever posix os you're using

I love awk

Plorkyeran
Mar 22, 2007

To Escape The Shackles Of The Old Forums, We Must Reject The Tribal Negativity He Endorsed

eschaton posted:

syntax-transforming macros and homoiconicity go hand in hand

you don’t strictly need homoiconicity for syntax-transforming macros, infix Dylan and Swift both have real macro systems, but they’re way easier to read,
write, and maintain when you don’t have to worry as
much about mapping between syntax and its representation

non-hygenic macros suck

pokeyman
Nov 26, 2006

That elephant ate my entire platoon.
I've tried to write swift macros a couple times and found it incredibly difficult. dumping out syntax trees is alright for learning what's what, but figuring out how to make new nodes is infuriating

more examples and any docs will help someday. done touching the stove for now

rjmccall
Sep 7, 2007

no worries friend
Fun Shoe
i think you’re expected to do it with the string interpolation thing; that seems a lot more approachable than using the apis directly

Captain Foo
May 11, 2004

we vibin'
we slidin'
we breathin'
we dyin'

Plorkyeran posted:

non-hygenic macros suck

SHOWER()

pokeyman
Nov 26, 2006

That elephant ate my entire platoon.

rjmccall posted:

i think you’re expected to do it with the string interpolation thing; that seems a lot more approachable than using the apis directly

that makes sense. I had a hard time figuring out when I could do that, especially with interpolation and looping/accumulation. there's result builders sprinkled around that seem helpful for conditionals and looping, but it seemed arbitrary when they're available. probably didn't help that I had zero intuition for what types come out the other end. everything's on an equal(ly undocumented) plane despite feeling like there's a lot of lower level types and initializers I probably shouldn’t reach for

anyway, I'm sure it'll get there, and I'll try it again sometime and get a little further

redleader
Aug 18, 2005

Engage according to operational parameters

Cybernetic Vermin posted:

otoh i also think it is a welcome permanent shift to really high-level glue most detail work happens at coupled with computational cores suitable for the tasks.

python might be replaced, but i don't think it'll ever be replaced by something that is suitable for every level of an application, because once used to this setup there are some real big advantages to it.

java script

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?

Cybernetic Vermin posted:

otoh i also think it is a welcome permanent shift to really high-level glue most detail work happens at coupled with computational cores suitable for the tasks.

once again Symbolics did it in the 1980s: you could get an array processor board set for your 3600 system, and the high-level API would work with software floating point (excruciating), hardware floating point (not quite as excruciating), and the array processor (actually fast compared to the other two)

in theory one could write a backend that farmed out the vector processing work to pretty much anything that could interface with the system, in theory today you could have it send work to a modern GPU sitting in a Linux box on the other end of a TCP connection

it was used to accelerate things like their Plexi neural network system

the oil & gas industry bought a lot of Symbolics systems

Cybernetic Vermin
Apr 18, 2005

eschaton posted:

once again Symbolics did it in the 1980s: you could get an array processor board set for your 3600 system, and the high-level API would work with software floating point (excruciating), hardware floating point (not quite as excruciating), and the array processor (actually fast compared to the other two)

in theory one could write a backend that farmed out the vector processing work to pretty much anything that could interface with the system, in theory today you could have it send work to a modern GPU sitting in a Linux box on the other end of a TCP connection

it was used to accelerate things like their Plexi neural network system

the oil & gas industry bought a lot of Symbolics systems

one of those that's been done lots of times, which is why it is easy to predict it'll stick, because the only thing that really changed is that it gained broad acceptance and momentum. python is not perfect for the purpose, but it is close enough that i think anything replacing it will have to be of the form "python except x".

Zlodo
Nov 25, 2006
python except good

Wheany
Mar 17, 2006

Spinyahahahahahahahahahahahaha!

Doctor Rope

Subjunctive posted:

just teach excel first, it’s like a logic programming language anyway, and it’ll be useful whatever regardless of what career someone ends in (even if it’s tracking finances and part orders as a tradesperson, or personal budgeting)

Teaching excel as well as whatever "real" programming language might at least help introduce some different programming paradigms.i taught myself programming, using basic, arexx and even c. Then we had one course in college that used lisp and I could not wrap my head around functional programming and closures at all. I got it almost a decade later with javascript lol

Dijkstracula
Mar 18, 2003

You can't spell 'vector field' without me, Professor!

Zlodo posted:

python except good

we haven't had a good rubypost in awhile

Wheany
Mar 17, 2006

Spinyahahahahahahahahahahahaha!

Doctor Rope

Wheany posted:

Teaching excel as well as whatever "real" programming language might at least help introduce some different programming paradigms

Also node-based programming in blender. Or unreal, i heard it has some node based thing too.

Just do a bit of everything

BobHoward
Feb 13, 2012

The only thing white people deserve is a bullet to their empty skull

Wheany posted:

Also node-based programming in blender. Or unreal, i heard it has some node based thing too.

Just do a bit of everything

don't do verilog

i beg

(i do verilog :smith:)

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?

Zlodo posted:

python except good

so Common Lisp or Scheme or prefix Dylan (which is really just Scheme rebased on CLOS)

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?

Dijkstracula posted:

we haven't had a good rubypost in awhile

there’s good reason for that

Nomnom Cookie
Aug 30, 2009



ive been getting into windows kernel programming in rust (yeah im a kinky boy i love it) and its neat seeing how language features and architecture features aren't always cleanly separated. like exception handling. not only does windows support exceptions in the kernel (although it promises to bugcheck if you let one escape your driver) some kernel mode APIs will raise exceptions in the right circumstances

this is not "a c++ thing" because windows exceptions are called SEH and they are language neutral. if supporting both C and C++ counts as language neutral

the obvious rust equivalent is panicking, and that design works great in userspace as rust panics are just the language formalizing the way you should be doing exceptions in modern c++ anyway i.e. if you throw it means everything is hosed. it is not clear to me though how to map "userspace gave me a bad pointer so now i am unwinding the call stack and am expected to recover from this state" to something rust can do. the gfy panic handler in a kernel is loop {} and the tryhard one would be to bugcheck or something. neither great options

maybe write a wrapper for kernel API calls that will trap exceptions and turn them into Result values? i'm sure some kind of fuckery is possible to make that work

bob dobbs is dead
Oct 8, 2017

I love peeps
Nap Ghost
true comedy option is to call up the windows peeps and ask for a rust dealio in the kernel for windows 12 then wait 5 years

Nomnom Cookie
Aug 30, 2009



they made a github repo and it does not solve this at all. the panic handler you get from them is loop{} with a FIXME to think about doing something sane. it also only lets you target the most recent KMDF version and makes heavy use of bindgen inside build.rs. im not holding my breath waiting for a solution from MS on this or it being a solution i'd be willing to adopt

Cybernetic Vermin
Apr 18, 2005

from what i hear microsoft is looking pretty hard at it, so i wouldn't bet against something being figured out. they are probably not at all above messing with the language a little bit if needed. which is probably mostly healthy.

Adbot
ADBOT LOVES YOU

Nomnom Cookie
Aug 30, 2009



visual R# now with catch blocks

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