6 ms·
> Android engineers are more welcome now. Especially if they write Kotlin. I love Swift, and I love Kotlin. To any young programmer out there (I'm in my fifti
by Entangled 9y ago
> Android engineers are more welcome now. Especially if they write Kotlin.
I love Swift, and I love Kotlin.
To any young programmer out there (I'm in my fifties), learn these two languages and you will be highly employable for the next decade, on top of the wave.
- jacquesm 9y agoA decade is a pretty short time for an investment of that magnitude. Learn C (yes, I know), COBOL, Java, Erlang, Python or any other non-niche language and you'll hopefully be employable for decades, or at least until general AI rolls around.
- WhitneyLand 9y agoThe 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 9y agoIt's never just the language. The libraries are where the time goes and a language without libraries is fairly useless these days.
- Tanegashima 9y 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 9y 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 9y 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 9y agoIt has options instead of null
- mbel 9y agoTo which the same argument applies.
- paulddraper 9y agoWhich languages before 1980 had an option/maybe type?
- steveklabnik 9y 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 9y agoNo, a sum type is the essence. TIL that ML is ooold.
- _delirium 9y 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).
- shakna 9y 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 9y agoAda does not have parametric polymorphism, algebraic data types, Objective-C interoperability, etc.
- jacquesm 9y agoDo those first two strike you as extremely limiting if they are not present in a programming language?
- slavapestov 9y 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 9y ago>Swift uses a lot of modern concepts around [...] parallelism, synchronization What does Swift have in terms of parallelism/concurrency?
- TheAceOfHearts 9y agoIf you find Erlang a bit weird at first, try out Elixir. Its syntax is more familiar, so it's a bit more approachable. One nice perk is modules can be shared between both languages.
- bshimmin 9y agoIf you're in your fifties, a single decade is about all you need to take you through to retirement age. To be honest, I would've said going deep on JavaScript right now (React, React Native, etc) would give you a shelf life of at least five years. Kotlin seems like a bit of a random recommendation - it's not in the TIOBE top 50, and a quick search for Kotlin jobs on indeed.com (the first job search site I found from Google) reveals several orders of magnitude fewer jobs than for anything mainstream (hell, even Haskell beats it comprehensively). Perhaps it's the next big thing though!
- coldcode 9y agoJavascript frameworks change on an annual basis if not faster.
- sedky 9y agoI feel like Node, Angular, React have all been around for a few years each
- root_axis 9y agoThis is a trendy sentiment that is oft repeated but of dubious veracity. Seems to me that Angular and React have remained as the preeminent Javascript frameworks for quite a few years without much signs of a shakeup, with the exception of vue.js taking on some modest gains in popularity, but still decidedly in the shadow of Angular and React.
- sandGorgon 9y agoWith all due respect, I would dispute that. That would be JavaScript based - today React Native... tomorrow something similar. Already there are large apps that are built around React Native. But more importantly, js as a language is becoming indispensable. A few days ago, there was a discussion about Netflix - who specifically re-engineered it's back end infrastructure to let it's app engineers (who are js) write API services in nodejs. We are talking 40% of The Internet here ? There is a large boost in hive mind productivity with one programming language . If Java 9 Truffle/Graal.js is as good as everyone says, then it is pretty much js all the way down. And for those who think js is a shitty language (god knows I did), please try out ES2017 or Typescript - you will be pleasantly surprised.
- xor1 9y agoHow about learn all 3
- edgyswingset 9y agoNetflix is a polyglot shop which uses a number of different programming languages for different parts of their systems. Yes, Node and JS play a large part in that, but that really isn't the whole story.
- sandGorgon 9y agoThis is part of a specific re-engineering effort to enable front end engineers write their APIs in single threaded nodejs ..And the platform takes care of scaling. Because "they already knew js". I know that Hystrix is still core, but IMHO the shift has started.