5 ms·
The languages actually aren't really the big investment. It's really two things: 1) Learning new concepts in computer science. For example Swift uses a lot
by WhitneyLand 10y ago
The languages actually aren't really the big investment. It's really two things:
1) Learning new concepts in computer science. For example Swift uses a lot of modern concepts around type safety, closures, parallelism, synchronization, etc. These are a big learning curve but they are not specific to Swift and you'll notice other modern languages are adopting the same concepts.
2) The UI frameworks are fundamentally different. If you're an option expert at XCode constraints, storyboards, etc, none of the applies to android and vice versa.
I can tell you this, if you do bite the bullet and learn both very well you'll be surprised how much it helps you learn other systems more quickly because you've see all the concepts before.
- jacquesm 10y agoIt's never just the language. The libraries are where the time goes and a language without libraries is fairly useless these days.
- Tanegashima 10y agoThis, and package managers. For example, node.js, many people say its popular because lots or webdevs knew JS already, but that's not even close to true, most people went to node.js because they found a couple of usable libraries on npm that gave the trust necessary to start the project.
- coldtea 10y agoYou got it reverse, since when Node started getting adoption npm wasn't even a thing or was still small. Back in the Node early days it was all "we can run JS we know on the server now" (plus some cargo cult hype about it being "fast because async").
- lacampbell 10y agoFor example Swift uses a lot of modern concepts around type safety, closures, parallelism, synchronization, etc. None of those things seem particularly modern to me. Does swift actually have any concepts that weren't already implemented in other languages by say, 1980? It might seem like I'm being pedantic, but the flip side is - why not learn older, simpler, more mature languages that already have those concepts?
- paulddraper 10y agoIt has options instead of null
- mbel 10y agoTo which the same argument applies.
- paulddraper 10y agoWhich languages before 1980 had an option/maybe type?
- steveklabnik 10y agohttps://en.wikipedia.org/wiki/Tagged_union#1960s https://en.wikipedia.org/wiki/Tagged_union#1960s (and so on in the rest of the article; you could make the argument that being able to express a sum type and using option/result pervasively are different things; I don't know much about early ML but it was from '73...)
- paulddraper 10y agoNo, a sum type is the essence. TIL that ML is ooold.
- _delirium 10y agoML has roots that go back a long ways, but it wasn't developed as a general-purpose programming language (for use outside theorem provers) until the '80s, and I'd consider it properly "released" to the general public as something intended for real use only in the 1990s, with the publication of the Standard ML definition (1990) the release of OCaml (1996).
- Tanegashima 10y agoProtocol extensions.
- shakna 10y ago> For example Swift uses a lot of modern concepts around type safety, closures, parallelism, synchronization, etc. Ada. [0] It's been around since before '83 (when it became an ANSI standard), and was developed for the DOD, to replace the hodge podge of languages they were using, with an emphasis on safety. It has all the above, whilst focusing on being plain English. Ada also has a few things that are considered to be fairly modern, and has had them for a long time. Such as: * No Primitive Data Types * Type Contracts * Subtyping, operator overloading The more languages change... The more they stay the same. These concepts aren't new. [0] http://www.adacore.com/adaanswers/about/ada http://www.adacore.com/adaanswers/about/ada
- slavapestov 10y agoAda does not have parametric polymorphism, algebraic data types, Objective-C interoperability, etc.
- jacquesm 10y agoDo those first two strike you as extremely limiting if they are not present in a programming language?
- slavapestov 10y agoYes. Having done a fair bit of C programming in the kernel, where generic data structures are simulated with preprocessor macros and unsafe casts, I much prefer either static languages with generics, or dynamically typed languages.
- fauigerzigerk 10y ago>Swift uses a lot of modern concepts around [...] parallelism, synchronization What does Swift have in terms of parallelism/concurrency?