Slashdot Mirror


Four Years On, Developers Ponder The Real Purpose of Apple's Swift Programming Language (monkeydom.de)

Programming languages such as Lua, Objective-C, Erlang, and Ruby (on Rails) offer distinct features, but they are also riddled with certain well-documented drawbacks. However, writes respected critic Dominik Wagner, their origination and continued existence serves a purpose. In 2014, Apple introduced Swift programming language. It has been four years, but Wagner and many developers who have shared the blog post over the weekend, wonder what exactly is Swift trying to solve as they capture the struggle at least a portion of developers who are writing in Swift face today. Writes Wagner: Swift just wanted to be better, more modern, the future -- the one language to rule them all. A first red flag for anyone who ever tried to do a 2.0 rewrite of anything.

On top of that it chose to be opinionated about features of Objective-C, that many long time developers consider virtues, not problems: Adding compile time static dispatch, and making dynamic dispatch and message passing a second class citizen and introspection a non-feature. Define the convenience and elegance of nil-message passing only as a source of problems. Classify the implicit optionality of objects purely as a source of bugs. [...] It keeps defering the big wins to the future while it only offered a very labour intensive upgrade path. Without a steady revenue stream, many apps that would have just compiled fine if done in Objective-C, either can't take advantage of new features of the devices easily, or had to be taken out of the App Store alltogether, because upgrading would be to costly. If you are working in the indie dev-scene, you probably know one of those stories as well. And while this is supposed to be over now, this damage has been done and is real.

On top of all of this, there is that great tension with the existing Apple framework ecosystem. While Apple did a great job on exposing Cocoa/Foundation as graspable into Swift as they could, there is still great tension in the way Swift wants to see the world, and the design paradigms that created the existing frameworks. That tension is not resolved yet, and since it is a design conflict, essentially can't be resolved. Just mitigated. From old foundational design patterns of Cocoa, like delegation, data sources, flat class hierarchies, over to the way the collection classes work, and how forgiving the API in general should be. If you work in that world you are constantly torn between doing things the Swift/standard-library way, or the Cocoa way and bridging in-between. To make matters worse there are a lot of concepts that don't even have a good equivalent. This, for me at least, generates an almost unbearable mental load.

262 comments

  1. Walled garden by LynnwoodRooster · · Score: 2, Insightful

    They already have one for consumers, this just makes it easier to put one up for developers.

    --
    Browsing at +1 - no ACs, I ignore their posts. So refreshing!
    1. Re: Walled garden by Octorian · · Score: 2, Insightful

      If Swift is to be considered a 'walled garden', then so should just about every other programming language out there.

      No, just programming languages that are primarily used by a single platform, with very little real use outside of that platform, where that platform is controlled by a vendor big enough to encourage people to put up with it. In the present day, Objective-C might actually fit that definition too. Of course C# is probably an even better example of this.

    2. Re: Walled garden by Dog-Cow · · Score: 1

      Apple fully supports the Linux port, and there is an unofficial Windows port. That covers every server and desktop that matters these days. (The Windows port still needs a lot of work.)

    3. Re:Walled garden by mwvdlee · · Score: 1, Troll

      This.

      The purpose of Swift is to make it more expensive to support multiple platforms.

      --
      Slashdot social media options: AIM, ICQ, Yahoo, Jabber and Mobile Text. Why no MySpace?
    4. Re:Walled garden by Anonymous Coward · · Score: 0

      Swift is no more of a walled garden than Objective C was.

    5. Re:Walled garden by gweihir · · Score: 0

      Indeed. Sell it as the next greatest thing that everybody must use and then, when everybody not too smart is on it, change is so that there is no way out, support on other platforms gets very difficult and independent implementation become non-viable. Pretty classical attack.

      --
      Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
    6. Re: Walled garden by perlstar · · Score: 1

      VS, .NetCore, and c# are all available for Linux.

    7. Re:Walled garden by Austerity+Empowers · · Score: 2

      Near as I can tell this is one of two purposes. The other purpose is that many "app" developers are not professional programmers.

      Anyway, the lack of support for C/C++ is going to hurt them in the long run, probably not even that long run. For example if they want to improve Metal adoption, they probably need to get C support out there soonest.

      There are plenty of languages out there that address one concern or another that various types of programmers have or don't want to deal with, and C/C++ support ensures that any gaps in that language can be filled with a compiled in module they can almost forget about. Swift isn't doing anything really that useful except being not-C++.

      I don't want C# or Swift, I have better ways to waste my time.

    8. Re: Walled garden by sodul · · Score: 4, Insightful

      Are you saying I can take a Swift app designed for macOS or iOS and recompile on Linux with almost no effort? If most of the frameworks are not ported as well it is not really a viable solution. For C# there is Mono and even this is not getting a huge traction beyond a few projects.

    9. Re:Walled garden by angel'o'sphere · · Score: 1

      For example if they want to improve Metal adoption, they probably need to get C support out there soonest.
      I doubt you find many macOS or iOS developers that are fluent in C - or willing to use C. Why would anyone even think about C for a desktop OS or writing Apps is beyond me ... why not write straight in assembler?

      --
      Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
    10. Re: Walled garden by Anonymous Coward · · Score: 2, Insightful

      Is Linux a 'walled garden' since we can't take software using Linux-specific APIs like cgroups and ALSA and evdev and easily compile/run them on OSes like macOS and Windows?

    11. Re:Walled garden by Austerity+Empowers · · Score: 3, Insightful

      Most programmers aren't going to write directly against a graphics API either, but those APIs are typically consumed by big engines that are written in C/C++, for good reasons, and it is hard to write swift that calls C/C++ and vice versa.

    12. Re:Walled garden by Anonymous Coward · · Score: 0

      You are one of those data science idiots fresh out of python school, aren't you?
      Grow the fuck up.

    13. Re:Walled garden by Anonymous Coward · · Score: 0

      Objective-C is still a better language than Swift.

    14. Re: Walled garden by ImdatS · · Score: 3, Insightful

      Actually, you should separate the language from (OS-specific) libraries.
      For example, we are currently developing a large-scale software consisting of various components.
      Some servers are written in GoLang and some others are written in Swift.

      The beauty is that the part that is written in Swift can be developed & tested on MacOS directly in Xcode. This server-component is written by a former iOS/macOS-developer, who knows Swift very well.

      The runtime environment is Linux. So, we develop on Linux AND macOS (depending on what each developer knows best), in Swift AND GoLang and since all server components communicate using REST-API with each other, nobody really cares which language is used - as long as it works.

      Our experience so far with developing server (or: systems-)software with Swift (4.x) is really great. The turnaround times are very short since the developer in question already knew all the Swift-quirks.

      Of course, we don't use any macOS libraries at all, only those that come with standard Swift for Linux (plus some FOSS libraries).

      When the whole system is up and running, we will evaluate both languages on performance (development- & runtime), cost, maintainability and decide whether we continue doing it in both languages or decide for one or the other.

      So, I don't really see a walled-garden here...

    15. Re:Walled garden by Anonymous Coward · · Score: 0

      Good thing Metal has Objective C bindings then.

    16. Re: Walled garden by TheFakeTimCook · · Score: 4, Insightful

      Is Linux a 'walled garden' since we can't take software using Linux-specific APIs like cgroups and ALSA and evdev and easily compile/run them on OSes like macOS and Windows?

      Exactly this.

      So many Slashtards want to assign the epithet "Walled Garden" to ANYTHING Apple does, regardless of how much they Open Source it, or make it as platform-agnostic as possible.

      It's just ridiculous.

    17. Re: Walled garden by Anonymous Coward · · Score: 0

      Swift is kind of mediocre and annoying, but Rust fucking SUCKS!

    18. Re:Walled garden by TheFakeTimCook · · Score: 4, Informative

      Indeed. Sell it as the next greatest thing that everybody must use and then, when everybody not too smart is on it, change is so that there is no way out, support on other platforms gets very difficult and independent implementation become non-viable. Pretty classical attack.

      And name me other Apple Open Source projects where they have employed your paranoid business plan.

      Bonjour: Open Source, and certainly not Apple-Specific.

      launchd: Open Source, and certainly not Apple-Specific.

      GCD: Open Source, and certainly not Apple-Specific.

      Webkit: Open Source, and certainly not Apple-Specific.

      Swift: Open Source, and certainly not Apple-Specific.

      OpenCL: Open Source, and certainly not Apple-Specific. (In fact, now even Deprecated by Apple).

      CUPS: Acquired by Apple, and continues as non-Apple Specific Open Source.

      LLVM: Open Source, and certainly not Apple-Specific.

      Clang: Not Apple owned, but Apple is the major contributor to the Open Source Project.

      ResearchKit, CareKit. Open Source iOS Projects that are apparently not Apple-Specific.

      Darwin: Open Source, and somewhat non Apple-Specific. ...and many more.

    19. Re:Walled garden by TheFakeTimCook · · Score: 1

      Objective-C is still a better language than Swift.

      I think even Apple would agree at this time.

      But since Objective-C was born out of Smalltalk about 1981, lets see how good Swift is in about 40 years...

    20. Re:Walled garden by Anonymous Coward · · Score: 0

      Academic goofs use python, people who work with real capital on Wall Street (which is to say in Connecticut) use Java with shit like Spark and Hadoop.

    21. Re: Walled garden by Anonymous Coward · · Score: 0

      Mod up.

    22. Re: Walled garden by Anonymous Coward · · Score: 0

      It has a Linux and windows implementation and it is open source.

      I don't get you people. It's like you live in opposite land when it comes to apple.

      Don't get me wrong, Apple Does some shady shit, but I haven't seen it with swift yet.

    23. Re:Walled garden by rfengineer · · Score: 1

      "The other purpose is that many "app" developers are not professional programmers." I think this is the true reason. The next great "app" will come from someone who wouldn't know "big O" notation if they stepped on it. They won't care. They'll only want to create an app that addresses some issue unique to their industry/hobby. All the peripheral marketing hoopla from Apple seems to support this point of view. Once they have their app up (however broken) and are deriving a revenue stream, they can hire software minions for mice nuts to repair the problems.

    24. Re:Walled garden by gweihir · · Score: 0, Troll

      You have no argument, so you rely on a list of irrelevant things? This is not an exercise in confusion...

      --
      Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
    25. Re: Walled garden by Anonymous Coward · · Score: 0

      C# runs on Linux, MAC, iOS, Android, and more.

    26. Re:Walled garden by angel'o'sphere · · Score: 2

      C++ objects and Swirft objects don't interact seamlessly, however writing the relevant glue code is easy to google, e.g. http://www.swiftprogrammer.inf...

      For C-APIs you don't need glue code, only Swift function definitions: https://theswiftdev.com/2018/0...

      So what exactly is your point?

      --
      Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
    27. Re: Walled garden by Anonymous Coward · · Score: 0

      You could put those things on Windows or anywhere else.

    28. Re: Walled garden by Anonymous Coward · · Score: 0

      What will become of it sans corporate sponsorship? It is difficult to take a company that changes direction as frequently as Apple does seriously.

    29. Re:Walled garden by Anonymous Coward · · Score: 0

      Blah Blah Blah

      Worship apple at all costs

    30. Re: Walled garden by Anonymous Coward · · Score: 0

      Then there are the FOSS retards. Iâ(TM)ve been going through the ballache of trying to build GNU gettext on Windows today. I have a new appreciation for CMake, which just works in comparison to autoconf, which simply doesnâ(TM)t work. When I see filed like âoeREADME.woe32â, I know Iâ(TM)m running in to a load of political bollocks. Give me Appleâ(TM)s walled garden over GNU any day thanks.

    31. Re: Walled garden by Anonymous Coward · · Score: 0

      Nsa uses python, so does google for for a large number of things.

    32. Re:Walled garden by Dog-Cow · · Score: 1

      You haven't made any arguments, either. Only some ridiculous accusations for which no evidence exists.

    33. Re:Walled garden by TheRaven64 · · Score: 4, Interesting

      Apple really likes to play up Objective-C as the competitor to Swift, but the elephant in the room is Objective-C++, which (since C++11) is a far better language than either. You can have the late binding of Objective-C objects and the compile-time specialisation of C++ templates and switch between them easily. With ARC, you can store Objective-C object pointers inside C++ collections and have the memory management work properly (which was the biggest irritation of pre-ARC Objective-C++). If you use C++ objects as instance variables in Objective-C, then their destructors run automatically after -dealloc, so the memory management works both ways (you can, for example, use C++11 unique_ptr or shared_ptr to manage ownership of non-Objective-C resources by Objective-C++ objects). Most importantly, it has a trivial way of using C++ libraries, something that Swift can achieve only if you wrap them in [Objective-]C.

      --
      I am TheRaven on Soylent News
    34. Re:Walled garden by Dog-Cow · · Score: 1

      What lack of C/C++ support? Swift can't bridge to C++, but it does bridge nicely to C. And all platforms which Swift supports also support C and C++. Do you have an actual argument, or are you just spouting stuff that looks technical, but makes no sense?

    35. Re:Walled garden by Dog-Cow · · Score: 1

      Calling C is trivial in Swift. Grouping C and C++ together in this respect just makes you look like an idiot.

    36. Re: Walled garden by Dog-Cow · · Score: 1

      Apple has supported Objective-C since 2000, or so (I'm too lazy to check when exactly OS X 10.0 was released).

    37. Re: Walled garden by Anonymous Coward · · Score: 0

      No, but it's not Swift that's causing that, it's the fact that the macOS / iOS application probably uses Cocoa / Cocoa Touch, which is not ported to Linux. The same is true if you write your code in Objective-C, or even plain C (yes, it's possible). Is the C language now a dastardly Apple plot too?

    38. Re: Walled garden by cshark · · Score: 2

      Are you saying I can take a Swift app designed for macOS or iOS and recompile on Linux with almost no effort? If most of the frameworks are not ported as well it is not really a viable solution. For C# there is Mono and even this is not getting a huge traction beyond a few projects.

      Not no effort. Swift is available for Linux. But it's not the same. The standard library is different. No such thing as Cocoa on Linux. This is one language where platform is definitely important.

      --

      This signature has Super Cow Powers

    39. Re:Walled garden by Austerity+Empowers · · Score: 2

      This is the opposite of what is needed. If you have your favorite high level graphics engine (not necessarily Unity or Unreal, if you're a small indy), it's probably in C++, sometimes plain old C. The good ones have abstracted the underlying OpenGL/DirectX interaction, so if you want to support Metal, which you really might wish to do, you have to figure out how to call it. It's designed to be called from Swift. You're not going to rewrite your entire engine in Swift just to support OS X, which isn't the world's preferred gaming platform.

      You can write a wrapper around the objective-C bindings and get some very iffy performance. Then maybe someone follows your advice and writes their swift code around your C++ engine for some extra performance loss.

      It's not a great solution, and while it may help coddle some app developers who don't understand how computers really work, the fact is computers have not magically changed how they work and all that is being done here is adding a layer of presumptive code that you may or may not really need.

    40. Re: Walled garden by Anonymous Coward · · Score: 0

      The compiler is a thing and the language is another, think of it as .net or JAVA, they have their standard language but you have to separate some portions of code for each platform, also there is no guarantee that the code will be executed equally in each platform.

    41. Re:Walled garden by Anonymous Coward · · Score: 0

      Swift is open source and IBM uses it for server side programming.

    42. Re: Walled garden by Desler · · Score: 1

      No, just like you can’t take a C application written to Win32 and compile it on Linux or MacOS. But that in no way makes C a “walled garden.”

    43. Re: Walled garden by Anonymous Coward · · Score: 0

      Bridging is an EXTRA layer of indirection, C++ differs from C. You stupid ifagget.

    44. Re:Walled garden by Darinbob · · Score: 1

      Because assembler is an order of magnitude harder to write in than C, your one week task will take a month instead, and trying to fix someone else's assembler module will take many months deciphering it. Assembler is also not portable. C is extremely portable precisely because it is much more portable and has very good optimization opportunities. You will find many OSX developers who know C fluently, it's what OSX is written in.

    45. Re: Walled garden by Anonymous Coward · · Score: 0

      So does swift, idiot. Cocoa is like .NET Framework which is not available on every platforms C# is supported. DUH!

    46. Re: Walled garden by Anonymous Coward · · Score: 0

      So you argue that is no support? dee I see kay H ee A dee

    47. Re: Walled garden by Anonymous Coward · · Score: 0

      So does swift, idiot. Cocoa is like .NET Framework which is not available on every platforms C# is supported. DUH

    48. Re:Walled garden by angel'o'sphere · · Score: 1

      OS X, as the kernel, might be mainly written in C.
      However the rest is C++.

      The same argument C versus Assembler holds for C.

      Why would a sane person write in C when it can use C++ and be 4 - 5 times more productive???

      Thank you for not grasping my point, when I asked about "why not assembly" ?

      You will find many OSX developers who know C fluently
      Never met one in my life, and I know Mac OS, OS X and macOS developers in the hundreds. Perhaps you have a different definition of "fluent" though. I talk about people who not only "can write C" but are fluent in it as in a mother language. Everyone like that is using C++ ... why the funk would I drive a Beatle when i can choose between a jaguar E-Type and a Porsche instead?

      --
      Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
    49. Re:Walled garden by angel'o'sphere · · Score: 1

      There is no performance loss when I call a C/C++ game engine from Swift. Why would there? The game engine does not know "uh1!!! it is not C++ calling me!!! uhh, now I have to be slower, because I hate being called by Swift code"

      I guess you are not a programmer, or you would know such things.

      Same for Metal, the engine does not know if I call it from C++ instead of Swift ...

      --
      Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
    50. Re:Walled garden by Pseudonym · · Score: 1

      why the funk would I drive a Beatle when i can choose between a jaguar E-Type and a Porsche instead?

      A VW Beetle gets twice the mileage of an E type, and probably costs a shitload less to insure and maintain, too. It can't go as fast but you're bound by speed limits most of the time anyway.

      Software isn't the only business where people use more expensive solutions just because they look cooler.

      --
      sub f{($f)=@_;print"$f(q{$f});";}f(q{sub f{($f)=@_;print"$f(q{$f});";}f});
    51. Re: Walled garden by rthille · · Score: 1

      Apple acquired NeXT on December 20, 1996, so you could say it's been from then since they continued to support NeXT products for a while at least.

      --
      Awesome furniture, accessories and cabinetry in Santa Rosa, CA: http://humanity-home.com/
    52. Re:Walled garden by Austerity+Empowers · · Score: 1

      Now you're just trolling. First you insist on an argument about calling C/C++ from Swift, which is the least interesting topic, performance wise. Step one is to get your C or C++ based engine to call Apple's libraries, either via swift or objective c. That accomplished you can then call C/C++ from your preferred language, whatever it is. I will not assume swift because outside of iOS/OSX I just don't see the interest. I see a lot of python calling C these days.

      I agree with you to the extent that calling C from just about anything does not need to bring on overhead. C is the most minimal option out there short of writing assembly code, and thus calling libraries with C calling conventions would not invoke any overhead that isn't brought on by the language you call it from. C++ is worse, and can be quite not-ideal if you designed your class hierarchy poorly, but again is as minimal as object orientation gets. What you choose to run from that part is your business, and I'm not going to tell you it's right or wrong.

      And second, you're wrong. Absolutely there is a performance hit if, to call a module in another language, with different calling conventions, more code is injected. And that happens calling objective C where, for example, method calls generate an objc_msgSend (or variant); a function which stands in place of the desired function. Possibly not a big deal depending on your object hierarchy, or when making very infrequent high level calls, it absolutely is important in a performance critical inner loop. Objective C does not have to "dislike" being called by C, it is simply less efficient. That necessarily has to be built into your binary when calling obj-c libraries.

      Having learned swift just enough to see how objects and methods work, there is no question that if I call it from C or C++, there's going to be substantial overhead to obey the calling convention that swift must need to do what it does in all but the most trivial case of a static function with no arguments. I don't think anyone has data to measure the performance overhead here since there is not yet any easy way to do this. My argument is simply this: why even have this conversation? It's virtually certain that the Metal libraries were written in C, that's what systems programmers continue to use precisely because it is low level. So expose the API as standard C. Tie a nice bow around it in ObjectiveC/Swift for those devoted to those languages, and let's stop arguing about it.

    53. Re:Walled garden by Anonymous Coward · · Score: 0

      You are an idiot.Try and understand the flow of time, you dimwit. These are things they have done in the past. We're talking about now. Take this:

      >OpenCL: Open Source, and certainly not Apple-Specific. (In fact, now even Deprecated by Apple).

      They tried it. It didn't take. Now they've turned anti-standards and are pushing their proprietary libraries like Metal. "In fact, now even Deprecated by Apple". Fuuuuuuuck

    54. Re: Walled garden by Tough+Love · · Score: 1

      Well, the problem is, Apple does build real walls around its gardens, these are no accident. You are only quibbling over which of Apple's walls are real.

      --
      When all you have is a hammer, every problem starts to look like a thumb.
    55. Re: Walled garden by Tough+Love · · Score: 1

      The turnaround times are very short since the developer in question already knew all the Swift-quirks.

      What if that developer gets hit by a bus or gets a higher offer elsewhere?

      --
      When all you have is a hammer, every problem starts to look like a thumb.
    56. Re: Walled garden by Anonymous Coward · · Score: 0

      C# runs on Linux, MAC, iOS, Android, and more.

      This is a bullshit argument, much like the one claiming that Swift isn't a form of walled garden.

      Example:

      I maintain a C# windows app that was written by others using all the latest .NET toys.

      It has a XAML/WPF based ui. This code will not compile on Linux since there's no WPF on Linux.

      A similar comment regarding the swift ui code cropped up in this thread: It won't compile for other platforms because there's no Cocoa API.

      These are proprietary frameworks that have only partially been open sourced to give the fanboys something to bleat about, and give the vendor some competitive advantage (for MS, that means C# web devs can remain locked in to the MS ecosystem and run their web apps on Linux servers)

      Functionally, they're useless for cross platform development for a large portion of existing code

      The vendors(MS, Apple, etc) could have done something about this, but they'd prefer to lose market share to the likes of Electron.js

      posting anon because I used mod points here

    57. Re:Walled garden by Anonymous Coward · · Score: 1

      WebKit's HTML and JavaScript code was originally a fork of the KHTML and KJS libraries from KDE,
      https://web.archive.org/web/20150209072938/http://lists.kde.org/?m=104197092318639

    58. Re: Walled garden by TheFakeTimCook · · Score: 1

      Well, the problem is, Apple does build real walls around its gardens, these are no accident. You are only quibbling over which of Apple's walls are real.

      Um, isn't that kind of the point?

    59. Re: Walled garden by Anonymous Coward · · Score: 0

      Correct, please mod up.

    60. Re: Walled garden by Anonymous Coward · · Score: 0

      First time in 10 years my printer didn't work after fresh installation of Linux was after Apple got CUPS. It took several years to get back to the point of not needing fiddling after installation.
      It still needs the printer to be started from time to time.

      Apple fscked things up for everyone except Apple users.

      aRTee

    61. Re:Walled garden by angel'o'sphere · · Score: 1

      And second, you're wrong. Absolutely there is a performance hit if, to call a module in another language, with different calling conventions, more code is injected.
      No, there is not. For the caller it is completely irrelevant how the calling convention is. It does not matter if I push arguments from left to right or from right to left on the stack and then do a jump subroutine to the routine.

      Calling between different languages is only expensive if one is running in an Interpreter/VM and the other is nativ AND you want to have an option to call back.

      I see no reason why calling C++ from Swift or other way around should have any performance issues, but I never dug into it, if you have examples I'm eager to see them.

      It's virtually certain that the Metal libraries were written in C For you it is certain, because you seem to love C :P

      Metal is mainly written in a language called "Metal Shader Language" which is based on C++ 14: https://developer.apple.com/do...

      --
      Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
    62. Re:Walled garden by angel'o'sphere · · Score: 1

      The car analogy was about speed, which was obvious.
      And in this case: speed of development.

      If you can solve a programming problem in a low level language faster than in a high level language, the problem is either trivial our your skills in the high level language are not on par with your skills in the low level language.

      No need to get into coolness ... C was cool 1985 ... since we have C++98 C is no longer cool, it is outdated and only recommended for niches and for places where you have no C++ compiler or have good reasons, like space on the device, not to use it. But then again: you can program C++ 17 in a way that you nearly have no space overhead versus C anyway.

      --
      Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
    63. Re:Walled garden by Pseudonym · · Score: 1

      The car analogy was about speed, which was obvious.
      And in this case: speed of development.

      My response, in case it wasn't obvious, is that everything in this business is a tradeoff.

      Yes, even C vs C++; a library with a C API is always more useful than one with a C++ API.

      --
      sub f{($f)=@_;print"$f(q{$f});";}f(q{sub f{($f)=@_;print"$f(q{$f});";}f});
    64. Re:Walled garden by angel'o'sphere · · Score: 1

      Yes, even C vs C++; a library with a C API is always more useful than one with a C++ API.
      And why would that be the case? Because you "hate oo"? Show me a java library that has a C-API ... your claim makes no sense. (Or a Python library or a LUA or a Scala or a Lisp one ...)

      --
      Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
    65. Re:Walled garden by Pseudonym · · Score: 1

      Find me a C++ library that can be called from Java directly without wrapping it in a layer of C.

      Most languages with a foreign function interface can call C natively. Fewer can call C++ natively.

      --
      sub f{($f)=@_;print"$f(q{$f});";}f(q{sub f{($f)=@_;print"$f(q{$f});";}f});
    66. Re:Walled garden by angel'o'sphere · · Score: 1

      That was not the point, or was it?
      Anyway, if your API is C, it is obviously not object oriented. So it is pointless most of the time anyway.
      If you really need to call C++ from Java, there are old IBM projects, that generate the glue code for you (You can even subclass Java from C++ and other way around)
      In modern times you probably would use https://code.google.com/archiv... or other JNA based approaches.

      --
      Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
    67. Re:Walled garden by Pseudonym · · Score: 1

      That was not the point, or was it?

      That was my point. A C API is more reusable.

      Anyway, if your API is C, it is obviously not object oriented.

      Which means an even lower impedance mismatch when trying to use it with a language which has a different object model, as anyone who has mixed C++ and Obj-C can tell you.

      LLVM features a hand-curated C binding for precisely this reason.

      --
      sub f{($f)=@_;print"$f(q{$f});";}f(q{sub f{($f)=@_;print"$f(q{$f});";}f});
    68. Re:Walled garden by angel'o'sphere · · Score: 1

      Ah, you want to say, if the API is in C, more languages can bind to it.
      That does not make it 'mode reuseable' :)

      If you want to mix Obj-C with C++, you simply should use the Obj-C++ compiler.

      --
      Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
  2. Real purpose: lock-in by b0s0z0ku · · Score: 3, Insightful

    Apps written in different languages are hard to compile across platforms.

    1. Re:Real purpose: lock-in by Anonymous Coward · · Score: 0

      Aside from that, language interop is one of the things that is being worked on. Swift 4.2 adds dynamic member lookup (https://github.com/apple/swift-evolution/blob/master/proposals/0195-dynamic-member-lookup.md), which is useful for interoperating with scripting languages. Last year a protocol buffer implementation was released, which enables writing swift based gRPC clients and servers. The swift calling convention is in LLVM, and once the ABI is finalized, directly calling and passing data to swift functions would become much easier from many other compiled languages.

      The truth is that it is most other languages really suck at cross language interoperation. Rust has been around for a long while now and still has not settled on an ABI, so you can't effectively use Rust code in other languages without FFI. Same goes for Go, C#, C++ on certain platforms, the various lisp implementations (maybe CLASP will be different), anything that runs on the JVM with respect to anything that doesn't, etc. Outside of a few languages like Fortran and D, we're stuck with FFI, C-APIs, or just setting up interpreter/vm state and having them execute code.

    2. Re:Real purpose: lock-in by angel'o'sphere · · Score: 1

      The problems are not the languages but the UI Frameworks (and Filesystem and Network Access).

      --
      Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
    3. Re:Real purpose: lock-in by ausekilis · · Score: 1

      Mac OS is based on one of the BSD's... it should just be POSIX-compliant. That's WHY we have standards.

    4. Re: Real purpose: lock-in by reanjr · · Score: 1

      ABIs are largely irrelevant with open source, so languages without large communities of developers working inside walled gardens don't prioritize that.

    5. Re:Real purpose: lock-in by Anonymous Coward · · Score: 1

      And how does Swift differ from Objective C in that regard? Both are open language specifications, with open source reference implementations.

      Lock-in has nothing to do with it - every single platform is "locked in" due to legacy baggage. Apple chose to continue the path they chose in 1996 of using NeXTSTEP/OpenStep, and it remains the core of their OS. Microsoft has chosen to stick with their own code/legacy: The Windows platform.

      Google was in an interesting place where it could have chosen to use existing and open platforms (OpenStep/GNUStep, Moblin, and Maemo/MeeGo). There was a clear path where Google could move forward with existing projects and make a de-facto standard. Maemo (later MeeGo) was built on already existing cross-platform projects including GNOME, Qt, and Debian Linux.

      Google didn't choose that path, and instead bought Android, Inc, and continued to develop that platform. Much like Apple and Microsoft, Google chose to support a platform which they can control by fiat.

    6. Re: Real purpose: lock-in by Dog-Cow · · Score: 1

      You can open source iOS apps, and you have closed source on Windows and Linux. The two are orthogonal. And the benefits of ABI come with the libraries. Specifically, the ability to ship standard or common libraries with the OS, and expect that apps will be able to use them. Even glibc relies on ABI compatibility.

    7. Re:Real purpose: lock-in by Desler · · Score: 1

      POSIX doesn’t define a UI toolkit. So your post is essentially meaningless.

    8. Re: Real purpose: lock-in by Darinbob · · Score: 1

      ABIs are very important if you're going to be portable, or you want to interact with third party tools like debuggers and linkers, or link to third party libraries.

    9. Re: Real purpose: lock-in by reanjr · · Score: 1

      But if you have the source code, portability is as easy as recompling. You don't need an ABI for that. The other benefits of an ABI you mentioned are not compelling enough for many language developers. Swift needs it because it operates in a closed source world with Objective-C. It's common to need to interact with systems level code in C, but it's rare to have to interact that deeply with - say - a web server written in Python. So unless you are developing a systems language, an ABI is not high on the priority scale. Most likely the language already has various mechanisms to accomplish the same thing within the stack, and interop with other languages is usually already well supported by web services or IPC or some such thing.

    10. Re: Real purpose: lock-in by reanjr · · Score: 1

      Sure, but that systems level code can be written in whatever language you want, like C. Systems code needs an ABI, but it's rare to need anything like that in higher level langs like Swift. It's just not a priority for most languages because there usually higher level mechanisms built in to accomplish the same thing for 99% of the real world cases.

    11. Re: Real purpose: lock-in by Darinbob · · Score: 1

      You need the ABI to be fixed before inter-language linking will work. Ie object file linking to object file or library. You will not always have full source code to all the stuff you need to link to. Both sides have to agree on how the stack is layed out, what register usage shall be, and so forth.

      And the tools matter. GCC, binutils, and gdb are dropping support for the ABI that was chosen naively a decade for the project I'm on, and it's not trivial to just switch to the more commonly used format (ARM EABI) because of other naive decisions like assuming a particular layout of structures or the use of bitfields. Stuff almost no one does after having some experience in porting software to different types of architecture. It really is a good idea to use a standardly used ABI for your architecture.

      Yes, on a systems language, doing real programming that touches the hardware, not a scripting language like on the web. Even if you're using Python or such, the people who actually write those languages have to comply with the ABIs under the hood.

  3. fr0sted PI55 by Anonymous Coward · · Score: 1, Funny

    That's what you get for coding with Apple's proprietary garbage language instead of a standards-compliant one like C or VBA.

    1. Re:fr0sted PI55 by david.emery · · Score: 4, Interesting

      Please identify the (de-jure) standard for VBA. "Microsoft's current compiler" is not a -standard-.

    2. Re:fr0sted PI55 by Anonymous Coward · · Score: 1

      VBA? VBA??

      Of all things you could've chosen, why are you bringing up *that* turd?

    3. Re:fr0sted PI55 by Anonymous Coward · · Score: 0

      That's what you get for coding with Apple's proprietary garbage language instead of a standards-compliant one like C or VBA.

      DAFUQ?!?!?!

      Go stuff your head in a toilet three times.

      And pull it out twice.

    4. Re: fr0sted PI55 by Anonymous Coward · · Score: 0

      You're probably not that big, so flip around in the boat for a bit and they'll probably toss you back in the lake. Unless granny's been using that fishcake grinder again, in which case, my condolences.

    5. Re:fr0sted PI55 by TheFakeTimCook · · Score: 1

      That's what you get for coding with Apple's proprietary garbage language instead of a standards-compliant one like C or VBA.

      You're calling VBA "Standards-Compliant"?!?

      Ok, I think we're done now.

    6. Re:fr0sted PI55 by ath1901 · · Score: 1

      I haven't seen such a nicely crafted old-school troll post in a long time. Well done!

  4. Oh Yeah by Anonymous Coward · · Score: 0

    It's gonna be swifty!

    1. Re:Oh Yeah by Austerity+Empowers · · Score: 1

      Schwifty... in here .

      Wubba lubba dub dub.

  5. Traits. by Anonymous Coward · · Score: 0

    Introducing the world to a safer form of programming.

    1. Re:Traits. by Anonymous Coward · · Score: 0

      microsoft had this years ago. apple copies, but takes credit.

    2. Re: Traits. by Anonymous Coward · · Score: 0

      It takes courage.

  6. The one language to rule them all by OneHundredAndTen · · Score: 1

    Like the many languages that have unsuccessfully tried to do that over the decades. Jack of all trades, master of none.

    1. Re:The one language to rule them all by TeknoHog · · Score: 3, Funny
      --
      Escher was the first MC and Giger invented the HR department.
    2. Re:The one language to rule them all by Anonymous Coward · · Score: 0

      "The nice thing about standards is that there are so many to choose from"

      - .signature of a software development engineer at DEC (ZKO2) back in the late '70's/early 80's
      (Sorry, I don't remember exactly who it was, just that he was in ZK2, doing some layered products)

    3. Re:The one language to rule them all by hackertourist · · Score: 1

      That's been quoted here so often I now recognize it by number. (mod guideline: -1, painful truth)

    4. Re:The one language to rule them all by SoftwareArtist · · Score: 1

      But Swift does a really good job of it. It's not a perfect language for everything, but it's a really good language for a lot of things. People keep inventing new languages because we keep learning more about how to design good ones.

      --
      "I'm too busy to research this and form an educated opinion, but I do have time to tell everyone my uninformed opinion."
  7. You're looking in the wrong place... by QuietLagoon · · Score: 3, Insightful

    Don't look for reasons why Swift may be technically superior. Look for reasons why Apple wants Swift to keep developers locked inside the Apple world. Every minute that a developer uses to learn Swift, is a minute not spent on learning a non-Apple technology.

    1. Re:You're looking in the wrong place... by Maury+Markowitz · · Score: 1

      > Every minute that a developer uses to learn Swift, is a minute not spent on learning a non-Apple technology

      And that was true of Obj-C for the last 30 years, so... yeah, solid argument there.

    2. Re:You're looking in the wrong place... by QuietLagoon · · Score: 1

      ...And that was true of Obj-C for the last 30 years, so... yeah, solid argument there....

      Obj-C was not developed by Apple. It was used by Apple (and, btw, NeXT), but it was developed separately from Apple by StepStone.

    3. Re:You're looking in the wrong place... by Anonymous Coward · · Score: 0

      Yeah, it is true that Objective-C was also a lock-in language, but Obj-C itself is behind the times. Most userland is moving to managed code, and even Apple couldn't keep programmers away using a 30-year old outdated language. So Apple needed - and created - a new lock-in languages. It's called Swift.

    4. Re: You're looking in the wrong place... by Anonymous Coward · · Score: 0

      What a dumb argument. That applies to most other programming languages, too.

      "Every minute that a developer uses to learn Rust, is a minute not spent on learning a non-Mozilla technology."

      "Every minute that a developer uses to learn Go, is a minute not spent on learning a non-Google technology."

      "Every minute that a developer uses to learn C#, is a minute not spent on learning a non-Microsoft technology."

      "Every minute that a developer uses to learn Java, is a minute not spent on learning a non-Sun/Oracle technology."

      "Every minute that a developer uses to learn Perl, is a minute not spent on learning a non-Larry-Wall technology."

    5. Re:You're looking in the wrong place... by Anonymous Coward · · Score: 0

      The language is open source. That inherently makes it not possible to lock developers in. Are you also claiming that Go locks in people to google?

    6. Re:You're looking in the wrong place... by Anonymous Coward · · Score: 0

      That would be a great argument if Swift hadn't been open-sourced and made available on Linux and FreeBSD. You can even port/fork the language from their GitHub repository if you want.

    7. Re: You're looking in the wrong place... by QuietLagoon · · Score: 1

      ...What a dumb argument. That applies to most other programming languages, too....

      Except that Swift is Apple's language. Duh. :)

    8. Re:You're looking in the wrong place... by Dog-Cow · · Score: 1

      Can you name a platform that has an Objective-C compiler today, and not a Swift compiler? An original NeXTstation, I guess.

    9. Re:You're looking in the wrong place... by Anonymous Coward · · Score: 2, Informative

      gcc has an Objective-C compiler. It’s just as standard as the C and C++ compilers, though your package manager almost certainly have it as a separate package from the C and C++ compilers (which are, themselves, also usually separate).

      It’s not particularly difficult to get your hands on an Objective C compiler.

    10. Re:You're looking in the wrong place... by TechyImmigrant · · Score: 3, Informative

      ...And that was true of Obj-C for the last 30 years, so... yeah, solid argument there....

      Obj-C was not developed by Apple. It was used by Apple (and, btw, NeXT), but it was developed separately from Apple by StepStone.

      Because Apple used Pascal, then extended it to object pascal. Then people wanted C, but they needed object semantics to port the object pascal libraries and C++ wasn't ready and was ugly as sin, so they went with Objective C, which is uglier. They were swept along with the stream like everyone else.

      The real problem with Swift is not the language, it's that when you try to use swift to program a mac or iphone, you spend most of your programming time interacting with the libraries in arbitary ways invented by Apple and every example on the internet seems to be written in Objective-C. You're left guessing at what the Swift equivalent would look like.

      --
      I should use this sig to advertise my book ISBN-13 : 978-1501515132.
    11. Re:You're looking in the wrong place... by angel'o'sphere · · Score: 1

      Why do people write such nonsense?

      How can a developer be locked in? If I'm payed to write software for Apple OSes ... why would I care that "I'm locked to Swirft"? Next year I write software for Linux and use C++ and Qt ... wow, that was easy.

      --
      Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
    12. Re:You're looking in the wrong place... by angel'o'sphere · · Score: 3, Informative

      Every linux distro that installs the gcc suit has an objective-C compiler ...
      And if you really want to: a Switft compiler to, directly from swift.org: https://swift.org/download/

      --
      Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
    13. Re: You're looking in the wrong place... by Anonymous Coward · · Score: 0

      Sure. In the same way that C# and Typescript are Microsoft's languages, and Java is Oracle's language, and Go and Dart are Google's languages, and Rust is Mozilla's language, and Kotlin is JetBrain's language...

    14. Re:You're looking in the wrong place... by Anonymous Coward · · Score: 0

      Let's say your product is written with Apple Swift.
      Your product is indeed locked in to Apple Swift.
      Doesn't stop you from writing a new application for a different target OS. But that's not the point. See above.

      Instead of assuming people are writing nonsense, work on your reading comprehension.

    15. Re:You're looking in the wrong place... by QuietLagoon · · Score: 1

      ...why would I care that "I'm locked to Swirft"?...

      You don't need to care, Apple does. If you are writing for Swift, that is time you are not honing your skills in, or learning, other languages. Unless, of course, you've figured out how to tap into your other selves in the multi-verse...

    16. Re: You're looking in the wrong place... by Anonymous Coward · · Score: 0

      You noticed how weak your series was getting somewhere around Java, I bet. Props for forging onward and awkwardly trying to work Perl into there, though.

      It's not "most other programming languages"; it's those top three that you just mentioned and maybe Java (though that's borderline). Not Perl (BTW I fucking hate Perl but it's not guilt-as-charged.). Not Python. Not (ugh, I can't believe I'm mentioning this one) Javascript. Not C. And also not a bunch of other older, no-longer-popular languages. But yes: C# and Swift, and I think you're probably right about Rust and Go too.

    17. Re: You're looking in the wrong place... by Anonymous Coward · · Score: 0

      Objective C was available as a full toolchain on Slackware in 1995.

    18. Re:You're looking in the wrong place... by squiggleslash · · Score: 1

      Yeah, but Apple is the only entity that still controls platforms based upon it. The only other entity I'm even aware of that uses Objective C is the GNUstep project, which is trying to replicate Apple's APIs.

      So the GP is right. Nobody claimed Apple developed it, the claim is that it's essentially a technology that, if you use, you'll be locked into Apple's ecosystem.

      That said... I don't know that this is the purpose of Swift. The language itself is fairly open, and it came about at about the same time as Rust and Go and others were being taken seriously. I think Apple developed it at a time they didn't feel there were any strong alternatives.

      --
      You are not alone. This is not normal. None of this is normal.
    19. Re:You're looking in the wrong place... by StormReaver · · Score: 4, Insightful

      How can a developer be locked in?

      It will become self-evident to you after you have written your first major application in a platform-specific language and/or environment that you want to make available on some other platform.

      Until then, I will provide you with the most common scenario:

      You are a company or independent developer who has unwisely decided to write thousands, tens of thousands, hundreds of thousands, or millions of lines of code which uses a vendor-specific language. You are happy with your product, and you are happy with your vendor. All is good in your world. You have spent a huge amount of time and money on making your products, and you can't afford to do it all again from scratch. But you're okay with that, because your vendor is AWESOME, and you just can't foresee a reason why you would ever leave such an incredible experience.

      You become disillusioned and/or pissed off with your language vendor (for whatever reasons; they don't matter for this discussion. Just know that it happens a lot), so you decide, "screw them! I'm out of there!" But, oops! You have written yourself into an intractable dependency on that vendor, because you didn't have the experience to understand how vendor lock-in works. You don't have the resources to rewrite from scratch, so you wind up having to surrender yourself to the whims of your vendor.

      You plead with your vendor to be reasonable, but your vendor DOES have the experience to know how vendor lock-in works. So not only does your vendor ignore your pleas for mercy, but they raise their prices and/or make more unreasonable demands of you that you have absolutely no power to fight. You find yourself with no choice but to either cave to your vendor's demands, or go out of business.

      You realize too late that had you used cross-platform technologies from either the very start, or at least switched to cross-platform technologies early on, you could have told your scumbag vendor to piss off; and then you could have found a different vendor to support you.

    20. Re:You're looking in the wrong place... by TheFakeTimCook · · Score: 1

      Don't look for reasons why Swift may be technically superior. Look for reasons why Apple wants Swift to keep developers locked inside the Apple world. Every minute that a developer uses to learn Swift, is a minute not spent on learning a non-Apple technology.

      Um, Swift is Open Source.

      How does that lock ANYONE in to an "Apple World"?

      You stupid Haters REALLY need to think before posting your stupid, imbecilic drivel.

    21. Re:You're looking in the wrong place... by Anonymous Coward · · Score: 0

      Let's say your product is written with Apple Swift.
      Your product is indeed locked in to Apple Swift.
      Doesn't stop you from writing a new application for a different target OS. But that's not the point.

      Oh so you have no point.

    22. Re:You're looking in the wrong place... by TheFakeTimCook · · Score: 1

      ...And that was true of Obj-C for the last 30 years, so... yeah, solid argument there....

      Obj-C was not developed by Apple. It was used by Apple (and, btw, NeXT), but it was developed separately from Apple by StepStone.

      Yeah, for awhile, then it was licensed by NeXT in 1988, who extended the language a bunch, then it was transferred to Apple when Apple acquired NeXT.

      It is currently listed as being owned by Apple.

    23. Re:You're looking in the wrong place... by TheFakeTimCook · · Score: 1

      Yeah, it is true that Objective-C was also a lock-in language, but Obj-C itself is behind the times. Most userland is moving to managed code, and even Apple couldn't keep programmers away using a 30-year old outdated language. So Apple needed - and created - a new lock-in languages. It's called Swift.

      Yeah, they're Lock-In Languages, alright.

      Objective-C is part of the gcc compiler.

      Swift is Open Source and already has ports in Linux and Windows.

      Sounds Locked-In to me.

      Idiot.

    24. Re: You're looking in the wrong place... by TheFakeTimCook · · Score: 0

      ...What a dumb argument. That applies to most other programming languages, too....

      Except that Swift is Apple's language. Duh. :)

      You are a fucking sad excuse for a sentient-being.

      Kill yourself immediately.

    25. Re:You're looking in the wrong place... by EMB+Numbers · · Score: 3, Informative

      You have your history completely wrong.

      Objective-C was created by Dr. Brad Cox in the Mid 1980s - https://en.wikipedia.org/wiki/...
      Objective-C is a mashup of ANSI C and Smalltalk. Smalltalk is the original Object Oriented programming language created by Alan Kay in the 1970s. Alan Key coined the term, "Object Oriented", to describe Smalltalk. He later said, "I coined the term Object Oriented, and I promise, C++ is not what I had in mind." He has also said he wished he called Smalltalk "Message Oriented" because messages are the key, not objects.

      Steve Job's NeXT Computer Corp. used Objective-C to create NeXTstep graphical frameworks currently known as Cocoa (Foundation Kit, App Kit, etc.) and Cocoa Touch (UIKit etc.) NeXTstep shipped commercially in October 1988.

      Apple purchased NeXT in December 1996, and NeXtstep eventually became Mac OS X and iOS.

    26. Re:You're looking in the wrong place... by angel'o'sphere · · Score: 1

      Apples does not care about that.

      If at all a programmer cares ... because it is his job future that is at stake. Apple does not care if you switch from Mac/iOS development to Android/Linux/Windows ... aka C/C++/Java. It is completely irrelevant for them what a single developer or a group of developers does.

      If you are (1)writing for Swift, that is time you are not (2)honing your skills in, or (3)learning, other languages.
      Get a clue. What are you doing? Writing a program (1) for profit?, honing your skills in another language (2), or learning a new language (3)?

      While I'm _writing_ a Java program I'm most certainly not honing my Swift knowledge. However you can exchange any language here and the sentence is always true, So what the funk is your point?

      I _by definition_ don't learn another language (3) while I'm writing software (1) in a different language.
      Again you can exchange both languages on both ends and the sentence is always true.

      --
      Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
    27. Re:You're looking in the wrong place... by TechyImmigrant · · Score: 1

      >You have your history completely wrong.

      Not at all.

      I'm talking about Apple's adoption of languages. If you are of a certain age, you will remember a time before NeXT, before SJ left Apple when there were Apple ][s, Apple //es, Lisas, Early Macintoshes. At no point did I claim that Apple invented these languages. Why are you implying I did? Why is the name of the creator of Objective C relevant to my statements about Apple's adoption of Objective C?

      You may be 12 years old and so were not around when these things happened. Some of us are older and remember it well.

       

      --
      I should use this sig to advertise my book ISBN-13 : 978-1501515132.
    28. Re:You're looking in the wrong place... by angel'o'sphere · · Score: 1

      You do realize you are contradicting yourself?

      Either I'm happy with my product and sell it good, and hence I'm not (yet) affected by vendor lock in, or I'm not, then I switch immediately.

      If I'm happy I make so much money that I can rewrite the software anyway, so: "the I don't have the resources" scenario can actually not happen.

      Then again: it is the customer who decides. If the customer runs only Macs, I have to write for Macs, plain and simple.

      Regarding the topic: you can easily write software for Macs in C/C++, Java, JavaScript and dozens of other niche languages like Lua. There is no vendor lock in. The vendor lock in is the UI Framework!!! Not the language. Swift cross compiles to Java, Linux, Windows anyway.

      And then again: if you have a majour software undertacking, only about 30% of its costs is "coding" ... and you only have to port that part to another language if you wanted to port. 50% of that or more can be automated.

      or at least switched to cross-platform technologies early on, you could have told your scumbag vendor to piss off
      That worked very well for Zapp, until it got bought by Rogue Wave and suddenly was Windows only, and the Mac port never got published.

      --
      Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
    29. Re:You're looking in the wrong place... by Anonymous Coward · · Score: 0

      And a few other tidbits. Smalltalk was originally being considered for inclusion on the Macintosh. The Smalltalk vendor (can't remember if it was ParcPlace or Digitalk) wouldn't make the IDE affordable enough to license for each Mac. So Apple said screw it and went with Objective C instead. Smalltalk dev environments were pretty picey (want to say $1500 to $5000 per seat).

      It is somewhat debatable on whether ADA could be considered as the first OO language.

      And for those who have coded Objective C and wondered about the difference between the dot notation stuff (object.attribute) and ([Object getAttribute]), the bracket notation is essentially the part taken from Smalltalk. Objects being sent unary, binary, or keyword messages ( [a toString], [a == b], [a toDateWithMonth: 1 day: 1 year: 2018]).

    30. Re: You're looking in the wrong place... by Anonymous Coward · · Score: 0

      It took you a whole paragraph to say nothing. Nice.

    31. Re:You're looking in the wrong place... by TheRaven64 · · Score: 2

      Clang supports all of the features of Objective-C on all *NIX platforms and Windows. The GNUstep Objective-C runtime, in combination with clang, supports a superset of the language features of Apple's implementation and is used by Microsoft in their Windows bridge for iOS. You might be surprised at some of the places Objective-C ends up - there are quite a few larger (mostly non-Web, though there are also things like SOGo) server systems that use Objective-C - I've consulted for a couple of companies that maintain them.

      --
      I am TheRaven on Soylent News
    32. Re:You're looking in the wrong place... by Anonymous Coward · · Score: 0

      Apple didn't choose Objective C. NeXT did. Classic OS 9 was still pascal based. Apple wasn't looking for a new programming language, they were looking for a new operating system. They nearly chose BeOS, which was c++ based.

    33. Re:You're looking in the wrong place... by Dog-Cow · · Score: 1

      "No" is a lot easier to type.

    34. Re:You're looking in the wrong place... by Dog-Cow · · Score: 1

      Object Pascal was Borland's dialect of Pascal.

    35. Re:You're looking in the wrong place... by Dog-Cow · · Score: 1

      Just because no one else is doing serious development with ObjC does not mean you are locked in. The clang compiler is part of the LLVM suite, and is available on every platform that the rest of LLVM is available on. Nothing is stopping anyone from creating ObjC libraries on non-Apple platforms.

    36. Re:You're looking in the wrong place... by guruevi · · Score: 1

      Every single platform has an Objective-C compiler. Just because it's not in VisualStudio doesn't mean it doesn't exist.

      --
      Custom electronics and digital signage for your business: www.evcircuits.com
    37. Re:You're looking in the wrong place... by Anonymous Coward · · Score: 0

      Yeah, it's a shame the answer wasn't "no".

    38. Re:You're looking in the wrong place... by TechyImmigrant · · Score: 1

      Yes. I once though it would be a good idea for them to adopt beos. I used BeOS back in those days, but now the unix like underpinnings of macos is a lot better.

      The transition from the Apple dialect of object pascal did indeed happen as a result of the NeXT transition. That's just more historical detail. They did transition from pascal -> object pascal -> Objective C -> Switft.

      --
      I should use this sig to advertise my book ISBN-13 : 978-1501515132.
    39. Re:You're looking in the wrong place... by Anonymous Coward · · Score: 0

      You are only half right. NeXT bought out StepStone and ObjC and also employed its creator to develop further down the road. In your logic, Android was not developed by Google

    40. Re:You're looking in the wrong place... by Anonymous Coward · · Score: 0

      > then I switch immediately.

      That's not possible after the lock in is realized. What do you think lock-in means?

    41. Re:You're looking in the wrong place... by Anonymous Coward · · Score: 1

      You said "C++ wasn't ready and was ugly as sin, so they went with Objective C,"

      You are implying that Apple made the decision to go with Objective C. This is wrong, they did not. They went with NeXTstep which they acquired and Objective C was part of that. (In other words, they chose NeXTstep, not Objective C. Objective C was just part of that package.)

      Either you wrongly think Apple created NeXTstep and made the decision then; or your writing isn't very good and you should have clarified who 'they' are.

    42. Re: You're looking in the wrong place... by Anonymous Coward · · Score: 0

      The other things to point out:

      1- Your vendor gets bought out by a bad actor, like Oracle.
      2- You want to expand to other platforms because your platform is no longer dominant, not as dominant, or your customers have a need for the new platform.
      3- You are looking to sell out to someone, and they want a different platform supported.

      In case (1) you are fucked. In case (2) you are hurting. In case (3) you could be down enough cash to make your decision the single most unprofitable decision of your life.

    43. Re:You're looking in the wrong place... by SoftwareArtist · · Score: 1

      You realize too late that had you used cross-platform technologies from either the very start, or at least switched to cross-platform technologies early on, you could have told your scumbag vendor to piss off; and then you could have found a different vendor to support you.

      Swift is cross platform. You can use it on Windows, Linux, even Android. The compiler is open source. You can get support from anyone who has the experience to provide it. You're no more locked in than with any other language.

      --
      "I'm too busy to research this and form an educated opinion, but I do have time to tell everyone my uninformed opinion."
    44. Re:You're looking in the wrong place... by TechyImmigrant · · Score: 1

      You're pointing out arrows of causation that I said nothing about.

      Neither NeXT, nor Apple, nor anyone was adopting C++. C++ at the time wasn't ready while ObjC was.

      --
      I should use this sig to advertise my book ISBN-13 : 978-1501515132.
    45. Re:You're looking in the wrong place... by _merlin · · Score: 1

      Apple never provided Objective-C for Mac before acquiring NeXT. MPW included a Pascal compiler, and later C and C++ compilers. At some point they switched their 68k C/C++ compilers to an implementation licensed from Symantec and dropped the Pascal compiler. They were late to get PowerPC compilers ready for MPW, so Metrowerks CodeWarrior stole the market.

    46. Re:You're looking in the wrong place... by _merlin · · Score: 1

      They dropped Pascal before MacOS 9 - it was just C/C++ at that point. Pascal never really made it across to PowerPC.

    47. Re:You're looking in the wrong place... by Anonymous Coward · · Score: 0

      It was originally developed by Apple and was shipped with their Lisa computer in 1983 as Clascal later modified released as Object Pascal for the Mac in 1984, Borland used it in their Turbo Pascal for Mac version, but only took it to the PC world after Microsoft started selling the object oriented Quick Pascal, and Borland Turbo Pascal 5.5 with the Apple Object Pascal extensions was a panicked and buggy response to that.

    48. Re:You're looking in the wrong place... by mfearby · · Score: 1

      Exactly. I got sick of all the breaking changes in Swift and have abandoned Apple development (though my two apps are still in the store; I might let them live another year, perhaps, then pull the plug). I'm learning Java now.

    49. Re:You're looking in the wrong place... by Anonymous Coward · · Score: 0

      Apple never provided Objective-C for Mac before acquiring NeXT.

      IIRC, nobody other than NeXT provided Objective-C for anything!

      GCC included Obj-C support but only because NeXT extended GCC for it and they had to free license their changes.

  8. Gotta get s(ch)wifty by Anonymous Coward · · Score: 0

    https://www.youtube.com/watch?v=I1188GO4p1E

  9. I'm out by ReneR · · Score: 2, Insightful

    After writing an entire application stack in Obj-C / Cocoa (ExactScan, OCRKit, ...) we will not continue using Apple only technology. To much vendor lock in, too much extra work porting and sharing code with other platforms. Yes, Swift may be partially vendor neutral, however all the Cocoa / AppKit / UIKit et al. APIs do not help, and Swift is otherwise not too native on Linux and Windows.

    1. Re:I'm out by Anonymous Coward · · Score: 0

      You mean like all those portable non native APIs on Windows? LOL

    2. Re:I'm out by lhunath · · Score: 3, Interesting

      It is pretty hard to avoid vendor lock-in due to APIs nowadays.

      And of all the languages, I daresay Swift is one of the few that's in a clear direction heading away from vendor specificity and toward open access.

      --
      ``OK, so ten out of ten for style, but minus several million for good thinking, yeah?''
    3. Re:I'm out by Dog-Cow · · Score: 1

      How is it not "native" on Linux? The toolchain creates native binaries, and Swift can interop with C, including the clib, just fine. There's no pre-existing UI toolkits, but that's hardly Apple's fault. Not as if Apple wrote UI/AppKit just for Swift, after all.

    4. Re:I'm out by DarkOx · · Score: 1

      Swift is otherwise not too native on Linux and Windows.

      What exactly is native? I mean being native on Windows / Linux means being C/C++ or on Windows .Net thanks to a pretty herculean effort by MS to provide very complete platform integration (and you still have to call into even first party C/C++ libraries sometimes to get some things done effectively).

      As to Python / Ruby neither can do anything at all natively other than file and socket operations. Both do offer good web stacks probably because socket operations were easier than doing any kind of native interface support. Pretty much anything else means calling into some C/C++ library and despite a lot effort one could level the same arguments the article makes about Swift at them. Try using GTK from either - hint you find you have to write code that does not look very much like what you would normally do in Ruby or Python its not that authors did not try hide the C-isms its just the paradigms don't match and there is only so much you can do. You will run into the same issues if you try to use any media encoding/decoding code etc. if its not file i/o, sockets, and maybe database access or web services it won't feel very native.

      Then there is the Java approach which is just ship an entire platform basically - UI toolkits, database drivers, etc solution to the problem - that shifts the issue though now it feels less native to the user, even if its all uniform and orthogonal to the developer. I

        think the simple reality is that its kinda like how the width of rail-road track impacts the space shuttle. The track determined the size of the tunnel, the tunnel determined the size of an aluminum tube you can put on rail car, which constrained the size and shape of rocket booster, which in turn partly dictated the size of the shuttle. Same deal platform language semantics have effects all the way down to the pointy clicky UI. So when you go back and start doing stuff in some other language you still are dealing with structures defined by the platform language and in a lot of cases those were chosen not from a purely data science perspective but because they were comfortable to work with in the native language.

      --
      Repeal the 17th Amendment TODAY! Also Please Read http://www.gnu.org/philosophy/right-to-read.html
    5. Re:I'm out by Arkham · · Score: 1

      After writing an entire application stack in Obj-C / Cocoa (ExactScan, OCRKit, ...) we will not continue using Apple only technology. To much vendor lock in, too much extra work porting and sharing code with other platforms. Yes, Swift may be partially vendor neutral, however all the Cocoa / AppKit / UIKit et al. APIs do not help, and Swift is otherwise not too native on Linux and Windows.</quote>
      &#16;
      After writing an entire application stack in C#/.NET we will not continue using Microsoft-only technology. To much vendor lock in, too much extra work porting and sharing code with other platforms. Yes, C# may be partially vendor neutral, however all the .NET / Win32 et al. APIs do not help, and C# is otherwise not too native on Linux and macOS.

      --
      - Vincit qui patitur.
    6. Re:I'm out by Anonymous Coward · · Score: 0

      The biggest difference is that Windows and pretty much all other non-console tech doesn't make it near impossible or inconvenient to install 3rd party software without paying or inconveniencing the user.

      I know of one piece of software that 10,000+ users use that can't be on the app store that REQUIRES reinstalling every 7 days because the certificate expires every week.

  10. Bottomline == Maintainable by ElitistWhiner · · Score: 4, Insightful

    The only criteria that's relevant if you're already supporting a profitable application on either iOS or OS X platforms - maintainable. How fast does a language enable the rev of your code base, does it abstract your code base above platforms and can its libraries and API's bridge between manufacturer hardware swaps and recompiles without cost of a total rewrite.

    Those were lessons learned during NeXT transitions from little to big endian and Mac OS X revs that Apple made 3X/yr during SteveJobs reign.

  11. Swift made us dump our in-house iOS group by Anonymous Coward · · Score: 2, Informative

    Working for a well known chip company here. I'm one of the DB guys. I know we dumped out in-house iOS team when the whole "port to Swift" BS started. Management took one look at the cost and out-sourced the lot to east Europe.

    1. Re:Swift made us dump our in-house iOS group by Anonymous Coward · · Score: 0

      Intel has loved the Putinskis for a lot longer than Swift has been around. Most Intel kybd-pounders are Ruskies, with a dash of salt and lot of vodka. That's why Intel software is shit. And you know it is!

    2. Re:Swift made us dump our in-house iOS group by TheFakeTimCook · · Score: 1

      Working for a well known chip company here. I'm one of the DB guys. I know we dumped out in-house iOS team when the whole "port to Swift" BS started. Management took one look at the cost and out-sourced the lot to east Europe.

      Mmmm. Bet that is going just peachy.

      Stupid PHBs.

    3. Re:Swift made us dump our in-house iOS group by Altus · · Score: 1

      Why on earth would you rush to port your entire existing app to swift? The languages interoperate pretty well.

      --

      "In America, first you get the sugar, then you get the power, then you get the women..." -H. Simpson

    4. Re: Swift made us dump our in-house iOS group by Anonymous Coward · · Score: 0

      Why would you port to swift just because? Why not just keep the iOS team and keep the project written in objective C?

      It seems whoever employs you is incompetent as fuck. And just because you can rewrite doesn't mean you should or have to. And the fact that your bosses fired a whole team of developers just because they wanted to rewrite is a bad sign.

      Developers don't run the ship. Tell them no, we are working in objective C and move on. Now you are stuck with working with people in Europe who don't speak your language, have a different time schedule, and don't give two shits about your company.

      So you guys went from having a dedicated dev team, to now having to be at the mercy of some contractors in east Europe. LUL.

      Did you even read your post? You posted it like it was actually beneficial to you. You must not have gotten the memo. When That happens, that means YOU ARE next. Anytime something comes up on the DB side, you will be fired and your job will be contracted away.

      Sometimes the cost can be misleading. You guys decided to fire your dedicated objectiveC dev team, just to outsource it to people who have no clue about your business or Domain. You've handed your keys to bandits.

      Great job. Anything to get rid of that Apple lock-in, amiright? /s

      Fucking idiots I swear. Cheering on management when they are the next To be fired.

    5. Re:Swift made us dump our in-house iOS group by Anonymous Coward · · Score: 0

      Except you notice even in the article summary that people who didn't switch were removed and / or couldn't support the newer features.

    6. Re:Swift made us dump our in-house iOS group by Lord_Jeremy · · Score: 1

      Funny you mention this. I just was at WWDC (Apple’s annual developer conference) for the 6th year in a row and I suddenly noticed that a LOT of the devs I was meeting are from Ukraine.

    7. Re:Swift made us dump our in-house iOS group by Altus · · Score: 1

      Which is also horseshit. Yeah your app gets removed if you don't update it to support new deveices and there are moving minimum standards but converting your app to swift is not on of those. As an iOS developer, I'm not aware of any feature that you can only access in swift and certainly not one that is required for staying in the store but even if their was, swift and objc interoperate. Maybe you would have to write a class or 2 in swift to support some new bling (that wasn't available to your app before at all) but you don't have to re-write your entire app to do it.

      Yeah, apple forcing you to adapt to new phones and features means you have to keep actively developing software to stay on the store... for some developers that might be an annoyance and it may not be worth updating an old app that isn't making you money. But that has nothing to do with swift vs objective c.

      --

      "In America, first you get the sugar, then you get the power, then you get the women..." -H. Simpson

  12. Oh please. by Anonymous Coward · · Score: 5, Insightful

    Firstly itâ(TM)s not lock in any more than objc is. No other (serious) platform uses objc. So stop whining about lock in. Programmers on the Apple platforms donâ(TM)t give a crap about that anyway. Weâ(TM)re there because we want to be. And most of us learned objc after learning other languages, because the iOS sdk hasnâ(TM)t been around forever, so we all came from other languages. We arenâ(TM)t so stupid we canâ(TM)t learn something else, kthx.

    Secondly it addresses some real pain points from objc. One is verbosity. Another is the fact that nil objects donâ(TM)t crash the app which makes bugs hard to find. Inconsistent message vs function call syntax. Inconsistent property vs method syntax. I could go on and on.

    Thirdly it addresses type safety. Objc will let you have an array of id, which is like having an array of java.lang.Object and trusting the programmer to use it appropriately. Anyone who argues that strong type safety isnâ(TM)t better has never worked outside of some niche application. This is enough of a pain point with objc that it deserves its own paragraph.

    Fourthly it brings functional programming to the table better than objc. Yes you can pass blocks around in objc but itâ(TM)s syntactically painful where as Swift makes it easy (aka first class citizen).

    I could continue but Iâ(TM)m tired of typing on my phone. The point is there actually are plenty of real world gains in Swift.

    Outside of /. where everyoneâ(TM)s mind is already made up and Apple is the devil, I donâ(TM)t know anyone that has used swift for real who doesnâ(TM)t think itâ(TM)s massively superior to objc.

    Is it finalized? No. Itâ(TM)s a language in flux and theyâ(TM)re taking community feedback too. So everyone is an early adopter by definition and they expect some upgrade pain. Itâ(TM)s really not that bad in practice and Xcode handles 90% of it. Itâ(TM)s no worse than switching to a new iOS version and dealing with depreciations every year.

    Again, weâ(TM)ve all chosen the platform and the language because we think itâ(TM)s superior. We arenâ(TM)t stupid. We arenâ(TM)t locked in. We all know other languages. Thanks.

    Cue the haters.

    1. Re:Oh please. by Anonymous Coward · · Score: 0

      OH NO!! Not the haters.
      Is that a swift haters specifically or the dreaded apple haters in general.
      Whining about "haters" totally invalidates any points you made.

    2. Re:Oh please. by slickwillie · · Score: 5, Funny

      "I could continue but Iâ(TM)m tired of typing on my phone."

      Thâ(TM)at woâ(TM)rks ouâ(TM)t siâ(TM)nce Iâ(TM)m tiâ(TM)red oâ(TM)f râ(TM)eading iâ(TM)t.â(TM)

    3. Re:Oh please. by Anonymous Coward · · Score: 0

      Well, if you know other languages, you know the .NET languages had all these features a decade ago, and Java was very close. Your 'superiour' platform is just barely catching up.

    4. Re: Oh please. by Anonymous Coward · · Score: 0

      Not enough Ã(TM) - 6 out of 10.

    5. Re:Oh please. by Anonymous Coward · · Score: 0

      I agree with all your points but I still hate Swift. Make a language, keep the language... THE SAME. STOP THE "IMPROVEMENTS". I have (had) three apps in the App store, one written in ObjC and two in Swift 2.0. I can't compile the 2.0 apps any more of course, and after some half-hearted work porting one to 3.1 now I have to get to 4? Screw that. I started on a 4th app in ObjC but I've lost my mojo and I've let my dev subscription expire. Bye bye Apple Dev for over a year now. On the plus side, I'm doing Android dev at work, and I hate layouts and fragments and wish it was more like Apple's MVC.

    6. Re:Oh please. by TimMD909 · · Score: 1

      Itâ(TM)s hard tâ(TM)o take youâ(TM)re argument serioâ(TM)usly â(TM)with all reminâ(TM)ders that Apple doesnâ(TM)t give two shits about â(TM)â(TM)interoperabilityâ(TM)â(TM).

    7. Re: Oh please. by Anonymous Coward · · Score: 0

      Hmm he's +3, you are at 0.

      Yea, whining about whining. You lose.

    8. Re:Oh please. by JesseMcDonald · · Score: 1

      You're really blaming the wrong party here. Sure, Apple is replacing normal quotes with "smart" quotes, which not everyone prefers for various reasons. By itself, however, that would be a minor issue, and at least they are following the Unicode standard. The way those smart-quotes are mangled is not Apple's fault; that's entirely due to Slashdot. Between the ongoing failure to handle Unicode properly and the persistent lack of IPv6 support, Slashdot is falling remarkably behind the times for a tech-focused site.

      --
      "The state is that great fiction by which everyone tries to live at the expense of everyone else." - Bastiat
    9. Re:Oh please. by Dog-Cow · · Score: 1

      Apple said from day one that Swift would not remain source compatible until Apple says that Swift will remain source compatible. Apparently, everyone in the world except you got the message.

    10. Re:Oh please. by Anonymous Coward · · Score: 0

      You mean slashdot, right? UTF-8 is super interoperable, and is the standard everywhere.

  13. Swift is not alone by what+about · · Score: 5, Insightful

    There is a pattern and it is like this
    - School do not teach anymore why things are done the way they are, the reasons
    - Students are not interested, have low attention span, generally consider the teaching "old stuff"
    - Computer science is populated by freshers, you are old at 40

    the result is:
    - Reinventing the same solution, worse

    How to stop this total waste of time,money ?
    - Keep older developer around and when they say that the "new shiny idea" has been done before, listen to them.

    A list of already done things:
    1) AI (in the current form), it is Neural net, learned 30 years ago, yes, now you have a supercomputer on desk but it is not new tech and has all the same issues it had before.
    2) Blockchain, can anybody think of a revision system ? GIT, SVN ?
    3) Languages, lots of them, really, are we so dumb that to save a few keystrokes we produce something that is obscure after the third line ?
    Can we agree that all possible logic and consistency tests should be done at "compile time" ? (no Unit testing is not the same thing)

    FInally, a question: How do we get rid of the pointy haired boss ? (See Dilbert)
    He knows nothing, makes random decisions (on a good day) and sucks half of the budget in bonuses...

    1. Re:Swift is not alone by Tablizer · · Score: 2

      How do we get rid of the pointy haired boss

      In the White House?

    2. Re:Swift is not alone by Anonymous Coward · · Score: 0

      Why was this modded informative (asks the AC)? It’s barely coherent.

    3. Re:Swift is not alone by Anonymous Coward · · Score: 0

      LOLWUT?

    4. Re:Swift is not alone by lucasnate1 · · Score: 1

      Blockchain, can anybody think of a revision system ? GIT, SVN ?

      Blockchain is very different from GIT and SVN, both of these trust all users, which can't be done with financial transactions.

      Students are not interested

      Looks like the old people are not very interested either, what I just wrote is really the basic idea of blockchain, to be able to handle hostiles as well as friendlies (assuming that there's not too many hostiles).

    5. Re:Swift is not alone by Anonymous Coward · · Score: 0

      Why was this modded informative (asks the AC)? It’s barely coherent.

      I found it informative (well, more like interesting).

      FWIW, it looks like the author is not a native English speaker (Italian?), so I think they did pretty well.

      Another comment whilst on the subject of languages: I've found that with computer languages or even porting software (Windows, Linux, various UNIX, etc) there's something to be learned from being a polyglot. You have deeper insights into language A when experience with languages B, C, D.

      I also suspect this is true from natural languages too. English is my first language (well, as much as engineer speak able is ;-) ), but I have a pretty strong grasp of a couple more (Irish & French). I don't speak a word of Italian, but I certainly could follow the GP's ideas.

    6. Re:Swift is not alone by Anonymous Coward · · Score: 0

      You are confusing a block chain with a consensus protocol (you know, the thing that gives you protection against not-too-many hostiles)

    7. Re:Swift is not alone by RobertJ1729 · · Score: 1

      LSTM networks - 1997
      autoencoders - 2008
      Max-pooling - 1992, 2010 for backpropogation through max-pooling shown to have superior performance.
      Droppout regularization - 2012
      GANs - 2014

    8. Re:Swift is not alone by Anonymous Coward · · Score: 0

      > (assuming that there's not too many hostiles)

      What planet are you from, again?

      All it takes is one hostile - if they have the specific resources to beat anyone else involved.

      People really did not think this one out...

    9. Re:Swift is not alone by Anonymous Coward · · Score: 0

      Blockchain, can anybody think of a revision system ? GIT, SVN ?

      Blockchain is very different from GIT and SVN, both of these trust all users, which can't be done with financial transactions.

      Students are not interested

      Looks like the old people are not very interested either, what I just wrote is really the basic idea of blockchain, to be able to handle hostiles as well as friendlies (assuming that there's not too many hostiles).

      Indeed, thispost right here exactly explains why IT companies are more interested in young people than old people. Old people just plain old don't understand the new technologies. They dumb them down to "already exists, it reminds me of git/svn, let's use that" without any further thought about how it is fundamentally different.

    10. Re:Swift is not alone by lucasnate1 · · Score: 1

      I'm old btw, I just hear lectures and read wikipedia articles before I automatically assume things.

    11. Re:Swift is not alone by Anonymous Coward · · Score: 0

      What's with the spaces before every question mark?

    12. Re:Swift is not alone by ceoyoyo · · Score: 1

      Blockchain trusts all users too. Anybody can make any change to the blockchain they feel like, but then nerds argue about which is the one true change. Eventually they vote based on the size of their computer.

      Truly an Internet technology.

      You're right though, Git is nothing like bitcoin (it IS a blockchain). Git has passwords.

  14. Solving the wrong problem by Anonymous Coward · · Score: 1

    Concurrency is mentioned in TFA.

    Look at die photos (of A4...A11 and mobile Intel) and compare allocation of space for CPU vs GPU over the last decade.
    Now compare time and effort spent on languages and toolchains that can't run on the GPU, and can.

    1. Re:Solving the wrong problem by careysub · · Score: 1

      Why don't you do that and give us a summary of the results rather than handing out homework assignments to everyone?

      If you have a point, make the point yourself.

      --
      Starships were meant to fly, Hands up and touch the sky - Nicky Minaj
    2. Re:Solving the wrong problem by Maury+Markowitz · · Score: 1

      > Now compare time and effort spent on languages and toolchains that can't run on the GPU

      Hmmm, interesting point.

  15. Nil is a feature by Maury+Markowitz · · Score: 3, Interesting

    > Classify the implicit optionality of objects purely as a source of bugs

    Among other issues, this remains my biggest complaint.

    Obj-C generally "did the right thing" with nil in most contexts. Sure, nil-pointer errors are a pain, but declaring them away and just forcing everyone to type ! everywhere does not eliminate them. It does, however, eliminate the simplicity of binding a nil to a text field and just getting a zero, precisely what has to happen in code now.

    1. Re:Nil is a feature by Kjella · · Score: 1

      Obj-C generally "did the right thing" with nil in most contexts. Sure, nil-pointer errors are a pain, but declaring them away and just forcing everyone to type ! everywhere does not eliminate them. It does, however, eliminate the simplicity of binding a nil to a text field and just getting a zero, precisely what has to happen in code now.

      So... you read an object that has no description because field is nil, show it in a dialog and afterwards the description is "0"? Why not the empty string ""? And when doing debug messaging I usually replace it with "(null)". And you sure don't want to convert nil to zero when it comes to numbers because for a field like "number_of_kids" nil would typically be used for unknown / didn't want to answer / not relevant / not applicable. That said, I wish they'd turn it around so you'd get a nil assignment error rather than a calling error. I also hate nil and the default nil != nil for change comparison and such whereas "" = "" and "0" = "0". Sometimes it would be really, really useful to use nil as an extra value with normal value semantics.

      --
      Live today, because you never know what tomorrow brings
    2. Re:Nil is a feature by Anonymous Coward · · Score: 0

      Everyone knows if you want to print out NULL from database, you transfer the non-value to the programming language as nil, then you cast the type to string, and get the final correct output:
      If you don't get this, and why it's a bad idea, and why the code sucks, well, you are simply too experienced and knowledgeable, not fun at parties at all, 'xept we killed the parties and made everything SAFe, so WTF f u 4 eva!

      Captcha: bearings

    3. Re:Nil is a feature by JesseMcDonald · · Score: 1

      Classify the implicit optionality of objects purely as a source of bugs.

      Among other issues, this remains my biggest complaint.

      This is what you choose to complain about, fixing the "billion-dollar mistake" [infoq.com]? You actually want the language to implicitly accept all messages sent to nil as no-ops with a default return value, regardless of the intended interface, and to allow nil to be passed for any reference parameter even when it makes no sense for the parameter to be omitted?

      I would be among the first to promote language-agnostic APIs and allowing the developer to choose the language best suited to the problem domain. However, complaining about the parts of Swift that Apple got right is not very likely to make me more sympathetic to your cause.

      --
      "The state is that great fiction by which everyone tries to live at the expense of everyone else." - Bastiat
    4. Re:Nil is a feature by Anonymous Coward · · Score: 0

      forcing everyone to type ! everywhere does not eliminate them

      That's absolutely the wrong thing to do. ! is an escape hatch to be used as a last resort, there are many ways to handle optionals properly. If this is your biggest complaint, go learn Swift properly because you clearly haven't understood the basics.

      the simplicity of binding a nil to a text field and just getting a zero, precisely what has to happen in code now.

      This is not simple at all and it makes no sense semantically.

    5. Re:Nil is a feature by Lord_Jeremy · · Score: 1

      Nil handling in ObjC was generally effortless, in my experience. A great rule of thumb: call method on nil means return nil & send nil argument to something causes crash. The ‘as!’ or ‘try!’ pattern is so ubiquitous now, the advantages of the strong typing system are often lost in real production projects. I just saw an Apple example project using a ‘try!’ statement to simply loading an image resource, with a comment justifying that the image resource will always exist. Sorry, but no. You can’t guarantee that any resource in the filesystem always exist. You traded away some error handling from your strong typing for a crash. That’s not better, but it was the damn example project.

  16. The next language by Anonymous Coward · · Score: 2, Interesting

    Needs to find a way to provide intuitive usage of all those cores. One of the reasons C was so successful was it abstracted the hardware into a human understandable model. One of the problems with all the new languages is they try to fit a square peg in a round hole and ignore how the hardware works. Yes hardware has gotten much much much faster, but so much of that speed has been consumed with layers and layers and layers of abstraction. If someone figures out how to do what C did for uni-processor computers on multi-cores, that will be gold.

    1. Re:The next language by Anonymous Coward · · Score: 0

      Already been done. It's called the JVM. Use Java, or if you're one of those people that has to have new shiny use Kotlin.

    2. Re:The next language by Anonymous Coward · · Score: 0

      No its not.

    3. Re:The next language by complete+loony · · Score: 1

      Sure, the swift compiler has to strip away a few layers of abstraction first. But swift is compiled using the same LLVM backend as clang.

      --
      09F91102 no, 455FE104 nope, F190A1E8 uh-uh, 7A5F8A09 that's not it, C87294CE no. Ah! 452F6E403CDF10714E41DFAA257D313F.
  17. Swift is for Grandpa by 110010001000 · · Score: 2

    All us cool kids have switched to Go and Rust. It is better to use the latest languages produced and controlled by a single corporate entity to keep your skills "sharp". By the way, can someone find me a job? I don't know C or C++ but I know how to use the latest frameworks!

  18. CPU transitions by DontBeAMoran · · Score: 1

    I don't know jack about Swift, but does it prevent people from assuming things about the CPU?

    It could very well be that Apple has been planning a transition to ARM CPUs for a long time and Swift is one of the step required to have everyone coding in a language were re-compiling for a new CPU is as effortless as possible to make sure all programs can make the jump to the next generation of their computers.

    --
    #DeleteFacebook
    1. Re:CPU transitions by Anonymous Coward · · Score: 0

      I don't know jack about Swift, but does it prevent people from assuming things about the CPU?

      No.

    2. Re: CPU transitions by Anonymous Coward · · Score: 0

      Are you totally ignorant of Apple's history? They've already made major CPU architecture jumps years ago, and they were pretty much seamless for end users thanks to the Mac 68k emulator, Rosetta and universal binaries. In fact, those kinds of techniques are far more general and effective than this Swift theory you've concocted. A CPU architecture change really isn't that big of a deal for Mac users.

    3. Re: CPU transitions by DontBeAMoran · · Score: 1

      I'm talking about a seamless transition for the programmers, not the users.

      --
      #DeleteFacebook
    4. Re:CPU transitions by ceoyoyo · · Score: 1

      Objective-C did that pretty well. IIRC at one point you could compile an objective-C program into an app bundle that supported 32-bit PPC, 64-bit PPC, 32-bit Intel and 64-bit Intel. The programmer didn't have to care, and the user didn't either: the same app would run on any of the four platforms.

  19. Who loved Objective-C? by Anonymous Coward · · Score: 0

    The summary seems like a plea to bring back Objective C features that do not exist in Swift, which seems to pretend like Objective C was a good language. Apple finally replaced it because they realized that Objective C was the most limiting

    The message passing system can be added as a layer on top of your own code in Swift, rather than being a jumbled mess of "it's awesomely powerful once you learn it" features that Objective C offered alongside some of the most overly complex syntax that I can remember in a modernly used language.

    Anyone hoping to solely use Swift is specifically an Apple developer and that is its point. You cannot take libraries written in Swift and make them transferable -- the language didn't even compile on Windows for a long time. If you want to develop on MacOS/iOS and you honestly want your code to be transferable, then use a framework or develop things in another language that is intended to run on Android (and Windows), then write the UI in Swift if you want. That should allow you to get a native look and feel with minimum effort across every platform that you choose to support.

  20. Re:apple is the best!!! by DontBeAMoran · · Score: 2

    Given the size of Apple's bank account, shouldn't we be writing Appl€?

    --
    #DeleteFacebook
  21. Remember the bad old days? by Anonymous Coward · · Score: 0

    When every platform had it's own incompatible suite of tools. And porting software between them was a real pain. It was a big deal to port your game from C64 to DOS and TRS-80 CoCo.

    Everything that is old is new again.

    -or-

    Swift is the emporer's new clothes.

  22. Doug Crockfield by phantomfive · · Score: 1
    Doug Crockfield said it best:

    Anytime we change a software standard, it's an act of violence. It is disruptive. It will cause stuff to fail. It will cause cost and harm to people. So we need to be really careful when we revise the standards because there is that cost. We have to make sure that we're adding so much value to offset the cost.

    --
    "First they came for the slanderers and i said nothing."
    1. Re: Doug Crockfield by Anonymous Coward · · Score: 0

      His name is Doug Crockford, for crying out loud. If you can't get the guy's name right, why should we trust what you're saying has any value? Shit, why should we even trust what Crockford is saying? He promotes the use of JavaScript, which is the worst mainstream programming language (it's far worse than even PHP). In my opinion, anyone who suggests using JavaScript should not be taken seriously.

  23. Odd priorities by JesseMcDonald · · Score: 0

    Define the convenience and elegance of nil-message passing only as a source of problems. Classify the implicit optionality of objects purely as a source of bugs.

    This is what they choose to complain about, fixing the "billion-dollar mistake"? They actually want the language to implicitly accept all messages sent to nil as no-ops with a default return value, regardless of the intended interface, and to allow nil to be passed for any reference parameter even when it makes no sense for the parameter to be omitted?

    I would be among the first to promote language-agnostic APIs and allowing the developer to choose the language best suited to the problem domain. However, complaining about the parts of Swift that Apple got right is not very likely to make me more sympathetic to their cause.

    --
    "The state is that great fiction by which everyone tries to live at the expense of everyone else." - Bastiat
  24. translation: I don't like swift by Anonymous Coward · · Score: 0

    That article might have just said "I don't like swift" and saved us a whole lot of time. I am not a super fan myself. Though I have never understood why you need most languages... C/C++. and Perl/Python pretty much cover most any need. Occasionally there is an intelligent discussion of problems that must be solved inelegantly that some language makes beautiful, but if they're truly valuable, they usually make their way into other languages. but if it makes Graphical and OO apps easier to program then god bless

  25. ObjC to Swift, 4 years in by Arkham · · Score: 3, Interesting

    I was a huge fan of Objective-C. I still think it's an elegant language. I love the delegate patterns, I love the quirky stuff like method swizzling, I love the runtime message passing.

    When Swift first came out, it was really rough. The Obj-C bridge APIs were all using forced-unwrapped optionals and the like, and Apple didn't do a great job explaining why all of that was in place. Only with Swift 2, 3, and 4 did it become clear that you should never force-unwrap unless using some crufty API that required it (which it turns out is almost never these days).

    I do miss some things like nested message passing, but I also don't miss a lot of things. I love the map, reduce, and filter capabilities, I like the more nuanced closures vs completion blocks. There are still things that frustrate me, but they generally get better every year. Swift is one of my favorite languages to code in these days.

    --
    - Vincit qui patitur.
    1. Re:ObjC to Swift, 4 years in by Anonymous Coward · · Score: 0

      Is that all you can dream of, fix unwrapped optionals?

      That's pretty retarded way of going by being a developer.

    2. Re:ObjC to Swift, 4 years in by Tony · · Score: 1

      This.

      HUGE fan of Objective-C, back from the NeXT days. Been writing iOS apps since ARC was optional and I never used it, because *I* knew how to alloc and free memory. Yeah, that meant it was a pain in the ass when Apple made ARC a requirement.

      I miss introspection, sure. But optionals, tuples, native unicode support, default parameters, conditional generics, and a consistent calling syntax just makes my life easier. Add to that first-class immutable structs, better functional programming support, and stronger exception handling, and I just enjoy programming Swift more than Objective-C.

      It's not like dynamic dispatch went away -- it just got shuffled to object extensions.

      That said, there are some things I don't like about Swift: lack of introspection (as I admitted), and especially still using ARC for memory management. While it may be fast, resolving retention cycles can be difficult, especially if one half of the retention is in some Cocoa library.

      Swift doesn't lock you into Apple products. It's an open-source language, for cryin' out loud. What locks you into Apple products are the libraries you use to target a specific platform. Just like MFC locks you into Microsoft products.

      I can see why some people might prefer Objective-C. I still look on it fondly as the best of the C-based OO languages. Hell, I still love programming in straight-up C.

      I'm just glad I made the jump to Swift.

      Oh, I'm also moving to Kotlin for my Android projects for many of the same reasons.

      --
      Microsoft is to software what Budweiser is to beer.
  26. Swift solves NIH - "Not Invented Here" Syndrome by JoeyRox · · Score: 1

    And ironically solves NIH by copying elements from nearly every other programming language in existence.

    1. Re:Swift solves NIH - "Not Invented Here" Syndrome by Anonymous Coward · · Score: 0

      That is the apple way

  27. Reduce bugs + Retain performance by Tim12s · · Score: 2

    Reduce bugs + Retain performance... Quite often those two are not aligned.

    Apple live in a world where the real value of their product is dependent on 3rd party developers.

    (1) iOS apps crashed more than android apps. The common causes for application crashes on iOS and noticed that the majority of crashes are based on poor coding due to legacy syntax which can be corrected. Shown below are some extracts from 2016.

    (2) Typical of any virtual machine is the initialization cost of the VM. This means that you need to take a fully compiled approach otherwise you lose perceived performance advantages. JVM code is often more performant than a typical C, written at the same skill level, once the VM is warm/hot and great for server workloads however initialization costs are unavoidable.

    Everyone forgets history.

    FYI - ios apps crash more than android apps: https://www.techspot.com/news/...

    FYI - some infoq: 47% of apps crash more than 1% of the time: https://www.infoq.com/news/201...

    Android 2.3 'Gingerbread' had a crash rate of 1.7%, for example, while iOS 6 apps crashed 2.5% of the time.

    FYI - AppCoda: https://www.appcoda.com/apteli...

    3 Most Frequent iOS Crashes , 23rd May 2016

    SIGSEGV (50%) - This signal occurs when your app attempts to access memory that has not been allocated by the program.
    NSInvalidArgumentException - This crash occurs when a method is being called on an object that can’t respond to it.
    SIGABRT - You’ll see this in your debugger when there is an unhandled exception (see #2). However, in a deployed app SIGABRT appears when there is an assertion failure or abort method called within the app or the operating system. Often raised during asynchronous system method calls (CoreData, accessing files, NSUserDefaults, and other multithreaded system functions).

    1. Re:Reduce bugs + Retain performance by Tim12s · · Score: 1

      Again, iOS apps crashed 47% more than Android apps - That is a relatively HUGE difference in experience.

      ---

      Android 2.3 'Gingerbread' had a crash rate of 1.7%, for example, while iOS 6 apps crashed 2.5% of the time.

      (1) iOS apps crashed more than android apps. Apple would have noticed the common causes for application crashes on iOS and that the majority of crashes are based on poor coding due to legacy syntax which can be corrected. Shown below are some extracts from 2016.

    2. Re: Reduce bugs + Retain performance by Anonymous Coward · · Score: 0

      That was before swift was released.

  28. I know different (via Object Pascal)... apk by Anonymous Coward · · Score: 1

    See subject: Via Delphi (especially XE 10++) or FreePascal + Lazarus IDE 1.8.2 APK Hosts File Engine 64-bit https://news.slashdot.org/comments.pl?sid=12218294&threshold=-1&commentsort=0&mode=thread&pid=56764940/

    I ported to Linux, Windows, BSD & MacOS X (phones handled by Delphi IF I wish to spend the coin, & I don't + I think "smartphones" are security issue riddled TOYS - I actually LIKE FreePascal BETTER now).

    * Tools for development, especially in PROVEN older languages (especially for my program, it was C++ or Pascal to me (my favs) & since C is roots of C++ & C has buffer overflow security issues? Object Pascal it was for me since my program deals HEAVILY in stringwork (no buffer overflow possible as length's built-into Pascal strings)).

    APK

    P.S.=> Truthfully? It was a VERY EASY PORT from Delphi code for Win32/64 into Linux/BSD/MacOS X (except for some differences in TCP/IP ICMP stack API work which I "busted thru" finding out ping had MAC restrictions on it, NOT the RAW IP stack Linux has vs. WinSock2 LIMITED ones by default to most users))... apk

  29. Why Swift ? by Anonymous Coward · · Score: 0

    * Memory Safe (that catches about 50% of CVE exploits)
    * Developer controls object lifecycle, unlike Java and C#
    * Because of that:soft-realtime capability, unlike GC languages

    This IS a step in the right direction, because left and right computer systems are pwned.

    http://altwissenschaft.ddnss.de/Ansaetze.html, Section 5.

  30. They did it for the by Anonymous Coward · · Score: 0

    children. Everyone is a programmer now per Tim Cook. First thing he brought up at WWDC. lol

  31. Go by darkain · · Score: 1

    Microsoft has Visual Studio (C/C++, C#, Basic, etc). Google has GO. Apple has a pissing contest, I mean, Swift.

    1. Re:Go by Anonymous Coward · · Score: 0

      And then there was - kotlin....

  32. Flutter for 2D, Unreal for 3D, Swift for NOTHING! by Anonymous Coward · · Score: 0

    I wanted to like Swift, but it's just like a really uninspired rip-off of Kotlin. I used Swift for one app, but then when it became clear Apple would just randomly be making breaking changes every year, instead of wasting time "maintaining" code that was perfectly fine in the last version, I decided to never use Swift again.

  33. You lost me at Cocoa by your_mother_sews_soc · · Score: 1

    I paid the bills as a Carbon (who knew?) developer. Considering I've always been able to keep current and learn new skills every few years, I was blindsided by Cocoa/Objective-C and the change to the Apple Developer tools. Inside Macintosh was a great resource and when Cocoa was born Inside Macintosh was left by the wayside. The small independent/inhouse developer was left to flounder. For all the greatness attributed to Steve Jobs, he seemed to have abandoned the small developers who couldn't go to "boot camps" or wherever else folks went to get on board the new platform. OS X is nice, but Carbon was a well documented and easy to navigate environment. Carbon made the Mac what it was and Apple and Steve Jobs decided to push NeXT OS instead. I am not alone in having fond memories of Carbon while using Microsoft's tools to ply my trade.

    --
    My user name was a mistake. Input wasn't restricted, my bad.
    1. Re:You lost me at Cocoa by shess · · Score: 1

      I paid the bills as a Carbon (who knew?) developer. Considering I've always been able to keep current and learn new skills every few years, I was blindsided by Cocoa/Objective-C and the change to the Apple Developer tools. Inside Macintosh was a great resource and when Cocoa was born Inside Macintosh was left by the wayside. The small independent/inhouse developer was left to flounder. For all the greatness attributed to Steve Jobs, he seemed to have abandoned the small developers who couldn't go to "boot camps" or wherever else folks went to get on board the new platform. OS X is nice, but Carbon was a well documented and easy to navigate environment. Carbon made the Mac what it was and Apple and Steve Jobs decided to push NeXT OS instead. I am not alone in having fond memories of Carbon while using Microsoft's tools to ply my trade.

      Eh, I spent the 90's working on NeXTSTEP stuff and abandoned Apple for a decade or so after the merger, but my opinion is exactly the opposite - after using NeXTSTEP, I looked at MacOS and could hardly believe that that was what Mac was running in the late 90's. Simply put, they were mired down by technical constraints which were making it increasingly hard to make broad changes and were looking for a way out. They didn't just realize it when they acquired NeXT, they'd already failed to build a replacement with Pink/Taligent.

      Watch the Jobs 1997 WWDC fireside chat. I spent a lot of my career frustrated with him, but in that talk he was spot on that it didn't matter how cool opendoc or other technologies were if nobody used them. Having a well-documented but dead platform helps nobody.

  34. Misleading headline... by Anonymous Coward · · Score: 0

    Four Years On, Some Guy Ponders The Real Purpose of Apple's Swift Programming Language

    FTFY. One dude with a blog is not "Developers"

  35. Go To Sodom by Anonymous Coward · · Score: 0

    you P.O.S.

  36. Swift has never made sense to me by l0ungeb0y · · Score: 1

    Apple touted it as a more human-readable, easy to grok language, but it's only marginally more easy to deal with than the unwieldy Obj-C it's meant to supplant. Frankly, I don't think Apple should be focusing on Languages, they clearly do not understand how to support developers or produce a language that streamlines development. Perhaps they should copy MS and produce a language that rip-offs the Java API with Obj-C or Swift as it's underpinnings, as much as I can't stand MS, I opted for C# for some Unity projects and was quite happy to work with it and had little issues with diving in and working with it with no prior exposure to it

  37. Really by jimbo · · Score: 1

    "..an unbearable mental load" - a language is a tool, ffs, it has issues; so learn them and use it if you have to or become a florist.

    1. Re:Really by Jeremi · · Score: 1

      "..an unbearable mental load" - a language is a tool, ffs, it has issues; so learn them and use it if you have to or become a florist.

      Part of being an effective developer is choosing the right tool(s) for the job. If you choose poorly, you end up spending too much of your time fighting the mismatched tools rather than getting your program working, and you end up with a poor-performing/buggy/hard-to-maintain program that took a long time to develop and may have to be thrown out anyway.

      Even a florist would know better than to use a jackhammer to trim bouquets.

      --


      I don't care if it's 90,000 hectares. That lake was not my doing.
  38. The Purpose? Kill Windows Phone by RoscoeChicken · · Score: 1

    Apple didn't want business logic developed in C++11. That would have allowed sharing between Windows Phone and iOS.

  39. What a fucking idiot by Anonymous Coward · · Score: 0

    Swift started out very rough with a shitty toolchain and bridge to Cocoa, but it has improved leaps and bounds. I've been developing in it since late 2014 and have written an application that is being used by thousands of people daily and generating millions per year in revenue. Only a very small part of the app is written in Objective-C.

    Swift was very jarring to start using, just like when I moved to Objective-C from C++. After working in Objective-C for a few years I had a revulsion to working in C++ and now I have a similar feeling when having to work in Objective-C.

    Some of the cool things you can do with Objective-C like method swizzling and dynamic message handling are things you really shouldn't be doing, but if you do need to do those things there's still nothing stopping you from adding some Objective-C code into your Swift project.

    Swift is far and above Objective-C in terms of readability and ease of use and makes working with blocks a lot easier. It requires a bit of a shift in mindset compared to Objective-C, but you'll end up writing better code. Working with immutable data wherever possible, combined with blocks makes multiprocessing easier. Our defect count is much lower since adopting Swift.

    The most exciting thing about Swift is that Apple have open-sourced it and you can use it on backend code. We've been working this year to replace some our backend with Swift, with the end-goal of having the client and server sharing common data model and business logic code.

  40. It *does* look better than Objective-C ... by Qbertino · · Score: 1

    .. i.e. less scary to most people.

    However, if you want to establish a PL it has to be cross-plattform. That's a given. And better at cross-plattform than any other PL. I mean GUI builder, binary compiler, FOSS all the way, hardware trickery, etc. Fall short on that and you'll have a hard time getting tracktion. .Net anyone? We have enough flaky half-assed shit in the PL space already - i.e. every freakin' PL out there. Apple has fallen a little short of this.

    The only other possible option for them is offering a zero-fuss experience for those who want to develop for the Apple ecosystem. The GP hints that this is not entirely the case - which would be a drag and a shortcoming on Apples behalf.

    About 7 months ago I pondered getting a stack of Apple hardware (Phone, Tablet, new MB Pro) and professionally develop Apple code for a living. This GP post has me glad I didn't. Web it is for me still as I decided. Open plattform technology. Nice. Can be a serious pain doing tricky stuff, but then again that stuff is rare. Just right for neat x-plattform UIs and shoveling data about. ... The only problem are the douchebags and halfwits in the webdev space - that's a real downer and a pill. The magnitude of shitty code and utterly clueless decisions is absolutely staggering and time and time again manages to have me stand with awe and amazement as to how these people even manage to get things working.

    As I just experienced once again today after a hard workday at my current agency. .... aaaah, agencies, ... don't even get me started ...

    --
    We suffer more in our imagination than in reality. - Seneca
  41. As an older(62) developer that picked up SWIFT by oldgraybeard · · Score: 1

    I decided a little under 2 years ago to move into the iOS development world. Had a project I could sell ;) I did not have any Apple devices or computers and had not used an Apple product since an Apple II.
    So I picked up a Mac Mini and installed XCode and I was off. While I was more comfortable with Obj-C. I made the choice early to go with Swift. I think it was Swift 2-2.5 or something.
    The hardest part was moving to the Apple/Swift way. And the Apple Developer/VPP/DEP/Apple Enterprise Developer/MDM Management world. It is in my mind a bit complex ;) to deploy. But it does work pretty well considering I am managing and supporting devices scattered through out the US remotely. The biggest issue during the process was Apples repeated updates broke everything from the code, to signing, to deployment again and again and again. But with the latest XCode and Swift 4 seems to be better and stable.
    Anyway, What I delivered/got paid for by my client was a Swift 4 app with some Obj-C in specific places ;)
    I think Apple will move to Swift for all development eventually. But as with all things Apple they could turn on a dime in future and head off on an entirely new direction abandoning everything and everyone Swift ;)

    Just my 2 cents ;)

  42. Re:Flutter for 2D, Unreal for 3D, Swift for NOTHIN by DontBeAMoran · · Score: 1

    And Fluttershy for MLP! Yay!

    --
    #DeleteFacebook
  43. As usual in these cases by nospam007 · · Score: 1

    You using it wrong, peepaw!

  44. Tardy by Anonymous Coward · · Score: 0

    It appears that there is currently only one Swift compiler in existence and no ANSI or ISO standard. That means the language is not ready for prime time (just like C# and Java).

  45. Re:Flutter for 2D, Unreal for 3D, Swift for NOTHIN by Dog-Cow · · Score: 1

    So Swift was a rip-off a language released 2 years later, and Apple accurately stated that source compatibility would be broken. You are mixed-up and stupid.

  46. Objective C wasn't exactly a pleasure by balbeir · · Score: 1
    Well I prefer Swift over Objective C because I experienced programming in Objective C as painful.

    Very verbose syntax, and at least for me, hard to read/parse.

    I agree with the lack of introspection and dynamic dispatch being a bummer, though. And the Smalltalk style message passing appeared attractive.

    There was a time that this was not an issue because the alternatives were equally clunky and probably worse. But I would not be programming anything on iOS these days if it were not for Swift.

    1. Re: Objective C wasn't exactly a pleasure by Anonymous Coward · · Score: 0

      You've already posted that bullshit of yours above. Fuck off n1gger shill.

  47. Swift is perhaps slightly better than javascript by Anonymous Coward · · Score: 0

    Swift is perhaps slightly better than javascript.

    Which, believe me, is the faintest praise I can imagine.

  48. Apple tried to fuck OpenGL too by Anonymous Coward · · Score: 0

    Apple recently announced they were withdrawing support for OpenGL, even though it's now the most widespread graphics platform. Instead Apple expects developers to write only for their Metal platform.

    Fuck Apple. It's Microsoft all over again. The irony is today Microsoft is more open than Apple!

  49. Ruby is not (on Rails) by gawdonblue · · Score: 1

    Programming languages such as Lua, Objective-C, Erlang, and Ruby (on Rails)

    People, including TFS, seem to always conflate Ruby with Rails. Ruby is a programming language with many features, including easy metaprogramming for the creation of DSLs and useful frameworks. Rails is just one of these frameworks. It is definitely not a programming language in the way Lua, Objective-C, Erlang, or Ruby is.

  50. easier iOS apps by Anonymous Coward · · Score: 0

    Swift was created to be an easier & less error prone language to develop iOS apps (and now macOS apps).

    When I decided to create a mobile game (Slide Tilt Roll for iOS - 100% free) I took a look at the landscape and decided to go with iOS as I already had an iMac, so the toolchain & libraries are free to use. I then looked at Objective C versus Swift. While I've been programming in C for 30 years, I went with Swift as the syntax was much easier to read.

    Sure there were hiccups. I had to sacrifice iOS 7 compatibility because of a catch-22 which Swift 3 introduced in OpenGL uniforms. And I know the lack of a stable ABI is a major limitation for some developers.

  51. C# by ebvwfbw · · Score: 1

    Didn't we all wonder the same thing about C# ?
    Same thing with Ruby, Rust, Java?

    What a turd Java is. Man thing is always needing to be updated. It's also like the cockroach of languages. Never know where in the filesystem you'll fine an instance of old java laying around because the developers didn't know how to write java code such that it would work under newer versions. Lots of incompetent Java people out there.

  52. Swift burned me too bad by Anonymous Coward · · Score: 0

    I've been an iOS developer since 2009 - wrote a few free apps for fun, made a good chunk of change from some freelancing work doing it.

    I tried for fun to rewrite one of my aging tower defense games in swift, but this time I thought I'd improve on the game emmensely and maybe sell it for $0.99 on the app store. Who knows maybe I'd make a bit off of it. This was when Swift was still a 1.X and they had just announced swift 2.0. I thought, ok how bad could it be - how much could they change, might as well just make it for 1.X and just migrate the code later when 2.0 comes out.

    Turns out 2.0 came out and after updating Xcode and running the migration tool, I ended up with so many errors, warnings, and broken code that the entire app I had just spent months remaking was completely broken, and I had no idea what I needed to do to fix all of the issues. I got discouraged, annoyed, and so upset that I haven't touched the code again since. The app would even crash immediately after trying to open it on my phone - but only after an iOS update - no reuploading to the phone to make everything break.

    This isn't the first time I've been burnt by apple - I was doing Mac Apps during the period of ARC becoming non-optional after always doing my own memory management - meaning huge refactors everywhere that time too. All the while, anything I've ever written for android or windows still plugs along to this day.