4 ms·
Call OCaml from Objective-C, run on iOS, code sample and build steps
- hellofunk 11y agoOCaml is a much more interesting language to me for writing iOS or any other app than Swift is.
- melling 11y agoOCaml support on iOS is really cool but it needs more tooling and a critical mass in community size before it'll gain any kind of traction. Many developers still won't use Swift, for instance, because they think it's not ready for production yet. And there have been over three dozen Swift books published in 18 months: http://www.h4labs.com/dev/ios/books http://www.h4labs.com/dev/ios/books
- nv-vn 11y agoWhat would be really cool is some kind of cross-platform framework that would make OCaml viable for both Android and iOS development. If you're going to go to the effort to switch languages, you'll probably want cross-platform support in that language.
- hellofunk 11y agoThere are a number of issues with Swift, though I'm sure they will improve: 1) No backwards compatibility: developers must keep rewriting their Swift code with each new Swift release, since syntax and features often change. 2) Swift's interaction with C++ is a non-starter, and many, many apps use C++. 3) Some C APIs are still quite difficult to use from Swift. Objective-C, being a strict superset of C, makes it very easy to use Core Audio, for instance. OpenGL interop can also be a bit frustrating. 4) Swift's "functional" idioms are weak and poorly implemented. If you can't provide a true functional backdrop to these features, they probably shouldn't even be in there. Coming from a real functional language, you're in for nasty surprises in Swift if you casually use higher-order functions all over the place, because there is a lot of copying going on. 5) Swift's performance is definitely not, shall I say, "swift," though hopefully that will eventually improve. 6) Poor and confusing compiler errors. I actually realize now that I could go on all day about this.
- melling 11y agoYes, I'm sure 20% of the iOS developer community finds it difficult to use Swift for any number of reasons. However, for the other 80% Swift is more than sufficiently baked. You may have a few difficulties over the next 12 months but at least your code will be in Apple's "new improved language" and you will not have to figure out what to do in then 24-36 months when you realize ObjC disappeared faster than you expected or Apple decides enough people use Swift that it doesn't need to be quite as compatible with ObjC: http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html http://www.tiobe.com/index.php/content/paperinfo/tpci/index.... Few new iOS books are written using ObjC and few developers blog with it. Take notice when you read your next blog or see a new iOS book published.
- autoreleasepool 11y agoAgreed. I'm not sure why you were downvoted. If we are speaking strictly about iOS, you are 100% right. Swift is king. Swift is set to replace Objective-C and it has risen in popularity and adoption at an insanely rapid pace. Everyone is adding swift to their code base. Our watch-client for example, is written exclusively in Swift. We have a ton of C++ code too. It's not a problem because it's all wrapped in an Objective-C API anyways. Besides, Swift brings a lot more to the table than just saner syntax and less boiler plate. It also includes: a good type system, optionals, functional constructs, excellent OOP support, excellent error handling, scripting support, a repl, a great intermediate language in SIL, cross-platform (freeBSD soon) native code. Sure, it's not purely functional by any means, but it's neither is Rust. It's a good (not perfect) multi-paradigm language that can and will eat up a lot of the domain space C++/Go/Rust share for native applications. I even predict it will go a step further. Swift will, in my prediction, eventually allow for safe, zero-overead memory management abstractions similar to Rust (and to a lesser extent C++). This will make it a head on competitor with Rust and C++ for virtually all their use cases (except legacy support). My speculations is based on comments from the language's creator expressing desire for these features in Swift [0] [1]. [0] https://www.reddit.com/r/rust/comments/3vadg8/swift_is_open_source/cxnu2kk https://www.reddit.com/r/rust/comments/3vadg8/swift_is_open_... [1] https://lists.swift.org/pipermail/swift-evolution/Week-of-Mon-20151214/003494.html https://lists.swift.org/pipermail/swift-evolution/Week-of-Mo...
- deleted 11y ago[deleted]
- melling 11y agoThink this is related to one of Edgar's blogs that was discussed yesterday: https://news.ycombinator.com/item?id=10960753 https://news.ycombinator.com/item?id=10960753