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.

59 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 mveloso · · Score: 2

      Yeah, because whitespace never gets changed by stuff inadvertently.

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

    5. Re: People actually *like* Python whitespace? by TheRaven64 · · Score: 4, Interesting

      I'd object to it a lot less if it would either do the sensible thing and treat one tabulator as one indent level and erroring at parse time if a line contained any spaces before the first non-space character, or the slightly less sensible thing of treating n spaces as one indent level and erroring if the line contained any tabs before the first non-whitespace character. Allowing tabs and spaces to be mixed at the start of a line so that your code may look correct but is interpreted differently is annoying and is one of the many reasons why the only times I've ever written Python have been when I've fixed someone else's 'working' and shipped code. It's even worse than the semantics of else clauses on for loops for introducing subtle bugs.

      --
      I am TheRaven on Soylent News
    6. 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.

    7. Re: People actually *like* Python whitespace? by Anonymous Coward · · Score: 5, Informative

      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:

      The advantage of white space sensitivity is that it reduces the visual noise when producing and reading source code, and it helps build in a consistent look and feel for the language. For instance with F#, the designers are using white space sensitivity to remove a large amount of boiler plate syntax, which makes for a much more concise language. Conciseness is very important because you can fit complex data manipulations into small blocks of very readable code, which is the core of the design team's tenant of "Do more with less code".

      If you want to avoid, indentation errors you use the begin ... end blocks, but for most functions and types they are quite unnecessary. If you want to compress multiple assignments on a single line, use the let ... in ... syntax. F# also makes \t illegal when white space sensitive code is in use. With proper language design, white space sensitivity is a productivity advantage, and it does not sacrifice program readability.

      Does this mean that white space sensitivity is outright superior to visual token semantic block delimiters? No of course not, it does mean that there is a trade-off space for the feature within the language's design so some languages are designed better than others.

      There is also a trade-off space for using text editors instead of IDEs for programming. Sure you can stick to your favorite text editor, but you lose a large amount of useful information and features that IDEs that understand your programming language will give you, and since text editors are text editors and not program editors, they are completely correct when they display whitespace in semantically incorrect representations of the programming language.

      Some whitespace sensitive languages like Python have warts when you use a language unaware text editor because Python's design considerations did not standardize and enforce in the interpreter how to use whitespace from different text editors. However, if you are using a text editor for programming, you are in a sense "doing it wrong" for many programming languages. Maybe you are fine with your current language, but if you are going to try a different language you should use the appropriate tools for that language. Use the right tools for the job. You wouldn't try to cut a 2 by 4 plank with a jeweler's saw would you? If not, do not use a text editor that is Python agnostic to edit Python code. It is really that simple. If you are collaboratively creating Python programs with others, adopt PEP-8.

    8. Re:People actually *like* Python whitespace? by Anonymous Coward · · Score: 2, Interesting

      I do most work in python know, though for most of my life I used C and C++. Python and Emacs just lets me complete some quick and dirty tasks.

      If I had to do actual work in Python, it would be annoying. There have been many times when the indention protocol created errors that were difficult to fix. The brackets in C, the operators, make a lot of sense for professional code.

    9. Re: People actually *like* Python whitespace? by Anonymous Coward · · Score: 2, Interesting

      It has happened when you use --ignore-whitespaces when merging with git.
      Most of the code in the repository isn't Python and the Python code was part of something that wasn't run often, so we didn't notice the bad indentation from ignoreing the whitespace during the merge.

    10. 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."
    11. Re: People actually *like* Python whitespace? by tepples · · Score: 3, Informative

      In a language that uses braces (whether { ... } or begin ... end), a tool such as GNU indent restores readability to code whose leading space has been mangled by (say) your discussion software. This is not true of Python.

    12. 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
    13. Re:People actually *like* Python whitespace? by fahrbot-bot · · Score: 2

      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.

      Or cut/copy and paste in X Windows where tabs get converted into spaces.

      --
      It must have been something you assimilated. . . .
    14. Re:People actually *like* Python whitespace? by mrun4982 · · Score: 2

      Yea, I'm always amazed when I read/hear people who actually like Python's use of whitespace. It's by far my biggest complaint about the language and a big reason why I don't use it. I can't count the number of times somebody messed up whitespace, mixed tabs/spaces, etc in other code and those changes would have broken python code.

    15. Re: People actually *like* Python whitespace? by Ksevio · · Score: 2

      If you accidentally get curly brackets and semi-colons stripped out your C program probably won't work as expected though

    16. Re: People actually *like* Python whitespace? by NostalgiaForInfinity · · Score: 4, Funny

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

      if (flag)
          if (other_flag) do_this();
      else
          do_that();

    17. Re: People actually *like* Python whitespace? by cerberusss · · Score: 4, Informative

      For this reason, your editor should have a setting that visually displays tabs. Put the following line in your ~/.vimrc if you use that. It also shows trailing spaces.

      set listchars=tab:.\ ,trail:-

      Just posting to add this tip. I totally agree with you, that the above situation should be an error condition.

      --
      8 of 13 people found this answer helpful. Did you?
    18. Re:People actually *like* Python whitespace? by serviscope_minor · · Score: 2

      Or cut/copy and paste in X Windows where tabs get converted into spaces.

      No they don't. This is very simply not true. If you like, I could go into an arbitrarily detailed explanation of how the copy/paste system works in X11 (and DnD---they're the same mechanism and they also follow a reasonably sensible design). I can happily copy/paste text between my browser and editors all day without tabs and spaces getting mixed up.

      To repeat: There is absolutely *no* replacement of tabs with spaces in X11 itself. If your program is doing this and you don't like it, then find a program that doesn't. Please don't engage in the sport of blaming X11 for things that have nothing to do with it.

      In character cell renderers (e.g. xterm), which take a sequence of characters and render the results with significant interpretation, tabs often get rendered as a sequence of spaces. Some terminals (gnome-terminal does) do the bookkeeping required to remember which spaces came from a tab. To see why it's hard, imagine what the output should be for the sequence '\t\bHello, world'. Or a more complex example:
      '\tHello\r ' or '\tHello\x1b[A\r\x1b[C\x1b[C\x1b[C\x1b[B '.

      Clearly it's possible (I can think how to do it), but I doubt you can do it without overhead. gnome-terminal is one of the slowest, and I doubt that's a coincidence. But unless you regularly dump gigabytes of shit into the terminal and expect it to keep up, then it's perfectly servicable.

      --
      SJW n. One who posts facts.
    19. Re: People actually *like* Python whitespace? by Junta · · Score: 2

      The problem is that we can point and yell 'stupid' at whatever we want, but reality is that whitespace is mangled by a lot of things, so use of a language very sensitive to whitespace as a 'learning' language has some challenges. If I made a language that required vowels in the keywords to have umlauts, I could run around and say it's stupid that a lot of keyboards don't have keys for that built in, or I could admit that I made a choice that ignores that reality.

      That said, I've seen a lot of C/Java/etc code just get really really mangled because it still compiles and people get slack about whitespace because it doesn't matter. Then if you go in and indent it, some maintainers will get mad because they don't want 'ownership' of a line to change in annotation just because someone changed indentation. So there's some upside to being a pain in the ass about indentation to force the issue. Of course the same could be done with a style check in continuous integration, but that's extra work that a lot of folks would skip.

      --
      XML is like violence. If it doesn't solve the problem, use more.
    20. Re: People actually *like* Python whitespace? by Xyrus · · Score: 4, Informative

      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:

      The advantage of white space sensitivity is that it reduces the visual noise when producing and reading source code, and it helps build in a consistent look and feel for the language.

      Replace all punctuation in written English by varying white space demarcations. You know, like replace a comma by two spaces, a period by three, and exclamation point by four, etc. Would that improve the language, or make it painful to read, format, etc.

      Or how about something a little more relevant. Math has all kinds of logical demarcations. How about just replacing the parentheses with white space? Does that make it concise and easier to read?

      The number one source of errors I (and many others I have worked with) have come across in my years of dealing with Python have come from white space errors. Using white space as a significant demarcation instead of just a visual cue in a language (or just to make it pretty/readable) is beyond stupid, as literally every person and every editor have different preferences and ways of handling white space. Even changing fonts can screw it up.

      I can cut and paste C, C++, Java, etc. code from anywhere to anywhere and have it be interpreted in exactly same way as it was intended. You CAN'T do this with Python because you have no idea what white space characters you're actually grabbing, nor do you know how your particular editor/OS/etc. will attempt to format it.

      This should be obvious. Don't use an invisible and variable set of characters as logical delimiters.

      --
      ~X~
    21. Re: People actually *like* Python whitespace? by faffod · · Score: 3, Interesting

      [...] There's a perennial C logic bug where you take an if statement with a one-line body and add a second line without adding braces to denote a block; that never happens in Python.

      This is why Swift explicitly does not allow for one line statements without curly braces.

      more generally speaking, the language tries to avoid things that lead to dumb mistakes, no default fall through on switch case statements, explicitly requiring every case in a switch to be accounted for, etc. Anytime you imply meaning you introduce the potential for had to find bugs - especially later in the code development cycle when someone adds seemingly innocent changes.

    22. Re: People actually *like* Python whitespace? by TheGratefulNet · · Score: 4, Interesting

      also, 100% this.

      I could care less what human-A did for his indenting, at least on C code. if the code works and compiles, I can FIX his indentation and not ruin a thing; only make it more readable.

      there is no concept of a re-indent or auto-indent (such as found in emacs, for example) for python. you can't do it. because as I posted before about this: there are 2 things and they should never be mixed. one is a cue to the compiler what a block is, and the other is a cue to the HUMAN what a block is. and combining them is what guido fucked up, on.

      in C, I can do whatever wild indenting I want and a re-indent can fix it so I can read it again. I got very used to that. code was ROBUST in this way, and humans can mess with the look of it without doing harm. if I move a block from some inline code to a nested routine, it always ALWAYS works. not so in python. in fact, I'm not even sure HOW to move a block from one level of indent to another with perfect safety. its just STUPID!!!! stupid beyond belief to those of us who have been writing code for decades (I'm mid 50's and have been doing software eng work since my teens).

      part of me wants to add a feature to the language so I can add braces back again, then preproc the source to remove it as a phase before running the code. I know it won't be accepted by anyone in my company but it would restore sanity to my own python projects, at least.

      imagine a source code control system where check-out gets you those braces, you do your edits and each time you save the file to local git or svn (etc) it removes the bad chars and makes it 'real python' again so you can run it. that way you kind of have it both ways and editing, at least, is now more safe.

      --

      --
      "It is now safe to switch off your computer."
  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 techno-vampire · · Score: 2, Informative

      You write your languages in C with ASM...

      I can easily remember when any language that couldn't compile its own compiler was considered a toy language. Clearly, times have changed, possibly for the better, possibly not.

      --
      Good, inexpensive web hosting
    3. Re:They're called architects by Forever+Wondering · · Score: 2

      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.

      Been there, done that. In perl ;-)

      --
      Like a good neighbor, fsck is there ...
    4. Re:They're called architects by tepples · · Score: 2

      If you want python ... USE PYTHON.

      What should I use if I want all of Python except its slowness, GIL, and inability to detect typos until runtime when a NameError occurs?

    5. Re:They're called architects by dfghjk · · Score: 2

      "I've never had a bug caused by indentation changing the logic. Python code is usually succinct enough with small enough methods that things like that are immediately obvious."

      How would you know if you've never had one?

      It's sad when you contradict yourself in consecutive sentences. LOL

    6. Re:They're called architects by TheRaven64 · · Score: 4, Interesting

      The problem with this attitude is that compilers really should be written in a language that's good for writing compilers. This leaves you two choices:

      • Write your compiler in an inappropriate language.
      • Make your language good for writing compilers, at the expense of its intended uses.
      --
      I am TheRaven on Soylent News
    7. Re:They're called architects by Oligonicella · · Score: 2

      Which language was able to do it on the first pass?

    8. 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."

    9. Re:They're called architects by srijon · · Score: 2

      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.

      Actually there are loads of reasons to do this, and loads of languages do, including (from Wikipedia) compilers for BASIC, ALGOL, C, D, Pascal, PL/I, Factor, Haskell, Modula-2, Oberon, OCaml, Common Lisp, Scheme, Go, Java, Rust, Python, Scala, Nim, Eiffel, and more. One major reason for self-hosting the compiler is to support richer metaprogramming and tooling. Take a look at some of the posts on why Microsoft sunk years of effort into rewriting the C# compiler in C# (Roslyn). Ditto Perl 6 (Rakudo). The Swift folks recognize this, even if you don't. That is why this is the only one of the feature requests they say would be nice to do - they just have other priorities first. My bet is, down the line, as the language matures, they will reach a point where they are forced to rewrite the compiler in Swift.

      Nice inflammatory comment though, thoroughly researched.

    10. Re:They're called architects by jcr · · Score: 2

      I can easily remember when any language that couldn't compile its own compiler was considered a toy language.

      I remember that too, but it turns out that self-compilation is a parlor trick. We all have more important things to do than rewrite a compiler when one already exists that does the job.

      -jcr

      --
      The only title of honor that a tyrant can grant is "Enemy of the State."
    11. Re:They're called architects by NostalgiaForInfinity · · Score: 2

      How would you know if you've never had one?

      Unit tests.

  4. Eminently Practical by SuperKendall · · Score: 5, Interesting

    The list and the explanations of why things were rejected really does a great job of illustrating why I like Swift - because the people behind the design have a great amount of practicality tempering the desire to include every modern language feature. It makes Swift nicer to work in, and in the long run will make it a LOT nicer to maintain.

    --
    "There is more worth loving than we have strength to love." - Brian Jay Stanley
  5. 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.
    2. Re:Python by JazzHarper · · Score: 4, Interesting

      In 1976, Stuart Feldman, the author of make(3) at Bell Labs, realized too late that using tab as a significant character (to distinguish recipes from rules) in makefiles was a Bad Idea. In an interview, he admitted, "And then a few weeks later I had a user population of about a dozen, most of them friends, and I didn’t want to screw up my embedded base. The rest, sadly, is history."

  6. Yet 'optionals' somehow made it through by JoeyRox · · Score: 2

    What?.Were?.They?.Thinking

    1. Re:Yet 'optionals' somehow made it through by Kjella · · Score: 2

      What?.Were?.They?.Thinking

      That dereferencing a null pointer is a very common programming mistake? You only need the optional syntax if your objects can be null, if your objects can be null you better make handle that situation. But in many cases people rely on some other business logic to always make it not null, which works great until somebody changes something and the code goes boom. This isn't so much a feature for writing code as it is for maintaining code.

      --
      Live today, because you never know what tomorrow brings
  7. Re:Duh by JustBoo · · Score: 5, Interesting

    Don't like it? Fork it!

    Or don't use it. It is not as if we were short of programming languages.

    Perhaps you guys are not aware that Swift is a language to program Apple DuH-vices. iPhones, iPads etcetera. There are NOT a lot of choices of languages when it comes to that.

    But I am glad Apple is not buying the Script Kiddies Crap and 'dumbing' down the language. Python is the last language on Earth anyone should be modeling a professional language on. The Last.

  8. Channels that apply line.strip() for line in msg by tepples · · Score: 4, Interesting

    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.

    Several channels through which people discuss program code strip leading and trailing whitespace on each line. This transforms all programs passed through them into programs that are "doing indentation wrong." Yes, in theory, these channels are defective. Yet people work around these defects using tools such as GNU indent because a defective channel gets work done better than no channel at all.

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

  10. Re: French programming by rduke15 · · Score: 2

    You are kidding, but I remember actually programming in French.

    Well, I don't really remember much. But in the 80ies, there was a French database for Mac called 4..? (I only remember there was a 4 in it's short name). The programming was in French. At the time, I was quite new to computers and very young, and there was no Internet.

    I would hate a non-English programming language now, but at the time, I guess it was OK. Especially since the choice was that DB or Oracle.

    I'm glad it let me bypass Oracle at the time. And I'm furious I have to deal a bit with Oracle now, for an application created before PostgreSQL was available. Installing and configuring Oracle on Debian now feels like going back to DOS 2.11... No apt-get install, no SQL history, horrible formatting of output, ... but I digress...

    Yes, I'd (almost) rather program in French than deal with Oracle...

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

  12. Re:Duh by Anonymous Coward · · Score: 4, Informative

    Object Pascal and C++ and C# and JavaScript to name a few. You can program for iOS using any language which provides you with a toolchain to target iOS.

  13. 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
    1. Re:Wrong, I don't by dave1791 · · Score: 2

      If you are not going to bother to write code that is easy for humans to read, then I don't want to be one of the people who has to maintain it. I'll take easy to read code over clever any day of the week, because at some point in the future - be it days, weeks, months or years later - someone will have to go back through that code and try to understand what it does.

      Over the years, I've seen too much code where nobody understands how it works and won't touch it. Nine times out of ten, it was because of "obfuscation through laziness".

    2. Re:Wrong, I don't by Junta · · Score: 2

      FWIW, the same argument about editor would apply to the 'tedium' of braces. Many editors when contending with languages you hit '{' and enter and poof, proper indentation and close brace inserted.

      --
      XML is like violence. If it doesn't solve the problem, use more.
  14. Re: French programming by davesag · · Score: 2

    That'd be 4th Dimension. It was great. I built many a complex website back in the 1990s using 4D.

    --
    I used to have a better sig than this, but I got tired of it
  15. Re:Duh by interval1066 · · Score: 2

    C++ isn't a toy language.

    --
    Python: 'And then suddenly you have a language which says "we're all stuck with whatever the whiniest coder wants".'
  16. Re:UTF-32 does not hold a grapheme cluster by Hognoxious · · Score: 2

    "Because Unicode" is used to justify all manner of things.

    And it's always wrong.

    --
    Confucius say, "Find worm in apple - bad. Find half a worm - worse."
  17. 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.

  18. Re:Duh by Notabadguy · · Score: 2

    Ahahahaha....C++ and C# are toy languages, and you're going to call HIM a kiddo? Listen sonny, back in my day we had punch cards.

  19. Re:Appel is EVIL by greenfruitsalad · · Score: 2

    this joke only works in the US. the rest of the world has history and geography of the world (!= USA) in school. also it helps when history books don't have chapters beginning with "on the 8th day, Abe Lincoln rode his dinosaur to Philadelphia".

  20. Re:Optional is one of the best aspects of Swift by Pseudonym · · Score: 2

    I think the Hindley-Milner languages beat it. Haskell had Maybe types standard in the mid-90s (and non-standard several years before that). ML probably had them before Haskell did.

    --
    sub f{($f)=@_;print"$f(q{$f});";}f(q{sub f{($f)=@_;print"$f(q{$f});";}f});
  21. Re:That's the whole problem by serviscope_minor · · Score: 2

    It applies if you want to be able to understand other people's code more easily.

    I don't follow: wanting other people to understand your code is all fine and good, but that doesn't make one of two equally obvious ways more obvious. If you had to learn it from the community then it wasn't obvious in the first place.

    Doesn't mean you shouldn't follow the community, but the so-called zen of Python is massively oversold.

    The style guide written by the author of the language says "Use 4 spaces per indentation level."

    The style guide is not part of the language. Nothing about the language itself makes that obvious. I learned python when I needed to work on some python code someone else wrote. The first thing I didn't do was go and start reading up about the author of Python. I started hacking and occasionally referenced syntax guides.

    But the language itself does not make the choice obvious. Quite the opposite. Guido never tells you to use + to add integers because that IS obvious. He has to tell you to use 4 spaces because it isn't obvious.

    It's also in the beginner's guide of the official documentation

    Not everyone starts with the official beginners guide. In fact, I'd bet most experienced programmers don't because we don't need to be told what a for loop is. Once you know it's a pointer/reference based language with a few builtins, immutable strings and integers and a few other bits and bobs, you know 95% of python and the rest is mere syntax.

    Properly-formatted Python code should be limited to lines 79 characters in length.

    Because we're still on punched cards?

    It still makes 99.9% of the rest of the code easier to work with though, so it's worth it.

    Not going to argue with that. But I do dispute that the language makes it so. The language has tons of alternative ways to do almost everything. The community has style guides because the choice of which to use is not obvious from just the language.

    --
    SJW n. One who posts facts.