RFC: making Swift.org a more valuable resource for the Swift community

That app is a rather thin wrapper around a web view but it is still useful in that it provides push notifications. (I tend to just use Safari most of the time but I have the app installed for notifications.)

1 Like

FWIW, we have a changelog to capture this sort of stuff. I'm not sure how carefully it is kept up to date though.

-Chris

Maybe a bit off-topic: This is just my feeling, but at some point I feel Swift will have to move to a “Swift Foundation” at some point... something akin to the RISC-V Foundation.

As someone who really loves Swift, it would break my heart if Google (for example) forked Swift (a la webkit) because it was “controlled” by apple, and it would be a real shame if no large competitor to Apple also didn’t adopt it for the same reasons...

3 Likes

Betting on easy JS transpiling (Kotlin has free capable web playgrounds) and WASM integration, JVM languages support (it can mix with Java codebases), as well as being from a third party is surely helping Kotlin grow very very fast... not to mention the ability to use Kotlin on both Android and iOS (closer to a first class citizen support than Swift for Android is... any plans to change that? Working with Jetbrains and possibly Google?)

A well funded foundation and Apple’s commitment not to fork the foundation’s Swift vision and to promptly integrate it with Xcode would be super important for this.

One thing that would be an issue though, compared to JS and Kotlin, is that Swift will be soon integrated into the OS and this seems to me that will tie the version of Swift people develop against to iOS/macOS releases... if those OS’s were only to integrate new Swift releases for the major upgrade it would mean a single Swift release a year although maybe some minor version updates could also update the language. Sure, Java changes every two years or so, but Kotlin is fully independent from Android or Windows or browsers releases and it is helping it to evolve fast (and thanks to it being JVM based distributing binary libraries is less of a problem). How is this being addressed?

We all like Swift and a lot of us really really like macOS/iOS, but as a Multiplatform developer your choice is not about just what you like but best bang for the buck and considering the lower reach Swift has beyond iOS/macOS native apps the language needs to have a 10x productivity advantage over the competition to beat it and justify having two concurrent codebases.

I do not want to make excuses for the community, but if Swift is to become an ubiquitous language it requires strong backing and financial resources: people paid to work on Swift for Android, Windows, Linux and web JS/WebAssembly full time.

1 Like

The latest blog post on exclusivity enforcement reminded me of this issue again when I tried to open the two SR links in new tabs. I command-clicked the first one and it only paused for a few seconds and then loaded in the current tab.

4 Likes

@tkremenek Recently I have been working on online playground with code IntelliSense , you can find source repo here for kicking initial play.swift.org
GitHub - satishbabariya/swift-online-playground: Swift Online Playground with IntelliSense

demo : https://web-swift-playground.7e14.starter-us-west-2.openshiftapps.com/ (it may be slow due to free tire account)

3 Likes

This looks really cool. The demo link doesn't work for me but I was able to run it locally using Docker. I especially like the code completion support. I think one key aspect of having a live, hosted instance like this would be avoiding abuse.

Looks like the code completion is based on sourcekit-lsp. Very nice. What version of Swift are you using in the Docker image?

Latest Swift development snapshot, can be configured into a stable one. it's based on the nightly build swift development docker , found here
GitHub - satishbabariya/swift-snapshots-docker: Swift Development Snapshot Docker,
GitHub - nomuq/sourcekit-lsp-docker: Swift LSP Docker

unfortunately, the demo link was hosted on openshift trial account.

WebAssembly could help with this, as anything you create would run locally on your own machine.

Some members of the community have created a demo sandbox. Compilation happens remotely but the products run in your browser. We could maybe do something like that, with a timeout if the compilation process takes more than 60 seconds.

One of my favourite things is clang-in-browser: A version of clang which has been compiled to WebAssembly, so even compilation happens locally. That's the dream, I guess. It takes like 30 seconds to start up, but I think that's acceptable.

iOS 11+ supports WASM, so technically you should be able to run clang on your iPhone/iPad that way :wink:
I get an error when instanciating on my 6S, but maybe a newer model could handle it.

5 Likes