Slashdot Mirror


Ask Slashdot: What Should Be the Attributes of an Ideal Programming Language If Computers Were Infinitely Fast?

An anonymous reader writes: Earlier today, Tim Sweeney, the founder of Epic Games, asked his Twitter followers an interesting question: "What are the attributes of an ideal programming language if computers were infinitely fast, and we designed for coding productivity only?" I could think of several things, the chief of which would be getting rid of the garbage collection. I was wondering what other things you folks would suggest?

14 of 326 comments (clear)

  1. I reject the question by SuperKendall · · Score: 4, Insightful

    This is stupid. Computer will never be "infinitely fast" or even close to it. There is always the possibility of ding computation in such a way as to drag down any system.

    There is always a compromise between programmer productivity, code maintainability, and system performance. It's not like you can realistically escape this triad so why pretend one leg does not exist? The computer programming industry has enough problems with magical thinking as it is.

    --
    "There is more worth loving than we have strength to love." - Brian Jay Stanley
    1. Re:I reject the question by Topwiz · · Score: 5, Insightful

      Also stupid is getting rid of garbage collection. If it happens automatically at infinite speed, removing it would have no effect on your coding productivity.

    2. Re:I reject the question by drew_kime · · Score: 3, Insightful

      There is always a compromise between programmer productivity, code maintainability, and system performance.

      But if you didn't have to worry about the performance, what would boost the other two?

      This is how great advances are made. Design for the world you wish you had, then figure out how to make it real.

      --
      Nope, no sig
    3. Re:I reject the question by soft_guy · · Score: 4, Funny

      If the computer is infinitely fast, maybe it also has infinite memory so instead of garbage collection you could just leak everything.

      --
      Avoid Missing Ball for High Score
    4. Re:I reject the question by ShanghaiBill · · Score: 5, Funny

      Also stupid is getting rid of garbage collection.

      Even having a "programming language" would be stupid. An infinitely fast computer could just run a NN that was infinitely wide and infinitely deep and it would already know exactly what you want before you even ask for it.

  2. Presumably... by sycodon · · Score: 4, Funny

    ...and infinitely fast computer would be self aware and wouldn't need instructions.

    --
    When Fascism comes to America, it will call itself Anti-Fascism, and tell you to give up your guns.
  3. Line numbers by aicrules · · Score: 3, Funny

    And GOTO, no GOSUB though, that's dumb

  4. So painfully obvious by American+AC+in+Paris · · Score: 4, Funny

    The language for an infinitely fast computer is called DUH.

    There are no keywords, operators, or logic structures; the entirety of the language is you typing "DUH" into the command line, then hitting ENTER.

    Upon pressing ENTER, you are presented with every possible program that could ever exist. All you need to do is select the one you want.

    --

    Obliteracy: Words with explosions

  5. That makes no sense... by famebait · · Score: 4, Insightful

    Getting rid of garbage collection? The feature whose whole point is boosting productivity at the cost of performance? In a setting where performance is explicitly not and productivity explicitly is? Can you spell "hangup"?

     

    --
    sudo ergo sum
    1. Re:That makes no sense... by beelsebob · · Score: 3, Insightful

      Yeh, I was thinking exactly this. The valid reasons for getting rid of garbage collection are along the lines of "it causes the application to end up using a shit ton of memory if you want it to be any way performant", and "you can't get sensible real time guarantees when your whole program might pause to execute GC".

      GC is exactly what you would want if you can guarantee that it executes in 0ms.

  6. code would look like shit by netsavior · · Score: 5, Funny

    I just imagine a world of cross-joins, extremely complicated in-string, lazy iteration and the like.

    If there were no penalty for pivoting data or iterating though sets, we would all gravitate toward the shittiest constructs imaginable...

    I mean hell, browsers are basically expected to be limitless now... HTML hello world used to look like "Hello World" Now it looks like
    "Hey javascript framework, load 500 modules, then ask the server what "Hello" is, then ask the server what "world" is, then style it all in whatever your 13 generated CSS files say it should be styled as, and tell google analytics that someone looked at my hello world page."

  7. Ask this question another way... by yodleboy · · Score: 4, Insightful

    What a pedantic bunch. Mental race conditions because of the word 'infinitely'. Anyway, let's ask this question a different way. "If modern hardware had been available at the time, how would you have designed languages like C, C++ and JAVA? What compromises were made that continue to impact those languages?"

  8. Re:Bad idea by ranton · · Score: 3, Informative

    Which is why the question is stupid. This is not how advancements are made, this is how people are lead down false paths with a dead end. Advancements are made by considering the impact of all important factors...

    This line of thinking is foolish. Advancements are made from all kids of approaches. If you want to think innovatively, you should probably be following paths you assume will lead to a dead end. If are aren't failing most of the time, you aren't thinking very innovatively.

    --
    -- All that is necessary for the triumph of evil is that good men do nothing. -- Edmund Burke
  9. If such existed. by jcochran · · Score: 3, Interesting

    I'd replace a programming language with more of an interview system.

    Basically, you'd tell the computer what problem or task you wish it to do. If it knew how to perform the task, then your job is complete. If it doesn't know, it would ask you to break the problem down into smaller sub tasks. You do so and for each sub task that the computer knows how to solve, it would do so. And for each sub task that it didn't know, it would recursively ask how to solve those sub tasks. As for a library, the computer would remember every task that it had been taught previously.

    There would still be programmers, but their job wouldn't be using any specific language, but instead describing how to solve problems or perform tasks.