
Ask HN: Beginner-friendly languages from the last decade? - johnblood
I just started learning Ruby as my first language. I know that quite a few languages have been created in the last decade, ie Swift, Go, Rust, etc. Are there any recently created languages that are worth learning. I looking for something easy to learn (for beginners) and cross-platform.
======
mhd
Wren is a great little language in the Lua sector, but more traditional than
it (or JavaScript). Use it with the recently announced DOME to get started
with some simple games (People, please don't let beginners start with webdev!)

[http://wren.io/](http://wren.io/)

[https://domeengine.com/](https://domeengine.com/)

Having said bad things against JavaScript, I believe TypeScript might be a
good start. Definitely a large community support and good tooling.

The problem with either of those is that you don't just need a decent
language, you need decent teaching materials. And there's little of that that
I'm aware of -- and Rust/Swift/Go aren't even intended for first time
programmers (Although the Go Programming Language book might serve well
enough, after all we got quite a few people who started with C, a language
equally unsuitable for the beginner)

Pharo is a bit too "old", with 12 years (or 24, or 48, depending on how you
count), but the environment has a neat little tutorial, and "Pharo by example"
is a good book.

[https://books.pharo.org/pharo-by-example/](https://books.pharo.org/pharo-by-
example/)

Personally, I'd recommend older stuff/languages. Do the Coursera SML course
and you're way more ready for the hot new trends like Elm or ReasonML than
your fellow Java/C#/C++ grognards.

[https://www.coursera.org/learn/programming-
languages](https://www.coursera.org/learn/programming-languages)

~~~
ksec
>(People, please don't let beginners start with webdev!)

I actually think Web Development should be what every new hobby programmer
should learn. It is the quickest, easiest way to get simple, understandable,
showcase-able results.

I kind of miss the good old days of WYSIWYG Dreamweaver and Front-page.

~~~
mhd
Unless you're really setting out to create something for your already existing
home page or great web idea, or you're already a web designer wanting to visit
the coding side, too, I think web development is a way too heavy load for the
beginner.

You have to not only learn your language of choice, but also HTML, maybe even
CSS and the fight with the query/respond nature of HTTP and/or asynchronous
JS, callbacks etc..

Maybe if you're starting out with some Scheme setup where you've got an
abstract page description DSL and a continuation-based framework.

No problems with keeping that as an intermediate, "now you're a real
programmer" goal. But let's start out with "input name/fahrenheit -> print
greeting/celsius" for a while and learn about structure, data types etc.

Simple graphics get you something that you can show your relatives and
friends, too ("I made space flappy bird / the mandelbrot set"). And with way
less mental overhead.

------
open-source-ux
Crystal, Nim and Julia are modern languages and reasonably easy to start
learning. Crystal is very close to Ruby in syntax (but not identical). It is
not cross-platform yet, but developers are working on a Windows port. It is
not yet at version 1.0 (Nim and Julia are).

All are general purpose languages but each language has attracted developers
concentrating on different fields. Julia is designed for high-performance
scientific computing. Nim has generated interest from game and graphics
developers. And Crystal has become popular for server-side Web development.
But you'll find developers using these languages for a wide variety of tasks.

Crystal: [https://crystal-lang.org/](https://crystal-lang.org/)

Julia: [https://julialang.org/](https://julialang.org/)

Nim: [https://nim-lang.org/](https://nim-lang.org/)

~~~
nimmer
Nim is very close to a statically typed Python.

------
helph67
FreeBASIC allows you to create executables for Linux, Windows and Dos. It has
the ability to use MS QuickBasic code but also includes many more modern
features. [https://www.freebasic.net/](https://www.freebasic.net/)

------
muzani
Kotlin is excellent. All the features of Java, but much more concise. It's
close to pseudocode, maybe even better. So you spend your time just coding and
what's on your mind instead of wrestling with design patterns.

------
smabie
Both Racket and Julia are pretty easy to pick up. Though to be honest, I would
recommend starting off like how I did: C.

------
mstibbard
What are you aiming to build? Without any additional detail I can say Elixir
fits your criteria but may not be what you actually need! It's beginner
friendly in my experience, cross-platform, and is a functional programming
language which I'd put in the pros column for beginners.

~~~
johnblood
My main goal is to create a couple of applications. I'm not a big fan of web
dev. I want to write for Windows and Linux.

------
ahulak
Honestly, while it's not perfect, javascript will likely give you most bang
for your buck. You can use it client side as well as server side. It's not the
perfect tool for every situation, but you certainly won't regret knowing it.

------
lmiller1990
JavaScript. In your browser, no need to mess around with a dev environment,
and you can see something happening in front of your eyes (making DOM elements
change, etc).

