Slashdot Mirror


The Swift Programming Language's Most Commonly Rejected Changes (github.com)

An anonymous reader writes: When Apple made its Swift programming language open source in early December, it opened the floodgates for suggestions and requests from developers. But the project's maintainers have their own ideas about how the language should evolve, so some suggestions are rejected. Now a list has been compiled of some commonly rejected proposals — it's an interesting window into the development of a language. Swift's developers don't want to replace Brace Syntax with Python-style indentation. They don't want to change boolean operators from && and || to 'and' and 'or'. They don't want to rewrite the Swift compiler in Swift. They don't want to change certain keywords like 'continue' from their C precedents. And they have no interest in removing semicolons.

18 of 339 comments (clear)

  1. People actually *like* Python whitespace? by Anonymous Coward · · Score: 5, Insightful

    Swift's developers don't want to replace Brace Syntax with Python-style indentation.

    I am appalled that enough people like the idea of significant whitespace in Python to actually ask for it as a feature.

    1. Re:People actually *like* Python whitespace? by mveloso · · Score: 5, Insightful

      Yeah, it's crazy. "Let's make some invisible character with a variable width significant."

    2. Re: People actually *like* Python whitespace? by BitZtream · · Score: 4, Insightful

      If you're using variable-width fonts for coding, you're doing it wrong.

      Also, in Python you indent the same way you should be doing anyway, just without the braces. Unless, of course, you're also doing indentation wrong.

      You're right, designing a language the fucks up based on different text editor default preferences makes the users that are complaining about that design decision wrong ...

      Please explain the advantage of white space sensitivity without sounding like a moron, go:

      --
      Persistent Volume manager for Kubernetes - https://github.com/dwimsey/openshift-pvmanager
    3. Re: People actually *like* Python whitespace? by Anonymous Coward · · Score: 5, Insightful

      because when i'm moving blocks around, whitespace changes turn my original program into a
      perfectly valid other program which has nothing to do with my original intent ..umm.wait...

    4. Re: People actually *like* Python whitespace? by Richard_at_work · · Score: 1, Insightful

      If you accidentally get whitespace stripped out for some reason, a language which doesnt rely on whitespace would still function as expected.

    5. Re: People actually *like* Python whitespace? by igloo-x · · Score: 2, Insightful

      If any part of your workflow unexpectedly strips out whitespace "for some reason", you've got bigger problems.

    6. Re: People actually *like* Python whitespace? by TheGratefulNet · · Score: 5, Insightful

      100% this!

      twice in the first few months of my learning python, I saw someone post code on a web forum that was impossible to know what the intent was; because the spacing was messed up (web forums do this all the time) and this, alone, proved to me how stupid this braceless style of space-sensitive indenting was.

      there are 2 things and they should NOT be combined! one is for the compiler to define what a block is. the other is documentation for humans, so we know what the block is.

      and yes, they do act differently. I can use white space to tell a HUMAN things but white space is quite a stupid way to talk to a computer.

      there's a lot I like about python, but guido is just plain wrong, here, and its frustrating that he won't admit it.

      --

      --
      "It is now safe to switch off your computer."
    7. Re:People actually *like* Python whitespace? by SuperKendall · · Score: 3, Insightful

      Why do you think people didn't hate that aspect of Makefiles the same reason. Especially bad there as it used to be the case it HAD to be a tab, not a space, and if your editor had been configured to convert tabs to spaces BOOM, dead Makefile.

      --
      "There is more worth loving than we have strength to love." - Brian Jay Stanley
  2. The moral of the story is.... by Anonymous Coward · · Score: 2, Insightful

    People want to change a language they know little/nothing about, to be similar to one they know very well. Who are these people that are too busy for semicolons, brackets, and the differences between "default:" and "case _:"? Take a lesson from the C# guys and do what's best for the entire community, not a bunch of neckbeards that are too good for a semicolon.

  3. They're called architects by BitZtream · · Score: 5, Insightful

    The people who have their own ideas about how it should evolved are called architects, and they have their own opinion so that the language has some sort of coherency and isn't a complete and utter mess, which is what results when you do design committee.

    Nice inflammatory summary though, no bias.

    Swift's developers don't want to replace Brace Syntax with Python-style indentation.

    No shit, they aren't retarded. Have you people not learned how stupid that is yet, how many retarded bugs do you have to have from the wrong spacing before you get it through your heads that it was a stupid fucking idea?

    They don't want to change boolean operators from && and || to 'and' and 'or'.

    No shit, they aren't idiots.

    They don't want to rewrite the Swift compiler in Swift.

    No shit, they aren't retarded. Other than proving something, WHY WOULD YOU? NO ONE DOES THIS unless they are just trying to swing their dick around. You write your languages in C with ASM for the places it makes sense. Unless you just like to make yourself need two compilers, one to compile your language so you can build your compiler in your language. Again, retarded.

    They don't want to change certain keywords like 'continue' from their C precedents.

    No shit, they aren't idiots.

    And they have no interest in removing semicolons.

    No shit, they aren't idiots.

    If you had half a clue, or simply had read the second sentence under most of those things I wouldn't be the one pointing out that you're not qualified to be talking about language enhancements. Hell, as stated, almost all of these things are changes for someones personal pet preference, not because its useful for anything.

    Swift IS INTENTIONALLY C like, intentionally. ALL of those requests are utterly stupid when your talking about a language that is intentionally like C/C++. If you want python ... USE PYTHON.

    --
    Persistent Volume manager for Kubernetes - https://github.com/dwimsey/openshift-pvmanager
    1. Re:They're called architects by bill_mcgonigle · · Score: 4, Insightful

      Thank you.

      If I _had_ to write python, for some reason, I'd probably write a little pre-compiler to take something maintainable that I'd write and output whitespace-tokenized python.

      I don't see why the people who want Swift to be Python don't just write one of these of their own. They'd learn why nobody wants to use whitespace as a token separator but after that presumably they'd be happy in their mad little world writing code the way they want and finally compiling it with the Apple compiler.

      In the perl community we never told somebody they were crazy if they wanted to code perl in some insane, dead, or fictional, language -- just write a module for it and don't bother us with your dysfunction. What manager at Apple decided it would be a good idea to take feedback from the peanut gallery?

      --
      My God, it's Full of Source!
      OUTSIDE_IP=$(dig +short my.ip @outsideip.net)
    2. Re:They're called architects by Kohath · · Score: 5, Insightful

      As a python programmer for 15 years, I've never had a bug caused by indentation changing the logic.

      "It's never been a problem for me" is not an argument in favor of anyone using it except you.

      "My plan/software/language has a zillion failure modes and hidden quirks, but I have them all memorized and they don't cause me problems. Let's roll this out to the general public."

  4. Python by Dan+East · · Score: 3, Insightful

    Swift's developers don't want to replace Brace Syntax with Python-style indentation.

    Good, it seems Swift's developers aren't idiots.

    --
    Better known as 318230.
    1. Re:Python by cdwiegand · · Score: 4, Insightful

      It's called copy and pasting code. I don't want to have to worry about going over every line ensuring the indentation carried over and either adding or removing it to every line. If the language is brace-based, I can hit Format Document and it adjusts it. Without a delimiter like that, you can't "Format Document".

      --
      . Define sqrt(x) as something really evil like (x / rand()), and bury it deep. Watch your coworkers go nuts.
  5. Re:Rust has made Swift obsolete already. by Anubis+IV · · Score: 5, Insightful

    [Rust] is the successor to Swift, and is an improvement in every way.

    By definition, how can Rust be a successor to Swift, when Swift wasn't even announced until 2 years after Rust's first release?

    I don't have a horse in this race, but statements like that one I quoted make it fairly evident that your comments carry a heavy slant. Moreover, given the pedigree of both Rust and Swift, it seems like a pretty bold claim to suggest that either one could be "an improvement in every way" over the other. That's made even more true by the fact that both are in active development with lots of changes happening and that both of them are borrowing the best ideas from the other.

    Choose the language that suits your task and platform best, whether that's Rust, Swift, Go, C++, Python, ASM, or something else entirely. Don't lock yourself down to one view for how all programming is supposed to work, since that's a quick path to obsolescence.

  6. Re:UTF-32 does not hold a grapheme cluster by PhrostyMcByte · · Score: 3, Insightful

    Because a single grapheme cluster in Unicode does not fit into a single UTF-32 code unit. If you don't understand the importance of grapheme clusters, try searching this essay for the word "cluster".

    To have the Character type represent a full grapheme cluster is... odd.

    99% of apps do nothing more than concatenate strings before passing them to some other API. These apps do not need to care about encoding or higher concepts like grapheme clusters. Asking every app to care about them is a major violation of the 80/20 rule.

  7. Wrong, I don't by SuperKendall · · Score: 5, Insightful

    Indentation is how you communicate block structure to a human reader. You're going to indent your code anyway

    No, I am not. That's why I have a computer, to do tedious things for me - like correctly indenting code... pretty much every function I write I can write loosely and then simply tell the editor to re-indent my code correctly.

    And that is why Python and Fortran are really the only languages I dislike, because they are the only ones (that I have used anyway) where the code CANNOT BE FORMATTED, because you have to know what code does in order to format it. In Fortran a character being present at a certain indent level meant that line was really a comment - oops!

    But in Python you are far worse off, because the wrong indent changes execution, changes what you meant the program to do. There's no way for a formatter to guess how the code SHOULD be structured, so it cannot be - ensuring a life of tedium and very probable mistakes for coders that follow after the first one.

    Python is the Wolverine of coding languages, the ultimate loner language.

    --
    "There is more worth loving than we have strength to love." - Brian Jay Stanley
  8. Re:That's the whole problem by igloo-x · · Score: 4, Insightful

    That inability to choose how to sculpt the visual aspect of code in Python is a monstrous shortcoming

    No, I think it's perfectly in-keeping with the rest of the zen of Python. Namely, there should be one (and preferably only one) obvious way to do something.

    There's no bickering about bracing style, or special snowflake developers applying their own misguided style on everything. It discourages people from writing deeply nested, difficult-to-follow logic in favour of simple, flat code.

    And when everybody sticks to the same conventions, it magically becomes a lot easier to read, understand, share, work on, learn from and contribute to everyone else's code.