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
X-BUM-RAIDER-X
May 7, 2008

MononcQc posted:

[ ] what is an object anyway?

a bad programmer's crutch

Adbot
ADBOT LOVES YOU

double sulk
Jul 2, 2010

the best objects are the ones you don't have to think about

Zombywuf
Mar 29, 2008

*makes feeble attempt to bring up Prolog chat*

PleasingFungus
Oct 10, 2012
idiot asshole bitch who should fuck off

Zombywuf posted:

*makes feeble attempt to bring up Prolog chat*

illogical

Zombywuf
Mar 29, 2008

Fine have some dependant types: http://cseweb.ucsd.edu/~rchugh/research/nested/djs.pdf

X-BUM-RAIDER-X
May 7, 2008

gucci void main posted:

the best objects are the ones you don't have to think about

sulk i hear you got a job, n1 m8

tef
May 30, 2004

-> some l-system crap ->

MononcQc posted:

[ ] what is an object anyway?

choose your own adventure

a container for global like variables in member functions

a light weight process that responds to async message passing

a container for global variables that responds to sync messages

a way of having properties on data structures and allowing polymorphism through single dispatch

quote:

[ ] best type of inheritance (traits?)

traits are drat neat, but delegation style patterns (to a superclass or another object) are useful too. flat composition should be the default tho

problem is really that subtyping and code reuse are done through same mechanism without an easy way to unfuck it.

quote:

[ ] design patterns are the best / the worst

i'm sure i've done that one in here


Otto Skorzeny posted:

does anybody really know what time it is?

this would also be fun to rant and copy paste into a blog

tef
May 30, 2004

-> some l-system crap ->

Zombywuf posted:

*makes feeble attempt to bring up Prolog chat*

no

Zombywuf
Mar 29, 2008

tef posted:

a container for global like variables in member functions

a light weight process that responds to async message passing

a container for global variables that responds to sync messages

a way of having properties on data structures and allowing polymorphism through single dispatch

An array with pretentions.

Cocoa Crispies
Jul 20, 2001

Vehicular Manslaughter!

Pillbug

Zombywuf posted:

An array with pretentions.

a hashtable with functions in some of the entries

(literally how javascript works)

tef
May 30, 2004

-> some l-system crap ->

Cocoa Crispies posted:

a hashtable with functions in some of the entries

(literally how javascript works)

hidden classes have a parent pointer too

Malcolm XML
Aug 8, 2009

I always knew it would end like this.

Zombywuf posted:

*makes feeble attempt to bring up Prolog chat*

No.

MononcQc
May 29, 2007

quote:

The venerable master Qc Na was walking with his student, Anton. Hoping to prompt the master into a discussion, Anton said "Master, I have heard that objects are a very good thing - is this true?" Qc Na looked pityingly at his student and replied, "Foolish pupil - objects are merely a poor man's
closures."

Chastised, Anton took his leave from his master and returned to his cell, intent on studying closures. He carefully read the entire "Lambda: The Ultimate..." series of papers and its cousins, and implemented a small Scheme interpreter with a closure-based object system. He learned much, and looked forward to informing his master of his progress.

On his next walk with Qc Na, Anton attempted to impress his master by saying "Master, I have diligently studied the matter, and now understand that objects are truly a poor man's closures." Qc Na responded by hitting Anton with his stick, saying "When will you learn? Closures are a poor man's
object." At that moment, Anton became enlightened.

tef
May 30, 2004

-> some l-system crap ->
c.f iterator and observer are duals


also i'm with joe when he says erlang is the only oo language :3:

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
i think alan kay said that at some point too

Sang-
Nov 2, 2007

Notorious b.s.d. posted:

someone with more knowledge of scala's internals could address this better, but i think breaking backwards compatibility a lot is unavoidable given scala's design

compiled scala is missing some of the useful info from the source code, because the jvm is a type-erasing crazy bastard, and the java compiler does a lot of fancy footwork to remain backwards compatible. scala will stuff some of the type data back into the binaries with Manifest classes, but the contents of a Manifest can change from version to version.

the alternative is to be like java and refuse to change the jvm ever, pushing as much implementation of new features as possible into the compiler. i think that is worse, even if it makes it easier to manage libraries.

basically, yeah.

Scala's compatibility comes from being able to run on jvm 1.5* -> jvm 1.8 without needing to recompile. Because of type-erasure and various other decisions (inlining is another culprit I believe), you're pretty much hosed when using different versions of the Scala standard library.

If you get a MethodNotFound exception, chances are one of your dependencies was for a previous version of Scala.


*2.10 deprecates the 1.5 backend

weird
Jun 4, 2012

by zen death robot

My first taste of objects was in Scheme, hand-rolling them out of closures. The first time I used a ~proper~ object system, I remember thinking that it was just syntax over lambdas, and then being frustrated when I found out the language didn't even have lambdas, like they gave you one of the things you could build and then took away the tools to build anything yourself. It sort of scared me away from mainstream OOP languages for a while

I just started on learning C# for a thing the other day, though. C# owns

b0lt
Apr 29, 2005

MononcQc posted:

[x] static vs. dynamic
[x] hungarian notation
[x] your source control sucks
[x] threads vs. processes vs. CPS
[x] HN is terrible
[x] why garbage collection is a bad / the best thing
[x] functional vs OO

Topics I am not sure we have covered:

[ ] what is an object anyway?
[ ] best type of inheritance (traits?)
[ ] design patterns are the best / the worst
[ ] camel_case

There might also be place for which OS is the best OS to develop stuff on, or package management debates too.

void *foo vs. void* foo vs. void * foo

double sulk
Jul 2, 2010

b0lt posted:

void *foo vs. void* foo vs. void * foo

void *foo supremacy

Notorious b.s.d.
Jan 25, 2003

by Reene

FamDav posted:

compiling source using different stls isn't a huge problem, it's when you have precompiled objects that are expecting to pass stl data structures back and forth that everything goes wrong.

yeah, compiling isn't too bad, it's the abi that is a bitch. the same is true for scala: source compatibility between 2.8, 2.9, and 2.10 isn't perfect, but it ain't bad.

unfortunately, since the java ecosystem is obsessed with versioning jar files, abi compatibility is way the gently caress more noticeable than source compatibility problems

as much as i love maven and nexus, the maven approach to repo management is the crudest-possible approach. as few features as possible are included, and it is very much based on the premise that the jvm (the effective abi) never changes. scala library publishers work around this by uploading versions with "$X.N.N_2.10" or whatever, assuming that library consumers will use sbt, which expects the abi version to be crammed into the library version. it's all a nasty hack.

perl doesn't have this problem because cpan is the maximalist approach to the problem. rather than a repo of binaries with known dependencies, cpan provides a gigantic unified build/test framework. is cpan technically better than maven central? yeah, probably. does it matter? not unless you are a scala user

Notorious b.s.d.
Jan 25, 2003

by Reene

b0lt posted:

void *foo vs. void* foo vs. void * foo

this has never merited discussion because "void* foo" is so clearly better

(when sulk is the only dissenter you *know* it's a dead letter item)

Gazpacho
Jun 18, 2004

by Fluffdaddy
Slippery Tilde

tef posted:

[x] editor chat
[x] tabs vs spaces
[x] braces
[x] autocomplete
[x] c++ suffering
[x] non java jvm languages are neat and terrible
[x] shaggar
[x] tbc

i think we can wrap it up now guys
[ ] cobol ironydefense

Notorious b.s.d.
Jan 25, 2003

by Reene

if you have to ask why c# or java is a reasonable choice,
you will never understand

java is like zen.

you can only really be enlightened after you watch fat neckbearded fuckwits in fanny packs spout horseshit for hours

only instead of tourists it is "rubyists" and python users. as an industry, tech grows so fast that no one learns from the past. the immutable truth is that there is always a new crop of neckbeards with fanny packs. i will be dead before this stops being true

the talent deficit
Dec 20, 2003

self-deprecation is a very british trait, and problems can arise when the british attempt to do so with a foreign culture





mononoqc:

i drank with yuri tonite and he kinda convinced me elixir is the poo poo and also that maps are coming to r17 with #{key => value} syntax. counterpoint?

Catalyst-proof
May 11, 2011

better waste some time with you

MononcQc posted:

[ ] what is an object anyway?

a miserable little pile of methods

libcxx
Mar 15, 2013
thread_local post<shit> shit_post("lol if u");

horse mans posted:

a miserable little pile of methods

LMAO Any other 90's Kids get this epic ref?

hobbesmaster
Jan 28, 2008

Notorious b.s.d. posted:

this has never merited discussion because "void* foo" is so clearly better

(when sulk is the only dissenter you *know* it's a dead letter item)

then you fall in the void* foo, bar; trap

void *foo, *bar;

libcxx
Mar 15, 2013
thread_local post<shit> shit_post("lol if u");

tef posted:

[x] editor chat
[x] tabs vs spaces
[x] braces
[x] autocomplete
[x] c++ suffering
[x] non java jvm languages are neat and terrible
[x] shaggar
[x] tbc

i think we can wrap it up now guys

You've only got one forum full of sycophants to indulge you, so try to avoid making fun of them so blatantly.

MononcQc
May 29, 2007

the talent deficit posted:

mononoqc:

i drank with yuri tonite and he kinda convinced me elixir is the poo poo and also that maps are coming to r17 with #{key => value} syntax. counterpoint?

I don't know. Elixir adds a bit to what Erlang does (contracts, more macros), but at this point there is so little difference on many aspects I don't see the point of using it. I hope it acts more like a honeypot for ruby nostalgics who wouldn't stop complaining about Erlang anyway. It's likely much easier to sell to non-Erlang users than Erlang users in the first place. I'm also always split on the idea of macros easily available for all.

Maps are coming in R17 according to what Kenneth Lundin (OTP team leader from Ericsson) announced at the Erlang Factory in San Francisco. I think they're good news, but I'm cynical about them. I think people will abuse them and use them as the data structure to rule them all, expose all of their processes' internals by shoving that poo poo around instead of using tuples, proplists, or whatever. Then all the programs out there will look like poo poo that shoves maps everywhere until they're huge and slow and then people start wondering why.

At this point I'm more afraid of how much people will abuse them than excited about the couple of use cases I'll have for them (replacing dicts and gb_trees). We'll see, I guess.

Catalyst-proof
May 11, 2011

better waste some time with you

MononcQc posted:

I don't know. Elixir adds a bit to what Erlang does (contracts, more macros), but at this point there is so little difference on many aspects I don't see the point of using it. I hope it acts more like a honeypot for ruby nostalgics who wouldn't stop complaining about Erlang anyway. It's likely much easier to sell to non-Erlang users than Erlang users in the first place. I'm also always split on the idea of macros easily available for all.

Maps are coming in R17 according to what Kenneth Lundin (OTP team leader from Ericsson) announced at the Erlang Factory in San Francisco. I think they're good news, but I'm cynical about them. I think people will abuse them and use them as the data structure to rule them all, expose all of their processes' internals by shoving that poo poo around instead of using tuples, proplists, or whatever. Then all the programs out there will look like poo poo that shoves maps everywhere until they're huge and slow and then people start wondering why.

At this point I'm more afraid of how much people will abuse them than excited about the couple of use cases I'll have for them (replacing dicts and gb_trees). We'll see, I guess.

is there a cool erlang project with good code and design that you could recommend reading through

thank

double sulk
Jul 2, 2010

horse mans posted:

is there a cool erlang project with good code and design that you could recommend reading through

thank

cowboy

FlapYoJacks
Feb 12, 2009

Jonny 290 posted:

i back up my whole eclipse folder b/c it shits the bed regularly but there's no installer, you just unzip it and start mangling things, so i pick right back up where i left off p much

This is why I was pissed yesterday at eclipse.

Oh you don't want to download any plugins anymore? THANKS FOR making GBS threads UP .eclipse ECLIPSE. GOD.

I didn't need all those custom settings anyways!

Cocoa Crispies
Jul 20, 2001

Vehicular Manslaughter!

Pillbug

horse mans posted:

is there a cool erlang project with good code and design that you could recommend reading through

thank

i read riak source quite a bit

Tiny Bug Child
Sep 11, 2004

Avoid Symmetry, Allow Complexity, Introduce Terror

prefect posted:

http://www.csscript.net/

i'm hoping i can use this to get my team away from an attempted powershell takeover

i also read this as "css script" and was p disappointed

MononcQc posted:

[ ] best type of inheritance (traits?)

prototypal, hands down. maybe kind of hard to wrap yr head around at first but it's so much more flexible than classical inheritance

Otto Skorzeny posted:

does anybody really know what time it is?

yes. it is currently 12:09 PM

MeruFM
Jul 27, 2010

b0lt posted:

void *foo vs. void* foo vs. void * foo

void* foo

only responding because there was so much heated real life debate over this that it broke friendships

thus is the way of the sperg

GameCube
Nov 21, 2006

void *foo;, but void* bar();. that way everyone wins :)

tef
May 30, 2004

-> some l-system crap ->

libcxx posted:

You've only got one forum full of sycophants to indulge you, so try to avoid making fun of them so blatantly.

and occasionally people like you who feel the need to tell me i'm wrong and bad if only to be different

:allears:

Zombywuf
Mar 29, 2008

tef posted:

and occasionally people like you who feel the need to tell me i'm wrong and bad if only to be different

:allears:

I only do it due to personal experience.

tef
May 30, 2004

-> some l-system crap ->
You're like that to everyone

Adbot
ADBOT LOVES YOU

Zombywuf
Mar 29, 2008

I have to have some reason to get out of bed in the morning.

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