Iron Man is now powered by Oracle



  • @blakeyrat said:

    @dkf said:
    Sequenced stuff is just very easy to describe with written text.

    And it's of course utterly impossible to have written text in a GUI-- that's why when you do word processing with Word, you have to type in hieroglyphics.

    Wait, what?

    You're right! We should just stop using command lines for scripting, and instead switch to some kind of text-based interface inside a window!


  • Believe it or not in the Windows world there is sometimes when we use the terminal and sometimes we use other means of scripting i.e. Macros. Believe it a lot of the business world use VBA and it works for them.



  • @Snowyowl said:

    I'm going to write a language where arrays start at 3.

    Is there that much of a difference between

    for (i=0; i<max; i++)

    and

    for (i=1; i<=max; i++)

    ? They're different conventions. As long as you're consistent in which one you use, you're fine.

    Ok, fuck where indexes should start. We need to go after people who think the best way to iterate over an array is

    for (int i = 0; i < count(array); i++)

    rather then

    foreach(item in array)

    If I was designing a new language, I would base it on paradigms that don't get used any in modern languages, by which I mean pipelines.

    PowerShell would be neat if not for it's arbitrary restrictions (signed scripts) and syntax (of course -eq is the string comparison operator, because that's how it works in bash!)

    C# is the closest we have with IEnumerable<T> and LINQ functions.



  • @Circuitsoft said:

    I hate community server. The entire rest of the world has standardized on BBCode.

    Well until Markdown came along that is...



  • @MiffTheFox said:

    We need to go after people who think the best way to iterate over an array is

    for (int i = 0; i < count(array); i++)

    Yeah, no shit, look at that inefficient post-increment operator when you could have used a pre-increment!

    @MiffTheFox said:

    rather then

    foreach(item in array)

    Oh.

    @MiffTheFox said:

    If I was designing a new language, I would base it on paradigms that don't get used any in modern languages, by which I mean pipelines.

    In my language: all identifiers are limited to 6 characters, must be globally-unique throughout the entire compilation unit (or maybe embed them in the object files and make it the entire OS) and must contain at least one non-ISO-8859-1 character.

    But, please, tell me more about how pipelines would work in your hypothetical language.



  • @MiffTheFox said:

    C# is the closest we have with IEnumerable<T> and LINQ functions.

     

    Modern JavaScript (1.6+) has some similar predicate function stuff that is similar. But unless you are using node or only developing for modern browsers you are going to need to use shims. Also JavaScript isn't everyone's cup of tea.

     



  • @lucas said:

    ...but most educated people stopped having problems with the concept of zero sometime before the birth of Christ.

    [citation needed] Considering that zero as a distinct, conceptual number didn't show up with the Hindoos until nearly 800 years after the birth of Christ, I think providing such a citation is going to be difficult.

    @lucas said:

    Like it or not development/computer science has quite a lot of concepts pulled from Mathematics, one of these is zero based counting.

    No it didn't, you fucking illiterate piece of shit. Many of the first languages used 1-based indexing. It only became common with the popularity of C, which used 0-based indexing because it make writing compilers easier.

    @lucas said:

    http://www.cs.utexas.edu/~EWD/transcriptions/EWD08xx/EWD831.html

    His arguments have zero relevance to modern, high-level languages.

    @lucas said:

    I wasn't saying that but seriously having problems with basic programming concepts like iteration and controlling iteration ... oh comon.

    You really love knocking down straw men, don't you? The problem, as I have stated a dozen fucking times you moron is that zero-based indexing has resulted in countless bugs even in software designed by extremely competent people. Just like, you know, buffer overflows.

    @lucas said:

    Also I have seen more bugs because somebody decided to break with convention and start counting at 1.

    [citation needed] In what language, dumbass? Most modern languages start indexes at zero. I've already asked, and you failed to answer because you're nothing but a moronic little snot-nosed retard, but I will ask again: please provide proof of all the bugs caused by one-based indexing.

    @lucas said:

    JavaScript is functional, C# has some functional bits put in.

    Javascript is weakly functional. "Has some functional bits put in" does not a functional programming language make, but you fucking knew that before you typed that non sequitur, didn't you you little jackass?

    @lucas said:

    The rest of development community doesn't really agree with you and tbh this is the first time I have even seen it discussed.

    Plenty of people agree with me, but what does that even matter? We have people argue all the time here that it's better to debug in a command line than with a GUI. And that vim is an IDE. And that Java is a programming language. Long story short: most of the "development community" is made of up tedious, fad-chasing morons who lack any critical thinking skills. I would be alarmed if they did agree with me, because then I'd probably be wrong.



  • @MiffTheFox said:

    @Circuitsoft said:
    I hate community server. The entire rest of the world has standardized on BBCode.

    Well until Markdown came along that is...

    In software "The entire rest of the world has standardized on.." means "The time is ripe to shove out some half-baked, trendy alternative which will become very popular on, I dunno, reddit or whatever, and then which will spread like a cancer until it suffocates any sensible alternative at which point it becomes what the entire rest of the world has standardized on.."



  • @morbiuswilters said:

    But, please, tell me more about how pipelines would work in your hypothetical language.

    Convert all BMP files in a directory that don't have PNG equivalents to PNGs:

    io.getFilePaths(dir) | where(x -> x.endsWith(".bmp")) | where(x -> !io.fileExists(x.removeFrom(-5) + ".png")) | foreach oldpath {
    	var newpath = oldpath.removeFrom(-5) + ".png";
    	var image = images.load(oldpath)
    	images.save(newpath)
    };


  • @MiffTheFox said:

    @morbiuswilters said:
    But, please, tell me more about how pipelines would work in your hypothetical language.

    Convert all BMP files in a directory that don't have PNG equivalents to PNGs:

    io.getFilePaths(dir) | where(x -> x.endsWith(".bmp")) | where(x -> !io.fileExists(x.removeFrom(-5) + ".png")) | foreach oldpath {
    	var newpath = oldpath.removeFrom(-5) + ".png";
    	var image = images.load(oldpath)
    	images.save(newpath)
    };

    So you can do filtering. Now do OR.

    I'm also intrigued by how removeFrom(-5) removes 4 characters.



  • @morbiuswilters said:

    But, please, tell me more about how pipelines would work in your hypothetical language.

    Our little furry friend doesn't even know what JavaScript is. I think it's a little soon for him to be designing his own languages.



  • @MiffTheFox said:

    @morbiuswilters said:
    But, please, tell me more about how pipelines would work in your hypothetical language.

    Convert all BMP files in a directory that don't have PNG equivalents to PNGs:

    io.getFilePaths(dir) | where(x -> x.endsWith(".bmp")) | where(x -> !io.fileExists(x.removeFrom(-5) + ".png")) | foreach oldpath {
    	var newpath = oldpath.removeFrom(-5) + ".png";
    	var image = images.load(oldpath)
    	images.save(newpath)
    };

    I like it, although that seems to encourage people to cram a lot of stuff into a single line (I don't like your first line.. it's doing far too much.) Now, if you made it a requirement that pipelines spanned lines, I'm all in.

    I'm also of the strong opinion that every single stylistic aspect should be defined by the language spec and enforced by the compiler with the brutal efficiency of a German government. "Should braces line up or can the first brace go at the end of the condition it contains?" Shut up, you don't get a choice.

    "Should we use tabs or spaces for indenting?" In Morbs++ you will get neither: all indenting must be done with U+FEFF (you won't see it but the compiler will scream bloody murder if you leave one out).

    "Sometimes I like to come up with my own names for variables." WRONG. In Morbs++ the only variable names permitted are those explicitly allowed in the spec. If you want to use a new variable name, you need to submit a proposal to the Morbs++0x ANSI working group.

    "I'm a lady software engineerette and when I use your language I spontaneously menstruate, even at times that are off my cycle. This is really impacting my ability to do my job!" WONTFIX. It is a known limitation of Morbs++ that due to it's ass-kicking nature, most ladies (and some of the more effeminate men) will bleed from their genitals while working with it.

    "How come Morbs++ has arrays start at zero? I thought you hated that shit.." Oh goddammit.. did I forget the array thing? That's the whole bloody reason I was doing this language thing.. Well, we'll fix it in Visual Turbo Morbs++, which, despite the name, will share nothing at all in common with Morbs++



  • @Ben L. said:

    So you can do filtering. Now do OR.

    You mean branching the pipeline? Because most of those operations he wrote could be composed of multiple conditions, I think.

    @Ben L. said:

    I'm also intrigued by how removeFrom(-5) removes 4 characters.

    removeFrom() uses -1-indexing of the whole numbers. So despite the fact that removeFrom(-1) sounds like it would add a single character, it actually removes zero characters (because value 0 is the -1st element in our set). Ergo, removeFrom(-5) removes 4 characters (4 is the -5th element in our set).

    Just be careful not to do removeFrom(0) since that will add a randomly-chosen character to your string.



  • @morbiuswilters said:

    @Ben L. said:
    So you can do filtering. Now do OR.

    You mean branching the pipeline? Because most of those operations he wrote could be composed of multiple conditions, I think.

    @Ben L. said:

    I'm also intrigued by how removeFrom(-5) removes 4 characters.

    removeFrom() uses -1-indexing of the whole numbers. So despite the fact that removeFrom(-1) sounds like it would add a single character, it actually removes zero characters (because value 0 is the -1st element in our set). Ergo, removeFrom(-5) removes 4 characters (4 is the -5th element in our set).

    Just be careful not to do removeFrom(0) since that will add a randomly-chosen character to your string.

    Just to recap:

    • Hey guys, 1-based indexing is fucked up!
    • No, man you've got it all backwards! 0-based indexing is baaad.
    • HEY GUYS I CAN DO THIS TOO LOOK AT ME



















      negative one


  • @morbiuswilters said:

    [citation needed] Considering that zero as a distinct, conceptual number didn't show up with the Hindoos until nearly 800 years after the birth of Christ, I think providing such a citation is going to be difficult.

    Fair point, I was mixing it up with logic which is 200BC ish.

    @morbiuswilters said:

    No it didn't, you fucking illiterate piece of shit. Many of the first languages used 1-based indexing. It only became common with the popularity of C, which used 0-based indexing because it make writing compilers easier.

    In science and mathematics 0 is often where you begin. As I said to boomzilla: fibonacci, factorial, absolute zero and quite a lot of other concepts start counting at 0. Computer Science is heavily related to both. I would have to say if you can't see there maybe a counter argument, maybe you are the illiterate piece of shit and not I.

    There are a lot of real world scenarios where zero based numbering makes sense e.g. you don't say a baby is 1 year old the moment it is born because it is its first year. There are others where it doesn't make sense e.g. counting the number of rows in a table.

    @morbiuswilters said:

    His arguments have zero relevance to modern, high-level languages.

    Why?

    @morbiuswilters said:

    You really love knocking down straw men, don't you? The problem, as I have stated a dozen fucking times you moron is that zero-based indexing has resulted in countless bugs even in software designed by extremely competent people. Just like, you know, buffer overflows.

    Just because you said so doesn't make it true. Also if you are writing code like this especially in C#, you are doing it wrong.

    @morbiuswilters said:

    [citation needed] In what language, dumbass? Most modern languages start indexes at zero. I've already asked, and you failed to answer because you're nothing but a moronic little snot-nosed retard, but I will ask again: please provide proof of all the bugs caused by one-based indexing.

    Because some such idiot as yourself tried to put it into a language that is zero indexed. Most of the god awful code I have to deal with is where someone tried to write programming langauge A because like programming language B because they knew no better. I will provide proof the moment you have a numbers on the number of errors caused by zero indexing ... which I will never have to do because I doubt a such data exists, either position is ancedotal.

    @morbiuswilters said:

    Javascript is weakly functional. "Has some functional bits put in" does not a functional programming language make, but you fucking knew that before you typed that non sequitur, didn't you you little jackass?

    I didn't say it made C# a functional programming language, but they are useful features no doubt. Don't put words into my mouth.

    @morbiuswilters said:

    Plenty of people agree with me, but what does that even matter?

    I don't think you are wrong. I don't think you are right either. It doesn't have to be a dichotomy.

    @morbiuswilters said:

    Long story short: most of the "development community" is made of up tedious, fad-chasing morons who lack any critical thinking skills. I would be alarmed if they did agree with me, because then I'd probably be wrong.

    This comment reminds me of this story on this very site:

    Most of the developers I worked with once I left two bob web shops in my little sleeping home town in England were for the most part pretty good to work with. They don't get their panties in a twist over what at the end of the day is a langauge conventions which are well documented and known about.



  • @lucas said:

    There are a lot of real world scenarios where zero based numbering makes sense e.g. you don't say a baby is 1 year old the moment it is born because it is its first year.


    Actually a hell of a lot of people in the world would disagree with you on this point: East Asian age reckoning



  • @lucas said:

    There are a lot of real world scenarios where zero based numbering makes sense e.g. you don't say a baby is 1 year old the moment it is born because it is its first year.

    What the hell is wrong with you? An age is a quantity of years that a person has been alive, it's not an ordinal. So a newborn has zero years under her belt but is in her first year. You don't say "This is my baby's zeroth year of life" unless you want to get dick punched.

    @lucas said:

    @morbiuswilters said:

    His arguments have zero relevance to modern, high-level languages.

    Why?

    What pros does he list for starting at zero? That the current index tells you the number of elements before it. Wow, that settles it.

    @lucas said:

    Just because you said so doesn't make it true.

    So you're saying off-by-one errors aren't a common occurrence?

    @lucas said:

    Also if you are writing code like this especially in C#, you are doing it wrong.

    I said nothing about C#. Why do you keep imagining things that aren't there? Are you on acid, dude? And with regard to simple iteration, I've already stated numerous times that foreach-style enumeration is preferable. But there are plenty of other cases when you still have to reference elements by index, then there are also the other things I mentioned, like strings and JANUARY == 0.

    @lucas said:

    Because some such idiot as yourself tried to put it into a language that is zero indexed.

    1. I don't believe you, there are hardly any people out there trying to do 1-indexing. 2) Yeah, I forgot the part where I said people should use 1-indexing in languages that only support 0-indexing.

    @lucas said:

    Most of the god awful code I have to deal with is where someone tried to write programming langauge A because like programming language B because they knew no better.

    So you work with stupid people, that must prove your point. Hey, here'e a thought, if you can't get a job with people who aren't stupid, maybe that says something about your skill.

    @lucas said:

    I will provide proof the moment you have a numbers on the number of errors caused by zero indexing ... which I will never have to do because I doubt a such data exists, either position is ancedotal.

    Sorry, I don't have an exact count of the number of bugs caused by fucking up bounds-checking. However, a good deal of bugs in C are from people fucking up bounds-checking, and a lot of times it's attributable to someone accidentally going beyond the end of an array. But at this point it's me arguing against a dude who thinks if he builds an airstrip out of coconuts he will get free supplies from the Sky Gods. The value to me of continuing to dignify your mental diarrhea with responses is dropping rapidly.

    @lucas said:

    I didn't say it made C# a functional programming language, but they are useful features no doubt.

    Let's recap what you wrote:

    @lucas said:

    Functional languages are programming languages. ... JavaScript is functional, C# has some functional bits put in.

    So basically you're saying you threw the C# thing out there for no reason at all? Look, I know it's probably hard to cobble together a rational statement with the voices shrieking in your head non-stop, but please stop trying to drag me down into your irrational word salad.

    @lucas said:

    I don't think you are wrong. I don't think you are right either. It doesn't have to be a dichotomy.

    Great, so I'm stuck in a superposition of right and wrong. Quick, somebody look at me!

    Seriously, though, I don't even know what position your'e arguing unless it's the pro-schizophrenia one.

    @lucas said:

    This comment reminds me of this story on this very site:

    I didn't say the entire industry, I said most of it. And most of the industry is wrong. Dude, do you know how many people mistake vim for an IDE and the Linux Desktop for a something not shitty?

    @lucas said:

    Most of the developers I worked with once I left two bob web shops in my little sleeping home town in England were for the most part pretty good to work with.

    I think we've already established that you're part of the "unthinking 99%", but thanks for further confirmation.

    @lucas said:

    They don't get their panties in a twist over what at the end of the day is a langauge conventions which are well documented and known about.

    That's because they're lazy clock-punchers who will never do a single thing to move the industry forward. Most people didn't get their panties in a wad over slavery, but thankfully some smart people came along and beat sense into everyone else. It's the rare person who actually contributes something to a field, and they usually do it by challenging deeply-held prejudices. In short: why do you like slavery?

    Now, I'm not saying I actually am doing any good simply by virtue of pissing in everyones' eyes, but I can tell you the people who aren't pissing people off are doing no good.



  • @morbiuswilters said:

    So you work with stupid people, that must prove your point. Hey, here'e a thought, if you can't get a job with people who aren't stupid, maybe that says something about your skill.

    I never said I worked with them, I said I seen their code. For someone who reckons they are soo clever your reading comprehension sucks or your trolling ... whichever way it gets boring.

     


  • Considered Harmful

    @morbiuswilters said:

    why do you like slavery?

    I like slavery because I get free labor and sexual favors, and no one is harmed.

    Oh, wait. I see what you did there.



  • @lucas said:

    @morbiuswilters said:

    So you work with stupid people, that must prove your point. Hey, here'e a thought, if you can't get a job with people who aren't stupid, maybe that says something about your skill.

    I never said I worked with them, I said I seen their code. For someone who reckons they are soo clever your reading comprehension sucks or your trolling ... whichever way it gets boring.

    Fine, you're working with their code. Happy, Professor Nitpick?

    Let's argue about something else. Inheritance: why haven't we moved past it yet?



  • @joe.edwards said:

    I like slavery because I get free labor and sexual favors, and no one is harmed.

    Yeah, I realized after posting that I had made an error there; I should have picked something lame that historical people stopped doing, like bubonic plague.



  • It is hardly nitpicking when you were assuming quite lot about me from it, is it?



  • @OzPeter said:

    @lucas said:

    There are a lot of real world scenarios where zero based numbering makes sense e.g. you don't say a baby is 1 year old the moment it is born because it is its first year.

    Actually a hell of a lot of people in the world would disagree with you on this point: East Asian age reckoning
     

    Oh totally, but that is totally fine ... because it is the norm in their culture not mine.

    In the same way in some languages it is the norm to count from zero and other it is to count from one.

     



  • @morbiuswilters said:

    You know what else I hate about Go? It uses zero-indexing. It was created this millennium and it still uses fucking zero-indexing.

    How long are we going to be stuck with this idiom? How many bugs are created because--counter-intuitively--the last index of an array is size-1? You see this shit even with experienced programmers. Every time I write a for loop I have to remind myself "the tools you are using are so steeped in cargo cult, traditionalist bullshit that they stick to this godawful zero-indexing scheme, so you'd better make sure you less-than the size of the array and not less-than-or-equal."

    Zero indexing makes sense from a mathematical point of view. Once you start using a programming language as some kind of funny looking natural language, you're lost. A programming language is nothing more than writing down some applied maths whilst borrowing words from English.

    What's more than a little annoying is when both zero-indexing and one-indexing are used within the same language/platform. Case in point: Java and JDBC.



  • Does this mean Tony Stark is gonna start developing substandard suits, then start overcharging customers for them with a surly attitude?


  • Discourse touched me in a no-no place

    @blakeyrat said:

    @dkf said:
    Sequenced stuff is just very easy to describe with written text.
    And it's of course utterly impossible to have written text in a GUI-- that's why when you do word processing with Word, you have to type in hieroglyphics.
    Given how some of the reports that cross my desk come across, that must be exactly what some people do. Or maybe they just headbutt the keyboard over and over.

    But no, you can of course put written text in a GUI. People do that all the time. But a lot of people who want programs, and who can't adequately explain exactly what they want to a contract programmer to write it down for them, want a "workflow design system" which actually works out as being a graphical programming language. (That's what I'm working on supporting right now, as it happens.) These systems are very complex, and with such complexity comes the potential for many latent WTFs. Even so, they overall offer value, especially to people for whom a blank text editor and a programming language manual are a pair of intimidating things. (They also offer value to proper programmers too, in that they tend to take care of a lot of the nasty little tasks that turn a nice programming experience into a dull and nasty one. (Except for the meetings. Programs don't do those.))



  • @boomzilla said:

    OTOH, I can't even listen to music on my Windows box due to random static that gets injected.
     

    Broken driver, broken soundcard or something or other. That's obviously not normal behaviour.



  • @Severity One said:

    Once you start using a programming language as some kind of funny looking natural language, you're lost. A programming language is nothing more than writing down some applied maths whilst borrowing words from English.
    Quite aside from Piet, which is both more and less than that, that really is completely fucking wrong anyway. A programming language is a tool for getting a computer to do stuff. It does not have a philosophical basis, nor does it have underlying moral imperatives. It's a tool for a job. A tool which does the job better is a better tool, even if it offends some ludicrous prejudice you hold.


  • ♿ (Parody)

    @dhromed said:

    @boomzilla said:
    OTOH, I can't even listen to music on my Windows box due to random static that gets injected.

    Broken driver, broken soundcard or something or other. That's obviously not normal behaviour.

    I agree. It's almost definitely a driver. Because sound is fine for me when I'm running Linux on the same machine.



  • @MiffTheFox said:

    If I was designing a new language,

    ... it would not support direct string concatenation and all string formatting functions would automatically escape their arguments.

    Seriously, how many bugs are created because people cannot be bothered to encode/escape strings properly?



  • @fatbull said:

    not support direct string concatenation
     

    You vile beast.



  • @dhromed said:

    @fatbull said:

    not support direct string concatenation
     

    You vile beast.

    print "My favourite string concatenation operator " "is the one that isn't there."



  • quote from page 2:

    Oracle Database is the most powerful information software on the planet, and Java is
    the most powerful development framework and language, so we don’t
    get any complaints on those requirements,” Carter added.

    Yawn.



  • @boomzilla said:

    @lucas said:
    They start at zero because mathematicians start counting at zero, coming from a maths heavy background I find it makes sense.

    Bullshit. Mathematicians count from 1 just like anyone else. Zero based indexing comes from pointer arithmetic. If you're working at machine code / ASM level, that's obviously how you have to operate. And C isn't much above that level, so it makes sense for those things.

    It happens both as math doesn't have a solid convention for a lot of things, different fields use different conventions (or even different cliques/research groups or textbooks). I do agree with you that zero-based counting is mostly a Computer Science oddity, but there is a reason for it other than C pointer arithmetic: "Zero is the lowest unsigned integer value, one of the most fundamental types in programming and hardware design. In computer science, zero is thus often used as the base case for many kinds of numerical recursion. Proofs and other sorts of mathematical reasoning in computer science often begin with zero. For these reasons, in computer science it is not unusual to number from zero rather than one." (source: wikipedia)



  • @dkf said:

    Given how some of the reports that cross my desk come across, that must be exactly what some people do. Or maybe they just headbutt the keyboard over and over.

    But no, you can of course put written text in a GUI. People do that all the time. But a lot of people who want programs, and who can't adequately explain exactly what they want to a contract programmer to write it down for them, want a "workflow design system" which actually works out as being a graphical programming language. (That's what I'm working on supporting right now, as it happens.) These systems are very complex, and with such complexity comes the potential for many latent WTFs. Even so, they overall offer value, especially to people for whom a blank text editor and a programming language manual are a pair of intimidating things. (They also offer value to proper programmers too, in that they tend to take care of a lot of the nasty little tasks that turn a nice programming experience into a dull and nasty one. (Except for the meetings. Programs don't do those.))

    Let me see if I can translate that ... thing ... into something a normal human being can read and comprehend.

    You're saying:
    1) Scripting GUIs is bad, because...
    2) People who want to script GUIs invariably want to do it using some kind of "graphical programming language"...
    3) Which is bad because it's complex...
    4) But is good because they offer value?

    My responses:

    2) You assume this despite the most successful GUI scripting environment *not* having any sort of "graphical programming language". (Although it did have a macro recorder, if you count that. Which I don't. Because that's totally fucking different.)

    3) Well to humor you, let's assume a graphical programming language is required for GUI scripting even though it's not and you're an idiot for even suggesting it: yes, it would be complex to build and maintain. So what? Lots of software is complex to build and maintain. You could argue the entire point of programming is to have the computer do something as complex as possible while the users does something as easy as possible.

    This is an even weaker excuse than the "we've always done it that way" in the other thread. This is, "programmers are too fucking lazy and incompetent to get it right, so don't even try." Fuck that noise.

    4) Your writing is so convoluted and confusing that I can't tell if you're being a hypocrite or not, but I'll just assume you are and call you a hypocrite. Duh. Of course it adds value. Derpity derp.

    Oh and BTW, if you're writing prose, and you end up with a parenthetical inside a parenthetical, EDIT YO SHIT. Ain't nobody gonna understand that!


  • Considered Harmful

    @blakeyrat said:

    Oh and BTW, if you're writing prose, and you end up with a parenthetical inside a parenthetical, EDIT YO SHIT. Ain't nobody gonna understand that!

    Blakey says avoid

    nested parens (writing prose

    (Poems are OK))



  • @fatbull said:

    @MiffTheFox said:

    If I was designing a new language,

    ... it would not support direct string concatenation and all string formatting functions would automatically escape their arguments.

    Seriously, how many bugs are created because people cannot be bothered to encode/escape strings properly?

    How many of those bugs would be fixed if the programmer didn't have access to things like direct SQL commands or HTML output?

    Heck, I just now want to see any server-side programming environment where the user doesn't have direct access to the HTML programatically. The developer would create static HTML pages that they inject content into using DOM* objects.

     

    * Blakeyward: Not the "thing that makes Javascript go" or whatever. Python, Perl, PHP, and Classic VB all use the term DOM for their XML manipulator, so it's reasonable to use the same term for an HTML manipulator. Perl does this.



  • @blakeyrat said:

    Oh and BTW, if you're writing prose, and you end up with a parenthetical inside a parenthetical, EDIT YO SHIT. Ain't nobody gonna understand that!

    While I would generally agree with you that it makes for clunky prose, I suggest that nested parentheses really oughtn't pose too much of a problem on a forum dedicated to programmers.
    TRWTF is that anyone here would have a problem deciphering their meaning.



  • @MiffTheFox said:

    * Blakeyward: Not the "thing that makes Javascript go" or whatever. Python, Perl, PHP, and Classic VB all use the term DOM for their XML manipulator, so it's reasonable to use the same term for an HTML manipulator. Perl does this.

    That's because XML and HTML both have a DOM. Idiot.



  • @TDWTF123 said:

    Quite aside from Piet, which is both more and less than that, that really is completely fucking wrong anyway. A programming language is a tool for getting a computer to do stuff. It does not have a philosophical basis, nor does it have underlying moral imperatives. It's a tool for a job. A tool which does the job better is a better tool, even if it offends some ludicrous prejudice you hold.
     

    It maybe a tool for getting work done but a lot of how a computer works has a lot of mathematical principles behind it. I am sure the JavaScript engines that are allowing us to reply have various optimisations based on various discrete mathematical / computer science theories. I don't really understand where you think the prejudice comes from when it is just a different outlook on a particular subject.



  • @eViLegion said:

    I suggest that nested parentheses really oughtn't pose too much of a problem on a forum dedicated to programmers. TRWTF is that anyone here would have a problem deciphering their meaning.
     

    Hey, your fly is open and your elitism is showing.

    Mostly, looking at nested parens just tells me the writer isn't terribly good at writing.



  • @flabdablet said:

    print "My favourite string concatenation operator " "is the one that isn't there."
     

    That might be a little too implicit for my tastes, but I'd have to do a lot of regular work with such a language to really find out.

    After all, semicolon insertion works just fine.

    Except in that case between the author of js.min and the author of Bootstrap.

    And in that case where my coworker (not crazy knowledgeable about JS's internals) coincidentally pasted a bit of new code that caused the interpreter to interpret it plus the preceding code as an immediate function call, causing the script to fail. Fortunately I was there!

    So, two recorded cases so far.



  • @lucas said:

    It maybe a tool for getting work done but a lot of how a computer works has a lot of mathematical principles behind it.

    So does a gasoline engine, so what? Abstract that shit away.

    @lucas said:

    I am sure the JavaScript engines that are allowing us to reply have various optimisations based on various discrete mathematical / computer science theories.

    And if you're the 1% of the population that programs computers-- and the 0.5% of that group that optimizes JavaScript engines-- knowing that is important. For 99.95% of us, it's pointless and should be abstracted-away. I probably did that math wrong but who cares you get the point.

    Oh wait. Lookee here. IT IS. (In this JavaScript example at least.) I don't have to know or care about those optimizations, discrete mathematical theories, or anything about computer science to write quite complex apps using JavaScript. Hallelujah, the system works!


  • Considered Harmful

    @blakeyrat said:

    For 99.995% of us

    FTFY

    1 - 0.01 * 0.005 = .99995



  • @blakeyrat said:

    And if you're the 1% of the population that programs computers-- and the 0.5% of *that* group that optimizes JavaScript engines-- knowing that is important. For 99.95% of us, it's pointless and should be abstracted-away. I probably did that math wrong but who cares you get the point.

    Oh wait. Lookee here. IT IS. (In this JavaScript example at least.) I don't have to know or care about those optimizations, discrete mathematical theories, or anything about computer science to write quite complex apps using JavaScript. Hallelujah, the system works!

    So you don't think it is important to match things like requirements to deliverables?

    The areas of study are called Computer Science and Software Engineering for a reason. Because once you get past the hacking and just delivering enough you actually start building decent robust software.

    Btw with any significantly large website you need to actually test the JavaScript, we are moving towards TDD in this area.You can scoff all you want. But even jQuery upgrades have hurt us because some moron has put something in that would only work in jQuery 1.4.2 and not 1.9.1.

    With tools like node and grunt we have been recently using (yes I got a pile of shite codebase when I moved to Spain), I can actually check whether everything is good before it goes into UAT.

    No you might not have to worry about them while writing code normally, it is worth understanding what happening behind the scenes to a certain extent. Scott Hanselman had a good piece on this

    http://www.hanselman.com/blog/PleaseLearnToThinkAboutAbstractions.aspx

    TBH I am quite dismayed that I am actually explaining the fucking basics in this thread.



  • @lucas said:

    So you don't think it is important to match things like requirements to deliverables?

    What? No.

    I'm saying it's not necessary to know the specifics of how JavaScript optimizes its own bytecode in order to do that. I'd love to see a reasonable argument otherwise.

    @lucas said:

    The areas of study are called Computer Science and Software Engineering for a reason.

    Yeah, the problem is that 99% of the people who think they need "computer scientists" actually need "software engineers". If you hire a "computer scientist" to, say, write some simple Map/Reduce code, he'll do something annoying and shitty like waste a year of company's time on creating Golang instead. If Google had hired a "software engineer", they would have gotten a much better result in far less time because he would have spent his time solving the problem instead of creating a tool from scratch to solve the problem then solving the problem.

    @lucas said:

    Btw with any significantly large website you need to actually test the JavaScript, we are moving towards TDD in this area.

    "Moving towards"? What kind of redneck po-dunk operation do you head, buddy? My old company was doing TDD in JavaScript back in 2007.

    @lucas said:

    You can scoff all you want.

    Thank you, I will take you up on that.

    @lucas said:

    With tools like node and grunt, I can actually check whether everything is good before it goes into UAT. It is engineering and engineering is based on science.

    Perhaps; but that doesn't change my argument: you don't need to know the specifics of how your particular JavaScript engine is optimized to do it. Just as a scientist studying the mating habits of a housefly doesn't need to know the specifics of how its pulmonary system operates.



  • This is quite frustrating. Because you are missing the overrall point I am making. There is some mathematics and science to what we do.Whether it is the programming language or the relationship between requirements and testing.

    Yes we are moving towards TDD. Sorry I wasn't working at my present company in 2007, I can't make a time machine, maybe you should contact Dr Who for me. I got employed last year at my current position and it has been an uphill struggle all the way to get to something sensible, Rome wasn't built in a day etc etc.

    Yes you can say "we were doing that ages ago". Believe me we wish it was done ages ago, but the reality is that it wasn't and the shit release process (another thing we are trying to fix) is holding us back. It sucks but you can't fix everything at once.



  • @Severity One said:

    Zero indexing makes sense from a mathematical point of view.

    No it doesn't. Stop this.

    @Severity One said:

    A programming language is nothing more than writing down some applied maths whilst borrowing words from English.

    No it's not. Sure, the underlying implementation uses quite a lot of math, but how much math do you do in a modern, high-level language? Most of the math I do in business programming is of the "check if length of input exceeds length of buffer before copying" or "add up a bunch of line-items to generate a total" variety. Claiming that high-level languages should closely adhere to mathematical conventions because there's some math under the hood is just about as dumb as saying programming languages should find a way to work in Ohm's Law because they're built on top of electrical components.
    <br.

    @Severity One said:

    Case in point: Java and JDBC.

    Yes, that is annoying, which is why I mentioned it already.



  • @TDWTF123 said:

    @Severity One said:
    Once you start using a programming language as some kind of funny looking natural language, you're lost. A programming language is nothing more than writing down some applied maths whilst borrowing words from English.
    Quite aside from Piet, which is both more and less than that, that really is completely fucking wrong anyway. A programming language is a tool for getting a computer to do stuff. It does not have a philosophical basis, nor does it have underlying moral imperatives. It's a tool for a job. A tool which does the job better is a better tool, even if it offends some ludicrous prejudice you hold.

    Marry me.



  • @lucas said:

    This is quite frustrating. Because you are missing the overrall point I am making.

    Well then make it in a clear enough fashion that I don't miss it.

    @lucas said:

    There is some mathematics and science to what we do. Whether it is the programming language or the relationship between requirements and testing.

    Science I buy (for testing), but math? Sure you need middle-school level statistics to make sense of test coverage metrics, but no more than a McDonalds fry cook needs to find out when to order new frying medium. What math other than that do you need?

    If that's your point, then I'm not missing it-- I just think it's completely wrong.


Log in to reply