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
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

Jonny 290 posted:

Never trust anybody with a first name as a last name.

Adbot
ADBOT LOVES YOU

more like dICK
Feb 15, 2010

This is inevitable.
I wish Elixir had immutable bindings by default, and that the syntax for overriding that was more visible than '^' at the beginning of a name. Shaping up ok otherwise. I'm glad they're actually treating packaging as a real issue, instead of just shrugging and telling people to put github cruft in their Mixfiles.

coffeetable
Feb 5, 2006

TELL ME AGAIN HOW GREAT BRITAIN WOULD BE IF IT WAS RULED BY THE MERCILESS JACKBOOT OF PRINCE CHARLES

YES I DO TALK TO PLANTS ACTUALLY

2banks1swap.avi posted:

If documenting and following standards, planning things and 'architecting' design, and figuring out how to approach things based on what we already know isn't engineering, what would you call it?

i'd call it loving about in the sand pit. you have any idea how much time and effort goes into the design and engineering real, physical products before a single component is ordered?

e: the central problem actual engineers have with software engineers is the latter don't care a fraction as much about the quality of the work they turn out. it can always be fixed in production, right?

coffeetable fucked around with this message at 15:55 on Apr 23, 2014

MononcQc
May 29, 2007

more like dICK posted:

I wish Elixir had immutable bindings by default, and that the syntax for overriding that was more visible than '^' at the beginning of a name. Shaping up ok otherwise. I'm glad they're actually treating packaging as a real issue, instead of just shrugging and telling people to put github cruft in their Mixfiles.

Agreed for this. My other super huge gripe with Elixir is implicit parentheses for function calls, especially with function calls that take no arguments. I've complained about it here before (and to José Valim directly), so yeah, nothing new.

Bloody
Mar 3, 2013

Otto Skorzeny posted:

which 8051 vendor made this thing? the only current one i know of is silabs

ti/chipcon

more like dICK
Feb 15, 2010

This is inevitable.

MononcQc posted:

Agreed for this. My other super huge gripe with Elixir is implicit parentheses for function calls, especially with function calls that take no arguments. I've complained about it here before (and to José Valim directly), so yeah, nothing new.

Implicit parentheses for some function calls it what makes it bad. When combined with so many functions that take a keyword list as their last argument you reach a perl-like level of timtowtdi.

I still write all my code with parens (and often Erlang-style proplists), but I can tell that is going against the grain of most Elixir users :(

MononcQc
May 29, 2007

I just use Erlang :smuggo:

Bloody
Mar 3, 2013

2banks1swap.avi posted:

Regarding "Software "Engineering""

Common approaches to given types of problems exist. We all know about picking one data structure over another, or one algorithm over another; there are tradeoffs of speed versus memory, or what you do well versus what you don't do so well.

Architecturally there are tradeoffs between enterprise level OOP with multiple tiers and classes all over the place passing objects versus data centric stuff versus FP stuff vs fart out a script for this trivial poo poo. Depending on scale and risk and importance we also have different levels of testing and scrutiny and code review - Theracs are going to get a LOT of scrutiny, kernels are going to have to strictly follow guides and be tested as much as you can, VMs are more important than farty fart ding dong web server, etc.

While that's not "make a bridge" engineering, in that nobody is mixing and testing concrete, or pouring poo poo and tugging on cables and rebar, or hooking up harnesses to people so they don't fall and die, there's plenty of "we need good practices" engineering, and plenty of "let's pick one approach vs another based on the problem to solve" decision making, much like causeway vs cable stay vs suspension, and such. You can't really do FEA on your porn site's source code but you sure can load test servers, and so on.

If documenting and following standards, planning things and 'architecting' design, and figuring out how to approach things based on what we already know isn't engineering, what would you call it?

yes there is a need for better engineering practices no nobody currently follows them no there is no indication that thats changing any time soon

Tiny Bug Child
Sep 11, 2004

Avoid Symmetry, Allow Complexity, Introduce Terror

coffeetable posted:

e: the central problem actual engineers have with software engineers is the latter don't care a fraction as much about the quality of the work they turn out. it can always be fixed in production, right?

yeah but that doesn't change the fact that the actual process is engineering. we simply have the advantage that our finished product probably can't kill anyone, so of course we are not going to be as worried about it. it would make no business sense to worry about it to that degree.

Zombywuf
Mar 29, 2008

The problem with asking for TCO on software projects as if they were regular engineering projects is that actually writing the software looks a lot like the process engineers do to work out the TCO. But yeah, so long as the Valley is considered the height of software production we're pretty much hosed as an industry.

more like dICK
Feb 15, 2010

This is inevitable.
Come on Elixir are you serious with this poo poo

Ruby code:
iex(1)> puts = &(IO.puts/1)
&IO.puts/1
iex(2)> IO.puts "Hello!"
Hello!
:ok
iex(3)> puts. "Hello!"
** (ArgumentError) argument error
    :erlang.apply(&IO.puts/1, :Hello!, [])
iex(3)> puts "Hello!"
** (RuntimeError) undefined function: puts/1
iex(3)> puts ("Hello!")
** (RuntimeError) undefined function: puts/1
iex(3)> puts.("Hello!")
Hello!
:ok
iex(4)>

MononcQc posted:

I just use Erlang :smuggo:

This is the safe and right thing to do, but I'm still having fun messing around with Elixir.

Deacon of Delicious
Aug 20, 2007

I bet the twist ending is Dracula's dick-babies

Tiny Bug Child posted:

our finished product probably can't kill anyone

software lethality measured in milliTheracs

Cybernetic Vermin
Apr 18, 2005

i think all software i've ever professionally written probably made the world worse when it worked than it did when it failed, which is pretty relaxing v:shobon:v

Bloody
Mar 3, 2013

dont forget those patriot missile floating point error bit where the clocks drifted a shitload really quickly and then a bunch of israelis died or w/e

Shaggar
Apr 26, 2006

more like dICK posted:

Come on Elixir are you serious with this poo poo

Ruby code:
iex(1)> puts = &(IO.puts/1)
&IO.puts/1
iex(2)> IO.puts "Hello!"
Hello!
:ok
iex(3)> puts. "Hello!"
** (ArgumentError) argument error
    :erlang.apply(&IO.puts/1, :Hello!, [])
iex(3)> puts "Hello!"
** (RuntimeError) undefined function: puts/1
iex(3)> puts ("Hello!")
** (RuntimeError) undefined function: puts/1
iex(3)> puts.("Hello!")
Hello!
:ok
iex(4)>
This is the safe and right thing to do, but I'm still having fun messing around with Elixir.

this is just awful all around

more like dICK
Feb 15, 2010

This is inevitable.
If Ruby is an honorary p-lang, what does that make Elixir?

coffeetable
Feb 5, 2006

TELL ME AGAIN HOW GREAT BRITAIN WOULD BE IF IT WAS RULED BY THE MERCILESS JACKBOOT OF PRINCE CHARLES

YES I DO TALK TO PLANTS ACTUALLY

AlsoD posted:

lmao if you thought haskell's operators were bad agda lets you put underscores in the name then call that function with arguments wherever underscores were

i.e.
code:
data Tree (X : Set) : Set where
  leaf     : Tree X
  _<[_]>_  : Tree X -> X -> Tree X -> Tree X

insertTree : Nat -> Tree Nat -> Tree Nat
insertTree n leaf          = leaf <[ n ]> leaf
insertTree n (l <[ x ]> r) = ...

forgot to quote this yesterday. custom ternary operators :allears:

Shaggar
Apr 26, 2006

more like dICK posted:

If Ruby is an honorary p-lang, what does that make Elixir?

idk what elixir is but that syntax is garbage like 99% of "functional" languages

double sulk
Jul 2, 2010

Shaggar posted:

idk what elixir is but that syntax is garbage like 99% of "functional" languages

why is functional in quotes

Bloody
Mar 3, 2013

b/c they call themselves functional languages but are anything but

MononcQc
May 29, 2007

more like dICK posted:

Come on Elixir are you serious with this poo poo

Elixir has a different calling syntax whether the function is a literal function or a variable referring to a literal function. A literal function can be called as 'f(args)' or 'f args'. A function in a variable can only be called as 'f.(args)' and nothing else.

When a variable and a function name are the same in a given scope, the default is consistent, and I think (but always forget the actual rule) variables take precedence over functions, so that you can both use 'f()', refer to the variable 'f', and call the function in 'f' as 'f.()'.

I don't like it much.

Shaggar
Apr 26, 2006
like this
code:
puts = &(IO.puts/1)

is so loving awful I cant even believe it

first lets ignore that puts is the dumbest possible shorthand for Console.WriteLine that only the dumbest motherfucker could have possibly come up with.

&(IO.puts/1) I assume means assign whatevers in the parenthesis as a function to the lhs. &(expr) is retard syntax. Use brackets you stupid fuckers

code:
puts = {IO.puts/1}
hey this is already better

IO.puts - Ok aside from the terrible terminology, this isn't that bad. I assume IO is a package and puts is Console.Writeline. Not the worst ever, but lets write this using terms that make sense to non-retards

code:
puts = { Console.WriteLine/1 }
or better yet
code:
cout = { Console.WriteLine/1 }
now we have something approaching sanity. The next bit of cleanup is to fix the /1 which im assuming is an input variable, but cant really tell cause of the awful syntax. / makes no sense as a delimeter so lets use parenthesis in the manner in which they were intended and use a real variable instead of a number
code:
cout = { Console.WriteLine(x) }
ok so now this makes sense. we're assigning an anonymous function that's gonna write out whatever value is in x to the console. but its still not perfect, because where is the x coming from? its not a parameter anywhere! the compiler might get confused so lets fix it by adding a parameter.

code:
cout = x=> { Console.WriteLine(x)}
and this doesn't really need the brackets cause its a single line so we can just write this as
code:
cout = x=> Console.WriteLine(x)
Great! this is way way better. now we could leave it here and let the runtime try to convert the input to a string on its own, or we can add a type to help anyone who might want to use our function
code:
Action<String> cout = x=> Console.WriteLine(x);
a type safe anonymous function. perfect

more like dICK
Feb 15, 2010

This is inevitable.
Yeah I know the reason they're treated differently, just pointing out how silly it is. It's remarkable that Elixir has managed to make anonymous functions more obtuse than C++. It's especially annoying because it's such a clear regression in usability compared to Erlang.

edit: this was a response to MononcQc, not Shaggar.

Tiny Bug Child
Sep 11, 2004

Avoid Symmetry, Allow Complexity, Introduce Terror

double sulk posted:

why is functional in quotes

"functional programming" is both impossible and useless

Arcsech
Aug 5, 2008

Tiny Bug Child posted:

"functional programming" is both impossible and useless

well if ur only experience with programming is with php i can see how youd think a program could never be functional

double sulk
Jul 2, 2010

Arcsech posted:

well if ur only experience with programming is with php i can see how youd think a program could never be functional

Nomnom Cookie
Aug 30, 2009



Shaggar posted:

like this
code:
puts = &(IO.puts/1)

is so loving awful I cant even believe it

first lets ignore that puts is the dumbest possible shorthand for Console.WriteLine that only the dumbest motherfucker could have possibly come up with.

&(IO.puts/1) I assume means assign whatevers in the parenthesis as a function to the lhs. &(expr) is retard syntax. Use brackets you stupid fuckers

code:
puts = {IO.puts/1}
hey this is already better

IO.puts - Ok aside from the terrible terminology, this isn't that bad. I assume IO is a package and puts is Console.Writeline. Not the worst ever, but lets write this using terms that make sense to non-retards

code:
puts = { Console.WriteLine/1 }
or better yet
code:
cout = { Console.WriteLine/1 }
now we have something approaching sanity. The next bit of cleanup is to fix the /1 which im assuming is an input variable, but cant really tell cause of the awful syntax. / makes no sense as a delimeter so lets use parenthesis in the manner in which they were intended and use a real variable instead of a number
code:
cout = { Console.WriteLine(x) }
ok so now this makes sense. we're assigning an anonymous function that's gonna write out whatever value is in x to the console. but its still not perfect, because where is the x coming from? its not a parameter anywhere! the compiler might get confused so lets fix it by adding a parameter.

code:
cout = x=> { Console.WriteLine(x)}
and this doesn't really need the brackets cause its a single line so we can just write this as
code:
cout = x=> Console.WriteLine(x)
Great! this is way way better. now we could leave it here and let the runtime try to convert the input to a string on its own, or we can add a type to help anyone who might want to use our function
code:
Action<String> cout = x=> Console.WriteLine(x);
a type safe anonymous function. perfect

:golfclap:

Fuck them
Jan 21, 2011

and their bullshit
:yotj:

Tiny Bug Child posted:

yeah but that doesn't change the fact that the actual process is engineering. we simply have the advantage that our finished product probably can't kill anyone, so of course we are not going to be as worried about it. it would make no business sense to worry about it to that degree.

That's the thing. Business gives no poo poo and I don't see devs having strikes or walkouts over it. I certainly don't like shipping scrubcode.

Now if devs had a professional organization that was called something not union and there was a real push for professionalism pigs would fly but it would rule.

Anyway the problem as always is with management.

Zombywuf
Mar 29, 2008

There are professional organisations for developers but they almost all immediately devolve into crapfest money vacuums.

Shaggar
Apr 26, 2006

2banks1swap.avi posted:

That's the thing. Business gives no poo poo and I don't see devs having strikes or walkouts over it. I certainly don't like shipping scrubcode.

Now if devs had a professional organization that was called something not union and there was a real push for professionalism pigs would fly but it would rule.

Anyway the problem as always is with management.

most devs aren't willing to get into the organized crime required to make those orgs work

PleasureKevin
Jan 2, 2011

shaggar on the other hand

coffeetable
Feb 5, 2006

TELL ME AGAIN HOW GREAT BRITAIN WOULD BE IF IT WAS RULED BY THE MERCILESS JACKBOOT OF PRINCE CHARLES

YES I DO TALK TO PLANTS ACTUALLY

2banks1swap.avi posted:

Anyway the problem as always is with management.

the problem is that it's not SOP to sue companies for their bugs

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
and it's hard to sue openssl for all the credit cards and poo poo that got stolen due to heartbleed

Shaggar
Apr 26, 2006
openssl wasn't built by professionals

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
*whoosh*

coffeetable
Feb 5, 2006

TELL ME AGAIN HOW GREAT BRITAIN WOULD BE IF IT WAS RULED BY THE MERCILESS JACKBOOT OF PRINCE CHARLES

YES I DO TALK TO PLANTS ACTUALLY

Otto Skorzeny posted:

and it's hard to sue openssl for all the credit cards and poo poo that got stolen due to heartbleed

could sue the companies that used unvetted software though

Fuck them
Jan 21, 2011

and their bullshit
:yotj:
So basically SE isn't real E because it's not taken seriously because it doesn't HAVE to be taken seriously even though it really should be but management doesn't care because they don't have to.

Also unions and professional orgs are organized time.

Shaggar Hoffa.

Zombywuf
Mar 29, 2008

Maybe we could get financial engineers to follow proper engineering practice, that would be fun.

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
or we could hang them

Adbot
ADBOT LOVES YOU

Fuck them
Jan 21, 2011

and their bullshit
:yotj:

coffeetable posted:

the problem is that it's not SOP to sue companies for their bugs

Except for poo poo like "bank leaks info/hipaa violated/therac happen" suing really doesn't apply. I'm not gonna sue King if papa pear decides to leave a big turd on my phone and corrupt files unless it literally bricks it or something or candy crush lost my lollipop hammers.

I think the problem is once you buy software, you've bought it, and the lock in effect is not something you can just ignore. You can't return your software for a refund if it's buggy, you can't easily switch up a lot of things since everything is so interdependent, etc, so it's hard to sting anyone in the wallet.

The reason I think a professional org of devs is a good idea is because I'd like to think devs would get sick of lovely code and lovely coders and try to organize to improve training, mentoring, and practices. Or I dunno we could piggyback on the IEEE.


Otto Skorzeny posted:

or we could hang them

:q:

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