Hacker News new | comments | ask | show | jobs | submit login

I am looking for a new language to learn, preferably more PC style platform focused, would this be a good language to learn?

What do you want to do with the language?:

Here are some choices I think are interesting as new languages:

Elixir : interpreted / scalability / concurrency / fault tolerance/ friendly community

Rust : compiled / close to C speed / memory safety / concurrency

TypeScript : compiles to Javascript but with types / runs in the browser

Elm : compiles to Javascrtipt / functional / runs in the browser

I'm not even remotely a front end guy but Elm looks so interesting. I really want to play with it

You can probably include Go alongside Rust.

Or TypeScript? Rust and Go are not much alike.

It should be noted that there are some caveats to TypeScript, namely that it's type-safety is only compile-time and not at run-time. It is best-effort type-safety.

That said, the edge cases are few and far between. TS is a fantastic language to work with.

I think the issue you're mentioning isn't so much that TS only enforces type safety at compile time, because that's true of Haskell, OCaml, C++, etc. as well, but that by its nature it can't enforce any type contracts with the large quantity of dynamically-typed JavaScript you're probably going to be dealing with. Of course, this is also an issue when safe Haskell, OCaml, etc. code interacts with compiled C code at runtime as well.

If you're writing iOS apps, Swift is the language to learn.

If you're writing server-side code for Linux/OSX, probably not quite yet. The language is nice, but it's only been available as open-source for a day now... the ecosystem you'd need to be productive in Swift isn't there yet.

(On the other hand, if you'd like to be involved in building that ecosystem, now's probably the time to jump in.)

At the moment, it seems like it would be really nifty to use in hobbyist or small data-crunching projects to get C-like performance [1] with a saner syntax, less memory management issues, etc.

I wouldn't want to use it for anything substantial, but if IBM's already hopping on the bandwagon it seems like a good language to learn for heavier use later on.

[1]: http://www.primatelabs.com/blog/2014/12/swift-performance/

Is this IBM link the best first starting point to learn swift -- or should one look to something else as a first entry to swift?

Official documentation is here [1], with additional documentation and resources (that are more iOS and OSX specific) available here [2].

In particular, the Swift Programming Language ebook isn't a bad starting point. The IBM Swift Sandbox looks like a nice little interactive environment to complement it, though, if you don't have access to a Mac to run Xcode.

[1] https://swift.org/documentation/ [2] https://developer.apple.com/swift/resources/

Look into F#.

It's open source. Works on Linux, Mac OS X, Android, iOS, Windows, etc. It has a good ecosystem and tooling built around it already but you can also tap into the C# ecosystem, if necessary.

It compares really well to Swift: http://www.slideshare.net/ScottWlaschin/swift-vslanguagex but even without that comparison, it's worth a look on its own.

I've looked into F# a few times. It's not ready on Mac. I wish people would quit suggesting until it's really baked.

Does it really work on iOS sans xamarian?

Have you tried kotlin? It is developed by jetbrains, works in the JVM and you can mix java code and kotlin code in the same project. It is still in beta but it has been developed for more years than swift and both look quite similar. Jet brains said they wanted to release the version 1.0 the the end of this year... Plus it is fully integrated in intelliJ idea

They're approximately the same age, but regardless, it shouldn't factor into your decision.

Better than Kotlin is Eclipse Xtend aka Swift for Android, which compiles to Java: http://xtend-lang.org

I would recommend learning Julia. It is an easy, fast, powerful general purpose programming language: http://julialang.org

If you plan to do native iOS and Mac OS X applications, yes.

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact