Iron Man is now powered by Oracle



  • @dtech said:

    Zero is the lowest unsigned integer value, one of the most fundamental types in programming and hardware design.

    Yes. So? Hell, if your language even has an unsigned type it's not high-level.

    @dtech said:

    In computer science, zero is thus often used as the base case for many kinds of numerical recursion.

    [relevance needed]

    @dtech said:

    Proofs and other sorts of mathematical reasoning in computer science often begin with zero.

    Oh, that's right, I completely forgot that I might want to write a mathematical proof of that for loop.

    @dtech said:

    For these reasons, in computer science it is not unusual to number from zero rather than one.

    We're talking about programming, not computer science. Believe it or not, they're different disciplines, albeit related, just like physics is to automotive engineering.



  • @MiffTheFox said:

    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.

    The problem with this is that DOM is an awful API and writing HTML is convenient. I think a better solution is to have something like an UnsafeString type for any externally-supplied data, and then types like "SqlString" for SQL and "HtmlString" for HTML. Then if you concatenated an UnsafeString with a SqlString or an HtmlString, it would automatically be escaped using the conventions of whatever it's being concatenated with. If you really, really need to use an unescaped UnsafeString, then you can call some method like UnsafeString.godIReallyHopeYouKnowWhatYouAreDoing to get an unescaped value to concatenate.



  • @blakeyrat said:

    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.

    I dunno what to say after that, you just don't want to accept that there is some cross discipline ideas.It is okay, I am quite happy for you to say limited intellectually.

     



  • @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. I am sure the JavaScript engines that are allowing us to reply have various optimisations based on various discrete mathematical / computer science theories.

    So what? Why do you think this is relevant? Your car* works using a variety of physics principles, but the controls don't expect you to give a shit about the stoichiometric mixture. That noise is abstracted away because the UI of the car should have the driver focusing on getting where he's going safely, and not worrying if the mix is too lean. And abstraction is a far, far more important principle in software engineering than adhering to some "pure" model of enumerating from zero. (Which I still think is asinine--just because zero is a number doesn't mean it needs to be used as a starting point for counting.)


    (*You're European so you probably don't have a car. Fine, pretend I said "burro" instead of "car" and "cellular respiration" instead of "stoichiometric mixture".)



  • @morbiuswilters said:

    We're talking about programming, not computer science. Believe it or not, they're different disciplines, albeit related, just like physics is to automotive engineering.
     

     And like a lot of mechanics you will always be working on someone's old Ford.



  • @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.

    What the fuck does any of this have to do with starting enumeration at zero? Seriously, I feel like you're just puking up random sentences from a beginner's book on programming. "The synergy between TDD and zero-indexing ensures that deliverables meet the requirements of the stakeholders."

    As best I can piece together your incoherent argument, it's something like:

    "Writing good software requires testing..." (fine, but too much testing can be a bad thing)

    "...which sometimes requires understanding that abstractions are leaky..." (sure, yeah)

    "...which means arrays should start at zero because programming languages are built on lots of maths and we wouldn't want that abstraction leaking on us, purple monkey dishwasher." (WTF??????)



  • @morbiuswilters said:

    Your car* works using a variety of physics principles, but the controls don't expect you to give a shit about the stoichiometric mixture.

    No they don't, however people expect that my vehicle will actually abide by customs and laws in that particular country. A lot of these laws requires the car to be roadworthy which is a physical constaint ... I don't see how this isn't governed by physics.

    @morbiuswilters said:

    That noise is abstracted away because the UI of the car should have the driver focusing on getting where he's going safely, and not worrying if the mix is too lean. And abstraction is a far, far more important principle in software engineering than adhering to some "pure" model of enumerating from zero. (Which I still think is asinine--just because zero is a number doesn't mean it needs to be used as a starting point for counting.)

    Actually the exhaust noise I would guess is more of a social custom since in the UK it isn't allowed past 100db (approximately), and it has to abide by certain emission laws. It has nothing to do rider concentration.

    @morbiuswilters said:

    (*You're European so you probably don't have a car. Fine, pretend I said "burro" instead of "car" and "cellular respiration" instead of "stoichiometric mixture".)
     

    I come from an rea where there are 4 cars per household and this is in Europe,  you keep on assuming stuff about me and it just makes you look like an ass.



  • @lucas said:

    @morbiuswilters said:

    We're talking about programming, not computer science. Believe it or not, they're different disciplines, albeit related, just like physics is to automotive engineering.
     

     And like a lot of mechanics you will always be working on someone's old Ford.

    I said "automotive engineering" not "automotive mechanic". And besides, working on somebody's used car is what mechanics do. Look, I'm sorry you apparently wanted to be a computer scientist but weren't smart enough, but you're now a software engineer: that's your lot in life. Seriously, you are going to fail at this portion of your life, too, if you don't drop your stupid pretenses and learn to write good software.


  • Trolleybus Mechanic

    @morbiuswilters said:

    (*You're European so you probably don't have a car. Fine, pretend I said "burro" instead of "car" and "cellular respiration" instead of "stoichiometric mixture".)
     

    Dude, that's way over the fucking line there, you ignorant moron.

    Everyone knows Europeans have bicycles now. They've had them for months.

    ... unless you meant the brown part of Europe? They have a train. Not trains. A train.



  • @morbiuswilters said:

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

    What the fuck does any of this have to do with starting enumeration at zero? Seriously, I feel like you're just puking up random sentences from a beginner's book on programming. "The synergy between TDD and zero-indexing ensures that deliverables meet the requirements of the stakeholders."

    As best I can piece together your incoherent argument, it's something like:

    "Writing good software requires testing..." (fine, but too much testing can be a bad thing)

    "...which sometimes requires understanding that abstractions are leaky..." (sure, yeah)

    "...which means arrays should start at zero because programming languages are built on lots of maths and we wouldn't want that abstraction leaking on us, purple monkey dishwasher." (WTF??????)

     

    I expect you to give me some leeway and take the overall meaning rather than picking on particular pieces to prove you are correct, because to be honest if I answered every ad-hominem attack and taken out of context quote you took from me I would be here even longer than I am now.

     It doesn't make you right, it just means you got more time to waste on trying to prove you are right about a subject ... that is subjective.



  • @morbiuswilters said:

    I said "automotive engineering" not "automotive mechanic". .
     

    I was giving you the exact amount of credit you deserve. I assumed you were at the lower end of the spectrum.


     



  • @Lorne Kates said:

    @morbiuswilters said:

    (*You're European so you probably don't have a car. Fine, pretend I said "burro" instead of "car" and "cellular respiration" instead of "stoichiometric mixture".)
     

    Dude, that's way over the fucking line there, you ignorant moron.

    Everyone knows Europeans have bicycles now. They've had them for months.

    ... unless you meant the brown part of Europe? They have a train. Not trains. A train.

     

     Yeah we have just gone horse and card ... I have hobby horse to get to work on.

     



  • @lucas said:

    No they don't, however people expect that my vehicle will actually abide by customs and laws in that particular country. A lot of these laws requires the car to be roadworthy which is a physical constaint ... I don't see how this isn't governed by physics.

    What in the fuck are you talking about? What point are you trying to make? Are you even trying to make a point? Analogies are supposed to make your point clearer, not leave the listener wondering if you're off your brain meds.

    @lucas said:

    Actually the exhaust noise I would guess is more of a social custom since in the UK it isn't allowed past 100db (approximately), and it has to abide by certain emission laws. It has nothing to do rider concentration.

    Are you illiterate or was this a bad attempt at a joke. (Hint: "that noise" referred to the complex physics of operating a modern ICE, not the fucking exhaust noise.)

    @lucas said:

    I come from an rea where there are 4 cars per household and this is in Europe...

    I'm not sure this proves anything. Maybe where your'e at "household" means "hundreds of filth-covered raggamuffins huddling beneath a pile of tin roofing".

    @lucas said:

    ...you keep on assuming stuff about me and it just makes you look like an ass.

    I didn't say you don't have a car, I said you probably don't, which is a fair assessment to make given your European stock. Sure, there's probably a couple of guys in India who can afford toilet paper, but it's not unfair to assume that you don't want to shake hands with your average Indian.



  •  Honestly I think you try to hard to make yourself sound clever. Are you worried about being a bit thick?



  • @lucas said:

    @morbiuswilters said:

    I said "automotive engineering" not "automotive mechanic". .
     

    I was giving you the exact amount of credit you deserve. I assumed you were at the lower end of the spectrum.

    That really hurts from a guy who just discovered TDD and who's apparently so skilled the only job he can get is working with shitty code.

    Anyway, it's obvious you are either deliberately pretending like you don't understand or else you're incapable of understanding a simple argument. The point wasn't about the automotive engineer, it was that engineering and theory are two very different disciplines. Obviously to be a good engineer you must understand some of the theory, but it's also very important to build good tools that work. That's far more important than trying to pretend you're a mathematician (again, sorry you failed the University exam) and doing everything ass-backwards just to compensate for your own feelings of inadequacy.

    tl;dr High-level languages are about working with high-level constructs which abstract away the gritty details. Knowing the gritty details isn't a bad thing, but insisting that we tear down abstractions just so we can shove in the gritty details where they don't belong makes you look dumb-tarded.


  • ♿ (Parody)

    @lucas said:

    Honestly I think you try to hard to make yourself sound clever. Are you worried about being a bit thick?

    Most of the posts on this forum could be better described as performance art than discussion, but I don't think Morbs is worried about anything. Still, you haven't made a coherent (let alone convincing) argument about why 0-based indexing is better than 1-based.



  • @morbiuswilters said:

    That really hurts from a guy who just discovered TDD and who's apparently so skilled the only job he can get is working with shitty code.

    I didn't just get TDD, this is the  first time I had a chance to implement it. Apparently you have worked in perfect companies that let you mandate you own processes, and you can iterate on releases as often as you like! Everyone has to work with bad every so often ... so what ... that doesn't make me any less skilled than you are.

    I just don't think that zero vs one indexes are such a big deal when most of those higher level languages already have better ways with dealing with them. Which is something that you ignored when I mentioned C# and LINQ as a good example of that. Java has it with iterators and for in loops.



  • @boomzilla said:

    @lucas said:
    Honestly I think you try to hard to make yourself sound clever. Are you worried about being a bit thick?

    Most of the posts on this forum could be better described as performance art than discussion, but I don't think Morbs is worried about anything. Still, you haven't made a coherent (let alone convincing) argument about why 0-based indexing is better than 1-based.

     

    The point is that I never really cared either way, thus my coment about dichotomy. There is rarely a right way and a wrong way.



  • Let me try!

    Many programmers actually have a mathematical mind, and understand the workings of the processor. In other words, they do think in terms of pointers and offsets. So, for these programmers, using 1-indexing would just be more confusing.



  • @lucas said:

    Everyone has to work with bad every so often ... so what ... that doesn't make me any less skilled than you are.

    Honestly, no it doesn't, but you're the one who started this whole "you are not skilled" bullshit, because apparently your skill as a software engineer is directly proportional to how concerned you are with the mathematical underpinnings of the tools you are using..

    @lucas said:

    I just don't think that zero vs one indexes are such a big deal when most of those higher level languages already have better ways with dealing with them.

    It matters some, but not nearly as much as this argument would seem to indicate. There are far, far bigger problems with software engineering. The reason I harp on it is because the pro-zero-index people fall into two camps: 1) "we've always done it this way"--which means things are never going to improve; or 2) "the quality of our tools and products is less important than adhering to some arbitrary standard of philosophical purity I've just decided we must all worship"--which just results in a lot of stupid shit propagating its way throughout the industry. I care more about making good software than whether some hypothetical mathematicians would approve of how we enumerate (and if they don't approve, they're pedantic idiots anyway.)

    @lucas said:

    Which is something that you ignored when I mentioned C# and LINQ as a good example of that.

    I did no such thing. LINQ is great (although of no help to me since I don't develop for Windows.) For the tenth damn time: I said that there were better ways to iterate than incrementing an integral index (alliterative!), but that sometimes you still need to use an index, like when working with substrings. And those are cases where zero-indexing still hurts.



  • @spamcourt said:

    Many programmers actually have a mathematical mind, and understand the workings of the processor.

    If by "many" you mean "the very tiny, ever-shrinking minority", then yes.

    @spamcourt said:

    In other words, they do think in terms of pointers and offsets.

    Goddammit, do you people read a goddamn thing before you start talking? We're talking about high-level languages here. What fucking high-level language do you know of that uses pointers and pointer arithmetic? When would it ever be acceptable to design the collections facilities of a high-level language around the idiom of memory addressing?



  •  At the end of the day you started the whole being rude and proclaiming yourself righteous. I entered a discussion and it ended up like this via your rudeness, even though I was polite for longer than I should have. I have no more to say on the subject now, since it is pointless discussing it further.



  • @morbiuswilters said:

    @lucas said:
    Everyone has to work with bad every so often ... so what ... that doesn't make me any less skilled than you are.

    Honestly, no it doesn't, but you're the one who started this whole "you are not skilled" bullshit, because apparently your skill as a software engineer is directly proportional to how concerned you are with the mathematical underpinnings of the tools you are using..

    Nope. It just I like to discuss somethings. I was actually interested in what you were saying until you acted like a dickhead. I even tried to appease you, but again you acted like a dickhead again.

    Must be an open source developer to have such an attitude.



  • @lucas said:

    And like a lot of mechanics you will always be working on someone's old Ford.
     

    You seem to think (correct me if I'm wrong) everyone here is a disinterested luddite. That we don't appreciate discrete math or computer science. That is a silly notion. I, for one, love those things. But you're very much overstating the importance of those concepts as pertaining to practical programming; to getting a working piece of software out the door.

    As for the rest... just read my sig.

    Maybe I should make a sandwich.



  • @spamcourt said:

    Many programmers actually have a mathematical mind, and understand the workings of the processor. In other words, they do think in terms of pointers and offsets. So, for these programmers, using 1-indexing would just be more confusing.
     

    No, that's just a small portion of all codemonkeys.



  • @lucas said:

    I was actually interested in what you were saying until you acted like a dickhead.

    "Until"? You do realize you're talking to Morbs right? He makes me look polite by comparison.



  • @lucas said:

    Must be an open source developer to have such an attitude.

    I know, right?

    I mean, I work with FOSS a lot, so maybe it just causes the attitude.



  • @spamcourt said:

    Let me try!

    Many programmers actually have a mathematical mind, and understand the workings of the processor. In other words, they do think in terms of pointers and offsets. So, for these programmers, using 1-indexing would just be more confusing.

    For those programmers, preforming a mathematical operation and storing the result in memory with one line of code is confusing. For those programmers, named variables are confusing. For those programmers, subroutines are confusing.



  • @lucas said:

    At the end of the day you started the whole being rude and proclaiming yourself righteous.

    Actually, the first really rude statements I can find between us were from you:

    @lucas said:

    ...I am sorry you have a massive problem with the concept of zero, but most educated people stopped having problems with the concept of zero sometime before the birth of Christ.

    Prior to that, the rudest thing I can find that I said to you was "Stop with this nonsense."

    Now, to be fair, my response was disproportionate. There were some other jackasses who were being much more rude than you and that certainly gave me fuel for flaming you. So, if you really want an apology, I'm sorry I reacted so harshly. I don't consider it much of a big deal because: 1) it's just the Internet, people flame one another; and 2) I wasn't even angry at you, just annoyed by your attitude. And shit, man, if you read more of what I've written you'd see I call the people I agree with "fucking morons".

    tl;dr I didn't start this discussion intending to be an asshole, it just sorta happened. Because I am an asshole.



  • @MiffTheFox said:

    @spamcourt said:
    Let me try!

    Many programmers actually have a mathematical mind, and understand the workings of the processor. In other words, they do think in terms of pointers and offsets. So, for these programmers, using 1-indexing would just be more confusing.

    For those programmers, preforming a mathematical operation and storing the result in memory with one line of code is confusing. For those programmers, named variables are confusing. For those programmers, subroutines are confusing.

    And don't even think about bringing up polymorphism--you'll make them mess their Depends.



  • @blakeyrat said:

    He makes me look polite by comparison.

    Thinnest kid at fat camp.


  • Considered Harmful

    @morbiuswilters said:

    @MiffTheFox said:

    For those programmers, preforming a mathematical operation and storing the result in memory with one line of code is confusing. For those programmers, named variables are confusing. For those programmers, subroutines are confusing.

    And don't even think about bringing up polymorphism--you'll make them mess their Depends.

    These aren't the guys that scare me. For me, it's the guys who love polymorphism, just love love love it. They'll make an AbstractStrategyFactoryImpls to implement their AbstractStrategyFactories that emit ZeroIndexedEnumeratorStrategies (to stay on topic) that implement their EnumeratorStrategy to walk a simple one dimensional array, but only if you can successfully configure 17 XML files with subtle undocumented interdependencies. (Oh, and if something is wrong, the exception is caught and "An error occurred" is printed alert()ed on the server.)



  • @joe.edwards said:

    These aren't the guys that scare me. For me, it's the guys who love polymorphism, just love love love it. They'll make an AbstractStrategyFactoryImpls to implement their AbstractStrategyFactories that emit ZeroIndexedEnumeratorStrategies (to stay on topic) that implement their EnumeratorStrategy to walk a simple one dimensional array, but only if you can successfully configure 17 XML files with subtle undocumented interdependencies. (Oh, and if something is wrong, the exception is caught and "An error occurred" is printed alert()ed on the server.)

    And I suppose you have a better way of allowing people to swap in their own AbstractStrategyFactory?



  • @joe.edwards said:

    @morbiuswilters said:
    @MiffTheFox said:

    For those programmers, preforming a mathematical operation and storing the result in memory with one line of code is confusing. For those programmers, named variables are confusing. For those programmers, subroutines are confusing.

    And don't even think about bringing up polymorphism--you'll make them mess their Depends.

    These aren't the guys that scare me. For me, it's the guys who love polymorphism, just love love love it. They'll make an AbstractStrategyFactoryImpls to implement their AbstractStrategyFactories that emit ZeroIndexedEnumeratorStrategies (to stay on topic) that implement their EnumeratorStrategy to walk a simple one dimensional array, but only if you can successfully configure 17 XML files with subtle undocumented interdependencies. (Oh, and if something is wrong, the exception is caught and "An error occurred" is printed alert()ed on the server. literally printed)


  • Garbage Person

    @morbiuswilters said:

    Hey, why don't we inherit some other obnoxious, bug-creating conventions from C: let's say all strings must be terminated with a special character. And that you must always remember to declare your strings as size + 1 to accommodate this character. And if you forget to put it on somewhere, well ha ha ha, fuck you.

    Sane people are like "Man, that was pretty sucky. Thank God we didn't keep C strings around!" But then those same people will be like "Oh, well, it's just sensible for arrays to start at zero because, uh, that's how programming works!"

    Wait, you think that x00 is actually treated sanely these days? Spoken like a man who's never had to deal with the consequences of trying to load a fixed width ASCII text file that some mainframe arseclowns managed to randomly sprinkle x00's into*. Every single piece of data processing software I cared to bung it at choked. I ended up having to do a binary replacement of x00's with spaces before I can import the thing into the toolchain.

     

    *"Oh, that's what happens when we don't have values for a field. We
    build the file layout in a sequential block of memory and just copy to
    disk to output it. It's really neat!' I should be grateful the idiots
    zeroed the memory first. I've also had to deal with that problem. That sucked a lot more.



  • @Weng said:

    Wait, you think that x00 is actually treated sanely these days?

    Wait, where did you read that? I just said string handling wasn't stupid enough to require NUL-termination, not that it could handle NULs.

    @Weng said:

    Every single piece of data processing software I cared to bung it at choked. I ended up having to do a binary replacement of x00's with spaces before I can import the thing into the toolchain.

    What language are you using? Because, come to think of it, most of the (non-C) languages I work with handle NULs just fine. I don't remember if Java does, but PHP and JS do. I know this because I've used NUL as a delimiter for storing non-scalar datas in a text field in MySQL (yeah, yeah, I know..)



  • @morbiuswilters said:

    Prior to that, the rudest thing I can find that I said to you was "Stop with this nonsense."

    Okay ... Fair enought I can see how that can be seen as rude. I didn't mean it that way, sorry.

    @morbiuswilters said:

    Now, to be fair, my response was disproportionate. There were some other jackasses who were being much more rude than you and that certainly gave me fuel for flaming you. So, if you really want an apology, I'm sorry I reacted so harshly. I don't consider it much of a big deal because: 1) it's just the Internet, people flame one another; and 2) I wasn't even angry at you, just annoyed by your attitude. And shit, man, if you read more of what I've written you'd see I call the people I agree with "fucking morons".

    tl;dr I didn't start this discussion intending to be an asshole, it just sorta happened. Because I am an asshole.

     

    I can be an arsehole to.

    Not the best way to start on the forums :D


  • ♿ (Parody)

    @morbiuswilters said:

    @spamcourt said:
    Many programmers actually have a mathematical mind, and understand the workings of the processor.

    If by "many" you mean "the very tiny, ever-shrinking minority", then yes.

    If mathematical means arithmetic or calculus or linear algebra, then I'd agree with you on that fine point. (I wouldn't disagree on the bigger point, since most programmers are idiots.) But to me, programming is just a branch of applied mathematics. The sort of programmer who doesn't have a mathematical mind is the sort who cannot see any consequences from the code he writes until they happen and cannot even understand the meaning of the term edge case after you beat him over the head with it.

    And the sort of person who thinks mathematics dictates 0-based indexing has a very narrow understanding of mathematics, and has probably never studied much algebra, especially number theory.


  • ♿ (Parody)

    @lucas said:

    I can be an arsehole to.

    Not the best way to start on the forums :D

    You're wrong about the forums and you misspelled "too." THAT'S EXACTLY THE WAY TO START ON THE FORUMS.

    Welcome.



  • @lucas said:

    I didn't mean it that way, sorry.

    @morbiuswilters said:

    I'm sorry I reacted so harshly.

     What the hell is wrong with you people.*

     @lucas said:

    Not the best way to start on the forums :D

    Do you know where you are? ;) ;) ;) ;) ;)

     

     

    *) sarcasm.



  • @boomzilla said:

    Welcome.
     

    There's also veal for people who are not funny.

    I hear it's really good.

    Try it.



  • @boomzilla said:

    But to me, programming is just a branch of applied mathematics.

    This just feels wrong, but I haven't though too deeply about it yet.



  • @morbiuswilters said:

    @Severity One said:
    A programming language is nothing more than writing down some applied maths whilst borrowing words from English.
    No it's not.
    Yes it is.

    @morbiuswilters said:

    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.
    The argument "zero indexing is stupid because people start counting from one" makes absolutely no sense whatsoever. A computer program is not a person. It's written by a person, sure, but that person should simply not look at an array as an abstraction of a stack of boxes, or something similar, because it isn't.

    Logic (a specialised branch of mathematics), programming and digital electronic circuits really don't differ that much. One of them you write on a blackboard, the second exists as a bunch of bytes on some sort of storage, and the third sits in little black boxes on a PCB, but essentially they're different representations of the same principles.

    For certain scenarios, zero-indexing makes perfect sense. For other scenarios, n-indexing (why not abstract away the lower bound as well, as you can do in Pascal) makes perfect sense. To claim that one is superior to the other is like claiming that driving on one side of the road is clearly much better than driving on the other side.

    So you need to remember that the last index of an array is at array.length - 1. But why are you still using such archaic constructs like arrays? Why haven't you abstracted them away by using a string class or a collection class? Why on earth are you doing boundary checks? Why aren't you using an object-oriented language with a standard library that does this for you? Why are you using a programming language that is barely above the level of assembly, or its successor that was invented by a Dane who until fairly recently wasn't aware that you could clip your nose hair?

    Zero indexing is really the least of your problem when writing code. If it's causing you problems, you're using the wrong tools.


  • ♿ (Parody)

    @dhromed said:

    @boomzilla said:
    But to me, programming is just a branch of applied mathematics.

    This just feels wrong, but I haven't though too deeply about it yet.

    I'll try to fill in some details.

    Ultimately, mathematics is about thinking abstractly. You take concepts and manipulate them and you look at the consequences of the properties of those concepts. Often, these properties and the consequences and relationships can be applied to something concrete.

    I tend to think about vector spaces (because this was really my first formal and explicit introduction to abstract reasoning in math). Perhaps the most common use is for a coordinate system. But there's nothing about a vector space that specifies that you use real numbers to represent a point in space. A vector space could be made of something weird like polynomials. But whether you're dealing with points in space or something more exotic, the fact that they're both vector spaces tell you a lot of things about how they operate and what you can do with them.

    Now, to get back to programming. You have a problem to solve, and some tools with which to solve it (objects and loops and control flow, etc). You apply your tools to the problem and solve it. But wait. Does that simply apply to your special case? Or is it a good, general solution? Now you have to (OK, you don't have to, but you probably should) explore the problem / solution space and see if your solution fails for some conceivable situation. Figuring out how to refactor things to have abstract classes that work for different subclasses (or interfaces) requires this sort of abstract thought.

    It's more obvious that writing SQL queries is doing math, as it's generally known that SQL and relational databases are based on set theory.

    Writing a formal proof is the extreme end of this line of thought, and it's usually impractical, sometimes impossible.



  • Throwing a ball is an exercise in applied mathematics. Whoop-de-do, who cares? Most things are. Arguably, the only things we do which are not are classed as 'creative work' or some such. All programming not complete drudge-work requires creativity.


    The purpose of programming languages is to remove as much of the drudge work as possible, leaving programmers free to concentrate on the creative side. (They're still very bad at that.) That is, the whole point of a programming language is to reduce the extent to which programming a computer is an exercise in applied mathematics.



  • @Severity One said:

    But why are you still using such archaic constructs like arrays? Why haven't you abstracted them away by using a string class or a collection class? Why on earth are you doing boundary checks? Why aren't you using an object-oriented language with a standard library that does this for you? Why are you using a programming language that is barely above the level of assembly, or its successor that was invented by a Dane who until fairly recently wasn't aware that you could clip your nose hair?

    You are aware that C# arrays are collections, right? Same with Python and even PHP.
    Arrays are only archaic if your language is archaic.


  • ♿ (Parody)

    @TDWTF123 said:

    Throwing a ball is an exercise in applied mathematics. Whoop-de-do, who cares? Most things are. Arguably, the only things we do which are not are classed as 'creative work' or some such. All programming not complete drudge-work requires creativity.

    Yes, programming is very creative work. So is doing mathematics (don't tell the precious flowers who like to call themselves artists). Of course, a big difference between throwing a ball and programming is that most of the mathematical work is being done consciously and explicitly.

    @TDWTF123 said:

    The purpose of programming languages is to remove as much of the drudge work as possible, leaving programmers free to concentrate on the creative side. (They're still very bad at that.) That is, the whole point of a programming language is to reduce the extent to which programming a computer is an exercise in applied mathematics.

    It can change the level of abstraction and make certain things easier, but it definitely doesn't remove the exercise in applied mathematics. Reusing a solution to a known problem is generally a good thing, and a good language and set of tools and libraries does this. But it does not fundamentally change what I said. You, the programmer, still need to be able to determine that it actually solves what you're trying to solve.

    tl;dr; TDWTF123 lives up to his username.


  • Trolleybus Mechanic

    @dhromed said:

    @lucas said:

    I didn't mean it that way, sorry.

    @morbiuswilters said:

    I'm sorry I reacted so harshly.

     What the hell is wrong with you people.*

     

    My Canadian is rubbing off on them.

    Which is weird, because normally I'm rubbing off my--- {PULLED FROM STAGE!}

     


  • BINNED

    @morbiuswilters said:

    If I ever make movies, I'm going to do product placements for companies that are totally neglected by big-budget movies. Hell, they don't even have to pay me: ...
    Do you have a kickstarter to support your endeavor?

    @blakeyrat said:

    Morbs == Bridget99?

    Someone check, have they ever both appeared at the same place at the same time?

    Actually Morbs == Bridget100, because he uses one-based indexing.

     



  • @Severity One said:

    For certain scenarios, zero-indexing makes perfect sense.

    That is not what is being discussed
    @Severity One said:
    To claim that one is superior to the other is like claiming that driving on one side of the road is clearly much better than driving on the other side.

    Again, that is not what we are talking about, do you fucking read?
    @Severity One said:
    Zero indexing is really the least of your problem when writing code.

    Uhh?
    @Severity One said:
    If it's causing you problems, you're using the wrong tools.

    Still not getting what ideal means, right? You people...
    @TDWTF123 said:
    reduce the extent to which programming a computer is an exercise in applied mathematics.
    @boomzilla said:
    doesn't remove the exercise in applied mathematics

    You know that reduce and remove are not the same right?@boomzilla said:
    it does not fundamentally change what I said

    It doesn't fundamentally change what he said either
    @boomzilla said:
    You, the programmer, still need to be able to determine that it actually solves what you're trying to solve.

    Yeah, but (to continue using Morbs analogy) you are using a car now instead of a burro


Log in to reply