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
Pardot
Jul 25, 2001




haha someone just saw someone who appeared to be wearing a mongodb shirt unironically

Adbot
ADBOT LOVES YOU

ultramiraculous
Nov 12, 2003

"No..."
Grimey Drawer

Pardot posted:

haha someone just saw someone who appeared to be wearing a mongodb shirt unironically

I have a MongoDB mug, and I wish I had more opportunities to drink kool-aid out of it

FamDav
Mar 29, 2008

Vanadium posted:

it's a hard sell to people who are used to manual memory management and pointer arithmetic and wtf, and to people who are used to just having the GC keep their leg together or w/e, and also to people who get frustrated quickly when the compiler won't do what they mean.

so rust is the compromise that nobody wanted?

Notorious b.s.d.
Jan 25, 2003

by Reene

tef posted:

(p.s. Clojure isn't really much like the classical lisps, like scheme or CL imho. it has some syntax and doesn't reject the outside world)

clojure has a very similar amount of syntax to CL

also CL explicitly sought to uhh, not "reject the world." had what they considered reasonable interop at the time it was conceived. the great goal was to unify programming not between CL and other things on its platform, but between multivendor Lisp machines and Lisp running on UNIX

presenting a uniform set of abstractions across operating systems that sometimes lack concepts like "files" or "processes" is a much taller order than clojure<=>jvm interop, and the results were predictably messy

Pardot
Jul 25, 2001




ultramiraculous posted:

I have a MongoDB mug, and I wish I had more opportunities to drink kool-aid out of it



too bad they leak too

Posting Principle
Dec 10, 2011

by Ralp

Pardot posted:



too bad they leak too

lmao

double sulk
Jul 2, 2010

Pardot posted:



too bad they leak too


Cybernetic Vermin
Apr 18, 2005

FamDav posted:

so rust is the compromise that nobody wanted?

popular appeal is a poor metric, people want lovely things like mongodb mugs

Notorious b.s.d. posted:

presenting a uniform set of abstractions across operating systems that sometimes lack concepts like "files" or "processes" is a much taller order than clojure<=>jvm interop, and the results were predictably messy

CL was an ill-conceived idea that completely failed, but was still a really solid engineering effort. it is really way better than the average present-day lisp idiot ("hey, lets write another blogpost about macro hygiene rather than every writing any useful code ever!") deserves

Shaggar
Apr 26, 2006

Pardot posted:



too bad they leak too

loooool

Catalyst-proof
May 11, 2011

better waste some time with you

Pardot posted:



too bad they leak too

lol

Blotto Skorzany
Nov 7, 2008

He's a PSoC, loose and runnin'
came the whisper from each lip
And he's here to do some business with
the bad ADC on his chip
bad ADC on his chiiiiip

this is it fellas. peak yospos.

Nomnom Cookie
Aug 30, 2009



btw high-performance java code is definitely not idiomatic and involves poo poo like building data structures in byte[]s to avoid per-object overhead, using arrays (especially primitive arrays) whenever reasonable, and avoiding creating new objects. it's probably about the same difference in difficulty as writing slow lisp vs fast lisp but idk bc lisp is stupid

tef
May 30, 2004

-> some l-system crap ->

Suspicious Dish posted:

To reanimate the program, its parse tree must be reconstructed. This phase exists only if code generation occurred and you chose to generate bytecode. Perl must first reconstitute its parse trees from that bytecode sequence before the program can run. Perl does not run directly from the bytecodes; that would be slow.

i loving love the camel book

[1] peculate: v.i., to swipe the People's Property from the commons in the middle of the night; to embezzle from the public something that is not necessarily money (~L. peculiar, "not common"), cf embrace, extend, GPL.

tef
May 30, 2004

-> some l-system crap ->

Internaut! posted:

ugh, why

I'd kill for automatic memory management, pointer safety etc

and from what I've read Java pretty much keeps pace with C++ without much effort on part of developers

you can have that inside the vm, and do all the safety in the compiler rather than vm level


:q:

it's just when you put policy inside the vm, you restrict things.

tef
May 30, 2004

-> some l-system crap ->

Pardot posted:



too bad they leak too

tee hee

Null Pointer
May 20, 2004

Oh no!

tef posted:

you can have that inside the vm, and do all the safety in the compiler rather than vm level


:q:

it's just when you put policy inside the vm, you restrict things.

or at least make the policy optional. cil/.net gives you ldelem to load from an array index with bounds checking, but you can also fall back to ldind to read from an arbitrary address. java doesn't even give you a choice.

Nomnom Cookie
Aug 30, 2009



Null Pointer posted:

or at least make the policy optional. cil/.net gives you ldelem to load from an array index with bounds checking, but you can also fall back to ldind to read from an arbitrary address. java doesn't even give you a choice.

Sun eventually decided that PEEK and POKE were essential after all and added them to the JVM in sun.misc.Unsafe but the only way plebs can access that class is by reflection. and it's vendor-specific ofc

JewKiller 3000
Nov 28, 2006

by Lowtax

Nomnom Cookie posted:

using arrays (especially primitive arrays) whenever reasonable

enjoy your extra runtime checks to compensate for broken (covariant) arrays

Blotto Skorzany
Nov 7, 2008

He's a PSoC, loose and runnin'
came the whisper from each lip
And he's here to do some business with
the bad ADC on his chip
bad ADC on his chiiiiip

JewKiller 3000 posted:

enjoy your extra runtime checks to compensate for broken (covariant) arrays

the funny thing here is that all modern c compilers will optimize out range checks in the cases where they're expensive with no loss in safety. Sufficiently Smart JIT, folks

JewKiller 3000
Nov 28, 2006

by Lowtax

Otto Skorzeny posted:

the funny thing here is that all modern c compilers will optimize out range checks in the cases where they're expensive with no loss in safety. Sufficiently Smart JIT, folks

i'm not talking about range checks, these are runtime type checks, done because the static typing of arrays in java is unsound with respect to subtyping

ymgve
Jan 2, 2004


:dukedog:
Offensive Clock
im working on some email stuff and god drat why does every single email software dev decide that their way of formatting dates is the correct one

JawnV6
Jul 4, 2004

So hot ...

Pardot posted:



too bad they leak too

Nevergirls
Jul 4, 2004

It's not right living this way, not letting others know what's true and what's false.

ymgve posted:

im working on some email stuff and god drat why does every single email software dev decide that their way of formatting dates is the correct one

Because every conceivable format is permitted by the RFC

JewKiller 3000
Nov 28, 2006

by Lowtax
there needs to be a required course in all college cs/ce/softeng/whatever degrees, where the entire content of the class is just reading and discussing key internet RFCs and ISO standards. it's easy to test, highly relevant, and would reduce some of this "everyone reinvents the world badly" bullshit

Shaggar
Apr 26, 2006
nah, they'll just go and write new implementations of those rfcs in whatever fad-lang the school has them on at the time.

JewKiller 3000
Nov 28, 2006

by Lowtax
as long as they're implementing a standard, rather than creating their own without even the knowledge that one already exists, it's a step in the right direction

Sweeper
Nov 29, 2007
The Joe Buck of Posting
Dinosaur Gum
i feel like you could only get through one rfc (if you implemented it and were tested on why all the decisions were made and such)

Sweeper
Nov 29, 2007
The Joe Buck of Posting
Dinosaur Gum
ofc that depends on which rfc you choose

weird
Jun 4, 2012

by zen death robot
Really wish people would quit using "Lisp" by itself to mean some tiny, idealised subset of Common Lisp that doesn't have syntax, CLOS, data structures aside from lists, loop and do, and isn't written anything like modern Common Lisp tends to be written. Maybe it would help if more schools taught Scheme instead of CL for their Lisp and Prolog class. People would still go away thinking that Scheme is a lot purer and smaller than it is, but they'd be closer to being right than they are when they talk about Common Lisp as just recursion and brackets.

Suspicious Dish
Sep 24, 2011

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

VanillaKid posted:

Really wish people would quit using "Lisp" by itself to mean some tiny, idealised subset of Common Lisp that doesn't have syntax, CLOS, data structures aside from lists, loop and do, and isn't written anything like modern Common Lisp tends to be written. Maybe it would help if more schools taught Scheme instead of CL for their Lisp and Prolog class. People would still go away thinking that Scheme is a lot purer and smaller than it is, but they'd be closer to being right than they are when they talk about Common Lisp as just recursion and brackets.

link

Nomnom Cookie
Aug 30, 2009



Sweeper posted:

i feel like you could only get through one rfc (if you implemented it and were tested on why all the decisions were made and such)

That would be a cool class with the http 1.1 RFC IMO

Vanadium
Jan 8, 2005

FamDav posted:

so rust is the compromise that nobody wanted?

I'm convinced they're gonna keep adjusting the system until they're happy with it or until Mozilla stops funding them, they don't look like they're about to halfass it. They've thrown out huge features before that weren't working right, and while like nobody else uses rust (because it's really not nearly there), they have a compiler, the beginnings of a html rendering engine and toy projects like nes emulators for dogfood.

But pretty much every day someone drops into the channel, posts a reasonable-looking chunk of code that iterates over a container while accumulating or whatever and is surprised that the compiler isn't having it. It's definitely impacting people's productivity for a while.

Nomnom Cookie
Aug 30, 2009



JewKiller 3000 posted:

enjoy your extra runtime checks to compensate for broken (covariant) arrays

That's the one where you get arraystoreexception from a statically correct element assignment right? Yeah that doesn't really come up. Primitive arrays aren't affected and also it's a really dumb usage of arrays anyway

FamDav
Mar 29, 2008

Vanadium posted:

I'm convinced they're gonna keep adjusting the system until they're happy with it or until Mozilla stops funding them, they don't look like they're about to halfass it. They've thrown out huge features before that weren't working right, and while like nobody else uses rust (because it's really not nearly there), they have a compiler, the beginnings of a html rendering engine and toy projects like nes emulators for dogfood.

But pretty much every day someone drops into the channel, posts a reasonable-looking chunk of code that iterates over a container while accumulating or whatever and is surprised that the compiler isn't having it. It's definitely impacting people's productivity for a while.

i like to think this is similar to the experience of using ruby and python back in their first iterations, but i was like 6 then so i don't know if im right.

rotor?

Catalyst-proof
May 11, 2011

better waste some time with you

VanillaKid posted:

loop and do

i think you mean iter

Notorious b.s.d.
Jan 25, 2003

by Reene

Nomnom Cookie posted:

btw high-performance java code is definitely not idiomatic and involves poo poo like building data structures in byte[]s to avoid per-object overhead, using arrays (especially primitive arrays) whenever reasonable, and avoiding creating new objects. it's probably about the same difference in difficulty as writing slow lisp vs fast lisp but idk bc lisp is stupid

right, but you can get reasonable java performance just by writing garbage. you can write bog-standard java and expect it will run reasonably well. "high-performance" java means rivaling C++ in tight loops. "high-performance" CL means running well enough not to piss off an interactive user.

just writing a regular gui app in CL probably means a trip into vector types and nasty optimization land, because otherwise performance is so bad it's noticeable by the user.

(CL has genuinely decent open source compilers, but since idiomatic CL means not bothering to tell the compiler anything useful... garbage in, garbage out i guess)

Notorious b.s.d.
Jan 25, 2003

by Reene

VanillaKid posted:

Really wish people would quit using "Lisp" by itself to mean some tiny, idealised subset of Common Lisp that doesn't have syntax, CLOS, data structures aside from lists, loop and do, and isn't written anything like modern Common Lisp tends to be written. Maybe it would help if more schools taught Scheme instead of CL for their Lisp and Prolog class. People would still go away thinking that Scheme is a lot purer and smaller than it is, but they'd be closer to being right than they are when they talk about Common Lisp as just recursion and brackets.

i am also sick to death of this

the reason that CL is worthwhile is that it's not some laboratory toy language. real people had to deal with this thing in production and port legacy systems to it.

as a result, CL is perfectly well-suited to writing dumbfuck imperative code filled with mutable state, java-like OO, or any number of other things. it permits functional programming with a lisp syntax but it's not loving handcuffs.

diversity is what makes Common Lisp what it is. the summarized standard is 1500 pages, because it supports every (extant at the time) programming paradigm with a standard library that could be useful across radically dissimilar platforms




edit: i probably shouldn't have implied CL is worthwhile. it is a cool and fun language but the library/ecosystem situation is seriously lovely, so as soon as you need something outside the core set of libraries provided by your vendor, ugh

Notorious b.s.d.
Jan 25, 2003

by Reene

FamDav posted:

i like to think this is similar to the experience of using ruby and python back in their first iterations, but i was like 6 then so i don't know if im right.

rotor?

but ruby and python never got fast/good/finished implementations that could be used for production code?

or are you saying that we should just sit and wait for rust to be hip among a new generation of coders who have never heard of garbage collection, kind of the antithesis of the 1990s revolution in programming languages

Nomnom Cookie
Aug 30, 2009



Notorious b.s.d. posted:

right, but you can get reasonable java performance just by writing garbage. you can write bog-standard java and expect it will run reasonably well. "high-performance" java means rivaling C++ in tight loops. "high-performance" CL means running well enough not to piss off an interactive user.

just writing a regular gui app in CL probably means a trip into vector types and nasty optimization land, because otherwise performance is so bad it's noticeable by the user.

(CL has genuinely decent open source compilers, but since idiomatic CL means not bothering to tell the compiler anything useful... garbage in, garbage out i guess)

i'm surprised CL hasn't got a decent JIT implementation...a lot of the profiling stuff that hotspot does seems even more suited to CL than Java. like specializing the generated code based on observed types of actual arguments. Javascript VMs do that to some extent I think?

Adbot
ADBOT LOVES YOU

Nomnom Cookie
Aug 30, 2009



i mean type hinting is okay, but it should be documentation for users rather than something the compiler cares about. if the observed type of arguments is always the same then go ahead and assume it will stay that way, with an unlikely branch in the prolog to dump back into the interpreter if expected & actual types don't match.

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