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
Stringent
Dec 22, 2004


image text goes here

hackbunny posted:

I'm going to be immortalized as a plush rabbit:


sorry for invading the thread but wtf

PS: the plushies are terribad:

yessssssss

Adbot
ADBOT LOVES YOU

Subjunctive
Sep 12, 2006

✨sparkle and shine✨

hackbunny posted:

I'm going to be immortalized as a plush rabbit

again?

Bloody
Mar 3, 2013

hackbunny posted:

I'm going to be immortalized as a plush rabbit:


sorry for invading the thread but wtf

PS: the plushies are terribad:

im the reactos fanfic

Sweeper
Nov 29, 2007
The Joe Buck of Posting
Dinosaur Gum

Bloody posted:

im the reactos fanfic

seriously what kind of weird poo poo in this

Sweeper
Nov 29, 2007
The Joe Buck of Posting
Dinosaur Gum
who the gently caress even uses reactos

Sniep
Mar 28, 2004

All I needed was that fatty blunt...



King of Breakfast

Sweeper posted:

who the gently caress even uses reactos

i didnt even know that was still a thing

Symbolic Butt
Mar 22, 2009

(_!_)
Buglord

Sniep posted:

i didnt even know that was still a thing

same

Workaday Wizard
Oct 23, 2009

by Pragmatica
gonna get one :3:

hackbunny
Jul 22, 2007

I haven't been on SA for years but the person who gave me my previous av as a joke felt guilty for doing so and decided to get me a non-shitty av

Sweeper posted:

seriously what kind of weird poo poo in this

the reactos project had a pretty... unique culture. I'm far from blameless but at least I'm not writing reactos as an anime girl

Sniep posted:

i didnt even know that was still a thing

bigger than ever apparently. I left them back in 2010, but I still follow the mailing lists. they are now big enough to have a couple paid employees (!)

what it is for is a containment zone for windows kernel nerds

gonadic io
Feb 16, 2011

>>=
Hey you know what's better than semantic indentation? Semantic colour!

Sapozhnik
Jan 2, 2005

Nap Ghost

AlsoD posted:

Hey you know what's better than semantic indentation? Semantic colour!

i worked on a project that had this

it was awful

the "language" consisted of extentions to Excel's expression language.

Max Facetime
Apr 18, 2009

AlsoD posted:

Hey you know what's better than semantic indentation? Semantic colour!

i'm an obese tone deaf socially awkward color blind coder and the hits just keep on coming

Bloody
Mar 3, 2013

AlsoD posted:

Hey you know what's better than semantic indentation? Semantic colour!

what the gently caress

gonadic io
Feb 16, 2011

>>=

Bloody posted:

what the gently caress

the best part is that white is one of the colours, correctly disabling black-on-white people from sullying the language with their code

tef
May 30, 2004

-> some l-system crap ->
same http://thechive.com/2014/08/25/guy-isnt-taking-any-more-of-your-fedora-hating-sht-video/

tef
May 30, 2004

-> some l-system crap ->
on reflection, i think i hate ruby more than any other programming language, past or future

Damiya
Jul 3, 2012

tef posted:

on reflection, i think i hate ruby more than any other programming language, past or future

please elaborate, in detail

ahmeni
May 1, 2005

It's one continuous form where hardware and software function in perfect unison, creating a new generation of iPhone that's better by any measure.
Grimey Drawer

Damiya posted:

please elaborate, in detail

Mr. Glass
May 1, 2009

tef posted:

on reflection, i think i hate ruby more than any other programming language, past or future

i think i hate java the most when it comes to reflection :v:

Tavistock
Oct 30, 2010



reading the skiena book and everyone of his non computer related examples just paint him as a giant goon. we should get him an account. actually anyone who does anything related to maintenance or implementation of computers are probably goons until otherwise proven innocent

tef
May 30, 2004

-> some l-system crap ->
eh, it's hard to hate on it without going through the thousand cuts, but here are the biggies at the moment

- there isn't a community design process. peps have worked pretty well for python, but i haven't seen the same sort of process involved with ruby. this might because that drastic changes to the semantics of a ruby program are very easy to obtain in ruby.

- the documentation is a work in progress, behind the implementation. this might be because the primary sources are all in japanese and much of the core team communicate in japanese.

- much of the ecosystem is dominated by rails and rails accessories. although there are things like sinatra, cuba, sequel, et al, the majority of people i've met who do ruby, do rails. there isn't the same sort of cross pollination going on between domains, and of course, rails is omakase.

on a more technical level, ruby encourages the sort of programming that i hate

- ruby has procs, blocks, lambdas, and method objects. give me first class functions or give me death.

- like java, ruby has two namespaces, so you can have a method 'x' and a variable 'x' without a collision. unlike java, the parenthesis are optional. this lovely ambiguity means that any identifier not assigned to is implicitly a method call, and you better hope that no-one's stuck a method into kernel.

- except it happens all the god drat time. either people directly add new methods to built in classes, or they define new top level functions, which in turn become private methods on Object.

- which would be ok if this could be contained, and there is some promise of refinements, but you load libraries by include files, and often files won't include their dependencies because they're loaded elsewhere. this again gives a flexibility in language extensions but at a price of maintainability

- and little python whiny poo poo like immutable strings that are gc'd, named and default arguments, destructured assignment, generators. then there are just little things like initialize, upcase, downcase, and the fact that the block in a foo.each {...} statement is more accurately an observer, not an iterator. iirc ruby calls what other people call iterators, enumerables. lots of things are just a little different.

ruby was influenced by a number of languages, notably perl. like another perl descendent, php, ruby has a laissez-faire attitude to syntax and error handling. "gently caress it and return nil" is the order of the day, although occasionally "just treat the arguments as a hint that might not make sense". i have wasted hours chasing down bugs caused by "fail eventually" error handling.

ruby also has the same attitude as php to libraries, often relying on include files for composition. unlike php, ruby suffers from the meta-programming of lisp, encouraging each and every user to change the language to their whim, but not through coarse means as macros, but through operator overloading and a lot of implicit syntax rules. this doesn't mean that composing a large system is impossible, just far harder, and far more fragile. one change in any library can break any other library with ease.

i don't like these tradeoffs. although ruby presents a short barrier between having an idea and mashing it in to a language, sometimes that barrier is good for larger scale concerns. i will say i do like the following things about ruby:

- numbers can have underscores in them
- 0/""/[] are true, not false.

Notorious b.s.d.
Jan 25, 2003

by Reene

tef posted:

- ruby has procs, blocks, lambdas, and method objects. give me first class functions or give me death.
rubyists will "defend" this distinction. no one has ever been able to explain to me why it's useful.

my theory: it's an interview question and memorizing the list of defects in each type makes folks feel smart.

tef posted:

ruby was influenced by a number of languages, notably perl. like another perl descendent, php, ruby has a laissez-faire attitude to syntax and error handling. "gently caress it and return nil" is the order of the day, although occasionally "just treat the arguments as a hint that might not make sense". i have wasted hours chasing down bugs caused by "fail eventually" error handling.

perl/ruby/python have "type systems" but they fail to do the most basic job of a type system: catch errors. re-usability is secondary at best. i want a type system to express program invariants. any loving code re-use is a happy side effect

when your community categorically gives no shits about catching errors in your type system it can hardly be a surprise that the other error-handling features are broken or unused

Bloody
Mar 3, 2013

tef posted:

- 0/""/[] are true, not false.

oh come on

Notorious b.s.d.
Jan 25, 2003

by Reene

Bloody posted:

oh come on

0, [], and "" are demonstrably not null references. i do not need more things that can be confused with nil, it is quite confusing enough already.

"falsiness" is the dumbest loving idea in computing after the null reference. nulls are a feature of dubious utility and giving me more ways to gently caress it up is worse.

tef
May 30, 2004

-> some l-system crap ->

Notorious b.s.d. posted:

the most basic job of a type system: catch errors.

it's safety. hth.

an ahead of time type checker is something that catches errors, using a type system.


quote:

any loving code re-use is a happy side effect

the point isn't about code re-use, it's about composability. this is more about open/closed systems than ahead-of-time/runtime type checks.

Notorious b.s.d.
Jan 25, 2003

by Reene

tef posted:

the point isn't about code re-use, it's about composability. this is more about open/closed systems than ahead-of-time/runtime type checks.

well you don't have to compose anything in ruby

just open the other guy's class, rename some of his methods, add your own replacements with new and exciting side effects on the other side of the application

DONT THREAD ON ME
Oct 1, 2002

by Nyc_Tattoo
Floss Finder
the thing i hate the most about ruby atm is that it strongly encourages you to just use a hash as your only argument, and people will call it the options hash, and then the entire method is built out of options that maybe arent actually optional anymore. but good luck looking at the method signature to figure that out because it's just foo(opt={}).

then that options hash gets merged and passed to another method which also specifies foo(opt={}) and so now maybe your options are also a requirement of that method. but you'll never know until it breaks 10 calls up that stack.


i guess that's more of an indiom because there's nothing stopping people from doing that in other dynamic languages except ruby encourages you to do it by letting you omit the braces entirely ughh

tef
May 30, 2004

-> some l-system crap ->

Bloody posted:

oh come on

an aside: there are a number of cases where a function takes None or another value as an argument, and some people will do 'if x' instead of 'if x is None'.

now in one recent instance, i had a function filter(ids=[...]) that took a collection of ids and returned instances matching those ids. if you passed in None, it would return all instances. if you passed it an empty list of ids, it would assume you meant every instance. this backfired.

yes i'm a bad programmer but it seems such a weird edge case that an empty list of elements would have the same effect of passing the list of every element.

the implicit cast to False is not sufficiently useful that it merits the accidents.

Notorious b.s.d.
Jan 25, 2003

by Reene
today my rails application exploded because a dude deleted a ten line method from application_helper.rb

after two hours i don't know what those ten lines are actually for

Notorious b.s.d.
Jan 25, 2003

by Reene

MALE SHOEGAZE posted:

the thing i hate the most about ruby atm is that it strongly encourages you to just use a hash as your only argument, and people will call it the options hash, and then the entire method is built out of options that maybe arent actually optional anymore. but good luck looking at the method signature to figure that out because it's just foo(opt={}).

then that options hash gets merged and passed to another method which also specifies foo(opt={}) and so now maybe your options are also a requirement of that method. but you'll never know until it breaks 10 calls up that stack.


i guess that's more of an indiom because there's nothing stopping people from doing that in other dynamic languages except ruby encourages you to do it by letting you omit the braces entirely ughh

the best part of this "feature" is that it is a well-known problem with perl. the makers of ruby observed a disaster hurting the perl community and said "yeah we want that in our language"

ruby was very much intended to be perl++ but they seem to have learned all the wrong lessons from perl

ShadowHawk
Jun 25, 2000

CERTIFIED PRE OWNED TESLA OWNER

Notorious b.s.d. posted:

rubyists will "defend" this distinction. no one has ever been able to explain to me why it's useful.

my theory: it's an interview question and memorizing the list of defects in each type makes folks feel smart.


perl/ruby/python have "type systems" but they fail to do the most basic job of a type system: catch errors. re-usability is secondary at best. i want a type system to express program invariants. any loving code re-use is a happy side effect

when your community categorically gives no shits about catching errors in your type system it can hardly be a surprise that the other error-handling features are broken or unused
Here's a library that enforces types on Python function annotations:

https://github.com/kislyuk/ensure

Python code:
from ensure import ensure_annotations

@ensure_annotations
def f(x: int, y: float) -> float:
    return x+y
code:
f(1, 2.3)

>>> 3.3

f(1, 2)

>>> ensure.EnsureError: Argument y to <function f at 0x109b7c710> does not match annotation type <class 'float'>

my homie dhall
Dec 9, 2010

honey, oh please, it's just a machine

Notorious b.s.d. posted:

today my rails application exploded because a dude deleted a ten line method from application_helper.rb

after two hours i don't know what those ten lines are actually for

well, put the lines back then!

MononcQc
May 29, 2007

Notorious b.s.d. posted:

the best part of this "feature" is that it is a well-known problem with perl. the makers of ruby observed a disaster hurting the perl community and said "yeah we want that in our language"

ruby was very much intended to be perl++ but they seem to have learned all the wrong lessons from perl

This is what scares me to hell with Erlang adding support for maps in its syntax and I wanted to be first to write a tutorial about it so I could control the message :tinfoil:

DONT THREAD ON ME
Oct 1, 2002

by Nyc_Tattoo
Floss Finder
i've spent the last 2 weeks working on a lot of lines of ruby code that deal with monetary transactions and most of it features a lot of really 'clever' metaprogramming also i found a bug in an aggregator method where if you pass in options in a different order it sums up the same thing differently (and proceeds to build a transaction from it)

brap
Aug 23, 2004

Grimey Drawer
how is that possible unless addition is suddenly not commutative

suffix
Jul 27, 2013

Wheeee!

Notorious b.s.d. posted:

rubyists will "defend" this distinction. no one has ever been able to explain to me why it's useful.

my theory: it's an interview question and memorizing the list of defects in each type makes folks feel smart.


perl/ruby/python have "type systems" but they fail to do the most basic job of a type system: catch errors. re-usability is secondary at best. i want a type system to express program invariants. any loving code re-use is a happy side effect

when your community categorically gives no shits about catching errors in your type system it can hardly be a surprise that the other error-handling features are broken or unused

the python community is seriously discussing adopting the mypy type annotation semantics, prompted by guido himself

it would be an optional typing system, where the types by default would do nothing at runtime, but would help static error checking tools like linters

python 3 already has type annotations, but atm they have no official semantics
still pycharm will recognize some simple ones like foo(x: int) -> str:, and you have some runtime check libraries like http://andreacensi.github.io/contracts/

DONT THREAD ON ME
Oct 1, 2002

by Nyc_Tattoo
Floss Finder
i was misremebering slightly. one of the options took an array and it would sum up database fields based upon items in the array. it used a broken loop to parse the array into the sql query and that's what was breaking it.

just a normal coding horror.

Notorious b.s.d.
Jan 25, 2003

by Reene

suffix posted:

the python community is seriously discussing adopting the mypy type annotation semantics, prompted by guido himself

it would be an optional typing system, where the types by default would do nothing at runtime, but would help static error checking tools like linters

python 3 already has type annotations, but atm they have no official semantics
still pycharm will recognize some simple ones like foo(x: int) -> str:, and you have some runtime check libraries like http://andreacensi.github.io/contracts/

nothing "optional" or "unofficial" will ever really help. if i wanted to fiddle around with annotations and force them on my coworkers, that implies enough freedom of choice that i'm not going to be touching ruby code in the first place.

to really fix the core problems with p-langs, the changes have to be essentially global. the stdlib and third parties have to support the type system carefully.

also: gently caress rubygems forever tia

syntaxrigger
Jul 7, 2011

Actually you owe me 6! But who's countin?

tef posted:


*i hate ruby wall o' text*


just curious

do you have a favorite language?

Adbot
ADBOT LOVES YOU

fart simpson
Jul 2, 2005

DEATH TO AMERICA
:xickos:

doesnt tef like prolog?

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