9 ms·
Reading through the top level comments, they are all a form of surface level aversion to the unfamiliar. It really highlights that many industry trends are base
by flipgimble 7y ago
Reading through the top level comments, they are all a form of surface level aversion to the unfamiliar. It really highlights that many industry trends are based on hot takes and not any sort of deep analysis. This makes sense why Javascript and C++ will remain as entrenched favorites despite their technical flaws.
For those who actually spent time with Swift, and realize its value and potential, consider yourself lucky that large portions of the industry have an ill informed aversion to it. That creates opportunity that can be taken advantage of in the next 5 years. Developers who invest in Swift early can become market leaders, or run circles around teams struggling with slowness of python, over-complexity of c++.
Top three comments paraphrased:
> 1) "huh? Foundation?"
but you have no qualms with `if __name__ == "__main__"` ?
> 2) "The name is pretentious"
is that an example of the well-substantiated and deep technical analysis HN is famous for?
> 3) Swift is "a bit verbose and heavy handed" so Google FAILED by not making yet another language.
- BubRoss 7y agoI think you misunderstood criticism about the name differential programming and the idea that building in a gradient operator in to a language is somehow a breakthrough that warrants the label "software 2.0". This is not really about swift. Swift seems to have been chosen because the creator was there when they picked the language, even though he left.
- flipgimble 7y agoI think my point stands that the criticism on this thread is mostly a surface level reaction and hung up on meaningless slogans like "software 2.0" or "breakthrough". You use of the word "seems" is very apt here. Have you considered that Google might have hired Lattner precisely because he is the founder of LLVM and Swift, and they hoped to leverage his organizational skills to jump start next generation tooling? We know google is heavily invested in llvm and C++, but dissatisfied with the direction C++ is heading [0]. They also are designing custom hardware like TPUs that isn't supported well by any current language. To me it seems like they are thinking a generation or two ahead with their tooling while the outside observers can't imagine anything beyond 80s era language design. [0] https://www.infoworld.com/article/3535795/c-plus-plus-proposal-dismisses-backward-compatibility.html https://www.infoworld.com/article/3535795/c-plus-plus-propos...
- pjmlp 7y ago> To me it seems like they are thinking a generation or two ahead with their tooling while the outside observers can't imagine anything beyond 80s era language design. Given the ML and Modula-3 influences in Swift, and the Xerox PARC work on Mesa/Cedar, it looks quite 80s era language design to me.
- DeathArrow 6y agoSwift inherits some APIs from Objective C. You have to use something like CFAbsoluteTimeGetCurrent while even in something not very modern like C# you would use DateTime.Now()
- p1esk 7y agoI'm a deep learning researcher. I have an 8 GPU server, and today I'm experimenting with deformable convolutions. Can you tell me why I should consider switching from Pytorch to Swift? Are there model implementations available in Swift and not available in Pytorch? Are these implementations significantly faster on 8 GPUs? Is it easier to implement complicated models in Swift than in Pytorch (after I spend a couple of months learning Swift)? Are you sure Google will not stop pushing "deep learning in Swift" after a year or two? If the answer to all these questions is "No", why should I care about this "new generation tooling"? EDIT: and I'm not really attached to Pytorch either. In the last 8 years I switched from cuda-convnet to Caffe, to Theano, to Tensorflow, to Pytorch, and now I'm curious about Jax. I have also written cuda kernels, and vectorized multithreaded neural network code in plain C (Cilk+ and AVX intrinsics) when it made sense to do so.
- flipgimble 7y agoI’m not telling you to switch. I don’t think the S4TF team is telling you to switch anytime soon. At best you might want to be aware and curious about why Google is investing in a statically typed language with built in differentiation, as opposed to python. Those that are interested in machine learning tooling or library development may see an opportunity to join early, especially when people have such irrational unfounded bias against a language, as evidenced by the hot takes in this thread. My personal opinion, that I don’t want to force on anyone, is that Swift as a technology is under-estimated outside of Apple and Google.
- codemac 7y agoYou realize with any modern C++ developer, they can program basically the same stuff, in the same number of lines modulo 4 lines of #includes? #include <numeric> #include <iostream> #include <chrono> #include <vector> int main(int argc, char** argv) { for (int i = 0; i < 15; i++) { std::vector<int> result; auto start = std::chrono::system_clock::now(); for (int j = 0; j < 3000; j++) { result.push_back(i); } auto sum = std::accumulate(result.begin(), result.end(), 0); auto end = std::chrono::system_clock::now(); std::cout << (end - start).count() << " " << sum << std::endl; } } I think you underestimate what a multiple decades of coding 40hrs a week gives you in terms of development speed.
- deleted 7y ago[deleted]
- flipgimble 7y agoyou may have replied to the wrong thread. But I'd like to point out that while Google has some of the top C++ experts working for them, is heavily involved in C++ standardization and compiler writing process, in 2016 they claimed to have 2 billion lines of C++ running their infrastructure... .. and yet they don't suffer from familiarity bias or the sunken cost fallacy I hear in your comment. Instead Google C++ developers are sounding an alarm over the future direction the language and its crippling complexity: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2020/p2137r0.html http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2020/p213...
- pjmlp 7y agoGoogle is also known for having brain dead guidelines for C++, that speak against community best practices. Just like with Go, their monorepo and internal tooling deturps the understanding how everyone else actually uses C++.
- carapace 7y ago"IT is the only industry more fashion-driven than the fashion industry." ~RMS (or somebody else, I can't be bothered to look it up right now.) It's a problem.
- sparrc 7y agoYou're completely misinterpreting (I'm the author of (1)). C++ and javascript are languages of professional software engineers, of which there are many many more languages with various pros and cons. Python has been the defacto standard in scientific/data/academic programming for decades. The only other language you could say rivals it would be MATLAB which is even more simplistic. My point is that simplicity and clarity matters to people who don't care that much about programming and are completely unfocused on it, they are just using it do get data for unrelated research. 'if __name__ == "__main__"' is not in the example code nor is it a required part of a python program so not really sure what your point is here.
- seccess 7y ago> Python has been the defacto standard in scientific/data/academic programming for decades In my experience (Genomics) this is simply not true. Python has caught on over the last 5 or so years, but prior to that Perl was the defacto language for genetic analysis. Its still quite heavily used. Perl is not a paragon of simplicity and clarity.
- alphachloride 7y agoIt may not be true for a niche field. It is true broadly for computation in academia.
- seccess 7y agoI don't find this response convincing because: (a) While I'm being honest that my observations are based on the fields I have experience, there is no such justification that "It is true broadly for computation in academia" in your comment. (b) Interpreting "niche" as "small" (especially given your "true broadly" claim): Computational genetics is huge in terms of funding dollars and number of researchers.
- Darvon 7y agoI was in academic compsci/ai from 2001-2017 and it was entirely c++ and python in my department, except for one oldschool professor who used delphi.
- id_ris 7y agoThe biggest drawbacks of Swift are the legacy relationships it has to the Apple ecosystem. Yet swift is open source, and Apple and the community can fork it if they so choose. This is great news for me personally as an iOS developer and an ML noob who doesn't want to write Python. I can't comment on Julia because I have no experience with it, but I applaud the efforts to build the Swift ecosystem to challenge Python. I think a lot of the criticisms so far are that it's early days for Swift in ML, and that's one point the author is emphasizing.
- pjmlp 7y agoJust look at how successful Objective-C has been outside NeXT and Apple during the last 30 years.
- dev_tty01 7y ago>4)"Google hired Chris Lattner and he forced Swift down their throat." Does anyone force anything on Google? This seems to express little confidence in the competence of Google and their people. Perhaps Google chose Swift and brought Lattner in for his obvious expertise.
- DeathArrow 6y ago>Developers who invest in Swift early can become market leaders, or run circles around teams struggling with slowness of python, over-complexity of c++. While other people will do the sensible thing and learn Rust. Because it runs circles around Swift, it offers many paradigms and can be used in almost any industry, operating system and product, not just developing apps for Apple's ecosystem. Swift will take over the world when Apple will take over the world which is safe to assume it will never happen. I am not saying at all that is bad to learn Swift and use Swift, but have correct expectations about it.
- dklend122 6y agoGoogle is working on multiplatform support for swift, and apple seems to be on board.
- Tainnor 6y agoI have spent 2 years of my life with Swift and I would say that I have a very well informed aversion to the language. Some ideas in the language or parts of its core concepts are really good. First class optionals and sum types, keyword arguments, etc., I liked all of those. Unfortunately, by and large, Swift is lipstick put on a pig. I have never used any other language that regularly gave me type errors that were WRONG. Nowhere else have I seen the error message "expression is too complex to be type-checked", especially when all you do is concatenating a bunch of strings. No other mainstream language has such shoddy Linux support (it has an official binary that works on Ubuntu... but not even a .deb package; parts of Foundation are unimplemented on Linux, others behave differently than on macOS; the installation breaks system paths, making it effectively impossible to install Python afterwards[1]). Not to mention, Swift claims to be memory-safe but this all flies out of the window once you're in a multithreaded environment (for example, lazy variables are not threadsafe). In addition, I regularly visited the Swift forums. The community is totally deluded and instead of facing the real problems of the language (and the tooling), it continues to bikeshed minor syntactic "improvements" (if they even are improvements) just so the codes reads "more beautifully", for whatever that is supposed to mean. But the worst thing is how the community, including your post, thinks Swift (and Apple) is this godsend, the language to end all language wars, and that everyone will eventually adopt it en masse. Even if Swift were a good language, that would be ridiculous. There was even a thread on that forum called "crowdfunding world domination". It has since become awfully quiet... [1]: https://bugs.swift.org/browse/SR-10344 https://bugs.swift.org/browse/SR-10344