Earlier quoted context omitted.
I think the pitch is that despite static typing, it offers a lot of multi-paradigm high-level features while remaining elegant with fairly minimal syntax compared to other native static languages like Rust or C++. It automatically manages memory but without a stop-the-world garbage collector and goes a long way to opening a lot of flexible design options to any developer: it has great support for generic programming,…
> but without a stop-the-world garbage collector a RC is a stop-the-world garbage collector when the reference count reaches 0 in very complex data structures, which trigger a cascade of deletions. Also it has issues with sharing data between threads leading to cache coherency contention and locks.
IBM says Swift is ready for the enterprise
91–100 of 235 posts
Re: IBM says Swift is ready for the enterprise
#92Earlier quoted context omitted.
It's a systems language, and imo way more beautiful than c++.
It's not really predictable enough for a systems language.
Re: IBM says Swift is ready for the enterprise
#93I think IBM might be moving Java/Websphere technical staff to Swift. Considering new versions Java/JavaEE are getting delayed so IBM would prefer to use Swift increasingly instead of Java.
So I would say IBM is scattering their eggs across multiple baskets.
Re: IBM says Swift is ready for the enterprise
#94When I recently interviewed at Apple I was told my position would primarily be coding in Java, but the team would be open to other languages as the project progressed and needs changed. I asked if they would consider Swift. Then was told that Swift wasn't production ready in their eyes. (I didn't get the job) I guess every team is different, but this attitude to dog fooding isn't great.
Swift is great for client-side work, but I wouldn't use it on the server. Each tool good for a certain job. Our current stack is Swift on the client, Elixir on the server, and I haven't been happier.
Re: IBM says Swift is ready for the enterprise
#95Earlier quoted context omitted.
To be ready for the enterprise ecosystem basically means that you can sue someone if things go wrong, and you can buy support packages for enormous sums of money. IBM is saying that you can 1) buy bluemix swift from them, and 2) sue them if anything goes wrong - but since they have a great legal team, they probably got ironclad agreements ready to go.
I thought stability of the ecosystem (i.e. stable standard library) was also a "must" for adoption by the enterprise. Never thought that a language in flux with "hosting" support from IBM is enough. But now it seems the enterprise world is eager to try the coolest thing and rewrite/refactor it after the next release as long as someone will host/run it. Now that you enlightened me I can see the stock markets, hospital…
They're still making money hand over fist in maintenance keeping the mainframes up (your state's DMV won't move off MVS/zOS as long as support for their old JCL/REXX stuff is still available, especially those 'cheap' z13s which come in at under 100k) but that's an entirely different tier of customer.
Re: IBM says Swift is ready for the enterprise
#96Overall I like Swift and it's certainly a massive quality of life improvement for Mac/iOS devs. But I don't see as much upside for enterprise development. Server side tooling and deployment is still TBD, reference counting adds non-negligible cognitive overhead vs GC in an environment where the downsides of GC matter much less. They will have to build a complete ecosystem of server-side libraries from scratch. And un…
To me sure there is things you think about but generally memory performance is less of a mental burden.
Also, swift 4 is supposed to support a rust like memory model. Not sure if it's opt in or how it will work but my impression is that it's memory model is about to support some new use cases to make it appropriate for more memory critical tasks.
Re: IBM says Swift is ready for the enterprise
#97When I recently interviewed at Apple I was told my position would primarily be coding in Java, but the team would be open to other languages as the project progressed and needs changed. I asked if they would consider Swift. Then was told that Swift wasn't production ready in their eyes. (I didn't get the job) I guess every team is different, but this attitude to dog fooding isn't great.
> Then was told that Swift3 wasn't production ready in their eyes. Well, not ready for their purposes, which (guessing from Java) would be some App/iTunes store backend, etc. Other teams in Apple already use it for native app development from what I've read.
I'd speculate that "not production ready" is at least partly rationalization or cover for "we really can't afford to screw around with this codebase, even though this is the company's Big New Thing."
Re: IBM says Swift is ready for the enterprise
#98So... what's the "elevator pitch" for Swift? It has anything interesting over Elixir or Go (well, go's feature is "lack of feature" but you know what I mean) or Scala or Kotlin? I know that iOS and MacOS desperately needed a modern language, and great for them that they have it now, but does the rest of the world need it?
I think the pitch is that despite static typing, it offers a lot of multi-paradigm high-level features while remaining elegant with fairly minimal syntax compared to other native static languages like Rust or C++. It automatically manages memory but without a stop-the-world garbage collector and goes a long way to opening a lot of flexible design options to any developer: it has great support for generic programming,…
I have to stop you there. You shouldn't compare anything to C/C++ or Rust after that. You are better off comparing Swift with Go(i.e. both have automatic memory management, nice syntax, static typing, dynamic feeling etc) or Java(automatic memory management, well established in the enterprise world). If Apple was to design a language to respond to Go or Java it would be Swift and that's it. So the pitch is that you have a nice language which encourages productivity and you can share the knowledge/code between server and client.
Re: IBM says Swift is ready for the enterprise
#99When I recently interviewed at Apple I was told my position would primarily be coding in Java, but the team would be open to other languages as the project progressed and needs changed. I asked if they would consider Swift. Then was told that Swift wasn't production ready in their eyes. (I didn't get the job) I guess every team is different, but this attitude to dog fooding isn't great.
The Dock and a few other components of macOS Sierra are written in 100% Swift, according to this year's WWDC.
Re: IBM says Swift is ready for the enterprise
#100So... what's the "elevator pitch" for Swift? It has anything interesting over Elixir or Go (well, go's feature is "lack of feature" but you know what I mean) or Scala or Kotlin? I know that iOS and MacOS desperately needed a modern language, and great for them that they have it now, but does the rest of the world need it?
1. It doesn't have a GC. While the JVM's GC is decent, it can definitely cause latency spikes.
2. It has value types. Go has this, but Scala and Kotlin mean running on the JVM which means leaving memory locality behind. In fact, Swift allows you to select whether you want an object that contains pointers to things or a struct. Go gives you structs and Scala and Kotlin give you pointer-based objects.
If all you care about is syntax, Swift might not be that interesting to you. However, you get options in terms of how the program runs that the other languages you've mentioned don't give you. You can't decide that you want to create an object in Scala or Kotlin that is contiguous in memory. You can't decide you'd rather not have GC pauses in Go.
In many ways, Swift brought together the kind of niceties that have been available before. Generics aren't something new, value types aren't new, objects aren't new, first-class functions aren't new, ARC isn't new, non-nullable variables aren't new, closures aren't new, type inference isn't new. . . But none of those languages have all of those. Go took a hard stance against generics (I'm not going to go into why). The JVM doesn't really do value types. GC has been the standard for most new languages for a while.
Swift definitely offers new things.