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
Internet Janitor
May 17, 2008

"That isn't the appropriate trash receptacle."

Pavlov posted:

I'm sure somewhere someone uses it, but I think it's been mostly dead for decades now.

It seems to be dead in the hobbyist/open source space, but commercial APL derivatives still apparently make a ton of money for niche applications- see Dyalog Ltd. and Kx Systems. J was open-sourced some time ago. I've been tinkering with my own K implementation for a few months and it's quite a bit of fun.

Adbot
ADBOT LOVES YOU

Pollyanna
Mar 5, 2005

Milk's on them.


I think we found the one language that is more math-y than Haskell.

Symbolic Butt
Mar 22, 2009

(_!_)
Buglord

Jewel posted:

I still refer to this video because it's interestingly separated from how programming is today.

https://www.youtube.com/watch?v=a9xAKttWgP4&hd=1

holy poo poo this is the best thing

Internet Janitor
May 17, 2008

"That isn't the appropriate trash receptacle."

Pollyanna posted:

I think we found the one language that is more math-y than Haskell.

It's "math-y" in a very different way. Haskell concerns itself with providing many tools to constrain programs and make their behavior more explicit to the compiler so that it can validate a programmer's ideas and maintain internal consistency. It is a language primarily concerned with achieving roubustness via types and it is quite large and complex. The Haskell community is steeped in terminology borrowed from abstract mathematics.

APL provides a uniform, concise notation for expressing computation on a small set of datatypes. APL strives to create programs which are obviously correct (or at least very easy to test) by removing all the irrelevant details and operating on data in a uniform fashion. Learning to express things in an "APL style" can be challenging for some domains, and the language seems to mainly fall down in interfacing with the chaotic, irregular outside world.

In Java, you might write
Java code:
long sum = 0;
for(int x = 0; x < 1000; x++) {
    sum += x;
}
In Haskell, you might write
code:
foldl (+) 0 [0..999]
In K you'd write:
code:
+/!1000

Internet Janitor fucked around with this message at 15:38 on Jul 30, 2015

Mr Shiny Pants
Nov 12, 2012
Some newer tools could learn a thing or two about the REPL he uses in the video.

I can't make heads or tails from it, but interactivity is awesome.

toiletbrush
May 17, 2010
Yeah, reminds me of Swift's 'playgrounds'.

qntm
Jun 17, 2009

AuxPriest posted:

We were talking about ternaries earlier, no?

code:
return new Entry(
    txtID.getText().isEmpty()        ? null : Integer.parseInt(txtID.getText()),
    txtHomePhone.getText().isEmpty() ? ""   : Util.stripPhone(txtHomePhone.getText()),
    txtCellPhone.getText().isEmpty() ? ""   : Util.stripPhone(txtCellPhone.getText()),
    txtAltPhone.getText().isEmpty()  ? ""   : Util.stripPhone(txtAltPhone.getText()),
    txtName.getText().isEmpty()      ? ""   : txtName.getText(),
    txtEmail.getText().isEmpty()     ? ""   : txtEmail.getText(),
    txtAddress.getText().isEmpty()   ? ""   : txtAddress.getText(),
    txtCity.getText().isEmpty()      ? ""   : txtCity.getText(),
    dcLastCall.getDate() == null     ? null : new java.sql.Date(dcLastCall.getDate().getTime()),
    dcPickupDate.getDate() == null   ? null : new java.sql.Date(dcPickupDate.getDate().getTime()),
    txtDriver.getText().isEmpty()    ? ""   : txtDriver.getText(),
    txtNotes.getText().isEmpty()     ? ""   : txtNotes.getText()
);

I've seen worse :shrug:

Athas
Aug 6, 2007

fuck that joker

Jsor posted:

Don't some people use APL for parallel stuff?

Not as much as you'd think, despite the fact that most APL is heavily matrix-oriented and therefore data-parallel. The problem is that while APL programs have a lot of parallelism, they are also horribly dynamic, which makes it hard to do much parallelisation. In fact, most APL implementations don't even have compilers, but use interpreters with heavily optimised primitives (not unlike Matlab, to be honest). I have a colleague who is writing papers on compiling APL to parallel code, but they restrict themselves to a subset that can be typed in some reasonable way (and that still requires a seriously funky type system to deal with things like array rank polymorphism).

Corla Plankun
May 8, 2007

improve the lives of everyone
I've never worked with APL or AMPL but one of my co-conspirators used AMPL for some mixed integer optimization bullcrap we were doing. Does anyone else use AMPL for anything or is that just a weird systems engineering niche?

FlapYoJacks
Feb 12, 2009

qntm posted:

I've seen worse :shrug:

Yeah, that's completely readable. Not sure what the problem is either?

Malcolm XML
Aug 8, 2009

I always knew it would end like this.

Factor Mystic posted:

Bugs are gonna happen. I'm going to assume that they do have test and this slipped through some how. The real horror is that the bug was fixed a few days ago with a lot of explanation and then quietly reverted with no message.

welp firing all the SDETs was a great idea

loinburger
Jul 10, 2004
Sweet Sauce Jones
Unless String#isEmpty() means something other than what I think it means, then I don't see the point of stuff like txtNotes.getText().isEmpty() ? "" : txtNotes.getText()

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

Malcolm XML posted:

welp firing all the SDETs was a great idea

Lol when did MS fire all their SDETs and how in the world did they rationalize that

Sedro
Dec 31, 2008

loinburger posted:

Unless String#isEmpty() means something other than what I think it means, then I don't see the point of stuff like txtNotes.getText().isEmpty() ? "" : txtNotes.getText()
It means what you think it means. It is useless code along the lines of if (cond) true else false.

I suppose getText could have a side effect ...

SupSuper
Apr 8, 2009

At the Heart of the city is an Alien horror, so vile and so powerful that not even death can claim it.

Blotto Skorzany posted:

Lol when did MS fire all their SDETs and how in the world did they rationalize that
~~agile~~

Linear Zoetrope
Nov 28, 2011

A hero must cook

Man, I've heard that Agile actually can work pretty well in practice, but every time I read about it I feel like I'm being asked to join a cult.

ErIog
Jul 11, 2001

:nsacloud:
Has anyone advocated for agile novel writing by asking the question, "Why doesn't an author just write their final draft first?!?" That's what some of these arguments sound like to me. "We only spend 4 months writing NEW code out of a 2 year dev cycle! Look at all this time we're wasting coordinating with each other, testing the product, and fixing the product!"

It sounds a lot like devs finding due diligence boring, and opting instead to write reams of text about how being less diligent is totally okay they swear.

Linear Zoetrope
Nov 28, 2011

A hero must cook

Mr Shiny Pants posted:

Some newer tools could learn a thing or two about the REPL he uses in the video.

I can't make heads or tails from it, but interactivity is awesome.

I haven't used Julia's REPL, but Juno is really, really nice. It will inline intermediate computation results so you can click on a box and see a graph right next to the code that produces it.

It has some serious issues right now (no way to pass command line flags to a program; have to use absolute file paths in the code because of weird Atom nonsense), but it has some great features nonetheless.

big trivia FAIL
May 9, 2003

"Jorge wants to be hardcore,
but his mom won't let him"

A horror because this request response made it to production last month and a client just noticed it. It takes some doing to get this actual response, but now there will be a fire. (I didn't do it)

<SUCCESS="FALSE" REASON="You suck" />

Mellow_
Sep 13, 2010

:frog:

Hammerite posted:

is it laid out like this in the original? It's full of silliness, but it wouldn't look so bad if it were laid out in a sane manner.

Was just a straight copy and paste.

Zopotantor
Feb 24, 2013

...und ist er drin dann lassen wir ihn niemals wieder raus...
APL, eh?

quote:

Rho, rho, rho of X
Always equals one;
Rho is dimension, rho rho rank,
APL is fun!

Lumpy
Apr 26, 2002

La! La! La! Laaaa!



College Slice

ErIog posted:

Has anyone advocated for agile novel writing by asking the question, "Why doesn't an author just write their final draft first?!?" That's what some of these arguments sound like to me. "We only spend 4 months writing NEW code out of a 2 year dev cycle! Look at all this time we're wasting coordinating with each other, testing the product, and fixing the product!"

It sounds a lot like devs finding due diligence boring, and opting instead to write reams of text about how being less diligent is totally okay they swear.

I think part of the big problem with Agile is that when it's implemented, everyone hand-waves the fact that you are supposed to be diligent and test and fix.

"This sprint lasts two weeks, so give the devs two weeks worth of coding to do!"

"Well, when will we test, since they won't be done until the last day, and when will they fix what we find?"

"Next sprint! Oh, give them two weeks of dev work to do for that one too! We have a schedule to keep!"

Hammerite
Mar 9, 2007

And you don't remember what I said here, either, but it was pompous and stupid.
Jade Ear Joe

-S- posted:

A horror because this request response made it to production last month and a client just noticed it. It takes some doing to get this actual response, but now there will be a fire. (I didn't do it)

<SUCCESS="FALSE" REASON="You suck" />

It's always good to remind yourself that you shouldn't put swearing, insults, or hilarious in-jokes anywhere in a project at work.

Janitor Prime
Jan 22, 2004

PC LOAD LETTER

What da fuck does that mean

Fun Shoe

Lumpy posted:

I think part of the big problem with Agile is that when it's implemented, everyone hand-waves the fact that you are supposed to be diligent and test and fix.

"This sprint lasts two weeks, so give the devs two weeks worth of coding to do!"

"Well, when will we test, since they won't be done until the last day, and when will they fix what we find?"

"Next sprint! Oh, give them two weeks of dev work to do for that one too! We have a schedule to keep!"

lol at not having stories points include testing

loinburger
Jul 10, 2004
Sweet Sauce Jones
My last job had one week sprints, with zero hours allocated to testing. To fix this we changed to having two week sprints, with zero hours allocated to testing.

Plorkyeran
Mar 22, 2007

To Escape The Shackles Of The Old Forums, We Must Reject The Tribal Negativity He Endorsed
The real problem is viewing testing as a distinct task from writing code to begin with.

Plorkyeran
Mar 22, 2007

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

-S- posted:

A horror because this request response made it to production last month and a client just noticed it. It takes some doing to get this actual response, but now there will be a fire. (I didn't do it)

<SUCCESS="FALSE" REASON="You suck" />
The horror here is the weird not-quite-xml syntax, right?

Soricidus
Oct 21, 2010
freedom-hating statist shill

Plorkyeran posted:

The real problem is writing code to begin with.

big trivia FAIL
May 9, 2003

"Jorge wants to be hardcore,
but his mom won't let him"

Plorkyeran posted:

The horror here is the weird not-quite-xml syntax, right?

That's there, too

Munkeymon
Aug 14, 2003

Motherfucker's got an
armor-piercing crowbar! Rigoddamndicu𝜆ous.



Hammerite posted:

no it's Pretty Horrible PHP

Tail call optimization doesn't sound very PHP to me :colbert:

BigRedDot
Mar 6, 2008

Blotto Skorzany posted:

Lol spot the howler of a bug on line 8

You'll have to be more specific, are you applying the index origin operator?

One of the founders where I work is the author of NumPy, discussions mentioning APL actually pop up somewhat often (relatively speaking) since there are conceptual (but mostly not syntactical) similarities.

fritz
Jul 26, 2003

Sometimes read the comments https://www.facebook.com/notes/kent-beck/when-tdd-doesnt-matter/797644973601702

quote:

Gregory August
I wonder how often you write code, and not just talk code? My non-profit organization hired contractors about seven years ago to write an application for them. Seven years later they are 12 million dollars deep and still no working application. The contractors preach and follow you and Uncle Bob. Throughout the day they break up into groups to have "design" discussions. The TDD fanaticism that has been applied to this application, rendered the code useless two years ago. Five years of code went down the drain and they still didn't see the problem. The only reason these people stay employed is because they are able to talk big talk, draw fancy pictures and throw architectural terms around. If they could just write the loving code down. They would deliver the application which was expected to be completed in 2-3 years. But NOPE gotta suck my poor non-profit organization of every last penny and dime they have. Thank you for propagating lies.

ultramiraculous
Nov 12, 2003

"No..."
Grimey Drawer
Yeah you let contractors give you the run-around for seven years, and that's Kent's fault.

Contractors gonna contract.

loinburger
Jul 10, 2004
Sweet Sauce Jones
"gently caress, look at all of this bad money. I know, let's bury it in good money."

AWWNAW
Dec 30, 2008

Janitor Prime posted:

lol at not having stories points include testing

LOL @ thinking having testing stories fixes Agile, or that having them even means developers will carry them out.

New Yorp New Yorp
Jul 18, 2003

Only in Kenya.
Pillbug

AWWNAW posted:

LOL @ thinking having testing stories fixes Agile, or that having them even means developers will carry them out.

You don't have testing stories, you have testing be part of the overall story, which is included in the estimates.

Of course, if the developers are lovely and don't test their software, no process on earth can fix the problem. It's something I bump into frequently: "My team is lovely and they don't do <X>, how do we force them to do <X>?"
"Warn them if they don't do it. Fire them if a warning doesn't fix the problem."

baquerd
Jul 2, 2007

by FactsAreUseless

I get his point. All too frequently it's the TDD fanatics that can't actually turn out code in a timely manner and don't get the whole "delivering working (as opposed to beautiful) software is at the heart of Agile". Testing is very important, but TDD is just a tool, and one that is often misused.

No, the main REST front-end to the app that doesn't have any business logic in it does not in fact need unit tests. I am also not impressed by the "artful" mocking of 5 separate classes that don't access external resources in order to have more "pure" unit tests.

IT BEGINS
Jan 15, 2009

I don't know how to make analogies

baquerd posted:

All too frequently it's the TDD [insert popular technology/methodology here] fanatics that can't actually turn out code in a timely manner.

It happens with Scrum, with Agile, with OO, with TDD, with BDD. People can take anything too far. I wouldn't say TDD is more prone to it in particular, other than it being the latest 'big thing'.

The MUMPSorceress
Jan 6, 2012


^SHTPSTS

Gary’s Answer
Some of the teams at my company do Agile or scrums or whatever, and it all seems so loving dumb to me. What's so hard about going to work, and doing the poo poo you need to do at a pace that enables you to meet your deadline? Why do we need special names and paradigms for everything? Just do as much work as you can at a reasonable pace every day. Don't stop until the work is done. The end. I have never organized myself further than "Monday I am doing a code review, Tuesday I'm going to focus on getting a rough version of Module Y knocked out... etc", and I am easily 3x more productive than any of the Agile devotees I've met at work, and I turn out a lot fewer bugs than them too. Half the Agile disciple teams aren't even allowed to do big enhancements right now because they have too many bugs to fix.

Adbot
ADBOT LOVES YOU

brap
Aug 23, 2004

Grimey Drawer
At work we write unit tests for methods whose job is to call another method by mocking and making sure that the one method called the other method.

I feel a bit skeptical. My instinct is that stuff like that is implementation details and that behavior in terms of outputs and return values is what should actually be tested.

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