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."
let's just get rid of the parens entirely, and make it more clear when we're dereferencing a variable:

y @ 1 + 12 * x !

Adbot
ADBOT LOVES YOU

aardvaard
Mar 4, 2013

you belong in the bog of eternal stench

god it's almost like programming languages are all about abstractions and special syntaxes

carry on then
Jul 10, 2010

by VideoGames

(and can't post for 10 years!)

yeah but if i can't do (define + -) in your environment when you get up to use the bathroom it's garbage

Fiedler
Jun 29, 2002

I, for one, welcome our new mouse overlords.

rjmccall posted:

you would literally never notice it because it just works

We're in agreement, then. Developers not noticing their mistakes is precisely why this is a bad language design.

Malcolm XML
Aug 8, 2009

I always knew it would end like this.

CommunistPancake posted:

god it's almost like programming languages are all about abstractions and special syntaxes

(no (they (are (not))))

Asymmetrikon
Oct 30, 2009

I believe you're a big dork!

CommunistPancake posted:

god it's almost like programming languages are all about abstractions and special syntaxes

languages should just be hosting environments for dsls. they could be represented by ASTs. you could represent them with nested lists. like some kind of list processing language.

rjmccall
Sep 7, 2007

no worries friend
Fun Shoe
alright, i’m done with this thread again

Plorkyeran
Mar 22, 2007

To Escape The Shackles Of The Old Forums, We Must Reject The Tribal Negativity He Endorsed
warnings-as-errors is dumb and i would hate to work with people who give so little of a gently caress about their code that they don't fix warnings just because it doesn't stop it from compiling

Gazpacho
Jun 18, 2004

by Fluffdaddy
Slippery Tilde

Wheany posted:

no, it's "if maven can't do the thing you want, what you're trying to do is stupid and/or wrong."
“build something that isn’t a java library”
“build the same source in multiple variations”
“add stages to the build order besides those hardcoded by the Apache foundation”

Gazpacho
Jun 18, 2004

by Fluffdaddy
Slippery Tilde
“The Apache foundation doesn’t think you should do that” doesn’t work as an excuse to the boss btw, try it some time

Notorious b.s.d.
Jan 25, 2003

by Reene

Gazpacho posted:

“The Apache foundation doesn’t think you should do that” doesn’t work as an excuse to the boss btw, try it some time

your boss doesn't care about nerd poo poo anyway, he just wants his stuff to work

the fact that maven doesn't have that build stage should be a subtle hint to you that you are doing it wrong

Gazpacho
Jun 18, 2004

by Fluffdaddy
Slippery Tilde
The idea of tricking a build system into what you need with onfiguration rather than telling it directly in code form is defective, hth

Fiedler
Jun 29, 2002

I, for one, welcome our new mouse overlords.

Gazpacho posted:

“build something that isn’t a java library”
“build the same source in multiple variations”
“add stages to the build order besides those hardcoded by the Apache foundation”

Sounds like a job for msbuild.

Notorious b.s.d.
Jan 25, 2003

by Reene

Gazpacho posted:

The idea of tricking a build system into what you need with onfiguration rather than telling it directly in code form is defective, hth

you have this completely backwards

the beauty of maven is that it is not code. you define the project, and then various plugins can all parse the project the same way.

every build system ends up re-inventing the project model sooner or later. sbt has huge bags of strings. makefiles use horrifying sets of global env variables. gradle literally compiles the project to an object which you may or may not be able to talk to with a standard api, so that you can have unreadable stack traces

all of these approaches end up being worse than maven

Arcsech
Aug 5, 2008

Gazpacho posted:

The idea of tricking a build system into what you need with onfiguration rather than telling it directly in code form is defective, hth

the idea that you need to write code for what is 100% boilerplate in 99.9+% of cases is defective, hth

Gazpacho
Jun 18, 2004

by Fluffdaddy
Slippery Tilde
specific example: within my company's product there are proprietary JSON tables, and most releases add rows to these tables by mutating some prior row. this was traditionally done by copying and pasting the row you wanted to mutate and then hand-editing it. since the rows are large but the differences between rows are small, this was very inefficient and it also obscured the history of each row's development. there was one guy who had been there the longest and photographically knew the history but the rest of us were mystified whenever he talked about it

and what i did was create scripts that regenerate the entire table from scratch, expressing the mutations directly a semi-declarative form. and then at the end it's all written back to json so that the next build stage can consume it. hooray, now everyone can trace the history of each row.

alas, all builds in the company must run with maven. and maven is, despite delusions to the contrary, a build system for java libraries. this project containing the tables is the only one of its kind in the company, so the sensible place to describe the build process is in the project, not in some separate plugin project

so, as so often happens, i end up hacking the build steps into maven via some plugin (i don't remember if its antrun or gmaven) that lets me write code. and stupidly binding the build actions to stages that were defined for java libraries, even though i'm not building a java library (but the project does, historically, produce a jar, which gets unnecessarily deployed and pulled into downstream projects and recently caused some veracode warnings in them)

Gazpacho fucked around with this message at 20:01 on Apr 7, 2018

carry on then
Jul 10, 2010

by VideoGames

(and can't post for 10 years!)

Gazpacho posted:

specific example: within my company's product there are proprietary JSON tables, and most releases add rows to these tables by mutating some prior row. this was traditionally done by copying and pasting the row you wanted to mutate and then hand-editing it. since the rows are large but the differences between rows are small, this was very inefficient and it also obscured the history of each row's development. there was one guy who had been there the longest and photographically knew the history but the rest of us were mystified whenever he talked about it

and what i did was create scripts that regenerate the entire table from scratch, expressing the mutations directly in code. and then at the end it's all written back to json so that the next build stage can consume it. hooray, now everyone can trace the history of each row.

alas, all builds in the company must run with maven. and maven is, despite delusions to the contrary, a build system for java libraries. this project containing the tables is the only one of its kind in the company, so the sensible place to describe the build process is in the project, not in some separate plugin project

so, as so often happens, i end up hacking the build steps into maven via some plugin (i don't remember if its antrun or gmaven) that lets me write code. and stupidly binding the build actions to stages that were defined for java libraries, even though i'm not building a java library (but the project does, historically, produce a jar, which gets unnecessarily deployed and pulled into downstream projects and recently caused some veracode warnings in them)

disband the company

Fiedler
Jun 29, 2002

I, for one, welcome our new mouse overlords.
Yes this most definitely sounds like a job for msbuild.

Gazpacho
Jun 18, 2004

by Fluffdaddy
Slippery Tilde

carry on then posted:

disband the company
upper management is sorta working on it

Bloody
Mar 3, 2013

hi i used rust at work this week and had a very satisfying experience

VikingofRock
Aug 24, 2008




Bloody posted:

hi i used rust at work this week and had a very satisfying experience

NICE!

Gazpacho
Jun 18, 2004

by Fluffdaddy
Slippery Tilde

Notorious b.s.d. posted:

every build system ends up re-inventing the project model sooner or later. sbt has huge bags of strings. makefiles use horrifying sets of global env variables. gradle literally compiles the project to an object which you may or may not be able to talk to with a standard api, so that you can have unreadable stack traces
Maven observes that projects build similarly and concludes that there is some finite set of variations that will work for literally everyone, and then faults those whose requirements are unavoidably different for “not understanding.” It’s a cultish attitude, and a violation of the end to end principle that you should have high level abstractions available, but also be able to bypass them when circumstances dictate. This is what Gradle’s DSL provides

Not sure what you mean by “talking to” a build that isn’t covered by command line options or inclusion

Notorious b.s.d.
Jan 25, 2003

by Reene

Gazpacho posted:

Not sure what you mean by “talking to” a build that isn’t covered by command line options or inclusion

I need a unified project model for plugins to operate on.

gradle has re-invented that particular wheel by accident, but it is pretty non-useful because you end up compiling code before you get the model, and it's not obvious what code produces what data

Notorious b.s.d.
Jan 25, 2003

by Reene

Gazpacho posted:

alas, all builds in the company must run with maven. and maven is, despite delusions to the contrary, a build system for java libraries. this project containing the tables is the only one of its kind in the company, so the sensible place to describe the build process is in the project, not in some separate plugin project

you should have just stopped here. this is a layer violation that completely fucks maven. there's no such thing as project-specific code in maven. that's just not how it works. at all. it is specifically designed to avoid and prohibit that

when you need a new behavior from maven, you write a plugin. period. that is how it is done

there is exactly one way to do it, and you deliberately chose to avoid the happy path

i have written two maven plugins in my life and worked on several others. it's very easy to do and it's something that nearly all maven users confront at one time or another

Notorious b.s.d.
Jan 25, 2003

by Reene
"traditional wood framing is dumb and bad because it really hurts when you pound the nails through your dick, so i used duct tape instead"

Fiedler
Jun 29, 2002

I, for one, welcome our new mouse overlords.

Notorious b.s.d. posted:

there's no such thing as project-specific code in maven.
Note that project-specific code is totally supported by msbuild.

Gazpacho
Jun 18, 2004

by Fluffdaddy
Slippery Tilde

Notorious b.s.d. posted:

when you need a new behavior from maven, you write a plugin. period. that is how it is done
And That's Terrible

Gazpacho
Jun 18, 2004

by Fluffdaddy
Slippery Tilde
btw creating a plugin would not have saved me from lifecycle stage BDSM

Ellie Crabcakes
Feb 1, 2008

Stop emailing my boyfriend Gay Crungus

Notorious b.s.d. posted:

"traditional wood framing is dumb and bad because it really hurts when you pound the nails through your dick, so i used duct tape instead"

Maven is good and if you think otherwise you are probably either too old or not old enough.

Notorious b.s.d.
Jan 25, 2003

by Reene

Gazpacho posted:

And That's Terrible

somehow it is worse to generalize your dumbass changes than to write them over and over again for every project?

Notorious b.s.d.
Jan 25, 2003

by Reene

Fiedler posted:

Note that project-specific code is totally supported by msbuild.

if you are designing a build system, and you are uncertain about a design choice, take whatever msbuild does, and do the opposite

Gazpacho
Jun 18, 2004

by Fluffdaddy
Slippery Tilde

Notorious b.s.d. posted:

somehow it is worse to generalize your dumbass changes than to write them over and over again for every project?
what was i proposing to write over and over? plugins are fine for build processes that are, in fact, reusable. not all build processes are and maven, in assuming that they should be, throws a huge impedance in the way of Getting poo poo Done. Gradle does it more sensibly by expressing its abstractions in a form that is declarative when it can be, but procedural when it needs to be

eschaton
Mar 7, 2007

Don't you just hate when you wind up in a store with people who are in a socioeconomic class that is pretty obviously about two levels lower than your own?

Notorious b.s.d. posted:

more and more i am convinced infix operators are just not a good thing to generalize

be the Lisp you want to see in the world

eschaton
Mar 7, 2007

Don't you just hate when you wind up in a store with people who are in a socioeconomic class that is pretty obviously about two levels lower than your own?

Asymmetrikon posted:

just get rid of operators totally and use methods like
code:
let x = y.plus(1).times(12)
so they're handled like every other thing in the language instead of special casing math

Smalltalk does exactly this except some symbols are allowed to be one-argument messages without ending in a colon

like the above could legally be

code:
x := y plus: 1 times: 12.
and it results in sending the #plus: message to y with an argument of 1, then sending the #times: to the result with an argument of 12, then assigning the result of that to x which must be a declared local, instance, or class variable

Smalltalk implementations will let you write + and * for familiarity, not because there’s any semantic difference

and of course with Lisp everything is prefix, period, as long as you ignore the LOOP macro which is an entire language in itself

eschaton
Mar 7, 2007

Don't you just hate when you wind up in a store with people who are in a socioeconomic class that is pretty obviously about two levels lower than your own?

Fiedler posted:

Having to type the close parens is too much effort, please make it optional.

you can just press the ] key and have your editor close them all for you

TimWinter
Mar 30, 2015

https://timsthebomb.com

eschaton posted:

you can just press the alt+f4 keys and have your editor close them all for you

Gazpacho
Jun 18, 2004

by Fluffdaddy
Slippery Tilde
btw nbsd i made an avatar for you in case you want to contribute to lowtax's neck repair fund

Notorious b.s.d.
Jan 25, 2003

by Reene

Gazpacho posted:

btw nbsd i made an avatar for you in case you want to contribute to lowtax's neck repair fund



idgi

1984 reference?
am i supposed to be big brother?

TimWinter
Mar 30, 2015

https://timsthebomb.com
https://www.youtube.com/watch?v=OYecfV3ubP8

Adbot
ADBOT LOVES YOU

Gazpacho
Jun 18, 2004

by Fluffdaddy
Slippery Tilde
tweaked slightly to center the face in the frame

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