6 ms·
Why I don't want Swift to be your first language (from a student's point of view): 1. Where am I going to test my applications? Not all students have Apple's p
by r3bl 11y ago
Why I don't want Swift to be your first language (from a student's point of view):
1. Where am I going to test my applications? Not all students have Apple's products (I never had any of them). On the other hand, if I use Python, or Java, or C/C++, I can test my application wherever I want.
2. As far as I know, Swift will be open source (at least, that's what Apple said). But Swift is not open source _at the moment_ (please correct me if I'm wrong).
3. Swift is a new language. If I type "Swift tutorial" on Google, and I type "Python tutorial" on Google in a second tab, I'll get much more relevant results for much more platforms when I type "Python tutorial".
I don't care how good the syntax is. If a programming language is not currently available on like every platform and if I can't build my application using whatever I want to use (including a text editor and a compiler), it's not a good choice for students no matter what you say.
- ra88it 11y agoAt the end of the article, the author gives several reasons why he won't be teaching Swift to students yet. He includes each of your points. (With the assumption that eventually they will be moot.)
- r3bl 11y agoNope. He lists that there's no Windows IDE, which is far from being able to run the program everywhere and using whatever I want to use to build it (as I have said it). I also think that .NET languages (like Visual Basic .NET and C# .NET) are not a good starting language, even though one of them was my starting language thanks to my high school and my college (both taught me Visual Basic .NET for one year). Plus, he states that Swift is open source at the moment, which, as far as I know, is not true. He didn't mention any of those three points I made. EDIT: Replaces .NET with .NET languages.
- dragonwriter 11y ago> I also think that .NET is not a good starting language Well, that's sort of obvious, in that .NET is a platform for which many languages (VB.NET, C#, F#, Python, etc.) are available, not a language.
- r3bl 11y agoIt came out wrong, but I was thinking about Visual Basic .NET and C# .NET. Not sure about the others since I never tried them. Thanks for pointing that out, I'll edit my comment.
- Apocryphon 11y agoOnce it's open source, isn't it logical to conclude that there will be open source runtimes that run on non-Apple products? Give it a year or so.
- gorena 11y agoNot even a year, about a month. Swift for Linux will arrive with the release of Swift 2.0, which will coincide with the release of Xcode 7, which will coincide with the release of iOS 9 ... which will coincide with the announcement of the next iPhone, which should be around late September, as usual.
- Apocryphon 11y agoHm, do you think it'll only take a month for it to be ported to Windows?
- gorena 11y agoI'm not an LLVM expert, but Swift is an LLVM frontend, so once it's open source, I think it should work for the various backends? Right now the issue is library support - swiftc can already just spit out LLVM IR: https://github.com/kripken/emscripten/issues/2427 https://github.com/kripken/emscripten/issues/2427 The stdlib would be included in the open source release. Linux boxes would fulfill "non-Apple product" though. Unixy programming languages like Swift and Python have always been weird on Windows.
- dman 11y agoCould you elaborate on Python being weird on Windows?
- AstralStorm 11y agoPython is a set of packages. On Windows, you're supposed to use a distribution, such as Anaconda. Even then, building some of the fancier libraries (with native code) by hand is bit involved. In fact, Anaconda works very well on Windows, as long as you don't require extreme latest versions of modules.
- deleted 11y ago[deleted]
- incepted 11y ago> I can test my application wherever I want. And if you are using Java, not only can you test your application wherever you want, you can also write it wherever you want. Languages that don't offer this multiple flexibility will have a tough time becoming a main teaching language in schools.